那么目前我们的
Linux (
CentOS 7.x
为例
)
有多少我们可以使用的
shells
呢?
你可以检查一下
/etc/shells
这个文件,至少就有底下这几个可以用的
shells (
鸟哥省略了重复的
shell
了!包括
/bin/sh
等于
/usr/bin/sh
啰!
)
.
/bin/sh (
已经被
/bin/bash
所取代
)
.
/bin/bash (
就是
Linux
预设的
shell)
.
/bin/tcsh (
整合
C Shell
,提供更多的功能
)
.
/bin/csh (
已经被
/bin/tcsh
所取代
)
虽然各家
shell
的功能都差不多,但是在某些语法的下达方面则有所不同,因此½议你还是得要选择
某一种
shell
来熟悉一下½佳。
Linux
预设就是使用
bash
,所以最初你只要学会
bash
就非常了不
起了!
^_^
另外,咦!
为什么我们系统上合法的
shell
要写入
/etc/shells
这个文件啊?
这是因为
系统某些服务在运作过程中,会去检查使用者能够使用的
shells
,而这些
shell
的查询就是½由
/etc/shells
这个文件啰!
举例来说,某些
FTP
网站会去检查使用者的可用
shell
,而如果你不想要让这些用户使用
FTP
外的主机资源时,可能会给予该使用者一些怪怪的
shell
,让使用者无法以其他服务登入主机。
这个
时候,你就得½那些怪怪的
shell
写到
/etc/shells
当中了。举例来说,我们的
CentOS 7.x
/etc/shells
里头就有个
/sbin/nologin
文件的存在,这个就是我们说的怪怪的
shell
啰~
那么,再想一想,
我这个使用者什么时候可以取得
shell
来工作呢?还有,
我这个使用者预设会取
得哪一个
shell
?还记得我们在
第四章的在终端½面登入
linux
小½
当中提到的登入动作吧?
我登入的时候,系统就会给我一个
shell
让我来工作了。
而这个登入取得的
shell
就记录在
/etc/passwd
这个文件内!这个文件的内容是啥?
[dmtsai@study ~]$
cat /etc/passwd
root:x:0:0:root:/root:
/bin/bash
bin:x:1:1:bin:/bin:
/sbin/nologin
daemon:x:2:2:daemon:/sbin:
/sbin/nologin
.....(
底下省略
).....
如上所示,在每一行的最后一个数据,就是你登入后可以取得的预设的
shell
啦!那你也会看到,
root
/bin/bash
,不过,系统账号
bin
daemon
等等,就使用那个怪怪的
/sbin/nologin
啰~关于使
用者这部分的内容,我们留在
第十三章的账号管理
时提供更多的说明。
10.1.4 Bash shell
的功能
既然
/bin/bash
Linux
预设的
shell
,那么总是得了½一下这个玩意儿吧!
bash
GNU
计划中
重要的工具软件之一,目前也是
Linux distributions
的标准
shell
bash
主要兼容于
sh
,并且依
据一些使用者需求而加强的
shell
版本。不论你使用的是那个
distribution
,你都难逃需要学习
bash
的宿命啦!那么这个
shell
有什么好处,干嘛
Linux
要使用他作为预设的
shell
呢?
bash
主要的优
点有底下几个:
.
命令编修能力
(history)