• 1. Unix-shell入门培训文档
  • 2. 培训内容基础知识介绍 Shell的输入输出流 文件、目录处理 编辑器vi 正则表达式 文本处理 压缩、解压 技巧 工作实例 参考文档
  • 3. 基础知识介绍Unix操作系统的特性 Shell是什么 环境变量 man命令
  • 4. Unix操作系统是多用户、多任务操作系统,支持多种处理器架构,属于分时操作系统,主要应用于小型机等服务器上。 Shell是指用来输入命令的程序,处于计算机的最外层,直接和用户打交道,用户输入的命令也称shell命令,常用的shell有sh、ksh、csh、bash,shell脚本就是命令组合。 环境变量,是指程序初始化的变量,包括系统环境变量和用户环境变量;系统环境变量当系统启动时就加载、设置好,用户环境变量当用户登陆系统时会进行设置,其次用户登陆时,首先会加载系统环境变量。 man是帮助命令,查询命令的使用方法
  • 5. 文件目录处理常用目录处理命令 mkdir 创建一个空目录 rmdir 删除一个空目录 cd 进入到某个路径中 pwd 显示当前路径 ls 显示当前目录存在哪些文件和目录 文件的权限位,数字表示、文字表示 chmod 修改文件权限
  • 6. 文件目录处理常用的文件处理命令 cat、head、tail、more、wc cat为显示整个文件,对于大文件不适用,遇到大文件,最好使用head、tail、more来查看
  • 7. 文件目录处理其他常用的命令: touch生成空文件,绝对的空文件。 mv改名、移动,适用于目录和文件。 cp拷贝文件,-r参数适用于目录。 rm删除文件,-r参数适用于目录。 find 查找命令,查找符合条件的文件 du 查看文件或目录大小,默认为block,512Byte,可以加参数k,h Unix的快捷方式:软链接 硬链接
  • 8. 编辑器的使用Unix操作系统中常用vi编辑器 熟悉vi的使用很简单,按照指引联系几遍就很熟悉了,可以参考以下文档。 VIM:vi的加强版
  • 9. Shell输入输出流输入输出流:标准输入、标准输出、标准错误 输入输出常用的命令:echo、read、tee 文件重定向:>、>>、<、<< 管道符的使用:|
  • 10. 问题想要在一个文件中查找匹配如下条件的文字内容 查找以W.开头,后跟[YYYYMMDDHHmmss:xxxxxx]开头的行 如何快速的找到满足条件的文字??? 中括号的内容表示时间的格式
  • 11. 正则表达式什么是正则表达式 是一种字符串表达的方式. 使用者可使用一个简短的 Regular Expression 来表示 〝具有某特征〞 或者 〝复杂难以描述〞的所有字符串. 而日常数据处理中, 最常进行的工作是『从档案中找出具有某特征的字符串, 再加以处理(打印,置换, 计算...)』. 此时, Regular Expression 便可派上用场. 使用一个简短的 Regular Expression 便可完全指定需要加以处理的资料 , 避免反复判断找寻的困扰.
  • 12. Unix常用的正则表达式. 匹配任意字符 * 匹配0个或多个*前面的表达式 [] 匹配一个范围,如[a-zA-Z],范围中使用^表示起反作用 ^ 匹配行首 $ 匹配行尾 \ 忽略掉字符的特殊含义 Pat\{n\} 匹配Pat出现n次 Pat\{n,m\} 匹配Pat出现n~m次 Pat\{n,\} 匹配Pat至少出现n次 Pat\{,m\} 匹配Pat至多出现m次 其他的正则表达式:\s \d \D \w +
  • 13. 正则表达式的应用正则表达式应用广泛,在unix的常用命令中都有应用,如grep、sed、awk 问题解答 1. grep 'W\.\[[0-9]\{14\}:[0-9]\{6\}\]' tt.txt 2. sed -n '/W\.\[[0-9]\{14\}:[0-9]\{6\}\]/'p tt.txt 3. awk '$0 ~ /W\.\[[0-9]{14}:[0-9]{6}\]/' tt.txt 注意awk和grep、sed在使用正则表达式上的区别
  • 14. 文本处理Unix大部分操作都是对文本进行处理,包括查询文本,转换文本,统计功能,合并数据。 Unix文本处理可包含两类,第一类是查询转换为主的,常用命令有grep、sed、awk、tr;另一类是统计、合并功能为主的,常用命令有sort、uniq、join、cut、paste、split 比较命令:diff 、comm、cmp、dircmp
  • 15. 文本处理实例文本处理的基础是文件本身具有规律性,一般情况下,程序产生的文件都是有规律性的。 如备注文件,理解如下命令是作用 1. grep 18600000003 testfile | wc –l 2.sed –n ‘s/old/new/g' testfile 3.awk -F'' '{print $2;}}' testfile
  • 16. 压缩和解压Unix常使用压缩命令,将文件进行压缩,从而节省出大量的存储空间,不同的压缩命令压缩百分比不同,可根据实际情况选择响应的压缩解压命令。
  • 17. 压缩和解压命令tar tar严格来说不算是压缩命令,只是用于打包的工具,把众多的文件或目录打包成一个文件。 tar cvf 用于打包 tar xvf 用于解包 -z 可以打.gz包或者解.gz包
  • 18. 压缩和解压命令gz方式压缩 gzip 压缩文件 gunzip 解压文件,解压的文件必须是gzip方式压缩的gz文件。 z方式压缩 compress 压缩文件 uncompress 解压文件 compress和uncompress在aix应用比较多。 其他压缩解压:zip、unzip、bzip2、bunzip2
  • 19. Unix网络命令在平时工作中时常会用到和网络相关的命令,查看网络的状态、连接到不同的服务器、在不同的服务器间传文件。 常用的命令有: netstat:查看当前网络应用 ping:查看到某个ip的网络 telnet:登陆到其他服务器 ftp:在不同的服务器间传输文件,get、put route:查看路由
  • 20. Unix系统监控Unix系统监控的常用命令有: vmstat、iostat、top、ps、sar
  • 21. 技巧技巧1:文件名自动完成功能 C Shell的文件名自动完成功能,使用esc Bash Shell的文件名自动完成功能,使用tab Korn Shell的文件名自动完成功能,使用esc+\或两次esc 技巧2:灵活使用快速路径 “-” 表示上一次所在的路径 “~”表示某个用户的家路径,如~yintao表示yintao的家路径
  • 22. 技巧技巧3:灵活运用alias alias重命名的意思,把一长串命令重命名,就可以方便的使用,达到快速完成某个命令的作用。 alias bin=‘cd $OCS_HOME/bin && ls‚’ 使用alias命令可以查看到当前用户设置的所有alias
  • 23. Shell编程学习了上面的内容后,shell编程就变成一个简单的问题,只需要把需要的命令组合在一起,就是一个shell程序了。 Shell程序要想执行,必须要使用chmod进行赋权,使之成为一个命令。 Shell命令的第一行的作用 #/usr/bin/sh
  • 24. Shell编程常用expr 条件测试 If条件语句 For循环语句 While循环语句 Continue、break语句 Shell子函数
  • 25. expr:用于计算 条件测试:
  • 26. If条件语句: if 条件测试语句 then action [elif 条件 action else action] fi
  • 27. 例如: #!/bin/sh scores=40; if [[ $scores -gt 90 ]]; then     echo "very good!"; elif [[ $scores -gt 80 ]]; then     echo "good!"; elif [[ $scores -gt 60 ]]; then     echo "pass!"; else     echo "no pass!"; fi;
  • 28. For循环语句: for … in 语句 for 变量 in seq字符串 do action done 说明:seq字符串 只要用空格字符分割,每次for…in 读取时候,就会按顺序将读到值,给前面的变量。
  • 29. while语句结构 while 条件语句 do action done;
  • 30. Continue、break语句 break 语句可以结束while,for,until或select等结构的执行,即从结构中跳出。退出循环后,转到done语句后继续执行。 continue 语句用来跳过本次循环中的代码,直接跳回到循环的开始位置。如果条件为真则开始下一次循环,否则退出循环。 Shell函数
  • 31. 工作实例1脚本实例:显示输入的文件内容
  • 32. 工作实例2ftp的脚本:下载指定服务器上的文件
  • 33. 工作实例3Shell与oracle数据库交互
  • 34. 心得关于学习shell,我自己学习shell的心得是: 1、三多:多写多看多思考 2、遇到不懂的,首先想到是linux帮助,然后查找资料,比如:度娘、书、请教别人等,最后网上看论坛。
  • 35. 参考文档Linux与unix shell编程指南 UNIX环境高级编程
  • 36. Thank You !