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 用户默认的文本编辑器