学习linux,必会命令行;学习命令,必会shell;shell是什么?解开它的面纱,看它的庐山真面目
1. Scripting languange
shell首先是一种支持编写脚本的程序设计语言,那脚本又什么?脚本是软件环境中可以使任务自动化执行的文件,这些任务也可以人为选择执行,主要的软件环境包括应用程序、浏览器中的网页,操作系统的外壳等等。office中网址和邮箱的自动连接,shell脚本的任务是进程控制,控制系统程序的行为。其他的脚本语言还有javascript、python、Ruby等
不同的脚本语言适用于不同的软件环境。如javascript广泛应用于网页中,shell主要应用于系统进程管理中。
2. interface software
shell的本意是壳,操作系统的壳,在内核与用户之间,完成用户与内核之间的交互。shell包括命令行shell和图像界面shell,linux和UNIX中的未命令行shell,window中是图像界面shell。linux shell 将用户的命令解释后发给内核,内核完成相应的操作。用户在操作系统上完成的所有任务都是通过shell与内核交互实现。如shutdown命令是由shell编写的程序,命令解释shell解释shutdown命令,然后提交给内核处理,告诉内核完成关机操作,关机任务具体由内核实现。
为了加快命令的执行,同时更有效的制定shell程序,shell中定义了一些内置的命令,如cd 、exit。这些内置命令在用户登录系统后,就被载入内存,并一直运行,直到用户退出系统。除了shell的内置命令,linux系统上还有很多可执行文件,类似window中的.exe文件,例如ls命令就是一个可执行文件,存放在/bin/ls中。这些命令和内置命令不同,只有在被调用时,才由系统装入内存执行。