Linux学习 - 输入输出重定向,管道符,通配符
一、键盘输入读取read
read [选项] [变量名]
-p [显示信息] 在等待read输入时,输出提示信息
-t [秒数] 指定read输入等待时间
-n [字符数] 指定read只接收n个字符输入
-s 隐藏输入数据
例


二、输入输出重定向
1 标准输入输出
| 设备 | 设备文件名 | 文件描述符 | 类型 |
| 键盘 | /dev/stdin | 0 | 标准输入 |
| 显示器 | /dev/stdout | 1 | 标准输出 |
| 显示器 | /dev/stderr | 2 | 标准错误输出 |
2 输出重定向
| 类型 | 符号 | 作用 |
| 标准输出重定向 | 命令 > 文件 | 命令结果输出到文件,覆盖 |
| 命令 >> 文件 | 命令结果输出到文件,追加 | |
| 标准错误输出重定向 | 错误命令 2> 文件 | 命令错误结果输出到文件,覆盖 |
| 错误命令 2>> 文件 | 命令错误结果输出到文件,追加 | |
| 正确与错误同时保存 | 命令 > 文件 2>&1 | 命令正确结果和错误结果都输出到文件,覆盖 |
| 命令 >> 文件 2>&1 | 命令正确结果和错误结果都输出到文件,追加 | |
| 命令 &>文件 | 命令正确结果和错误结果都输出到文件,覆盖 | |
| 命令 &>> 文件 | 命令正确结果和错误结果都输出到文件,追加 | |
| 命令 >> 文件1 2>> 文件2 | 命令正确结果输出到文件1,命令错误结果输出到文件2,追加 | |
3 输入重定向
wc [选项] < [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
例:wc < anaconda-ks.cfg 统计anaconda-ks.cfg文件的行数、单词数、字节数
wc -l <anaconda-ks.cfg 只统计anaconda-ks.cfg文件的行数
三、多命令顺序执行与管道符
1 多命令
| 多命令执行符 | 格式 | 作用 |
| ; | 命令1 ; 命令2 | 多个命令顺序执行,命令之间没有任何逻辑联系 |
| && | 命令1 && 命令2 | 逻辑与 |
| || | 命令1 || 命令2 | 逻辑或 |
2 管道符
命令1 | 命令2 命令1的正确输出作为命令2的操作对象
例:
netstat -an | grep ESTABLISHED 显示当前系统中的网络连接,提取正在连接的用户
四、通配符与其他特别符号
1 通配符
| 通配符 | 功能 | 举例 |
| ? | 匹配任意一个字符 | |
| * | 匹配任意多个字符 | |
| [] | 匹配[]中的任意一个字符 | |
| [-] | 匹配[]中的字符范围 | |
| [^] | 匹配除[]外的任意字符 |
2 特殊符号
| 符号 | 功能 |
| ' ' | 单引号中的所有特殊字符都没有特殊含义 |
| " " |
双引号中的“$”、“·”、“\”是有特殊含义 “$”:调用变量的值 “ ·”:引用命令 “ \”:转义符 |
| `` | 反引号中的内容是系统命令 |
| $() | 与反引号一样,(通常使用这个符号) |
| # | 注释 |
| $ | 调用变量的值 |
| \ | 转义符 |