2019年7月15日 星期一

Unix命令语法

在使用Unix CLI(命令行界面)时,需要一条接一条的输入命令。输入这些命令时,要遵从一Unix命令语法。 所输入的整行称为命令行。当在命令行的末尾按<Return>键时,命令行的内容就发送给shell进行处理。
在输入命令时,有两件事情需要了解。首先,必须根据Unix命令语法输入命令。其次,必须理解在shell处理命令的过程中发生了什么事情。
Unix中有差不多数百条命令,而且只要您使用Unix,就要永远不停的学习新的命令。基于这一原因,当需要时,您应该能够通过联机手册学习。为了更好的使用联机手册,您需要理解Unix命令和Unix命令语法。
1. 一次输入多条命令
在大多数情况下,一个命令行只输入一条命令。但是,您应该知道,一次输入多条命令也是可以的。在输入多条命令时,Unix命令语法是只需用分号将各个命令隔开即可。
下面举一个使用这中Unix命令语法的例子。您在打电话与您的朋友计划一个派对。您希望显示今天的日期以及当前月份的日历。完成这两项任务的命令分别为datecal。当然,您可以分开输入这两条命令:

date
cal


但是,使用一个分号作为命令分隔符就可以在一行输入这两条命令:

date; cal

注意命令行的末尾并不需要分号。
下面再举一个例子,这个例子使用cp命令复制文件,ls命令显示文件的信息,以及rm命令删除(移除)文件。
您的目标是为一个名为data的文件生成两个副本。两份副本分别称为backup1backup2。在生成文件副本之后,您希望删除原始文件。然后,列出所有文件,看看有什么文件。相关的Unix命令如下所示:

cp date backup1

cp date backup2

rm data

ls


这里的重点是,我们不是在4个独立的行上键入这些命令,而是通过使用分号分隔这些命令,在一行上输入它们:

cp date backup1;cp date backup2;rm data;ls

您或许会问,在一行上输入所有命令有什么意义呢?毕竟,这只是以另一种方式键入相同数量的字符。
答案在于,从长远来看,如果您能够一次考虑好接下来几步的行动,就像下象棋者在决定下一步棋如何走时,会考虑接下来的各种变化一样,那么您就能更有效的使用Unix。
提示,一名Unix用户和一名伟大的Unix用户之间的区别在于解决问题的能力,即当问题出现时,能够将各种工具和思想快速,创造性的组合在一起,并且还不忙乱。实际上,一些人认为,这是熟练使用Unix的本质要求。
2.输入命令时会发生什么事情
在输入命令时,Unix命令要求键入命令的名称,后面还可能根一些其他信息。例如,考虑下面的ls命令行:

ls -l -F file1

该Unix命令有4部分:命令的名称ls,后面跟着-l, -F,file1
当按下<Return>键时,shell就会处理命令。下面我们对这个Unix命令进行一个简化的描述,这样使大多数人都可以明白。
shell通过假定命令行的第一部分是希望运行的命令名称来处理命令。然后,shell根据该名称搜索并执行程序。例如,如果输入的是上面ls命令,那么shell将查找并运行ls程序。
如果shell找不到输入的命令的名称,那么shell将显示一个错误信息。例如,假如输入了:

harley

虽说难以相信,但是Unix并没有harley这条命令,所以您将看到:

harley: not found

当shell查找到希望运行的程序时,它就会运行这个程序。这是,shell将整个命令行的一份副本发送给该程序。然后轮到程序来决定如何处理所有信息了。在上面大的例子中,ls程序将决定如何处理-l, -F, 和file1

3. 命令语法
Unix命令必须根据一个明确定义的规则键入。一个标点符号放错位置或者单词拼写错误,都会整个命令无效。大多数命令,系统会显示一个错误的信息,并且忽略这个命令。但是,在最坏的情况下,一条错误键入的命令可能回错误的执行,造成其他问题。关于如何输入命令的格式描述称为命令语法(command syntax),不正式的称法可以称之为语法
学习Unix命令语法很简单,只要您了解了通用规则和约定,就可以通过查找手册或者Info系统自己学习如何正确使用任何命令。
通常,Unix命令语法可以表示为:键入命令的名称,后面“选项(options)”,再后面是“参数(arguments)”:

命令名称 选项 参数

选项用于设置命令执行任务的方式,而参数指定命令使用的数据。
考虑下面的例子:

ls -1 -F file1 file2 file3

在这个例子中,命令名称是ls。选项是-1和-F。参数是file1,file2file3。

沒有留言:

張貼留言