一、正則表達式的使用
cd /usr/share/dict
1、找出words文件下所有以a開頭t結尾的單詞
egrep "^a.*t$" words
2、匹配以abcde開頭,以at結尾的單詞
egrep "\<[abcde]at\>" words
3、以大寫字母開頭,以t結尾
egrep "^[[:upper:]]t$" words
二、管道的使用
egrep "^a.*t$" words|wc -w
三、cut命令
假設文件city:
Beijing 010
Shanghai 021
Tianjin 022
Hangzhou 0571
1、cut -c 3-6 city
則顯示:
ijin
angh
anji
ngzh
2、cut -f1 city(f參數用於指定要輸出的文本列)
則顯示:
Beijing
Shanghai
Tianjin
Hangzhou
四、sort命令
1、sort city(默認第一列排序)
Beijing 010
Hangzhou 0571
Shanghai 021
Tianjin 022
2、sort -r city(反序排列)
3、sort -k 2 city(按第二列排列)
Beijing 010
Shanghai 021
Tianjin 022
Hangzhou 0571
五、uniq命令(刪除重複行)
sort city|uniq
六、tr命令(替換)
1、將大寫字母BHS替換爲小寫,並重定向到city文件
tr “BHS” "bhs"<city
2、將Bei替換爲x**
tr "Bei" "x*" <city
3、刪除所有e和i字符
tr --delete "ei"
七、wc命令
wc city
則顯示:
6 12 79 city
多少行|多少個單詞|多少個字節|文件名
wc -c city(只顯示字節)
wc -l city (只顯示行數)
wc -L city(只顯示最長的行)
八、substr命令
expr substr "Hello world" 1 5
則顯示:Hello
九、seq命令(產生一個整數數列)
十、環境變量
查看:printenv
追加環境變量:Path=$PATH:/home/starcuan
附:一個簡單的shell編程實例,
color(){
case $1 in
black_green)
echo -e "\033[40;32m"
;;
black_yellow)
echo -e "\033[40;33m"
;;
black_white)
echo -e "\033[40;37m"
;;
black_purple)
echo -e "\033[40;35m"
;;
black_blue)
echo -e "\033[40;34m"
;;
esac
}
clear
trap "" 1 2 3
mday=`date +%Y/%m/%d`
mhost=`hostname`
mwho=`whoami`
while :
do
cat<<mmenu
---------------------------------------
$mwho $mhost $mday
---------------------------------------
1:改變字體顏色
2:查看進程信息
3:查看用戶信息
h:幫助
Q:退出
---------------------------------------
mmenu
echo -e -n "\tEnter Your Choice[1,2,3,h,q]:"
read Cho
case $Cho in
1)
while :
do
cat <<kcol
-----------------------------------------------
$mwho $mhost $mday
-----------------------------------------------
1:黑綠 2:黑黃 3:黑白 4:黑紫 5:黑藍 0:返回
-----------------------------------------------
kcol
echo -e -n "\t 請輸入選擇的顏色[1,2,3,4,5]:"
read choice
if [ $choice = 1 ]
then
color black_green
elif [ $choice = 2 ]
then
color black_yellow
elif [ $choice = 3 ]
then
color black_white
elif [ $choice = 4 ]
then
color black_purple
elif [ $choice = 5 ]
then
color black_blue
elif [ $choice = 0 ]
then
break
else
clear
continue
fi
clear
done
;;
2)
ps aux|sort -m|head -10
echo -e -n "\t按任意鍵繼續"
read J
;;
3)
who
echo -e -n "\t按任意鍵繼續"
read J
;;
H|h)
cat <<mmenu
選擇改變顏色可以修改當前界面的字體顏色
選擇查看進程信息可以獲取當前佔用資源最高的前10個進程
選擇查看用戶可以獲取當前登錄系統的用戶信息
mmenu
;;
Q|q)
exit 0
;;
*)
clear
continue
;;
esac
clear
done