当前位置: 首页 > ops >正文

Linux(从入门到精通)

Linux概述

Linux内核最初只是由芬兰人林纳斯·托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。

Linux特点

首先Linux作为自由软件有两个特点:一是它免费提供源代码,二是爱好者可以根据自己的需要自由修改、复制和发布源码

Linux的各个发行版本

image-20211018154448010?v=1.0.0

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

  1. Red Hat Linux
  2. Ubuntu Linux 界面 桌面系统
  3. SuSE Linux
  4. Gentoo Linux
  5. 其他 Linux 发行版

Linux应用领域

  1. IT服务器
  2. 嵌入式
  3. 个人桌面

Linux和Windows区别

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。

主要区别如下

image-20211018170550659

实时效果反馈

1. 下面发行版本中,不是Linux的是:

Ubantu

Debian

Centos

windows

2. Linux内核1.0的发布时间:

1991

1993

1992

1994

答案

1=>D 2=>A

Linux下载安装

image-20211018172549123?v=1.0.0

安装VMWare虚拟机

VMware是一个老牌的虚拟化软件。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整。

image-20211028180135070?v=1.0.0

下载CentOS

进入Centos官网找要下载的版本Index of /

image-20211019101532716?v=1.0.0

如需遇到下载慢可以访问阿里镜像地址

centos-vault安装包下载_开源镜像站-阿里云

安装CentOS

image-20211028153745167?v=1.0.0

image-20211028153957036

image-20211028154002146?v=1.0.0

image-20211028154010906?v=1.0.0

image-20211028154034452?v=1.0.0

image-20211028154141322

image-20211028154206491

image-20211028154235829?v=1.0.0

image-20211028154255626

img

image-20211028154340578

image-20211028154400489?v=1.0.0

image-20211028154422507

image-20211028154451209?v=1.0.0

image-20211028154516202

image-20211028154557244?v=1.0.0

image-20211028154709794?v=1.0.0

实时效果反馈

1. 安装Linux系统使用哪个虚拟化软件进行安装__

VMware

Idea

VSCode

pycham

2. Linux安装时下面哪一种说法不正确的是。

在安装了windows的计算机上,可以再安装一个Linux系统

在安装了Linux的计算机上,可以再安装一个Linux系统

虚拟机中只能安装一台Linux系统

安装Linux时需要先下载Centos的镜像文件

答案

1=>A 2=>C

Linux三种网络配置

img

背景

A是本机,A1,A2是虚拟机,B是外部联网的机器(同事的电脑)

桥接模式

相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理 主机的网卡访问外网。

img

注意:

桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话。

bridge(桥接模式): A可以和A1,A2互通,A1,A2 -> B可以,B -> A1,A2可以

NAT

让 VM 虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟 的主机可以通过物理主机访问外网,在真机中 NAT 虚拟机网卡对应的物理网卡是 VMnet8。

image-20211023153507244

注意:

实际上VMware Network Adapter VMnet8的作用是为了实现虚拟机和主机之间相互通信!

Nat(网络地址转换): A可以和A1,A2互通,A1,A2 -> B可以,B -> A1,A2不行

Host-only

仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机 模式模拟网卡对应的物理网卡是 VMnet1。

img

注意: NAT和host-only 不会占用一个ip地址,只能和你的本机进行通讯。NAT和host-only还有一个区别就是,host-only只能和你的本机进行通讯,不可以访问。

host-only(主机模式): A可以和A1,A2互通,A1,A2 -> B不可以,B -> A1,A2不行

实时效果反馈

1. Linux系统中_____网络模式最安全。

Nat

主机

桥接

ssh

2. Linux系统中想访问同事电脑虚拟机中的Mysql服务使用__网络模式。

Nat

主机

桥接

ssh

答案

1=>B 2=>C

Linux 远程登录

配置Nat网络模式

网络规划:

网关配置: 192.168.66.1

虚拟机ip:192.168.66.100

主机中vmnet8:192.168.66.10

设置虚拟交换机网关

image-20211104141059559

管理员授权

image-20211104141209251

设置子网打开NAT设置

image-20211104144358379

设置网关

image-20211104144218289

配置vmware8网卡

image-20211104144514874

设置IPV4

image-20211104144559271

配置网络和DNS服务

image-20211104144640395

登录到Linux编辑网卡文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改为静态ip地址
#BOOTPROTO=none
BOOTPROTO=static
#修改为开机自启动网卡
#ONBOOT=NO
ONBOOT=yes
#配置ip
IPADDR=192.168.66.100
#子网掩码
NETMASK=255.255.255.0
#网关
GATEWAY=192.168.66.1
#配置的阿里的
DNS1=223.5.5.5
DNS2=223.6.6.6
# 保存退出  :wq
# 重启网卡  service network restart
 

设置XShell连接

image-20211104145312408

连接主机

image-20211104145409868

实时效果反馈

1. Linux系统中远程连接通过___服务实现的远程登录功能。

NetWork

httpd

SSH

CDMA

2. Linux系统配置NAT网络模式时,为什么要配置本机VMware8的网卡。

A 网速会变快

B 主机和虚拟机之间通信

C 激活网卡

D 配置动态IP

答案

1=>C 2=>B

Linux系统目录结构

image-20211018175543355

文件系统组织结构

  • /lib

系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found

一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /etc

所有系统管理所需要的配置文件和子目录。my.conf

  • /usr

用户的很多应用程序和文件都放在这个目录下。

  • /bin

是Binary的缩写,这个目录存放着经常使用的命令

  • /sbin (usr/sbin、/usr/local/sbin)

sbin就是per user的意思,这里存放的是系统管理员使用的系统管理程序

  • /home

存放普通用户的主目录,在Linux中的每个用户都有一个自己的目录,一般该目录一用户的账号名命名

  • /root

该目录为系统管理员,超级权限者的用户目录

  • /boot

存放的启动Linux时使用的一些核心文件,包括一些链接文件和镜像文件

  • /proc

虚拟目录,是系统内存的映射,访问这个目录来获取系统信息。

  • /srv

service 的缩写,该目录是存放一些服务启动之后需要提取的数据

  • /sys

Linux2.6内核的一个很大变化,该目录安装了2.6内核中新出现的一个文件系统

  • /tmp

存放临时文件

  • /dev

类似于 windows的设备管理器,把所有的硬件用文件的形式存储

  • /media

Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。d:/ myshare

  • /opt

这是给主机额外安装软件所摆放的目录。如安装 ORACLE数据库就可放到该目录下。默认为空。

  • /usr/local

这是另个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。

  • /var

这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。

  • /selinux [security-enhanced linux] 类似 360

Selinux是一种安全子系统,它能控制程序只能访同特定文件。

登录系统后,在当前命令窗口下输入命令:

ls /

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

实时效果反馈

1. 创建新用户之后,该用户的家目录在___目录内。

/home

/root

/share

/usr

2. Linux系统中哪个是根目录。

/

/etc

/usr

/tmp

答案

1=>A 2=>A

Linux用户和用户组

image-20211020104334790

用户管理概述

Linux是一个多用户、多任务的操作系统。

image-20211029162250945

用户账号和用户组

用户概念

通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)

用户组概念

用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;

Linux用户和组的关系

用户和用户组的对应关系有以下 4 种:

  1. 一对一:一个用户可以存在一个组中,是组中的唯一成员;
  2. 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
  3. 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
  4. 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

实时效果反馈

1. Linux系统中超级管理员是____

root

baizhan

etc

home

2. Linux是一个_____系统。

多用户多任务

多用户单任务

单用户单任务

单用户多任务

答案

1=>A 2=>A

Linux用户管理

img

Linux 系统的管理员之所以是 root,是因为该用户的身 份号码即 UID的数值为 0,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。

  • 管理员 UID 为 0:系统的管理员用户。
  • 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提 权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏 范围。
  • 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。 需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000 开始的(即使前面有闲置的号码)。

添加用户 useradd

语法:

useradd (选项)(参数)

选项

-d 指定用户的家目录(默认为/home/username)

-e 账户的到期时间,格式为 YYYY-MM-DD.

-u 指定该用户的默认 UID

-g 指定一个初始的用户基本组(必须已存在)

-G 指定一个或多个扩展用户组

-N 不创建与用户同名的基本用户组

-s 指定该用户的默认 Shell 解释器

参数

用户名:要创建的用户名。

示例 1

下面我们创建一个普通用户并指定家目录的路径、用户的 UID 以及 Shell 解释器。在下 面的命令中,请注意/sbin/nologin,它是终端解释器中的一员,与 Bash 解释器有着天壤之别。 一旦用户的解释器被设置为 nologin,则代表该用户不能登录到系统中:

[root@itbaizhan ~] # useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
[root@itbaizhan ~] # id linuxprobe
uid = 8888(linuxprobe) gid = 8888(linuxprobe) groups = 8888(linuxprobe)

修改用户 usermod

有些时候不小心在useradd的时候加入了错误的设定数据,此时我们当然可以直接到/etc/passwd或/etc/shadow中去修改相对应字段的数据。

语法

usermod (选项) (参数)

选项:

-c<备注>:修改用户帐号的备注文字;

 -d<登入目录>:修改用户登入时的目录;

 -e<有效期限>:修改帐号的有效期限;

 -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;

 -g<群组>:修改用户所属的群组;

 -G<群组>;修改用户所属的附加群组;

 -l<帐号名称>:修改用户帐号名称;

 -L:锁定用户密码,使密码无效;

 -s:修改用户登入后所使用的shell;

 -u:修改用户ID;

 -U:解除密码锁定。

示例1

来看一下账户 linuxprobe 的默认信息:

id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)

然后将用户 linuxprobe 加入到 root 用户组中,这样扩展组列表中则会出现 root 用户组的 字样,而基本组不会受到影响:

[root@itbaizhan ~]# usermod -G root linuxprobe
[root@itbaizhan ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

再来试试用-u 参数修改 linuxprobe 用户的 UID 号码值。除此之外,我们还可以用-g 参数 修改用户的基本组 ID,用-G 参数修改用户扩展组 ID。

[root@linuxprobe ~]# usermod -u 8888 linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

用户账号口令管理

passwd 命令用于修改用户密码、过期时间、认证信息等。

语法

passwd (选项) (参数)

选项:

-d:删除密码,仅有系统管理者才能使用;

 -f:强制执行;

 -k:设置只有在密码过期失效后,方能更新;

 -l:锁住密码;

 -s:列出密码的相关信息,仅有系统管理者才能使用;

 -u:解开已上锁的帐号。

示例1

用root帮linuxpro修改密码

passwd linuxpro

示例2

假设您有位同事正在度假,而且假期很长,那么可以使用 passwd 命令禁止该用户登录系统,等假期结束回归工作岗位时,再使用该命令允许用户登录系统,而不是将其删除。 这样既保证了这段时间内系统的安全,也避免了频繁添加、删除用户带来的麻烦。

[root@itbaizhan ~]# passwd -l linuxprobe
Locking password for user linuxprobe.
passwd: Success
[root@itbaizhan ~]# passwd -S linuxprobe
linuxprobe LK 2017-12-26 0 99999 7 -1 (Password locked.)
[root@itbaizhan ~]# passwd -u linuxprobe
Unlocking password for user linuxprobe.
passwd: Success
[root@itbaizhan ~]# passwd -S linuxprobe
linuxprobe PS 2017-12-26 0 99999 7 -1 (Password set, SHA512 crypt.)

删除用户 userdel

userdel 命令用于删除用户

语法:

userdel [选项] 用户名

选项:

-f 强制删除用户

-r 同时删除用户及用户家目录

这个命令的目的删除用户,与它相关的文件有:

  1. /etc/passwd
  2. /etc/shadow
  3. /home/username

语法:

[root@localhost~]#userdel [-r] username

参数:

-r : 连同用户的家目录也一起删除。

示例1

下面使用 userdel 命令将 linuxprobe 用户删除,其操作如下:

[root@itbaizhan ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
[root@itbaizhan ~]# userdel -r linuxprobe
[root@itbaizhan ~]# id linuxprobe
id: linuxprobe: no such user

实时效果反馈

1. 新增一个用户使用命令是__

usradd

adduser

addaccount

useradd

2. Linux系统中如何查看用户信息

id

ls

cd

usermod

答案

1=>D 2=>A

Linux用户组管理

img

添加新组groupadd


语法

groupadd (选项) (参数)

选项

-g:指定新建工作组的id;

 -r:创建系统工作组,系统工作组的组ID小于500;

 -K:覆盖配置文件“/ect/login.defs”;

 -o:允许添加组ID号不唯一的工作组。

示例1

建立一个新组,并设置组ID加入系统:

groupadd -g 334 bigdata

修改群组groupmod


语法

groupmod(选项)(参数)

选项

-g<群组识别码>:设置欲使用的群组识别码;

 -o:重复使用群组识别码;

 -n<新群组名称>:设置欲使用的群组名称。

示例1

把建立bigdata组改为bigdata2并设置GID改为506

groupmod -g 506 -n bigdata2 bigdata

删除群组groupdel


语法:

groupdel groupname

实时效果反馈

1. Linux系统创建用户组使用_____命令。

groupadd

addgroup

groupmod

groupdel

2. Linux系统删除用户组使用_____命令。

groupadd

addgroup

groupmod

groupdel

答案

1=>A 2=>D

Linux超级用户与伪用户

img

Linux下用户分为三类:超级用户、普通用户、伪用户

  1. 超级用户:用户名为root,具有一切管理权限,UID为0,可以创建多个管理员。
  2. 普通用户:在默认情况下,普通用户UID是介于500~6000;
  3. 伪用户:这些用户的存在是为了方便系统管理,满足相应的系统进程对文件属主的要求。伪用户不能够登录,他的ID值介于1~499。

用户身份切换

由于超级权限在系统管理中的不可缺少的重要作用,为了完成系统管理任务,必须用到超级权限。

su

su命令就是切换用户的工具。

语法

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

参数说明

  • -c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
  • - -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root

示例1

[root@itbaizhan ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@itbaizhan ~]# su - linuxprobe
Last login: Wed Jan 4 01:17:25 EST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ id
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe) context=unconfined_
u:unconfined_r:unconfined_t:s0-s0:c0.c1023

注意:

上面的 su 命令与用户名之间有一个减号(-),这意味着完全切 换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强 烈建议在切换用户身份时添加这个减号(-)。

sudo

Sudo 的全称为:super user do。 顾名思义:干超级用户才能干的事!所以Sudo最常用的功能就是提升一个命名的执行权限。

语法:

sudo [参数] 命令名称

参数:

-h 列出帮助信息

-l 列出当前用户可执行的命令

-u 用户名或 UID 值 以指定的用户身份执行命令

-k 清空密码的有效时间,下次执行 sudo 时需要再次进行密码验证

-b 在后台执行指定的命令

-p 更改询问密码的提示语

总结

sudo 命令具有如下功能:

  • 限制用户执行指定的命令:
  • 记录用户执行的每一条命令;
  • 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
  • 验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。

编辑配置文件命令: visudo 来配置用户权限。

按照下 面的格式将第 99 行(大约)填写上指定的信息:

谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表

注意

编辑sudo的配置文件/etc/sudoers是一般不要直接使用vi(vi /etc/sudoers)去编辑,因为sudoers配置有一定的语法,直接用vi编辑保存系统不会检查语法,如有错也保存了可能导致无法使用sudo工具,最好使用visudo命令去配置。虽然visudo也是调用vi去编辑,但是保存时会进行语法检查,有错会有提示。

示例1

配置baizhan拥有root的权限

visudo
baizhan ALL=(ALL) ALL

示例2

在每次执行 sudo 命令后都会要求验证一下密码。

[root@location opt]$ touch a.info
#切换用户
[baizhan@location ~]# su baizhan
#删除a.info文件
[baizhan@location ~]# rm -rf a.info
rm: cannot remove ‘a.info/’: Permission denied
[baizhan@location ~]# sudo rm -rf a.info
http://www.xdnf.cn/news/18687.html

相关文章:

  • Elasticsearch JVM调优:核心参数与关键技巧
  • 2025生成式引擎优化(GEO)技术研究报告:技术演进、行业应用与服务商能力选择指南
  • 《微服务架构下API网关流量控制Bug复盘:从熔断失效到全链路防护》
  • 解析电商本地生活竞争:从我店模式创新到生态协同的进化路径
  • 基坑监测报警系统方案:实时监测数据联动响应方式
  • Node.js特训专栏-性能优化:24.V8引擎内存管理机制
  • Python办公——爬虫百度翻译网页版(自制翻译小工具——进阶更新版)
  • 渗透测试报告编写平台 | 简化和自动化渗透测试报告的生成过程。
  • 大数据治理域——离线数据开发
  • 深度学习(二):数据集定义、PyTorch 数据集定义与使用(分板块解析)
  • leetcode 498. 对角线遍历 中等
  • (论文速读)FloVD:光流遇见视频扩散模型,开启相机控制视频生成
  • RAG实现多语言客户端的技术方案
  • Claude Code 使用及配置智能体
  • MQTT协议详解:从基础原理到工业级实践指南
  • CANopen - DCF(Device Configuration File) 介绍
  • Apache Maven 3.1.1 (eclipse luna)
  • MATLAB 绘制根轨迹、Bode图的方法
  • 扭蛋机小程序系统开发:连接线上线下娱乐的新桥梁
  • 掌握C++ std::invoke_result_t:类型安全的函数返回值提取利器
  • 在Excel和WPS表格中拼接同行列对称的不连续数据
  • Docker Compose 部署 Elasticsearch 8.12.2 集成 IK 中文分词器完整指南
  • python面试题目100个(更新中预计10天更完)
  • LangChain4J-(2)-高阶API与低阶API
  • 汽车零部件工厂ESOP系统工业一体机如何选型
  • 基于51单片机红外避障车辆高速汽车测速仪表设计
  • 简述Myisam和Innodb的区别?
  • C++17 中std::any 详解和代码示例
  • 【LeetCode 热题 100】416. 分割等和子集——(解法一)记忆化搜索
  • ansible的搭建与安装