《快乐的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 |