shell指令碼的基礎知識
一、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
相關文章
- Shell指令碼基礎指令碼
- Shell指令碼知識簡述指令碼
- korn shell基礎知識(轉)
- Linux基礎五(shell指令碼)Linux指令碼
- shell指令碼程式設計基礎指令碼程式設計
- shell基礎知識查缺補漏
- Linux shell基礎知識_8(下)Linux
- Linux shell 指令碼基礎介紹Linux指令碼
- Linux必須掌握的shell指令碼基礎Linux指令碼
- 初識shell指令碼指令碼
- Linux下Shell基礎知識深入淺出(轉)Linux
- 音訊編碼基礎知識音訊
- Linux Shell指令碼程式設計-基礎1Linux指令碼程式設計
- 基礎知識
- LUA的基礎知識
- Redis基礎知識(學習筆記21--Lua 指令碼語言)Redis筆記指令碼
- 【Linux學習筆記29】shell指令碼基礎Linux筆記指令碼
- oracle密碼幾點基礎知識Oracle密碼
- AI 基礎知識AI
- Webpack 基礎知識Web
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- webpack基礎知識Web
- javascript基礎知識JavaScript
- ThinkPHP基礎知識PHP
- Laravel基礎知識Laravel
- Redis基礎知識Redis
- Docker基礎知識Docker
- 程式基礎知識
- Envoy基礎知識
- DockerFile基礎知識Docker
- Nginx基礎知識Nginx
- CSS基礎知識CSS
- Java基礎知識Java
- PRML 基礎知識
- BGP基礎知識
- PHP基礎知識PHP
- React基礎知識React