2008年12月29日星期一

linux shell script相关

1. 脚本调试
$bash -x -v /home/woody/getip
打印出脚本执行每一句输出结果

2. 简单调试就是echo

3. shell script常用命令
cut -b column file: 将指定范围内的文件内容输出到标准输出设备(屏幕)上。比如:输出每行第5至9个字符 cut -b5-9 file.txt

read var: 提示用户输入,并将输入内容赋值给变量var

sort file.txt: 对file.txt文件所有行进行排序

uniq: 只输出文件中内容不一致的行,如: sort file.txt | uniq,去重

expr: 进行数学运算,如要进行2+3的运算,命令为: expr 2 "+" 3,注意2后面和3前面均有空格

tee: 将数据输出到标准输出设备(屏幕) 和文件,比如:somecommand | tee outfile

basename file: 返回不包含路径的文件名,如: basename /bin/tux 会返回 tux

dirname file: 返回文件所在路径,如:dirname /bin/tux 会返回 /bin

head file: 打印文本文件开头几行,如:head -10 filename,返回filename的前10行

tail file : 打印文本文件末尾几行,如:taile -10 filename,返回filename的最后10行

sed: Sed是一个基本的查找替换程序。可以从标准输入(如命令管道)读入文本,并将结果输出到标准输出(屏幕);该命令采用正则表达式进行搜索。不要和 shell中的通配符相混淆。比如将 ubuntu 替换为 Ubuntu :cat text.file | sed 's/ubuntu/Ubuntu/' > newtext.file

awk: awk 用来提取文本文件中的字段。缺省的字段分割符是空格,可以使用 -F 指定其它分割符。cat file.txt | awk -F, '{print $1 "," $3 }',这里我们使用 , 作为字段分割符,同时打印第一和第三个字段。如果该文件内容为 Adam Bor, 34, IndiaKerry Miller, 22, USA,则上述命令的输出为:Adam Bor, IndiaKerry Miller,USA

find . -mtime -1 -type f -print: 查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。

4. 反短斜线可以将一个命令的输出作为其它命令的命令行参数。 find . -mtime -1 -type f -print

如下脚本:
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
将过去24小时内修改过的文件打包

5. 2>/dev/null
重定向错误信息到/dev/null,2表示标准错误

6. 调试脚本时,可以通过一下方法让脚本程序的执行暂时中断
cat >22

标签:


评论: 发表评论

订阅 博文评论 [Atom]





<< 主页

This page is powered by Blogger. Isn't yours?

订阅 博文 [Atom]