Linux入门 Part1: 使用控制台(3)-shell,command & parameter(s)

说到命令,就不能不提shell。出于安全性的考虑,操作系统本身是无法与用户沟通的。试想如果让操作系统直接暴露在用户面前,用户稍一操作不当就会造成系统崩溃。因此,用户必须通过图形界面或者命令行界面与计算机进行交互,图形界面中我们可以通过点鼠标来执行操作,那命令行中怎么办呢?这时候就需要一种软件能够调用其他软件,我们就称之为shell, 其本意是外壳的意思,这里就是指包在操作系统外的一层壳用以保护和使用系统。广义的shell包括图形界面的软件,因为图形界面的本质也是通过操纵其他软件来使用系统。


下面我们将要提到的命令,都是独立的应用程序,我们只是通过shell来调用他们,就像通过鼠标点击打开浏览器一样。


shell的种类很多,bash(linux默认的shell), ksh, tcsh, csh, zsh等等,单基本概念都是一样的(就像linux的各个发行版)


执行命令的方式很简单,一个命令由两部分组成:命令名称(command)和参数(parameter)。


简单情况下,我们只打命令名称(一般简称为命令)就可以得到结果,就像上一章最后的date 命令。但绝大多数情况下我们需要输入参数来得到想要的结果。


ls 命令为例。ls 是 list 的缩写,用来显示当前目录下的文件和文件夹。如果只打ls, 结果如图:


wKiom1NEXf-gip78AAFo037NPpk129.jpg

在ubuntu中,蓝色代表文件夹,而白色代表文件。更多有关ls配色方案的信息可以自行google。如果当前文件夹下什么都没有,那没有任何结果会输出。

在之后的例子中我们会对其进行扩展,为其加上参数。

参数(parameter)

数是跟在命令名称之后的选项,参数与命令之间用空格分开如下图所示,注意不论空几格,shell都视为一格


parallels@ubuntu:~$commande parameters

参数的内容并没有强制的规定格式,它可以是数字,字母,空格。。。幸运的是,程序员们在开发时约定俗城了一套默认规则,以方便shell的使用(否则,想想浏览器大战给web前端程序员带来的麻烦)。


短参数 (short parameters)

短参数是最常见的,它由连字符加一个字母组成:


commande -d

如果需要同时给出多个参数,可以这样做:


commande -d -a -U -h

或者,更方便也更常用的做法是:


commande -daUh

注:再次强调Linux系统是对大小写敏感的,也就是说这里大写的U与小写的u代表的是2个参数。


ls 为例,如果我们为其加上参数 a (小写):


wKioL1NEYQuxReDyAALqEyqaDxc572.jpg

我们发现与只打 ls 相比,多了很多文件。这是因为 a 是 all 的缩写,这个参数是 ls 能够显示当前目录下得所有文件。那些以 . 开头是linux中的隐藏文件。通常你会在你的home目录下(也就是~)发现许多隐藏文件,这些一般来说都是程序配置文件。


长参数 (long parameters)

长参数由两个连字符加一个单词组成:


commande --parameters

这一次不同与短参数,如果想同时给出多个参数,只有一个种选择:以空格分开


commande --parameter1 --parameter2

我们可以同时使用短参数和长参数:


commande -daUh --anotherparameter

有时一个参数可以写成短参数,也可以写成长参数。这取决于命令,关于如何获取命令的参数信息,在后面关于manual的章节中会讲到。


再以 ls 为例,输入 ls --all(注意两个连字符!), 结果如图所示:


wKiom1NEZ56SBSwrAANOe33rOGU693.jpg

ls -all 的执行结果和 ls -a一模一样,这说明对于 ls 这个命令,全部显示这个参数可以写成 -a 或者 -all。


参数的值  (values of parameters)

有些参数需要被赋值, 对于短参数和长参数,赋值的写法不同。


对于短参数:


commande -p 14

这里我们把14这个值赋给了参数p


对于长参数:

commande --parameter=14


其他格式的参数

正如我们开头所说,参数的格式没有强制规定。虽然有默认的约定,但林子大了什么鸟都有。比如对于 ls,我们可以把文件或文件夹名作为 ls 的参数,用来显示该文件/文件夹目录下的内容,以隐藏文件夹 .config为例:


wKiom1NEbE-Aw88XAAHY4q0mh8g586.jpg

结果显示了~/.config目录下的文件与文件夹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章