1. 程式人生 > >linux的命令列操作和shell的區別

linux的命令列操作和shell的區別

      這個問題也是突然想起來的,因為我身邊的同事有時候會把這兩個區別的表述,所以我就好奇了,到底是什麼關係呢,他們都能操作Linux系統啊。。後來百度一下才知道大致的區別。

一、什麼是shell

答:
      shell翻譯成殼的意思,它是包裹在linux核心外層的,一個可通過一系列的linux命令對作業系統發出相關指令的人機介面。 shell可以通過其條件語句和迴圈語句等,把一系列linux命令結合在一起,形成一個相當於面向過程的程式,shell script,來實現一些較為複雜的功能。

      總括,shell是linux命令集的概稱,是屬於命令列的人機介面。Shell 是一個用C語言編寫的程式,它是使用者使用Linux的橋樑。Shell既是一種命令語言,又是一種程式設計語言。Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。Ken Thompson的sh是第一種Unix Shell,Windows Explorer是一個典型的圖形介面Shell。Shell 和Shell Script不是一回事,通常我們說的都是Shell Script。

      由定義可知, shell相當於經過裝飾的命令列,和命令列一樣,都能操作linux。但是shell是面向過程的,相當於有了一定的邏輯和過程,而命令列只是單一的操作。

二、區別

1、直接在命令列執行 就是在當前的shell環境下執行 比如涉及到一些環境變數的時候 必須在當前shell環境裡執行

      在腳本里執行的話 指令碼執行的時候 會fork一個子程序 所有操作都在子程序進行 如果涉及到一些在腳本里設定環境變數的東西 指令碼結束了 環境變數也就消失了。
這個修改環境變數的話,需要特別注意下。

2、shell可以重複執行一些命令。你也可以把自己要重複執行的命令寫到腳本里面執行。而命令列的話就需要一個一個的輸入命令,相對而言麻煩一些。

      上面就是一些對於shell和命令列的對比。個人覺得除了非常專業的運維人員,對大多數開發人員來說,這兩者的差別不大,也不影響大家對於linux系統的使用。

加油。
end