學習Shell 教程
Shell 是一個用 C 語言編寫的程式,它是使用者使用
Linux 的橋樑。Shell 既是一種
命令語言,又是一種程式設計語言。
Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。 Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形介面 Shell。 |
Shell 指令碼(shell script),是一種為 shell 編寫的指令碼程式。
業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。
由於習慣的原因,簡潔起見,本文出現的 "shell程式設計" 都是指 shell 指令碼程式設計,不是指開發 shell 自身。
Shell 程式設計跟 JavaScript、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 程式。
開啟文字編輯器(可以使用 vi/vim 命令來建立檔案),新建一個檔案 test.sh,副檔名為 sh(sh代表shell),副檔名並不影響指令碼執行,見名知意就好,如果你用 php 寫 shell 指令碼,副檔名就用 php 好了。
輸入一些程式碼,第一行一般是這樣:
例項 #!/bin/bash echo "Hello World !" 執行例項 »
#! 是一個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 Shell。
echo 命令用於向視窗輸出文字。
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
這種方式執行的指令碼,不需要在第一行指定直譯器資訊,寫了也沒用。
原文地址: https://www.linuxprobe.com/learning-shell-tutorial.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2662422/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell學習
- Shell學習【運算子】
- Shell學習【test命令】
- Shell 變數學習變數
- shell學習筆記筆記
- Shell學習【printf與echo】
- shell學習總結-3
- shell學習總結-4
- shell學習總結-1
- shell學習總結-2
- Shell學習【流程控制】
- Shell學習【變數使用】變數
- Shell(Bash)學習· 總章
- shell學習-常用語句
- Shell學習【引數傳遞】
- Linux學習之(shell展開)Linux
- Linux學習-shell基礎02Linux
- POSIX-shell學習筆記筆記
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- shell基礎教程二十四: shell基礎教程: Shell檔案包含
- Shell基礎教程七:Shell字串字串
- 雲端計算學習路線教程程式碼筆記:Shell程式設計筆記程式設計
- 什麼是shell指令碼?Linux為什麼學習shell?指令碼Linux
- Linux命令和shell指令碼學習Linux指令碼
- shell指令碼學習筆記-1指令碼筆記
- linux shell陣列深入學習理解Linux陣列
- 【網路安全】Shell 指令碼學習指令碼
- shell和bash指令碼命令學習指令碼
- 前端學習 linux —— shell 程式設計前端Linux程式設計
- Mysql學習教程MySql
- 學習react教程React
- PG 學習教程
- Gradle 教程學習Gradle
- gitee 教程學習Gitee
- 教程:JS學習JS
- Linux學習之路(三)Shell指令碼初探Linux指令碼
- MongoDB 學習筆記之常用 shell 命令MongoDB筆記
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計