1 / 16

架构平台部 bash shell 培训

架构平台部 bash shell 培训. 讲师: 日期:2009年 7 月 23 日. 课程简介. 本节课主要让大家熟悉linux vim编辑器,linux下的一些常用命令,并且对bash编程有一定的了解。. 目录. linux VIM编辑器的使用 linux 常用命令 shell 脚本编程 正则表达式. 我叫周绍希,主要做相册的日常运维工作。. 自我简介. 课程内容. VIM的使用 1). 光标移动位置: h,j,k,l (左,下,上,右,可以按F1来寻求帮 助) .a,A,o,O,0(零),$,gg,G

laddie
Télécharger la présentation

架构平台部 bash shell 培训

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 架构平台部bash shell培训 讲师: 日期:2009年7月23日

  2. 课程简介 • 本节课主要让大家熟悉linux vim编辑器,linux下的一些常用命令,并且对bash编程有一定的了解。

  3. 目录 • linux VIM编辑器的使用 • linux 常用命令 • shell 脚本编程 • 正则表达式

  4. 我叫周绍希,主要做相册的日常运维工作。 自我简介

  5. 课程内容 • VIM的使用 1). 光标移动位置: h,j,k,l (左,下,上,右,可以按F1来寻求帮 助) .a,A,o,O,0(零),$,gg,G 2). 查找 /,?, 3). 移动,删除,复制, 修改 nyy,p,dd,s,g 4).保存,退出 wq,q,q!

  6. linux 常用命令 • linux常用命令 系统方面: adduser,ps,ipcs,passwd,top,ipcrm,hostname,kill/killall,df ,alias, ulimit,du ,df, date,crontab 文件方面: diff,touch,mkdir,ls ,grep,mv,ln,cut,rm,chmod,cat,cp,chown, head,sort,locate,tail,uniq,find,tar,gzip,more,wc,tar,less,awk,sed 网络方面: ssh,ping,cal,ifconfig,netstat,scp,expect,sz,rz,rsync;tcpdump

  7. bash shell编程 • bash shell编程 bash shell介绍 bash shell语言是通过一定的语法,把各种命令、程序组合 在一起以实现我们需要的功能。 bash shell启动方式: – #! /bin/bash 指示使用bash 来执行一个脚本 – bash /path/to/file - chmod +x /path/to/file;./file • 变量 Shell变量都由字符串组成,不需要声明, 可以在程序的任意位置重新对变量赋值: 赋值:变量名=值(赋值不能有空格) 访问:$变量名 或者 ${变量名}

  8. bash shell参数 • 系统设置变量 $0 当前程序的执行名字 $n当前程序的第n个参数值,n=1..9 $(*||@) 当前程序的所有参数 $# 当前程序的参数个数 $$ 当前程序的PID $! 执行上一个指令的PID $?执行上一个指令的返回值 bash的运算: bash 只提供了整数运算,一般通过let和expr这两个指令来实现: 例如:x=$((x+1)) 或 x=`expr $x+1` 在表达式中支持的操作符及其含义为: + - * / % (加,减,乘,除,取模 ) bash的条件判断: int1 -eq int2 等于 int1 -le int2 小于等于 int1 -ge int2 大于等于 int1 -lt int2 小于 int1 -gt int2 大于 int1 -ne int2 不等于

  9. shell的流程 • shell的流程 if [ expression ];then ..... fi case $var) in condition ?) .... ;; esac for $var in list do ... done while [condition] do .. done

  10. shell范例 • 下面是一个file.sh脚本,其具体作用? • #!/bin/sh • cd $(dirname $0); • DIR="/tmp" • BAK_DIR="/data/log" • file=$(find $DIR/ -type f -name "*.tmp") • echo $file if [ ! -d $BAK_DIR ];then • mkdir -p $BAK_DIR • fi • for i in $file • do • cp $i $BAK_DIR; • done • 如上面脚本用命令来实现,等同于下面这一命令。 • find /tmp -type f -name \*.tmp|xargs -i cp {} /data/log/

  11. 正则表达式 • • 所谓正则,是一个“字符串”,这种字符串描述一种了特征(如起始位置,字符串的长度、组成内容等) , 我们利用这种特征与目标字符串做比较,得到匹配或不匹配的结果 • • 正则式可由普通字符和正则元字符组成 • 操作符 用途.(句号) 匹配任意单个字符。^(脱字号) 匹配出现在行首或字符串开始位置的空字符串。$(美元符号) 匹配出现在行末的空字符串。[:alnum:];匹配空格[A-E]匹配任意大写的 A、B、C、D 或 E。[^A-E]匹配除 A、B、C、D 和 E 之外的任意字符。X?匹配出现零次或一次的大写字母 X。X+匹配一个或多个字母 X。X{n}精确匹配 n 个字母 X。X{n,m}匹配最少 n 个并且不超过 m 个字母 X。如果省略 m,表达式将尝试匹配最少 n 个 X。(abc|def)+匹配一连串的(最少一个) abc 或 def;abc 和 def 将匹配。

  12. 作业内容: • 1. 把a文件3-10行中存在sea的字符清空,并删除1-8行中存在the的的行。 • 2 .按eth1:ip格式显示eth1网卡的ip地址,例如:eth1:10.160.45.138 • 3. 制作一脚本,需要把7天前/usr/local/apache2/log目录下的所有日志文件移动到/data/log目录下,每天早上7点50准时执行该脚本。 • 4. 用正则匹配0-66之间的任意数字.

  13. 课后作业 • 1. 如附件中apache的access.log日志文件,按下列完成要求 1). 按时间,IP,访问url,返回方式(200,返回成功,304,用户cache等)4个字段输出本段日志。 2). 打印11点-12点这段时间的日志,并把这段日志保存在一个a文件中。 3). 把日志中11-12点这段时间中用户访问最多的IP打印出来,并把访问的次数打印出来。 4). 把11-12点用Mozilla访问的IP打印出来(IP不能重复) 5). 对access.log日志进行备份,每天凌晨3点备份前一天的日志文件,备份文件的名称按年月日命名,备份完前一天的日志文件后,在把前一天的日志文件在access.log中清空。

  14. 推荐书目: • unix shell范例精解(第4版)

  15. Q&A

  16. 谢谢!

More Related