1 判斷是否為root使用者
root_uid=0
#$uid為0的時候,使用者才具有root使用者許可權;
e_notroot=67
#非root使用者
if [ "$uid"
-ne"$root_uid" ] #$uid是環境變數
then
echo
"must be root to run this script."
exit
$e_notroot
fi
2 測試是否有命令列引數
if [ -n "$1" ]
then
lines=$1
else
echo
"usage: `basename $0` ***x"
exit
$e_noargs
# 65
if
3 測試指令碼引數數量是否正確
e_wrong_args=65
script_parameters="-a -h -m -z"
# -a = all, -h = help ......
if [ $#
-ne$number_of_expected_args ]
then
echo
"usage: `basename $0` $script_parameters"
# basename 可以提取出檔名,去除目錄項
exit
$e_wrong_args
fi
4 expect 經典示例
#!/usr/bin/expect
set timeout 30
spawn ssh -l username 192.168.1.1
expect "password:"
send "ispass/r"
interact
5 shell中數值運算示例
declare -i num=$1
declare -i var=0
echo
"arg is $num"
while [ $num
-gt$var ]; do
snmpgetnext -v 2c -c public localhost .1.3.6.1.4.1.193.113.1.7.1.1.2
num=$(($num-1))
echo
"num is $num"
done
示例2
declare -i count1 count2 index
count1=0
count2=0
index=0
echo
"program start ..."
echo
"//"
while
true
do count1=`date +%m`
# echo "---------------$count1, $count2"
if [ "$count1"
-ne"$count2" ];then
index=index+1
count2=count1
echo
"-------------------------------- $index"
fi date | cut -d
" "-f
4 dig @10.170.15.194 host.iptelco.com >/dev/null 2>&1
dig @10.170.15.194 hosat.iptesssslco.com >/dev/null 2>&1
done
exit
0
示例3
i=0
while [ $i
-lt$1 ]
do#kill -11 `pgrep ttselect`
snmpwalk -v2c 10.170.15.146 -t 30 ipworksenummessagecounters &
i=$[$i + 1] # !!!!
done
echo
"done"
6 判斷特定程序是否存在
#!/bin/sh
ps -fe|grep processstring |grep -v grep
if [ $? -ne
0 ] #******
then
echo
"start process....."
else
echo
"runing....."
fi
7 檢視主機網絡卡流量
while : ; do
time='date +%m"-"%d" "%k":"%m'
day='date +%m"-"%d'
rx_before='ifconfig eth0|sed -n "8"p|awk ''|cut -c7-'
tx_before='ifconfig eth0|sed -n "8"p|awk ''|cut -c7-'
sleep
2rx_after='ifconfig eth0|sed -n "8"p|awk ''|cut -c7-'
tx_after='ifconfig eth0|sed -n "8"p|awk ''|cut -c7-'
rx_result=$[(rx_after-rx_before)/256]
tx_result=$[(tx_after-tx_before)/256]
echo "$time now_in_speed: "
$rx_result
"kbps now_out_speed: "
$tx_result
"kbps"
sleep
2done
8 系統狀態監控
ip=192.168.1.227
top -n 2| grep
"cpu" >>./temp/cpu.txt
free -m | grep
"mem" >> ./temp/mem.txt
df -k | grep
"sda1" >> ./temp/drive_sda1.txt
#df -k | grep sda2 >> ./temp/drive_sda2.txt
df -k | grep
"/mnt/storage_0" >> ./temp/mnt_storage_0.txt
df -k | grep
"/mnt/storage_pic" >> ./temp/mnt_storage_pic.txt
time=`date +%m"."%d" "%k":"%m`
connect=`netstat -na | grep "219.238.148.30:80" | wc -l`
echo "$time
$connect" >> ./temp/connect_count.txt
9 eof使用示例
#!/bin/bash
su - test exit;
eof
linux shell使用經驗
今天突然對python心血來潮,網上搜了篇學習筆記在看。ubuntu中練習了一下,無意中注意到乙個關於shell語言的基本通用規則。剛開始學習bash的時候也注意到了,最簡單的bash程式一般也會有三行 bin bash this is a bash test program test.sh ech...
Linux shell互動輸入與迴圈語句 06
read命令同時可以定義多個變數值 而輸入的內容預設以空格為分隔符,將值輸入到對應的變數中 如果預設值輸入過多,最後所有的值都會被賦予給最後乙個變數 如果輸入的值少於變數數,多餘的變數則為空值 p read p 請輸入乙個值 變數名 echo n 請輸入乙個值 read 變數名 t 定義超時時間 r...
GIT常用手冊(個人經驗)
在.git的同級目錄新建.gitignore檔案,並在檔案中寫需要排除的檔案和資料夾 下次提交時將會git將會忽略該檔案 1.在工程目錄下開啟git bush 將platforms資料夾移除版本控制 gitrm r cached platforms 帶 n 是檢視將要執行的操作的輸出,但是命令並未執...