計(jì)算機(jī)操作系統(tǒng)提供的用戶(hù)交互接口有:GUI和CLI,其中CLI全稱(chēng)為Command line interface,命令行環(huán)境,CLI解析用戶(hù)輸入的命令,并傳到操作系統(tǒng)執(zhí)行,并將操作系統(tǒng)處理的結(jié)果返回給用戶(hù)。
Shell便是Linux命令行環(huán)境CLI,直觀(guān)意思是“外殼”,這一點(diǎn)與Linux內(nèi)核對(duì)應(yīng)。
Linux是一個(gè)開(kāi)源的操作系統(tǒng),由很多個(gè)組織和個(gè)人共同建造。Linux上的Shell已演進(jìn)了多個(gè)版本,如sh、bash、csh、tcsh、ash。
- Sh:即為Bourne shell,Bourne是人名,因其開(kāi)發(fā)sh,而獲此命名。sh是UNIX的標(biāo)配,也是第一個(gè)Shell。
- Bash:由GNU組織開(kāi)發(fā),兼容sh,一般為L(zhǎng)inux默認(rèn)shell。GNU組織的目標(biāo)是打造自由、開(kāi)源的操作系統(tǒng)。
- Csh:即為帶有C語(yǔ)言語(yǔ)法風(fēng)格的Shell。
- Tcsh:增強(qiáng)了csh,提供更強(qiáng)大的語(yǔ)法支持。
- Ash:即為輕量化的 Shell,占用資源少。
系統(tǒng)可用的Shell的類(lèi)型都記錄在/etc/shells文件中
root@linux:/etc# cat shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/usr/bin/screen
Shell是一個(gè)程序,放在/bin或者/usr/bin目錄下
root@linux:/bin# ll | grep sh
-rwxr-xr-x 1 root root 1113504 Apr 5 2018 bash*
-rwxr-xr-x 1 root root 121432 Jan 25 2018 dash*
lrwxrwxrwx 1 root root 4 Apr 5 2018 rbash -> bash*
lrwxrwxrwx 1 root root 4 Apr 24 2019 sh -> dash*
lrwxrwxrwx 1 root root 4 Jan 25 2018 sh.distrib -> dash*
lrwxrwxrwx 1 root root 7 Sep 18 2020 static-sh -> busybox*
至于誰(shuí)是系統(tǒng)默認(rèn)的Shell,可通過(guò)echo $SHELL來(lái)查看:
root@linux:/# echo $SHELL
/bin/bash
-
Linux
+關(guān)注
關(guān)注
88文章
11758瀏覽量
219006 -
Shell
+關(guān)注
關(guān)注
1文章
375瀏覽量
25372 -
CLI
+關(guān)注
關(guān)注
1文章
80瀏覽量
9051
發(fā)布評(píng)論請(qǐng)先 登錄
Linux基礎(chǔ)知識(shí)中的Shell
評(píng)論