shell指令碼例項解析,這些例項都是前輩部落格中的,小菜我拿來參考和理解。
**:1.刪除b檔案中和a檔案相同的內容;按照行為單位,下例「內容相同」的含義是
a檔案中一行正好匹配b檔案的一行,則稱為「內容相同」,於是刪除b檔案的該行
#!/bin/bash
for file in `cat a | cut -f1- d.`
do sed -i '/'$file'/ d' b
done
關於cut命令,說的很好,很易於理解。
2.根據檔案dir.list每一行的前四個字元建立二級目錄
mkdir命令的-p選項,同--parents,
需要時建立目標目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理
#!/bin/bash
for dir in `cat dir.list`
do dir1=`echo $dir | cut -c1-2`
dir2=`echo $dir | cut -c3-4`
if [ ! -d "$dir1/$dir2" ]; then
mkdir -p "$dir1/$dir2"
fidone
刪除這些剛剛建立的目錄,
!/bin/bash
for dir in `cat dir.list`
do dir1=`echo $dir|cut -c1-2`
if [ -d "$dir1" ];then
rm -r "$dir1"
fidone
dir.list檔案內容:
abcdefg
bcdefga
cdefgab
defgabc
3.檢視網絡卡流量,乙太網卡eth0,注意分析ifconfig eth0
sed的p命令是列印print,-n選項取消自動列印模式空間
date命令要注意,各種選項。
#!/bin/bash
#netflood
#ajian
while : ; do
time=`date +%m"-"%d" "%k":"%m`
echo time=$time
day=`date +%m"-"%d`
echo day=$day
rx_before=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2`
echo rx_before=$rx_before
tx_before=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2-`
echo tx_before=$tx_before
sleep 2
rx_after=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2`
echo rx_after=$rx_after
tx_after=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2`
echo tx_after=$tx_after
rx_result=$[(rx_after-rx_before)*4]
echo rx_result=$rx_result
tx_result=$[(tx_after-tx_before)*4]
echo tx_result=$tx_result
echo "$time now_in_speed: "$rx_result"bps now_out_speed: "$tx_result"bps"
sleep 2
done
shell指令碼例項
1.批量建立10個系統賬號test01 test10,並隨機設定8位數密碼 bin bash for i in seq w 10 do useradd test i echo random madsum cut c 8 tee a passwd.txt stdin test i done 2.在目錄...
Shell 指令碼例項
指令碼內容如下 bin bash action 定義函式,進行操作指南 action 1 database mysql uroot p 1 en e show databases grep e schema v mkdir p mnt sqldump e database name sql case...
Shell指令碼例項
1.寫乙個指令碼,利用迴圈計算10的階乘 bin sh factorial 1 for a in seq 1 10 dofactorial expr factorial a done echo 10 factorial 注 上面有一行,for a in seq 1 10 其中seq 1 10 即列出...