当前位置:文档之家› unix下常用命令及脚本编写

unix下常用命令及脚本编写


-ok Command 和 -exec 表达式一样,除了 find 命令询问您是否应当启动 指定 的命令。一个肯定的响应会启动这个命令。指定命令的末尾必须 加上括在引号中的分号或 \;(反斜杠转义分号)。
-atime n 查找访问时间在n天之内的文件。 -ctime n 查找创建时间在n天之内的文件。 -mtime n 查找修改时间在n天之内的文件。 -size nc 查找大小为n字节的文件;
awk命令
语法:awk [ -F Ere ] [ -v Assignment ] ... { -f ProgramFile | 'Program' } [ [ File ... | Assignment ... ] ] ...
-f ProgramFile 从 ProgramFile 变量指定的文件获取 awk 命令的指令。
-n 禁止所有正常地写到标准输出的信息。
sed子命令
a\ 在当前行后面加入一行文本。 b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末 尾。 c\ 用新的文本改变本行的文本。 d 从模板块(Pattern space)位置删除行。 D 删除模板块的第一行。 i\ 在当前行上面插入文本。 h 拷贝模板块的内容到内存中的缓冲区。
ls 命令
drwxr-xr-x -rw-r--r-2 root 1 root other other 512 23 Oct 20 2000 mytemp Dec 20 16:06 a.txt
文件 类型 文件 权限
属主 组 链接 数
文件 大小
文件 创建 日期
时间
文件 名
我们可以使用命令“ls -l”来得到这张 列表,其中选项“-l”表示以长格式列出文件信息。
awk命令பைடு நூலகம்
tolower( String) 返回 String 参数指定的字符串大写字符将更改为小写。 toupper( String) 返回 String 参数指定的字符串小写字符将更改为 大写。 split(String,A,[Ere]) 将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。
Unix下常用命令及SHELL脚本介绍
常用命令使用及脚本编写
作者:肖国如
为何要写脚本
Shell 脚本的用途
数据统计分析 进程实时监控 … 小程序的替身
Shell 脚本的特点
当要反复使用一个或 连续一组命令时,可 以用shell脚本很方便 的将它们全部执行
添加和修改逻 辑只需要简单 的保存文件
简单、快速
awk命令
sub( Ere, Repl, [ In ]) 用 Repl 参数指定的字符串替换 In 参数指定的字符串 中的由 Ere 参数指定的扩展正则表达式的第一个具体值。sub 函数返回替 换的数量。 match(String,Ere) 在 String 参数指定的字符串(Ere 参数指定的扩展正则 表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果Ere 参数不出现,则返回 0(零)。 printf 语句打开的或调用 getline 函数打开的文件或管道。如果文件或管道 成功关闭,则返回 0;其它情况下返回非零值。如果打算写一个文件,并稍 后在同一个程序中读取文件,则 close 语句是必需的。 system(Command) 执行 Command 参数指定的命令,并返回退出状态。 等同于 system 子例程。 Expression | getline [ Variable] 从来自 Expression 参数指定的命令的输出 中通过管道传送的流中读取一个输入记录,并将该记录的值指定给 Variable 参数指定的变量。
sed命令
语法:sed [ -n ] Script [ File ... ] 语法:sed [ -n ] [ -e Script ] ... [ -f ScriptFile ] ... [ File ... ] -e Script 使用 Script 变量作为编辑脚本。
-f ScriptFile 使用 ScriptFile 变量作为编辑脚本源文件。
不需要 编译
灵活 高效
不担心性能
常用命令介绍
正则表达式介绍 脚本编写介绍
常用命令介绍
正则表达式介绍 脚本编写介绍
查看5G大小日志文件中的9点到11点时间段的信息
统计某个较大话单文件中各种类型话单条数
每天下午17点重启某一进程
含有大量文件的目录下找出文件创建时间在10到11点的文件
5
awk find ls ps
-E 列出文件的保留空间、固定范围大小和范围分配标志信息。使用该标志 时, 必须指定 -l 标志。 -t 按照最近一次修改时间(最近的最先)而不是名称排序。 -1 强制输出为每行一项格式。当输出没有定向到终端时,此为缺省值。 -l (L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个 文 件最近一次修改时间。
awk命令
计算54*334 echo "0"|awk '{print 54*334}' 目录下有数百个文件名为.xml的文件,修改文件名.xml_bak ls *.xml|awk '{printf "mv %s %s_bak\n",$0,$0}'|sh 目录下有".txt",".xml",".cfg",统计各种类型的文件数 ls *.*|awk '{len=length($0);sf=substr($0,len-3,3);d[sf]+=1;}END{for(i in d) print i,d[i]}' ls *.*|awk '{len=split($0,A,".");d[A[len]]+=1;}END{for(i in d) print i,d[i]}'
awk命令
统计文件dr_gsm.dat行数 awk 'END {print NR}' dr_gsm.dat 查看文件dr_gsm.dat第5行的记录数,以";"分割 awk -F";" '{if(NR==5) print NF}' dr_gsm.dat 文件dr_gsm.dat字段以":"分割,输出第5列含有字串"running"的行 awk -F":" '{if($5~/running/) print $0}' dr_gsm.dat 输出文件a.txt,b.txt,c.txt 每个文件的第一行 awk 'NR>0{if(FNR==1) print $0}' a.txt b.txt c.txt 将字符串"a;b;c;d;e;f"的分割符替换成"|" echo "a;b;c;d;e;f"|awk -F";" '{OFS="|"} {print $0}'
find命令
找出当前目录下文件名字“t.txt"的文件 find ./ -name "t.txt" -print 找出当前目录下180天以前的文件 find ./ -type f -a -mtime +180 -print 找出当前目录下大小小于1024字节的文件
find ./ -type f -a -size -1024c -print
sed split xargs cat
5
sort
uniq more
cut
ls命令
-m 使用流输出格式(逗号分隔系列)。 -a 列出目录中所有项,包括以 .(点)开始的项。
-d 仅仅显示指定目录信息。目录和文件一样处理,这在当使用 -l 标志获取 目录状态时非常有用。 -e 显示方式(包括安全信息)、链接数目、所有者、组、大小(按字节)、 最近修改时间和每个文件名称。如果文件是特殊文件,大小字段包含主要 和次要设备数目。
H 追加模板块的内容到内存中的缓冲区。
sed子命令
s/re/string 用string替换正则表达式re。 ! 表示后面的命令对所有没有被选定的行发生作用。
r file 从file中读行。 q 退出Sed。 P(大写) 打印模板块的第一行。 p 打印模板块的行。
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行 号码。 n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
substr(String, M, [ N ]) 返回具有 N 参数指定的字符数量子串。
length [(String)] 返回 String 参数指定的字符串的长度(字符形式)。如果 未给出 String 参数,则返回整个记录的长度($0 记录变量)。 index( String1, String2) 在由 String1 参数指定的字符串(其中有出现 String2 指定的参数)中,返回位置,从 1 开始编号。如果 String2 参数不 在 String1 参数中出现,则返回 0(零)。 gsub( Ere, Repl, [ In ]) 除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行。
找出当前目录下所有目录名为2013年6月日期的目录 find ./ -type d -print|grep "201306[0-9]\{2\}$" 找出当前目录比t.txt文件新的文件 find ./ -type f -a -newer "t.txt" -print
find命令
在./logs目录中查找更改时间在5日以前的文件并删除它们 find ./logs/ -type f -a -mtime +5 -exec rm {} \; 在$HOME/jfdata/bak/有30万个文件,需要移到/data2/bak/下备份 find $HOME/jfdata/bak/ -type f -print|xargs -n 5 -I {} mv {} /data2/bak/
相关主题