1、Shell腳本的基本功能及使用php
一、Shell 是什麼?
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶經過這個界面訪問操做系統內核的服務。
Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。html
二、Shell 如何運行的?
Shell 編程跟 java、php 編程同樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就能夠了。
Linux 的 Shell 種類衆多,本教程關注的是 Bash(Bourne Again Shell),Bash 是大多數Linux 系統默認的 Shell。java
3 、編寫一個shell腳本linux
打開文本編輯器(可使用 vi/vim 命令來建立文件),新建一個文件 test.sh,擴展名爲 sh(sh表明shell),擴展名並不影響腳本執行,見名知意就好,若是你用 php 寫 shell 腳本,擴展名就用 php 好了。
輸入一些代碼,內容以下:nginx
#!/bin/bash
echo "Hello World !"
註釋: 第一行: #! 是一個約定的標記,它告訴系統這個腳本須要什麼解釋器來執行,即便用哪種 Shell。 第二行: echo 命令用於向窗口輸出文本。
四、運行 Shell 腳本有兩種方法:docker
(1)test.sh 做爲可執行文件直接執行(注意給test.sh文件增長「執行」權限)
將上面的代碼保存爲 test.sh,並 cd 到相應的目錄,直接執行腳本"./test.sh"命令shell
./test.sh #執行腳本文件tesh.sh
注意,必定要寫成 ./test.sh,而不是 test.sh,運行其它二進制的程序也同樣,直接寫 test.sh,linux 系統會去 PATH 裏尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 裏,你的當前目錄一般不在 PATH 裏,因此寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。編程
(2)執行解釋器,將test.sh做爲解釋器參數運行
這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名。
注:這種方式運行的腳本,不須要在第一行指定解釋器信息,寫了也沒用。vim
/bin/sh test.sh
/bin/bash test.sh
5、菜鳥教程--Shell教程數組
Shell既然是一種編程語言,那麼理所固然地支持定義變量、定義數組、接受參數傳遞、進行流程控制等等功能。而shell之因此說強大,是因爲你能夠在shell腳本中編寫Linux系統支持的全部命令(包括Linux自帶的命令,以及用戶安裝的命令,如:java、nginx、docker等),所以,你可使用shell腳原本編寫「本身的指令集」,能大大簡化重複性操做指令的輸入。
對於Shell編程語言的基本語法,網絡上有不少教程,小六在此再也不贅述,在此僅留下菜鳥網站的Shell教程,供小白參考學習。
推薦閱讀: 菜鳥教程--Shell教程
2、小六使用Shell腳本的一些實踐
一、執行腳本,登陸個人遠程服務器
近期,小六在學習分佈式技術,因而將本身的兩臺舊電腦作成了服務器,因爲常常要經過「ssh」來遠程訪問服務器,因而所幸編寫了兩個腳本"a-server.sh"、"b-server.sh",只須要執行對應的shell腳步,就能夠自動登陸到對應的遠程服務器,節省了重複性的"ssh -l *** -o ServerAliveInterval=30 ***"的輸入,一時令小六暗暗的小知足了一把(沒辦法,小六是一個很容易知足的人好吧!)。
二、編寫my-docker.sh腳步,接收外部的參數,根據參數動態執行"docker"命令
近期,小六在學習docker自動化部署,因爲要常常性的「啓動docker容器」、「進入docker容器」、「查看docker容器的狀態」等等。剛開始時,小六都是手輸一個個「docker」命令,所以輸入命令的動做實在是耗費了很多時間。後來想起Shell腳步,因而嘗試經過shell腳原本簡化命令的輸入動做,具體步驟以下:
$ my-docker.sh ps #執行命令:docker ps,顯示docker運行的容器列表信息 $ my-docker.sh exec-n #進入run-nginx容器 $ my-docker.sh exec run-nginx #進入run-nginx容器
轉載說明:本篇博客的「第一節」轉載自「菜鳥教程」網站。
原文標題:Shell教程|菜鳥教程 原文地址:https://www.runoob.com/linux/linux-shell.html