shell最基本的工作就是执行命令.
每键入一道命令, shell 就会执行.
$cd work;ls -l whizprog.c
首先:格式很简单,以空白(Space 键或者 Tab键)隔开命令行中的各个组成部分.
其次,命令名称是命令行的第一个项目.通常后面会跟着选项(option),任何额外的参数(argument)都会放在选项之后
第三,选项的开头是一个破折号(或减号),后面接着一个字母.选项可有可无,有可能需要加上参数.不需要参数的选项可以合并.
?1 | $ ls -lt whizprog.c |
长选项前面是一个破折号还是两个破折号视程序而定.两个破折号(--)表示选项结尾的用法.
?1 2 | $ cd whizprog-1.1 $patch --verbose --backup -p1</tmp/whizprog-1.1-1.2-patch |
最后说明,分号(;)可用来分割同一行里的多条命令.shell 会一次执行这些命令.如果使用了&符号而不是;,则 shell 将在后台执行其前面的命令,这意味着 shell 不用等该命令完成,就可以继续下一条命令.
shell 识别三种基本的命令:
- 内建命令:由 shell 本身所执行饿名理工.
- shell 函数:是功能健全的一系列程序代码,以 shell 语言写成,它们可以像命令那样引用.
-
外部命令:外部命令就是由 shell 的副本(新的进程)所执行的命令,基本过程如下:
- 建立一个新的进程.此进程即位 shell 的一个副本.
-
在新的进程里,在 path 变量内所列出的目录中,寻找特定的命令.
?
1 /bin:/usr/bin:/usr/x11r6/bin/usr/local/bin 为 path 变量典型的默认值.当命令含有斜杠(/)符号时,将掠过路径查找步骤.
- 在新的进程里,以所找到的新程序取代执行中的 shell 程序并执行.
- 程序完成后,最初的 shell 会接着从终端读取的下一条命令,或执行脚本里面的下一条命令.