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指令碼知識簡述指令碼
- Linux基礎五(shell指令碼)Linux指令碼
- Linux shell基礎知識_8(下)Linux
- Linux shell 指令碼基礎介紹Linux指令碼
- Linux必須掌握的shell指令碼基礎Linux指令碼
- shell基礎知識查缺補漏
- 初識shell指令碼指令碼
- Linux Shell指令碼程式設計-基礎1Linux指令碼程式設計
- 【Linux學習筆記29】shell指令碼基礎Linux筆記指令碼
- Redis基礎知識(學習筆記21--Lua 指令碼語言)Redis筆記指令碼
- 基礎知識
- 運維之shell指令碼初識運維指令碼
- LUA的基礎知識
- Redis基礎知識(學習筆記21--Lua 指令碼語言2)Redis筆記指令碼
- Linux_day06_01_Shell指令碼程式設計_Bash基礎Linux指令碼程式設計
- shell指令碼中不識別source命令指令碼
- 小白個人向[攻防世界]wtf.sh-150( 需要Shell指令碼知識 )指令碼
- java基礎知識Java
- 1、基礎知識
- 前端基礎知識前端
- Vue基礎知識Vue
- Camera基礎知識
- Hadoop基礎知識Hadoop
- python基礎知識Python
- BGP基礎知識
- Mybatis基礎知識MyBatis
- linux基礎知識Linux
- Kafka 基礎知識Kafka
- qml基礎知識
- python 基礎知識Python
- webpack基礎知識Web
- AI 基礎知識AI
- PRML 基礎知識
- JSP基礎知識JS
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- Android基礎知識Android
- javascript基礎知識JavaScript