日期:2014-05-16  浏览次数:20974 次

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个进程
    选择查看用户可以