重定向可以简单的理解为一种快速辅助粘贴的手段,从而省去了一些鼠标键盘的输入,直接在终端中使用命令时就可以顺带完成。
常用的输入重定向:
命令 < 文件将文件作为命令的标准输入命令 << 分界符从标准输入中读入,直到遇见分界符才停止命令 <文件1> 文件2将文件1作为命令的标准输入并将标准输出到文件2常用的输出重定向:
命令 > 文件将标准输出重定向到一个文件,清空原文件命令 2> 文件将错误输出重定向到一个文件,清空原文件命令 >> 文件将标准输出重定向到一个文件,追加到原文件后命令 2>>文件将错误输出重定向到一个文件,追加到原文件后man bash > readme.txt
这就是将man bash的内容直接复制到readme.txt文件中,并删除原文件里的内容,如果这个文件不存在,就再新建一个readme.txt。
管道命令符管道命令符的格式就是 命令A|命令B 作用就是将前一个命令的输出作为后一个命令的输入,比如 grep "/sbin/nologin"/etc/password | wc -l 就是找出被限制登陆用户并且统计文本行数。而且管道命令符在一个命令组合中可以使用多次。
命令行的通配符 *通配符是个什么玩意儿呢,从名字上就可以看出来,是一个有通用的性质的符号,“ * ”可以代表零个或者多个字符,“ ?”可以代表单个字符,也就是说如果什么都没有是不能用?匹配的。还有[abc]是匹配a、b、c三个字符中的任何一个,[]还可以加上数字比如[0-9]就是匹配0~9之间的单个字符。重点是?和[]都是一个字符,不能匹配多个字符。现在有几个文件分别是a.txt a1.txt a2.txt 我们想将名字中带有a的文件全部找到,我们就可以这么写: ls -l *a* 这样可以查看所有名字中有a的文件。
转义字符最常用的四个:
: 使反斜杠后面的一个变量变为单纯的字符串
": 转义其中所有的变量为单纯的字符串
"": 保留其中的变量属性,不进行转义处理。
``: 反引号把其中的命令执行后返回结果
PRICE=5echo "Price is $PRICE"输出:Price is 5echo "Price is $$PRICE"输出:price is 3767PRICEecho "Price is $$PRICE"输出:Price is $5因为$是变量提取符号,而美元符号$与变量提取符号连起来的$$作用是显示当前程序的进程ID号码所以我们就需要一个转义字符来实现$的输出。
重要的环境变量环境变量是用来定义系统运行环境的一些参数,几个重要的环境变量:
HOME 用户的主目录
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存地址
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器