twf_cc
初级用户
积分 262
发帖 50
注册 2004-7-10
状态 离线
|
『楼 主』:
幾種比較流行的 unix shell 的簡介
幾種比較流行的 unix shell 的簡介
Unix 的 shell 就好像Dos 的 command.com,
WinNT/2K/XP 的 cmd.exe, 是命令解析器,是
人機之間的介面,也是一種解譯式的程序語言,
有自己的語法,可把不同的命令膠合,成為一個
新的命令.
這種用文本方式寫的程序,Unix 名 script,
Dos/9X/ME , NT/2K/XP 名 Batch ,不同的是
Unix 上有佷多的 shell ,如Zsh,Bzsh ,pdksh,
ash,ksh88/93,tcsh,csh..plan9...等,而Dos 只可
換上 4Dos.com , NT/2K/XP 只可換上4NT.exe .
很多朋友玩上*nix 一些時間,我以Linux 為例,
總會想學點程式語言,shell script 無處不在,
是很多朋友的第一選擇,但Unix shell 這麼多,
那種比較好上手,威力大的?
就我個人的心得寫出來,希望作為初學者的一點點
參考.
現在比較流行的shell 為 bash ,ksh88 ,ksh93 ,
pdksh , tcsh 和 zsh.
先說bash,拜Linux 所賜,新一代的網管,用家,程序員
很多都使用它來寫腳本,因為它是Linux 人機介面
的默認會話, 它擁有高階語言的大多數語法,結構
不複雜,上手容易,加上廣泛地存在於各種OS,使用人
眾多,向後兼容 bourne shell 和 POSIX shell 標準,
教程,手冊(尤其中文)和腳本容易得來,對初學者是一個
有利條件.
比起 ksh93 和 zsh,它可能在語法小了關聯性陣列
沒有 zsh 的模組功能,如可以載入 zftp 模組,達到
不用外部的工具的方法.
如Zsh,ksh93 一樣,bash有打開tcp/udp socket 的功能,
大致上它們的語法很相像.
ksh,分ksh88,ksh93,David Korn 寫出來的,是商業軟體,
使用它得要買許可證,沒原碼付上,它的使用者多是商業
Unix 的網管,如 SunOS, AIX...那些Unix ,它有一個clone
,pdksh ,自由軟體,但它可不是完全兼容ksh88/93,而且功能
也不及ksh93,所以在商業Unix 裡少見它的身影,反在Linux,freebsd..
等會看到有些用家,總的來說,ksh93功能強大,使用者也不少,
但它要錢,中文教程不太多見,但是因為與zsh,bash 同為 bourne shell
家族,所以很多ksh93 腳本不用改動即可用bash , zsh 來執行.
zsh ,Paul Falstad 的作品,自由軟體,功能之多我很懷疑連作
者都不全記得起(它那本手冊我還未看完),它有一些特式是其它
shell 沒有的,如模擬Ksh88來執行ksh的腳本,模組功能,可以載入
模組,如zftp ,zmv ...等來加強,它也是MacOSX 的默認登錄會話(
希望沒有記錯),但它的教程不太多見,中文教程我從沒看過,腳
本不及Ksh,bash的多,我現在還是在看它咐帶的手冊,對一個沒有
碥程經驗的初學者看來是困難的.
Tcsh ,這個我不多說了,有程序員寫了些文分析 csh 不可作編程
之用,請到
http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
看看
最後我個人的推介還是學bash,使用人眾是它的最大好處,當有問題
時比較容易解決,加上Bash3.0 已出了,它比2.0X 加入更多語法,而
且多個OS 都有它的身影,在不安裝 *nix 下,還是可在win32 安裝一
個Unix 仿真器,cygwin,來學. 到
http://www.cygwin.com 看看
zsh,pdksh 也有 port 到 cygwin的.
好了,這個灌水之作到此為止,多謝.
|
|