一、正则表达式的使用
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