kxbin
成功留给有准备的人
posts - 10,  comments - 35,  trackbacks - 0
1.shell算术运算
   可以使用shell结构来执行简单的整数运算。只需将特定的算术表达式用"$(("和"))"括起。
 echo $((100/3))
 myvar="56" echo $(($myvar + 12))
也可以使用expr表达式 
 a=100 echo `expr $a \* $a`
2.应用字符串变量时最好把双引号加上。
3.条件判断
 if [ condition ]; then
     action
 fi
 注意:
 在[]中,只能有一个判断式;
 在[]与[]之间,可以使用&& 或|| 组合。
4. declare -i 声明一个整形变量。
5.fc -l 
   列出登录主机之后,最近执行过得指令。
6.find用法
  find . -name '*.txt' -exec rm -f {} \;
 由当前目录开始往下查询扩展名是.txt的文件,找到之后,执行-exec删除文件的指令,{}表示找到的文件,;表示执行指令-exec的终止符号。
7.basename
    取得路径名称中最后的文件名部分。
8.dirname
    取得二路径名称中的目录部分。
9.${变量:位置起点:长度}和${变量:位置起点}
   由指定位置开始,截取指定长度的子字符串。
   filename="/etc/apache2"
   substr=${filename:1:3},从第二个开始截取三个字串。etc
10.${@:起点}和${@:起点:个数}
     由起点开始,取得后面所有的位置参数。
     ${@:1}
    ./poz.sh 88 77 66 99
    88 77 66 99
11.计算字符串长度
      ${#变量名称},返回变量值的字符串长度
     filename="/usr/sbin/ntpdate"
     echo ${#filename} ,长度17
12、算术运算
序号     名称                  语法                      范例
1        算数扩展              $((算术式))               r=$((2+5*8)) 
2        使用外部程序expr      expr 算数式               r=`expr 4 + 5`
3        使用$[]               $[算术式]                 r=$[4 +5 ]   
4        使用内置命令declare   declare -i  变量=算术式   declare -i r=8+16

5        使用内置命令let       let 算术式                let r=8+16

13、条件测试的写法
    执行某一个命令的结果,执行成功则返回0,为真;执行失败则返回非0,为假;
    传回某一个命令执行结果的相反值. ! 命令;
    使用复合命令((算式)) eg:((0))表示假;((1))表示真;((-1))表示真
    使用Bash关键字'[['、']]'组成的式子:[[ 判断式 ]] if [[ str > xyz ]] ; 判断str字符串和xyz字符串的大小 
    使用内置命令:test 判断式,真值传回0,假值传回1.
    使用内置命令:[判断式]
14.case
    case语法
     case 待测项 in
        样式串行1) 命令区域1;;
        样式串行2) 命令区域2;;
        ......
        *) 命令区域;;
     esac
15. for 语法
     
      for 变量 in 串行
      do 
            命令区域
     done
   
      for((初始条件;终止条件;异动项))
       do
            命令区域
      done
    
      无穷循环
      for((;1;))
       do
           命令区域
      done
16、while语法
       while  条件测试
        do 
           命令区域
       done
     
     IFS=':'
     while read f1 f2 f3 f4 f5 f6 f7
      do
        echo "账号:$f1,login shell 是: $f7 "
      done < "/etc/passwd"
17、until 循环 如果循环为假,则执行,否则不执行
      until 条件测试
       do 
         命令区域
      done
18、select ,建立一个列表。列表的选项,即串行中的各个字符。
       select 选项变量 in 串行
        do 
           命令区域
       done
       注意:列表提示符号由Bash的内置标量PS3定义,默认值是#?,可以改变PS3的值。select会给各个选项一个编号,编号由1开始递增,当使用者键入编号,选择其中某一选项时,该选项的内容就设置给选项变量,而键入的编号值则放入REPLY变量中。
19、函数语法
       语法1
         function 函数名称()
          {
             命令区域
            } 
      语法2
        函数名称(){命令区域}
      语法3 如果使用关键词function,那么,函数名称后面的小括号可以省略
        function 函数名称
        {
         命令区域
         }
  函数调用
    函数名称
   函数名称 参数1 参数2 参数3 ....
20、sed 是一种非交互式的流编辑奇,可动态编辑文件。用法如下:sed '样式命令' 文件
       1)删除某一段范围的数据行。
            sed '1,4d' datafile1 , 把第1到第4行数据删除,剩余的显示出来,d是sed的删除命令
       2)把含有“样式”的数据行删除。
            sed '/La/d' datafile,把含有La的行删除,剩下的显示出来。其中,//代表搜索之意。
            sed '/^$/d' datafile,删除datafile的空白行。
            sed '/[0-9]\{3\}/d' datafile,把含有“3位数”的行删除,剩下的显示出来。
       3)把不含有“样式”的数据行删除
            sed '/La/!d' datefile3,把不含有La的行删除,剩下的显示出来。
       4)把含有“样式”的数据行显示出来。
            sed '/La/p' datafile,把含有La的行显示出来。p是sed的命令,它会把目前的数据显示出来,但因为sed默认也会显示不符合的数据行,修改如下:sed -n '/La/p' datafile。选项-n会抑制sed显示出其它资料行的默认操作,只显示符合样式的数据行。
       5)取代
            sed -n 's/La/Oo/p' datafile s是取代的意思,第一对//中含括的字符串La是搜索的目标,第二对//含括的是置换的字符串Oo。把数据行中的字符串La换成Oo。上面这个指令,只会更换第一个出现的La而已。如果全部置换,应再加上全局命令g。如下:sed -n 's/La/Oo/gp' datafile。
           sed -n 's/La//p' dataf3。把每一行第一个出现的La删除(把La置换成空字符串)
           sed 's/^...//' dataf3 把每一行开头的3个字符删除。
           sed 's/...$//' dataf3 把每一行末尾3个字符删除。
       6)取用符合样式的字符串
           sed -n 's/\(La\)/\1Oo/p' dataf3。把找到的La存起来,用\1取回来在使用。结果:若数据行含有La字符串,则第一个出现的La会置换成LaOo,然后再显示这些含有La的数据行。
       7)找到符合样式的数据行后,再进行取代的操作。
            sed -n '/AAA/s/234/567/p' dataf3,找到含有AAA的那一行之后,将234换成567。
            sed -n '/AAA/,/DDD/s/B/567/p' dataf3,将含有AAA到含有DDD的那几行,皆将其中的B换成567。
            sed -n '2,4s/B/567/p' dataf3由第2行到第4行,皆将其中的B换成567。
  
21、awk 是一种可以处理数据、产生格式化报表的语言,功能相当强大。awk的工作方式是读取数据文件,将每一行数据视为记录,每笔记录以字段符分成若干字段,然后输出各个字段的值。
 

 1awk常用的作用格式:

     awk “样式”文件,把符合样式的数据行显示出来;

     awk ‘操作文件,对每一行都执行{}中的操作;

     awk ‘样式{}’ 文件,对符合样式的数据行,执行{}中的操作;

  2)用法

     awk ‘/La/’ dataf2 ,显示含La的数据行;

     awk ‘{ print $1 , $2 }’ dataf3 ,显示dataf3每一行的第1和第2个字段;

     awk ‘/La/{ print $1 ,$2 }’ dataf3,显示含有La关键字的数据行的第1及第2个字段显示出来;

     awk  -F: ‘/^ols3/{ print $3 ,$4}’ /etc/passwd ,使用选项-F,指定:为分隔字符,账号ols3的(第3个字段)及gid(第4个字段)显示出来;

awk –F: ‘BEGIN{OFS=”+++”}/^ols3/{print $1,$2,$3,$4,$5}’ /etc/passwd。执行结果: ols3+++x+++1002+++1002+++ 。本例中,BEGIN{}区域指示awk一开始先做初始化的操作,即设定OFS=”+++”。变量OFS的作用是存储输出字段的分隔符。接着,寻找ols3的账号行,找到后,使用print印出第1~5个字段,且彼此用+++隔开。

取得网卡的IP

   Ifconfig | grep ‘inet addr:’ | grep Bcast | awk ‘{print $2}’ | awk –F: 'print $2'

取得系统内存大小

   cat /proc/meminfo | awk ‘/MemTotal/{print $2}’


       
posted on 2012-06-14 18:01 kxbin 阅读(161) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
你恨一个人是因为你爱他;你喜欢一个人,是因为他身上有你没有的;你讨厌一个人是因为他身上有你有的东西;你经常在别人面前批评某人,其实潜意识中是想接近他。

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(5)

随笔档案

文章分类

文章档案

相册

收藏夹

J2EE

java技术网站

Linux

平时常去的网站

数据库

电影网站

网站设计

搜索

  •  

最新评论

阅读排行榜

评论排行榜