http://www.javashuo.com/article/p-rqtripch-bx.html
https://blog.csdn.net/lixinze779/article/details/81012318
https://blog.csdn.net/whatday/article/details/78929247
http://man.linuxde.net/sh
https://blog.csdn.net/SoaringLee_fighting/article/details/78759448linux
Shell 既是一種腳本編程語言,也是一個鏈接內核和用戶的軟件。web
常見的 Shell 有 sh、bash、csh、tcsh、ash,zsh 等。
sh
sh 的全稱是 Bourne shell,由 AT&T 公司的 Steve Bourne開發,爲了記念他,就用他的名字命名了。shell
sh 是 UNIX 上的標準 shell,不少 UNIX 版本都配有 sh。sh 是第一個流行的 Shell。編程
csh
sh 以後另外一個廣爲流傳的 shell 是由柏克萊大學的 Bill Joy 設計的,這個 shell 的語法有點相似C語言,因此才得名爲 C shell ,簡稱爲 csh。bash
Bill Joy 是一個風雲人物,他創立了 BSD 操做系統,開發了 vi 編輯器,仍是 Sun 公司的創始人之一。
BSD 是 UNIX 的一個重要分支,後人在此基礎上發展出了不少現代的操做系統,最著名的有 FreeBSD、OpenBSD 和 NetBSD,就連 Mac OS X 在很大程度上也基於BSD。
tcsh
tcsh 是 csh 的加強版,加入了命令補全功能,提供了更增強大的語法支持。
ash
一個簡單的輕量級的 Shell,佔用資源少,適合運行於低內存環境,可是與下面講到的 bash shell 徹底兼容。
bash
**bash shell 是 Linux 的默認 shel**l,本教程也基於 bash 編寫。運維
bash 由 GNU 組織開發,保持了對 sh shell 的兼容性,是各類 Linux 發行版默認配置的 shell。
bash 兼容 sh 意味着,針對 sh 編寫的 Shell 代碼能夠不加修改地在 bash 中運行。
儘管如此,bash 和 sh 仍是有一些不一樣之處:
一方面,bash 擴展了一些命令和參數;
另外一方面,bash 並不徹底和 sh 兼容,它們有些行爲並不一致,但在大多數企業運維的狀況下區別不大,特殊場景可使用 bash 代替 sh。
查看 Shell
Shell 是一個程序,通常都是放在/bin或者/user/bin目錄下,當前 Linux 系統可用的 Shell 都記錄在/etc/shells文件中。/etc/shells是一個純文本文件,你能夠在圖形界面下打開它,也可使用 cat 命令查看它。編程語言
經過 cat 命令來查看當前 Linux 系統的可用 Shell:編輯器
$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/cshsvg
在現代的 Linux 上,sh 已經被 bash 代替,/bin/sh每每是指向/bin/bash的符號連接。ui
若是你但願查看當前 Linux 的默認 Shell,那麼能夠輸出 SHELL 環境變量:
$ echo $SHELL
/bin/bash
輸出結果代表默認的 Shell 是 bash。
THE END!