﻿<?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>BlogJava-jasmine214--love-随笔分类-Shell</title><link>http://www.blogjava.net/jasmine214--love/category/47749.html</link><description>只有当你的内心总是充满快乐、美好的愿望和宁静时，你才能拥有强壮的体魄和明朗、快乐或者宁静的面容。</description><language>zh-cn</language><lastBuildDate>Fri, 27 Dec 2013 15:57:00 GMT</lastBuildDate><pubDate>Fri, 27 Dec 2013 15:57:00 GMT</pubDate><ttl>60</ttl><item><title>shell date 相关使用</title><link>http://www.blogjava.net/jasmine214--love/archive/2013/12/27/408109.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Fri, 27 Dec 2013 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2013/12/27/408109.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/408109.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2013/12/27/408109.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/408109.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/408109.html</trackback:ping><description><![CDATA[<div><div>#格式化输出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt; date +"%Y-%m-%d"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2009-12-07&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#输出昨天日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt; date -d "1 day ago" +"%Y-%m-%d"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2012-11-19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#2秒后输出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt; date -d "2 second" +"%Y-%m-%d %H:%M.%S"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2012-11-20 14:21.31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#传说中的 1234567890 秒&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt; date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2009-02-13 23:02:30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#普通转格式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt; date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2009/12/12 00:00.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#apache格式转换&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt; date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2009-12-05 00:00.37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#格式转换后时间游走&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />$&gt;date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />2007-12-05 00:00.37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#加减操作&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示前天年月日&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -d "+1 day" +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示前一天的日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -d "-1 day" +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示后一天的日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -d "-1 month" +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp; //显示上一月的日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -d "+1 month" +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp; //显示下一月的日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -d "-1 year" +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示前一年的日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -d "+1 year" +%Y%m%d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示下一年的日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#设定时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置当前时间，只有root权限才能设置，其他只能查看&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s 20120523&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置成20120523，这样会把具体时间设置成空00:00:00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s 01:01:01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置具体时间，不会对日期做更改&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s "01:01:01 2012-05-23"&nbsp; //这样可以设置全部时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s "01:01:01 20120523"&nbsp;&nbsp;&nbsp; //这样可以设置全部时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s "2012-05-23 01:01:01"&nbsp; //这样可以设置全部时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />date -s "20120523 01:01:01"&nbsp;&nbsp;&nbsp; //这样可以设置全部时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />有时需要检查一组命令花费的时间，举例：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />#!/bin/bash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />start=$(date +%s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />nmap www.1987.name &amp;&gt; /dev/null&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />end=$(date +%s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />difference=$(( end - start ))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />echo $difference seconds.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/408109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2013-12-27 14:13 <a href="http://www.blogjava.net/jasmine214--love/archive/2013/12/27/408109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> ubuntu 重设crontab -e的默认编辑器</title><link>http://www.blogjava.net/jasmine214--love/archive/2013/12/14/407579.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sat, 14 Dec 2013 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2013/12/14/407579.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/407579.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2013/12/14/407579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/407579.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/407579.html</trackback:ping><description><![CDATA[<div><p><a title="ubuntu" href="http://www.pooy.net/tag/ubuntu" target="_blank">Ubuntu </a>System Admin 在一线上服务器上设置计划任务， 不小心选择了nano， 由于以前接触的是redhat系列的， 不习惯用nano， 于是想重设下， 网上查了下， 貌似没有。。</p> <p>无奈之下，重装一台服务器测试， 发现当你第一次crontab -e选择编辑器的时候就会提醒你： 以后若要该改变选择， 输入select-editor 唉，还是不够细心啊。。 sudo select-editor 选择vim 搞定。。</p> <div><div id="highlighter_366126" notranslate=""  bash"=""><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0=""  alt2"="">1</div><div number2="" index1=""  alt1"="">2</div><div number3="" index2=""  alt2"="">3</div><div number4="" index3=""  alt1"="">4</div><div number5="" index4=""  alt2"="">5</div><div number6="" index5=""  alt1"="">6</div></td><td><div><div number1="" index0=""  alt2"=""><code plain"="">root@ubuntu:</code><code plain"="">/var/www</code><code comments"=""># select-editor</code></div><div number2="" index1=""  alt1"=""><code spaces"="">&nbsp;</code><code plain"="">Select an editor. To change later, run </code><code string"="">'select-editor'</code><code plain"="">.</code></div><div number3="" index2=""  alt2"=""><code spaces"="">&nbsp;</code><code plain"="">1. </code><code plain"="">/bin/ed</code></div><div number4="" index3=""  alt1"=""><code spaces"="">&nbsp;</code><code plain"="">2. </code><code plain"="">/bin/nano</code> <code plain"="">&lt;---- easiest</code></div><div number5="" index4=""  alt2"=""><code spaces"="">&nbsp;</code><code plain"="">3. </code><code plain"="">/usr/bin/vim</code><code plain"="">.basic</code></div><div number6="" index5=""  alt1"=""><code spaces"="">&nbsp;</code><code plain"="">4. </code><code plain"="">/usr/bin/vim</code><code plain"="">.tiny</code></div></div></td></tr></tbody></table></div></div>   <p>选择的数字是&#8220;3&#8221;， /usr/bin/vim.basic。</p></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/407579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2013-12-14 15:01 <a href="http://www.blogjava.net/jasmine214--love/archive/2013/12/14/407579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell里的IFS内置环境变量</title><link>http://www.blogjava.net/jasmine214--love/archive/2013/03/12/396338.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Tue, 12 Mar 2013 10:19:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2013/03/12/396338.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/396338.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2013/03/12/396338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/396338.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/396338.html</trackback:ping><description><![CDATA[<div>IFS 的全称是 Interal Field Separator  ，即&#8220;内部区域分隔符&#8221;，它也是一个内置环境变量，存储着默认的文本分隔符，默认下这分隔符是空格符(space  character)，制表符(tab) 以及新行(newline) 。先看下面一个简单示例：<br /><div><div id="highlighter_214538"  bash"=""><div><a href="http://www.groad.net/bbs/#" command_help=""  help"="">?</a></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0=""  alt2"="">1</div><div number2="" index1=""  alt1"="">2</div><div number3="" index2=""  alt2"="">3</div><div number4="" index3=""  alt1"="">4</div><div number5="" index4=""  alt2"="">5</div><div number6="" index5=""  alt1"="">6</div><div number7="" index6=""  alt2"="">7</div><div number8="" index7=""  alt1"="">8</div></td><td><div><div number1="" index0=""  alt2"=""><code preprocessor=""  bold"="">#!/bin/sh</code></div><div number2="" index1=""  alt1"="">&nbsp;</div><div number3="" index2=""  alt2"=""><code plain"="">msg=</code><code string"="">"welcome to www groad net"</code></div><div number4="" index3=""  alt1"="">&nbsp;</div><div number5="" index4=""  alt2"=""><code keyword"="">for</code> <code plain"="">item </code><code keyword"="">in</code> <code plain"="">$msg</code></div><div number6="" index5=""  alt1"=""><code keyword"="">do</code></div><div number7="" index6=""  alt2"=""><code spaces"="">&nbsp;&nbsp;&nbsp;&nbsp;</code><code functions"="">echo</code> <code string"="">"Item: $item"</code></div><div number8="" index7=""  alt1"=""><code keyword"="">done</code></div></div></td></tr></tbody></table></div></div><br />运行输出：<br /><blockquote><div style="padding:15px;"># sh temp.sh <br />Item: welcome<br />Item: to<br />Item: www<br />Item: groad<br />Item: net</div></blockquote><br />上 面用一个 for 循环遍历了变量 msg 里的所有项。 msg 变量里存储的各个单词都是用空格分开的，而 for 能依次取出这些单词，正是依靠  IFS 这个变量作为分隔符。如果将 msg 变量改为 CSV (comma separaed values 逗号分隔值)格式，那么按照默认的  IFS 值就无法解析出各个单词，如：<br /><blockquote><div style="padding:15px;">sh temp.sh <br />Item: welcome,to,www,groad,net</div></blockquote><br />这样，整个字符串就当成一个 item 被获取了。<br /><br />此时如果仍然希望逐个获得各个单词，那么需要修改 IFS 变量的值，如：<br /><div><div id="highlighter_930943"  bash"=""><div><a href="http://www.groad.net/bbs/#" command_help=""  help"="">?</a></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div number1="" index0=""  alt2"="">1</div><div number2="" index1=""  alt1"="">2</div><div number3="" index2=""  alt2"="">3</div><div number4="" index3=""  alt1"="">4</div><div number5="" index4=""  alt2"="">5</div><div number6="" index5=""  alt1"="">6</div><div number7="" index6=""  alt2"="">7</div><div number8="" index7=""  alt1"="">8</div><div number9="" index8=""  alt2"="">9</div><div number10="" index9=""  alt1"="">10</div><div number11="" index10=""  alt2"="">11</div><div number12="" index11=""  alt1"="">12</div><div number13="" index12=""  alt2"="">13</div><div number14="" index13=""  alt1"="">14</div></td><td><div><div number1="" index0=""  alt2"=""><code preprocessor=""  bold"="">#!/bin/sh</code></div><div number2="" index1=""  alt1"="">&nbsp;</div><div number3="" index2=""  alt2"=""><code plain"="">data=</code><code string"="">"welcome,to,www,groad,net"</code></div><div number4="" index3=""  alt1"="">&nbsp;</div><div number5="" index4=""  alt2"=""><code plain"="">IFSBAK=$IFS&nbsp;&nbsp;&nbsp;&nbsp; </code><code comments"="">#备份原来的值</code></div><div number6="" index5=""  alt1"="">&nbsp;</div><div number7="" index6=""  alt2"=""><code plain"="">IFS=,</code></div><div number8="" index7=""  alt1"="">&nbsp;</div><div number9="" index8=""  alt2"=""><code keyword"="">for</code> <code plain"="">item </code><code keyword"="">in</code> <code plain"="">$data</code></div><div number10="" index9=""  alt1"=""><code keyword"="">do</code></div><div number11="" index10=""  alt2"=""><code spaces"="">&nbsp;&nbsp;&nbsp;&nbsp;</code><code functions"="">echo</code> <code plain"="">Item: $item</code></div><div number12="" index11=""  alt1"=""><code keyword"="">done</code></div><div number13="" index12=""  alt2"="">&nbsp;</div><div number14="" index13=""  alt1"=""><code plain"="">IFS=$IFSBAK&nbsp;&nbsp;&nbsp;&nbsp; </code><code comments"="">#还原</code></div></div></td></tr></tbody></table></div></div><br />运行输出：<br /><blockquote><div style="padding:15px;"># sh tmp.sh <br />Item: welcome<br />Item: to<br />Item: www<br />Item: groad<br />Item: net</div></blockquote></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/396338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2013-03-12 18:19 <a href="http://www.blogjava.net/jasmine214--love/archive/2013/03/12/396338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单带子目录的makefile练习</title><link>http://www.blogjava.net/jasmine214--love/archive/2012/01/10/368261.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Tue, 10 Jan 2012 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2012/01/10/368261.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/368261.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2012/01/10/368261.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/368261.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/368261.html</trackback:ping><description><![CDATA[<div>　　开始学linux。我练习写的第一个带子目录的makefile文件。<br />　　1。建立文件夹 wulong<br />　　wulong中含 三个文件夹 include   source  pro 和makefile文件。<br />　　include 中包含 hai.h头文件。<br />　　source 中包含 hello.c文件。<br />　　pro 中包含 haia.c  haib.c文件。<br />　　<br />　　makefile文件内容有两种写法：<br />　　makefile 第一种写法：<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　CC=gcc                ＃选择编译器类型为gcc<br />　　VPATH= include : pr : source   #列明文件存放目录<br />　　<br />　　hello: hello.o haia.o haib.o     <br />　　        $(CC) -o hello hello.o haia.o haib.o<br />　　hello.o:hello.c hai.h<br />　　        $(CC) -c hello.c<br />　　haia.o: haia.c hai.h<br />　　        $(CC) -c haia.c<br />　　haib.o: haib.c hai.h<br />　　        $(CC) -c haib.c<br />　　.PHONY: clean<br />　　clean:<br />　　        rm hello $(obj)<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　<br />　　<br />　　<br />　　makefile第二种写法（简化版）：<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　CC=gcc              #选择编译种类<br />　　<br />　　VPATH= include : pr : source #在include pr source 三目录下查找文件<br />　　<br />　　obj= hello.o haia.o haib.o   ＃<br />　　<br />　　hello:$(obj)                   ＃<br />　　        $(CC) -o hello $(obj)<br />　　<br />　　$(obj): hai.h<br />　　<br />　　.PHONY: clean<br />　　clean:<br />　　        rm hello $(obj)<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　<br />　　<br />　　hai.h文件内容为：<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　#include "stdio.h"<br />　　extern  void haiprinta();<br />　　extern  void haiprintb();<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　<br />　　hello.c内容为：<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　#include "../include/hai.h"<br />　　<br />　　int main(void)<br />　　{<br />　　haiprinta();<br />　　haiprintb();<br />　　return 0;<br />　　}<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　<br />　　haia.c内容为：<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊<br />　　#include "../include/hai.h"<br />　　<br />　　void haiprinta()<br />　　{<br />　　printf("hai aaaaaaaaaa\n");<br />　　}<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　<br />　　<br />　　haib.c内容为：<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　#include "../include/hai.h"<br />　　<br />　　void haiprintb()<br />　　{<br />　　printf("haib bbbbbbbbbbbbbb\n");<br />　　}<br />　　／／＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊<br />　　<br />　　2。make 调用makefile生成 可执行文件 hello<br />　　<br />　　3. 运行 hello显示打印结果：<br />　　[HAI@localhost wulong]$ ./hello <br />　　hai aaaaaaaaaa<br />　　haib bbbbbbbbbbbbbb<br />　　[HAI@localhost wulong]$ <br />　　<br />　　到此结束，恭喜！</div><br />原文：<div>http://blog.tianya.cn/blogger/post_show.asp?BlogID=2058037&amp;PostID=17326631</div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/368261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2012-01-10 21:18 <a href="http://www.blogjava.net/jasmine214--love/archive/2012/01/10/368261.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sleep命令用法</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/12/30/367595.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Fri, 30 Dec 2011 09:56:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/12/30/367595.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/367595.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/12/30/367595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/367595.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/367595.html</trackback:ping><description><![CDATA[<div>　<strong>名称 : </strong>sleep <br />               　　<br />               　　<strong>使用权限 : </strong>所有使用者 <br />               　　<br />               　　<strong>使用方式 : </strong>sleep [--help] [--version] number[smhd]                <br />               　　<br />               　　<strong>说明 :</strong> sleep 可以用来将目前动作延迟一段时间 <br />               　　<br />               　　<strong>参数说明 : </strong><br />               　　<br />               　　--help : 显示辅助讯息 <br />               　　--version : 显示版本编号 <br />               　　number : 时间长度，后面可接 s、m、h 或 d <br />               　　其中 s 为秒，m 为 分钟，h 为小时，d 为日数 <br />               　　<br />               　　<strong>例子 : </strong><br />               　　显示目前时间后延迟 1 分钟，之后再次显示时间 : <br />               　　 date;sleep 1m;date 	     </div>转：<div>http://www.bhcode.net/article/20100421/8565.html</div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/367595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-12-30 17:56 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/12/30/367595.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell 常用正则表达式</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/10/12/361040.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Wed, 12 Oct 2011 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/10/12/361040.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/361040.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/10/12/361040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/361040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/361040.html</trackback:ping><description><![CDATA[<div><br /><p>&#8220;^\d+$&#8221; //非负整数（正整数 + 0）   <br />&#8220;^[0-9]*[1-9][0-9]*$&#8221; //正整数    <br />&#8220;^((-\d+)|(0+))$&#8221; //非正整数（负整数 + 0）    <br />&#8220;^-[0-9]*[1-9][0-9]*$&#8221; //负整数    <br />&#8220;^-?\d+$&#8221; //整数    <br />&#8220;^\d+(\.\d+)?$&#8221; //非负浮点数（正浮点数 + 0）    <br />&#8220;^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$&#8221; //正浮点数    <br />&#8220;^((-\d+(\.\d+)?)|(0+(\.0+)?))$&#8221; //非正浮点数（负浮点数 + 0）    <br />&#8220;^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$&#8221; //负浮点数    <br />&#8220;^(-?\d+)(\.\d+)?$&#8221; //浮点数    <br />&#8220;^[A-Za-z]+$&#8221; //由26个英文字母组成的字符串    <br />&#8220;^[A-Z]+$&#8221; //由26个英文字母的大写组成的字符串    <br />&#8220;^[a-z]+$&#8221; //由26个英文字母的小写组成的字符串    <br />&#8220;^[A-Za-z0-9]+$&#8221; //由数字和26个英文字母组成的字符串    <br />&#8220;^\w+$&#8221; //由数字、26个英文字母或者下划线组成的字符串    <br />&#8220;^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$&#8221; //email地址    <br />&#8220;^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$&#8221; //url    <br />/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/&nbsp;&nbsp; //&nbsp; 年-月-日    <br />/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/&nbsp;&nbsp; // 月/日/年    <br />&#8220;^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$&#8221;&nbsp;&nbsp; //Emil    <br />/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/&nbsp;&nbsp;&nbsp;&nbsp; //电话号码    <br />&#8220;^(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])$&#8221;&nbsp;&nbsp; //IP地址</p> <p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]   <br />匹配双字节字符(包括汉字在内)：[^\x00-\xff]    <br />匹配空行的正则表达式：\n[\s| ]*\r    <br />匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/    <br />匹配首尾空格的正则表达式：(^\s*)|(\s*$)    <br />匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*    <br />匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$    <br />匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$    <br />匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?    <br />匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$    <br />元字符及其在正则表达式上下文中的行为：</p> <p>\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。</p> <p>^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之后的位置。</p> <p>$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之前的位置。</p> <p>* 匹配前面的子表达式零次或多次。</p> <p>+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。</p> <p>? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。</p> <p>{n} n 是一个非负整数，匹配确定的n 次。</p> <p>{n,} n 是一个非负整数，至少匹配n 次。</p> <p>{n,m} m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。</p> <p>? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。</p> <p>. 匹配除 &#8220;\n&#8221; 之外的任何单个字符。要匹配包括 &#8217;\n&#8217; 在内的任何字符，请使用象 &#8217;[.\n]&#8217; 的模式。   <br />(pattern) 匹配pattern 并获取这一匹配。</p> <p>(?:pattern) 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。</p> <p>(?=pattern) 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。</p> <p>(?!pattern) 负向预查，与(?=pattern)作用相反</p> <p>x|y 匹配 x 或 y。</p> <p>[xyz] 字符集合。</p> <p>[^xyz] 负值字符集合。</p> <p>[a-z] 字符范围，匹配指定范围内的任意字符。</p> <p>[^a-z] 负值字符范围，匹配任何不在指定范围内的任意字符。</p> <p>\b 匹配一个单词边界，也就是指单词和空格间的位置。</p> <p>\B 匹配非单词边界。</p> <p>\cx 匹配由x指明的控制字符。</p> <p>\d 匹配一个数字字符。等价于 [0-9]。</p> <p>\D 匹配一个非数字字符。等价于 [^0-9]。</p> <p>\f 匹配一个换页符。等价于 \x0c 和 \cL。</p> <p>\n 匹配一个换行符。等价于 \x0a 和 \cJ。</p> <p>\r 匹配一个回车符。等价于 \x0d 和 \cM。</p> <p>\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。</p> <p>\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。</p> <p>\t 匹配一个制表符。等价于 \x09 和 \cI。</p> <p>\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。</p> <p>\w 匹配包括下划线的任何单词字符。等价于&#8217;[A-Za-z0-9_]&#8217;。</p> <p>\W 匹配任何非单词字符。等价于 &#8217;[^A-Za-z0-9_]&#8217;。</p> <p>\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。</p> <p>\num 匹配 num，其中num是一个正整数。对所获取的匹配的引用。</p> <p>\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。</p> <p>\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm  个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若  n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。</p> <p>\nml 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。</p> <p>\un 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。</p> <p>匹配中文字符的正则表达式： [u4e00-u9fa5]</p> <p>匹配双字节字符(包括汉字在内)：[^x00-xff]</p> <p>匹配空行的正则表达式：n[s| ]*r</p> <p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;/1&gt;|&lt;(.*) /&gt;/</p> <p>匹配首尾空格的正则表达式：(^s*)|(s*$)</p> <p>匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</p> <p>匹配网址URL的正则表达式：http://([w-]+.)+[w-]+(/[w- ./?%&amp;=]*)?</p> <p>利用正则表达式限制网页表单里的文本框输入内容：</p> <p>用正则表达式限制只能输入中文：onkeyup=&#8221;value=value.replace(/[^u4E00-u9FA5]/g,&#8221;)&#8221;  onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^u4E00-u9FA5]/g,&#8221;))&#8221;</p> <p>用正则表达式限制只能输入全角字符： onkeyup=&#8221;value=value.replace(/[^uFF00-uFFFF]/g,&#8221;)&#8221;  onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^uFF00-uFFFF]/g,&#8221;))&#8221;</p> <p>用正则表达式限制只能输入数字：onkeyup=&#8221;value=value.replace(/[^d]/g,&#8221;)  &#8220;onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^d]/g,&#8221;))&#8221;</p> <p>用正则表达式限制只能输入数字和英文：onkeyup=&#8221;value=value.replace(/[W]/g,&#8221;)  &#8220;onbeforepaste=&#8221;clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^d]/g,&#8221;))&#8221;</p> <p>=========常用正则表达式</p> <p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]</p> <p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]</p> <p>匹配空行的正则表达式：\n[\s| ]*\r</p> <p>匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/</p> <p>匹配首尾空格的正则表达式：(^\s*)|(\s*$)</p> <p>匹配IP地址的正则表达式：/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //</p> <p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p> <p>匹配网址URL的正则表达式：http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?</p> <p>sql语句：^(select|drop|delete|create|update|insert).*$</p> <p>1、非负整数：^\d+$</p> <p>2、正整数：^[0-9]*[1-9][0-9]*$</p> <p>3、非正整数：^((-\d+)|(0+))$</p> <p>4、负整数：^-[0-9]*[1-9][0-9]*$</p> <p>5、整数：^-?\d+$</p> <p>6、非负浮点数：^\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、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$</p> <p>9、负浮点数：^(-((正浮点数正则式)))$</p> <p>10、英文字符串：^[A-Za-z]+$</p> <p>11、英文大写串：^[A-Z]+$</p> <p>12、英文小写串：^[a-z]+$</p> <p>13、英文字符数字串：^[A-Za-z0-9]+$</p> <p>14、英数字加下划线串：^\w+$</p> <p>15、E-mail地址：^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$</p> <p>16、URL：^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$   <br />或：^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\&#8217;:+!]*([^&amp; lt;&gt;\"\"])*$</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、双字节字符(包括汉字在内)：^\x00-\xff</p> <p>22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数）</p> <p>23、匹配HTML标记：&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;</p> <p>24、匹配空行：\n[\s| ]*\r</p> <p>25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F) *= *(&#8217;|&#8221;)?(\w|\\|\/|\.)+(&#8217;|&#8221;| *|&gt;)?</p> <p>26、提取信息中的邮件地址：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</p> <p>27、提取信息中的图片链接：(s|S)(r|R)(c|C) *= *(&#8217;|&#8221;)?(\w|\\|\/|\.)+(&#8217;|&#8221;| *|&gt;)?</p> <p>28、提取信息中的IP地址：(\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、提取信息中的中国电话号码（包括移动和固定电话）：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}</p> <p>32、提取信息中的中国邮政编码：[1-9]{1}(\d+){5}</p> <p>33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+</p> <p>34、提取信息中的任何数字 ：(-?\d*)(\.\d+)?</p> <p>35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+)</p> <p>36、电话区号：/^0\d{2,3}$/</p> <p>37、腾讯QQ号：^[1-9]*[1-9][0-9]*$</p> <p>38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$</p> <p>39、中文、英文、数字及下划线：^[\u4e00-\u9fa5_a-zA-Z0-9]+$</p></div>原文：<div>http://www.am82.com/4392/</div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/361040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-10-12 11:49 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/10/12/361040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell实例</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/08/08/356035.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Mon, 08 Aug 2011 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/08/08/356035.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/356035.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/08/08/356035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/356035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/356035.html</trackback:ping><description><![CDATA[<p><span style="font-family: 宋体;">【</span>========================shell<span style="font-family: 宋体;">数据类型与变量</span>===============<span style="font-family: 宋体;">】</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg" width="592" height="127"  alt="" />2.<img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image004.jpg" width="517" height="159"  alt="" /></p>  <p>3.<img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image006.jpg" width="421" height="46"  alt="" /></p>  <p>4.<img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image008.jpg" width="202" height="24"  alt="" /></p>  <p>5.<img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image010.jpg" width="198" height="14"  alt="" /></p>  <p><span style="font-family: 宋体;">【</span>=======================shift<span style="font-family: 宋体;">穿过所有的位置参数</span>================<span style="font-family: 宋体;">】</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image012.jpg" width="317" height="334"  alt="" /></p>  <p><span><span style="font-family: 宋体;">【========================</span></span><span><span><span style="font-family: 宋体;">循环================</span></span></span><span><span><span style="font-family: 宋体;">】</span></span></span></p>    <p><span style="font-family: 宋体;">第一种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image014.jpg" width="384" height="85"  alt="" /></p>  <p><span style="font-family: 宋体;">第二种：代码块</span> <span style="font-family: 宋体;">及</span>while <span style="font-family: 宋体;">循环</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image016.jpg" width="504" height="455"  alt="" /></p>  <p><span style="font-family: 宋体;">第三种：</span>while<span style="font-family: 宋体;">循环无需读取外界文件</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image018.jpg" width="346" height="148"  alt="" /></p>  <p><span style="font-family: 宋体;">第四种：</span>while <span style="font-family: 宋体;">与</span>case<span style="font-family: 宋体;">组合，</span>shift,continue<span style="font-family: 宋体;">使用。</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image020.jpg" width="349" height="613"  alt="" /></p>  <p><span style="font-family: 宋体;">第五种：</span>for<span style="font-family: 宋体;">循环</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image022.jpg" width="248" height="87"  alt="" /></p>  <p><span style="font-family: 宋体;">第六种：</span>for<span style="font-family: 宋体;">嵌套</span>for<span style="font-family: 宋体;">循环</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image024.jpg" width="344" height="144"  alt="" /></p>  <p><span style="font-family: 宋体;">第七种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image026.jpg" width="508" height="213"  alt="" /></p>  <p><span style="font-family: 宋体;">第八种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image028.jpg" width="267" height="111"  alt="" /></p>  <p><span style="font-family: 宋体;">第九种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image030.jpg" width="513" height="85"  alt="" /></p>  <p><span style="font-family: 宋体;">第十种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image032.jpg" width="318" height="481"  alt="" /></p>  <p><span style="font-family: 宋体;">【========================if </span><span><span style="font-family: 宋体;">条件判断 &nbsp;</span></span><span><span style="font-family: 宋体;">与 </span></span><span><span style="font-family: 宋体;">位置参数$1================</span></span><span><span style="font-family: 宋体;">】</span></span></p>    <p><span style="font-family: 宋体;">第一种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image034.jpg" width="337" height="88"  alt="" /></p>  <p><span style="font-family: 宋体;">第二种：</span>$#<span style="font-family: 宋体;">是位置参数的个数</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image036.jpg" width="322" height="82"  alt="" /></p>  <p><span style="font-family: 宋体;">第三种：有</span>elif<span style="font-family: 宋体;">的。</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image038.jpg" width="443" height="217"  alt="" /></p>  <p><span style="font-family: 宋体;">第四种：取反条件</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image040.jpg" width="385" height="51"  alt="" /></p>  <p><span style="font-family: 宋体;">第五种：测试类型的条件控制</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image042.jpg" width="352" height="124"  alt="" /></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image044.jpg" width="304" height="48"  alt="" /></p>  <p>&nbsp;</p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image046.jpg" width="673" height="898"  alt="" /><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image048.jpg" width="675" height="372"  alt="" /></p>  <p><span style="font-family: 宋体;">第六种：多种条件一起匹配的。</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image050.jpg" width="420" height="66"  alt="" /></p>  <p><span style="font-family: 宋体;">第七种：</span>case<span style="font-family: 宋体;">条件，关注变量那块</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image052.jpg" width="335" height="156"  alt="" /></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image054.jpg" width="512" height="133"  alt="" /></p>  <p><span style="font-family: 宋体;">第八种：多种条件控制嵌套处理，其实都是由实际的业务逻辑决定的。</span>if<span style="font-family: 宋体;">嵌套</span>case<span style="font-family: 宋体;">与</span>if<span style="font-family: 宋体;">都可以。同样，</span>case<span style="font-family: 宋体;">嵌套</span>if<span style="font-family: 宋体;">也可以。</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image056.jpg" width="519" height="565"  alt="" /></p>  <p><span style="font-family: 宋体;">第九种：</span>exit<span style="font-family: 宋体;">退出脚本的使用</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image058.jpg" width="308" height="33"  alt="" /></p>  <p><span style="font-family: 宋体;">第十种：</span>if <span style="font-family: 宋体;">与</span>exit<span style="font-family: 宋体;">组合</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image060.jpg" width="439" height="136"  alt="" /></p>  <p><span style="font-family: 宋体;">第十一种：</span>if <span style="font-family: 宋体;">与</span>{}<span style="font-family: 宋体;">组合。</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image062.jpg" width="309" height="77"  alt="" /></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image064.jpg" width="352" height="96"  alt="" /></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image066.jpg" width="449" height="101"  alt="" /></p>  <p><span style="font-family: 宋体;">第十二种：</span>if <span style="font-family: 宋体;">与冒号的组合</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image068.jpg" width="486" height="118"  alt="" /></p>  <p><span style="font-family: 宋体;">第十三种：</span>if <span style="font-family: 宋体;">与</span>shift <span style="font-family: 宋体;">组合</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image070.jpg" width="655" height="71"  alt="" /><span style="font-family: 宋体;">第十四种：</span>if <span style="font-family: 宋体;">与</span>exec<span style="font-family: 宋体;">组合</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image072.jpg" width="225" height="93"  alt="" /></p>  <p><span style="font-family: 宋体;">第十五种：</span>if <span style="font-family: 宋体;">中</span>diff<span style="font-family: 宋体;">的使用</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image074.jpg" width="489" height="82"  alt="" /></p>  <p><span style="font-family: 宋体;">第十六种：</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image076.jpg" width="577" height="303"  alt="" /><span style="font-family: 宋体;">第十七种：</span>cmp<span style="font-family: 宋体;">的比较</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image078.jpg" width="346" height="184"  alt="" /></p>  <p><span style="font-family: 宋体;">【=======================</span><span><span style="font-family: 宋体;">脚本映射 ================</span></span><span><span style="font-family: 宋体;">】</span></span></p>    <p><span style="font-family: 宋体;">第一种：</span>link</p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image080.jpg" width="659" height="71"  alt="" /><span style="font-family: 宋体;">【</span>=======================shell <span style="font-family: 宋体;">函数<span> ================</span></span><span style="font-family: 宋体;">】</span></p>  <p><span style="font-family: 宋体;">第一种：类似于主函数调用其余子函数，以及</span>return <span style="font-family: 宋体;">返回值</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image082.jpg" width="464" height="420"  alt="" /></p>  <p><span style="font-family: 宋体;">【</span><span>=======================unix </span><span style="font-family: 宋体;">基础命令</span><span> ================</span><span style="font-family: 宋体;">】</span></p>  <p><span style="font-family: 宋体;">第一，</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image084.jpg" width="657" height="143"  alt="" /><span style="font-family: 宋体;">第二，</span>shift<span style="font-family: 宋体;">的使用</span></p>  <p><img src="file:///C:/DOCUME%7E1/xufuli/LOCALS%7E1/Temp/msohtml1/01/clip_image086.jpg" width="325" height="68"  alt="" /></p><img src ="http://www.blogjava.net/jasmine214--love/aggbug/356035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-08-08 17:03 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/08/08/356035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Shell笔试题3</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343989.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Wed, 09 Feb 2011 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343989.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343989.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343989.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343989.html</trackback:ping><description><![CDATA[1.查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中，并统计其个数。<br />
find ./ -size +500M -type f | tee file_list | wc -l<br />
<br />
2.在目录/tmp下找到100个以abc开头的文件，然后把这些文件的第一行保存到文件new中。<br />
for filename in `find /tmp -type f -name "abc*"|head -n 100`<br />
do<br />
sed -n '1p' $filename&gt;&gt;new<br />
done<br />
<br />
3.把文件b中有的，但是文件a中没有的所有行，保存为文件c，并统计c的行数。<br />
grep  -xvf  a b | tee c | wc -l<br />
<br />
5.每隔10分钟监控一次，监控/usr下如果大于5G，发邮件给管理员<br />
#!/bin/bash<br />
while true<br />
do<br />
&nbsp;&nbsp;&nbsp;                                sleep 600<br />
&nbsp;&nbsp;&nbsp;                                n=$(du -s /usr | cut -f1)<br />
&nbsp;&nbsp;&nbsp;                                if [ $n -gt 5242880 ]<br />
&nbsp;&nbsp;&nbsp;                                then<br />
&nbsp;&nbsp;&nbsp;                                &nbsp;&nbsp;&nbsp;
mail -s "greater" filwsyl@gmail.com &lt; ~/filename #将文件filename的内容发送出去。<br />
&nbsp;&nbsp;&nbsp;                                fi<br />
done<br />
<span class="postbody">把某个目录下的文件扩展名改为bat，再以时间为文件名压缩打包存放到某个目录。<br />
#!/bin/bash<br />
for file in $(ls $1)<br />
do<br />
&nbsp;&nbsp;&nbsp;                        new_file=${file%.*}.bat<br />
&nbsp;&nbsp;&nbsp;                        mv ./$1/$file ./$1/$new_file<br />
&nbsp;&nbsp;&nbsp;                        tmp=$(date +%y)<br />
&nbsp;&nbsp;&nbsp;                        tar cvf ./$tmp.tar ./$1<br />
done<br />
<br />
9.从网上下载一个文件，保存到指定目录<br />
#!/bin/bash<br />
url=http://rs1.bn.163.com/ent/2009/05/20_canquedege.wma<br />
dir=~/下载<br />
wget -P $dir $url<br />
<br />
10.判断一个数是不是完数。打印出1-1000之间的完数。 完数就是约数的和等于自身2倍的数。(6,28,496)<br />
#!/bin/bash<br />
sub()<br />
{<br />
&nbsp;&nbsp;&nbsp;                     i=1;<br />
&nbsp;&nbsp;&nbsp;                     sum=0;<br />
&nbsp;&nbsp;&nbsp;                     while [ $i -le $num ]<br />
&nbsp;&nbsp;&nbsp;                     do<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     let "m=num%i"<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     if [ $m -eq 0 ]<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     then<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     let "sum=sum+i"<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     fi<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     let "i=i+1"<br />
&nbsp;&nbsp;&nbsp;                     done<br />
&nbsp;&nbsp;&nbsp;                     let "a=2*num"<br />
&nbsp;&nbsp;&nbsp;                     if [ $a -eq $sum ]<br />
&nbsp;&nbsp;&nbsp;                     then<br />
&nbsp;&nbsp;&nbsp;                     &nbsp;&nbsp;&nbsp;                     echo $num<br />
&nbsp;&nbsp;&nbsp;                     fi<br />
}<br />
num=1<br />
while [ $num  -le 1000 ]<br />
do<br />
&nbsp;&nbsp;&nbsp;                     sub<br />
&nbsp;&nbsp;&nbsp;                     let "num = num+1"<br />
done<br />
<br />
11.以行为单位，求文件A和文件B交集，并集，差集。<br />
并:<br />
sort -m &lt;(sort A | uniq) &lt;(sort B | uniq) | uniq<br />
交:<br />
sort -m &lt;(sort A | uniq) &lt;(sort B | uniq) | uniq -d<br />
差:<br />
sort -m &lt;(sort A | uniq) &lt;(sort B | uniq) &lt;(sort B | uniq) | uniq -u<br />
<br />
12.在某个文件夹下查找含有指定字符串的文件<br />
#!/bin/bash<br />
for file in $(ls $2)<br />
do<br />
&nbsp;&nbsp;&nbsp;               bname=$(grep -l $1 $2/$file)<br />
&nbsp;&nbsp;&nbsp;               basename $bname<br />
done<br />
调用方法：./tst 000 bash＃在文件夹bash中查找含有&#8220;000&#8221;的文件。<br />
<br />
</span><span class="postbody">19.一个文件内容全部是类似 <br />
【202.205.151.21】--【23：59：22】-&#8220;HTTP GET&#8221;-&#8220;Mozila&#8221;<br />
...<br />
写一个SHELL命令找出最多的10个IP<br />
awk -F "--"  '{print $1}' shit | sort | uniq -c | sort -r | sed -n '1,10p'<br />
<br />
20./tmp路径下有800个文件,文件名的格式是:filename_YYYYMMDD_序列号(从001到999).dat,
例如:filename_20040108_089.dat。现在想把这些文件改名,新文件名的格式是:filename_TODAY(当前日期)_序列
号(从500开始,到达999之后从001开始).dat,例如:
把filename_20040108_089.dat改为filename_20041222_589.dat,注意新文件名的序列号的顺序需要和原来
的一致,即要做排序处理。<br />
#!/usr/bin/bash<br />
DEST_FILE_PART2="_`date '+%Y%m%d'`_"<br />
EXT_NAME=".dat"<br />
SRC_FILE_LIST=`find /tmp -name "*_*_*$EXT_NAME" -print`<br />
for each in $SRC_FILE_LIST; do<br />
&nbsp;&nbsp;&nbsp;    DEST_FILE_PART1=`echo $each | awk -F"_" '{print $1}'`<br />
&nbsp;&nbsp;&nbsp;    OLD_NUM=`echo $each | awk -F"_" '{print $3}' | awk -F"." '{print $1}'`<br />
&nbsp;&nbsp;&nbsp;    DEST_FILE_PART3=`expr $OLD_NUM + 500`<br />
&nbsp;&nbsp;&nbsp;    [ $DEST_FILE_PART3 -gt 999 ] &amp;&amp; DEST_FILE_PART3=`expr $OLD_NUM - 499`<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    &amp;&amp; DEST_FILE_PART3=`printf %03d $DEST_FILE_PART3`<br />
&nbsp;&nbsp;&nbsp;    DEST_FILE=$DEST_FILE_PART1$DEST_FILE_PART2$DEST_FILE_PART3$EXT_NAME<br />
&nbsp;&nbsp;&nbsp;    echo "mv $each to $DEST_FILE"<br />
&nbsp;&nbsp;&nbsp;    mv $each $DEST_FILE<br />
done<br />
我的解法：<br />
#!/bin/bash<br />
new_file=$(date +20%y%m%d);<br />
for file in $(ls ~/bash)<br />
do<br />
&nbsp;&nbsp;&nbsp;    i=$(echo "$file" | sed 's/.*_[0-9]*_\([0-9]*\).dat/\1/')&nbsp;&nbsp;&nbsp;    #取出序列号<br />
&nbsp;&nbsp;&nbsp;    i=$(echo $i | sed 's/^0*\([0-9]*\)/\1/')&nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    #去掉序列号前面可能的 &#8216;0&#8217;，<br />
&nbsp;&nbsp;&nbsp;    let "ii=i+500"<br />
&nbsp;&nbsp;&nbsp;    if [ $ii -gt 999 ]<br />
&nbsp;&nbsp;&nbsp;    then<br />
&nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    let "ii=ii-999"<br />
&nbsp;&nbsp;&nbsp;    fi<br />
&nbsp;&nbsp;&nbsp;    ii=`printf %03d $ii`&nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;    #添上可能需要的&#8216;0&#8217;<br />
&nbsp;&nbsp;&nbsp;    update=$(echo "$file" | sed 's/\(.*\)_[0-9]*_[0-9]*.dat/\1_'$new_file'_'$ii'.dat/')<br />
&nbsp;&nbsp;&nbsp;    mv ~/bash/$file ~/bash/$update<br />
done<br />
<br />
21.要求：在一个脚本中完成这个程序<br />
1.从文件user.list中取出已给定的用户名和用户组，将这些用户和组按规则添加到系统中<br />
2.从password.list中读取已经给定的用户密码。<br />
user.list如下<br />
zhangsan adminuser,dbuser,updatauser<br />
lisi dbuser,updatauser<br />
wanger updatauser,wheel<br />
<br />
#!/bin/bash<br />
#group add<br />
for x in &#8216;awk &#8216;{print $2}&#8217; user.list | sed &#8217;s/,/\n/g&#8217; | sort | uniq -c|sed &#8217;s/[^a-zA-Z]//g&#8221;<br />
do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   groupadd $x &amp;&gt; /dev/null<br />
done<br />
#back message<br />
if (($?==0))<br />
then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   echo &#8220;Group Ok!!&#8221;<br />
else<br />
&nbsp;&nbsp;&nbsp;   exit 1<br />
fi<br />
#user add<br />
for i in &#8216;awk &#8216;{print $1}&#8217; user.list&#8217;<br />
do<br />
&nbsp;&nbsp;&nbsp;   for y in &#8216;awk &#8216;{print $2}&#8217; password.list&#8217;<br />
&nbsp;&nbsp;&nbsp;   do<br />
&nbsp;&nbsp;&nbsp;   useradd $i &amp;&gt; /dev/null<br />
&nbsp;&nbsp;&nbsp;   echo $y | passwd &#8211;stdin $i &amp;&gt; /dev/null<br />
&nbsp;&nbsp;&nbsp;   done<br />
done<br />
#back message<br />
if (($?==0))<br />
then<br />
&nbsp;&nbsp;&nbsp;   echo &#8220;User Ok!&#8221;<br />
else<br />
&nbsp;&nbsp;&nbsp;   exit 1<br />
fi<br />
#add users to groups<br />
for ((q=1;q&lt;=3;q++))<br />
do<br />
&nbsp;&nbsp;&nbsp;   usermod -G &#8216;awk &#8220;NR==$q {print $2}&#8221; user.list | awk &#8216;{print $2}&#8221;
&#8216;awk &#8220;NR==$q {print $1}&#8221; user.list | awk &#8216;{print $1}&#8221; &amp;&gt;
/dev/null<br />
done<br />
if (($?==0))<br />
then<br />
&nbsp;&nbsp;&nbsp;   echo &#8220;All Finished!&#8221;<br />
fi<br />
原文地址http://www.zhangyiqun.cn/115.html<br />
<br />
22.比较两个小数大小。<br />
awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1&gt;num2)?"0":"1"}'<br />
echo "0.14 &gt; 0.15" | bc<br />
expr 1.2 \&lt; 1.3</span><br />
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/343989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-02-09 17:45 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Shell笔试题2</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343978.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Wed, 09 Feb 2011 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343978.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343978.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343978.html</trackback:ping><description><![CDATA[<p><span style="font-size: small;"><strong>题目：</strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">1. </span><span style="font-family: 宋体;">从</span><span style="font-family: Calibri;">a.log</span><span style="font-family: 宋体;">文件中提取包含</span><span style="font-family: Calibri;">"WARNING"</span><span style="font-family: 宋体;">或</span><span style="font-family: Calibri;">"FATAL"</span><span style="font-family: 宋体;">，同时不包含</span><span style="font-family: Calibri;">"IGNOR"</span><span style="font-family: 宋体;">的行，然后提取以</span><span style="font-family: Calibri;">":"</span><span style="font-family: 宋体;">分割的第</span><span style="font-family: Calibri;">5</span><span style="font-family: 宋体;">个字段</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">2. </span><span style="font-family: 宋体;">编写一个脚本，只想简单的减法运算，要求提示输入变量</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">3. Shell</span><span style="font-family: 宋体;">脚本阅读（解释下面执行的功能），请挑出下面程序或脚本中的错误，并说明错在哪里。</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">#!/bin/bash</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">#</span><span style="font-family: 宋体;">监控</span><span style="font-family: Calibri;">cpuser</span><span style="font-family: 宋体;">的</span><span style="font-family: Calibri;">point</span><span style="font-family: 宋体;">端口是否正常</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">logname="/home/forum/log/lpointlog.wf"</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">flagfile="/home/forum/log/lognum.txt"</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">lodnum=sed -n "1,1 p"$flagfile</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">newnum=wc -l ${logname}</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">echo $newnum &gt;$flagfile</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">totalnum=expr $newnum -$oldnum</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">tail -n $totalnum $logname |grep "POINT_THREAD WARNING"</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">if [$?==0]</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">then</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">&nbsp;&nbsp; mail -s "cpuser point "</span><span style="font-family: 宋体;">端口异常</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">请处理</span><span style="font-family: Calibri;">!" </span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#64;&#97;&#97;&#46;&#99;&#111;&#109;&#37;&#51;&#99;&#47;&#100;&#101;&#118;&#47;&#110;&#117;&#108;&#108;"><span style="color: #0000ff; font-family: Calibri;">test@aa.com&lt;/dev/null</span></a> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">fi&gt;</span> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><strong>答案：</strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: x-small;">1.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: x-small;">#!/bin/bash<br />
awk -F: '{if ($0~/(WARNING|FATAL)/ &amp;&amp; $0!~/IGNOR/) {print $5}}' a.log<br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-size: x-small;">2.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-size: x-small;">#!/bin/bash<br />
read -p "input a num:" num1<br />
read -p "input another num:" num2<br />
result=`expr $num1 - $num2`<br />
#let "result=num1-num2"<br />
#let result=num1-num2<br />
echo $result<br />
~<br />
</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-size: x-small;">3.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-family: 宋体;">命令行替换用反引号，</span>if [$?==0] <span style="font-family: 宋体;">应该写做</span>if [ $?=0 ]<span style="font-family: 宋体;">，用来判断上次命令是否执行成功；</span> </span></span></p>
<span style="font-size: xx-small;"><span style="font-size: x-small;"><span style="font-family: 宋体;">倒数第二行应该是</span>&gt;/dev/null<span style="font-family: 宋体;">，最后</span>fi<span style="font-family: 宋体;">后面的</span>&gt;<span style="font-family: 宋体;">去掉。<br />
原文：http://blog.csdn.net/do2jiang/archive/2009/09/28/4604692.aspx<br />
</span></span></span>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/343978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-02-09 16:54 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Shell笔试题1</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343971.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Wed, 09 Feb 2011 08:15:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343971.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343971.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343971.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343971.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343971.html</trackback:ping><description><![CDATA[<p><span style="font-size: medium;">1．用Shell编程，判断一文件是不是块或字符设备文件，如果是将其拷贝到 /dev 目录下。</span></p>
<p>#!/bin/bash<br />
#1.sh<br />
#判断一文件是不是字符或块设备文件，如果是将其拷贝到 /dev 目录下<br />
#file  executable: chmod 755  1.sh<br />
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<br />
export  PATH<br />
echo -e &#8220;The program will Judge a file is or not a device  file.\n\n&#8221;<br />
read -p &#8220;Input a filename : &#8221; filename<br />
if [ -b "$filename" -o  -c "$filename" ]<br />
then<br />
echo &#8220;$filename is a device file&#8221; &amp;&amp;  cp $filename /dev/ &amp;<br />
else<br />
echo &#8220;$filename is not a device file&#8221;  &amp;&amp; exit  1<br />
fi<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
2.  设计一个shell程序，添加一个新组为class1，然后添加属于这个组的30个用户，用户名的形式为stdxx，其中xx从01到30。</p>
<p>#!/bin/bash<br />
#2.sh<br />
#设计一个shell程序，添加一个新组为class1，然后添加属于这个组的30个用户，用户名的形式为stdxx，其中xx从01到30。<br />
#file  executable: chmod 755  2.sh<br />
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<br />
export  PATH<br />
groupadd class1<br />
for i in {9901..9930}<br />
do<br />
xx=`echo $i |  sed &#8217;s/99//g&#8217;`<br />
useradd -g class1 std$xx<br />
echo std$xx | passwd  std$xx &#8211;stdin<br />
echo -e &#8220;user std$xx password is std$xx&#8221; &gt;&gt;  /root/newuser.txt<br />
done</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
3．编写shell程序，实现自动删除50个账号的功能。账号名为stud1至stud50。</p>
<p>#!/bin/bash<br />
#4.sh<br />
#编写shell程序，实现自动删除50个账号的功能。账号名为stud1至stud50。<br />
#file  executable: chmod 755  3.sh<br />
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<br />
export  PATH<br />
i=1<br />
while [ i -le 50 ]<br />
do<br />
let i++<br />
userdel -r  stud$i<br />
done</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
4．某系统管理员需每天做一定的重复工作，请按照下列要求，编制一个解决方案：<br />
（1）在下午4  :50删除/abc目录下的全部子目录和全部文件；<br />
（2）从早8:00～下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内；<br />
（3）每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件：backup.tar.gz；<br />
（4）在下午5:55将IDE接口的CD-ROM卸载（假设：CD-ROM的设备名为hdc）；<br />
（5）在早晨8:00前开机后启动。</p>
<p>vim  /etc/crontab 在里面增加下面内容：</p>
<p>50 16 * * * root rm -rf /abc/* 2&gt;&amp;1  &amp;<br />
00 8-18 * * * root cat /xyz/x1|awk &#8216;{print $1}&#8217; &gt;&gt;  /backup/bak01.txt 2&gt;&amp;1 &amp;<br />
50 17 * * 1 root cd /data;tar -zcvf  backup.tar.gz * 2&gt;&amp;1 &amp;<br />
55 17 * * * root umount /hdc 2&gt;&amp;1  &amp;</p>
<p>5）在早晨8:00前开机后启动 &#8211;&gt;  这个我不是很明白它的意思,不知道是不是8点前开机就启动上面的设定，8点后才开机就不用启动的意思。<br />
姑且用下面这个命令吧<br />
chkconfig  &#8211;level 2345 crond on</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
5．设计一个shell程序，在每月第一天备份并压缩/etc目录的所有内容，存放在/root/bak目录里，且文件名<br />
为如下形式yymmdd_etc，yy为年，mm为月，dd为日。Shell程序fileback存放在/usr/bin目录下。</p>
<p>vim  /usr/bin/fileback.sh</p>
<p>#!/bin/bash<br />
#fileback.sh<br />
#file executable:  chmod 755  fileback.sh<br />
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<br />
export  PATH<br />
filename=`date +%y%m%d`_etc.tar.gz<br />
cd /etc/<br />
tar -zcvf $filename  *<br />
mv $filename  /root/bak/<br />
——————————————————<br />
vim  /etc/crontab 加入<br />
* * 1 * * root ./fileback.sh  &amp;</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
6．有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下，该用户应如何做？<br />
可以用  contab -e 来做，和上面一题差不多。</p>
<p>7.设计一个Shell程序，在/userdata目录下建立50个目录，即user1～user50，并设置每个目录的权限，其<br />
中其他用户的权限为：读；文件所有者的权限为：读、写、执行；文件所有者所在组的权限为：读、执行。</p>
<p>#!/bin/bash<br />
#7.sh<br />
#file  executable: chmod 755  7.sh<br />
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<br />
export  PATH<br />
for ((i=1;i&lt;=50;i++))<br />
do<br />
mkdir -p /usrdata/user$i<br />
cd /usrdata<br />
chmod 754 user$i<br />
done</p>
<p>原文：http://www.intgoo.com/100555.html<br />
</p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/343971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-02-09 16:15 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell 文件测试 蛮全的。</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343963.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Wed, 09 Feb 2011 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343963.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343963.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343963.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343963.html</trackback:ping><description><![CDATA[<div><font color="#ff0000">文件状态测试</font></div>
<div>-b filename : 当filename 存在并且是块文件时返回真(返回0)<br />
-c filename : 当filename 存在并且是字符文件时返回真<br />
-d pathname : 当pathname 存在并且是一个目录时返回真<br />
-e pathname : 当由pathname 指定的文件或目录存在时返回真<br />
-f filename : 当filename 存在并且是正规文件时返回真<br />
-g pathname : 当由pathname 指定的文件或目录存在并且设置了SGID 位时返回真<br />
-h filename : 当filename 存在并且是符号链接文件时返回真 (或 -L filename)<br />
-k pathname : 当由pathname 指定的文件或目录存在并且设置了"粘滞"位时返回真<br />
-p filename : 当filename 存在并且是命名管道时返回真<br />
-r pathname : 当由pathname 指定的文件或目录存在并且可读时返回真<br />
-s filename : 当filename 存在并且文件大小大于0 时返回真<br />
-S filename : 当filename 存在并且是socket 时返回真<br />
-t fd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 当fd 是与终端设备相关联的文件描述符时返回真<br />
-u pathname : 当由pathname 指定的文件或目录存在并且设置了SUID 位时返回真<br />
-w pathname : 当由pathname 指定的文件或目录存在并且可写时返回真<br />
-x pathname : 当由pathname 指定的文件或目录存在并且可执行时返回真<br />
-O pathname : 当由pathname 存在并且被当前进程的有效用户id 的用户拥有时返回真(字母O 大写)<br />
-G pathname : 当由pathname 存在并且属于当前进程的有效用户id 的用户的用户组时返回真<br />
file1 -nt file2 : file1 比file2 新时返回真<br />
file1 -ot file2 : file1 比file2 旧时返回真</div>
<div><strong>举例:</strong> if [ -b /dev/hda ] ;then echo "yes" ;else echo "no";fi // 将打印 yes<br />
test -c /dev/hda ; echo $? // 将打印 1 表示test 命令的返回值为1，/dev/hda 不是字符设备<br />
[ -w /etc/passwd ]; echo $? // 查看对当前用户而言，passwd 文件是否可写</div>
<div>&nbsp;</div>
<div><font color="#ff0000">测试时逻辑操作符</font></div>
<div>-a 逻辑与，操作符两边均为真，结果为真，否则为假。<br />
-o 逻辑或，操作符两边一边为真，结果为真，否则为假。<br />
!&nbsp; 逻辑否，条件为假，结果为真。<br />
<strong>举例:</strong> [ -w result.txt -a -w score.txt ] ;echo $? // 测试两个文件是否均可写</div>
<div>&nbsp;</div>
<div><font color="#ff0000">常见字符串测试</font></div>
<div>-z string&nbsp;&nbsp;&nbsp; : 字符串string 为空串(长度为0)时返回真<br />
-n string&nbsp;&nbsp;&nbsp; : 字符串string 为非空串时返回真<br />
str1 = str2&nbsp; : 字符串str1 和字符串str2 相等时返回真<br />
str1 != str2 : 字符串str1 和字符串str2 不相等时返回真<br />
str1 &lt; str2&nbsp; : 按字典顺序排序，字符串str1 在字符串str2 之前<br />
str1 &gt; str2&nbsp; : 按字典顺序排序，字符串str1 在字符串str2 之后</div>
<div><strong>举例:</strong> name="zqf"; [ $name = "zqf" ];echo $? // 打印 0 表示变量name 的值和字符串"zqf"相等</div>
<div>&nbsp;</div>
<div><font color="#ff0000">常见数值测试</font></div>
<div>int1 -eq int2 : 如果int1 等于int2，则返回真<br />
int1 -ne int2 : 如果int1 不等于int2，则返回真<br />
int1 -lt int2 : 如果int1 小于int2，则返回真<br />
int1 -le int2 : 如果int1 小于等于int2，则返回真<br />
int1 -gt int2 : 如果int1 大于int2，则返回真<br />
int1 -ge int2 : 如果int1 大于等于int2，则返回真</div>
<div><strong>举例:</strong> x=1 ; [ $x -eq 1 ] ; echo $? // 将打印 0 表示变量x 的值等于数字1<br />
x=a ; [ $x -eq "1" ] // shell 打印错误信息 [: a: integer expression expected</div>
&nbsp;转贴自：http://blog.chinaunix.net/u/21352/showart_135230.html
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/343963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-02-09 10:22 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/02/09/343963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Shell 学习—AWK---kiki整理</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/01/27/343681.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Thu, 27 Jan 2011 08:21:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/01/27/343681.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343681.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/01/27/343681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343681.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343681.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4/* Style Definitions */table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-ro...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2011/01/27/343681.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/343681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-01-27 16:21 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/01/27/343681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>见过最好的AWK手册</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/01/25/343478.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Tue, 25 Jan 2011 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/01/25/343478.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343478.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/01/25/343478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 原文： http://linuxfire.com.cn/~lily/awk.html简体中文版由bones7456 (http://li2z.cn)整理.原文:应该是 http://phi.sinica.edu.tw/aspac/reports/94/94011/ 但是原文很乱.说明:之前也是对awk几乎一无所知,无意中看到这篇文章,网上一搜,居然没有像样的简体中文版.有的也是不怎...&nbsp;&nbsp;<a href='http://www.blogjava.net/jasmine214--love/archive/2011/01/25/343478.html'>阅读全文</a><img src ="http://www.blogjava.net/jasmine214--love/aggbug/343478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-01-25 11:18 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/01/25/343478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Shell练习</title><link>http://www.blogjava.net/jasmine214--love/archive/2011/01/22/343364.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Sat, 22 Jan 2011 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2011/01/22/343364.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/343364.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2011/01/22/343364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/343364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/343364.html</trackback:ping><description><![CDATA[1.找出test目录下小于100k和大于300k的文件<br />
# !/bin/sh<br />
ls -l /tmp/test/ |awk '{print $9}' |grep -v ^$ | while read LINE<br />
do<br />
size=`ls -l /tmp/test/$LINE |awk '{print $5}'`<br />
if [ $size -le 100 -o $size -ge 300 ];then<br />
#mv $LINE  /tmp<br />
echo $LINE<br />
fi<br />
done<br />
或：<br />
find /tmp -size -100k -o -size +300k -exec ls -l {} \;
<p>2.找出test目录下大小在40K-60K之间的文件<br />
find test -size +40k -a -size -60k -exec ls -l {} \;</p>
<p><br />
3、在目录/tmp下找到100个以abc开头的文件，然后把这些文件的第一行保存到文件new中。<br />
#！/bin/sh<br />
cd /tmp<br />
for i in `find . -type f -name "abc*"| head -n 100`<br />
do<br />
head -n1 $i&gt;&gt;new<br />
done<br />
<br />
<br />
4、把文件b中有的，但是文件a中没有的所有行，保存为文件c，并统计c的行数。<br />
# !/bin/sh<br />
for i in `cat b`<br />
do<br />
grep $i a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  #将b中的行，在a中查找<br />
if [ "$?" -gt "0" ];then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  #如果结果大于0（即为找不到）<br />
echo $i&gt;&gt;c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  #将此行输入到c中<br />
fi<br />
done<br />
统计行数wc -l即可~</p>
<p>这个不对，但是先保留着吧~<br />
排除重复的，再用cut，已1为分隔域，打印出第二域到最后一域<br />
cat b a | sort -n |uniq -c | awk '{if ($1==1) print $0}'|cut  -f2- -d "1" | wc -l<br />
另外 uniq -u就可以打印出不重复的。</p>
<p>5.实现从1加到100，得出结果：<br />
一：<br />
#!/bin/sh</p>
<p>i=1<br />
sum=0<br />
while [ $i -le 100 ]<br />
do<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  sum=`expr $sum + $i`<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  i=`expr $i + 1`<br />
done<br />
echo $sum</p>
<p>二：<br />
i=1<br />
b=0<br />
for i in {1..100}<br />
do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  b=$[$b + $i]<br />
done<br />
echo $b</p>
<p>三：<br />
# !/bin/sh<br />
s=0<br />
for((i=1;i&lt;101;i++));do<br />
s=`expr $s + $i`<br />
done<br />
echo $s</p>
<p>四：<br />
# !/bin/sh<br />
i=1<br />
num=0<br />
while [ "$i" !=  "101" ]<br />
do<br />
num=`expr $i + $num`<br />
i=`expr $i + 1`<br />
done<br />
echo $num</p>
<p><br />
6，文件内容为<br />
admin: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#97;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;">aa@test.com</a><br />
body:  <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#98;&#98;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;">bb@test.com</a><br />
admin: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#99;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;">cc@test.com</a>  <br />
把匹配admin 的行后面加上 ;aa@163.com <br />
sed  -r 's/(admin)(.*)/\1\2 ;aa@163.com/g' filename<br />
admin: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#97;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;">aa@test.com</a> ;aa@163.com<br />
body: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#98;&#98;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;">bb@test.com</a><br />
admin: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#99;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;">cc@test.com</a> ;aa@163.com</p>
<p>-r, --regexp-extended&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>use extended regular expressions in the script.<br />
-r 使sed在脚本中使用正则表达式<br />
\1\2即表示前面的(admin)(.*)</p>
<p>7，文件内容为：<br />
1  aaa  1000<br />
2  bbb  1000<br />
3  aaa  1000<br />
4  aaa  1000<br />
5  ccc  1000<br />
6  bbb  1000<br />
将其变成：<br />
1  aaa  3000<br />
2  bbb  2000<br />
5  ccc  1000<br />
脚本：<br />
# !/bin/sh<br />
for i in `awk '{print $2}' filename |sort|uniq`<br />
do<br />
grep $i filename &gt;$i.txt<br />
sum=`awk '{tot+=$3}; END{print tot}' $i.txt`<br />
three=`sed -n '1p' $i.txt |awk '{print $3}'`<br />
sed -i "s/$three/$sum/g" $i.txt<br />
head -n1 $i.txt &gt;&gt;last<br />
rm -f $i.txt<br />
done</p>
<p>8,文件内容：<br />
this<br />
is<br />
a<br />
test<br />
script<br />
将其变成：<br />
this is a test script<br />
脚本：<br />
echo `cat filename`</p>
<p>9，比较字符串大小(主要是用到了sort来比较)<br />
VAR1=abc<br />
VAR2=def<br />
tt=`echo -e "$VAR1\n$VAR2"|sort|head -1`<br />
if [ "$tt" = "$VAR1" ];then<br />
echo $VAR1 relatively large!<br />
else<br />
echo $VAR2 relatively large!<br />
fi</p>
<p>10.合并相同项<br />
[root@test1 tmp]# more file1<br />
DAD|15.0|<br />
JAB|2.0|<br />
JAH|55.0|<br />
HAH|11|<br />
[root@test1 tmp]# more file2<br />
DAD|773.0|<br />
GGC|2.0|<br />
JAB|224.0|<br />
HOH|22|<br />
将其合并成：<br />
DAD&nbsp;&nbsp;&nbsp;&nbsp;  15.0&nbsp;&nbsp;&nbsp;  773.0<br />
JAB&nbsp;&nbsp;&nbsp;&nbsp;  2.0&nbsp;&nbsp;&nbsp;&nbsp;  224.0<br />
GGC&nbsp;&nbsp;&nbsp;&nbsp;  2.0<br />
HOHO&nbsp;&nbsp;&nbsp;  22<br />
JAH&nbsp;&nbsp;&nbsp;&nbsp;  55.0<br />
脚本：（感觉写的有点笨了）<br />
# !/bin/sh<br />
cat file1 file2 |awk -F'|' '{print $1}'| sort |uniq -c &gt;tmp</p>
<p>for i in `awk '{if ($1 &gt;=2) print $2}' tmp`<br />
do<br />
echo `cat file1 file2 |grep $i` | awk -F'|' '{print $1"\t"$2"\t"$4}' &gt;&gt;last.txt<br />
done<br />
for b in `awk '{if ($1==1) print $2}' tmp`<br />
do<br />
echo `cat file1 file2 |grep $b` | sed 's/|/\t/g' &gt;&gt;last.txt<br />
done<br />
rm -f tmp<br />
简单的：<br />
join -a 1 -a 2 -t "|" file* |sort -t"|" -rk3 |awk -F'|' '{print $1"\t"$2"\t"$3$4}'</p>
<p><br />
11，字母分离<br />
将abcdefghijklmnopqrstuvwxy分离成为：<br />
abcde<br />
fghij<br />
klmno<br />
pqrst<br />
uvwxy<br />
用到sed配合正则表达式：<br />
sed 's/\(.....\)\(.....\)\(.....\)\(.....\)\(.....\)/\1\n\2\n\3\n\4\n\5/' filename</p>
<p>12.每隔5秒检测另一台服务器上的apache服务，直到其启动后，echo OK<br />
# !/bin/sh<br />
echo | telnet 192.168.2.189 80 &gt;check.txt<br />
grep -i connected check.txt<br />
while [ $? -ne 0 ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  #如果上面grep的结果不为0<br />
do<br />
echo no<br />
sleep 5<br />
echo | telnet 192.168.2.189 80 &gt;check.txt<br />
grep -i connected check.txt<br />
done<br />
echo OK!!!!!!!!!!!</p>
<p>13.在/tmp/下建0-255目录，再每个目录再建0-255个目录，然后在最下级目录下面建100个文件<br />
原来写的：<br />
for ((i=0;i&lt;255;i++));do<br />
mkdir -p $i<br />
for ((b=0;b&lt;255;b++));do<br />
mkdir $i/$b<br />
for ((c=0;c&lt;100;c++));do<br />
touch $i/$b/$c<br />
done<br />
done<br />
done<br />
接下来看一个超简单的：建5个目录，再每个目录再建5个目录，然后在最下级目录下面建5个文件<br />
mkdir -p {0..5}/{0..5} &amp;&amp; touch {0..5}/{0..5}/{0..5}</p>
<p>14.记录sed的一个用法：<br />
i=1<br />
sed s/2/$i/g  file&nbsp;&nbsp;  不需要写成 sed 's/2/$i/g' file<br />
这样的好处就是可以使用变量了</p>
<p>原文： http://hi.baidu.com/ggb98/blog/item/eabebfee930fd3ffcf1b3eee.html<br />
</p>
<img src ="http://www.blogjava.net/jasmine214--love/aggbug/343364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2011-01-22 10:35 <a href="http://www.blogjava.net/jasmine214--love/archive/2011/01/22/343364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>