注:轉載請標明原文出處鏈接:https://xiongyiming.blog.csdn.net/article/details/105886969
1 概述
1.1 Shell是什麼
計算機硬件是由運算器、控制器、存儲器、輸入/輸出設備等共同組成的,而讓各種硬件設備各司其職且又能協同運行的東西就是系統內核。Linux系統的內核負責完成對硬件資源的分配、調度等管理任務。一般不建議直接去編輯內核中的參數,而是讓用戶通過基於系統調用接口開發出的程序或服務來管理計算機,如下圖所示:
Shell是一個命令行解釋器,它爲用戶提供一個向Linux內核發送請求以便運行程序的界面系統級程序。用戶可以用Shell來啓動、掛起、停止、編程等操作。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
Shell還是一個功能強大的編程語言、編寫方面、調試方便、靈活性強。
Shell是解釋執行的腳本語言,在Shell中可以直接調用Linux系統命令。
注: 用戶不能直接訪問內核,需要通過Shell訪問內核。
1.2 Shell的分類
Shell 編程跟 JavaScript、php 編程類似,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的 Shell 種類衆多,主要類型有:Bourne Shell 、Bourne Again Shell和C Shell。
(1) Bourne Shell :從1979起,Unix系統就開始使用Bourne Shell,Bourne Shell的主文件名爲sh。Bourne Shell家族主要包括 sh、ksh、Bash、psh、zsh。
(2) C Shell:主要是在BSD版的Unix系統中使用,其語法和C語言類似。C Shell家族主要包括 csh、tcsh。
(3) Bash(Bourne Again SHell) 與sh兼容,現在使用的Linux就是使用Bash作爲用戶的基本Shell。Bash 也是大多數Linux 系統默認的 Shell。
2 Shell腳本
2.1 echo輸出命令
echo命令用於在終端輸出字符串或者變量提取後的值。echo命令格式爲:
echo [選項] [字符串 或 $變量]
其中選項參數及作用:
-e 表示支持反斜槓控制的字符控制,其中控制字符有:
例如:
(1) 輸出指定字符串 Hello World
(2) 換行控制字符
(3) 輸出提取變量值SHELL的值
(4) 輸出字符更改顏色,輸入命令
echo -e “\e[1;31m Hello World \e[0m”
其中輸出字符顏色常見的有:
30m
表示黑色;31m
表示紅色;32m
表示綠色;33m
表示黃色;34m
表示藍色;35m
表示洋紅色;36m
表示青色;37m
表示白色;
2.2 第一個Shell腳本
建立腳本文件,然後寫入程序,然後終端調用腳本文件。
(1) 第一步: 輸入命令:vi hello.sh
建立hello.sh腳本文件
(2) 第二步: 寫程序,然後保存退出。程序如下所示:
#! /bin/bash
#The first program
echo -e “\e[1;31m Hello World \e[0m”
注意事項:
- 符號
#!
是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行(使用哪一種 Shell來執行程序)。 - 在一般情況下並不區分 Bourne Shell 和 Bourne Again Shell,所以,
#!/bin/bash
也可以改爲#!/bin/sh
。
(3) 第三步: 腳本執行。有兩種執行方法:
方法1:賦予執行權限,直接運行,命令如下:
chmod 755 hello.sh
./hello.sh
方法2:通過Bash調用執行腳本,命令如下:
bash hello.sh
腳本執行結果如下圖所示:
也可以通過 vim hello.sh
建立腳本,一般常用vim方式建立腳本。
(1) 寫腳本
(2) 執行腳本
2.3 vi/vim 編輯、保存、退出快捷鍵
(1) 編輯腳本
vi 腳本名
或 vim腳本名
進入腳本,按 i 鍵
或 insert鍵
開始編輯腳本
(2) 退出腳本編輯模式
腳本寫完後想退出腳本需要先按 ESC鍵,然後由三種方式退出編輯模式:
- 鍵盤輸入: :
q!
表示不保存文件,然後退出; - 鍵盤輸入: :
w
表示保存文件,不退出; - 鍵盤輸入: :
wq
表示保存文件,然後退出;