文章目录 \color{CornflowerBlue} 文章目录 文章目录
Linux命令的艺术:让操作更加高效与灵活
- 文章目录 \color{CornflowerBlue} 文章目录 文章目录
- 三 文件权限与管理
- 四 文件与目录管理命令
- 五 文件查看与编辑命令
-
- 5.1 c a t − " c o n c a t e n a t e " (查看文件内容) \color{Fuchsia}cat - "concatenate"(查看文件内容) cat−"concatenate"(查看文件内容)
- 5.2 m o r e 命令 − " 分页查看文件 " \color{Fuchsia} more命令 - "分页查看文件" more命令−"分页查看文件"
- 5.3 l e s s 命令 − " 分页查看文件(支持向前、向后滚动) " \color{Fuchsia} less命令 - "分页查看文件(支持向前、向后滚动)" less命令−"分页查看文件(支持向前、向后滚动)"
- 5.3 h e a d 命令 − " 查看文件的前几行 " \color{Fuchsia} head命令 - "查看文件的前几行" head命令−"查看文件的前几行"
- 5.4 t a i l 命令 − " 查看文件的后几行 " \color{Fuchsia} tail命令 - "查看文件的后几行" tail命令−"查看文件的后几行"
- 5.5 n a n o / v i m . v i 命令 − " 文本编辑器 " \color{Fuchsia} nano/vim.vi 命令 - "文本编辑器" nano/vim.vi命令−"文本编辑器"
- 6 时间有关指令
- 七 文件查找与搜索命令
- 八 文件权限与所有者管理命令
-
- 8.1 c h m o d 指令 − " 修改文件或目录权限 " \color{Fuchsia} chmod指令 - "修改文件或目录权限" chmod指令−"修改文件或目录权限"
- 8.2 c h o w n 指令 − " 修改文件或目录权限 " \color{Fuchsia} chown指令 - "修改文件或目录权限" chown指令−"修改文件或目录权限"
- 8.3 c h g r p 指令 − " 更改文件或目录的组 " \color{Fuchsia} chgrp指令 - "更改文件或目录的组" chgrp指令−"更改文件或目录的组"
- 8.4 u m a s k 指令 − " 设置文件权限掩码 " \color{Fuchsia} umask指令 - "设置文件权限掩码" umask指令−"设置文件权限掩码"
- 九 其它指令
-
- 9.1 z i p / u n z i p 指令 \color{Fuchsia}9.1 zip/unzip 指令 9.1zip/unzip指令
- 9.2 b c 指令 \color{Fuchsia}bc指令 bc指令
- 9.3 u n a m e − r 指令 \color{Fuchsia}uname -r 指令 uname−r指令
- 9.4 t a r 指令 \color{Fuchsia}tar指令 tar指令
- 9.5 a l i a s 指令 − " 取别名 " \color{Fuchsia}alias指令 - "取别名" alias指令−"取别名"
- 9.6 f i l e 指令 \color{Fuchsia} file 指令 file指令
- 十 粘滞位(了解即可)
- 11 最后
💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍
点赞、收藏与分享:觉得这篇文章对你有帮助吗?别忘了点赞、收藏并分享给更多的小伙伴哦!你们的支持是我不断进步的动力! 🚀
分享给更多人:如果你觉得这篇文章对你有帮助,欢迎分享给更多对Linux OS感兴趣的朋友,让我们一起进步!
接上篇 -> 【Linux篇】初识Linux指令(上篇):本篇博客将详细介绍一些与“查找”相关的主要 L i n u x \color{Red}Linux Linux指令。同时,我们还将深入学习与权限管理以及文件的增删改操作相关的 L i n u x \color{Red}Linux Linux指令。请跟随小编的步伐,一起进入学习之旅。
三 文件权限与管理
3.1 必要性
Linux 文件权限与管理对于系统安全和稳定至关重要。通过正确设置文件的读、写、执行权限,可以有效防止未经授权的访问和操作,确保数据的安全性。同时,合理的权限管理有助于限制用户或程序对系统资源的访问,避免潜在的安全漏洞和不必要的风险。因此,掌握文件权限和管理对于保护系统、提升效率以及避免误操作非常重要。
3.2 文件访问权限
在Linux中,每个文件和目录都有访问权限,限定谁可以读、写和执行该文件。文件的访问权限分为三类:
- r (读) \color{Red}r(读) r(读): 对⽂件⽽⾔,具有 读取 \color{Red}读取 读取⽂件内容的权限。(对⽬录来说,具有 浏览 \color{Red}浏览 浏览该⽬录信息的权限。)
- w (写) \color{Red}w(写) w(写):对⽂件⽽⾔,具有 修改 \color{Red}修改 修改⽂件内容的权限。(对⽬录来说具有 删除移动 \color{Red}删除移动 删除移动⽬录内⽂件的权限。)
- x (写) \color{Red}x(写) x(写):对⽂件⽽⾔,表示可以 执⾏ \color{Red}执⾏ 执⾏⽂件;(对⽬录来说,具有 可 进⼊ \color{Red}进⼊ 进⼊⽬录的权限。)
Linux文件下详细细节信息如下图:
示例:
drwxrwxr-x 3 \color{RoyalBlue}3 3wch_1 wch_1 4096 \color{RoyalBlue}4096 4096 Mar 11 20 \color{RoyalBlue}20 20:20 test
解释: r w x \color{Red}rwx rwxrwx表示拥有者具有读、写、执行文件权限; r w x \color{Red}rwx rwxrwx表示所属者具有读、写、执行文件权限; r − x \color{Red}r-x r−xr-x表示 其他用户 \color{Red}其他用户 其他用户具有读,执行该文件权限,但没有写的权限。- 表示没有该权限!!!
四 文件与目录管理命令
4.1 c p 命令 − " c o p y " (拷贝) \color{Fuchsia}cp命令 - "copy"(拷贝) cp命令−"copy"(拷贝)
命令格式:
cp [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
功能:
- 复制⽂件或⽬录
常用选项:
- − f \color{Fuchsia}-f −f 或 − − f o r c e \color{Fuchsia}--force −−force强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在。
- − i \color{Fuchsia}-i −i 或 − − i n t e r a c t i v e \color{Fuchsia}--interactive −−interactive 覆盖⽂件之前先询问⽤⼾。
- − r \color{Fuchsia}-r −r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理。
示例:
cp -rf test test-backup
该命令会强制递归将 t e s t \color{Red}test test目录下所有的文件和目录拷贝至 t e s t − b a c k u p \color{Red}test-backup test−backup目录下。
本实例图示(如下):
4.2 m v 命令 − " m o v e " (移动文件或重命名) \color{Fuchsia} mv命令 - "move"(移动文件或重命名) mv命令−"move"(移动文件或重命名)
命令格式:
mv [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
功能:
- 将已存在的文件可以重命。
- 如果当前工作路径存在相同文件名,则和多为一。
常用选项:
− f : \color{Red}-f: −f:如果⽬标⽂件已经存在,不会询问⽽强制进行覆盖。
− i \color{Red}-i −i:若⽬标⽂件 ( d e s t i n a t i o n \color{Red}destination destination) 已经存在时,就会询问是否覆盖。
示例:
mv -i yourfile.txt myfile.txt
该命令会询问用户(mv: overwrite ‘myfile.txt’? y)是否确定mv。
五 文件查看与编辑命令
5.1 c a t − " c o n c a t e n a t e " (查看文件内容) \color{Fuchsia}cat - "concatenate"(查看文件内容) cat−"concatenate"(查看文件内容)
命令格式:
cat [选项] [⽂件]
功能:
- 查看⽬标⽂件的内容
常用选项:
- − b \color{Red}-b −b :对⾮空输出⾏编号
- − n \color{Red}-n −n :对输出的所有⾏编号
- − s \color{Red}-s −s : 不输出多⾏空⾏
示例:
cat -n mytest.txt
该命令会查看 m y t e s t . t x t \color{Red}mytest.txt mytest.txt 文件下的内容,并打印文件内容至显示器。
5.2 m o r e 命令 − " 分页查看文件 " \color{Fuchsia} more命令 - "分页查看文件" more命令−"分页查看文件"
命令格式:
more [选项]
功能:
- 以分页的方式查看文件内容,尤其适用于内容较多的文件。使用 m o r e \color{Red}more more时,文件内容会逐页显示,用户可以按空格键翻到下一页,按 q \color{Red}q q 退出查看。
常用选项:
- − n \color{Red}-n −n 指定输出⾏数。
- q \color{Red}q q 退出 m o r e \color{Red}more more。
示例 :
more -10 temp.txt
该命令会查看 t e m p . t x t \color{Red}temp.txt temp.txt文件从前往后的前 10 \color{Red}10 10行。
5.3 l e s s 命令 − " 分页查看文件(支持向前、向后滚动) " \color{Fuchsia} less命令 - "分页查看文件(支持向前、向后滚动)" less命令−"分页查看文件(支持向前、向后滚动)"
命令格式:
less [参数] ⽂件
功能:
- 与 m o r e \color{Red}more more相似, l e s s \color{Red}less less也用于分页显示文件内容,但相比 m o r e \color{Red}more more, l e s s \color{Red}less less更强大,支持向前翻页(使用 b \color{Red}b b键)以及向后翻页(使用方向键)。它还允许在文件中进行搜索,按 q \color{Red}q q退出查看。
常用选项:
- − i \color{Red}-i −i: 忽略搜索时的⼤⼩写
- − N \color{Red}-N −N: 显⽰每⾏的⾏号
- / \color{Red}/ / 字符串:向下搜索“字符串”的功能
- ? \color{Red}? ? 字符串:向上搜索“字符串”的功能
- n \color{Red}n n:重复前⼀个搜索(与 / 或 ? 有关)
- N \color{Red}N N:反向重复前⼀个搜索(与 / 或 ? 有关)
- q \color{Red}q q: q u i t \color{Red}quit quit 退出。
示例:
cnt=0; while [ $cnt -le 2000 ]; do echo “hello
$cnt”; let cnt++; done > temp.txt
5.3 h e a d 命令 − " 查看文件的前几行 " \color{Fuchsia} head命令 - "查看文件的前几行" head命令−"查看文件的前几行"
命令格式:
head [参数]… [⽂件]…
功能:
- 查看文件的前几行。
常用选项:
- − n \color{Red}-n −n: 显⽰的⾏数
示例:
h e a d \color{Red}head head-10 temp.txt
该命令会显示 t e m p . t x t \color{Red}temp.txt temp.txt 文件前 10 \color{Red}10 10行内容。
5.4 t a i l 命令 − " 查看文件的后几行 " \color{Fuchsia} tail命令 - "查看文件的后几行" tail命令−"查看文件的后几行"
命令格式:
tail 必要参数 [⽂件]
- 功能:⽤于显⽰指定⽂件末尾内容,不指定⽂件时,作为输⼊信息进⾏处理。常⽤查看⽇志⽂件。
常用选项:
- − f \color{Red}-f −f: 循环读取
- − n \color{Red}-n −n: 显⽰⾏数
示例:
head -200 temp.txt | tail -20
该命令会显示 t e m p . t x t \color{Red}temp.txt temp.txt文件180行至200行的内容。
补充:|:称为管道,把前面输出结果作为后面的起始条件。
5.5 n a n o / v i m . v i 命令 − " 文本编辑器 " \color{Fuchsia} nano/vim.vi 命令 - "文本编辑器" nano/vim.vi命令−"文本编辑器"
5.5.1 n a n o \color{Red}nano nano:
简介: n a n o \color{Red}nano nano 是一个简单、易用的文本编辑器,适合新手使用。它的界面直观,命令操作以快捷键形式显示在屏幕底部。
特点:操作简单,几乎不需要记忆复杂的命令。适用于编辑小型配置文件或简单文本。
常用命令:
C t r l + O \color{Red}Ctrl + O Ctrl+O:保存文件
C t r l + X \color{Red}Ctrl + X Ctrl+X:退出编辑器
C t r l + K \color{Red}Ctrl + K Ctrl+K:剪切文本
C t r l + U \color{Red}Ctrl + U Ctrl+U:粘贴文本
5.5.2 v i m \color{Red}vim vim:
简介: v i m \color{Red}vim vim是 v i \color{Red}vi vi 的增强版,是一个功能强大的文本编辑器。它提供了多种编辑模式,如普通模式、插入模式、命令模式等,适用于编程、配置文件编辑等。
特点:功能强大、灵活,但学习曲线较陡。适用于熟练用户,支持高级文本编辑和宏功能。
常用命令:
- i \color{Red}i i:进入插入模式
- E s c \color{Red}Esc Esc:返回普通模式
- w \color{Red}w w:保存文件
- q \color{Red}q q:退出编辑器
- w q \color{Red}wq wq:保存并退出
- d d \color{Red}dd dd:删除一行
- y y \color{Red}yy yy:复制一行
5.5.3 v i \color{Red}vi vi:
简介: v i \color{Red}vi vi是最早的文本编辑器之一,几乎所有 Unix 和 Linux 系统中都自带。它的操作方式与 v i m \color{Red}vim vim类似,但功能不如 v i m \color{Red}vim vim强大。
特点:操作简洁,但也较为复杂,适合有一定经验的用户。 v i \color{Red}vi vi主要由普通模式和插入模式组成。
常用命令:与上述vim一样,不再重复说明。
总体来说: nano 更适合初学者,vi 和 vim 提供更多高级功能,适合有一定经验的用户进行复杂的文本编辑。
6 时间有关指令
6.1 d a t e 指令 \color{Fuchsia} date 指令 date指令
命令格式:
date [OPTION]… [+FORMAT]
功能:
- 显示时间与时间戳。
示例:
date +%Y/%m/%d
该命令会显示当前时间 。
6.2 c a l 指令 \color{Fuchsia} cal 指令 cal指令
命令格式:
cal 参数 [年份]
功能:
- ⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份和年份。
常用选择:
- − 3 \color{Red}-3 −3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
- − j \color{Red}-j −j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
- − y \color{Red}-y −y 显⽰当前年份的⽇历
示例:
cal -y
该实例效果图如下:
七 文件查找与搜索命令
7.1 f i n d 命令 − " 查找 " \color{Fuchsia} find命令 -"查找" find命令−"查找"
命令格式:
find pathname -options
功能:
- ⽤于在⽂件树中查找⽂件,并作出相应的处理(可能访问磁盘)
常用选项:
- − n a m e < p a t t e r n > \color{Red}-name <pattern> −name<pattern>:按文件名查找(支持通配符 * 和 ?)。
find /path/to/dir -name “*.txt” # 查找所有扩展名为 .txt 的文件
- − i n a m e < p a t t e r n > \color{Red}-iname <pattern> −iname<pattern>:按文件名查找,忽略大小写
find /path/to/dir -iname “*.txt” # 查找所有扩展名为 .txt 的文件,大小写不敏感
- − t y p e < t y p e > \color{Red}-type <type> −type<type>:按文件类型查找 ->f :普通文件 d:目录 l:符号链接
find /path/to/dir -type f # 查找所有普通文件
find /path/to/dir -type d # 查找所有目录
- − s i z e < n > \color{Red}-size <n> −size<n>:按文件大小查找,n 是文件大小。
例如,+100M 表示大于 100MB 的文件,-10k 表示小于 10KB 的文件。
find /path/to/dir -size +100M # 查找大于 100MB 的文件
- − m t i m e < n > \color{Red}-mtime <n> −mtime<n>:按文件的修改时间查找。n 可以是:+n:修改时间超过 n 天 ,-n:修改时间在 n 天之内 n:修改时间恰好为 n 天
find /path/to/dir -mtime -7 # 查找过去 7 天内修改的文件
- − a t i m e < n > \color{Red}-atime <n> −atime<n>:按文件的访问时间查找。
find /path/to/dir -atime +7 # 查找 7 天前访问过的文件
- − u s e r < u s e r n a m e > \color{Red}-user <username> −user<username>:按文件所有者查找。
find /path/to/dir -user root # 查找 root 用户拥有的文件
- − g r o u p < g r o u p n a m e > \color{Red}-group <groupname> −group<groupname>:按文件所属组查找。
find /path/to/dir -group staff # 查找属于 staff 组的文件
- − e x e c < c o m m a n d > \color{Red}-exec <command> {} \; −exec<command>:对查找到的每个文件执行指定命令。{} 是占位符,代表当前文件。
find /path/to/dir -name “*.txt” -exec cat {} ; # 显示所有 .txt 文件的内容
- − p r i n t \color{Red}-print −print:显示符合条件的文件路径(默认行为,通常不需要显式写出)。
find /path/to/dir -name “*.txt” -print # 输出所有 .txt 文件的路径
7.2 w h i c h 命令 \color{Fuchsia} which 命令 which命令
功能:
- 搜索系统指定的指令
示例:
which ls
该指令显示将 l s \color{Red}ls ls命令指定的路径 : / u s r / b i n / l s \color{Purple}/usr/bin/ls /usr/bin/ls
7.3 w h e r e i s 命令 \color{Fuchsia} whereis 命令 whereis命令
功能
- ⽤于找到程序的源、⼆进制⽂件或⼿册
示例:
whereis ls
输出:
l s \color{Purple}ls ls: /usr/bin/ls /usr/share/man/man1/ls.1posix.gz /usr/share/man/man1/ls.1.gz
7.4 g r e p 命令 \color{Fuchsia} grep 命令 grep命令
命令格式:
grep [选项] 搜寻字符串 ⽂件
功能:
- 在⽂件中搜索字符串,将找到的⾏打印出来
常用选项:
- − i \color{Red}-i −i :忽略⼤⼩写的不同,所以⼤⼩写视为相同
- − n \color{Red}-n −n :顺便输出⾏号
- − v \color{Red}-v −v :反向选择,亦即显⽰出没有 ‘搜寻字符串’ 内容的那⼀⾏
示例:
[whb@bite-alicloud test]$ cat temp.txt
abcd
ABCD
hello
bite
1234
输出:
[whb@bite-alicloud test]$ grep -v “abcd” temp.txt
ABCD
hello
bite
1234
[whb@bite-alicloud test]$ grep -vn “abcd” temp.txt
2:ABCD
3:hello
4:bite
5:1234
[whb@bite-alicloud test]$ grep -vni “abcd” temp.txt
3:hello
4:bite
5:1234
八 文件权限与所有者管理命令
8.1 c h m o d 指令 − " 修改文件或目录权限 " \color{Fuchsia} chmod指令 - "修改文件或目录权限" chmod指令−"修改文件或目录权限"
命令格式:
chmod [参数] 权限 ⽂件名
功能:
- 设置⽂件的访问权限
常用选项:
- − R \color{Red}-R −R: 递归修改⽬录和⽂件的权限。
- u/g/o +/-(r/w/x)
- 权限值表示法:使用八进制数0表示没有,1表示有。
示例:
chmod 755 file.txt # 设置文件的权限为 rwx-r-xr-x
chmod 644 file.txt # 设置文件的权限为 rw-r–r–
chmod 777 file.txt # 设置文件的权限为 rwx-rwx-rwx
8.2 c h o w n 指令 − " 修改文件或目录权限 " \color{Fuchsia} chown指令 - "修改文件或目录权限" chown指令−"修改文件或目录权限"
命令格式:
chmod [参数] 用户名 ⽂件名
功能:
- 修改⽂件的拥有者
示例:
chown user1 filegroup1
该例子会将文件 f i l e g r o u p 1 \color{Red}filegroup1 filegroup1的拥有者写改成 u s e r 1 \color{Red}user1 user1。
8.3 c h g r p 指令 − " 更改文件或目录的组 " \color{Fuchsia} chgrp指令 - "更改文件或目录的组" chgrp指令−"更改文件或目录的组"
命令格式:
chgrp [参数] ⽤⼾组名 ⽂件名
功能:
- 修改⽂件或⽬录的所属组
常用选项:
- − R \color{Red}-R −R 递归修改⽂件或⽬录的所属组
示例:
chgrp users /abc/f2
该例子会将上述路径下文件或目录的所属组修改为 u s e r s \color{Red}users users
8.4 u m a s k 指令 − " 设置文件权限掩码 " \color{Fuchsia} umask指令 - "设置文件权限掩码" umask指令−"设置文件权限掩码"
命令格式:
umask 权限值
功能:
- 查看或修改⽂件掩码
最终权限(默认) =起始权限 & ( u m a s k \color{Red}~umask umask)
新建⽂件夹默认权限= 0666 \color{Red}0666 0666
新建⽬录默认权限= 0777 \color{Red}0777 0777
示例:
umask 0777 //将umask设置为0777
九 其它指令
9.1 z i p / u n z i p 指令 \color{Fuchsia}9.1 zip/unzip 指令 9.1zip/unzip指令
9.1.2 zip指令
命令格式:
: zip 压缩⽂件.zip ⽬录或⽂件
功能:
z i p \color{Red}zip zip用于创建压缩文件,它可以将多个文件或目录压缩成一个 . z i p \color{Red}.zip .zip 文件
常用选项:
- − r \color{Red}-r −r:递归处理,将指定⽬录下的所有⽂件和⼦⽬录⼀并处理
示例:
将test2⽬录压缩: zip test2.zip test2/*
9.1.2 unzip指令
命令格式:
unzip [选项] 压缩文件名
功能:
- u n z i p \color{Red}unzip unzip用于解压缩 . z i p \color{Red}.zip .zip文件。
常用选项:
- − d \color{Red}-d −d:指定解压缩的目标目录。
示例:
unzip archive.zip -d /path/to/destination # 将 archive.zip 解压到指定目录
补充:如果后面没有路径,则解压到当前的工作路径
9.2 b c 指令 \color{Fuchsia}bc指令 bc指令
命令格式:
bc 数字 运算符 数字
功能:
- 进行浮点数运算。
示例:
bc
3* 9
27
9.3 u n a m e − r 指令 \color{Fuchsia}uname -r 指令 uname−r指令
命令格式:
uname [选项]
功能:
- u n a m e \color{Red}uname uname⽤来获取电脑和操作系统的相关信息。
常用选项:
- − a \color{Red}-a −a或 ‒ a l l \color{Red}‒all ‒all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
示例:
uname -r
该命令会显示当前 L i n u x \color{Red}Linux Linux内核版本号。
9.4 t a r 指令 \color{Fuchsia}tar指令 tar指令
命令格式:
tar [-cxtzjvf] ⽂件与⽬录 …
功能:
- 打包/解包,不打开它,直接看内容
常用选项:
- c v z f \color{Red}cvzf cvzf:展现打包压缩过程
- x v z f \color{Red}xvzf xvzf: 解包解压过程
示例:
tar -xvzf XXX.tgz -C //解压缩到指定路径
9.5 a l i a s 指令 − " 取别名 " \color{Fuchsia}alias指令 - "取别名" alias指令−"取别名"
功能:
- 设置命令的别名
示例:
alias hello=‘ls -a -l -n’
[whb@bite-alicloud test]$ which hello
alias hello=‘ls -a -l -n’
/usr/bin/ls
该命令将 l s − a − l − n \color{Red}ls -a -l -n ls−a−l−n 命令取别名为 h e l l o \color{Red}hello hello。
9.6 f i l e 指令 \color{Fuchsia} file 指令 file指令
命令格式:
file [选项] ⽂件或⽬录…
功能:
- 辨识⽂件类型。
常⽤选项:
- − c \color{Red}-c −c:详细显⽰指令执⾏过程,便于排错或分析程序执⾏的情形。
- − z \color{Red}-z −z :尝试去解读压缩⽂件的内容。
file -cz mytest.txt
cont offset type opcode mask value desc
该实例用来显示文件类型并且对文件内容进行深入分析,特别是对于一些压缩文件或者更复杂的文件结构进行解压和识别。
十 粘滞位(了解即可)
10.1 粘滞位定义 \color{Fuchsia}粘滞位定义 粘滞位定义
粘滞位( S t i c k y B i t \color{Purple}Sticky Bit StickyBit) 是一种特殊的文件权限,它用于指定文件或目录的访问控制行为。最常见的应用场景是在 Linux/Unix 系统中的目录权限管理,尤其是在公共目录(例如 /tmp)中。它的引入主要是为了增强安全性和防止文件被不必要地删除或修改。
10.2 引入背景 \color{Fuchsia}引入背景 引入背景
在多用户环境中,公共目录通常会被多人访问、写入和修改。例如,/tmp 目录是一个临时存储空间,所有用户都有写权限。如果没有粘滞位,任何用户都可以删除其他用户在该目录下创建的文件,这样就可能导致不可预期的安全问题或数据丢失。
引入粘滞位后,虽然用户依然可以写入文件,但只有文件的所有者才能删除或修改自己的文件,其他用户即使有写权限,也无法删除或修改非自己拥有的文件。
10.3 粘滞位作用 \color{Fuchsia}粘滞位作用 粘滞位作用
在未设置粘滞位的普通目录中,所有用户(包括文件的拥有者、同组用户、其他用户)都可以删除或修改目录中的任何文件。
但是,当粘滞位被设置后,目录中的文件只能由文件的所有者、目录的所有者或超级用户(root)删除或修改。其他用户不能删除或修改他们没有权限的文件,即使他们在该目录中有写权限。
10.4 如何设置和查看粘滞位 \color{Fuchsia}如何设置和查看粘滞位 如何设置和查看粘滞位
10.4.1 查看目录的粘滞位:
使用 ls -l 命令可以查看文件或目录的权限信息,如果目录上设置了粘滞位,输出的权限信息中会在最后一位显示 t(对于普通用户的写权限而言)。
ls -l /tmp
示例输出:
drwxrwxrwt 10 root root 4096 Mar 14 09:12 /tmp
这里的 t 就是表示 /tmp 目录上启用了粘滞位。
10.4.2 设置粘滞位:
使用 chmod 命令来设置或移除粘滞位。
- 设置粘滞位:
chmod +t
- 例如,设置 /tmp 目录的粘滞位:
chmod +t /tmp
- 移除粘滞位:
chmod -t
- 其他相关权限:
粘滞位通常与目录权限一起使用。例如,在 /tmp 目录中,可能会看到 rwxrwxrwt 这样的权限,其中 t 表示粘滞位。
10.5 粘滞位的实际例子 \color{Fuchsia}粘滞位的实际例子 粘滞位的实际例子
假设用户 alice 和 bob 都可以在 /tmp 目录中写入文件:
如果没有粘滞位,bob 可以删除或修改 alice 在 /tmp 目录下创建的文件。
如果设置了粘滞位,bob 即使有写权限,也不能删除或修改 alice 的文件,除非 bob 是该文件的所有者。
10.6 粘滞位的限制 \color{Fuchsia} 粘滞位的限制 粘滞位的限制
粘滞位只能影响目录,对于文件是没有影响的。而且,仅限于文件的删除和修改权限,对于文件内容的修改并不受到粘滞位的限制。
10.7 总结 \color{Fuchsia}总结 总结
粘滞位主要是为了提高公共目录(如 /tmp)的安全性。它防止普通用户删除或修改非自己拥有的文件,从而避免意外的数据丢失或恶意的文件操作。通过合理设置粘滞位,可以确保多用户环境下的文件安全。
11 最后
本篇文章详细介绍了 Linux 中的一些常用命令,尤其是文件管理、编辑命令以及权限管理。它从基础命令到稍微复杂一些的工具都进行了覆盖。对于学习 Linux 命令的读者来说,这篇文章的结构非常清晰,循序渐进,能够帮助理解不同命令的使用场景与方法。
具体来说,文件权限和管理是 Linux 系统的重要组成部分。通过 chmod、chown 和 chgrp 等命令,用户能够对文件和目录的访问权限进行精细管理。这些操作对于确保系统的安全性至关重要。
在文件操作方面,常见的命令如 cp、mv、rm 等,能够实现文件的复制、移动、重命名及删除。而对于大文件的查看,可以通过 cat、more 和 less 等命令进行高效地分页查看。特别是 less 命令,它比 more 更加灵活,支持向前向后滚动,适合查看大型文件。
此外,粘滞位(sticky bit)也是本文的一个重点。虽然它的功能较为简单,但在某些情况下,设置粘滞位可以有效防止用户对公共目录中的文件进行删除操作。文章中也介绍了如何查看和设置粘滞位。
如果你想深入理解 Linux 命令及其用法,可以通过文章中的示例进行练习和实验,这样可以帮助你更好地掌握这些基础工具。
路虽远,行则将至;事虽难,做则必成
亲爱的读者们,下一篇文章再会!!! \color{Red}亲爱的读者们,下一篇文章再会!!! 亲爱的读者们,下一篇文章再会!!!