1. 特殊字符
* 匹配文件名中的任何字符串,包括空字符串。
? 匹配文件名中的任何单个字符。
[...] 匹配[ ]中所包含的任何字符。
[!...] 匹配[ ]中非感叹号!之后的字符。
当s h e l l 遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用
户就可以用它们来匹配相应的文件名。
1、*:使用星号*可以匹配文件名中的任何字符串。就不用多说了,和win 下差不多
2、?:使用可以匹配文件名中的任何单个字符。和win 差不多
3、[]:使用[ . . . ]可以用来匹配方括号[ ]中的任何字符。可以使用一个横杠-来连接两个字
母或数字,以此来表示一个范围。
1)列出以i 或o 开头的文件名:
代码:
#ls [io]*
2)列出log.开头、后面跟随一个数字、然后可以是任意字符串的文件名:
代码:
#ls log.[0-9]*
3)与例二相反,列出log.开头、后面不跟随一个数字、然后可以是任意字符串的文件名
代码:
#ls log.[!0-9]*
4)列出所有以LPS 开头、中间可以是任何两个字符,最后以1 结尾的文件名:
代码:
#ls LPS??1
5)列出所有以大写字母开头的文件名:
代码:
$ ls [A-Z]*
6)列出所有以小写字母开头的文件名:
代码:
$ ls [a-z]*
7)为了列出所有以数字开头的文件名:
代码:
$ ls [0-9]*
8)列出所有以. 开头的文件名(隐含文件,例如. p r o f i l e、. r h o s t s、. h i s t o r y
等):
代码:
$ ls .*
2.
cat:显示文件内容,创建文件,还可以用它来显示控制字符
c a t 命令的一般形式为:
代码:
cat [options] filename1 ... filename2 ...
(1)显示名为m y f i l e 的文件:
代码:
$ cat myfile
(2)新建文件
代码:
$cat >myfile
This is great
<ctrl-d>
$cat myfile
This is great
cat:参数选项
使用方式:
代码:
cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
引用:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting 显示非打印字符
例:
显示时加上行号
代码:
$cp /etc/httpd/conf/httpd /usr/sam
$ cat -n httpd.conf
把 httpd.conf 的内容加上行号后输入 httpd1.conf 这个文件里
代码:
$cat -n httpd.conf > httpd1.conf
对文件httpd.conf 加上行号(空白不加)后显示
代码:
$ cat -b httpd.conf
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3
里。
代码:
$ cat -b textfile1 textfile2 >> textfile3
清空/etc/test.txt 档案内容
代码:
$cat /dev/null > /etc/test.txt
3.
tee:读取标准输入的数据,并将其内容输出成文件。
语 法:tee [-ai][--help][--version][文件…]
补充说明:tee 指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存
成文件。我们可利用tee 把管道导入的数据存成文件,甚至一次保存数份文件。
参 数:-a 附加到既有文件的面,而非覆盖它。如果给予tee 指令的文件名称已经存在,
预设会覆盖该文件的内容。加上此参数,数据会新增在该文件内容的最面,而不会删除原先之内
容。
-i 忽略中断信号
--help 在线帮助
--version 显示版本信息
例一:
列出文本文件slayers.story 的内容,同时复制3 份副本,文件名称分别为ss-copy1、
ss-copy2、ss-copy3:
代码:
$ cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3
例一: 把列出当前目录,并把结果结到myfile 里
代码:
$ls -l |tee myfile
4.
标准输入、输出和错误
当我们在s h e l l 中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述
符来引用这些文件。由于文件描述符不容易记忆, s h e l l 同时也给出了相应的文件名。
下面就是这些文件描述符及它们通常所对应的文件名:
引用:
文件文件描述符
输入文件—标准输入0:它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。
输出文件—标准输出1:它是命令的输出,缺省是屏幕,也可以是文件。
错误输出文件—标准错误2:这是命令错误的输出,缺省是屏幕,同样也可以是文件。
如果没有特别指定文件说明符,命令将使用缺省的文件说明符(你的屏幕,更确切地说是你的终
端)。
系统中实际上有1 2 个文件描述符,但是正如我们在上表中所看到的, 0、1、2 是标准输入、
输出和错误。可以任意使用文件描述符3 到9。
在执行命令时,可以指定命令的标准输入、输出和错误,要实现这一点就需要使用文件重定向。
表5 - 1 列出了最常用的重定向组合,并给出了相应的文件描述符。
在对标准错误进行重定向时,必须要使用文件描述符,但是对于标准输入和输出来说,这不是必
需的。
代码:
常用文件重定向命令
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中(追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中(追加)
command < filename >filename2 把c o m m a n d 命令以f i l e n a m e 文件作为标
准输入,以f i l e n a m e 2 文件
作为标准输出
command < filename 把c o m m a n d 命令以f i l e n a m e 文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到d e l i m i t e r 分界符
command <&m 把把文件描述符m 作为标准输入
command >&m 把把标准输出重定向到文件描述符m 中
command <&- 把关闭标准输入
5.
exec:
e x e c 命令可以用来替代当前s h e l l;换句话说,并没有启动子s h e l l。使用这一命令时
任何现有环境都将会被清除,并重新启动一个s h e l l。它的一般形式为:
exec command
其中的c o m m a n d 通常是一个s h e l l 脚本。
e x e c 在对文件描述符进行操作的时候,它不会覆盖你当前的s h e l l。