美文网首页
Linux基础之Shell解析器

Linux基础之Shell解析器

作者: 羋学僧 | 来源:发表于2023-03-26 13:32 被阅读0次

    一、什么是解析器 ?

    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 也是一门脚本编程语言。

    相关文章

      网友评论

          本文标题:Linux基础之Shell解析器

          本文链接:https://www.haomeiwen.com/subject/csbordtx.html