1 概述
1.1 简介
- 一套免费使用和自由传播的类Unix操作系统
,基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统
- 继承了Unix以网络为核心的设计思想,能够运行主要的UNIX工作软件、应用程序和网络协议
1.2 linux和window区别
- 软件:window需要商业软件支持,linux大部分都能自由获取(同功能软件选择较少)
- 界面:window界面统一,linux图形界面可能互不兼容
- 驱动:window驱动厂商提供(老版本难以支持),linux(HP、Intel、AMD支持)安装复杂
1.3 IOS镜像文件
- CentOS-7.0-x86_64-DVD-1503-01.iso : 标准安装版,一般下载这个就可以了(推荐)
- CentOS-7.0-x86_64-NetInstall-1503-01.iso : 网络安装镜像(从网络安装或者救援系统)
- CentOS-7.0-x86_64-Everything-1503-01.iso: 对完整版安装盘的软件进行补充,集成所有软件。(包含centos7的一套完整的软件包,可以用来安装系统或者填充本地镜像)
- CentOS-7.0-x86_64-GnomeLive-1503-01.iso: GNOME桌面版
- CentOS-7.0-x86_64-KdeLive-1503-01.iso: KDE桌面版
- CentOS-7.0-x86_64-livecd-1503-01.iso : 光盘上运行的系统,类拟于winpe
- CentOS-7.0-x86_64-minimal-1503-01.iso : 精简版,自带的软件最少
1.4 云服务器
- ECS是一种简单高效、安全可靠、处理能力可弹性收缩的计算机服务
- 腾讯云、阿里云、华为云、京东云
2 使用
2.1 启动
- CentOS 7配置文件: /usr/lib/systemd/system、 /etc/systemd/system
2.2 系统目录结构
-
/bin
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/etc
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。 -
/lib
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/opt
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/selinux
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv
该目录存放一些服务启动之后需要提取的数据。 -
/sys
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 -
/usr
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/usr/bin
系统用户使用的应用程序。 -
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src
内核源代码默认的放置目录。 -
/var
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
<注意>
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
2.3 忘记密码
重启客户端,按e更改语句重启系统,进入单用户模式
2.4 远程登陆
ssh服务实现远程登陆,默认端口号为22
也可以利用密钥生成工具,采用密钥登陆(同时在root目录下拷贝公钥放入)
3 文件
3.1 概述
- chown:修改所属用户与组
- chmod:修改用户的权限
![外链图片转存失败,源站可![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/94e859ca9f134aa4
a6174c237f631e95.png#pic_center)
能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=typora-photos%2Fimage-20240409114533245.png&pos_id=img-Yi7YxgpO-1712736057074)
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为 d 则是目录
- 当为 - 则是文件;
- 若是 l 则表示为链接文档(link file);
- 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
3.2 更改文件属性
- chown
更改文件所有者,同时更改文件所属组
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230
724024159.png?origin_url=typora-photos%2Fimage-20240409120159848.png&pos_id=img-wAPeamLQ-1712736057074)
chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
- chmod
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
命令 | 身份 | 设定 | 权限 | 对象 | 含义 |
---|---|---|---|---|---|
chmod | u | +(加入) -(除去)=(设定) | r w x | 文件或目录 | 用户 |
g | 4 2 1 | 组 | |||
o | 其他 | ||||
a | 全部 |
[root@mapel mapel]# mkdir 123
[root@mapel mapel]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 9 20:02 123
-rw-r--r--. 1 root root 0 4月 9 19:06 file.txt
[root@mapel mapel]# chmod a+w 123/
[root@mapel mapel]# ll
总用量 0
drwxrwxrwx. 2 root root 6 4月 9 20:02 123
-rw-r--r--. 1 root root 0 4月 9 19:06 file.txt
[root@mapel mapel]# chmod a-w 123/
[root@mapel mapel]# ll
总用量 0
dr-xr-xr-x. 2 root root 6 4月 9 20:02 123
-rw-r--r--. 1 root root 0 4月 9 19:06 file.txt
3.3 文件与目录管理
- 相对路径和绝对路径
相对路径:./ …/ 绝对路径:根目录开始
- 处理目录常用命令
命令 | 全称 | 含义 | 常用 |
---|---|---|---|
ls | list files | 列出目录及文件名 | -a 全部文件(包括隐藏)-d 查看目录本身(不包括文件)-l 查看文件属性权限等 |
cd | change directory | 切换目录 | |
pwd | print work directory | 显示当前目录 | -P 显出目录确实的路径,非link |
mkdir | make directory | 创建一个新的目录 | -m 配置权限 -p 递归创建 |
rmdir | remove directory | 删除一个空的目录 | -p 递归删除 |
cp | copy file | 复制文件或目录 | -p 复制文件属性(备份)-r 递归持续复制 |
rm | remove | 删除文件或目录 | -f 忽略不存在 -i 互动模式(删除前询问) -r 递归删除 |
mv | move file | 移动文件与目录,或修改与目录的名称 | -f 强制(已存在则覆盖)-i 互动模式 -u 已存在则看是否更新(更新了才覆盖) |
-
man命令可以查看使用文档(man cp)
-
文件内容查看
命令 | 含义 | 常用 |
---|---|---|
cat | 由第一行开始显示文件内容 | -A 相当于-vET -b 列行号(不包括空白行) -E显示结尾断行字节$ -n 列出行号(包括空白行)-T :将 [tab] 按键以 ^I 显示出来 -v 列出看不出来的字符 |
tac | 最后一行开始显示 | |
nl | 显示出行号 | -ba显示空行 -bt不显示空行 |
more | 一页一页显示文件内容 | space 下一页 Enter 下一行 /字符串 寻找 :f显示文档名和目前显示行数 q 退出 b回翻 |
less | 向前翻页 | |
head | 头几行 | -n 显示几行 |
tail | 尾部几行 | -n 显示几行 |
4 硬连接软连接
- 默认情况下,ln创建硬连接
4.1 硬链接
硬连接指通过索引节点来进行连接,多个文件名指向同一索引节点是存在的。
A是B的硬连接,则它们inode节点号相同,删除其中任何一个都不会影响另一个的访问。硬连接作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,防止误删。只删除一个连接并不影响索引节点本身和其他的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。
4.2 软连接
软连接称之为符号连接,类似与windows的快捷方式,实际上是一个特殊的文件。
A是B的软连接,则它们的inode节点号不同。A的数据块中存放的只是B的路径名。如果B被删除了,A仍然存在,但是指向的是一个无效连接。
[root@mapel mapel]# ln file.txt file_new
[root@mapel mapel]# ln -s file.txt file_new_2
[root@mapel mapel]# ls -li
总用量 8
1121756 dr-xr-xr-x. 2 root root 6 4月 9 20:02 123
1121758 -rw-r--r--. 2 root root 22 4月 9 20:36 file_new
1121754 lrwxrwxrwx. 1 root root 8 4月 9 22:18 file_new_2 -> file.txt
1121758 -rw-r--r--. 2 root root 22 4月 9 20:36 file.txt
5 用户账号管理
linux是一个多用户多任务的分时操作系统。用户账号的管理工作主要涉及到用户账号的添加、修改和删除。实际上就是 /etc/passwd 文件的管理。
5.1 添加用户
- 添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录shell等资源。刚添加的账号是锁定的,无法使用。
useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
5.2 删除用户
- 用户账号不再使用,可以从系统中删除。
userdel 选项 用户名
-r 把用户的主目录一起删除-和
5.3 修改账户
usermod 选项 用户名
-c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-g 用户组 指定用户所属的用户组
-G 用户组,用户组 指定用户所属的附加组
-s Shell文件 指定用户的登录Shell
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
5.4 用户口令管理
- 用户管理的一项重要内容。用户账号刚创建时没有口令,但被系统锁定,无法使用,必须为其指定口令后才可以使用。
passwd 选项 用户名
-l 锁定口令,即禁用账号
-u 口令解锁
-d 使账号无口令
-f 强迫用户下次登录时修改口令
- 普通用户只能修改自己的命令,且需要输入原口令。
- 超级用户可以修改指定任何用户的口令。
6 用户组管理
- 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同。实际上就是对/etc/group文件的更改。
- 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有用户组的权限
newgrp 用户组名
6.1 添加用户组
groupadd 选项 用户组
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
# 新组的标识号是最大组标识号的基础上加1
6.2 删除用户组
groupdel 用户组
6.3 修改用户组
groupmod 选项 用户组
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
7 总结用户账号相关的系统文件
- 完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
7.1 /etc/password
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。
mapel:x:1000:1000:mapel:/home/mapel:/bin/bash
mapel_new:x:1001:1000::/home/mapel_new:/bin/bash
mapel_root:x:1002:0::/home/mapel_root:/bin/bash
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
# "用户名"是代表用户账号的字符串
# “口令”一些系统中,存放着加密后的用户口令字
# “用户标识号”是一个整数,系统内部用它来标识用户
# “组标识号”字段记录的是用户所属的用户组
# “注释性描述”字段记录着用户的一些个人情况
# “主目录”,也就是用户的起始工作目录
# 用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
# 系统中有一类用户称为伪用户(pseudo users)
------------
伪 用 户 含 义
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用
------------
7.2 /etc/shadow
- 由于/etc/passwd文件是所有用户都可读的,Linux系统都把加密后的口令字分离出来,单独存放在/etc/shadow文件,有超级用户才拥有该文件读权限。
mapel:$6$MOniHoaEDbLPbqs1$MZI22LZh1KuqVPQeSLj2TtrvTZQr1Z/P2tH3EMgonJdsxnYY4KVaRqcnOylewbXtwRWq1F3mbTci.2g2lJHvh1::0:99999:7:::
mapel_new:!!:19823:0:99999:7:::
mapel_root:$6$rh3TtB5i$/14sfPZBXl/HS/3GI5UtLBAo7xL1JZz731hM9Ihun6iaw/R/abdKeUHY9dFzcHiDlSHiLQ6RBoLiS6M0ILUrI/:19823:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
# "登录名"是与/etc/passwd文件中的登录名相一致的用户账号
# "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7.3 /etc/group
- 用户组的所有信息都存放在/etc/group文件中
sshd:x:74:
postdrop:x:90:
postfix:x:89:
mapel:x:1000:mapel,mapel_root
组名:口令:组标识号:组内用户列表
# "组内用户列表"是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组
8 批量添加用户
8.1 编辑用户文件
- user.txt
user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
8.2 以root身份执行/usr/sbin/newusers
newusers < user.txt
8.3 执行命令/usr/sbin/pwunconv
- 将
/etc/shadow
产生的shadow
密码解码,然后回写到/etc/passwd
中,并将/etc/shadow
的shadow
密码栏删掉。这是为了方便下一步的密码转换工作,即先取消shadow password
功能。
pwunconv
8.4 编辑每个用户的密码对照文件编辑每个用户的密码对照文件
user001:123456
user002:123456
8.5 以 root 身份执行命令 /usr/sbin/chpasswd
- 创建用户密码,
chpasswd
会将经过/usr/bin/passwd
命令编码过的密码写入/etc/passwd
的密码栏。
chpasswd < passwd.txt
8.6 结果写入/ect/shadow
pwconv