shell指令碼的基礎知識

HTDST發表於2020-12-23


一、shell基礎介紹

1.什麼是shell

shell是指令碼中命令的直譯器,shell語言是一種解釋型語言

2.shell指令碼的意義

(1)記錄命令執行的過程和執行邏輯,以便以後重複執行
(2)指令碼可以批量處理主機
(3)指令碼可以定時處理主機

二、shell指令碼

3.如何建立shell指令碼

#!/bin/bash	  %幻數,表示常量,指令碼中最頂級的程式
用env bash是為了防止shell路徑不固定的問題
可以在指令碼頂部寫#!/bin/env bash %用env去呼叫bash這個程式,這樣可以自動檢索系統的環境並呼叫它

vim自動新增指令碼首部:
"map <F4> ms:call WESTOSTITLE()<cr>'s
autocmd BufNewFile *.sh,*.script call WESTOSTITLE()
func WESTOSTITLE()
        call append(0,"###############################################")
        call append(1,"# Author:        lee")
        call append(2,"# Version:       ")
        call append(3,"# Create_Time:   ".strftime("%Y/%m/%d"))
        call append(4,"# Mail:          lee@westos.org")
        call append(5,"# Info:  ")
        call append(6,"# ")
        call append(7,"################################################")
        call append(8,"")
        call append(9,"#!/bin/bash")
endfunc

在這裡插入圖片描述
在這裡插入圖片描述

4.如何執行shell指令碼

1)手動在環境中開啟指定直譯器
sh script.sh

(2)直接在當前環境中執行shell中的指令不開啟新的shell
source script.sh	
. script.sh

(3)開啟指令碼中指定的shell並使用此shell環境執行指令碼中的指令
chmod +x script.sh   %賦予指令碼執行許可權後可直接用絕對路徑的方式以指令碼中的指定shell呼叫指令碼
/xxx/xxx/script.sh   %注意:這裡必須是絕對路徑
./script.sh

5.如何對指令碼進行除錯

sh -x /mnt/westos.sh
+	      %執行指令
不帶+	  %命令執行的輸出

在這裡插入圖片描述
在這裡插入圖片描述

三、指令碼練習

1、ip_show.sh 網路卡	顯示當前的主機ip
#!/bin/bash
ifconfig $1 | awk '/inet\>/{print $2}'

2、host_messages.sh 顯示當前主機的名稱,ip登陸當前主機的使用者
hostname:	xxxxx
ipaddress:	xxxx.xxxx.xxx.xxx
username:	root
#!/bin/bash
echo "hostname:  $HOSTNAME" %或者是echo "hostname: `hostname`"
echo "ipaddress: $(ifconfig enp1s0|awk '/inet\>/{print $2}')"  %或者是echo "ipaddress: `(ifconfig enp1s0 | awk '/inet\>/{print $2}')`"
echo "username:  $USER"

3、clear_log.sh	執行次指令碼後可以清空日誌
#!/bin/env bash
[ "$USER" = "root" ] || {
	echo -e "\033[31mError: Please run script with root !!\033[0m"
        exit 1
}

LOGS=`sed  -n  '/RULES/,$p' /etc/rsyslog.conf  | awk '!/^#|^$/&&/var/{print $2}' | sed 's/-//g'`

for LOG in $LOGS
do
	> $LOG && echo -e "\033[32m$LOG is cleared !!\033[0m"
done

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

相關文章