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

下载本文档

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

文档简介

Shell 脚本基本编程,无线产品部 katanazhang 2009-11-09,课程目标,linux 常用命令 shell 脚本编程 awk 的用法,(一)Linux 常用命令,系 统 文 件 网 络 其 他,top ps free vmstat iostat pstree lsof,ls cd pwd time export date kill/killall,alias ipcs ipcrm df du crontab ulimit,常用命令系统,ln cat head tail more less rename which whereis who,diff grep cut sort uniq wc join,mkdir mv rm cp locate find history,split chmod chown su tar gzip gunzip,正则表达式,常用命令文件,常用命令网络、其它,ssh ifconfig netstat sz/rz scp,ping tcpdump telnet rsync expect,cal clear bc man,(二)Shell 脚本编程,概 念 特 点 语 法 实 例,什么是Shell, Shell 是一个命令解释器 Shell 也是一种编程语言 解析语法 执行命令,什么是shell脚本?,shell 是一种特殊的程序,它是用户与Linux系统内核之间的接口 它解释运行由命令行或文件输入的命令,从而实现用户与内核间的交互 当输入是文件形式时,这个含有待执行命令的文件就叫做脚本,Shell 脚本的用途?,数据统计分析,进程实时监控,小程序的替身,Shell 脚本的特点?,简单、快速,不需要 编译,灵活 高效,当要反复使用一个或连续一组命令时,可以用shell脚本很方便的将它们全部执行,添加和修改逻辑只需要简单的保存文件,不担心性能,1. 选择一种Shell bash (bourne again shell) 2. 找一个编辑器 vi/vim 3. 依据语法编写命令及规则文件 *.sh 4. 增加文件可执行权限或使用 sh 执行 ./*.sh sh x *.sh,Shell 脚本的建立,注释 以#开头的句子(#!除外)表示注释,直到这一行结束 变量 Shell变量都由字符串组成,不需要声明, 可以在程序的任意位置重新对变量赋值: 赋值:变量名=值 访问:$变量名 或者 $变量名,=两端不能有空格,建议注释,Shell 脚本基本语法,系统预设变量 $0 当前程序的执行名字 $n 当前程序的第n个参数值,n=19 $* 当前程序的所有参数 $# 当前程序的参数个数 $ 当前程序的PID $! 执行上一个指令的PID $? 执行上一个指令的返回值,Shell 脚本基本语法,数值运算 bash 只提供了整数运算,一般通过let和expr这两个指令来实现: 例如:let“x=$x+1” 或 x=expr $x+1 非整形运算可以通过bc来实现 x=echo “scale=2;(x-y)/x“|bc 在表达式中支持的操作符及其含义为: + - * / % (加,减,乘,除,取模 ) = = &= = |= (二元赋值操作),一种简写: i=$(i+1),Shell 脚本基本语法,流程控制,if expression then fi - if expression then elif expression then else fi,for $var in list do done - while condition do done - until condition do done - break/continue,case $var in condition1) ; condition2) ; conditionn) ; *) default stat; esac,Shell 脚本基本语法,test 命令 if test expr; then fi,if expr ; then fi,Shell 脚本基本语法,Shell 脚本基本语法,定义: function func_name() #do operation on $n #函数外的变量是全局的 #local 可指定局部变量,引用: func_name $param_list add() RET=$($2+$1) add 101 237 ; echo $RET,函数,Shell 脚本基本语法,(三)学习使用 Awk,语 法 实 例,基本语法 awk -F Ere -v Assignment -f ProgramFile|Program file 输入:文件/命令行 模式匹配 1.正则表达式,开始使用 awk ,一个或多个前一个指定的字符,0个或一个前一个指定的字符,0个或多个前一个指定的字符,任意一个字符,或;前后两个字符串中的任意一个,m 个 r,至少 m 个 r,m到n个r,含m,n,abcde中任意一个字符,非abcde中任意一个字符,以abc开头,以abc结尾,2.关系表达式 (匹配) !(不匹配 ) (大于) =(大于等于) =(等于) !=(不等于) 3. 条件组合 Ere1,Ere2 指定范围(Ere1到Ere2); () 将复杂的条件组合在一起; &,|,! 布尔组合 4.BEGIN END 模式 BEGIN 在处理所有记录前执行,可用做初始化变量 END 在处理完所有记录后执行,可用做输出处理结果,开始使用awk ,开始使用awk ,变量赋值 name = value 特殊变量 $1 . $n 输入记录的个字段值,$0:整个记录 FILENAME 当前输入文件的路径名称 FNR 当前文件中的当前输入记录的个数 FS 输入字段分隔符(单个字符或正则表达式) NF 当前记录中的字段个数 NR 当前输入记录的个数 RS 输入记录分隔符(缺省值是换行字符)。 OFS 输出字段分隔符(缺省值是空格)。 ORS 输出记录分隔符(缺省值是换行字符)。,算术运算 +,-,*,/,%,+,-,+=,-=,*=,/=,=,%= 流程控制 1) if ( Expression ) Statement else Action 2) while ( Expression ) 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) 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)查询子字符串 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(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 参数指定的

温馨提示

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

评论

0/150

提交评论