當前位置:
首頁 > 知識 > Shell 程序

Shell 程序

Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。

Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。

Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。

Shell 在線工具



Shell 腳本

Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。

業界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。

由於習慣的原因,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。



Shell 環境

Shell 編程跟 java、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。

Linux 的 Shell 種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)

  • Bourne Again Shell(/bin/bash)

  • C Shell(/usr/bin/csh)

  • K Shell(/usr/bin/ksh)

  • Shell for Root(/sbin/sh)

  • ……

本教程關注的是 Bash,也就是 Bourne Again Shell,由於易用和免費,Bash 在日常工作中被廣泛使用。同時,Bash 也是大多數Linux 系統默認的 Shell。

在一般情況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同樣也可以改為 #!/bin/bash

#! 告訴系統其後路徑所指定的程序即是解釋此腳本文件的 Shell 程序。



第一個shell腳本

打開文本編輯器(可以使用 vi/vim 命令來創建文件),新建一個文件 test.sh,擴展名為 sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用 php 寫 shell 腳本,擴展名就用 php 好了。

輸入一些代碼,第一行一般是這樣:

實例

#!/bin/bash

echo "Hello World !"

運行實例 ?

#! 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種 Shell。

echo 命令用於向窗口輸出文本。

運行 Shell 腳本有兩種方法:

1、作為可執行程序

將上面的代碼保存為 test.sh,並 cd 到相應目錄:

chmod +x ./test.sh #使腳本具有執行許可權./test.sh #執行腳本

注意,一定要寫成 ./test.sh,而不是 test.sh,運行其它二進位的程序也一樣,直接寫 test.sh,linux 系統會去 PATH 里尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當前目錄通常不在 PATH 里,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。

2、作為解釋器參數

這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:

/bin/sh test.sh/bin/php test.php

這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。

linux yum 命令

Shell 變數

Shell 程序

筆記列表

  • sh(全稱 Bourne Shell): 是UNIX最初使用的 shell,而且在每種 UNIX 上都可以使用。

    Bourne Shell 在 shell 編程方面相當優秀,但在處理與用戶的交互方面做得不如其他幾種 shell。

  • bash(全稱 Bourne Again Shell): LinuxOS 默認的,它是 Bourne Shell 的擴展。

    與 Bourne Shell 完全兼容,並且在 Bourne Shell 的基礎上增加了很多特性。可以提供命令補全,命令編輯和命令歷史等功能。它還包含了很多 C Shell 和 Korn Shell 中的優點,有靈活和強大的編輯介面,同時又很友好的用戶界面。

  • csh(全稱 C Shell): 是一種比 Bourne Shell更適合的變種 Shell,它的語法與 C 語言很相似。

  • Tcsh: 是 Linux 提供的 C Shell 的一個擴展版本。

    Tcsh 包括命令行編輯,可編程單詞補全,拼寫校正,歷史命令替換,作業控制和類似 C 語言的語法,他不僅和 Bash Shell 提示符兼容,而且還提供比 Bash Shell 更多的提示符參數。

  • ksh (全稱 Korn Shell): 集合了 C Shell 和 Bourne Shell 的優點並且和 Bourne Shell 完全兼容。

  • pdksh: 是 Linux 系統提供的 ksh 的擴展。

    pdksh 支持人物控制,可以在命令行上掛起,後台執行,喚醒或終止程序。

  1. 如果不好理解的話,Shell 個人感覺可以對應成 win 中的 bat,通過代碼來實現一些自動定時任務,自動備份或者執行的任務。

    1、chmod +x file 加上執行許可權,否則會提示無執行許可權。

    2、注意執行腳本時候或者全目錄,或者 ./file.sh ,如果不加的話,linux 默認會從PATH 里去找該 file.sh。

    3、看了這篇教程,發現腳本後綴名可以任意修改,仍然可以正常運行。

    4、語法類PHP,方便學習。

    lyphp

    lyphp

  2. 首先,什麼是腳本語言?

    腳本語言是像劇本一樣教計算機辦某個事情的語言。

    比如你想讓計算機執行複製某個文件的操作,如:cp ~/Desktop/*.txt ~/text

    你可以在文本編輯器寫入上邊的代碼並且保存此文件,然後你通過執行這個文本文件來執行上面的代碼,並不需要重複手動輸入上邊的代碼。

    下面這句話是我在網上看到的:


    所以腳本其實就是短小的、用來讓計算機自動化完成一系列工作的程序,這類程序可以用文本編輯器修改,不需要編譯,通常是解釋運行的。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Highcharts 編程
jQuery UI API 類別-特效核心(Effects Core)

TAG:程序員小新人學習 |