linux管道符,重定向与环境变量

学习文件读写操作有关的重定向技术的5中模式---1,标准覆盖输出重定向,2,标准追加输出重定向,3,错误覆盖输出重定向,4,错误追加输出重定向,5以及输入重定向. 解决输出信息的保存问题,学习管道符命令,掌握PATH变量

 

1,输入输出重定向

  标准输入重定向(STDIN, 文件描述符为0): 默认从键盘输入,也可以从其他文件或命令中输入

  标准输出重定向(STDOUT, 文件描述符为1): 默认输出到屏幕.

  错误输出重定向(STDERR, 文件描述符为2): 默认输出到屏幕

 

输入重定向

命令    <    文件        将文件作为命令的标准输入

命令    <<   分界符    从标准输入中读入,知道遇见分界符才停止

命令    <    文件1    >    文件2    将文件1作为命令的标准输入并将标准输出到文件2  

输出重定向

命令    <    文件        将标准输出重定向到一个文件中 (清空原有文件的数据)

命令    2>   文件        将错误输出重定向到一个文件 (清空原有文件的数据)

命令    >>    文件        将标准输出重定向到一个文件中(追加到原有内容的后面)

命令    2>>    文件        将错误信息重定向到一个文件中(追加到原有内容的后面)

命令    >>    文件    2>&1或命令    &>> 文件    将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

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

 

管道命令符

# grep "/sbin/nologin" /etc/passwd    |    wc -l

管道符的应用

可以配合转义字符

反斜杠(\): 使用斜杠后面的一个变量变为单纯的字符串

单引号("):转义其中所有的变量为单纯的字符串

双引号(""):保留其中的变量属性,不进行转义处理

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

 

重要的环境变量

执行一条命令之后,linux系统中发生了什么事情:

第一步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果时的话则直接执行

第二步: linux系统检查用户输入的命令是否为"别命令", 即一个自定义的命令名称来替换原本的命令名称.可以用alias命令来创建一个属于自己的命令别名,则是用unalias命令,格式为"unalias别名".我们之前在使用rm命令删除文件时,linux系统都会要求我们在确认是否执行删除操作,其实就是linux系统为了放置用户删除文件而特意设置的rm别名命令

第三步:Bash解释器判断用户名输入的是内部命令还是外部命令,内部命令是解释器颞部的指令,会执行执行;而用户在绝大部分时间输入的外部命令,这些命令交由步骤4继续处理.可以使用"type"命令名称来判断用户输入的命令是内部命令还是外部命令.

第四步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫做PATH,可以简单的把他理解成是"解释器的小助手",作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会逐个查询,PATH是有多个路径值组成的变量,每个路径之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对linux命令的查找

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

HOME        用户的主目录(即家目录)
SHELL        用户在使用的Shell解释器名称
HISTSIZE    输出的历史命令记录条数
HISTRILESIZE    保存的历史命令记录条数
MAIL            邮件保存路径
LANG            系统语言,语系名称
RANDOM        生成一个随机数字
PSL            bash解释器的提示符
PATH           定义解释器搜索用户执行命令的路径
EDITOR        用户默认的文本编辑器

 

posted @ 2018-08-03 11:42  猴里吧唧  阅读(473)  评论(0编辑  收藏  举报