管道和重定向
管道和重定向
标准输入重定向:默认键盘/文件/命令(STDIN:0)
标准输出重定向:屏幕(STDOUT:1)
标准错误重定向:屏幕(STDERR:2)
输入重定向
| 符号 | 作用 |
|---|---|
| 命令 < 文件 | 文件作为命令输入 |
| 命令 << 分隔符 | 读入命令遇到分隔符为止 |
| 命令 < 文件1 > 文件2 | f1作为命令输入并输出到f2 |
输出重定向
| 符号 | 作用 |
|---|---|
| 命令 > 文件 | 输出重定向到文件(清空原文件) |
| 命令 2> 文件 | 错误重定向到文件(清空原文件) |
| 命令 >> 文件 | 输出重定向到文件(追加内容) |
| 命令 >> 文件 2>&1 命令 &>> 文件 |
将错误与输出同时写入文件(追加内容) |
[root@linuxstudy ~]# echo "hello" > a.txt
[root@linuxstudy ~]# cat a.txt
hello
[root@linuxstudy ~]# echo "world" > a.txt
[root@linuxstudy ~]# cat a.txt
world
[root@linuxstudy ~]# echo "hello" > a.txt
[root@linuxstudy ~]# echo "world" >> a.txt
[root@linuxstudy ~]# cat a.txt
# 搜集错误的信息
[root@linuxstudy ~]# ls -l zaz > stderr.txt
ls: cannot access zaz: No such file or directory
[root@linuxstudy ~]# ls -l zaz 2> stderr.txt
[root@linuxstudy ~]# cat stderr.txt
ls: cannot access zaz: No such file or director
# 标准输入
[root@linuxstudy ~]# wc -l < stderr.txt
1
统计行数
管道命令符
把A命令的标准输出当成B命令的标准输入
A | B
[root@linuxstudy ~]# grep "/sbin/nologin" /etc/passwd | wc -l
重置密码
ehco "aaa" | passwd --stdin root
发邮件
echo "hello" | mail -s "Hello-email" xxx
mail -s "emial2" xxx@163.com << over
通配符
ls -l /dev/sda*
# ? [0-xxx][abc]...
转译字符
* 转译\后的一个变量位普通字符串
''* 转译所有变量为纯字符串
""保留变量属性不做转译处理
``执行命令返回结果
环境变量
| 变量 | 作用 |
|---|---|
| HOME | 家目录 |
| SHELL | shell解释器名称 |
| HISTSIZE | 输出的历史命令记录数 |
| HISFILESIZE | 保存的历史命令记录数 |
| 邮件保存路径 | |
| LANG | 系统语言 |
| RANDOM | 生成随机数 |
| PS1 | Bash解释器提示符 |
| PATH | 定义解释器搜索用户执行命令的路径 |
| EDITOR | 默认文本编辑器 |
mkdir /home/mydir
MYDIR=/home/mydir
# 一般变量转全局变量
export MYDIR

浙公网安备 33010602011771号