Linux常用命令与Shell基本编程_第1页
Linux常用命令与Shell基本编程_第2页
Linux常用命令与Shell基本编程_第3页
Linux常用命令与Shell基本编程_第4页
Linux常用命令与Shell基本编程_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、shell 脚本基本编程脚本基本编程无线产品部 katanazhang 2009-11-09课程目标课程目标(一)(一)linux 常用命令常用命令toppsfreevmstatiostatpstreelsoflscdpwdtimeexportdatekill/killallaliasipcsipcrmdfducrontabulimit常用命令常用命令系统系统lncatheadtailmorelessrenamewhichwhereiswhodiffgrepcutsortuniqwcjoinmkdirmvrmcplocatefindhistorysplitchmodchownsutargzip

2、gunzip正则表达式常用命令常用命令文件文件常用命令常用命令网络、其它网络、其它sshifconfignetstatsz/rzscppingtcpdumptelnetrsyncexpectcalclearbcman(二)(二)shell 脚本编程脚本编程什么是什么是shell shell 是一个命令解释器 shell 也是一种编程语言 解析语法 执行命令什么是什么是shellshell脚本?脚本? shell 是一种特殊的程序,它是用户与linux系统内核之间的接口 它解释运行由命令行或文件输入的命令,从而实现用户与内核间的交互 当输入是文件形式时,这个含有待执行命令的文件就叫做脚本shel

3、l 脚本的用途?脚本的用途?数据统计分析进程实时监控小程序的替身shell 脚本的特点?脚本的特点?简单、快速不需要编译灵活高效当要反复使用一个或连续一组命令时,可以用shell脚本很方便的将它们全部执行添加和修改逻辑只需要简单的保存文件不担心性能1. 选择一种shell bash (bourne again shell)2. 找一个编辑器 vi/vim3. 依据语法编写命令及规则文件 *.sh4. 增加文件可执行权限或使用 sh 执行 ./*.sh sh x *.shshell 脚本的建立脚本的建立注释 以# #开头的句子(#!除外)表示注释,直到这一行结束 变量 shell变量都由字符串组

4、成,不需要声明, 可以在程序的任意位置重新对变量赋值: 赋值:变量名=值 访问:$变量名 或者 $变量名=两端不能有空格建议注释shell 脚本基本语法脚本基本语法系统预设变量 $0 当前程序的执行名字 $n 当前程序的第n个参数值,n=1.9 $* 当前程序的所有参数 $# 当前程序的参数个数 $ 当前程序的pid $! 执行上一个指令的pid $? 执行上一个指令的返回值 shell 脚本基本语法脚本基本语法数值运算 bash 只提供了整数运算,一般通过let和expr这两个指令来实现: 例如:let“x=$x+1” 或 x=expr $x+1 非整形运算可以通过bc来实现 x=echo

5、scale=2;(x-y)/x|bc 在表达式中支持的操作符及其含义为: + - * / % (加,减,乘,除,取模 ) = = != & | (逻辑操作) = += -= *= /= %= = &= = |= (二元赋值操作)一种简写: i=$(i+1)shell 脚本基本语法脚本基本语法流程控制if expression then fi-if expression then elif expression then else fifor $var in listdo done -while condition do done -until condition do done -break/

6、continuecase $var incondition1);condition2);conditionn);*)default stat;esacshell 脚本基本语法脚本基本语法test 命令 if test expr; then fi -n str 字符串 str 是否不为空 -z str 字符串 str 是否为空str1 = str2 str1是否与 str2 相同str1 != str2 str1是否与 str2 不同int1 -eq int2等于int1 -le int2小于等于int1 -ge int2大于等于int1 -lt int2小于int1 -gt int2大于int

7、1 -ne int2不等于if expr ; then fi shell 脚本基本语法脚本基本语法-b 是否块文件-p 文件是否为一个命名管道-c 是否字符文件-f 是否普通文件 *-d 是否一个目录 *-s 文件的长度是否不为零-e 文件是否存在 *-s 是否为套接字文件-r 文件是否可读-x 文件是否可执行,则为真-w 文件是否可写,则为真expr1 -a expr2 如果 expr1 和 expr2 为真,则为真 expr1 -o expr2 如果 expr1 或 expr2 为真,则为真shell 脚本基本语法脚本基本语法定义:function func_name() #do oper

8、ation on $n #函数外的变量是全局的#local 可指定局部变量引用:func_name $param_listadd() ret=$($2+$1) add 101 237 ; echo $ret函数 shell 脚本基本语法脚本基本语法(三)学习使用(三)学习使用 awk基本语法 awk -f ere -v assignment -f programfile|program file输入:文件/命令行模式匹配1.正则表达式+rm,?rm,n*abcde.abcde|abcrmabc$开始使用开始使用 awk 一个或多个前一个指定的字符0个或一个前一个指定的字符0个或多个前一个指定的

9、字符任意一个字符或;前后两个字符串中的任意一个m 个 r至少 m 个 rm到n个r,含m,nabcde中任意一个字符非abcde中任意一个字符以abc开头以abc结尾2.关系表达式 (匹配) !(不匹配 ) (大于) =(大于等于) =(等于) !=(不等于)3. 条件组合 ere1,ere2 指定范围(ere1到ere2); () 将复杂的条件组合在一起; &,|,! 布尔组合4.begin end 模式 beginbegin 在处理所有记录前执行,可用做初始化变量 endend 在处理完所有记录后执行,可用做输出处理结果开始使用开始使用awk 开始使用开始使用awk 变量赋值 name =

10、 value特殊变量 $1 . $n 输入记录的个字段值,$0:整个记录 filename 当前输入文件的路径名称 fnr 当前文件中的当前输入记录的个数 fs 输入字段分隔符(单个字符或正则表达式) nf 当前记录中的字段个数 nr 当前输入记录的个数 rs 输入记录分隔符(缺省值是换行字符)。 ofs 输出字段分隔符(缺省值是空格)。 ors 输出记录分隔符(缺省值是换行字符)。 算术运算 +,-,*,/,%,+,-,+=,-=,*=,/=,=,%=流程控制 1) if ( expression ) statement else action 2) while ( expression )

11、 statement 3) for ( expression ; expression ; expression ) statement 4) break/continue 5) for ( variable in array ) statement 6) if ( variable in array ) statement 开始使用开始使用awk 7) delete array expression 8) delete/fdelete 9) exit使用函数 function func_name(param1,param2) 调用:ret = func_name(param1,param2)

12、 function average ( g,n) for (i in g)sum=sum+gi avg=sum/n return avg 开始使用开始使用awk 内建函数 1.数学函数 atan2(y,x)返回 y/x 的反正切。 cos(x)返回 x 的余弦;x 是弧度。 sin(x)返回 x 的正弦;x 是弧度。 exp(x)返回 x 幂函数。 log(x)返回 x 的自然对数。 2.字符串函数 sub(ere, repl, in) 替换第一个in中与ere匹配的字符串 gsub(ere, repl, in)替换所有in中与ere匹配的字符串 index(string1, string2)

13、查询子字符串 length (string) 返回字符串长度 substr(string, m, n) 返回m开始长度为n的子字符串开始使用开始使用awk match( string, ere) split( string, a, ere )将 string 分割为数组元素 an tolower( string ) 转换为小写字符串 toupper(string ) 转换为大写字符串 sprintf(format, expr, expr, . . . ) 格式转换,用法同 c 3.时间函数 mktime(datespec)输入“yyyy mm dd hh mm ss”,输出秒 strftime

14、(format,timestamp)输入秒,返回格式字符串systime() 返回当前时间eg. awk print strftime(%b-%a,mktime(2005 05 13 00 00 00)开始使用开始使用awk 输出 print expressionlist redirection expression expressionlist:待输出的字符串,由变量和常量字符串组成 redirection:,| 输出到文件或做为其他命令的输入 expression:redirection的目的地址,文件名或其他命令 printf format ,expressionlist redirectionexpression printf 语句将 expressionlist 参数指定的表达式以 format 参数 指定的格式写至标准输出,format同c语言(除了%c) %c:当变量为数字,则输出该数字的字符编码 %c:当变量为字符串,则输出该字符串的第一个字符开始使用开始使用awk 谢谢大家!无线产品部 coonzhang (rtx:9240 分机:7235)正则表达式(正则表达式( regu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论