(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]* | 列出当前目录下首字符是字母的所有文件 |