认识BASH

管理整个计算机硬件实际上是操做系统的核心,这个核心是须要保护的,因此咱们通常使用者就只能经过shell来跟核心沟通,那么系统到底有多少shell呢,为何咱们要使用bash啊,下面来谈一谈。shell

1.硬件,核心,与shellbash

         这应该是个蛮有趣的话题:“什么是 Shell ”?相信只要摸过计算机,对于操做系统 (不管是 Linux 、 Unix 或者是 Windows) 有点概念的朋友们大多听过这个名词,由于只要有“操做系统”那么就离不开 Shell这个东西。不过,在讨论 Shell 以前,咱们先来了解一下计算机的运行情况吧! 举个例子来讲:当你要计算机传输出来“音乐”的时候,你的计算机须要什么东西呢?架构

        1). 硬件:固然就是须要你的硬件有“声卡芯片”这个配备,不然怎么会有声音工具

        2). 核心管理:操做系统的核心能够支持这个芯片组,固然还须要提供芯片的驱动程序啰; 学习

        3). 应用程序:须要使用者 (就是你) 输入发生声音的指令啰操作系统

       这就是基本的一个输出声音所须要的步骤!也就是说,你必需要“输入”一个指令以后, “硬件”才会经过你下达的指令来工做!那么硬件如何知道你下达的指令呢?那就是 kernel (核心) 的控制工做了!也就是说,咱们必需要经过“ Shell ”将咱们输入的指令与 Kernel 沟通,好让 Kernel 能够控制硬件来正确无误的工做!命令行

操做系统实际上是一组软件,因为这组软件在控制整个硬件与管理系统的活动监测, 若是这组软件能被使用者随意的操做,若使用者应用不当,将会使得整个系统崩溃!由于操做系统管理的就是整个硬件功能嘛! 因此固然不可以随便被一些没有管理能力的终端用户随意使用啰!可是咱们老是须要让使用者操做系统的,因此就有了在操做系统上面发展的应用程序啦!使用者能够经过应用程序来指挥核心, 让核心达成咱们所须要的硬件任务!设计

咱们能够发现应用程序实际上是在最外层,就如同鸡蛋的外壳同样,所以这个咚咚也就被称呼为壳程序 (shell) 啰!接口

其实壳程序的功能只是提供使用者操做系统的一个接口,所以这个壳程序须要能够调用其余软件才好。 咱们用过不少指令,包括 man, chmod, chown, vi, fdisk, mkfs 等等指令,这些指令都是独立的应用程序, 可是咱们能够经过壳程序 (就是命令行界面)来操做这些应用程序,让这些应用程序调用核心来运行所需的工做哩!这样对于壳程序是否有了必定的概念了?ip

2.系统合法的shell与/etc/shells功能

知道什么是 Shell 以后,那么咱们来了解一下 Linux 使用的是哪个 shell 呢?什么!哪个?难道说 shell 不就是“一个 shell 吗?”哈哈!那可不!因为早年的 Unix 年代,发展者众,因此因为 shell 依据发展者的不一样就有许多的版本,例如常听到的 Bourne SHell (sh) 、在 Sun 里头默认的 C SHell、 商业上经常使用的 K SHell、, 还有 TCSH 等等,每一种Shell 都各有其特色。至于 Linux 使用的这一种版本就称为“ BourneAgain SHell (简称 bash) ”,这个 Shell 是 Bourne Shell 的加强版本,也是基准于 GNU 的架构下发展出来的呦!

在介绍 shell 的优势以前,先来讲一说 shell 的简单历史吧 [2] :第一个流行的 shell 是由 Steven Bourne 发展出来的,为了记念他因此就称为Bourne shell ,或直接简称为 sh !然后来另外一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计依附于 BSD 版的 Unix 系统中的 shell ,这个shell 的语法有点相似 C 语言,因此才得名为 C shell ,简称为 csh !因为在学术界 Sun 主机势力至关的庞大,而 Sun 主要是 BSD 的分支之一,因此 C shell 也是另外一个很重要并且流传很广的 shell 之一 。

3.BASH Shell的功能

既然 /bin/bash 是 Linux 默认的 shell ,那么老是得了解一下这个玩意儿吧!bash 是 GNU 计划中重要的工具软件之一,目前也是 Linuxdistributions 的标准 shell 。 bash 主要相容于 sh ,而且依据一些使用者需求而增强的 shell 版本。不论你使用的是那个 distribution ,你都难逃须要学习 bash 的宿命啦!那么这个 shell 有什么好处,干吗 Linux 要使用他做为默认的 shell 呢? bash 主要的优势有下面几个:

1 命令编修能力 (history)2 命令与文件补全功能: ([tab] 按键的好处)3 命令别名设置功能: (alias)4 工做控制、前景背景控制: (job control, foreground,background)5 程序化脚本: (shell scripts)6 万用字符: (Wildcard)

相关文章
相关标签/搜索