11、Linux文件与目录权限

发布时间 2023-10-20 09:07:16作者: gcc_com

Linux文件与目录权限

所谓权限管理,其实就是指对不同的用户,设置不同的文件访问权限,包括对文件的读、写、删除等,在 Linux 系统中,每个用户都具有不同的权限,拿非 root 用户来说,它们只能在自己的主目录下才具有写权限,而在主目录之外,只具有访问和读权限。

一、Linux 文件基本属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

1、文件介绍

随便查看一个文件,命令如下(空格分隔):

[root@localhost ~]# ll
drwxr-xr-x. 2 root root    6 Sep 28 20:28 Desktop
-rw-r--r--. 1 root root 2076 Sep 28 20:05 initial-setup-ks.cfg
①第一部分:第一个字段【d】
实例中,Desktop文件的第一个字符用d表示。d在Linux中代表该文件是一个目录文件。
当第一个字段为d则是目录
当第一个字段为-则是文件
当第一个字段为l则表示为链接文档(link file)
当第一个字段为b则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
当第一个字段为c则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
当第一个字段为s则表示为套接字
--------------------------------------------------------------------------------------------------------
①第一部分:第二个字段到.为止【rwxr-xr-x.】
这九个字符以三个为一组,且均为rwx的三个参数的组合。其中,r代表可读(read)、w代表可写(write)、x代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号-代替。

每个文件的属性都由左边前十个字符来确定:
1、第0位确定文件类型;2、第1-3位确定属主(该文件的所有者)拥有该文件的权限;3、第4-6位确定属组(所有者的同组用户)拥有该文件的权限;4、第7-9位确定其他用户拥有该文件的权限。	其中,第1、4、7位表示读权限,如果用r字符表示,则有读权限,如果用 - 字符表示,则没有读权限;第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

Linux的权限不是很细致,只有RWX三种:
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增、修改、删除文件内容的权限;对目录来说,具有新建、删除、修改、移动目录内文件的权限。
x(Execute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
注意:
1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外。
4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件。
5、对目录的操作都算执行。

数字设定法
模式  数字 
rwx   7 
rw-   6 
r-x   5 
r--   4 
-wx   3 
-w-   2 
--x   1 
---   0
优点:简单粗暴
缺点:力度不够

文字设定法
u :属主
g :属组
o :其他用户
a :所有用户
优点:力度较小
缺点:麻烦

算数运算符:+、-、=
②第二部分:连接数【2】
③第三部分:属主【root】
④第四部分:属组【root】
⑤第五部分:文件大小【6】
⑥-⑧第六到八部分:日期(月/日/点)【Sep 28 20:28】
⑨第九部分:文件名【Desktop】

2、Linux文件属主和属组

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

在以上实例中,mysql文件是一个目录文件,属主和属组都为mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。对于root用户来说,一般情况下,文件的权限对其不起作用。

二、更改文件属性

在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:

  • chown (change owner) : 修改所属用户与组。
  • chmod (change mode) : 修改用户的权限。

1、chmod命令

1、chmod命令使用数字修改文件权限

拿rwxrw-r-x来说,所有者、所属组和其他人分别对应的权限值为:
所有者 = rwx = 4+2+1 = 7
所属组 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5
所以,此权限对应的权限值就是765。
使用数字修改文件权限的chmod命令基本格式为:
命令:【[root@localhost ~]# chmod [-R] [权限值] [文件名/目录名]】
参数:-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。(可不加)
示例:
[root@localhost ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 Sep 22 2004 .bashrc
[root@localhost ~]# chmod 777 .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc

2、chmod命令使用字母修改文件权限

既然文件的基本权限就是3种用户身份(所有者、所属组和其他人)搭配3种权限(rwx),chmod 命令中用 u、g、o 别代表3种身份,还用a表示全部的身份(all 的缩写)。另外,chmod命令仍使用r、w、x分别表示读、写、执行权限。

示例:
设定.bashrc 文件的权限为 rwxr-xr-x,则可执行如下命令:
[root@localhost ~]# chmod u=rwx,go=rx .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc

2、chown命令

chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者/属主,除此之外,这个命令也可以修改文件(或目录)的所属组。

Linux 系统中,用户等级权限的划分是非常清楚的,root用户拥有最高权限,可以修改任何文件的权限,而普通用户只能修改自己文件的权限(所有者是自己的文件)。

需要修改所有者/属主:

当只需要修改所有者/属主时,可使用如下chown命令的基本格式:
命令:[root@localhost ~]# chown [-R] [所有者] [文件或目录]
参数:-R(注意大写)选项表示连同子目录中的所有文件,都更改所有者。(可不加)

示例:
其实,修改文件的所有者,更多时候是为了得到更高的权限,举一个实例:
[root@localhost ~]# touch file
#由root用户创建file文件
[root@localhost ~]# ll file
-rw-r--r--. 1 root root 0 Apr 17 05:12 file
#文件的所有者是root,普通用户user对这个文件拥有只读权限
[root@localhost ~]# chown user file
#修改文件的所有者
[root@localhost ~]# ll file
-rw-r--r--. 1 user root 0 Apr 17 05:12 file
#所有者变成了user用户,这时user用户对这个文件就拥有了读、写权限
//可以看到,通过修改 file文件的所有者,user用户从其他人身份(只对此文件有读取权限)转变成了所有者身份,对此文件拥有读和写权限。

同时更改所有者和所属组:

如果需要同时更改所有者和所属组,chown命令的基本格式为:
命令:[root@localhost ~]# chown [-R] [所有者:所属组] [文件或目录]
参数:-R(注意大写)选项表示连同子目录中的所有文件,都更改所有者。(可不加)
示例:
[root@localhost ~]# chown user:group file
[root@localhost ~]# ll file
-rw-r--r--. 1 user group 0 Apr 17 05:12 file

注意:
1、在chown命令中,所有者和所属组中间也可以使用点(.),但会产生一个问题,如果用户在设定账号时加入了小数点(例如zhangsan.temp),就会造成系统误判。因此,建议大家使用冒号连接所有者和所属组。
2、当然,chown命令也支持单纯的修改文件或目录的所属组,例如chown:group install.log就表示修改install.log文件的所属组,但修改所属组通常使用chgrp命令,因此并不推荐大家使用chown命令。
3、另外需要注意的一点是,使用 chown 命令修改文件或目录的所有者(或所属者)时,要保证使用者用户(或用户组)存在,否则该命令无法正确执行,会提示 "invalid user" 或者 "invaild group"。

3、chgrp命令

chgrp命令用于修改文件(或目录)的所属组。可以将chgrp理解为是"change group"的缩写。
chgrp命令的基本格式为:
命令:[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)
参数:-R(注意是大写)选项长作用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息。
示例:当以 root身份登录 Linux系统时,主目录中会存在一个名为install.log的文件,我们可以使用如下方法修改此文件的所属组:
[root@localhost ~]# groupadd group1
#新建用于测试的群组 group1
[root@localhost ~]# chgrp group1 install.log
#修改install.log文件的所属组为group1
[root@localhost ~]# ll install.log
-rw-r--r--. 1 root group1 78495 Nov 17 05:54 install.log
#修改生效
[root@localhost ~]# chgrp testgroup install.log
chgrp: invaild group name 'testgroup'
可以看到,在具有 group1 群组的前提下,我们成功修改了 install.log 文件的所属组,但我们再次试图将所属组修改为 testgroup 时,命令执行失败,就是因为系统的 /etc/group 文件中,没有 testgroup 群组。
//因此使用chgrp命令需要注意的一点是,要被改变的群组名必须是真实存在的,否则命令无法正确执行,会提示"invaild group name"。

4、chattr命令

管理 Linux 系统中的文件和目录,除了可以设定普通权限和特殊权限外,还可以利用文件和目录具有的一些隐藏属性。

可以实现对root用户的限制。

chattr命令,专门用来修改文件或目录的隐藏属性,只有root用户可以使用。该命令的基本格式为:
命令:[root@localhost ~]# chattr [+-=] [参数] [文件/目录名]
参数:
i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件。(防止系统中某个关键文件被篡改)
a:如果对文件设置a属性,那么只能在文件中増加数据,但是不能删除和修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件。(适用于各种日志文件)
u:设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录。
s:和u相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用0填充所占用的区域),不可恢复。(保密性删除文件或目录)
S:即时更新文件或目录。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
+:表示给文件或目录添加属性;-:表示移除文件或目录拥有的某些属性;=:表示给文件或目录设定一些属性。
示例:
【例1】给文件赋予i属性。
[root@localhost ~]# touch ftest	#建立测试文件
[root@localhost ~]# chattr +i ftest
[root@localhost ~]# rm -rf ftest
rm:cannot remove 'ftest':Operation not permitted	#无法删除"ftesr",操作不允许	#被赋予i属性后,root不能删除
[root@localhost ~]# echo 111>>ftest
bash:ftest:Permission denied	#权限不够,不能修改文件中的数据
//可以看到,设置有i属性的文件,即便是root用户,也无法删除和修改数据。

【例2】为目录赋予i属性。
[root@localhost ~]# mkdir dtest	#建立测试目录
[root@localhost dtest]# touch dtest/abc	#再建立一个测试文件abc
[root@localhost ~]# chattr +i dtest	#给目录赋予i属性
[root@localhost ~]# cd dtest
[root@localhost dtest]# touch bed
touch: cannot touch 'bed':Permission denied	#无法创建"bcd",权限不够,dtest目录不能新建文件
[root@localhost dtest]# echo 11>>abc
[root@localhost dtest]# cat abc
11	#可以修改文件内容
[root@localhost dtest]# rm -rf abc
rm: cannot remove 'abc': Permission denied	#无法删除"abc",权限不够
//一旦给目录设置i属性,即使是root用户,也无法在目录内部新建或删除文件,但可以修改文件内容。
//给设置有i属性的文件删除此属性也很简单,只需将 chattr 命令中 + 改为 - 即可。

注意:通常情况下,不要使用 chattr 命令修改 /、/dev/、/tmp/、/var/ 等目录的隐藏属性,很容易导致系统无法启动。另外,chatrr 命令常与lsattr命令合用,前者修改文件或目录的隐藏属性,后者用于查看是否修改成功。

5、lsattr命令

使用 chattr 命令配置文件或目录的隐藏属性后,可以使用 lsattr 命令查看。

lsattr 命令,用于显示文件或目录的隐藏属性,其基本格式如下:
命令:[root@localhost ~]# lsattr [参数] [文件/目录名]
参数:
-a:后面不带文件或目录名,表示显示所有文件和目录(包括隐藏文件和目录)。
-d:如果目标是目录,只会列出目录本身的隐藏属性,而不会列出所含文件或子目录的隐藏属性信息。
-R:和 -d 恰好相反,作用于目录时,会连同子目录的隐藏信息数据也一并显示出来。
示例:
【例1】
[root@localhost ~]#lsattr -a
-----------e- ./.
------------- ./..
-----------e- ./.gconfd
-----------e- ./.bashrc
...
【例2】
[root@localhost ~]#lsattr -d /back/log
-----a------e- /back/log
#查看/back/log目录,发现其拥有a和e属性
【例3】
[root@localhost ~]# touch attrtest
-----------e- attrtest
[root@localhost ~]# chattr +aij attrtest
[root@localhost ~]# lsattr attrtest
----ia---j-e- attrtest
//不使用任何选项,lsattr仅用于显示文件的隐藏信息,不适用于目录。

三、其他

1、权限掩码

[root@localhost ~]# cat /etc/profile	【/etc/profile文件】
作用域:全局(针对所有用户),每个用户登入时都需要加载这个文件。
//在整个/etc/profile文件当中有一个叫umask 022(针对所有用户)的东西,整个umask决定了文件创建最初的文件权限。

[root@localhost ~]# cat /etc/bashrc 	【/etc/bashrc文件】
作用域:针对当前用户

//对于目录来说,满权限是777,然后用0777-0022=0655(目录权限)(777前面的0可以忽略)
//对于文件来说,满权限是666,然后用0666-0022=0644(文件权限)(666前面的0可以忽略)

环境变量文件:/etc/profile文件和/etc/bashrc文件。

2、特殊权限

Linux中的特殊权限一共包含了一下三种:

SUID(属主特殊权限)

SGID(属组特殊权限)

SBIT(粘滞位)

①SBIT(粘滞位)

粘滞位权限都是针对其他⽤户(other)设置。

粘滞位权限只能针对目录设置,对于文件无效。(?)

作用:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据。

粘滞键后门详述。(略)粘滞键与粘滞位是两个不同的概念。

	粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,也只能针对⽬录设置,对于⽂件⽆效。则设置了粘滞位后,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
  在Linux系统中⽐较典型的例⼦就是“/tmp”、 “/var/tmp”⽬录。这两个⽬录作为Linux系统的临时⽂件夹,权限为“rwxrwxrwx”,即允许任意⽤户、任意程序在该⽬录中进⾏创建、删除、移动⽂件或⼦⽬录等操作。然⽽试想⼀下,若任意⼀个普通⽤户都能够删除系统服务运⾏中使⽤的临时⽂件,将造成很大的后果。
	粘滞位权限便是针对此种情况设置,当⽬录被设置了粘滞位权限以后,即便⽤户对该⽬录有写⼊权限,也不能删除该⽬录中其他⽤户的⽂件数据,⽽是只有该⽂件的所有者和root⽤户才有权将其删除。设置了粘滞位之后,正好可以保持⼀种动态的平衡:**允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据。**
命令:chmod o+t/o-t [文件名]		//用于添加/删除粘滞位权限
//需要注意的是,粘滞位权限只能针对⽬录设置,对于⽂件⽆效。
//设置了粘滞位权限的⽬录,使⽤ls命令查看其属性时,其他⽤户权限处的“x”将变为“t”。
//如果当前位置有普通权限,则特殊权限位置为小写t;如果当前位置没有权限(普通权限),则特殊权限位置为大写T。(用于区分该文件有没有可执行权限)
示例:
例如,查看/tmp、/var/tmp⽬录本⾝的权限,确认存在“t”标记。(以下两目录本身就已经设置了o+t权限)
[root@localhost~]# ll -d /tmp
d rwxrwxrwt. 20 root root 4096 Jun 27 09:25/tmp
[ root@localhost ~]# ll -d /var/tmp
drwxrwxrwt. 2 root root 4096 Jun 26 12:08/var/tmp
粘滞位权限都是针对其他⽤户(other)设置,使⽤chmod命令设置⽬录权限时,“o+t”、 “o-t”权限模式可分别⽤于添加、移除粘滞位权限。
例如,为/test⽬录设置粘滞位权限。
[root@localhost ~]# ll -d ./test
d rwxr-xr-x. 2 root root 4096 Jun 27 09:35 ./test
[ rootalocalhost ~]# chmod o+t ./test
[root@localhost~]#ll -d ./test
drwxr-xr-t 2 root root 4096 Jun 27 09:35./test
[ hxy@localhost ~]$rm /root/test/file
rm: cannot remove `/root/test/file ' : Permission denied  #此时普通⽤户hxy便⽆法删除/root/test/file1⽂件了。
//粘滞位权限在生产环境中也被广泛应用,当需要为用户提供一个开放目录而又不希望造成管理混乱时,通过为目录设置粘滞位权限便可以解决问题。

②SUID(属主特殊权限)

u+s/u-s针对可执行文件,谁运行,谁就具有该文件的拥有者权限。

示例:
[root@localhost ~]# ll  -d  /etc/shadow
----------. 1 root root 2752 Jul 14 19:44 /etc/shadow #查看用户密码存放的文件我们可以看到是没有任何权限的
//但是当我用户在更新或者密码的时候,是需要更新shadow的内容但是又没有权限写入,所以这时候SUID便有它的用处了。
[root@localhost ~]# which  passwd		//which命令用于查找文件
/usr/bin/passwd
[root@localhost ~]# chmod u+s file
[root@localhost ~]# ll -d /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd	#此时能够看到属主的为权限为rws
[oldxie@localhost ~]$ ll  -d  /usr/bin/passwd  	#切换到普通用户的身份查看passwd这个指令的属性属主位也有SUID的权限
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

[root@localhost ~]# chmod u-s file	#删除suid
[root@localhost ~]# ll /usr/bin/passwd 
-rwxr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
[root@localhost ~]# su - xxx	#当我们将SUID的权限取消后切换用户执行paswd更改密码是没有权限的。
Last login: Thu Jul 15 17:20:44 CST 2021 on pts/0
i come to  profile.d
i come  to  /etc/profile
i come to /etc/bashrc
[xxx@localhost ~]$ ll  /usr/bin/passwd ; ll  /etc/shadow
-rwxr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd	#重点
----------. 1 root root 2970 Jul 15 17:21 /etc/shadow		#重点
//此时你再去passwd更该密码它会一直提示passwd is not match (密码不匹配) 不能够修改密码
重新加入suid:  chmod u+s  /usr/bin/passwd
或者  chmod   4755 /usr/bin/passwd  
就能够更改密码。

③SGID(属组特殊权限)

sgid (g+s/g-s)针对目录,在该目录创建的文件,属组默认继承父目录属组。

设置二进制可执行文件命令在执行的过程中会以命令的属组身份运行该命令。

设置在目录上,这时候在该目录下新建的文件/目录自动继承父级目录的属组。

[root@localhost ~]# groupadd  example 
[root@localhost ~]# useradd   ex1 -G  example  
[root@localhost ~]# useradd  ex2 -G  example 
[root@localhost ~]# mkdir  -p  /data/code 
[root@localhost ~]# chown    .example /data/code/
[root@localhost ~]# chmod   2770   /data/code/
[root@localhost ~]# echo  '1234' > /data/code/test.log
[root@localhost ~]# ll  /data/code/test.log 
-rw-r--r--. 1 root example 5 Jul 15 17:43 /data/code/test.log
[root@localhost ~]# chmod   g-s  /data/code/
[root@localhost ~]# echo  '123'> /data/code/test2.log
[root@localhost ~]# ll  /data/code/test2.log 
-rw-r--r--. 1 root root 4 Jul 15 17:45 /data/code/test2.log
//上面的示例可以看出目录在有SGID和没有SGID的情况下下新建文件属组继承的不同。

3、find命令

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

[root@localhost ~ ] # find [搜索路径] [选项] [搜索内容]
选项:(常用)
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照inode号搜索
汇总:
-mount, -xdev:只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n :在过去n分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n :在过去n天内被读取过的文件
-cmin n :在过去n分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n :在过去n天内被修改过的文件
-empty:空的文件-gid n or -group name : gid是n或是 group名称是name
-ipath p, -path p:路径名称符合p的文件,ipath 会忽略大小写
-name name, -iname name :文件名称符合name 的文件。iname 会忽略大小写
-size n :文件大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilo bytes,w是二个位元组。
-type c:文件类型是c的文件。
示例:
#1.find命令基本使用
[root@192 ~]# find . -name abcde
./abcde
提示:搜索位置越大,消耗系统资源越多。
在生产服务器上搜索的时候,尽量不在根目录下搜索,把搜索的范围尽量控制在最小。
 
#2.-iname
[root@192 ~]# find . -iname abcde
./ABCDE
./abcde
提示:i表示忽略的意思,就是忽略大小写。
 
#3.-inum  (这两个是一对命令,记忆比较方便。)
之前我们通过文件名可以查看到文件的i节点号
[root@192 ~]# ls -i abcde 
1043285 abcde
这里通过find命令的-inum选项可以实现,通过i节点号查看文件的名字。
[root@192 ~]# find . -inum 1043285
./abcde

#4.查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} \;

#5.查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
# find . -type f -perm 644 -exec ls -l {} \;

4、管道命令符使用

管道命令符“|”的作用是将前一个命令的标准输出作为后一个命令的标准输入,格式为“命令A | 命令B”。

【管道符:将前面命令字的结果作为后面命令字的执行环境。】

#在文本a.txt中寻找文本123所在段落。
cat a.txt | grep "123"

注:
1、管道命令只处理前一个命令正确输出,不处理错误输出;
2、管道命令右边命令,必须能够接收标准输入流命令才行;

5、Linux中颜色的含义

[整理]linux中颜色的含义
蓝色(Blue): Directory  目录
绿色(Green): Executable or recognized data file  可执行文件,可执行的程序/文件
天蓝(Sky Blue): Symbolic link file  链接文件,主要是使用ln命令建立的文件
红色(Red): Archive file  压缩文件或者包文件
黄字黑底(Yellow with black background): Device 设备文件
粉红色(Pink): Graphic image file 图像图片文件
红字黑底(Red with black background): Broken link 无效链接