﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-ocean-最新评论</title><link>http://ocean.cnblogs.com/CommentsRSS.aspx</link><description>嘿嘿，我的地盘由我来</description><language>zh-cn</language><pubDate>Thu, 31 Mar 2011 15:37:20 GMT</pubDate><lastBuildDate>Thu, 31 Mar 2011 15:37:20 GMT</lastBuildDate><generator>cnblogs</generator><item><title>Re:庆祝广州.net俱乐部成立暨迎接新成员暨讨论社区活动</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/201371.html#2053641</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:25:27 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/201371.html#2053641</guid><description><![CDATA[8.find命令
find pathname -options [-print -exec -ok]
选项：
-name 按照文件名查找文件 
-perm 按照文件权限来查找文件
-prune 可以使find命令不在当前指定的目录中查找，如果使用了depth则此选项无效
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件，-n表示文件更改的时间距现在n天以内
                 +n表示文件更改的时间距现在n天以前
-nogroup 查找无有效所属组的文件
-nouser 查找无有效属主的文件 即该文件的属主在/etc/passwd中不存在
-newer file1!file2 查找更改时间比文件file1新但是比file2旧的文件
-type 查找某一类型的文件 -[b块设备文件 d目录 c字符设备文件 p管道文件 l符号链接文件 f普通文件]
-size n[c] 查找文件长度为n块的文件 带有c时表示文件长度以字节计
-depth 在查找文件时 首先查找当前目录中的文件 然后再在子目录中查找
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到
-mount 查找文件时不能跨越文件系统mount点
-follow 如果find命令遇到符号链接文件 就跟踪至所指向的文件
-cpio 对匹配的文件使用cpio命令，将这些文件备份到磁盘设备中

eg:
find ~ -name &quot;*.txt&quot; -print 在根目录查找文件名符合*.txt的文件
find . -perm  755 -print
find / -mtime -5 -print 在系统根目录下查找更改时间在5日以内的文件 
find / -mtime +3 -print 在系统根目录下查找更改时间在3日以前的文件 
find . -newer age.txt ! -newer belt.txt -exec ls -l {} \ 查找比文件age新但是比belt旧的文件
find /etc -type d -print  查找/etc目录下所有的目录
find . -size +1000000c -print 查找当前目录文件长度大于1m字节的文件
find / -name &quot;CON.FILE&quot; -depth -print  从文件系统的根目录开始查找，查找一个名为CON.FILE的文件，然后再进入子目录进行查找
find . -name &quot;*.txt&quot; -mount -print  从当前目录开始查找位于本文件系统中的文件名为*.txt的文件

find etc home apps -depth -print | cpio -ivcdC65536 -o \
        etc home apps表示相对路径    C65536表示  块大小使用(65536/1024)=64k

find . -type f -exec ls -l {} \   查找当前目录中文件，并用命令ls -l展示出来
find logs -type f -mtime +5 -exec rm {} \    查找目录/logs中更改时间在5日以前的文件并删除它们

find / -type f -print | xargs file   查找系统中每一个文件并用xargs命名 
find . -name &quot;core&quot; -print | xargs echo &quot;&quot; &gt;/temp/core.log 在整个系统中查找内存信息转储文件，然后把结果保存到/temp/core.log文件中
find /apps/audit -perm -7 -print | xargs chmod o-w 在/ a p p s / a u d i t目录下查找所有用户具有读、写和执行权限的文件，并收回相应的写权限        <br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:25 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/201371.html#2053641#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:如何在列表模板中增加一个计算列</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/195824.html#2053638</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:24:20 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/195824.html#2053638</guid><description><![CDATA[命令哈
1.设定变量
一般变量设定：
name=&quot;VBird&#39;s name&quot;
变量累加设定
name=&quot;$name&quot;isme  echo $name 会显示VBird&#39;s nameisme
PATH=&quot;$PATH&quot;:/home/test echo $PATH 将多了后面一句话
2.export name 设定$name可以用于下一个目录或子程序
unset name  取消name 的变量设定
3.eval的使用
[test @test test]# days=365
[test @test test]# year=days
[test @test test]# echo \$$year
$days &lt;==第一个 $ 被 \ 改变成为一般字符，而 \$ 后面接的 $year 就成为 days 啦！
[test @test test]# eval echo \$$year
365
加上 eval 之后， \$$year 变成的 $days 的『变量内容』会显现出来喔！

4.别名
[test @tset test]#alias lm=&#39;ls -al|more&#39;
[test @tset test]#alias 将显示所有的别名

5.查找所属的用户组
groups
或
id
查找其它用户所属用户组
groups matty
6.创建文件时最大权限为666
  创建目录时最大权限为777
  umask值是改变创建文件默认权限的方式，采用减法模式
 常用的umask值：
     umask值   目录     文件
     022        755      644
     027        750      640
     006        771      660
     007        770      660
查询umask值：
umask

7.连接
ln [-s] source_path target_path
<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:24 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/195824.html#2053638#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:时间显示器WebPart</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/186241.html#2053598</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:08:12 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/186241.html#2053598</guid><description><![CDATA[9.后台执行命名
方法一：设置crontab文件，并用它来提交作业
方法二：使用at命令来提交作业
方法三：在后台提交作业（使用&amp;在后台运行一个占用时间不长的进程）
方法四：使用nohup命令提交作业（即使用户退出时也不受影响）

法一：cron是系统主要的调度进程，可在无需人工干预的情况下进行作业，有一个叫做crontab的命令允许用户提交、编辑或删除相应作业
    每个用户都可以有一个crontab文件来保存调度信息，可以使用它来运行任意一个shell脚本或命令
系统管理员通过cron.deny和cron.allow来禁止或允许用户拥有自己的crontab文件

crontab格式：
分&lt;&gt;时&lt;&gt;日&lt;&gt;月&lt;&gt;星期&lt;&gt;要运行的命令
eg:
30 21 * * * /apps/bin/cleanup.sh  每晚21：30运行/apps/bin目录下的cleanup.sh脚本
10 1 * * 6,0 /bin/find -name &quot;core&quot; -exec rm {} \;   每周六、周日的1:10运行一个find命令

crontab命令的一般格式为：
crontab [-u user] -e -l -r  其中 -u代表用户名 -e编辑crontab文件 -l列出crontab文件中的内容 -r 删除crontab文件

法二：at命令
跟用户可以通过/etc目录下的at.allow和at.deny文件来控制哪些用户可以使用at命令
at命令的基本形式
at [-f script] [-m  -l -r] [time] [date]
其中，-f script是所要提交的脚本或命令
      -l 列出当前所有等待运行的作业
      -r 清除作业
      -m 作业完成后给用户发邮件
at命令提交方式
一般提交若干行系统命令时 使用at命令提示符方式
提交shell脚本时使用命令行方式
eg：at命令提示符方式
$at 21:30
at&gt;find / -name &quot;passwd&quot; -print
at&gt;&lt;EOT&gt;
注：&lt;EOT&gt;就是&lt;CTRL-D&gt;
at可以接受的时间格式
at 6.45am may12
at 11.10pm
at now+1 hour
at now+10minutes
eg:命令行方式
at 3.00pm tomorrow -f /apps/bin/db_table.sh
eg:通过echo命令向at命令提交作业
echo find /etc -name &quot;password&quot; -print | at now +1 minute

法三：&amp;命令
使用&amp;命令把作业放在后台执行

向后台提交命令：
find /etc -name &quot;srm.conf&quot; -print &gt;find.dt 2&gt;&amp;1 &amp;<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:08 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/186241.html#2053598#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:列表属性查看器WebPart</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/177671.html#2053596</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:07:35 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/177671.html#2053596</guid><description><![CDATA[10.ps命令查看进程
当一个命令在后台执行的时候，可以用提交命名时所得到的进程号来监控它的运行
ps x|grep 28305  28305为进程号 如果系统不支持ps x命令可用下面代替
ps -ef|grep 28305

11.kill -signal [process_number]

12.nohup 挂起进程
在缺省的情况下该作业的所有的输出都被定向到一个名为nohup.out的文件中，除非指定输出文件
nohup command &gt; myout.file 2&gt;&amp;1
nohup ps1 &amp; 提交一个名为ps1的日志清除进程：
退出shell 再重新登陆 执行以下命令
ps x|grep ps1 可以看见ps1仍在执行

13.
ls [A-Z]??[!0-9]*.doc  列出所有以一个大写字母开头，第四个不为数字的后缀为.doc的文件

14.输入输出
echo &quot;my documents one&quot;&gt;mydoc  将my documents one写入mydoc文件
echo &quot;my documents two&quot;&gt;&gt;mydoc 将my documents two追加到mydoc文件

read name surname
输入：john doe
echo $name and $surname
显示：john and doe

cat file1 file2 file3&gt;bigfile  将file1 file2 file3三个文件合并到新的bigfile文件<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:07 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/177671.html#2053596#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:BI有感续</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/157672.html#2053593</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:06:52 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/157672.html#2053593</guid><description><![CDATA[15管道
sed、awk、grep都很适合用管道
ls | grep tab.doc 当前目录下所有包含tab.doc的文件名
who | awk &#39;{print $1&quot;\t&quot;$2}&#39;  只显示用户以及所在的终端
df -k|awk &#39;{print $1}&#39;|grep -v &quot;filesystem&quot;  管道把awk的结果传递给grep命令，去掉最上面的题头filesystem
df -k|awk &#39;{print $1}&#39;|grep -v &quot;filesystem&quot; |sed s&#39;/\/dev\///g&#39; 只显示分区名

16.
tee 结果输出到屏幕的同时保存到另一个文件中
who | tee who.out 结果输出到屏幕的同时保存到另一个文件who.out中

17.命令执行顺序
mv /apps/bin /apps/dev/bin &amp;&amp; rm -r /apps/bin  命令中/apps/bin目录将会被移到/apps/dev/bin目录下，如果它没有被成功执行，
就不会删除/apps/bin目录
awk &#39;{print $1,$5}&#39; acc.qtr &gt;qtr.tmp || echo &quot;sorry the payroll extraction didn&#39;t work&quot; | mail dave
        从一个审计文件中抽取第 1个和第5个域，并将其输出到一个临时文件中，如果这一操作未成功，我希望能够收到一个相应邮件：


18.基本元字符
基本元字符使用在grep和sed中
* 一个单字符后紧跟*，匹配0个或多个此单字符
. 匹配任意单字符
\ 用来屏蔽一个元字符的特殊含义
pattern\{n,m\} 匹配模式n到m次之间<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:06 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/157672.html#2053593#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:BI有感</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053589</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:03:49 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053589</guid><description><![CDATA[19.grep用法
grep的选项：
-c 只输出匹配行的计数
-i 不区分大小写（只适用于单字符）
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在的或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行

grep &quot;sort it&quot;  *.doc  在当前目录下所有.doc文件中查找字符串&quot;sort&quot;
grep -c &quot;48&quot; data.f 只输出data.f中含有48的行数
grep -n &quot;48&quot; data.f 显示所有满足匹配模式的所有行及行数
grep -v &quot;48&quot; data.f 显示不包含48的各行
grep &quot;48\&gt;&quot; data.f 显示精确匹配48的各行
grep -i &quot;sep&quot; data.f 对大小写不敏感


grep &#39;[Ss]ept&#39; data.f |grep 483 从data.f中抽取sept不管s的大小写，并此行包含483

grep  -E &#39;219|216&#39; data.f -E这一扩展允许使用扩展模式匹配 匹配219或216的文件

组合命令：
ls -l | grep &#39;^d&#39; 查询当前目录下的所有目录的列表<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:03 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053589#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:BI有感</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053587</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:03:27 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053587</guid><description><![CDATA[@BI
20.awk命令
模式包括两个特殊的字段 BEGIN 设置计数和打印头 END用来在awk完成文本浏览 动作后打印输出文本总数和结尾状态标识
实际动作在{}内指定 动作大多数用来打印 
awk -F: &#39;commands&#39; input-file 

awk &#39;{print $0}&#39; grade.txt | tee delete_me_and_die
awk &#39;BEGIN {print &quot;Name  belt\n-----------------------&quot;}{print $1&quot;\t&quot;$4} END {&quot;end of report&quot;}&#39; mywife.txt
规则：
确保整个awk命令用单引号括起来
确保命令内所有引号成对出现
确保用花括号括起动作语句，用圆括号括起条件语句
正则表达式用斜线括起来‘
为使域号匹配正则表达式，使用符号&#39;~&#39;后紧跟正则表达式,也可以用if语句 if后的条件要用（）括起
awk &#39;{if($4~/brown/) print $0}&#39; grade.txt  
awk &#39;$0 ~ /brown/&#39; grade.txt    这两个语句意思都是当第四个域含有brown时，打印它
awk &#39;$3==&quot;48&quot; {print $0}&#39; grade.txt 精确匹配
awk &#39;$0 !~ /brown/&#39; grade.txt  不包含
awk &#39;$0~/(yellow|brown)/&#39; grade.txt 包含yellow和brown的记录

&amp;&amp; AND  语句两边必须同时匹配为真
|| OR   语句两边同时或者其中一边匹配为真时
!  非  求逆

awk &#39;{if ($1==&quot;pbunny&quot;&amp;&amp;$4==&quot;yellow&quot;) print $0}&#39; grade.txt
awk &#39;{if ($4==&quot;yellow&quot;||$4~/brown/) print $0}&#39; grade.txt  

awk的内置变量
ARGC 命令行参数个数
ARGV  命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览的文件记录数 小于等于NR
FS 设置输入域分隔符，等价于命令行-F选项 
NF 浏览记录的域个数
NR 已读的记录数
OFS 输出域分隔符
RS  控制记录分割符

awk &#39;END {print NR}&#39; grade.txt 输出文件的记录个数
awk &#39;{print NF,NR,$0}END{print FILENAME}&#39; grade.txt
NF的一个强大的功能是将变量$PWD的返回值传入awk并显示其目录
echo $PWD | awk -F/ &#39;{print $NF}&#39;

设置有意义的域变量名
awk &#39;{name=$1;belts=$4;if(belts ~/yellow/)print name&quot; is belt&quot;belts}&#39; grade.txt<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:03 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053587#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:BI有感</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053584</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:02:08 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053584</guid><description><![CDATA[23.uniq
uniq -udcf input-file output-file
-u 只显示不重复行（不连续重复）
-d 只显示有重复数据行
-c 打印每一重复行出现的次数
-f n为数字，前n个域被忽略

24.join
25.cut
26.paste
27.split
28.tr 
tr -[cds] string1 string2 &lt;input-file
-c 用字符串1中的字符集的补集替换此字符集 要求字符集为ASCII
-d 删除 字符串1中所有的输入字符
-s 删除所有重复出现的字符 只保留一个
默认为string1替换为string2
tr -s &quot;[a-z]&quot;&lt;cops.txt&gt;results.txt 去重后保存
tr -s [&quot;\n&quot;] &lt;cops.txt 删除空行
echo &quot;May Day,May Day&quot; | tr &quot;[a-z]&quot; &quot;[A-Z]&quot; 小写转化为大写<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:02 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053584#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:BI有感</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053583</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:01:52 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053583</guid><description><![CDATA[sort
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
-c 测试文件是否已经分类
-m 合并两个分类文件
-u 删除所有复制行
-o 存储sort结果的输出文件名
其它选项：
-b 使用域进行分类时，忽略第一个空格
-n 指定分类是域上的数字分类
-t 域分隔符;用非空格或tab键分割域
-r 对分类次序或比较求逆
+n n为域号 使用此域号开始分类
eg:
sort -c video.txt  判断文件是否已经分类
sort -t: video.txt 以:为分隔符  按照第一个域进行sort
sort -t: -r video.txt 逆向读取文件 
sort -t: +1 video.txt 对第二个域进行排序 按字符排序
sort -t +2n video.txt 对第三个域进行排序 按数字排序
sort -u video.txt 去除重复行
sort -t: -k4 video.txt 按照第四个域进行排序
sort -t: -r -k4 -k1 video.txt 先按照第四域进行降序排列，再按照第一个域进行第一个域进行排序
sort -t: -r -k4 video.txt |head -l 排序后只显示第一行
sort -t: -r -k4 video.txt |tail -l 排序后只显示最后一行
 
 sort -k4 qq.txt|tail -1 | awk &#39;{print &quot;worst :&quot;,$4}&#39; 将最终结果通过通道用awl定制输出<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:01 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053583#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:BI有感</title><link>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053581</link><dc:creator>BI</dc:creator><author>BI</author><pubDate>Thu, 24 Mar 2011 03:01:14 GMT</pubDate><guid>http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053581</guid><description><![CDATA[sed命令
无论命令是什么，sed并不与初始化文件打交道，它的操作仅仅是一个拷贝，然后所有的改动如果没有重定向到一个文件，将输出到屏幕

sed -n &#39;2p&#39; quote.txt 显示quote.txt文件中的第二行
sed -n &#39;1,5p&#39; quote.txt 显示quote.txt文件中的第二行
sed -n &#39;/neave&#39;p quote.txt  显示quote.txt文件中包含neave的行
sed -n &#39;4,/The&#39;p quote.txt  使用行号与模式混合使用的方式,即在第四行查询模式the
sed -n &#39;1,$p&#39; quote.txt 打印整个文件

要打印行号，使用等号，打印模式匹配的行号，使用格式/pattern/=
sed -e &#39;/music/=&#39; quote.txt  打印所有的行内容，并将匹配到的行号显示出来
sed -n &#39;/music/=&#39; quote.txt  只显示匹配的行号
sed -n -e &#39;/music/p&#39; -e &#39;/music/=&#39; quote.txt 将只显示匹配的行及对应的行号，
    第一个命令打印模式匹配行，第二个使用=打印行号

sed &#39;1,3d&#39; quote.txt 删除1-3行之后显示出quote.txt内容
sed &#39;s/night/NIGHT/&#39; quote.txt 将quote.txt文件中的night替换为NIGHT
sed &#39;1,2 w filedt&#39; quote.txt 文件quote.txt输出到屏幕 1，2行输出到文件filedt<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ocean/" target="_blank">BI</a> 2011-03-24 11:01 <a href="http://www.cnblogs.com/ocean/archive/2011/03/24/156739.html#2053581#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>
