输入输出重定向
输入重定向:把文件导入命令中
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将命令结果输出到文件2中
输出重定向:把原本要输出到屏幕的数据写入指定的文件中
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕
命令 > 文件 将标准输出重定向到一个文件中(覆盖)
命令 2> 文件 将错误输出重定向到一个文件中(覆盖)
命令 >> 文件 将标准输出重定向到一个文件中(追加)
命令 2>> 文件 将错误输出重定向到一个文件中(追加)
命令 >> 文件 2>&1 或 命令 &>> 文件 将标准输出与错误输出共同写入文件中(追加)
管道命令符
格式:命令A | 命令B,将命令A原本要输出到屏幕的数据当作命令B的标准输入
#grep "/sbin/nologin" /etc/passwd | wc -l
#ls -l /etc | more
#echo "linuxprobe" | passwd --stdin root
#echo "Content" | mail -s "Subject" linuxprobe
#mail -s "Subject" root@linuxprobe.com << over
命令行的通配符
* 匹配零个或多个字符
? 匹配单个字符,不包括零个
[0-9] 匹配0~9之间的单个数字的字符
[abc] 匹配a、b、c三个字符中的任意一个字符
常用的转义字符
反斜杠 ( \ ):使反斜杠后面的一个变量变为单纯的字符串
单引号 ( " ):转义其中所有的变量为单纯的字符串
双引号( "" ):保留其中的变量属性,不进行转义处理
反引号( `` ):把其中的命令执行后返回结果
重要的环境变量
一般都是大写的,约定俗成
HOME 用户的主目录
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
其中export命令可将当前用户设置的环境变量设为全局变量
Linux中命令执行的过程
- 判断用户是否以绝对路径或相对路径的方式输入命令,如果是的话直接执行
- 检查用户是否输入“别名命令”,使用“alias”命令即可查看,“ualias 命令的别名”取消别名
- Bash解释器判断用户输入的是内部命令还是外部命令,如果是内部则直接执行,使用“type 命令”即可查看
- 系统在多个路径中查找用户输入的命令,这些路径定义在PATH变量中