《快乐的Linux命令行》笔记(6)
#《快乐的 Linux 命令行》
#alias
alias
用来创建别名,可以把多个命令放在同一行,命令之间用;
分隔。
1 | alias name='command1; command2; command3...' |
在创建别名的时候,应该用type
来测试一下这个别名
有没有被用过。
删除别名,使用unalias
命令。
在命令行里定义的别名,shell关闭
之后就会消失。
#标准输入、输出和错误
Unix
下万物皆文件,默认情况下,标准输出
和标准错误
都连接到屏幕,即stdout
和stderr
。标准输入
连接到键盘上,即stdin
。
#标准输出重定向
使用>
重定向符后接文件名将标准输出重定向到除屏幕以外的另一个文件:
1 | command > filename |
1 | onns@DESKTOP-5JJP7PL:~$ ls -l /usr/bin > ls-output.txt |
1 | onns@DESKTOP-5JJP7PL:~$ ls -l /bin/usr > ls-output.txt |
ls
程序不把它的错误信息
输送到标准输出
。
而且,当我们使用>
重定向符来重定向输出结果时,目标文件总是从开头被重写
。
快速清空一个文件内容
或者创建一个新的空文件
:
1 | > ls-output.txt |
使用>>
操作符,将导致输出结果添加到文件内容之后,即追加
。如果文件不存在,文件会被创建。
#标准错误重定向
stdin
、stdout
和stderr
在shell
内部被称为文件描述符0
、1
和2
。
1 | ls -l /bin/usr 2> ls-error.txt |
2
和>
要紧挨着,不然会报错:
1 | onns@DESKTOP-5JJP7PL:~$ ls -l /bin/usr 2 > ls-error.txt |
如果想要把标准输出和标准错误一起重定向,有两种方法,老方法:
1 | ls -l /bin/usr > ls-output.txt 2>&1 |
标准错误的重定向必须总是出现在标准输出重定向之后。
1 | onns@DESKTOP-5JJP7PL:~$ ls -l /bin/usr > ls-output.txt # 错误还是会输出到标准输出 |
第二种方法是&>
:
1 | onns@DESKTOP-5JJP7PL:~$ cat ls-output.txt |
/dev/null
文件是系统设备,叫做位存储桶
,它可以接受输入,并且对输入不做任何处理。
可以把不需要的东西输出给垃圾桶:
1 | ls -l /bin/usr 2> /dev/null |