我们知道,管理整个计算机硬件的其实是操作系统的内核,这个内核是需要保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们想要达到的工作。
那么系统有多少shell可以用呢?为什么要用bash?
一、什么是shell
shell的功能是提供用户操作系统的一个接口,因此shell可以调用其他软件。我们已经学过很多命令,比如man,chmod等,这些命令都是独立的应用程序,我们可以通过shell(命令行模式)来操作,让其调用内核来运行。
二、了解系统的合法shell
从早年的UNIX以来,shell有很多的版本。那么目前我们使用的Linux有多少我们可以使用的shell呢?可以从文件/etc/shells查看:
且Linux默认的就是bash。
三、bash shell的功能
我们已经知道,/bin/bash是Linux默认的shell,就一起来了解一下吧。
bash是GUN计划中重要的工具软件之一,目前也是Linux distributions的标准shell。主要兼容于sh,那么这个shell有什么优点呢?
1、命令记忆功能
我们肯定用过,在命令行按上下键来寻找前/后一个输入的命令,以此节省时间,这就是因为bash的这个功能。
执行过的命令会被记录在主文件内的.bash_history中,不过值得注意的是,这个文件记录的是前一次登录以前所执行过的命令。而这一次执行过的命令都会暂存在临时内存中,
我们就可以在此文件中查询我们曾经的操作。
2、命令与文件补全功能
[tab]是很神奇的一个按键,也很方便。
接在一串命令的第一个字后面是命令补全
接在一串命令的第二个字后面是文件补全
比如:
我想知道以cat开头的命令有什么,cat后再按两个[tab][tab],命令补全。
以guandao开头的文件有什么,后接两个[tab][tab],文件补全:
3、命令别名设置功能(alias)
我们都知道ll可以代替ls -l,这就是因为alias的功能,我们先来看一下系统有什么命令别名:
也可以自己设置,比如:alias lm='ls -al'
4、作业控制、前台、后台控制
使用前台,后台的控制可以让作业进行的更为顺利,作业控制可以让我们随时将工作丢到后台中执行。
5、通配符
除了完整的字符串之外,bash还支持许多的通配符来帮助用户查询与命令执行。
eg:想知道/usr/bin下面有多少以X为开头的文件?
四、bash shell的内置命令:type
在bash中,已经内置了很多命令,例如cd,umask等。那么我们怎么查看bash的内置命令或者是外部命令呢?利用type查看就行。
可以看出来cd是内置命令。