1.5 小结
我们终于结束了第一章!在本章,我们学习到了如下知识。
Linux Shell脚本应该以“#!”开始,这个机制告诉命令行Shell应该选择哪个解释器来解释这个脚本。这种机制提供了一种编程规范,提高编写脚本的灵活性,例如,你可以选择使用其他语言来编写脚本。
Linux Shell运行在环境中。环境变量在用户登录启动第一个Shell(登录Shell)时从启动文件中读取。不同Shell的启动文件不相同。环境变量在运行过程中可以通过export命令改变。env命令为了运行命令,能够临时创造全新的环境变量。
Linux Shell运行命令时,会创建一个和父进程一模一样的子进程。子进程的环境变量继承父进程。所有在子进程中对其环境变量的操作都不会影响到父进程。例如,cd命令的执行仅仅改变子进程的环境变量。
$PATH是Linux的环境变量之一。$PATH往往包含了Linux各个可执行文件的所在目录。当 Shell 接收到命令发现此命令为非内部命令,并未给出了完整路径时,就会依次在$PATH变量中以从前到后的顺序搜寻命令文件,直到找到为止。
可以将环境变量的改变用export写入/etc/profile或$HOME/.profile中。后者的优先级高于前者。例如,export PATH=$HOME/bin:$PATH,即向$PATH路径中添加$HOME/bin目录。这样,在用户每次登录时都会自动加载环境变量的改变。
编译型语言的执行效率高于解释型语言。但是解释型语言在开发的容易度、可移植性和简洁性等方面都高于编译型语言。因为Linux Shell运行于内核之上,因此可以方便地进行一些文件系统的高级操作。具体使用哪种语言,则视程序的需求而定。
UNIX/Linux的Shell语言是被广泛使用的脚本语言,常见于系统维护中。如果合理地使脚本维持在POSIX接口支持的范围内,则可能获得高度的可移植性。即使有问题,也可以通过很小的改动来完成想要做的事情。
最后,欢迎进入Linux Shell编程世界!