ash, bash, ksh, csh, zsh
生活随笔
收集整理的這篇文章主要介紹了
ash, bash, ksh, csh, zsh
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/bin/bash (就是 Linux 預(yù)設(shè)的 shell, 是現(xiàn)在很多Linux的發(fā)行版中默認(rèn)的shell,綜合了其他shell的很多優(yōu)點。)
/bin/ksh (Kornshell 由 AT&T Bell lab. 發(fā)展出來的,相融于 bash)
/bin/tcsh (整合 C Shell ,提供更多的功能)
/bin/csh (已經(jīng)被 /bin/tcsh 所取代)
/bin/zsh (基于 ksh 發(fā)展出來的,功能更強大的 shell)現(xiàn)在一般的shell 是使用的bash >帶有命令自動補全等等功能,但基本的sh沒有
sh來自于systemV的Unix,是傳統(tǒng)的Unix的shell,直到現(xiàn)在很多的系統(tǒng)管理員仍然喜歡使用sh。
目前流行的Shell有ash, bash, ksh, csh, zsh等,你可以用下面的命令來查看你。
bash(Bourne Again shell)是Linux中最常見的。常見的還有:csh(語法與C語言相近),pdksh(是Korn shell的擴展),tcsh(微型shell),sash(單機版)。
各個Shell內(nèi)置命令不同。Ksh 有的 Bash 都有,但Bash 有的Ksh 不一定有。所以要是編寫的以Bash 為環(huán)境,那么在Ksh下可能出現(xiàn)不兼容的現(xiàn)象,導(dǎo)致腳本無法運行或運行出錯。
bash and ksh are written differently. If you have a stopped job in the background, bash doesn't allow you to exit. So after tying exit, you are still in bash shell. By typing exit in ksh, you actually exits from ksh and terminate all the processes started in ksh. ksh in Solaris 10 doesn't allow you to exit with stopped background process.
在bash中輸入ksh回車,就進入了ksh,相當(dāng)于子shell,退出可以使用ctrl+d,返回bash,在ksh下輸入bash就可以切換到bash了,當(dāng)然退出也是ctrl+d。
當(dāng)然bash一般是安裝過的,但是ksh就不一定安裝了,如果提示command not found的話,那就是沒有安裝了。
查看自己的Shell類型:
# echo $SHELL
$SHELL是一個環(huán)境變量,它記錄用戶所使用的Shell類型。你可以用命令:
# Shell-name
來轉(zhuǎn)換到別的Shell,這里Shell-name是你想要嘗試使用的Shell的名稱,如
ash等。這個命令為用戶又啟動了一個Shell,這個Shell在最初登錄的那個Shell
之后,稱為下級的Shell或子Shell。
使用命令:
# exit
可以退出這個子Shell。
使用不同的Shell的原因在于它們各自都有自己的特點,下面做一個簡單的介紹:
1.a(chǎn)sh
ash Shell是由Kenneth Almquist編寫的,是Linux中占用系統(tǒng)資源最少的一個小Shell,它只包含24個內(nèi)部命令,因而使用起來很不方便。
2.bash
bash是Linux系統(tǒng)默認(rèn)使用的Shell,它由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell的縮寫,內(nèi)部命令一共有40個。Linux使用它作為默認(rèn)的Shell是因為它有以下的特色:
(1)可以使用類似DOS下面的doskey的功能,用上下方向鍵查閱和快速輸入并修改命令。
(2)自動通過查找匹配的方式,給出以某字串開頭的命令。
(3)包含了自身的幫助功能,你只要在提示符下面鍵入help就可以得到相關(guān)的幫助。
3.ksh
ksh是Korn Shell的縮寫,由Eric Gisin編寫,共有42條內(nèi)部命令。該Shell最大的優(yōu)點是幾乎和商業(yè)發(fā)行版的ksh完全相容,這樣就可以在不用花錢購買商業(yè)版本的情況下嘗試商業(yè)版本的性能了。
4.csh
csh是Linux比較大的內(nèi)核,它由以William Joy為代表的共計47位作者編成,共有52個內(nèi)部命令。該Shell其實是指向/bin/tcsh這樣的一個Shell,也就是說,csh其實就是tcsh。
5.zch
zch是Linux最大的Shell之一,由Paul Falstad完成,共有84個內(nèi)部命令。如果只是一般的用途,是沒有必要安裝這樣的Shell的。
Bourne Shell (/usr/old/bin/sh)
C Shell (/usr/bin/csh)
Korn Shell (/usr/bin/ksh)
POSIX Shell (/usr/bin/sh)
如何知道當(dāng)前使用的是什么Shell?
①輸入一個系統(tǒng)不認(rèn)識的命令(如#fuck_pig)獲得系統(tǒng)提示
②#e cho $0 (適用:sh/ksh)
③#ps |grep $$|awk ‘{print $4}’
④#e cho $SHELL(用戶默認(rèn)的Shell,但不實時反映當(dāng)前shell)
還有在你的/etc/shells中你可以看到更多的shell:
# /etc/shells: valid login shells
/bin/ash
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/zsh
/bin/sash
/bin/zsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
不同的 shell 有著不同的功能,且也彼此各異、或說"大同小異"。
常見的 shell 主要分為兩大主流:
sh:
burne shell (sh)
burne again shell (bash)
csh:
c shell (csh)
tc shell (tcsh)
korn shell (ksh)
參考 old.blog.edu.cn/user1/10137/archives/2005/85452.shtml
================
如果你想使用ksh作為你的默認(rèn)shell 用chsh命令
格式
chsh [ -s shell ] [ username ]
描述
chsh 用來更換你登入時所用的shell 。在命令列沒指定shell。 chsh 會提示一個給你。
加入你的名字叫user 就這樣
chsh -s ksh user 就可以改變你默認(rèn)的登陸shell了
其實bash比ksh強大很多了 否則也不會所有的linux發(fā)行版都用bash做默認(rèn)shell了
總結(jié)
以上是生活随笔為你收集整理的ash, bash, ksh, csh, zsh的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像色调,饱和度,对比度等相关定义
- 下一篇: 各Rendering Path技术以及其