重定向
输入重定向(SITDIN,文件描述符为0):默认从键盘输入,也可以以从其他文件或命令输入;
输出重定向(SITDOUT,文件描述符为1):默认输出的屏幕;
错误输出重定向(SITERR,文件描述符为2)默认输出到屏幕;
输入重定向:例如:cat < inof_log.txt | |
命令 < 文件 | 将文件为命令的标准输出(文件内容输出到屏幕) |
命令 << 分节符 | 从标准的输入中读入,知道遇到分节符才停止;例如 cat <<。(输入信息,直到单独的“。”停止当前操作) |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入,并将标准输出到文件2(文件1内容复制到文件2,文件2内容会被文件1内容冲掉) |
输出重定向:例如:grep -n "xxx" info_log.txt >> error_log.txt | |
命令 > 文件 | 将标准输出重定向到文件中(清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到文件中(追加原有文件的数据的后面) |
命令 2>> 文件 | 将错误输出重定向到文件中(追加原有文件的数据的后面) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入文件中(追加原有文件的数据的后面) |
命令 文件1 >> 文件2 | 将文件1作为命令的标准输入,并将标准输出到文件2(文件1内容追加到文件2后面) |
管道符“|”
把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输出;
例如
ls -l /etc | grep -n "java" | 1.将/etc目录下所有的文件信息作为数据源;2.只显示有关java的信息并显示行号 |
ls -l /etc | more | 1.将/etc目录下所有的文件信息作为数据源;2.翻页浏览其中的文件信息 |
grep "nologin" /etc/passwd | wc -l | 1.查看/etc下的passwd文件;2.只搜索拒绝登录的信心;3.统计满足条件后的信息条数 |
通配符:“*”、“?”、“正则”(例如:[0-9]、[a-z]、[abc])
ls -l /home/chenyb/test/x* | 查询/home/chenyb/test目录下所有x开头的文件 |
ls -l /etc/system? | 查询/etc目录下所有system开头后面任意匹配一个字符的文件 |
ls -l ./xx[0-9].txt | 当前目录下查找xx开头后一为正则匹配0-9数字的txt文件(如果[123]为或关系,1或2或者3) |
转义符:
\ | '' | "" | `` |
是反斜杠后面的一个变量变为单纯的字符串 | 转义其中所有的变量为单纯的字符串 | 保留其中的变量属性,不进行转义 | 把其中的命令执行后返回结果 |
重要的变量(一般都是大写的,约定俗成的规范)
ceho $【变量名称】 | 输出一个变量 |
【变量名称】=【任意】 | 为变量赋值,可以追加(例如:PAHT=$PATH:/root/chenyb) |
evn | 查看所有的环境变量 |
type 命令 | 查看当前命令为嵌入命令还是外部命令 |
export 【变量名称】 | 将变量提升至全局化(所有用户均可实用) |
变量名称 | 作用 |
---|---|
HOME | 用户的主目录(即为家目录) |
SHELL | 用户在实用的Shell解释器名称 |
HISTSIZE | 输出的历史命令记录的条数 |
HISTFILESIZE | 保存的历史命令的记录条数 |
邮件保存路径 | |
LANG | 系统语言,语系名称 |
PANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |