linux 目录的可执行权限的意义

Linux 的文件和目录的权限,只有RWX三种。

  • r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

  • w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。

  • x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

  1. 目录的只读访问不允许使用 cd 进入目录,必须要有执行的权限才能进入。

  2. 只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。

  3. 一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外。

  4. 目录的 w 位不设置,即使你拥有目录中某文件的 w 权限也不能写该文件。

  5. 新建文件默认权限777,新建目录默认权限666。

;分号的用法

方式:command1 ; command2

; 号隔开每个命令,每个命令按照从左到右的顺序依次执行,彼此之间不关心是否失败,所有命令都会执行。

|管道符用法

上一条命令的输出,作为下一条命令参数

方式:command1 | command2

Linux 所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推.

利用一个管道

1
# rpm -qa | grep licq

这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有 licq 字符的 RPM 包来。

利用多个管道

1
# cat /etc/passwd | grep /bin/bash | wc -l

这条命令使用了两个管道,利用第一个管道将 cat 命令(显示 passwd 文件的内容)的输出送给 grep 命令,grep 命令找出含有“/bin/bash”的所有行;第二个管道将 grep 的输出送给 wc 命令,wc 命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用 bash。

||符号用法

逻辑或的功能

语法格式如下:

command1 || command2 [|| command3 …]

命令之间使用 || 连接,实现逻辑或的功能。只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。直到返回真的地方停止执行。

&符号用法

&放在启动参数后面表示设置此进程为后台进程

方式:command1 &

默认情况下,进程是前台进程,这时就把 Shell 给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个’&’实现这个目的。

&&符号用法

shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? == 1 时(我认为是非0的数,返回值在0-255间),表示执行失败。

有时候,下一条命令依赖前一条命令是否执行成功。如:在成功地执行一条命令之后再执行另一条命令,或者在一条命令执行失败后再执行另一条命令等。shell 提供了 && 和 || 来实现命令执行控制的功能,shell 将根据 && 或 || 前面命令的返回值来控制其后面命令的执行。

语法格式如下:

1
command1 && command2 [&& command3 …]

命令之间使用 && 连接,实现逻辑与的功能:

  • 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。

  • 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。