什么是shell?
shell是一个命令解释器,它向用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。
最底层是硬件,通过内核来管理硬件。外部人为键入的命令,内核并不能识别。外部的命令都是a、b、c等这些字母组成,我们知道,计算机能够识别的只有0和1这样的机器语言。所以我们需要把命令转换成机器能够识别的机器语言,同时还需要把机器语言翻译成命令。充当双向“翻译”的工作,这就是shell。
shell最主要的工作是:键入的命令通过shell翻译成内核能够识别的机器语言,内核接收到机器语言按照要求去调用硬件完成操作。同时,操作完成后硬件把执行结果返回给内核,内核把机器语言的结果通过shell翻译成我们能够看懂的a、b、c,最后呈现结果交还给用户。shell其实就是Linux的交互界面,没有shell,也就无法敲入任何命令。对比windows,也有这种交互界面的说法,准确的讲是图形交互界面。
shell还有一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言(也就是不需要先单独进行编译,而是命令执行过程中自动进行编译,所见即所得),在shell中可以直接调用Linux系统命令。
shell的分类有哪些呢?
1979年Unix就开始使用Bourne Shell,Bourne Shell在Linux中识别为sh。
C Shell主要在BSD版的Unix系统中使用,其语法和C语言类似而得名。
Bourne Shell与C Shell在语法上是不兼容的。
对Linux来说,shell主要指的是标准Bash Shell,语法与sh兼容。
默认情况下,Linux的shell有这些,如下图:
比如你需要切换sh,直接键入sh即可,exix退出。
领取专属 10元无门槛券
私享最新 技术干货