栏目分类
热点资讯
- 鳥哥的 Linux 私房菜
- 我們在第一章 Linux 是什麼當中提到了:管理整個電腦硬體的其實是作業系統的核心 (kernel),這個核心是需要被保護的!所以我們一般使用者就只能透過 sh...
鳥哥的 Linux 私房菜 发布日期:2025-01-04 14:51 点击次数:177
我們在第一章 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
指令的下達