使用缩略符号
波浪线(~)代表家目录。如果现在位于/home/workman/MyOSS-Stuff/IOSN,那么只需执行“cd ~”就可以回到家
目录/home/workman而不必输入“cd /home/workman”。一个点(.)代表当前目录,而“../” 代表上一级目录。
“../”可以嵌套使用,比如“../../”。
输出重定向
在默认的情况下,Linux从键盘接受输入,并将命令的输出送到屏幕。在有时候,这样做并不方便。比如,在一
个目录里有很多文件,如果只用简单的ls命令,在屏幕上显示的输出结果可能上千行!为了得到我们需要的信
息。我们或许需要把这些结果存储到一个文件中然后再查看这个文件,这就要用到系统的输出重定向功能。输
出重定向的操作符为>或>>。单个大于号(>)后面紧跟文件名。如果指定的文件不存在,将建立这一文件。如果
指定的文件存在,则文件原有的内容将被覆盖。如果使用两个大于号(>>)则会把输出内容追加到原来文件里面
。下面是一个例子:
1.[-(/tmp)> ls /usr/bin >> usr.bin
2.[-(/tmp)> wc -l usr.bin
3.2171 usr.bin
4.[-(/tmp)> ls /usr/bin >> usr.bin
5.[-(/tmp)> wc -l usr.bin
6.4342 usr.bin
7.[-(/tmp)> ls /usr/bin > usr.bin
8.[-(/tmp)> wc -l usr.bin
9.2171 usr.bin
注:行号是为了行文方便加入的,并不是shell 的输出.
第1行,/usr/bin中的文件列表被写入文件usr.bin,由于这个文件原来并不存在,系统会自动创建。从第3行
可以看出usr.bin的行数。在第4行又重复了第1行的命令,由于使用的是>>,usr/bin中的文件列表被追加写入文
件,usr.bin的行数也就增加了一倍。在第7行我们使用了>, usr/bin中的文件列表被写入文件,usr.bin中原有的
内容被覆盖了,行数也变成了新的值。
管道
将一个程序的标准输出写道一个文件中去,再将这个文件的内容作为另一个命令的标准输入,等效于通过
临时文件将两个命令结合起来。这种情况很普遍,需要Linux系统提供一种功能:它不需要或不必使用临时文件
,就能将两条命令结合在一起。这种功能就是管道。管道的操作符是一个竖杠“|”。管道是可以嵌套使用的,
因此可以把多个命令结合在一起。接上例,如果执行下面的命令将直接返回/usr/bin 中的文件列表的行数,而不
是列表的内容。
ls /usr/bin | wc -l