管道符and重定向and环境变量

输入输出重定向

输入重定向:把文件导入到命令中;

输出重定向:把原本打印在屏幕上的信息写入指定文件中。

  • 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其他文件或者命令中输入。
  • 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
  • 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

什么是错误的输出呢?看看下面这个图

当我们查看文件udpc信息时

输出信息是相关权限、所有者、所属组、文件大小及修改时间。

是我们想要看的信息,是这个命令的标准输出信息

但当我们查看文件sss信息时,因为这个文件是不存在的,所以执行完ls命令显示的是报错信息,而不是ls应该的显示的信息,这就是错误输出。

输入重定向中用到的符号及其表示

输出重定向中用到的符号机器作用

对于重定向中的标准输出模式,可以省略文件描述符1,但是错误输出模式的文件描述符2是必须要写的。

将ls -l udpc命令的内容写入write.txt中,然后查看write.txt文档

再试试追加操作

如果想把命令的报错信息写入到文件中,这个操作有什么用呢?当我们在执行一个自动化的shell脚本时,这个操作就会把报错信息记录到文件中,便于安装后的排错。

下来试下输入重定向将write.txt的内容导给wc -l命令,来统计这个文件的行数

管道命令符

‘|’这就是管道符,他的作用可以理解为把前一个命令原本要输出到屏幕的数据当做是后一个命令的标准输入。

比如查看practice目录下的文件有多少个,可以通过ls -l 命令和wc -l 结合

命令的通配符

当我们想查找一个文件时,却不能记起来全部的文件名,只记得几个字母,这个时候通配符就派上用场了;

‘*’代表匹配零个或者多个字符;

‘?’代表匹配单个字符;

“[0-9]”代表匹配0~9之间的单个数字的字符;

“[abc]”代表匹配’a’,’b’,’c’三个字符中的任意一个字符;

常用的转义字符

反斜杠\:使反斜杠后面的一个变量变为单纯的字符串;用法和c语言基本差不多。

单引号’ ‘:转义其中所有的变量为单纯的字符串;

双引号” “:保留其中的变量属性,不进行转义处理;

反引号``:把其中的命令执行后返回结果;

环境变量

Linux系统中最重要的10个环境变量