前言
shell作为用户和操作系统内核交互的接口,也不断的在发展迭代。shell的发展也离不开unix/linux 系统的发展。并且在开源社区对shell的发展也起到了推动作用。
内容思维导图简介
发展历史
从最早的bourne shell的问世,shell一直经历着较快的更新迭代。 1970年美国Bell lab由Stephen Bourne(大神啊)主导开发了bourne shell,改shell以Stephen本身姓名命名。最早的shell出现了,并且bourne shell也在不断的发展。bourne shell使用Algol语言开发的(没百度以前没听过这神一样的语言)。
在那是C语言很流行,并且用C语言开发出了许多强大的系统等软件。1980年左右,Berkeley大学在BSD UNIX(UNIX的另一个分支)用C语言开发出了C shell,Cshell功能非常强大,提供了较好的交互性,C shell script的语法格式和C语言很相似。但是由于在C shell上附加的功能太多,导致C shell速度较慢。
借鉴了C shell 和Bourne shell的有点,AT & T开发除了Korn shell,Ksh现在在UNIX系统上比较流行。IBM的AIX默认就是Korn shell(简称 ksh)。
之后在linux shell出现了一统天下的BASH SHELL,也是 我们现在最常用的shell。BASH 同时也借鉴了C SHELL 和 KONR SHELL的优点。并且BASH SHELL 是开源软件。BASH SHELL 和 Bourne shell是 向后兼容。
大多数linux发行版中默认的shell就是bash shell。bash shell也具有强大的功能。并且非常的轻巧。
BASH SHELL的优点
命令编修能力
使用 bash 里头,个人认为相当棒的一个功能就是『他能记忆使用过的指令!』这功能真的相当的棒!因为我只要在指令列按『上下键』就可以找到前一个输入的指令!而预设的指令记忆功能可以到达 1000 个!也就是说,你曾经下达过的指令都被记录下来了,记录的档案在你的家目录内的 .bash_history !至于这一次登入所执行的指令都被暂存在暂存区中,成功的登出系统后,该指令记忆才会记录到 .bash_history 当中!这有什么功能呢?最大的好处就是可以『查询曾经做过的举动!』,如此可以知道你的执行步骤,那么就可以追踪您曾下达的指令,以作为除错的工具!但如此一来也有个烦恼,就是如果被骇客入侵了,那么他只要翻你曾经执行过的指令,刚好你的指令又跟系统有关(例如直接输入 MySQL 的密码在指令列上面)那么很容易就被破解你的 Linux 主机!所以,最好是将记录的指令数目减小一点较好!
命令或文件路径补全功能
个功能也相当的棒!如果在执行命令的时候不想按下太多的按键,例如指令 pcprofiledump 够长吧!好了,那么如果你输入了 pcprofile 之后,再按下 [Tab] 按键的话,那么 bash 马上会自动的将后面的 dump 接上来!那如果有重复的指令呢?那么按下两次 [Tab] 将会把所有重复的指令给他列出来啰!
o直接在指令列按下 [Tab][Tab] 两次,那么 Linux 将会把系统内的所有执行档列出来;Shell scripts 的强大功能
在 DOS 年代还记得将一堆指令写在一起的所谓的『批次档』吧?在 Linux 底下的 shell scripts 则发挥的更为强大的功能,可以将您日常生活当中常需要下达的连续指令写成一个档案,该档案并且可以透过对谈互动式的方式来进行主机的侦测工作!也可以藉由 shell 提供的环境变数及相关指令来进行设计,哇!整个设计下来几乎就是一个小型的程式语言了!该 scripts 的功能真的是超乎我的想象之外!
总结
在linux系统中可以使用多种shell,选择哪种shell通常是根据实际生产环境的需要。现在绝大部分企业服务器都是LINUX,主要当然是用BASH SHELL了。有部分像银行、*等为了稳定、安全会选用IBM提供的全套服务器解决方案,那主要是AIX系统了,默认的SHELL的主要是KSH了。
BASH SHELL Language 是一个强大而轻巧的语言,可以完成各种系统管理任务,是系统管理员、linux平台开发人员的必备。