目录
Shell简介
什么是Shell
Shell分类
内核Kernal
Shell简介
什么是Shell
我们首先需要知道一台完整的计算机是由硬件组成的,而人不可以直接与硬件交互,为了完成交互,进行了以下的操作
- 将硬件设备交由内核管理,给硬件套个内核,通过内核来控制硬件;不过内核的复杂性太高,在访问时存在较大的风险,所以用户不可以直接访问内核
- 通过调用API(应用程序编程接口来实现控制内核控制硬件,但是使用API实现一个简单的任务都需要调用多次API,使用起来太麻烦
- 通过外层的应用程序集成大量的API接口来控制硬件
为了使得用户与硬件交互,将硬件一层层包裹起来,就像蜗牛的壳,而壳的英文为Shell
所以我们在行业中就将用户终端程序(为用户提供操作界面的软件,通常指的是命令解释器)称之为Shell
Shell的作用
Shell接收用户命令,然后解析命令调用系统相关API操作内核,控制计算机
Shell充当了人与内核(硬件)交互的翻译官
Shell分类
Shell可以分为图形化界面Shell和命令行式Shell
图形化界面Shell主要分为
Windows Explorer (Windows操作系统)
BlakBox/FluxBux/KDE等 (Linux操作系统)
命令行式Shell主要分为
Cmd (Windows系统)
Bash/zsh/csh/sh (Unix/Linux操作系统)
Sh是最初的UNIX Shell程序
Bash是sh的增强版本,是目前通用的Linux Shell软件,大部分linux默认都是用的是bash
内核Kernal
什么是内核
Linux系统内核指的是一个由Linus Torvalds负责维护,提供进程管理、内存管理以及多任务系统功能的系统核心程序
Shell与Kernal之间的关系
用户将请求告知Shell后,由Shell和内核通信,内核再负责和硬件通信,完成交互
操作系统内核(kernal)与shell是独立的套件,而且都可以被替换
即:不同的操作系统使用不同的Shell,同一操作内核也可以使用不同的shell
Linux发行版
Linux发行套件系统是我们常说的Linux操作系统,也就是由Linux内核与各种常用软件的集合产品
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等