Shell
1. Shell腳本基本概述
1.1 什么是shell
Shell是一個(gè)命令解釋器亮钦,它在操作系統(tǒng)的最外層忿族,負(fù)責(zé)直接與用戶進(jìn)行對(duì)話啥么,將用戶輸入的命令翻譯給操作系統(tǒng)往枷,并將處理的結(jié)果輸出至屏幕框产。
shell的兩種使用方式:r
- 交互:登錄 執(zhí)行命令 退出
- 非交互:執(zhí)行某個(gè)文件,文件中都是一堆命令错洁,整個(gè)文件從上往下依次執(zhí)行
1.2 什么是shell腳本
- 將系統(tǒng)命令堆積在一起秉宿,順序執(zhí)行
- 特定的格式+特定的語法+系統(tǒng)的命令=文件
1.3 Shell腳本的標(biāo)準(zhǔn)
標(biāo)準(zhǔn):
? 1.安裝方式一致
? 2.安裝路徑一致
? 3.目錄結(jié)構(gòu)一致
? 4.日志格式一致
? 5.腳本路徑一致
2. Shell腳本抒寫方式
2.1 shell腳本命名
- 編寫腳本時(shí),名字要有意義
- 腳本名不宜過長
- 由于Linux系統(tǒng)中屯碴,文件沒有擴(kuò)展名描睦,但還是建議以.sh結(jié)尾 。如:check_memory.sh
2.2 shell腳本格式
shell腳本開頭必須指定腳本的運(yùn)行環(huán)境导而,以#忱叭!這兩個(gè)特殊符號(hào)來組成。如:#!/bin/bash指定該腳本是運(yùn)行解析由/bin/bash來完成的今艺。
shell腳本的兩種執(zhí)行方式:
1.加執(zhí)行權(quán)限 ./script_filename.sh
2.通過bash直接翻譯:bash script_filename.sh
2.3 shell腳本中的#號(hào)使用
[root@manger ~]# cat check_system_status.sh
#!/usr/bin/bash
# Author: xiaowang
# Created Time: 2020/02/02 10:00 v1.1
# Script Description: 檢查系統(tǒng)狀態(tài)的腳本韵丑,比如cpu 內(nèi)存 磁盤 網(wǎng)絡(luò) 等等
==注意==
!/usr/bin/bash 加與不加區(qū)別在哪?
? 1.如果你明確清楚這是一個(gè)什么類型的腳本,直接調(diào)用對(duì)應(yīng)的解釋器執(zhí)行,沒有影響?
? 2.如果你不清楚是什么類型的腳本, 直接使用./執(zhí)行,那么會(huì)讀取該腳本的第一行
? 如果第一行是#!/usr/bin/bash 或者 沒有寫該行,那么都將使用默認(rèn)的bash翻譯
? 問題: 如果我是一個(gè)python腳本,沒有寫開頭,那么執(zhí)行一定會(huì)報(bào)錯(cuò)
? 因?yàn)槟J(rèn)查找的是bash解釋器,而我的文件需要用python解釋器來翻譯.