连接Linux内核的桥梁:Shell

阅读 1.7k
标签: Linux

相信大家都听说过Shell这个词,那什么是Shell呢?

什么是Shell

想象一下,如果将计算机比作一个鸡蛋,最里面的是蛋黄,相当于硬件,蛋清就相当于内核(Kernel),那么Shell就是鸡蛋壳,这个鸡蛋壳就是面向用户的应用程序。

我们知道,可以通过内核程序(操作系统部分)来管理硬件,那为了和内核进行沟通,我们又需要通过Shell来进行命令的下达。

这就是Shell存在的意义,Shell是直接面向用户的应用程序它本质上只是提供了一个界面,在Shell中可以调用其他软件,比如,man、chmod和vim等工具。

你可以理解为Shell就是一座桥梁,而man和vim等就相当于交通工具,这些交通工具通过桥梁可以直接和内核进行通信。

Shell的种类

Shell有多个不同的版本,例如常见的Bourne shell(sh)、在sun里面默认的C shell、商业上常用的K shell等。

第一个流行的shell是由Steven Bourne发展出来的,为了纪念他所以就称为Bourne shell,或直接简称为sh,后来另外一个广为流传的shell是由伯克利大学的Bill Joy设计的,语法类似于C语言,所以得名为C shell,简称csh

对于具体的Linux系统(以CentOS 7.x为例)有多少可以使用的shell呢?在/etc/shells这个文件中,可以找到答案。一般有如下几种:

  • /bin/sh (已经被/bin/bash所替换)
  • /bin/bash (默认的shell)
  • /bin/tcsh (整合了C shell,提供了更多的功能)
  • /bin/csh (已经被/bin/tcsh所替换)
  • /sbin/nologin

小结

各家的shell功能都差不多,但是语法则有所不同,Linux默认是使用bash(Bourne Again Shell),所以,学习bash的语法就显得非常重要了,在下一篇《学习BASH》中会详细说明。

最后编辑于: 2022-06-29

评论(0条)

(必填)
复制成功