官术网_书友最值得收藏!

2.3 什么是shell

在開始討論如何使用shell進行程序設計之前,我們先來回顧一下shell的作用以及Linux系統中提供的各種shell。shell是一個作為用戶與Linux系統間接口的程序,它允許用戶向操作系統輸入需要執行的命令。這點與Windows的命令提示符類似,但正如先前所提到的,Linux shell的功能更強大。例如,我們可以使用<和>對輸入輸出進行重定向,使用|在同時執行的程序之間實現數據的管道傳遞,使用$(...)獲取子進程的輸出。在Linux中安裝多個shell是完全可行的,用戶可以挑選一種自己喜歡的shell來使用。圖2-1顯示了shell(實際上是兩種shell:bash和csh)和其他程序環繞在Linux內核的四周。

圖2-1

由于Linux是高度模塊化的系統,所以你可以從各種不同的shell中選擇一種來使用,雖然它們中的大多數都是從最初的Bourne shell演變而來的。在Linux系統中,總是作為/bin/sh安裝的標準shell是GNU工具集中的bash(GNU Bourne-Again Shell)。因為它作為一個優秀的shell,總是安裝在Linux系統上,而且它是開源的并且可以被移植到幾乎所有的類UNIX系統上,所以我們把它作為將要使用的shell。在本章中,我們將使用bash的第3版,并且在大多數情況下只使用那些所有POSIX兼容的shell都具備的功能。我們假設bash被安裝為/bin/sh并且它是你的登錄所使用的默認shell。在大多數Linux發行版中,默認的shell程序/bin/sh實際上是對程序/bin/bash的一個連接。

你可以使用如下命令來查看bash的版本號:

如果你想要切換到另一個shell(例如,bash不是你的系統中默認的shell),你只需直接執行需要的shell程序(例如,/bin/bash)就可以運行新的shell并且改變命令提示符了。如果你使用的是UNIX系統并且bash沒有被安裝,你可以從GNU Web網站www.gnu.org上免費下載它。它的源代碼具有高度的可移植性,它在你的UNIX版本上編譯成功幾乎不會有什么問題。

當你創建Linux用戶時,你可以設置這個用戶要使用的shell,這個工作既可以在創建用戶時完成,也可以在創建用戶之后,通過修改用戶信息來完成。圖2-2顯示了使用Fedora選擇用戶shell的界面。

圖2-2

還有許多免費的或商業的shell可以使用,表2-1對常用的shell做了一個簡單的總結。

表2-1

除了C shell和少數變體以外,所有這些shell都很相似,并且都與X/Open 4.2和POSIX 1003.2規范中對于shell的規定非常一致。POSIX 1003.2對于shell的規定很少,但在X/Open中的擴展規定則提供了一個更加友好、功能更加強大的shell。X/Open通常是一個提出更多要求的規范,但遵循它的系統也更加友好。

主站蜘蛛池模板: 辽宁省| 将乐县| 大荔县| 虹口区| 巩义市| 恩平市| 兴仁县| 福鼎市| 乌兰县| 锦屏县| 阿拉善左旗| 安吉县| 彭泽县| 讷河市| 夏河县| 柘城县| 葫芦岛市| 旅游| 清新县| 尚志市| 桐乡市| 荔波县| 漳浦县| 金湖县| 永新县| 华池县| 门源| 龙江县| 西藏| 磴口县| 马公市| 北海市| 长葛市| 衡山县| 周至县| 和政县| 那曲县| 邵阳县| 阳泉市| 东安县| 阿拉善右旗|