管道命令符
管道命令符“|”作用是将前一个命令的标准输出当做后一个命令的标准输入,格式“命令A|命令B”
管道命令可以多次使用,如“命令A|命令B|命令C”
输入输出重定向【命令都是左结合】
标准输入(STDIN,文件描述符为0):默认从键盘输入,为0表示是从其他文件或命令的输出
标准输出(STDOUT,文件描述符为1):默认输出到屏幕,为1时表示是文件
错误输出(STDERR,文件描述符为2):默认输出到屏幕,为2时表示是文件
输出重定向符使用情况
命令 > 文件:将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件:将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件:将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件:将错误准输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或 命令 &> 文件:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
输入重定向符使用情况
命令 < 文件:将文件作为命令的标准输入
命令 << 分界符:从标准输入中读入,直到遇见“分界符”才停止
命令 < 文件1 > 文件2: 将文件1作为命令的标准输入并将标准输出到文件2(情况文件2中原因的数据【我猜的没有试验过】)
命令行通配符
*:匹配0个或者多个字符
?:匹配给任意单个字符
[0-9]:匹配范围内的数字(可以任意设置,如:[135]表示匹配135这三个数字)
[abc]:匹配已给出的任意字符(和匹配数字一样的)
转义字符
\(反斜杠):转义后面单个字符
”(单引号):转义所有字符(单引号中所以字符都被转义)
“”(双引号):变量依然生效(双引号只是把输入的东西引起来,看的更清晰没有实际用处【我觉得是这样子的】)
‘’(反引号):执行命令语句(在命令行中我不会输入,反引号引起来的是命令,和双引号一样为了看起来更清晰吧【反正我是这样认为的】)
PATH变量
【在Linux中一起的都是文件,命令文件也不例外】
用户执行一条命令的过程如下:
- 如果是以绝对路径或相对路径输入的命令则直接执行(例如执行/bin/ls)
- 检查是否为alias别名命令
- 由bash判断其是“内部命令”还是“外部命令”【内部命令:属于解释器内部的;外部命令:独立于解释器外的命令文件】
- 通过$PATH变量定义的;路径进行命令查找
TIPS:$PATH是“解释器助手”,负责告诉bash用户要执行的命令可能存放在哪里
重要的环境变量
变量是由固定的“变量名”与用户或系统设置的“变量值”这两部分组成的
HOME:用户的主目录(即家目录)。
SHELL:用户在使用的SHELL解释器名称。
HISTSIZE:历史命令记录条数。
HISTFILESIZE:历史命令记录条数。
MAIL :邮件信箱文件保存路径。
LANG:系统语言、语系名称。
RANDOM:生成一个随机数字。
PS1:bash解释器的提示符。
PATH:定义解释器搜索用户执行命令的路径。
EDITOR: 用户默认的文本编辑器。