Linux平台及应用
潘小玲 郑国华 丁敏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

命令格式和通配符

发布时间:2020-02-22 10:15   发布人:潘小玲   浏览次数:628

(1)命令格式

Shell命令的一般格式为:

cmd  [-options]   [arguments]

其中,cmd是命令名; options是选项;arguments是参数,即操作对象。

说明:

●最简单的Shell命令只有命令名,复杂的Shell命令可以有多个选项和参数。

●选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开。

●单字符参数前使用一个减号(-), 单词参数前使用两个减号(--)。

●多个单字符参数前可以只使用一个减号。

●操作对象(arguments)可以是文件也可以是目录,有些命令必须使用多个操作对象,

如cp命令必须指定源操作对象和目标操作对象。

●并非所有命令的格式都遵从以上规则,如dd、 find 等。

例如:

$ls

$ls -lra /home

$ ls -help

$cat  /etc/passwd ./myfile

具有以上格式的字符串习惯地称为命令行,命令行是用户与Shell间对话的基本单位。

(2)目录和文件名的命名规则

在Linux下可以使用长文件或目录名,可以给目录和文件取任何名字,但必须遵循下列规则:

●除了/之外,所有的字符都合法。

●有些字符最好不用,如空格符、制表符、退格符和字符:  ? ,@  #  $  &  0     |  ; ‘’   “”  <>等。

●避免使用 、-或.来作为普通文件名的第一个字符。

●大小写敏感。

@以.开头的文件或目录是隐含的。

(3)通配符

通配符主要用于用户方便描述目录或文件。下表中是常用的通配符及其说明。

通配符

说 明

通配符

说 明

·

匹配任何字符和任何数目的字符

[…]

匹配任何包含在括号里的单字符

?

匹配任何单字符

[!...]

匹配任何不包含在括号里的单字符

注意:

*能匹配文件或目录名中的.,但不能匹配首字符是的文件或目录名。要匹配隐含文件应该使用.*。

通配符在指定一系列的文件名时非常有用,下表列举了一些使用通配符的例子。

举 例

说 明

ls *.c

列出当前目录下的所有C语言源文件

ls /home/*/*.c

列出/home目录下所有子目录中的所有C语言源文件

ls n*.conf

列出当前目录下的所有以字母n开始的conf文件

ls test?.dat

列出当前目录下以test开始的,随后一个字符是任意的.dat文件

ls [abc]*

列出当前目录下首字符是a或b或c的所有文件

ls [!abc]*

列出当前目录下首字符不是a或b或c的所有文件

ls [a-zA-Z]*

列出当前目录下首字符是字母的所有文件