赞
踩
shell最基本的工作就是执行命令。每键入一道命令,shell就会执行。就像:
cd work ; ls -l whizprog.c
上面例子展现了UNIX命令行的原理。
首先,格式很简单,以空白(Space键或Tab键)隔开命令行中各个组成部分。
其次,命令名称是命令行的第一个项目,通常后面会跟着选项(option),任何额外的参数(argument)都会放在选项之后。
第三,选项的开头是一个破折号(或减号),后面接着一个字母。选项是可有可无的,有可能需要加上参数(例如cc -o whizprog whizprog.c)。不需要参数的选项可以合并(例如: ls -lt比ls -l -t更方便,实现功能一样,但是后者多些录入)。
长选项的使用越来越普遍,特别是标准工具GNU版本。
长选项的开头是一个破折号还是两个,视程序而定。
最后要说的是,分号(;)可用来分隔同一行里的多条命令。shell会依次执行这些命令。如果使用的是&符号而不是分号,则shell将在后台执行其前面的命令,这意味着,shell不用等到该命令完成,就可以继续执行下一个命令。
shell识别三种基本命令:内建命令、shell函数以及外部命令:
1 内建命令就是由shell本身所执行的命令。有些命令是由于其必要性才内建的。例如cd用来改变目录,read会将来自用户(或文件)的输入数据传给shell变量。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时会经常用到它。另外还有I/O命令,例如echo与printf.
2 shell函数是功能健全的一系列程序代码,以shell语言写成,它们可以像命令那样引用
3 外部命令就是由shell的副本(新的进程)所执行的命令,基本的过程如下:
a 建立一个新的进程。此进程即为shell的一个副本。
b 在新的进程里,在PATH变量内所列出的目录中,寻找特定的命令。/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin为PATH变量典型的默认值。当命令名称中含有斜杠(/)符号时,将略过路径查找步骤。
c 在新的进程里,以所找到的新程序取代执行中的shell程序并执行。
d 程序完成后,最初的shell会接着从终端读取下一条命令,或执行脚本里的下一条命令
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。