一、什么是解析器 ?
Shell 是 Linux 操作系统下的命令行解析器,是用户和 Linux 内核交互的工具,其实 Shell 担任着类似翻译官的角色,如Linux操作系统层次结构图所示:
从上图可以看到,解析器起名为Shell(外壳)也是有原因的,整个操作系统其实是一层层包起来的,是一层层的抽象,抽象程度越高越方便用户操作,这就类似于编程语言,汇编程序更接近于底层,再就是C语言抽象程度比汇编语言高,Java语言抽象程度更高。
那么,第一个 Unix Shell 是谁发明的呢?
肯·汤普逊在写第一版 UNIX 的时候开发了 Shell,仿效 Multics 上的 Shell 所实现出来的。
二、Linux 中都有哪些解析器 ?
Linux 解析器有如下几种:
[root@node1 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
在 CentOS 7 中默认使用 /bin/bash,如下所示:
[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@node1 ~]# echo $SHELL
/bin/bash
/bin/bash 和 /usr/bin/bash
Bash,Unix shell的一种,在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上,包括Linux与Mac OS X v10.4起至macOS Mojave都将它作为默认shell,而自macOS Catalina,默认Shell以zsh取代。
/bin/sh 和 /usr/bin/sh
如下所示,/bin/sh 和 /usr/bin/sh 是 bash 的一个软连接。
[root@node1 ~]# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 May 16 2022 /bin/sh -> bash
[root@node1 ~]# ls -l /usr/bin/sh
lrwxrwxrwx 1 root root 4 May 16 2022 /usr/bin/sh -> bash
Shell 是用户和 Linux 内核之间交互的桥梁,Shell 也是一门脚本编程语言。
网友评论