这次说说关于Shell的东西。
「Shell」是看不见实体的,所以理解起来可能会有些困难。
最近的Linux发行版默认都是用X Window System来操作的(也就是图形化操作),所以很少见到有人会多余的去问「Shell是什么?」
UNIX系的OS的Shell是指「连结OS内核和用户的命令行接口」,命令行接口就是不使用鼠标,通过键盘输入字母文字等来和系统进行交互的接口。
即,Shell就是内核和用户之间通过文字交互的程序。
X Window System启动后,同时按下 Ctrl+Alt+F1 ,可以进入基于文字的登录界面。在这个界面输入用户名和密码后,就启动了Shell。
Shell启动后,显示命令行提示符,在命令行提示符后输入命令,就可以完成各种操作。此时,Shell做的就是把用户输入的命令传给内核执行,再把内核的执行结果返回给用户。
也就是说,Shell在X Window System的「Gnome终端」等启动之后仍然可以运行。(这句话是说X Window System的桌面环境启动之后,仍然是可以使用Shell的)
而且对于有些网络上的服务器,出于安全的考虑根本不让使用X Window System。这时如果不会使用Shell的话,几乎就不可能操作这个服务器了。
Shell其实没有想象中那么难。下定决心只用键盘来操作,剩下的就是练习了。请勇敢的去尝试吧。
作为补充,Shell还有另外一个意思。只要是将用户的指示传达给内核,并内核的计算结果返回给用户的程序,即使它不是基于命令行的,也可以称作「Shell」。
在这种条件下,X Window System的应用程序等也可以被认为是「Shell」。但是,在Linux环境说到Shell的时候,基本上可以认为是指「基于命令行的接口」。