- 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 !