幾種常見的Shell:sh、bash、tcsh、csh、ash的區別

@Author  : Spinach | GHB
@Link    : http://blog.csdn.net/bocai8058

概念

Linux 是一個開源的操作系統,由分佈在世界各地的多個組織機構或個人共同開發完成,每個組織結構或個人負責一部分功能,最後組合在一起,就構成了今天的 Linux。例如:

  • Linux 內核最初由芬蘭黑客 Linus Torvalds 開發,後來他組建了團隊,Linux 內核由這個團隊維護。
  • GNU 組織開發了很多核心軟件和基礎庫,例如 GCC 編譯器、C語言標準庫、文本編輯器 Emacs、進程管理軟件、Shell 以及 GNOME 桌面環境等。
  • VIM 編輯器由荷蘭人 Bram Moolenaar 開發。

Windows、Mac OS、Android 等操作系統不一樣,它們都由一家公司開發,所有的核心軟件和基礎庫都由一家公司做決定,容易形成統一的標準,一般不會開發多款功能類似的軟件。而 Linux不一樣,它是“萬國牌”,由多個組織機構開發,不同的組織機構爲了發展自己的 Linux 分支可能會開發出功能類似的軟件,它們各有優缺點,用戶可以自由選擇。Shell就是這樣的一款軟件,不同的組織機構開發了不同的。

Shell,它們各有所長,有的佔用資源少,有的支持高級編程功能,有的兼容性好,有的重視用戶體驗。

Shell 既是一種腳本編程語言,也是一個連接內核和用戶的軟件。

sh

sh的全稱是Bourne shell,由AT&T公司的Steve Bourne開發,爲了紀念他,就用他的名字命名了。

sh是UNIX上的標準shell,很多UNIX版本都配有sh。sh是第一個流行的Shell。

csh

sh之後另一個廣爲流傳的shell是由柏克萊大學的Bill Joy設計的,這個shell的語法有點類似C語言,所以才得名爲C shell ,簡稱爲csh。

tcsh

tcsh是csh的增強版,加入了命令補全功能,提供了更加強大的語法支持。

ash

一個簡單的輕量級的Shell,佔用資源少,適合運行於低內存環境,但是與下面講到的 bash shell 完全兼容。

bash

bash shell是Linux的默認shell。

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 /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
# echo $SHELL
/bin/bash

引用:https://blog.csdn.net/whatday/article/details/78929247


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章