linux学习:常用shell语句
一、正则表达式的使用
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