shell

1. shell execution

chmod +x fileName

sh fileName

source fileName

2.conbine command

管道 |

重定向 

  输入 <

  输出  > 、>> ;错误输出 2> 、2>>;混合输出 &>  &>>

逻辑操作符 && , ||

3.Variable

Var1 = value 

$Var1 

${Var1}

定界符

双引号   :允许引用,转义

单引号   :不允许引用,转义

反..撇号  或$()命令替换

4.环境变量

系统 USER LOGNAME HOME SHELL

用户PATH LANG CLASSPATH

env

special

$?前一条命令状态,0为正常,非0不正常

$0脚本自身的程序名

$1-9第1-9个参数位置参数

$*所有位置的参数内容

$#命令行位置参数个数

5.数值运算

整数

expr   

$[]

skills

let var++ ;let var--

RANDOM var

seq start end 

 

6.字符串

截取

路径分割

 .dirname、basename

expr

 expr substr $var1 start  length

${}

 ${var1 : start:length}

替换

${}

${Var/old/new}Var 里第一个old替换为new

${Var//old/new}Var 里所有的old替换为new

随机字符串

/dev/urandom

/usr/bin/md5sum

/bin/cut

 

head -1 /dev/urandom | md5sum

echo $Var1 | cut -b start-end

 

 

7.条件测试

测试操作规范

$?

test expression

[expression]

目录文件检测

-d 是否为目录directory

-e目录是否存在Exist

-f 是否为文件File

权限检测

-r 是否有读权限read

-w是否有写权限write

-x是否有课执行权限execute

[-w "/etc/shadow"]

 

整数值比较

-eq相等equal

-ne不相等not equal

-gt大于greater than

-lt小于letter than

-ge大于或等于greater or equal

-le小于或等于lesser or equal

字符串匹配

=

!=

 

8.if判断

 

for循环

case

条件if

 

if 条件测试

 then 命令

fi

if 条件测试

 then 命令

 else  命令

fi

 

 

if 条件测试

 then 命令

elif 条件测试

  then 命令

...

 else  命令

fi

 

8.for循环

for var in list

do 

  命令

done

9.case

case var in

value1)

   命令;;

value2)

  命令;;

... 。。

*)

  默认命令序列;;

esac

 

10.awk

 

awk '模式 {操作}' 文件1 文件2

常见内置变量

NR行数

F字段分隔,缺省为空格或Tab

$n当前行的第n个字段

$0当前行的所有文本内容

 

11.sed

常用的操作类型

p输出/打印文本

n取下一行文本

d删除

s字符串替换

a追加新的文本

 

posted on 2014-09-08 21:41  ukouryou  阅读(113)  评论(0编辑  收藏  举报

导航