??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲色欲色欲www在线丝,亚洲精品无码AV中文字幕电影网站,国产亚洲精品岁国产微拍精品http://m.tkk7.com/jasmine214--love/category/47749.html只有当你的内心L充满快乐、美好的愿望和宁静时Q你才能拥有强壮的体和明朗、快乐或者宁静的面容?/description>zh-cnFri, 27 Dec 2013 15:57:00 GMTFri, 27 Dec 2013 15:57:00 GMT60shell date 相关使用http://m.tkk7.com/jasmine214--love/archive/2013/12/27/408109.htmlqLv蓝梦qLv蓝梦Fri, 27 Dec 2013 06:13:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2013/12/27/408109.htmlhttp://m.tkk7.com/jasmine214--love/comments/408109.htmlhttp://m.tkk7.com/jasmine214--love/archive/2013/12/27/408109.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/408109.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/408109.html
#格式化输?nbsp;                                                                               
$> date +"%Y-%m-%d"                                                                        
2009-12-07                                                                                 
                                                                                           
#输出昨天日期                                                                              
$> date -d "1 day ago" +"%Y-%m-%d"                                                         
2012-11-19                                                                                 
                                                                                           
#2U后输出                                                                                 
$> date -d "2 second" +"%Y-%m-%d %H:%M.%S"                                                 
2012-11-20 14:21.31                                                                        
                                                                                           
#传说中的 1234567890 U?nbsp;                                                                   
$> date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"                            
2009-02-13 23:02:30                                                                        
                                                                                           
#普通{格式                                                                                
$> date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"                                               
2009/12/12 00:00.00                                                                        
                                                                                           
#apache格式转换                                                                            
$> date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"                                  
2009-12-05 00:00.37                                                                        
                                                                                           
#格式转换后时间游?nbsp;                                                                       
$>date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"                        
2007-12-05 00:00.37                                                                        
                                                                                           
#加减操作                                                                                  
date +%Y%m%d                   //昄前天q月?nbsp;                                           
date -d "+1 day" +%Y%m%d       //昄前一天的日期                                          
date -d "-1 day" +%Y%m%d       //昄后一天的日期                                          
date -d "-1 month" +%Y%m%d     //昄上一月的日期                                          
date -d "+1 month" +%Y%m%d     //昄下一月的日期                                          
date -d "-1 year" +%Y%m%d      //昄前一q的日期                                          
date -d "+1 year" +%Y%m%d      //昄下一q的日期                                          
                                                                                           
                                                                                           
#讑֮旉                                                                                  
date -s                        //讄当前旉Q只有root权限才能讄Q其他只能查?nbsp;         
date -s 20120523               //讄?0120523Q这样会把具体时间设|成I?0:00:00          
date -s 01:01:01               //讄具体旉Q不会对日期做更?nbsp;                           
date -s "01:01:01 2012-05-23"  //q样可以讄全部旉                                      
date -s "01:01:01 20120523"    //q样可以讄全部旉                                      
date -s "2012-05-23 01:01:01"  //q样可以讄全部旉                                      
date -s "20120523 01:01:01"    //q样可以讄全部旉                                      
                                                                                           
有时需要检查一l命令花费的旉QD例:                                                     
                                                                                           
#!/bin/bash                                                                                
                                                                                           
start=$(date +%s)                                                                          
nmap www.1987.name &> /dev/null                                                            
                                                                                           
end=$(date +%s)                                                                            
difference=$(( end - start ))                                                              
echo $difference seconds.                                                                  



















































































































qLv蓝梦 2013-12-27 14:13 发表评论
]]>
ubuntu 重设crontab -e的默认编辑器http://m.tkk7.com/jasmine214--love/archive/2013/12/14/407579.htmlqLv蓝梦qLv蓝梦Sat, 14 Dec 2013 07:01:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2013/12/14/407579.htmlhttp://m.tkk7.com/jasmine214--love/comments/407579.htmlhttp://m.tkk7.com/jasmine214--love/archive/2013/12/14/407579.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/407579.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/407579.html

Ubuntu System Admin 在一U上服务器上讄计划dQ?不小心选择了nanoQ?׃以前接触的是redhatpd的, 不习惯用nanoQ?于是想重设下Q?|上查了下, 貌似没有。?/p>

无奈之下Q重装一台服务器试Q?发现当你W一ơcrontab -e选择~辑器的时候就会提醒你Q?以后若要该改变选择Q?输入select-editor 唉,q是不够l心啊。?sudo select-editor 选择vim 搞定。?/p>

1
2
3
4
5
6
root@ubuntu:/var/www# select-editor
 Select an editor. To change later, run 'select-editor'.
 1. /bin/ed
 2. /bin/nano <---- easiest
 3. /usr/bin/vim.basic
 4. /usr/bin/vim.tiny

选择的数字是“3”Q?/usr/bin/vim.basic?/p>

qLv蓝梦 2013-12-14 15:01 发表评论
]]>
shell里的IFS内置环境变量http://m.tkk7.com/jasmine214--love/archive/2013/03/12/396338.htmlqLv蓝梦qLv蓝梦Tue, 12 Mar 2013 10:19:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2013/03/12/396338.htmlhttp://m.tkk7.com/jasmine214--love/comments/396338.htmlhttp://m.tkk7.com/jasmine214--love/archive/2013/03/12/396338.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/396338.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/396338.htmlIFS 的全U是 Interal Field Separator Q即“内部区域分隔W?#8221;Q它也是一个内|环境变量,存储着默认的文本分隔符Q默认下q分隔符是空格符(space character)Q制表符(tab) 以及新行(newline) 。先看下面一个简单示例:
1
2
3
4
5
6
7
8
#!/bin/sh
 
msg="welcome to www groad net"
 
for item in $msg
do
    echo "Item: $item"
done

q行输出Q?br />
# sh temp.sh
Item: welcome
Item: to
Item: www
Item: groad
Item: net

?面用一?for 循环遍历了变?msg 里的所有项?msg 变量里存储的各个单词都是用空格分开的,?for 能依ơ取些单词,正是依靠 IFS q个变量作ؓ分隔W。如果将 msg 变量改ؓ CSV (comma separaed values 逗号分隔?格式Q那么按照默认的 IFS 值就无法解析出各个单词,如:
sh temp.sh
Item: welcome,to,www,groad,net

q样Q整个字W串当成一?item 被获取了?br />
此时如果仍然希望逐个获得各个单词Q那么需要修?IFS 变量的|如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
data="welcome,to,www,groad,net"
 
IFSBAK=$IFS     #备䆾原来的?/code>
 
IFS=,
 
for item in $data
do
    echo Item: $item
done
 
IFS=$IFSBAK     #q原

q行输出Q?br />
# sh tmp.sh
Item: welcome
Item: to
Item: www
Item: groad
Item: net


qLv蓝梦 2013-03-12 18:19 发表评论
]]>
单带子目录的makefilel习http://m.tkk7.com/jasmine214--love/archive/2012/01/10/368261.htmlqLv蓝梦qLv蓝梦Tue, 10 Jan 2012 13:18:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2012/01/10/368261.htmlhttp://m.tkk7.com/jasmine214--love/comments/368261.htmlhttp://m.tkk7.com/jasmine214--love/archive/2012/01/10/368261.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/368261.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/368261.html  开始学linux。我l习写的W一个带子目录的makefile文g?br />  1。徏立文件夹 wulong
  wulong中含 三个文g?include source pro 和makefile文g?br />  include 中包?hai.h头文件?br />  source 中包?hello.c文g?br />  pro 中包?haia.c haib.c文g?br />  
  makefile文g内容有两U写法:
  makefile W一U写法:
  Q/Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q?br />  CC=gcc Q选择~译器类型ؓgcc
  VPATH= include : pr : source #列明文g存放目录
  
  hello: hello.o haia.o haib.o
   $(CC) -o hello hello.o haia.o haib.o
  hello.o:hello.c hai.h
   $(CC) -c hello.c
  haia.o: haia.c hai.h
   $(CC) -c haia.c
  haib.o: haib.c hai.h
   $(CC) -c haib.c
  .PHONY: clean
  clean:
   rm hello $(obj)
  Q/Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q?br />  
  
  
  makefileW二U写法(化版Q:
  Q/Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*
  CC=gcc #选择~译U类
  
  VPATH= include : pr : source #在include pr source 三目录下查找文g
  
  obj= hello.o haia.o haib.o Q?br />  
  hello:$(obj) Q?br />   $(CC) -o hello $(obj)
  
  $(obj): hai.h
  
  .PHONY: clean
  clean:
   rm hello $(obj)
  Q/Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*
  
  
  hai.h文g内容为:
  Q/Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*Q*
  #include "stdio.h"
  extern void haiprinta();
  extern void haiprintb();
  Q/Q*Q*Q*Q*Q*Q*Q*Q*
  
  hello.c内容为:
  Q/Q*Q*Q*Q*Q*Q*Q*Q*
  #include "../include/hai.h"
  
  int main(void)
  {
  haiprinta();
  haiprintb();
  return 0;
  }
  Q/Q*Q*Q*Q*Q*Q*Q*
  
  haia.c内容为:
  Q/Q*Q*Q*Q*Q*Q*
  #include "../include/hai.h"
  
  void haiprinta()
  {
  printf("hai aaaaaaaaaa\n");
  }
  Q/Q*Q*Q*Q*Q*Q*Q*
  
  
  haib.c内容为:
  Q/Q*Q*Q*Q*Q*Q*Q*
  #include "../include/hai.h"
  
  void haiprintb()
  {
  printf("haib bbbbbbbbbbbbbb\n");
  }
  Q/Q*Q*Q*Q*Q*Q*Q*Q*Q*Q?br />  
  2。make 调用makefile生成 可执行文?hello
  
  3. q行 hello昄打印l果Q?br />  [HAI@localhost wulong]$ ./hello
  hai aaaaaaaaaa
  haib bbbbbbbbbbbbbb
  [HAI@localhost wulong]$
  
  到此l束Q恭喜!
原文Q?div>http://blog.tianya.cn/blogger/post_show.asp?BlogID=2058037&PostID=17326631

qLv蓝梦 2012-01-10 21:18 发表评论
]]>
sleep命o用法http://m.tkk7.com/jasmine214--love/archive/2011/12/30/367595.htmlqLv蓝梦qLv蓝梦Fri, 30 Dec 2011 09:56:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/12/30/367595.htmlhttp://m.tkk7.com/jasmine214--love/comments/367595.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/12/30/367595.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/367595.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/367595.html 名称 : sleep
  
  使用权限 : 所有用?
  
  使用方式 : sleep [--help] [--version] number[smhd]
  
  说明 : sleep 可以用来目前动作gq一D|?
  
  参数说明 :
  
  --help : 昄辅助讯息
  --version : 昄版本~号
  number : 旉长度Q后面可?s、m、h ?d
  其中 s 为秒Qm ?分钟Qh 为小Ӟd 为日?
  
  例子 :
  昄目前旉后gq?1 分钟Q之后再ơ显C时?:
   date;sleep 1m;date 转:
http://www.bhcode.net/article/20100421/8565.html


qLv蓝梦 2011-12-30 17:56 发表评论
]]>
shell 常用正则表达?/title><link>http://m.tkk7.com/jasmine214--love/archive/2011/10/12/361040.html</link><dc:creator>qLv蓝梦</dc:creator><author>qLv蓝梦</author><pubDate>Wed, 12 Oct 2011 03:49:00 GMT</pubDate><guid>http://m.tkk7.com/jasmine214--love/archive/2011/10/12/361040.html</guid><wfw:comment>http://m.tkk7.com/jasmine214--love/comments/361040.html</wfw:comment><comments>http://m.tkk7.com/jasmine214--love/archive/2011/10/12/361040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/jasmine214--love/comments/commentRss/361040.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jasmine214--love/services/trackbacks/361040.html</trackback:ping><description><![CDATA[<div><br /><p>“^\d+$” //非负整数Q正整数 + 0Q? <br />“^[0-9]*[1-9][0-9]*$” //正整? <br />“^((-\d+)|(0+))$” //非正整数Q负整数 + 0Q? <br />“^-[0-9]*[1-9][0-9]*$” //负整? <br />“^-?\d+$” //整数 <br />“^\d+(\.\d+)?$” //非负点敎ͼ正QҎ + 0Q? <br />“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正QҎ <br />“^((-\d+(\.\d+)?)|(0+(\.0+)?))$” //非正点敎ͼ负QҎ + 0Q? <br />“^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$” //负QҎ <br />“^(-?\d+)(\.\d+)?$” //点? <br />“^[A-Za-z]+$” //?6个英文字母组成的字符? <br />“^[A-Z]+$” //?6个英文字母的大写l成的字W串 <br />“^[a-z]+$” //?6个英文字母的写l成的字W串 <br />“^[A-Za-z0-9]+$” //由数字和26个英文字母组成的字符? <br />“^\w+$” //由数字?6个英文字母或者下划线l成的字W串 <br />“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$” //email地址 <br />“^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$” //url <br />/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  q??? <br />/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // ??q? <br />“^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$”   //Emil <br />/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/     //电话L <br />“^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$”   //IP地址</p> <p>匚w中文字符的正则表辑ּQ?[\u4e00-\u9fa5] <br />匚w双字节字W?包括汉字在内)Q[^\x00-\xff] <br />匚wI的正则表辑ּQ\n[\s| ]*\r <br />匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/ <br />匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$) <br />匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* <br />匚w|址URL的正则表辑ּQ^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$ <br />匚w帐号是否合法(字母开_允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}$ <br />匚w国内电话LQ?\d{3}-|\d{4}-)?(\d{8}|\d{7})? <br />匚w腾讯QQP^[1-9]*[1-9][0-9]*$ <br />元字W及其在正则表达式上下文中的行ؓQ?/p> <p>\ 下一个字W标Cؓ一个特D字W、或一个原义字W、或一个后向引用、或一个八q制转义W?/p> <p>^ 匚w输入字符串的开始位|。如果设|了 RegExp 对象的Multiline 属性,^ 也匹?’\n’ ?’\r’ 之后的位|?/p> <p>$ 匚w输入字符串的l束位置。如果设|了 RegExp 对象的Multiline 属性,$ 也匹?’\n’ ?’\r’ 之前的位|?/p> <p>* 匚w前面的子表达式零ơ或多次?/p> <p>+ 匚w前面的子表达式一ơ或多次? {h?{1,}?/p> <p>? 匚w前面的子表达式零ơ或一ơ? {h?{0,1}?/p> <p>{n} n 是一个非负整敎ͼ匚w定的n ơ?/p> <p>{n,} n 是一个非负整敎ͼ臛_匚wn ơ?/p> <p>{n,m} m ?n 均ؓ非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。在逗号和两个数之间不能有空根{?/p> <p>? 当该字符紧跟在Q何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面Ӟ匚w模式是非贪婪的。非贪婪模式可能少的匹配所搜烦的字W串Q而默认的贪婪模式则尽可能多的匚w所搜烦的字W串?/p> <p>. 匚w?“\n” 之外的Q何单个字W。要匚w包括 ’\n’ 在内的Q何字W,请用象 ’[.\n]’ 的模式? <br />(pattern) 匚wpattern q获取这一匚w?/p> <p>(?:pattern) 匚wpattern 但不获取匚wl果Q也是说这是一个非获取匚wQ不q行存储供以后用?/p> <p>(?=pattern) 正向预查Q在M匚w pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用?/p> <p>(?!pattern) 负向预查Q与(?=pattern)作用相反</p> <p>x|y 匚w x ?y?/p> <p>[xyz] 字符集合?/p> <p>[^xyz] 负值字W集合?/p> <p>[a-z] 字符范围Q匹配指定范围内的Q意字W?/p> <p>[^a-z] 负值字W范_匚wM不在指定范围内的L字符?/p> <p>\b 匚w一个单词边界,也就是指单词和空格间的位|?/p> <p>\B 匚w非单词边界?/p> <p>\cx 匚w由x指明的控制字W?/p> <p>\d 匚w一个数字字W。等价于 [0-9]?/p> <p>\D 匚w一个非数字字符。等价于 [^0-9]?/p> <p>\f 匚w一个换늬。等价于 \x0c ?\cL?/p> <p>\n 匚w一个换行符。等价于 \x0a ?\cJ?/p> <p>\r 匚w一个回车符。等价于 \x0d ?\cM?/p> <p>\s 匚wMI白字符Q包括空根{制表符、换늬{等。等价于[ \f\n\r\t\v]?/p> <p>\S 匚wM非空白字W。等价于 [^ \f\n\r\t\v]?/p> <p>\t 匚w一个制表符。等价于 \x09 ?\cI?/p> <p>\v 匚w一个垂直制表符。等价于 \x0b ?\cK?/p> <p>\w 匚w包括下划U的M单词字符。等价于’[A-Za-z0-9_]’?/p> <p>\W 匚wM非单词字W。等价于 ’[^A-Za-z0-9_]’?/p> <p>\xn 匚w nQ其?n 为十六进制{义倹{十六进制{义值必Mؓ定的两个数字长?/p> <p>\num 匚w numQ其中num是一个正整数。对所获取的匹配的引用?/p> <p>\n 标识一个八q制转义值或一个后向引用。如?\n 之前臛_ n 个获取的子表辑ּQ则 n 为后向引用。否则,如果 n 为八q制数字 (0-7)Q则 n Z个八q制转义倹{?/p> <p>\nm 标识一个八q制转义值或一个后向引用。如?\nm 之前臛_有is preceded by at least nm 个获取得子表辑ּQ则 nm 为后向引用。如?\nm 之前臛_?n 个获取,?n Z个后跟文?m 的后向引用。如果前面的条g都不满Q若 n ?m 均ؓ八进制数?(0-7)Q则 \nm 匹配八q制转义?nm?/p> <p>\nml 如果 n 为八q制数字 (0-3)Q且 m ?l 均ؓ八进制数?(0-7)Q则匚w八进制{义?nml?/p> <p>\un 匚w nQ其?n 是一个用四个十六q制数字表示的Unicode字符?/p> <p>匚w中文字符的正则表辑ּQ?[u4e00-u9fa5]</p> <p>匚w双字节字W?包括汉字在内)Q[^x00-xff]</p> <p>匚wI的正则表辑ּQn[s| ]*r</p> <p>匚wHTML标记的正则表辑ּQ?<(.*)>.*</1>|<(.*) />/</p> <p>匚w首尾I格的正则表辑ּQ?^s*)|(s*$)</p> <p>匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</p> <p>匚w|址URL的正则表辑ּQhttp://([w-]+.)+[w-]+(/[w- ./?%&=]*)?</p> <p>利用正则表达式限制网表单里的文本框输入内容Q?/p> <p>用正则表辑ּ限制只能输入中文Qonkeyup=”value=value.replace(/[^u4E00-u9FA5]/g,”)” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,”))”</p> <p>用正则表辑ּ限制只能输入全角字符Q?onkeyup=”value=value.replace(/[^uFF00-uFFFF]/g,”)” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^uFF00-uFFFF]/g,”))”</p> <p>用正则表辑ּ限制只能输入数字Qonkeyup=”value=value.replace(/[^d]/g,”) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”))”</p> <p>用正则表辑ּ限制只能输入数字和英文:onkeyup=”value=value.replace(/[W]/g,”) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”))”</p> <p>=========常用正则表达?/p> <p>匚w中文字符的正则表辑ּQ?[\u4e00-\u9fa5]</p> <p>匚w双字节字W?包括汉字在内)Q[^\x00-\xff]</p> <p>匚wI的正则表辑ּQ\n[\s| ]*\r</p> <p>匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/</p> <p>匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$)</p> <p>匚wIP地址的正则表辑ּQ?(\d+)\.(\d+)\.(\d+)\.(\d+)/g //</p> <p>匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p> <p>匚w|址URL的正则表辑ּQhttp://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?</p> <p>sql语句Q^(select|drop|delete|create|update|insert).*$</p> <p>1、非负整敎ͼ^\d+$</p> <p>2、正整数Q^[0-9]*[1-9][0-9]*$</p> <p>3、非正整敎ͼ^((-\d+)|(0+))$</p> <p>4、负整数Q^-[0-9]*[1-9][0-9]*$</p> <p>5、整敎ͼ^-?\d+$</p> <p>6、非负QҎQ^\d+(\.\d+)?$</p> <p>7、正点敎ͼ^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)| ([0-9]*[1-9][0-9]*))$</p> <p>8、非正QҎQ^((-\d+\.\d+)?)|(0+(\.0+)?))$</p> <p>9、负点敎ͼ^(-((正QҎ正则?))$</p> <p>10、英文字W串Q^[A-Za-z]+$</p> <p>11、英文大写串Q^[A-Z]+$</p> <p>12、英文小写串Q^[a-z]+$</p> <p>13、英文字W数字串Q^[A-Za-z0-9]+$</p> <p>14、英数字加下划线Ԍ^\w+$</p> <p>15、E-mail地址Q^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$</p> <p>16、URLQ^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ <br />或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^& lt;>\"\"])*$</p> <p>17、邮政编码:^[1-9]\d{5}$</p> <p>18、中文:^[\u0391-\uFFE5]+$</p> <p>19、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9] \d{6,7}(\-\d{1,4})?$</p> <p>20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$</p> <p>21、双字节字符(包括汉字在内)Q^\x00-\xff</p> <p>22、匹配首|(^\s*)|(\s*$)Q像vbscript那样的trim函数Q?/p> <p>23、匹配HTML标记Q?lt;(.*)>.*<\/\1>|<(.*) \/></p> <p>24、匹配空行:\n[\s| ]*\r</p> <p>25、提取信息中的网l链接:(h|H)(r|R)(e|E)(f|F) *= *(’|”)?(\w|\\|\/|\.)+(’|”| *|>)?</p> <p>26、提取信息中的邮件地址Q\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p> <p>27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *(’|”)?(\w|\\|\/|\.)+(’|”| *|>)?</p> <p>28、提取信息中的IP地址Q?\d+)\.(\d+)\.(\d+)\.(\d+)</p> <p>29、提取信息中的中国手机号码:(86)*0*13\d{9}</p> <p>30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}</p> <p>31、提取信息中的中国电话号码(包括Ud和固定电话)Q?\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}</p> <p>32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}</p> <p>33、提取信息中的QҎQ即数Q:(-?\d*)\.?\d+</p> <p>34、提取信息中的Q何数?Q?-?\d*)(\.\d+)?</p> <p>35、IPQ?\d+)\.(\d+)\.(\d+)\.(\d+)</p> <p>36、电话区P/^0\d{2,3}$/</p> <p>37、腾讯QQP^[1-9]*[1-9][0-9]*$</p> <p>38、帐?字母开_允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}$</p> <p>39、中文、英文、数字及下划U:^[\u4e00-\u9fa5_a-zA-Z0-9]+$</p></div>原文Q?div>http://www.am82.com/4392/</div><img src ="http://m.tkk7.com/jasmine214--love/aggbug/361040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jasmine214--love/" target="_blank">qLv蓝梦</a> 2011-10-12 11:49 <a href="http://m.tkk7.com/jasmine214--love/archive/2011/10/12/361040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell实例http://m.tkk7.com/jasmine214--love/archive/2011/08/08/356035.htmlqLv蓝梦qLv蓝梦Mon, 08 Aug 2011 09:03:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/08/08/356035.htmlhttp://m.tkk7.com/jasmine214--love/comments/356035.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/08/08/356035.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/356035.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/356035.html?/span>========================shell数据cd与变?/span>===============?/span>

2.

3.

4.

5.

?/span>=======================shiftI过所有的位置参数================?/span>

?=======================循环================?/span>

W一U:

W二U:代码?/span> ?/span>while 循环

W三U:while循环无需d外界文g

W四U:while ?/span>casel合Q?/span>shift,continue使用?/span>

W五U:for循环

W六U:for嵌套for循环

W七U:

W八U:

W九U:

W十U:

?=======================if 条g判断  ?位置参数$1================?/span>

W一U:

W二U:$#是位|参数的个数

W三U:?/span>elif的?/span>

W四U:取反条g

W五U:试cd的条件控?/span>

 

W六U:多种条g一起匹配的?/span>

W七U:case条gQ关注变量那?/span>

W八U:多种条g控制嵌套处理Q其实都是由实际的业务逻辑军_的?/span>if嵌套case?/span>if都可以。同Pcase嵌套if也可以?/span>

W九U:exit退本的使用

W十U:if ?/span>exitl合

W十一U:if ?/span>{}l合?/span>

W十二种Q?/span>if 与冒Ll合

W十三种Q?/span>if ?/span>shift l合

W十四种Q?/span>if ?/span>execl合

W十五种Q?/span>if ?/span>diff的?/span>

W十六种Q?/span>

W十七种Q?/span>cmp的比?/span>

?======================脚本映射 ================?/span>

W一U:link

?/span>=======================shell 函数 ================?/span>

W一U:cM于主函数调用其余子函敎ͼ以及return q回?/span>

?/span>=======================unix 基础命o ================?/span>

W一Q?/span>

W二Q?/span>shift的?/span>



qLv蓝梦 2011-08-08 17:03 发表评论
]]>
ShellW试?http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343989.htmlqLv蓝梦qLv蓝梦Wed, 09 Feb 2011 09:45:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/02/09/343989.htmlhttp://m.tkk7.com/jasmine214--love/comments/343989.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/02/09/343989.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/343989.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/343989.html find ./ -size +500M -type f | tee file_list | wc -l

2.在目?tmp下找?00个以abc开头的文gQ然后把q些文g的第一行保存到文gnew中?br /> for filename in `find /tmp -type f -name "abc*"|head -n 100`
do
sed -n '1p' $filename>>new
done

3.把文件b中有的,但是文ga中没有的所有行Q保存ؓ文gcQƈl计c的行数?br /> grep -xvf a b | tee c | wc -l

5.每隔10分钟监控一ơ,监控/usr下如果大?GQ发邮gl管理员
#!/bin/bash
while true
do
    sleep 600
    n=$(du -s /usr | cut -f1)
    if [ $n -gt 5242880 ]
    then
        mail -s "greater" filwsyl@gmail.com < ~/filename #文件filename的内容发送出厅R?br />     fi
done
把某个目录下的文件扩展名改ؓbatQ再以时间ؓ文g名压~打包存攑ֈ某个目录?br /> #!/bin/bash
for file in $(ls $1)
do
    new_file=${file%.*}.bat
    mv ./$1/$file ./$1/$new_file
    tmp=$(date +%y)
    tar cvf ./$tmp.tar ./$1
done

9.从网上下载一个文Ӟ保存到指定目?br /> #!/bin/bash
url=http://rs1.bn.163.com/ent/2009/05/20_canquedege.wma
dir=~/下蝲
wget -P $dir $url

10.判断一个数是不是完数。打印出1-1000之间的完数?完数是U数的和{于自n2倍的数?6,28,496)
#!/bin/bash
sub()
{
    i=1;
    sum=0;
    while [ $i -le $num ]
    do
        let "m=num%i"
        if [ $m -eq 0 ]
        then
            let "sum=sum+i"
        fi
        let "i=i+1"
    done
    let "a=2*num"
    if [ $a -eq $sum ]
    then
        echo $num
    fi
}
num=1
while [ $num -le 1000 ]
do
    sub
    let "num = num+1"
done

11.以行为单位,求文件A和文件B交集Qƈ集,差集?br /> q?
sort -m <(sort A | uniq) <(sort B | uniq) | uniq
?
sort -m <(sort A | uniq) <(sort B | uniq) | uniq -d
?
sort -m <(sort A | uniq) <(sort B | uniq) <(sort B | uniq) | uniq -u

12.在某个文件夹下查扑֐有指定字W串的文?br /> #!/bin/bash
for file in $(ls $2)
do
    bname=$(grep -l $1 $2/$file)
    basename $bname
done
调用ҎQ?/tst 000 bashQ在文g夹bash中查扑֐?#8220;000”的文件?br />
19.一个文件内容全部是cM
?02.205.151.21?-?3Q?9Q?2?“HTTP GET”-“Mozila”
...
写一个SHELL命o扑և最多的10个IP
awk -F "--" '{print $1}' shit | sort | uniq -c | sort -r | sed -n '1,10p'

20./tmp路径下有800个文?文g名的格式?filename_YYYYMMDD_序列??01?99).dat, 例如:filename_20040108_089.dat。现在想把这些文件改?新文件名的格式是:filename_TODAY(当前日期)_序列 ??00开?到达999之后?01开?.dat,例如: 把filename_20040108_089.dat改ؓfilename_20041222_589.dat,注意新文件名的序列号的顺序需要和原来 的一?卌做排序处理?br /> #!/usr/bin/bash
DEST_FILE_PART2="_`date '+%Y%m%d'`_"
EXT_NAME=".dat"
SRC_FILE_LIST=`find /tmp -name "*_*_*$EXT_NAME" -print`
for each in $SRC_FILE_LIST; do
    DEST_FILE_PART1=`echo $each | awk -F"_" '{print $1}'`
    OLD_NUM=`echo $each | awk -F"_" '{print $3}' | awk -F"." '{print $1}'`
    DEST_FILE_PART3=`expr $OLD_NUM + 500`
    [ $DEST_FILE_PART3 -gt 999 ] && DEST_FILE_PART3=`expr $OLD_NUM - 499`
        && DEST_FILE_PART3=`printf %03d $DEST_FILE_PART3`
    DEST_FILE=$DEST_FILE_PART1$DEST_FILE_PART2$DEST_FILE_PART3$EXT_NAME
    echo "mv $each to $DEST_FILE"
    mv $each $DEST_FILE
done
我的解法Q?br /> #!/bin/bash
new_file=$(date +20%y%m%d);
for file in $(ls ~/bash)
do
    i=$(echo "$file" | sed 's/.*_[0-9]*_\([0-9]*\).dat/\1/')    #取出序列?br />     i=$(echo $i | sed 's/^0*\([0-9]*\)/\1/')                #L序列号前面可能的 ‘0’Q?br />     let "ii=i+500"
    if [ $ii -gt 999 ]
    then
        let "ii=ii-999"
    fi
    ii=`printf %03d $ii`                            #M可能需要的‘0’
    update=$(echo "$file" | sed 's/\(.*\)_[0-9]*_[0-9]*.dat/\1_'$new_file'_'$ii'.dat/')
    mv ~/bash/$file ~/bash/$update
done

21.要求Q在一个脚本中完成q个E序
1.从文件user.list中取出已l定的用户名和用LQ将q些用户和组按规则添加到pȝ?br /> 2.从password.list中读取已l给定的用户密码?br /> user.list如下
zhangsan adminuser,dbuser,updatauser
lisi dbuser,updatauser
wanger updatauser,wheel

#!/bin/bash
#group add
for x in ‘awk ‘{print $2}’ user.list | sed ’s/,/\n/g’ | sort | uniq -c|sed ’s/[^a-zA-Z]//g”
do
        groupadd $x &> /dev/null
done
#back message
if (($?==0))
then
        echo “Group Ok!!”
else
    exit 1
fi
#user add
for i in ‘awk ‘{print $1}’ user.list’
do
    for y in ‘awk ‘{print $2}’ password.list’
    do
    useradd $i &> /dev/null
    echo $y | passwd –stdin $i &> /dev/null
    done
done
#back message
if (($?==0))
then
    echo “User Ok!”
else
    exit 1
fi
#add users to groups
for ((q=1;q<=3;q++))
do
    usermod -G ‘awk “NR==$q {print $2}” user.list | awk ‘{print $2}” ‘awk “NR==$q {print $1}” user.list | awk ‘{print $1}” &> /dev/null
done
if (($?==0))
then
    echo “All Finished!”
fi
原文地址http://www.zhangyiqun.cn/115.html

22.比较两个数大小?br /> awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}'
echo "0.14 > 0.15" | bc
expr 1.2 \< 1.3



qLv蓝梦 2011-02-09 17:45 发表评论
]]>
ShellW试?http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343978.htmlqLv蓝梦qLv蓝梦Wed, 09 Feb 2011 08:54:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/02/09/343978.htmlhttp://m.tkk7.com/jasmine214--love/comments/343978.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/02/09/343978.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/343978.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/343978.html题目Q?/strong>

1. ?/span>a.log文g中提取包?/span>"WARNING"?/span>"FATAL"Q同时不包含"IGNOR"的行Q然后提取以":"分割的第5个字D?/span>

2. ~写一个脚本,只想单的减法q算Q要求提C入变?/span>

3. Shell脚本阅读Q解释下面执行的功能Q,hZ面程序或脚本中的错误Qƈ说明错在哪里?/span>

#!/bin/bash

#监控cpuser?/span>point端口是否正常

logname="/home/forum/log/lpointlog.wf"

flagfile="/home/forum/log/lognum.txt"

lodnum=sed -n "1,1 p"$flagfile

newnum=wc -l ${logname}

echo $newnum >$flagfile

totalnum=expr $newnum -$oldnum

tail -n $totalnum $logname |grep "POINT_THREAD WARNING"

if [$?==0]

then

   mail -s "cpuser point "端口异常,请处?/span>!" test@aa.com</dev/null

fi>

 

{案Q?/strong>

 

1.

#!/bin/bash
awk -F: '{if ($0~/(WARNING|FATAL)/ && $0!~/IGNOR/) {print $5}}' a.log

2.

#!/bin/bash
read -p "input a num:" num1
read -p "input another num:" num2
result=`expr $num1 - $num2`
#let "result=num1-num2"
#let result=num1-num2
echo $result
~

3.

命o行替换用反引Pif [$?==0] 应该写做if [ $?=0 ]Q用来判断上ơ命令是否执行成功;

倒数W二行应该是>/dev/nullQ最?/span>fi后面?/span>>L?br /> 原文Qhttp://blog.csdn.net/do2jiang/archive/2009/09/28/4604692.aspx


qLv蓝梦 2011-02-09 16:54 发表评论
]]>
ShellW试?http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343971.htmlqLv蓝梦qLv蓝梦Wed, 09 Feb 2011 08:15:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/02/09/343971.htmlhttp://m.tkk7.com/jasmine214--love/comments/343971.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/02/09/343971.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/343971.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/343971.html1Q用Shell~程Q判断一文g是不是块或字W设备文Ӟ如果是将其拷贝到 /dev 目录下?/span>

#!/bin/bash
#1.sh
#判断一文g是不是字W或块设备文Ӟ如果是将其拷贝到 /dev 目录?br /> #file executable: chmod 755 1.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e “The program will Judge a file is or not a device file.\n\n”
read -p “Input a filename : ” filename
if [ -b "$filename" -o -c "$filename" ]
then
echo “$filename is a device file” && cp $filename /dev/ &
else
echo “$filename is not a device file” && exit 1
fi
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-
2. 设计一个shellE序Q添加一个新lؓclass1Q然后添加属于这个组?0个用P用户名的形式为stdxxQ其中xx?1?0?/p>

#!/bin/bash
#2.sh
#设计一个shellE序Q添加一个新lؓclass1Q然后添加属于这个组?0个用P用户名的形式为stdxxQ其中xx?1?0?br /> #file executable: chmod 755 2.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
groupadd class1
for i in {9901..9930}
do
xx=`echo $i | sed ’s/99//g’`
useradd -g class1 std$xx
echo std$xx | passwd std$xx –stdin
echo -e “user std$xx password is std$xx” >> /root/newuser.txt
done

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br /> 3Q编写shellE序Q实现自动删?0个̎L功能。̎号名为stud1至stud50?/p>

#!/bin/bash
#4.sh
#~写shellE序Q实现自动删?0个̎L功能。̎号名为stud1至stud50?br /> #file executable: chmod 755 3.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
i=1
while [ i -le 50 ]
do
let i++
userdel -r stud$i
done

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br /> 4Q某pȝ理员需每天做一定的重复工作Q请按照下列要求Q编制一个解x案:
Q?Q在下午4 :50删除/abc目录下的全部子目录和全部文gQ?br /> Q?Q从?:00~下?:00每小时读?xyz目录下x1文g中每行第一个域的全部数据加入到/backup目录下的bak01.txt文g内;
Q?Q每逢星期一下午5:50?data目录下的所有目录和文g归档q压~ؓ文gQbackup.tar.gzQ?br /> Q?Q在下午5:55IDE接口的CD-ROM卸蝲Q假设:CD-ROM的设备名为hdcQ;
Q?Q在早晨8:00前开机后启动?/p>

vim /etc/crontab 在里面增加下面内容:

50 16 * * * root rm -rf /abc/* 2>&1 &
00 8-18 * * * root cat /xyz/x1|awk ‘{print $1}’ >> /backup/bak01.txt 2>&1 &
50 17 * * 1 root cd /data;tar -zcvf backup.tar.gz * 2>&1 &
55 17 * * * root umount /hdc 2>&1 &

5Q在早晨8:00前开机后启动 –> q个我不是很明白它的意?不知道是不是8点前开机就启动上面的设定,8点后才开机就不用启动的意思?br /> 姑且用下面这个命令吧
chkconfig –level 2345 crond on

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br /> 5Q设计一个shellE序Q在每月W一天备份ƈ压羃/etc目录的所有内容,存放?root/bak目录里,且文件名
为如下Ş式yymmdd_etcQyy为年Qmm为月Qdd为日。ShellE序fileback存放?usr/bin目录下?/p>

vim /usr/bin/fileback.sh

#!/bin/bash
#fileback.sh
#file executable: chmod 755 fileback.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
filename=`date +%y%m%d`_etc.tar.gz
cd /etc/
tar -zcvf $filename *
mv $filename /root/bak/
—————————————————?br /> vim /etc/crontab 加入
* * 1 * * root ./fileback.sh &

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-
6Q有一普通用h在每周日凌晨零点零分定期备䆾/user/backup?tmp目录下,该用户应如何做?
可以? contab -e 来做Q和上面一题差不多?/p>

7.设计一个ShellE序Q在/userdata目录下徏?0个目录,即user1~user50Qƈ讄每个目录的权限,?br /> 中其他用L权限为:读;文g所有者的权限为:诅R写、执行;文g所有者所在组的权限ؓQ读、执行?/p>

#!/bin/bash
#7.sh
#file executable: chmod 755 7.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
for ((i=1;i<=50;i++))
do
mkdir -p /usrdata/user$i
cd /usrdata
chmod 754 user$i
done

原文Qhttp://www.intgoo.com/100555.html



qLv蓝梦 2011-02-09 16:15 发表评论
]]>
shell 文g试 蛮全的?/title><link>http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343963.html</link><dc:creator>qLv蓝梦</dc:creator><author>qLv蓝梦</author><pubDate>Wed, 09 Feb 2011 02:22:00 GMT</pubDate><guid>http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343963.html</guid><wfw:comment>http://m.tkk7.com/jasmine214--love/comments/343963.html</wfw:comment><comments>http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/jasmine214--love/comments/commentRss/343963.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jasmine214--love/services/trackbacks/343963.html</trackback:ping><description><![CDATA[<div><font color="#ff0000">文g状态测?/font></div> <div>-b filename : 当filename 存在q且是块文g时返回真(q回0)<br /> -c filename : 当filename 存在q且是字W文件时q回?br /> -d pathname : 当pathname 存在q且是一个目录时q回?br /> -e pathname : 当由pathname 指定的文件或目录存在时返回真<br /> -f filename : 当filename 存在q且是正规文件时q回?br /> -g pathname : 当由pathname 指定的文件或目录存在q且讄了SGID 位时q回?br /> -h filename : 当filename 存在q且是符号链接文件时q回?(?-L filename)<br /> -k pathname : 当由pathname 指定的文件或目录存在q且讄?_滞"位时q回?br /> -p filename : 当filename 存在q且是命名管道时q回?br /> -r pathname : 当由pathname 指定的文件或目录存在q且可读时返回真<br /> -s filename : 当filename 存在q且文g大小大于0 时返回真<br /> -S filename : 当filename 存在q且是socket 时返回真<br /> -t fd       : 当fd 是与l端讑֤相关联的文g描述W时q回?br /> -u pathname : 当由pathname 指定的文件或目录存在q且讄了SUID 位时q回?br /> -w pathname : 当由pathname 指定的文件或目录存在q且可写时返回真<br /> -x pathname : 当由pathname 指定的文件或目录存在q且可执行时q回?br /> -O pathname : 当由pathname 存在q且被当前进E的有效用户id 的用h有时q回?字母O 大写)<br /> -G pathname : 当由pathname 存在q且属于当前q程的有效用户id 的用L用户l时q回?br /> file1 -nt file2 : file1 比file2 新时q回?br /> file1 -ot file2 : file1 比file2 旧时q回?/div> <div><strong>举例:</strong> if [ -b /dev/hda ] ;then echo "yes" ;else echo "no";fi // 打?yes<br /> test -c /dev/hda ; echo $? // 打?1 表示test 命o的返回gؓ1Q?dev/hda 不是字符讑֤<br /> [ -w /etc/passwd ]; echo $? // 查看对当前用戯言Qpasswd 文g是否可写</div> <div> </div> <div><font color="#ff0000">试旉辑操作W?/font></div> <div>-a 逻辑与,操作W两边均为真Q结果ؓ真,否则为假?br /> -o 逻辑或,操作W两边一边ؓ真,l果为真Q否则ؓ假?br /> !  逻辑否,条g为假Q结果ؓ真?br /> <strong>举例:</strong> [ -w result.txt -a -w score.txt ] ;echo $? // 试两个文g是否均可?/div> <div> </div> <div><font color="#ff0000">常见字符串测?/font></div> <div>-z string    : 字符串string 为空?长度?)时返回真<br /> -n string    : 字符串string 为非IZ时返回真<br /> str1 = str2  : 字符串str1 和字W串str2 相等时返回真<br /> str1 != str2 : 字符串str1 和字W串str2 不相{时q回?br /> str1 < str2  : 按字兔R序排序,字符串str1 在字W串str2 之前<br /> str1 > str2  : 按字兔R序排序,字符串str1 在字W串str2 之后</div> <div><strong>举例:</strong> name="zqf"; [ $name = "zqf" ];echo $? // 打印 0 表示变量name 的值和字符?zqf"相等</div> <div> </div> <div><font color="#ff0000">常见数值测?/font></div> <div>int1 -eq int2 : 如果int1 {于int2Q则q回?br /> int1 -ne int2 : 如果int1 不等于int2Q则q回?br /> int1 -lt int2 : 如果int1 于int2Q则q回?br /> int1 -le int2 : 如果int1 于{于int2Q则q回?br /> int1 -gt int2 : 如果int1 大于int2Q则q回?br /> int1 -ge int2 : 如果int1 大于{于int2Q则q回?/div> <div><strong>举例:</strong> x=1 ; [ $x -eq 1 ] ; echo $? // 打?0 表示变量x 的值等于数?<br /> x=a ; [ $x -eq "1" ] // shell 打印错误信息 [: a: integer expression expected</div>  转脓自:http://blog.chinaunix.net/u/21352/showart_135230.html <img src ="http://m.tkk7.com/jasmine214--love/aggbug/343963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jasmine214--love/" target="_blank">qLv蓝梦</a> 2011-02-09 10:22 <a href="http://m.tkk7.com/jasmine214--love/archive/2011/02/09/343963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Shell 学习—AWK---kiki整理http://m.tkk7.com/jasmine214--love/archive/2011/01/27/343681.htmlqLv蓝梦qLv蓝梦Thu, 27 Jan 2011 08:21:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/01/27/343681.htmlhttp://m.tkk7.com/jasmine214--love/comments/343681.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/01/27/343681.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/343681.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/343681.html阅读全文

qLv蓝梦 2011-01-27 16:21 发表评论
]]>
见过最好的AWK手册http://m.tkk7.com/jasmine214--love/archive/2011/01/25/343478.htmlqLv蓝梦qLv蓝梦Tue, 25 Jan 2011 03:18:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/01/25/343478.htmlhttp://m.tkk7.com/jasmine214--love/comments/343478.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/01/25/343478.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/343478.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/343478.html阅读全文

qLv蓝梦 2011-01-25 11:18 发表评论
]]>
Shelll习http://m.tkk7.com/jasmine214--love/archive/2011/01/22/343364.htmlqLv蓝梦qLv蓝梦Sat, 22 Jan 2011 02:35:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2011/01/22/343364.htmlhttp://m.tkk7.com/jasmine214--love/comments/343364.htmlhttp://m.tkk7.com/jasmine214--love/archive/2011/01/22/343364.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/343364.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/343364.html # !/bin/sh
ls -l /tmp/test/ |awk '{print $9}' |grep -v ^$ | while read LINE
do
size=`ls -l /tmp/test/$LINE |awk '{print $5}'`
if [ $size -le 100 -o $size -ge 300 ];then
#mv $LINE /tmp
echo $LINE
fi
done
或:
find /tmp -size -100k -o -size +300k -exec ls -l {} \;

2.扑ևtest目录下大在40K-60K之间的文?br /> find test -size +40k -a -size -60k -exec ls -l {} \;


3、在目录/tmp下找?00个以abc开头的文gQ然后把q些文g的第一行保存到文gnew中?br /> #Q?bin/sh
cd /tmp
for i in `find . -type f -name "abc*"| head -n 100`
do
head -n1 $i>>new
done


4、把文gb中有的,但是文ga中没有的所有行Q保存ؓ文gcQƈl计c的行数?br /> # !/bin/sh
for i in `cat b`
do
grep $i a                     #b中的行,在a中查?br /> if [ "$?" -gt "0" ];then      #如果l果大于0Q即为找不到Q?br /> echo $i>>c                    #此行输入到c?br /> fi
done
l计行数wc -l卛_~

q个不对Q但是先保留着吧~
排除重复的,再用cutQ已1为分隔域Q打印出W二域到最后一?br /> cat b a | sort -n |uniq -c | awk '{if ($1==1) print $0}'|cut -f2- -d "1" | wc -l
另外 uniq -u可以打印出不重复的?/p>

5.实现?加到100Q得出结果:
一Q?br /> #!/bin/sh

i=1
sum=0
while [ $i -le 100 ]
do

       sum=`expr $sum + $i`
        i=`expr $i + 1`
done
echo $sum

二:
i=1
b=0
for i in {1..100}
do
        b=$[$b + $i]
done
echo $b

三:
# !/bin/sh
s=0
for((i=1;i<101;i++));do
s=`expr $s + $i`
done
echo $s

四:
# !/bin/sh
i=1
num=0
while [ "$i" != "101" ]
do
num=`expr $i + $num`
i=`expr $i + 1`
done
echo $num


6Q文件内容ؓ
admin: aa@test.com
body: bb@test.com
admin: cc@test.com
把匹配admin 的行后面加上 ;aa@163.com
sed -r 's/(admin)(.*)/\1\2 ;aa@163.com/g' filename
admin: aa@test.com ;aa@163.com
body: bb@test.com
admin: cc@test.com ;aa@163.com

-r, --regexp-extended       

use extended regular expressions in the script.
-r 使sed在脚本中使用正则表达?br /> \1\2卌C前面的(admin)(.*)

7Q文件内容ؓQ?br /> 1 aaa 1000
2 bbb 1000
3 aaa 1000
4 aaa 1000
5 ccc 1000
6 bbb 1000
其变成Q?br /> 1 aaa 3000
2 bbb 2000
5 ccc 1000
脚本Q?br /> # !/bin/sh
for i in `awk '{print $2}' filename |sort|uniq`
do
grep $i filename >$i.txt
sum=`awk '{tot+=$3}; END{print tot}' $i.txt`
three=`sed -n '1p' $i.txt |awk '{print $3}'`
sed -i "s/$three/$sum/g" $i.txt
head -n1 $i.txt >>last
rm -f $i.txt
done

8,文g内容Q?br /> this
is
a
test
script
其变成Q?br /> this is a test script
脚本Q?br /> echo `cat filename`

9Q比较字W串大小(主要是用Csort来比?
VAR1=abc
VAR2=def
tt=`echo -e "$VAR1\n$VAR2"|sort|head -1`
if [ "$tt" = "$VAR1" ];then
echo $VAR1 relatively large!
else
echo $VAR2 relatively large!
fi

10.合ƈ相同?br /> [root@test1 tmp]# more file1
DAD|15.0|
JAB|2.0|
JAH|55.0|
HAH|11|
[root@test1 tmp]# more file2
DAD|773.0|
GGC|2.0|
JAB|224.0|
HOH|22|
其合ƈ成:
DAD     15.0    773.0
JAB     2.0     224.0
GGC     2.0
HOHO    22
JAH     55.0
脚本Q(感觉写的有点W了Q?br /> # !/bin/sh
cat file1 file2 |awk -F'|' '{print $1}'| sort |uniq -c >tmp

for i in `awk '{if ($1 >=2) print $2}' tmp`
do
echo `cat file1 file2 |grep $i` | awk -F'|' '{print $1"\t"$2"\t"$4}' >>last.txt
done
for b in `awk '{if ($1==1) print $2}' tmp`
do
echo `cat file1 file2 |grep $b` | sed 's/|/\t/g' >>last.txt
done
rm -f tmp
单的Q?br /> join -a 1 -a 2 -t "|" file* |sort -t"|" -rk3 |awk -F'|' '{print $1"\t"$2"\t"$3$4}'


11Q字母分?br /> abcdefghijklmnopqrstuvwxy分离成ؓQ?br /> abcde
fghij
klmno
pqrst
uvwxy
用到sed配合正则表达式:
sed 's/\(.....\)\(.....\)\(.....\)\(.....\)\(.....\)/\1\n\2\n\3\n\4\n\5/' filename

12.每隔5U检另一台服务器上的apache服务Q直到其启动后,echo OK
# !/bin/sh
echo | telnet 192.168.2.189 80 >check.txt
grep -i connected check.txt
while [ $? -ne 0 ]         #如果上面grep的结果不?
do
echo no
sleep 5
echo | telnet 192.168.2.189 80 >check.txt
grep -i connected check.txt
done
echo OK!!!!!!!!!!!

13.?tmp/下徏0-255目录Q再每个目录再徏0-255个目录,然后在最下目录下面?00个文?br /> 原来写的Q?br /> for ((i=0;i<255;i++));do
mkdir -p $i
for ((b=0;b<255;b++));do
mkdir $i/$b
for ((c=0;c<100;c++));do
touch $i/$b/$c
done
done
done
接下来看一个超单的Q徏5个目录,再每个目录再?个目录,然后在最下目录下面?个文?br /> mkdir -p {0..5}/{0..5} && touch {0..5}/{0..5}/{0..5}

14.记录sed的一个用法:
i=1
sed s/2/$i/g file   不需要写?sed 's/2/$i/g' file
q样的好处就是可以用变量了

原文Q?http://hi.baidu.com/ggb98/blog/item/eabebfee930fd3ffcf1b3eee.html



qLv蓝梦 2011-01-22 10:35 发表评论
]]>
վ֩ģ壺 ƷþƵ| ߹ۿ| þúݺݸ߳޾Ʒ| ѹۿĹƵ| þþþþþۺձ| þù׾Ʒҹ | ɫƬѹۿ| ߹ۿ| ɫһƵѹۿ| һëƬֱ| պƵ| avרavý | 99ѹۿ| ۺ߳һ| һëƬѹۿƵ| ˳Ƶ| avƬ߹ۿ| þĻƷһ| Ƭ߹ۿ| ƷҹѸ| վɫƵѹۿ45| һɫƵ| ɫAAVѲ| jjzzjjzz߹ۿ| Ѱββ8X | aëƬ| ޹ƷAAAƬ| ŷߵӰ| ŮܳƵ| vavava| Ѹվ߹ۿ| ˾ҹѸ| Ʒۺߵһ| һɫþһ| AëƬëƬ| һƬ߹ۿ| ޾Ʒ| ձ2019߹ۿ| avӰѿ| ҹ߲| ŮþþŮ|