shell是一个命令解释器,例如在图形界面中双击一个图标表示我们要利用其他工具打开一个文件(如果是二进制文件直接运行该二进制文件)。在命令行界面输入ls -l,这时shell就会对命令进行解析,然后通知系统所要做的操作,shell并将系统处理后的返回值进行处理后返回给用户。
shell又分为登录shell和非登录shell,登录shell执行时需要用户名口令。
通过bash命令进入子shell(bash shell)是不需要用户名口令验证的,因此这个属于非登录shell。
[root@jianshi-21 ~]# bash
[root@jianshi-21 ~]# exit
exit
[root@jianshi-21 ~]#
Linux系统中所支持的Shell在【/etc/shells】文件中存储
[root@jianshi-21 ~]# cat -n /etc/shells
1 /bin/sh
2 /bin/bash
3 /sbin/nologin
4 /bin/ash
5 /bin/bsh
6 /bin/ksh
7 /usr/bin/ksh
8 /usr/bin/pdksh
9 /bin/tcsh
10 /bin/csh
11 /bin/zsh
[root@jianshi-21 ~]#
- /bin/sh已经被/bin/bash取代
- /bin/bash Linux默认的shell
- /bin/tcsh 整合c shell,提供了更多的功能
- /bin/csh 依附于bsd版的unix的shell,被/bin/tcsh
- /bin/ksh 常用于商业版中,兼容于bash
- /bin/zsh 基于ksh开发的,功能更强大
Linux使用的版本称为Bourne Again Shell(简称:bash)。
BASH的优点:
- 命令记忆能力
- 档案对比补全功能:指令补全、文件名补全
- 命令别名(alias)设定功能
- 作业控制(jobs)、前台后台控制
- Shell Script的强大功能
- 通配符 * ? 等
Linux系统默认能够记录1000条命令,系统将执行的命令一般存贮在一个文件中,一般为用户家目录下的【.bash_history】文件中