第三章 重定向,管道符,环境变量
第三章 重定向,管道符,环境变量
输入输出重定向
-
输入重定向(不用)
-
概念
-
把文件导入到命令中
-
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
- 因为只有一种输入重定向,所以输入重定向<后面不用跟上文件描述符0
-
-
-
格式
-
命令 < 文件
- 将文件作为命令的标准输入
-
命令 << 分界符
-
从标准输入(shell中输入的内容)中读入,直到遇见分界符才停止
- [root@linuxprobe ~]# mail -s "Readme" root@linuxprobe.com << over
-
-
-
I think linux is very practical
I hope to learn more
can you teach me ?
over
[root@linuxprobe ~]#
-
输出重定向
-
概念
- 把原本要输出到屏幕的数据信息写入到指定文件中
-
分类
- 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
- 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
-
格式
-
命令 > 文件
- 将标准输出重定向到一个文件中(清空原有文件的数据)
-
命令 2> 文件
- 将错误输出重定向到一个文件中(清空原有文件的数据)
-
命令 >> 文件
- 将标准输出重定向到一个文件中(追加到原有内容的后面)
-
命令 2>> 文件
- 将错误输出重定向到一个文件中(追加到原有内容的后面)
-
命令 &>> 文件
- 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
-
命令 &> 文件
- 将标准输出与错误输出共同写入到文件中(清空原有文件的数据)
-
-
管道命令符
-
概念
- 把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入(命令的操作对象)
- 把左面(前面)命令的输出值作为右面(后面)命令的输入值以便进一步处理信息。
-
实例
- ls -l /etc/ | grep pdf | more
命令行通配符
- 顾名思义,通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符
常用的转义字符
-
概念
- 将shell中的输出结果进行转义处理
-
分类
-
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
- ➜ Desktop echo "price is $$price"
- price is $65
-
单引号(''):转义其中所有的变量为单纯的字符串。---无视字符串的变量
-
双引号(""):保留其中的变量属性,不进行转义处理。
-
反引号(``):把其中的命令执行后返回结果。
-
环境变量
-
概念
- 用来定义系统运行环境的一些参数,比如每个用户不同的家目录、邮件存放位置等。
-
分类(env命令查看所有环境变量)
-
HOME 用户的主目录(即家目录)
-
SHELL 用户在使用的Shell解释器名称
-
HISTSIZE 输出的历史命令记录条数
-
HISTFILESIZE 保存的历史命令记录条数
-
MAIL 邮件保存路径
-
LANG 系统语言、语系名称
-
RANDOM 生成一个随机数字
-
PS1 Bash解释器的提示符
-
PATH 定义解释器搜索用户执行命令的路径
-
当我们输入命令时的四个步奏
-
- shell先查看命令是否是以绝对/相对路径输入的,如果是(如/bin/ls),则直接执行,否则第2步
-
- shell检查输入的命令是否为alias别名命令,是就执行,否则第3步
-
- shell检查命令是shell的内部命令,还是外部命令,内部命令直接执行,外部命令第4步
-
- shell在PATH变量值对应的路径中查找命令可能存放的位置,多个路径之间用冒号分隔
-
-
-
EDITOR 用户默认的文本编辑器
-

浙公网安备 33010602011771号