Shell
1. Shell腳本基本概述
1.1 什么是shell
Shell是一個命令解釋器,它在操作系統(tǒng)的最外層,負責直接與用戶進行對話,將用戶輸入的命令翻譯給操作系統(tǒng),并將處理的結果輸出至屏幕。
shell的兩種使用方式:r
- 交互:登錄 執(zhí)行命令 退出
- 非交互:執(zhí)行某個文件,文件中都是一堆命令,整個文件從上往下依次執(zhí)行
1.2 什么是shell腳本
- 將系統(tǒng)命令堆積在一起,順序執(zhí)行
- 特定的格式+特定的語法+系統(tǒng)的命令=文件
1.3 Shell腳本的標準
標準:
? 1.安裝方式一致
? 2.安裝路徑一致
? 3.目錄結構一致
? 4.日志格式一致
? 5.腳本路徑一致
2. Shell腳本抒寫方式
2.1 shell腳本命名
- 編寫腳本時,名字要有意義
- 腳本名不宜過長
- 由于Linux系統(tǒng)中,文件沒有擴展名,但還是建議以.sh結尾 。如:check_memory.sh
2.2 shell腳本格式
shell腳本開頭必須指定腳本的運行環(huán)境,以#!這兩個特殊符號來組成。如:#!/bin/bash指定該腳本是運行解析由/bin/bash來完成的。
shell腳本的兩種執(zhí)行方式:
1.加執(zhí)行權限 ./script_filename.sh
2.通過bash直接翻譯:bash script_filename.sh
2.3 shell腳本中的#號使用
[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 內存 磁盤 網絡 等等
==注意==
!/usr/bin/bash 加與不加區(qū)別在哪?
? 1.如果你明確清楚這是一個什么類型的腳本,直接調用對應的解釋器執(zhí)行,沒有影響?
? 2.如果你不清楚是什么類型的腳本, 直接使用./執(zhí)行,那么會讀取該腳本的第一行
? 如果第一行是#!/usr/bin/bash 或者 沒有寫該行,那么都將使用默認的bash翻譯
? 問題: 如果我是一個python腳本,沒有寫開頭,那么執(zhí)行一定會報錯
? 因為默認查找的是bash解釋器,而我的文件需要用python解釋器來翻譯.