鸟哥的 Linux 私房菜
我们在第一章 Linux 是什么当中提到了:
管理整个电脑硬体的其实是作业系统的核心 (kernel),这个核心是需要被保护的!
所以我们一般使用者就只能透过 shell 来跟核心沟通,以让核心达到我们所想要达到的工作。
那么系统有多少 shell 可用呢?为什么我们要使用 bash 啊?底下分别来谈一谈喔!
硬体、核心与 Shell
为何要学文字介面的 shell?
系统的合法 shell 与 /etc/shells 功能
那么目前我们的 Linux (以 CentOS 5.x 为例) 有多少我们可以使用的 shells 呢?
你可以检查一下 /etc/shells 这个档案,至少就有底下这几个可以用的 shells:
/bin/sh (已经被 /bin/bash 所取代)
/bin/bash (就是 Linux 预设的 shell)
/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,相容于 bash)
/bin/tcsh (整合 C Shell ,提供更多的功能)
/bin/csh (已经被 /bin/tcsh 所取代)
/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
虽然各家 shell 的功能都差不多,但是在某些语法的下达方面则有所不同,因此建议你还是得要选择某一种 shell 来熟悉一下较佳。
Linux 预设就是使用 bash ,所以最初你只要学会 bash 就非常了不起了! ^_^!
另外,咦!为什么我们系统上合法的 shell 要写入 /etc/shells 这个档案啊?
这是因为系统某些服务在运作过程中,会去检查使用者能够使用的 shells ,而这些 shell
的查询就是藉由 /etc/shells 这个档案啰!
举例来说,某些 FTP 网站会去检查使用者的可用 shell ,而如果你不想要让这些使用者使用 FTP
以外的主机资源时,可能会给予该使用者一些怪怪的 shell,让使用者无法以其他服务登入主机。
这个时候,你就得将那些怪怪的 shell 写到 /etc/shells 当中了。举例来说,我们的 CentOS 5.x
的 /etc/shells 里头就有个 /sbin/nologin 档案的存在,这个就是我们说的怪怪的 shell 啰~
那么,再想一想,我这个使用者什么时候可以取得 shell 来工作呢?还有,
我这个使用者预设会取得哪一个 shell 啊?还记得我们在第五章的在终端介面登入linux小节当中提到的登入动作吧?
当我登入的时候,系统就会给我一个 shell 让我来工作了。
而这个登入取得的 shell 就记录在 /etc/passwd 这个档案内!这个档案的内容是啥?
[root@www ~]# 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
啰~关于使用者这部分的内容,我们留在第十四章的帐号管理时提供更多的说明。
Bash shell 的功能
Bash shell 的内建命令: type
指令的下达
栏目分类
- C-cash中文网
- C-cash中文网