马哥博客作业第二周
一 、 文件管理
1.文件结构目录功能
- /boot 引导文件存放ml
- /bin 所有用户使用的基本命令
- /sbin 管理员使用的命令
- /etc 配置文件目录
- /home 普通用户家目录
- /root 管理员的家目录
- /media 便携式移动设备挂载点
- /mnt 临时文件系统挂载点
- /dev 设备文件及特殊文件储存位置
- /opt 第三方应用程序的安装位置
- /tmp 临时文件储存位置
- /proc 于输出内核与进程信息相关的虚拟文件系统
- /sys 用于输出当前系统上硬件设备相关信息虚拟文件系统
2.linux的文件类型
|
文件类型 |
名称 |
类型 |
|
- |
普通文件 |
|
|
b |
块文件 |
block |
|
d |
目录 |
directory |
|
c |
字符设备 |
char |
|
l |
链接文件 |
link |
|
p |
管道文件 |
pipe |
|
s |
套接字文件 |
socket |
3.绝对路径和相对路径
l绝对路径:以正斜杠(/)及根目录开始,完整的文件路径位置,可用于任何想指定的文件位置。
相对路径:不以斜杠开始,一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置
4.查看文件状态
每个文件有三个时间戳
Atime 访问时间,读取文件内容
Mtime 修改时间,改变文件内容(数据)
Ctime 改变时间,元数据发生变化
5.文件通配符模式
| 符号 | 含义 |
| * |
匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件 |
| ? |
匹配任何单个字符 |
| ~ | 当前用户家目录 |
| [0-9] | 匹配数字范围 |
| [a-z] | 字母 |
| [^wang] | 除了wang字符 |
|
[:digit:] |
任意数字,相当于0-9 |
|
[:lower:] |
任意小写字母,表示 a-z |
|
[:upper:] |
任意大写字母,表示 A-Z |
|
[:alpha:] |
任意大小写字母 |
|
[:alnum:] |
任意数字或字母 |
|
[:blank:] |
水平空白字符 |
|
[:space:] |
水平或垂直空白字符 |
|
[:punct:] |
标点符号 |
|
[:print:] |
可打印字符 |
|
[:cntrl:] |
控制(非打印)字符 |
|
[:graph:] |
图形字符 |
|
[:xdigit:] |
十六进制字符 |
5.ls命令 列出目录内容
- l -a 包含隐藏文件
- l -l 显示额外的信息
- l -ld 目录和符号的信息
- l -S (大写) 从大到小
- l -t 按Mtime顺序
- l -u 配合-t,显示并按Mtime从新到旧排序
- l -U 按文件目录存放顺序显示
- l -X 按文件后缀排序
6.touch 命令 创建通配符文件和刷新时间
格式 :
选项:
- -a 仅改变 atime和ctime
- -m 仅改变 mtime和ctime
- -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
- -c 如果文件存在,则不予创建
7.cp 命令 复制文件和目录
格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用选项:
- -i 覆盖前提示
- -n 不覆盖,注意两者顺序
- -r R 递归复制目录及内部的所有命令
- -b 目标存在,覆盖前先备份,形式为 fifilename~
- -a 归档,相当于-dR --preserv=all
- -u --update 只复制源比目标更新文件或目标不存在的文件
8.mv命令 移动和重命名文件
可以实现文件或目录的移动和改名
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
利用rename可以批量修改文件名
格式:

常用选项:
- -i 交互式
- -f 强制
- -b 目标存在,覆盖前先设备
利用rename可以批量修改文件名
格式:

9.rm 命令 删除文件
格式:

常用选项:
- -i 交互式
- -f 强制删除
- -r 递归
- -no-preserve-root 删除/
注意
此命令非常危险,慎重使用,建议使用mv代替rm

10.tree 树目录

常见选项:
- -d: 只显示目录
- -L level:指定显示的层级数目
- -P pattern: 只显示由指定wild-card pattern匹配到的路径
mkdir 创建目录
常见选项:
- -p: 存在于不报错,且可自动创建所需的各目录
- -v: 显示详细信息
- -m MODE: 创建目录时直接指定权限
rmdir 删除空目录
常见选项:
- -p 存在于不报错,且可自动创建所需的个目录
- - v 显示详细信息.
注意:rmdir只能删除空目录,如想删除非空目录,可以使用rm-r命令,递归删除目录
格式:

11.文件元数据和节点表结构
inode表记录对应保存了以下信息
- l Inode number节点号
- l 文件类型
- l 权限
- l UID
- l GID
- l 链接数(指向这个文件路径名称个数)
- l 该文件的大小he不同时间戳
- l 指向磁盘上文件的数据块指针
- l 有关文件的其他数据
硬链接(hard)
特性:
- 创建硬链接会在对应的目录中增加额外的记录项以引用文件
- 对应于同一个文件系统上的一个物理文件
- 每个目录引用相同的inode号
- 创建时链接数递增
- 删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接,当链接为0时,该文件被删除
- 不能跨越驱动器和分区
- 不支持对目录创建硬链接
格式:

软连接 (soft)
特点:
- 一个符号的链接内容是她引用文件的名称
- 可以对目录创建软连接
- 可以跨分区的文件实现
- 指向的另一个文件的路径,其大小指向的路径字符串的长度;不增减或减少目录文件的inode的引用计数
- 软连接如果使用相对路径,是相对于源文件的路径,而非相对于当前目录
格式:

范例:

硬软连接的区别总结
| 硬链接 | 软连接 | |
| 本质 | 是同一个文件 | 不是同一个文件 |
| 跨设备 | 不支持 | 支持 |
| inode | 相同 | 不同 |
| 链接数 |
创建新的硬链接,链数会增加,删除硬链接,连数会减少 |
创建或删除,连数不会变化 |
| 文件夹 | 不支持 | 支持 |
| 相对路径 |
原始文件相对路径是相对于当前工作目录 |
原始文件的相对路径是相对于链接文件的相对路径 |
| 删除原文件 |
只是链接数减一,但链接文件的访问不受影响 |
链接文件将无法访问 |
| 文件类型 |
和源文件相同 |
链接文件,和源文件无关 |
二、标准i/o重定向和管道
1. 3种i/o设备
- 标准输入 -0 默认接受来自终端窗口的输入
- 标准输出 -1 默认输出到终端窗口
- 标准错误 -2 默认输出到终端窗口
2. 重定向
| 符号 | 用途 |
| > | 输出重定向(覆盖) |
| >> | 输出重定向(追加) |
| 2> | 错误输出重定向 |
| &> | 所有输出重定向 |
| set -C | 禁止覆盖 |
| set +C | 允许覆盖 |
| >| file | 强制覆盖 |
| < | 输入重定向 |
| << | 多行输入重定向 |
3. tr命令
转换和删除字符
格式:

选项:
- -d (--delete): 删除所有属于第一字符集的字符
- -s(--squeeze-repeats): 把连续重复的字符以单独的一个字符表示,即去重
- -t(--truncate-set1):将第一个字符集对应字符转化为第二字符集对应的字符
- -c-C(--complement):取字符集的补集
![]()
范例

4.管道
| 符号 | 名称 |
|
| |
标准输出 |
| |& | 所有输出 |
| - | 前一个命令的 stout |
| |tee -a | -a追加 即输出到 屏幕有输出到管道 |
三、用户 、组和权限
1.用户个组的主要配置文件
- /etc/passwd:用户及其属性信息(名称、UID、主组ID等)
- /etc/shadow:用户密码及其相关属性
- /etc/group:组及其属性信息
- /etc/gshadow:组密码及其相关属性
2.文件格式
|
passwd文件格式 |
login name:登录用名(wang) passwd:密码 (x) UID:用户身份编号 (1000) GID:登录默认所在组编号 (1000) GECOS:用户全名或注释 home directory:用户主目录 (/home/wang) shell:用户默认使用shell (/bin/bash) |
|
shadow 文件格式 |
登录用名 用户密码:一般用sha512加密 从1970年1月1日起到密码最近一次被更改的时间 密码再过几天可以被变更(0表示随时可被变更) 密码再过几天必须被变更(99999表示永不过期) 密码过期前几天系统提醒用户(默认为一周) 密码过期几天后帐号会被锁定 从1970年1月1日算起,多少天后帐号失效 |
|
group文件格式 |
群组名称:就是群组名称 群组密码:通常不需要设定,密码是被记录在 /etc/gshadow GID:就是群组的 ID 以当前组为附加组的用户列表(分隔符为逗号) |
|
gshdow文件格式 |
群组名称:就是群的名称 群组密码: 组管理员列表:组管理员的列表,更改组密码和成员 以当前组为附加组的用户列表:多个用户间用逗号分隔 |
3.用户命令
|
命令 |
作用 |
格式 |
常见选项
|
|
usermad |
可以创建新的Linux用户 |
useradd [options] LOGIN |
|
|
usermod |
用户属性修改 |
usermod [OPTION] login |
|
|
id |
查看用户相关的id信息 |
id [OPTION]... [USER] |
|
|
su |
切换用户 |
su zhanghu |
-l --login su -l UserName 相当于 su - UserName-c, --command <command> pass a single command to the shell with -c |
|
passwd |
可以修改密码 |
passwd [OPTIONS] UserName |
|
|
chage |
修改用户密码策略 |
chage [OPTION]... LOGIN |
|
4.组命令
| 命令 | 作用 | 格式 | 常见选项 |
| groupadd | 创建组 |
groupadd [OPTION]... group_name |
|
| groupmod | 修改组 |
groupmod [OPTION]... group |
|
| groupdel | 删除组 |
groupdel [options] GROUP |
-f, --force 强制删除,即使是用户的主组也强制删除组 |
| gpasswd | 更改组密码 |
gpasswd [OPTION] GROUP |
|
| newgrp | 临时切换主组 |
newgrp [-] [group] |
如果使用 - 选项,可以初始化用户环境 |
| groupmems | 更改和查看组成员 |
groupmems [options] [action] |
|
| group | 可查看用户组关系 |
groups [OPTION].[USERNAME]... |
5. 文件管理

1.文件权限:
1.针对三类对象进行定义:
2.chmod 权限命令
格式:3.umask 的值可以用来保留在创建文件权限
实现方式:
-
新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
-
新建目录的默认权限: 777-umask
非特权用户umask默认是 002
root的umask 默认是022
6. linux文件系统上的特殊权限
1. 特殊权限SUID
前提:进程有属主和属组;文件有属主和属组
1. 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
2. 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
3. 进程访问文件时的权限,取决于进程的发起者
(a) 进程的发起者,同文件的属主:则应用文件属主权限
(b) 进程的发起者,属于文件属组;则应用文件属组权限
(c) 应用文件“其它”权限
- 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
- 启动为进程之后,其进程的属主为原程序文件的属主
- SUID只对二进制可执行程序有效
- SUID设置在目录上无意义
2.特殊权限SGID
二进制的可执行文件上SGID权限功能:
-
任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
-
启动为进程后,其进程的属组为源程序文件的属组
SGID权限设定:
chmod g+s FILE...
chmod 2xxx FILE
chmod g-s FILE...
3.特殊权限 Sticky 位
具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权在目录设置Sticky 位,只有文件的所有者或root可以删除该文件sticky 设置在文件上无意义
权限设定:
chmod o+t DIR...
chmod 1xxx DIR
chmod o-t DIR...
4.权限位映射
5.设定文件特殊属性
只能追加内容,不能删除,改名 chattr +a
显示特定属性 lsattr
7. 访问控制列表
1.ACL权限功能
ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
ACL生效顺序:
所有者,自定义用户,所属组|自定义组,其他人
2. ACL 命令
setfacl 可以设置ACL权限
getfacl 可查看设置的ACL权限
mask 权限
- mask只影响除所有者和other的之外的人和组的最大权限
- mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限
-
用户或组的设置必须存在于mask权限设定范围内才会生效
3.备份和还原
主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar会保留目录和文件的ACL设置文件的特殊属性,可以访问 root 用户误操作删除或修改文件


浙公网安备 33010602011771号