認識腳本
是使用一種特定的描述性語言,依據一定的格式編寫的可執行文件。腳本語言又被稱為擴建的語言, 或者動態語言, 是一種編程語言, 用來控制軟件應用程序, 腳本通常是以文本 (ASCⅡ) 保存, 只是在被調用時進行解釋或者編譯。
學習shell腳本的用途
對于一個合格的系統管理員來說,學習和掌握Shell編程是非常重要的。可以在很大程度上簡化日常的維護工作,使得管理員從簡單的重復勞動中解脫出來。
shell特點
1.shell是一個解釋性語言(Python也是),不需要編譯等過程,它是從腳本程序中一行一行的讀取并執行命令;相對于其他語言來說較為簡單。
2. shell是什么 shell(殼),又稱之為命令解釋器,是一種腳本語言,作用是當用戶輸入命令時,shell會將命令解析傳遞給內核,通過內核執行相應的動作。
學習shell知識儲備:
熟練使用vim編譯器
熟悉Linux的相關命令和一些基礎的服務
熟悉三個工具,grep,sed,awk
腳本的命名規則
其命名規則和標識符的定義相似
一般使用駝峰法命名,第一個單詞以小寫字母開始;從第二個單詞開始以后的每個單詞的首字母都采用大寫字母,例如:myFirstName、myLastName,國內喜歡用下劃線,例如name_file等
shell腳本的基本構成
1.新建一個腳本文件,文件的首行一般為制定shell解釋器#!/bin/bash
2.可以寫一些合適的注釋,在訪問腳本時,快速理解執行語句的意思
3.一般約定成俗的在命名腳本文件時為filename.sh
4.可執行語句:即實現程序的功能
5.腳本內注釋:-用#實現單行的注釋;-用<
shell腳本的執行:
切換到shell腳本所在的目錄執行shell腳本
使用絕對路徑的方式去執行bash shell腳本
直接使用bash 或sh 來執行bash shell腳本
在當前的shell環境中執行bash shell腳本:source或".“
執行方法之間的區別
方法一和方法二腳本需要執行權限,./script_name.sh或/path/script_name.sh
方法三:可以在腳本中不指定解釋器,腳本可以沒有執行權限
方法四:當前shell執行,方法1-3開啟子shell。
除此外腳本語言還分包括:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,Python,Ruby等。
下面我們做一個腳本來看一下:
#!/bin/bash
# 獲取要監控的本地服務器IP地址
IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`
echo "IP地址:"$IP
# 獲取cpu總核數
cpu_num=`grep -c "model name" /proc/cpuinfo`
echo "cpu總核數:"$cpu_num
cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"`
echo "用戶空間占用CPU百分比:"$cpu_user
# 獲取內核空間占用CPU百分比
cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"`
echo "內核空間占用CPU百分比:"$cpu_system
# 獲取空閑CPU百分比
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"`
echo "空閑CPU百分比:"$cpu_idle
#獲取內存信息
# 獲取物理內存總量
mem_total=`free | grep Mem | awk '{print $2}'`
echo "物理內存總量:"$mem_total
# 獲取操作系統已使用內存總量
mem_sys_used=`free | grep Mem | awk '{print $3}'`
echo "已使用內存總量(操作系統):"$mem_sys_used
# 獲取操作系統未使用內存總量
mem_sys_free=`free | grep Mem | awk '{print $4}'`
echo "剩余內存總量(操作系統):"$mem_sys_free
# 獲取應用程序已使用的內存總量
mem_user_used=`free | sed -n 3p | awk '{print $3}'`
echo "已使用內存總量(應用程序):"$mem_user_used
# 獲取應用程序未使用內存總量
mem_user_free=`free | sed -n 3p | awk '{print $4}'`
echo "剩余內存總量(應用程序):"$mem_user_free
# 獲取交換分區總大小
mem_swap_total=`free | grep Swap | awk '{print $2}'`
echo "交換分區總大小:"$mem_swap_total
# 獲取已使用交換分區大小
mem_swap_used=`free | grep Swap | awk '{print $3}'`
echo "已使用交換分區大小:"$mem_swap_used
# 獲取剩余交換分區大小
mem_swap_free=`free | grep Swap | awk '{print $4}'`
echo "剩余交換分區大小:"$mem_swap_free
保存然后我們執行一下
如果提示沒有權限記得chmod修改下權限,需要x執行權限。
這樣我們一個簡單的小腳本就完成了
比如還可以用shell寫一個
#!/bin/bash
echo "Hello World !"
執行后會提示 Hello World !