﻿<?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-先学者为师</title><link>http://www.blogjava.net/kongji2008/</link><description>andy.kong的空间</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 11:00:36 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 11:00:36 GMT</pubDate><ttl>60</ttl><item><title>maven仓库管理器Nexus</title><link>http://www.blogjava.net/kongji2008/archive/2010/04/07/317634.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Wed, 07 Apr 2010 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2010/04/07/317634.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/317634.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2010/04/07/317634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/317634.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/317634.html</trackback:ping><description><![CDATA[<div id="blog_text" class="cnt">
<p>访问<a href="http://nexus.sonatype.org/downloads/">http://nexus.sonatype.org/downloads/</a>下载Nexus。<br />
启动Nexus，就是启动一个web服务器，它的默认地址是localhost:8081。Nexus在一个名为Jetty的servlet容器中运行，
它使用一个名为Tanuki Java Service
Wrapper的本地服务包裹器启动。这个服务包裹器可以被配置成以Windows服务或Unix守护线程的形式运行Nexus。要启动Nexus，你需
要为你的平台找到合适的启动脚本。要查看可用平台的列表，查看${NEXUS_HOME}/bin/jsw目录的内容。可执行文件在%nexus安装目
录%"nexus-webapp-1.0.0"binjsw"windows-x86-32
下：InstallNexus.bat/UninstallNexus.bat是安装/卸载nexus为windows
service。Nexus.bat是直接在命令行中启动Nexus，如果不想安装Nexus为windows
service，可以用这个文件来手工控制Nexus的启动退出。</p>
<p>1.配置nexus <br />
首先登录，默认地址<a href="http://localhost:8081/nexus/">http://localhost:8081/nexus/</a>，默认用户名密码为admin/admin123. <br />
nexus默认是关闭远程索引下载功能的。开启的方式： <br />
点击Administration菜单下面的Repositories，将这三个仓库Apache Snapshots，Codehaus Snapshots，Maven Central的 <br />
Download Remote Indexes修改为true。然后在这三个仓库上分别右键，选择Re-index，这样Nexus就会去下载远程的索引文件。</p>
<p>2.管理仓库 <br />
以管理员用户登陆然后点击左边导航菜单Administration下面的Repositories。Nexus提供了三种不同的仓库。 <br />
(1)代理仓库 <br />
一个代理仓库是对远程仓库的一个代理。默认情况下，Nexus自带了如下配置的代理仓库： <br />
Apache Snapshots <br />
这个仓库包含了来自于Apache软件基金会的快照版本。<a href="http://people.apache.org/repo/m2-snapshot-repository">http://people.apache.org/repo/m2-snapshot-repository</a> <br />
Codehaus Snapshots <br />
这个仓库包含了来自于Codehaus的快照版本。 <a href="http://snapshots.repository.codehaus.org/">http://snapshots.repository.codehaus.org/</a> <br />
Central Maven Repository <br />
这是中央Maven仓库（发布版本）。 <a href="http://repo1.maven.org/maven2/">http://repo1.maven.org/maven2/</a> <br />
(2)宿主仓库 <br />
一个宿主仓库是由Nexus托管的仓库。Maven自带了如下配置的宿主仓库。 <br />
3rd Party <br />
这个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这种依赖的样例有：你组织使用的，商业的，私有的类库如Oracle JDBC驱动。 <br />
Releases <br />
这个宿主仓库是你组织公布内部发布版本的地方。 <br />
Snapshots <br />
这个宿主仓库是你组织发布内部快照版本的地方。 <br />
(3)虚拟仓库 <br />
一个虚拟仓库作为Maven 1的适配器存在。Nexus自带了一个central-m1虚拟仓库</p>
<p>3. 管理组 <br />
组是Nexus一个强大的特性，它允许你在一个单独的URL中组合多个仓库。Nexus自带了两个组：public和public-snapshots。
public组中组合了三个宿主仓库：3rd Party, Releases,
和Snapshots，还有中央Maven仓库。而public-snapshots组中组合了Apache Snapshots和Codehaus
Snapshots仓库。</p>
<p>4. 配置maven <br />
要让maven使用Nexus作为仓库，要修改~/.m2/settings.xml. <br />
Xml代码 <br />
&lt;profiles&gt; <br />
&nbsp;&nbsp;  &lt;profile&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;nexus&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;repositories&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;repository&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;nexus&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;name&gt;local private nexus&lt;/name&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;url&gt;http://localhost:8081/nexus/content/groups/public&lt;/url&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/repository&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/repositories&gt; <br />
&nbsp;&nbsp;  &lt;/profile&gt; <br />
&nbsp;&nbsp;  &lt;profile&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;nexus-snapshots&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;repositories&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;repository&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;nexus-snapshots&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;name&gt;local private nexus snapshots&lt;/name&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;url&gt;http://localhost:8081/nexus/content/groups/public-snapshots&lt;/url&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/repository&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/repositories&gt; <br />
&nbsp;&nbsp;  &lt;/profile&gt; <br />
&lt;/profiles&gt;</p>
<p>&lt;activeProfiles&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;activeProfile&gt;nexus&lt;/activeProfile&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;activeProfile&gt;nexus-snapshots&lt;/activeProfile&gt; <br />
&lt;/activeProfiles&gt;</p>
<p>5.部署构件至Nexus <br />
要部署构件至Nexus，在distributionManagement中提供仓库URL，然后运行mvn
deploy。Maven会通过一个简单的HTTP
PUT将项目POM和构件推入至你的Nexus安装。需要配置你项目POM中distributionManagement部分的repository。
<br />
Xml代码 <br />
&lt;distributionManagement&gt; <br />
&lt;repository&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;id&gt;releases&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;name&gt;Internal Releases&lt;/name&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;url&gt;http://localhost:8081/nexus/content/repositories/releases&lt;/url&gt; <br />
&lt;/repository&gt; <br />
&lt;snapshotRepository&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;id&gt;Snapshots&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;name&gt;Internal Snapshots&lt;/name&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;url&gt;http://localhost:8081/nexus/content/repositories/snapshots&lt;/url&gt; <br />
&lt;/snapshotRepository&gt; <br />
&lt;/distributionManagement&gt;</p>
<p>这样还没完，这时如果部署会报错，还要在～/.m2/settings.xml中添加如下的服务器登录信息： <br />
Xml代码<br />
&lt;servers&gt;<br />
&lt;server&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;id&gt;releases&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;username&gt;admin&lt;/username&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;password&gt;admin123&lt;/password&gt; <br />
&lt;/server&gt; <br />
&lt;server&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;id&gt;Snapshots&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;username&gt;admin&lt;/username&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;password&gt;admin123&lt;/password&gt; <br />
&lt;/server&gt; <br />
&lt;/servers&gt;</p>
<p>部署第三方构件： <br />
构件可能是私有数据库的JDBC驱动如Oracle，或者你依赖于另一个JAR，它既不开源也无法免费获得。在这样的情况下，你就需要手动拿来这些构件然后发布到你自己的仓库中。Nexus提供宿主的"third-party"仓库，就是为了这个目的。<br />
使用以下命令发布该文件至Nexus： <br />
Java代码 <br />
mvn
deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14
-Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar
-Durl=http://localhost:8081/nexus/content/repositories/thirdparty
-DrepositoryId=thirdparty</p>
<p>6.Nexus监听端口 <br />
默认情况下，Nexus监听端口8081。你可以更改这个端口，通过更改${NEXUS_HOME}/conf/plexus.properties的值，为此，停止Nexus，更改文件中applicationPort的值，然后重启Nexus。<br />
<br />
7.Maven Profiles <br />
Maven中的profile是一组可选的配置，可以用来设置或者覆盖配置默认值。有了profile，你就可以为不同的环境定制构建。profile可
以在pom.xml中配置，并给定一个id。然后你就可以在运行Maven的时候使用的命令行标记告诉Maven运行特定profile中的目标。以下
pom.xml使用production profile覆盖了默认的Compiler插件设置。 <br />
Xml代码 <br />
&lt;profiles&gt; <br />
&nbsp;&nbsp;  &lt;profile&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;production&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;build&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;plugins&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;plugin&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;configuration&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;debug&gt;false&lt;/debug&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;optimize&gt;true&lt;/optimize&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/configuration&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/plugin&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/plugins&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/build&gt; <br />
&nbsp;&nbsp;  &lt;/profile&gt; <br />
&lt;/profiles&gt; <br />
要使用production profile来运行mvn install，你需要在命令行传入-Pproduction参数。要验证production profile覆盖了默认的Compiler插件配置，可以像这样以开启调试输出(-X) 的方式运行Maven。</p>
<p>如果你开始大量使用Maven
profile，你会希望将profile从POM中分离，使用一个单独的文件如profiles.xml。你可以混合使用定义在pom.xml中和外部
profiles.xml文件中的profile。只需要将profiles元素放到${basedir}目录下的profiles.xml文件中，然后
照常运行Maven就可以。profiles.xml文件的大概内容如下： <br />
Xml代码 <br />
&lt;profiles&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;profile&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;development&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;build&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;plugins&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;plugin&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;configuration&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;debug&gt;true&lt;/debug&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;optimize&gt;false&lt;/optimize&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/configuration&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/plugin&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/plugins&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/build&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;/profile&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;profile&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;id&gt;production&lt;/id&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;build&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;plugins&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;plugin&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;configuration&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;debug&gt;false&lt;/debug&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;optimize&gt;true&lt;/optimize&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/configuration&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/plugin&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/plugins&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;/build&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;/profile&gt; <br />
&lt;/profiles&gt;</p>
<p>settings profile可以应用到所有你使用Maven构建的项目。你可以在两个地方定义settings
profile：定义在~/.m2/settings.xml中的用户特定settings
profile，或者定义在${M2_HOME}/conf/settings.xml中的全局settings profile。</p>
</div>
<img src ="http://www.blogjava.net/kongji2008/aggbug/317634.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2010-04-07 13:57 <a href="http://www.blogjava.net/kongji2008/archive/2010/04/07/317634.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql tips</title><link>http://www.blogjava.net/kongji2008/archive/2010/02/08/312342.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Mon, 08 Feb 2010 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2010/02/08/312342.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/312342.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2010/02/08/312342.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/312342.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/312342.html</trackback:ping><description><![CDATA[<pre><br />
----首先在命令行下进入到mysql的bin目录，运行mysql -u root -p，然后输入密码<br />
----如果密码为空可以省略-p，另外这里还可以直接跟上数据库的名称，这样就不需要进入后再use 数据库名了。<br />
----如果忘记密码可以在google里搜索 mysql 命令 清空密码，资料一堆。<br />
---- http://dev.mysql.com/doc/refman/5.1/zh/index.html<br />
"mysql"bin&gt;mysql -u root -p<br />
Enter password:<br />
Welcome to the MySQL monitor.  Commands end with ; or "g.<br />
Your MySQL connection id is 64<br />
Server version: 5.0.51a Source distribution<br />
<br />
Type 'help;' or '"h' for help. Type '"c' to clear the buffer.<br />
----创建数据库<br />
mysql&gt; create database simplejee default character set gbk;<br />
Query OK, 1 row affected (0.06 sec)<br />
----切换到数据库<br />
mysql&gt; use simplejee;<br />
Database changed<br />
----将某个sql文件里的sql执行<br />
mysql&gt; set names utf8;//这里的编码要和你的sql文件的编码相一致。<br />
//要使得对有外键关系的表重新载入转储文件变得更容易，mysqldump自动在转储输出中包括一个语句设置FOREIGN_KEY_CHECKS为0。<br />
//这避免在转储被重新装载之时，与不得不被以特别顺序重新装载的表相关的问题。也可以手动设置这个变量：<br />
mysql&gt; SET FOREIGN_KEY_CHECKS = 0;<br />
mysql&gt; source c:/simplejee.sql;<br />
Query OK, 0 rows affected (0.00 sec)<br />
mysql&gt; SET FOREIGN_KEY_CHECKS = 1;<br />
----删除数据库<br />
mysql&gt; drop database simplejee;<br />
Query OK, 133 rows affected (3.95 sec)<br />
<br />
mysql&gt; create database simplejee;<br />
Query OK, 1 row affected (0.03 sec)<br />
<br />
mysql&gt; use simplejee;<br />
Database changed<br />
mysql&gt; source c:/simplejee0601_0738.sql;<br />
----从app_user表里查数据<br />
mysql&gt;select * from app_user;<br />
<br />
<br />
--导出数据 如果密码为空-p可以省略。注意导出是直接在命令行下。<br />
--如果中文乱码，可以根据情况加上诸如 --default-character-set=gbk的东东<br />
mysqldump -u root -p simplejee&gt;f:"t.sql<br />
</pre>
<img src ="http://www.blogjava.net/kongji2008/aggbug/312342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2010-02-08 16:32 <a href="http://www.blogjava.net/kongji2008/archive/2010/02/08/312342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux文件时间知识</title><link>http://www.blogjava.net/kongji2008/archive/2010/02/03/311782.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Wed, 03 Feb 2010 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2010/02/03/311782.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/311782.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2010/02/03/311782.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/311782.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/311782.html</trackback:ping><description><![CDATA[<div>在windows下，一个文件有：创建时间、修改时间、访问时间。<br />
而<font color="#0000ff">在Linux下，一个文件也有三种时间，分别是：<strong>访问时间、修改时间、状态改动时间</strong>。</font></div>
<div><br />
两者有此不同，<font color="#0000ff">在Linux下没有创建时间的概念</font>，也就是不能知道文件的
建立时间，但如果文件建立后就没有修改过，修改时间=建立时间;如果文件建立后，状态就没有改动过，那么状态改动时间=建立时间;如果文件建立后，没有被
读取过，那么访问时间=建立时间，因为不好判断文件是否被改过、读过、其状态是否变过，所以判断文件的建立时间基本上能为不可能。</div>
<div>&nbsp;</div>
<div><font color="#ff0000">如何查一个文件的三个时间呢？</font></div>
<div>先用下面的命令来建立一个文件<br />
<font color="#0000ff"># date &amp;&amp; echo "this is file be used test time of file" &gt;filetime.txt &amp;&amp; ll --full-time filetime.txt</font><br />
Tue Aug&nbsp; 4 15:13:44 HKT 2009<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 39 2009-08-04 15:13:44.000000000 +0800 filetime.txt</div>
<div>&nbsp;</div>
<div><font color="#000000"><strong><font color="#ff0000">通过stat filename.txt来查，</font>如：</strong><br />
# stat filetime.txt <br />
&nbsp; File: `filetime.txt'<br />
&nbsp; Size: 39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks: 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO Block: 4096&nbsp;&nbsp; Regular File<br />
Device: 802h/2050d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode: 17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Links: 1&nbsp;&nbsp;&nbsp; <br />
Access: (0644/-rw-r--r--)&nbsp; Uid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)&nbsp;&nbsp; Gid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)<br />
<font color="#0000ff">Access: 2009-08-04 15:13:44.000000000 +0800<br />
Modify: 2009-08-04 15:13:44.000000000 +0800<br />
Change: 2009-08-04 15:13:44.000000000 +0800</font></font></div>
<div><font color="#000000"><br />
说明：Access访问时间。Modify修改时间。Change状态改动时间。可以stat *查看这个目录所有文件的状态。</font></div>
<div><font color="#000000">ctime=change time<br />
atime=access time<br />
mtime=modifiy time</font></div>
<div><font color="#000000">&nbsp;</font></div>
<div><font color="#000000">因为这是一个新的文件（filetime.txt），没做过内容、属性的更改，也没读过这个文件，所以三者（访问时间、修改时间、状态改动时间）的时间是一致的，这时文件的修改时间与这三个时间是一样的，是没有疑问的。</font></div>
<div><font color="#000000">&nbsp;</font></div>
<div><font color="#000000"><font color="#0000ff">1、访问时间，读一次这个文件的内容，这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间。<br />
2、修改时间，修改时间是文件内容最后一次被修改时间。比如：vi后保存文件。ls -l列出的时间就是这个时间。<br />
3、状态改动时间。是该文件的i节点最后一次被修改的时间，通过chmod、chown命令修改一次文件属性，这个时间就会更新。</font></font></div>
<div><font color="#000000">&nbsp;</font></div>
<div><font color="#000000">另个除了可以通过stat来查看文件的mtime,ctime,atime等属性，也可以通过ls命令来查看，具体如下:</font></div>
<div><font color="#000000"><font color="#0000ff">ls -lc filename 列出文件的 ctime （最后更改时间）</font></font></div>
<div><font color="#000000"><font color="#0000ff">ls -lu filename 列出文件的 atime（最后存取时间）</font></font></div>
<div><font color="#0000ff">ls -l filename 列出文件的 mtime （最后修改时间）</font></div>
<div>&nbsp;</div>
<div>在linux中stat函数中，用st_atime表示文件数据最近的存取时间(last accessed
time)；用st_mtime表示文件数据最近的修改时间(last modified
time)；使用st_ctime表示文件i节点数据最近的修改时间(last i-node's status changed time)。</div>
<div>&nbsp;</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;ls(-l)<br />
&nbsp;st_atime&nbsp; 文件数据的最后存取时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;-u<br />
&nbsp;st_mtime&nbsp; 文件数据的最后修改时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 缺省<br />
&nbsp;st_ctime&nbsp; 文件数据的最后更改时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chown,chmod &nbsp;&nbsp;&nbsp; -c</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><strong>在linux系统中，系统把文件内容数据与i节点数据是分别存放的，i节点数据存放了文件权限与文件属主之类的数据。</strong></div>
<div>&nbsp;</div>
<div>另外，可以格式化输出文件的三种时间，如：</div>
<div><font color="#0000ff">find . -name file -printf "%AY-%Am-%Ad %AH:%AM:%AS"<br />
find . -name file -printf "%TY-%Tm-%Td %TH:%TM:%TS"<br />
find . -name file -printf "%CY-%Cm-%Cd %CH:%CM:%CS"</font></div>
<div>&nbsp;</div>
<div>linux的ctime代表的是文件修改时间，如果文件被修改过就很难知道文件的创建时间，在某些特殊情况下，需要查看文件的创建时间，正常情况下查看文件的ctime是无法实现的。可以使用一个变通的方法来实现保留文件创建时间，但是同时也会牺牲一些其它特性。</div>
<div>&nbsp;</div>
<div>可以在mount文件的时候使用参数-o noatime，来把系统更新atime的特性关闭。使用了noatime参数挂载后，在文件被修改后文件的atime是不会被改变的，使用stat查看到的atime就是文件的创建时间。</div>
<div>如：</div>
<div># /&nbsp;sbin/mkfs -t ext3 /dev/ram10</div>
<div># mount -t ext3 -o noatime /dev/loop0 /mnt/foo</div>
<div># mount </div>
<div>/dev/ram10 on /mnt/foo type ext3 (rw,noatime)</div>
<div># cd /mnt/foo</div>
<div># touch filetime1.txt</div>
<div># stat filetime1.txt <br />
&nbsp; File: `filetime1.txt'<br />
&nbsp; Size: 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks: 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO Block: 4096&nbsp;&nbsp; Regular File<br />
Device: 10ah/266d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode: 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Links: 1&nbsp;&nbsp;&nbsp; <br />
Access: (0644/-rw-r--r--)&nbsp; Uid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)&nbsp;&nbsp; Gid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)<br />
Access: 2009-08-04 20:51:32.000000000 +0800<br />
Modify: 2009-08-04 20:51:32.000000000 +0800<br />
Change: 2009-08-04 20:51:32.000000000 +0800</div>
<div>&nbsp;</div>
<div># echo foo.ok &gt;&gt; filetime1.txt <br />
[root@logs-bak foo]# stat filetime1.txt <br />
&nbsp; File: `filetime1.txt'<br />
&nbsp; Size: 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks: 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO Block: 4096&nbsp;&nbsp; Regular File<br />
Device: 10ah/266d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode: 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Links: 1&nbsp;&nbsp;&nbsp; <br />
Access: (0644/-rw-r--r--)&nbsp; Uid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)&nbsp;&nbsp; Gid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)<br />
Access: 2009-08-04 20:51:32.000000000 +0800<br />
Modify: 2009-08-04 20:53:27.000000000 +0800<br />
Change: 2009-08-04 20:53:27.000000000 +0800</div>
<div>&nbsp;</div>
<div># cat filetime1.txt <br />
&nbsp; foo.ok<br />
#stat filetime1.txt <br />
&nbsp; File: `filetime1.txt'<br />
&nbsp; Size: 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks: 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO Block: 4096&nbsp;&nbsp; Regular File<br />
Device: 10ah/266d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode: 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Links: 1&nbsp;&nbsp;&nbsp; <br />
Access: (0644/-rw-r--r--)&nbsp; Uid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)&nbsp;&nbsp; Gid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)<br />
Access: 2009-08-04 20:51:32.000000000 +0800<br />
Modify: 2009-08-04 20:53:27.000000000 +0800<br />
Change: 2009-08-04 20:53:27.000000000 +0800</div>
<div>&nbsp;</div>
<div># 通过以上实验可以看出文件的access time 是不变的。</div>
<div>&nbsp;</div>
<div>接着向下多测试一下.</div>
<div># vi filetime1.txt</div>
<div># stat filetime1.txt <br />
&nbsp; File: `filetime1.txt'<br />
&nbsp; Size: 23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks: 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO Block: 4096&nbsp;&nbsp; Regular File<br />
Device: 10ah/266d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode: 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Links: 1&nbsp;&nbsp;&nbsp; <br />
Access: (0644/-rw-r--r--)&nbsp; Uid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)&nbsp;&nbsp; Gid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)<br />
Access: 2009-08-04 20:55:05.000000000 +0800<br />
Modify: 2009-08-04 20:55:05.000000000 +0800<br />
Change: 2009-08-04 20:55:05.000000000 +0800</div>
<div>&nbsp;</div>
<div># chmod 777 filetime1.txt <br />
# stat filetime1.txt <br />
&nbsp; File: `filetime1.txt'<br />
&nbsp; Size: 23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks: 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO Block: 4096&nbsp;&nbsp; Regular File<br />
Device: 10ah/266d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode: 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Links: 1&nbsp;&nbsp;&nbsp; <br />
Access: (0777/-rwxrwxrwx)&nbsp; Uid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)&nbsp;&nbsp; Gid: (&nbsp;&nbsp;&nbsp; 0/&nbsp;&nbsp;&nbsp; root)<br />
Access: 2009-08-04 20:55:05.000000000 +0800<br />
Modify: 2009-08-04 20:55:05.000000000 +0800<br />
Change: 2009-08-04 20:57:36.000000000 +0800</div>
<div>可见，chmod后，Ctime的变化。<br />
</div>
<div>#########################################################</div>
<div>说到这里，大概大家也对在linux下文件的时间有所了解了吧！</div>
<div>那么以下的操作对文件的时间有什么影响呢？</div>
<div>&nbsp;</div>
<div>操作&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; atime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; mtime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;ctime</div>
<div>----------------------------------------------------------</div>
<div>mv</div>
<div>----------------------------------------------------------</div>
<div>cp</div>
<div>----------------------------------------------------------</div>
<div>touch</div>
<div>----------------------------------------------------------</div>
<div>cat/more/less</div>
<div>----------------------------------------------------------</div>
<div>ls</div>
<div>----------------------------------------------------------</div>
<div>chmod/chown</div>
<div>----------------------------------------------------------</div>
<div>ln</div>
<div>----------------------------------------------------------</div>
<div>echo</div>
<div>----------------------------------------------------------</div>
<div>vi</div>
<div>----------------------------------------------------------</div>
<div>(请大家测试完成这个表吧！！！！做完测试可以给我留言啊！）</div>
<div>##############################################################</div>
<div>&nbsp;</div>
<div>另外，从kernel2.6.29开，还默认集成了一个relatime的属性。可能是因为在文件读操作很频繁的系统</div>
中，atime更新所带来的开销很大，所以很多SA都在挂装文件系统的时候使用noatime属性来停止更新atime。但是有些程序需要根据atime进行一些判断和操作，所以Linux就推出了一个relatime特性。<br />
使
用这个特性来挂装文件系统后，只有当mtime比atime更新的时候，才会更新atime。事实上，这个时候atime和mtime已经是同一个东西
了。所以这个选项就是为了实现对atime的兼容才推出的。并不是一个新的时间属性。使用方法就是通过mount -o relatime
/dir来挂装目录。
<img src ="http://www.blogjava.net/kongji2008/aggbug/311782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2010-02-03 11:39 <a href="http://www.blogjava.net/kongji2008/archive/2010/02/03/311782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>df与du</title><link>http://www.blogjava.net/kongji2008/archive/2010/01/19/310089.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Tue, 19 Jan 2010 08:06:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2010/01/19/310089.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/310089.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2010/01/19/310089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/310089.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/310089.html</trackback:ping><description><![CDATA[df -a<br />
du -smh /home/*
<img src ="http://www.blogjava.net/kongji2008/aggbug/310089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2010-01-19 16:06 <a href="http://www.blogjava.net/kongji2008/archive/2010/01/19/310089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查重</title><link>http://www.blogjava.net/kongji2008/archive/2010/01/14/309478.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Thu, 14 Jan 2010 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2010/01/14/309478.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/309478.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2010/01/14/309478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/309478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/309478.html</trackback:ping><description><![CDATA[insert into ABC (id,Name,Value) values('1','aaa','A');<br />
insert into ABC (id,Name,Value) values('2','aaa','A');<br />
insert into ABC (id,Name,Value) values('3','aaa','A');<br />
insert into ABC (id,Name,Value) values('4','aaa','A');<br />
<br />
<br />
select DISTINCT t.* from ABC t join ABC tt on t.id &lt;&gt; tt.id and t.name = tt.name;
<img src ="http://www.blogjava.net/kongji2008/aggbug/309478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2010-01-14 17:18 <a href="http://www.blogjava.net/kongji2008/archive/2010/01/14/309478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle tips</title><link>http://www.blogjava.net/kongji2008/archive/2010/01/06/308445.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Wed, 06 Jan 2010 07:06:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2010/01/06/308445.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/308445.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2010/01/06/308445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/308445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/308445.html</trackback:ping><description><![CDATA[sqlplus /nolog<br />
<br />
sqlplus initinswell/longtop@INSWELL_LOCAL @e:\test.sql<br />
<br />
exp initinswell/longtop@INSWELL_LOCAL file=e:\inswell.dmp log=e:\inswell_exp.log<br />
<br />
imp initinswell/longtop@INSWELL_LOCAL file=e:\inswell.dmp log=e:\inswell_imp.log full=y ignore=y<br />
<br />
imp initinswell/longtop@INSWELL_LOCAL file=e:\inswell.dmp full=y indexfile=e:\index.sql<br />
<br />
create tablespace INSWELLSPAC<br />
&nbsp; logging<br />
&nbsp; datafile 'F:\env\oracle\product\10.2.0\oradata\inswell\INSWELLSPAC.DBF' <br />
&nbsp; size 500m <br />
&nbsp; autoextend on <br />
&nbsp; next 100m maxsize 2048m<br />
&nbsp; extent management local;<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/kongji2008/aggbug/308445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2010-01-06 15:06 <a href="http://www.blogjava.net/kongji2008/archive/2010/01/06/308445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE脚本失效解决办法[转]</title><link>http://www.blogjava.net/kongji2008/archive/2009/09/07/294137.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Mon, 07 Sep 2009 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2009/09/07/294137.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/294137.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2009/09/07/294137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/294137.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/294137.html</trackback:ping><description><![CDATA[<span  style="color: #408080; font-size: 14px; line-height: 21px; ">
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">IE 浏览器的脚本失效是个源远流长的问题了，有时撞上了那也只能归结于缘分，完全没得解释。这次本人就是中大彩的缘分，被小小地撞了一下腰。</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">当然脚本失效也有轻重，有时是页面全部烂晒，图片文字全部显示错位，惨不忍睹，其实坏的这么彻底反倒容易发现问题，也容易解决。最怕就是那种大问题没有小问题不断的情况，像我，基本的脚本效果都支持，就是用到调用 window.opener 的函数方法时报错：<strong style="line-height: 1.5em !important; ">类不能支持 Automation 操作</strong>。这么具体的出错信息在 Baidu/Google 也找不到什么有用信息，可谓万念俱灰。</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">严格来说已经很难说是 IE 的错，但按照经验通常你对 IE 进行折腾，例如 IE6 升到 IE7/IE8，或重装，不同程度的第三方软件的修复，一般都不能解决问题。如果一定需要一个理由，应该是在某年某日中了某个木马升级了某个补丁或者卸载某个软件，而导致某个组件某个动态扩展被反注册掉而无法支持某种效果&#8230;&#8230;</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">说到这里，要说说&nbsp;<strong style="line-height: 1.5em !important; ">regsvr32</strong>&nbsp;命令，是一个注册 DLL 动态扩展库的命令行工具。方法：在&#8220;运行&#8221;里面输入<span class="Code" style="line-height: 1.5em !important; ">regsvr32 dllname</span>，回车即可。使用上有几个参数：</p>
<p class="Code" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">/u——反注册控件<br style="line-height: 1.5em !important; " />
/s——不管注册成功与否，均不显示提示框<br style="line-height: 1.5em !important; " />
/c——控制台输出<br style="line-height: 1.5em !important; " />
/i——跳过控件的选项进行安装(与注册不同)<br style="line-height: 1.5em !important; " />
/n——不注册控件，此选项必须与/i选项一起使用</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">从网上摘录了几个解决 IE Javascript 脚本失效的办法，逐步执行，前面不行了才执行后面的，机器无须重启的。</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">最简单的级别，注册两个脚本库（如上文页面完全烂晒的情况）：</p>
<p class="Code" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">regsvr32 jscript.dll<br style="line-height: 1.5em !important; " />
regsvr32 vbscript.dll</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">如果还不行，再注册多几个（包括连接无法打开新窗口等）：</p>
<p class="Code" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">regsvr32 Shdocvw.dll<br style="line-height: 1.5em !important; " />
regsvr32 Oleaut32.dll<br style="line-height: 1.5em !important; " />
regsvr32 Actxprxy.dll<br style="line-height: 1.5em !important; " />
regsvr32 Mshtml.dll<br style="line-height: 1.5em !important; " />
regsvr32 Urlmon.dll<br style="line-height: 1.5em !important; " />
regsvr32 browseui.dll</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">如果还不行，把以下代码复制到 CMD 命令行里面粘贴执行：</p>
<p class="Code" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 21px; ">rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\System32\dacui.dll<br style="line-height: 1.5em !important; " />
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\Catroot\icatalog.mdb<br style="line-height: 1.5em !important; " />
regsvr32 /s comcat.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s asctrls.ocx<br style="line-height: 1.5em !important; " />
regsvr32 /s oleaut32.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s shdocvw.dll /i<br style="line-height: 1.5em !important; " />
regsvr32 /s shdocvw.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s browseui.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s browseui.dll /i<br style="line-height: 1.5em !important; " />
regsvr32 /s msrating.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s mlang.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s hlink.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s mshtml.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s mshtmled.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s urlmon.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s plugin.ocx<br style="line-height: 1.5em !important; " />
regsvr32 /s sendmail.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s mshtml.dll /i<br style="line-height: 1.5em !important; " />
regsvr32 /s scrobj.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s corpol.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s jscript.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s msxml.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s imgutil.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s cryptext.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s inseng.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s iesetup.dll /i<br style="line-height: 1.5em !important; " />
regsvr32 /s cryptdlg.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s actxprxy.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s dispex.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s occache.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s iepeers.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s urlmon.dll /i<br style="line-height: 1.5em !important; " />
regsvr32 /s cdfview.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s webcheck.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s mobsync.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s pngfilt.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s licmgr10.dll<br style="line-height: 1.5em !important; " />
regsvr32 /s hhctrl.ocx<br style="line-height: 1.5em !important; " />
regsvr32 /s inetcfg.dll</p>
</span>
<img src ="http://www.blogjava.net/kongji2008/aggbug/294137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2009-09-07 10:32 <a href="http://www.blogjava.net/kongji2008/archive/2009/09/07/294137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iso8583 备注</title><link>http://www.blogjava.net/kongji2008/archive/2009/08/31/293354.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Mon, 31 Aug 2009 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2009/08/31/293354.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/293354.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2009/08/31/293354.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/293354.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/293354.html</trackback:ping><description><![CDATA[<p>预授权 - 请求</p>
<p>6000090000 - TPDU<br />
0100 - 版本号<br />
0100 - 消息类型<br />
703C058000C08019 - 位图（可以使用posdebug进行位图分析）<br />
164380880000000007 - 卡号LLVAR 16位<br />
030000 - 处理码<br />
000000010000 - 交易金额<br />
000012 - 凭证号,POS流水号<br />
174142 - 交易时间<br />
0831 - 交易日期<br />
1111 - 卡有效期<br />
0012 - pos输入方式，n3，bcd奇数补偶<br />
0009 - NII<br />
14 - serviceCondition<br />
3333333331303031 - terminalId<br />
333333333130303435313130303031 - merchantId<br />
0156 - 币种<br />
0002 - 60域变长长度<br />
3030 - 60域数据<br />
0015 - 61域变长长度<br />
30303030303130303130303030303 - 61域数据<br />
5D9C94F9D7E0BBAB9 - MAC</p>
<p>预授权完成 - 请求</p>
<p>6000090000<br />
0100<br />
0200 - 消息类型<br />
703C058004C08019<br />
164380880000000007<br />
000000<br />
0000000100<br />
00000013<br />
181447<br />
0831<br />
1212<br />
0012<br />
0009<br />
14<br />
373133363634 - 授权码<br />
3333333331303031<br />
333333333130303435313130303031<br />
0156<br />
0002<br />
3030<br />
0015<br />
303030303031303031303030303036<br />
8DDF47CBC0416167</p>
<p>预授权完成撤销 - 请求</p>
<p>6000090000<br />
0100<br />
0100<br />
703C058004C0800D<br />
164380880000000007<br />
200000<br />
000000020000<br />
000026 - 凭证号，POS流水号<br />
171623<br />
0901<br />
1111 - 卡效期<br />
0012<br />
0009<br />
14<br />
343934303933 - 授权码<br />
3333333331303031<br />
333333333130303435313130303031<br />
0156<br />
0015 - 61域15变长<br />
303030303032303031303030303039 - 批次号：000001 operId：001 终端票据号：000009<br />
0020 - 62域20变长 原始交易信息<br />
30313030 - 原交易类型<br />
303030303235 - 原终端流水号<br />
30393031313731353237 - 原终端交易时间<br />
87DD8F32DAF48694 - 64域MAC</p>
<img src ="http://www.blogjava.net/kongji2008/aggbug/293354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2009-08-31 18:14 <a href="http://www.blogjava.net/kongji2008/archive/2009/08/31/293354.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux系统常用命令整理 </title><link>http://www.blogjava.net/kongji2008/archive/2009/08/13/290964.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Thu, 13 Aug 2009 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2009/08/13/290964.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/290964.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2009/08/13/290964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/290964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/290964.html</trackback:ping><description><![CDATA[<p><strong>一、</strong> <strong>文件操作</strong></p>
<p><strong>1)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>mkdir</strong>*：*建立目录。</p>
<p><strong>2)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>du</strong><strong>：</strong>-sh 查看当前文件夹大小</p>
<p><strong>3)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>head</strong>*：*文件查看，如：head -5 文件名，可以查看文件前5行。</p>
<p><strong>4)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>tail</strong>*：*文件查看，如：tail -5 文件名，可以查看后5行，使用-f参数可以动态查看文件变化。</p>
<p><strong>5)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>rm</strong>*：*删除文件或目录，rm会强制删除文件，如果想在删除时提示确认，可以使用-i参数，如果要删除目录，可以使用-r参数，使用-r参数每删一个目录或文件都会给出提示，响应每个提示是不现实的，这时可以使用-rf参数强制删除目录，这样即使用了-i参数也是无效的。</p>
<p><strong>6)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>mv</strong>*：*用于移动文件和更名文件，如mv ye.txt /home是将当前目录下的ye.txt移动到/home目录下；mv ye.txt ye1.txt是将ye.txt文件改名为ye1.txt，mv也可以一次移动多个文件，类似于cp使令。</p>
<p><strong>7)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>cp</strong>*：*用于复制文件或目录，cp可以一次复制多个文件，如cp *.txt *.bak *.doc /home，将当前目录中扩展名为txt、doc、bak的文件全部复制到/home目录中，如果要复制整个目录及其所有子目录可以使用cp -R命令。</p>
<p><strong>8)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>find</strong>*：*这个命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用户)、文件长度或文件类型进行搜索。基本格式如下：find [path] [expression]，例find /opt -name &nbsp;java。</p>
<p><strong>9)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>ls</strong>*：*用于显示当前目录的内容，-sh查看目录中文件的大小，如果想取得详细信息可以用ls -l命令，如果一屏显示不了，可以用ls -l |more分屏显示。</p>
<p><strong>10)</strong><strong>&nbsp;&nbsp;&nbsp;</strong> <strong>ln</strong>*：*创建快捷方式。<br />
使用方式：ln [options] source dist。<br />
参数：<br />
&nbsp;&nbsp;&nbsp;&nbsp; -f：链结时先将与dist同档名的档案删除；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -d：允许系统管理者硬链结自己的目录；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -i：在删除与dist同档名的档案时先进行询问；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -n：在进行软边结时，将dist视为一般的档案；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -s：进行软链结；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -v：在连结之前显示其档名；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -b：将在连结时会被覆写或删除的档案进行备份；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -S SUFFIX：将备份的档案都加上SUFFIX的字尾；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -V METHOD：指定备份的方式；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -help：显示辅助说明；<br />
&nbsp;&nbsp;&nbsp;&nbsp; -version：显示版本<br />
说明：Linux/Unix档案系统中，有所谓的连结，我们可将其视为档案的别名，而连结又可分为两种：硬连结与软连结，硬连结的意思是一个档案可以有多个名称，而软连结的方式则是产生一个特殊的档案，该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中，而软连结却可以跨越不同的档案系统。</p>
<p><strong>11)</strong><strong>&nbsp;&nbsp;&nbsp;</strong> <strong>jar</strong>*：*打包和解包命令。</p>
<p><strong>用法</strong>：jar&nbsp;
<div class="error"><span class="error">Unknown macro: { ctxu }</span> </div>
[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
<p>&nbsp;</p>
<p><strong>选项</strong>：</p>
<p>&nbsp;&nbsp;&nbsp; -c&nbsp; 创建新的存档</p>
<p>&nbsp;&nbsp;&nbsp; -t&nbsp; 列出存档内容的列表</p>
<p>&nbsp;&nbsp;&nbsp; -x&nbsp; 展开存档中的命名的（或所有的〕文件</p>
<p>&nbsp;&nbsp;&nbsp; -u&nbsp; 更新已存在的存档</p>
<p>&nbsp;&nbsp;&nbsp; -v&nbsp; 生成详细输出到标准输出上</p>
<p>&nbsp;&nbsp;&nbsp; -f&nbsp; 指定存档文件名</p>
<p>&nbsp;&nbsp;&nbsp; -m&nbsp; 包含来自标明文件的标明信息</p>
<p>&nbsp;&nbsp;&nbsp; -0&nbsp; 只存储方式；未用ZIP压缩格式</p>
<p>&nbsp;&nbsp;&nbsp; -M&nbsp; 不产生所有项的清单（manifest〕文件</p>
<p>&nbsp;&nbsp;&nbsp; -i&nbsp; 为指定的jar文件产生索引信息</p>
<p>&nbsp;&nbsp;&nbsp; -C&nbsp; 改变到指定的目录，并且包含下列文件：</p>
<p>清单（manifest〕文件名和存档文件名都需要被指定时，按'm' 和 'f'标志指定的相同顺序。</p>
<p><strong>示例</strong><strong>1</strong>：将两个class文件存档到一个名为 'classes.jar' 的存档文件中：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar cvf classes.jar Foo.class Bar.class</p>
<p><strong>示例</strong><strong>2</strong>：用一个存在的清单（manifest）文件 'mymanifest' 将 foo/ 目录下的所有文件</p>
<p>存档到一个名为 'classes.jar' 的存档文件中：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar cvfm classes.jar mymanifest -C foo/ .</p>
<p><strong>12)</strong><strong>&nbsp;&nbsp;&nbsp;</strong> <strong>tar</strong>*：*打包和解包</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解包：tar xvf fileName.tar</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打包：tar cvf fileName.tar DirName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><strong>13)</strong><strong>&nbsp;&nbsp;&nbsp;</strong> gzip*：*解压,压缩</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解压1：gunzip FileName.gz</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 解压2：gzip -d FileName.gz&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 解压：tar zxvf FileName.tar.gz</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 压缩：gzip FileName</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 压缩：tar zcvf FileName.tar.gz DirName</p>
<p><strong>14)</strong><strong>&nbsp;&nbsp;&nbsp;</strong> <strong>more</strong>*：*查看文件内容</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 使用方式：more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 说明：会以一页一页的方式逐页阅读，按space键往下一页，按b键往上一页，按h键显示帮助。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 参数：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -num 一次显示的行数</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -d 在屏幕下方显示操作提示</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -l 取消遇见特殊字元^L（送纸字元）时会暂停的功能</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -f 计算行数时，以实际上的行数，而非自动换行过后的行数（有些单行字数太长会被扩展为两行或两行以上）</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -p 不以卷动的方式显示每一页，而是先清除屏幕后再显示内容</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -c 跟-p相似，不同的是先显示内容再清除其他旧资料</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -s 当遇到有连续两行以上的空白行，就代换为一行的空白行</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -u 不显示下引号（根据环境变数TERM指定的terminal而有所不同）</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; +/ 在每个档案显示前搜寻该字符串（pattern），然后从该字串之后开始显示</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; +num 从第num行开始显示</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileNames 欲显示内容的档案，可为复数个数</p>
<p><strong>15)</strong><strong>&nbsp;&nbsp;&nbsp;</strong> <strong>vi</strong></p>
<p><strong>光标移动</strong></p>
<p>　　h或^h 向左移一个字符</p>
<p>　　j或^j或^n 向下移一行</p>
<p>k或^p 向上移一行</p>
<p>l或空格 向右移一个字符</p>
<p>　　G 移到文件的最后一行</p>
<p>　　nG 移到文件的第n行</p>
<p>　　w 移到下一个字的开头</p>
<p>　　W 移到下一个字的开头，忽略标点符号</p>
<p>　　b 移到前一个字的开头</p>
<p>　　B 移到前一个字的开头，忽略标点符号</p>
<p>　　L 移到屏幕的最后一行</p>
<p>　　M 移到屏幕的中间一行</p>
<p>　　H 移到屏幕的第一行</p>
<p>　　e 移到下一个字的结尾</p>
<p>　　E 移到下一个字的结尾，忽略标点符号</p>
<p>　　( 移到句子的开头</p>
<p>　　) 移到句子的结尾</p>
<p>　　
<div class="error"><span class="error">Unknown macro: { 移到段落的开头 　　}</span> </div>
移到下一个段落的开头<br />
　　0或| 移到当前行的第一列
<p>&nbsp;</p>
<p>　　n| 移到当前行的第n列</p>
<p>　　^ 移到当前行的第一个非空字符</p>
<p>　　$ 移到当前行的最后一个字符</p>
<p>　　+或return 移到下一行的第一个字符</p>
<p>　　- 移到前一行的第一个非空字符</p>
<p><strong>在</strong><strong>vi</strong><strong>中添加文本</strong></p>
<p>　　a 在光标后插入文本</p>
<p>　　A 在当前行插入文本</p>
<p>　　i 在光标前插入文本</p>
<p>　　I 在当前行前插入文本</p>
<p>　　o 在当前行的下边插入新行</p>
<p>　　O 在当前行的上边插入新行</p>
<p>　　:r file 读入文件file内容，并插在当前行后</p>
<p>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :nr file 读入文件file内容，并插在第n行后</p>
<p>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; escape 回到命令模式</p>
<p>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^v char 插入时忽略char的指定意义，这是为了插入特殊字符</p>
<p><strong>在</strong><strong>vi</strong><strong>中删除文本</strong></p>
<p>　　x 删除光标处的字符，可以在x前加上需要删除的字符数目</p>
<p>　　nx 从当前光标处往后删除n个字符</p>
<p>　　X 删除光标前的字符，可以在X前加上需要删除的字符数目</p>
<p>　　nX 从当前光标处往前删除n个字符</p>
<p>　　dw 删至下一个字的开头</p>
<p>　　ndw 从当前光标处往后删除n个字</p>
<p>　　dG 删除行，直到文件结束</p>
<p>　　dd 删除整行</p>
<p>　　ndd 从当前行开始往后删除</p>
<p>　　db 删除光标前面的字</p>
<p>　　ndb 从当前行开始往前删除n字</p>
<p>　　:n,md 从第m行开始往前删除n行</p>
<p>　　d或d$ 从光标处删除到行尾</p>
<p>　　dcursor_command 删除至光标命令处，如dG将从当产胆行删除至文件的末尾</p>
<p>　　^h或backspace 插入时，删除前面的字符</p>
<p>　　^w 插入时，删除前面的字</p>
<p><strong>修改</strong><strong>vi</strong><strong>文本</strong></p>
<p>　　每个命令前面的数字表示该命令重复的次数</p>
<p>　　rchar 用char替换当前字符</p>
<p>　　R text escape 用text替换当前字符直到换下Esc键</p>
<p>　　stext escape 用text代替当前字符</p>
<p>　　S或cctext escape 用text代替整行</p>
<p>　　cwtext escape 将当前字改为text</p>
<p>　　Ctext escape 将当前行余下的改为text</p>
<p>　　cG escape 修改至文件的末尾</p>
<p>　　ccursor_cmd text escape 从当前位置处到光标命令位置处都改为text</p>
<p><strong>在</strong><strong>vi</strong><strong>中查找与替换</strong></p>
<p>　　/text 在文件中向前查找text</p>
<p>　　?text 在文件中向后查找text</p>
<p>　　n 在同一方向重复查找</p>
<p>　　N 在相反方向重复查找</p>
<p>　　ftext 在当前行向前查找text</p>
<p>　　Ftext 在当前行向后查找text</p>
<p>　　ttext 在当前行向前查找text，并将光标定位在text的第一个字符</p>
<p>　　Ttext 在当前行向后查找text，并将光标定位在text的第一个字符</p>
<p>　　:set ic 查找时忽略大小写</p>
<p>　　:set noic 查找时对大小写敏感</p>
<p>　　:s/oldtext/newtext 用newtext替换oldtext</p>
<p>　　:m,ns/oldtext/newtext 在m行通过n，用newtext替换oldtext</p>
<p>　　&amp; 重复最后的:s命令</p>
<p>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :g/text1/s/text2/text3 查找包含text1的行，用text3替换text2</p>
<p>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :g/text/command 在所有包含text的行运行command所表示的命令</p>
<p>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :v/text/command 在所有不包含text的行运行command所表示的命令</p>
<p><strong>在</strong><strong>vi</strong><strong>中复制文本</strong></p>
<p>　　yy 将当前行的内容放入临时缓冲区</p>
<p>　　nyy 将n行的内容放入临时缓冲区</p>
<p>　　p 将临时缓冲区中的文本放入光标后</p>
<p>　　P 将临时缓冲区中的文本放入光标前</p>
<p>　　"(a-z)nyy 复制n行放入名字为圆括号内的可命名缓冲区，省略n表示当前行</p>
<p>　　"(a-z)ndd 删除n行放入名字为圆括号内的可命名缓冲区，省略n表示当前行</p>
<p>　　"(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后</p>
<p>　　"(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前</p>
<p><strong>在</strong><strong>vi</strong><strong>中撤消与重复</strong></p>
<p>　　u 撤消最后一次修改</p>
<p>　　U 撤消当前行的所有修改</p>
<p>　　. 重复最后一次修改</p>
<p>　　, 以相反的方向重复前面的f、F、t或T查找命令</p>
<p>　　; 重复前面的f、F、t或T查找命令</p>
<p>　　"np 取回最后第n次的删除(缓冲区中存有一定次数的删除内容，一般为9)</p>
<p>　　n 重复前面的/或?查找命令</p>
<p>　　N 以相反方向重复前面的/或?命令</p>
<p><strong>保存文本和退出</strong><strong>vi</strong></p>
<p>　　:w 保存文件但不退出vi</p>
<p>　　:w file 将修改保存在file中但不退出vi</p>
<p>　　:wq或ZZ或:x 保存文件并退出vi</p>
<p>　　:q! 不保存文件，退出vi</p>
<p>　　:e! 放弃所有修改，从上次保存文件开始再编辑</p>
<p><strong>vi</strong><strong>中的选项</strong></p>
<p>:set all 打印所有选项</p>
<p>:set nooption 关闭option选项</p>
<p>:set nu 每行前打印行号</p>
<p>:set showmode 显示是输入模式还是替换模式</p>
<p>:set list 显示制表符(^I)和行尾符号</p>
<p>:set ts=8 为文本输入设置tab stops</p>
<p>:set window=n 设置文本窗口显示n行</p>
<p><strong>vi</strong><strong>的状态</strong></p>
<p>:.= 打印当前行的行号</p>
<p>:= 打印文件中的行数</p>
<p>^g 显示文件名、当前的行号、文件的总行数和文件位置的百分比</p>
<p>:l 使用字母"l"来显示许多的特殊字符，如制表符和换行符</p>
<p><strong>在文本中定位段落和放置标记</strong></p>
<p>{ 在第一列插入{来定义一个段落</p>
<p>[[回到段落的开头处</p>
<p>]] 向前移到下一个段落的开头处</p>
<p>m(a-z) 用一个字母来标记当前位置，如用mz表示标记z</p>
<p>'(a-z) 将光标移动到指定的标记，如用'z表示移动到z</p>
<p><strong>在</strong><strong>vi</strong><strong>中连接行</strong></p>
<p>J 将下一行连接到当前行的末尾</p>
<p>nJ 连接后面n行</p>
<p><strong>光标放置与屏幕调整</strong></p>
<p>H 将光标移动到屏幕的顶行</p>
<p>nH 将光标移动到屏幕顶行下的第n行</p>
<p>M 将光标移动到屏幕的中间</p>
<p>L 将光标移动到屏幕的底行</p>
<p>nL 将光标移动到屏幕底行上的第n行</p>
<p>^e(ctrl+e) 将屏幕上滚一行</p>
<p>^y 将屏幕下滚一行</p>
<p>^u 将屏幕上滚半页</p>
<p>^d 将屏幕下滚半页</p>
<p>^b 将屏幕上滚一页</p>
<p>^f 将屏幕下滚一页</p>
<p>^l 重绘屏幕</p>
<p>z-return 将当前行置为屏幕的顶行</p>
<p>nz-return 将当前行下的第n行置为屏幕的顶行</p>
<p>z. 将当前行置为屏幕的中央</p>
<p>nz. 将当前行上的第n行置为屏幕的中央</p>
<p>z- 将当前行置为屏幕的底行</p>
<p>nz- 将当前行上的第n行置为屏幕的底行</p>
<p><strong>vi</strong><strong>中的</strong><strong>shell</strong><strong>转义命令</strong></p>
<p>:!command 执行shell的command命令，如:!ls</p>
<p>:!! 执行前一个shell命令</p>
<p>:r!command 读取command命令的输入并插入，如:r!ls会先执行ls，然后读入内容</p>
<p>:w!command 将当前已编辑文件作为command命令的标准输入并执行command命令，如:w!grep all</p>
<p>:cd directory 将当前工作目录更改为directory所表示的目录</p>
<p>:sh 将启动一个子shell，使用^d(ctrl+d)返回vi</p>
<p>:so file 在shell程序file中读入和执行命令</p>
<p><strong>vi</strong><strong>中的宏与缩写</strong></p>
<p>(避免使用控制键和符号，不要使用字符K、V、g、q、v、*、=和功能键)</p>
<p>:map key command_seq 定义一个键来运行command_seq，如:map e ea，无论什么时候都可以e移到一个字的末尾来追加文本</p>
<p>:map 在状态行显示所有已定义的宏</p>
<p>:umap key 删除该键的宏</p>
<p>:ab string1 string2 定义一个缩写，使得当插入string1时，用string2替换string1。当要插入文本时，键入string1然后按Esc键，系统就插入了string2</p>
<p>:ab 显示所有缩写</p>
<p>:una string 取消string的缩写</p>
<p><strong>在</strong><strong>vi</strong><strong>中缩进文本</strong></p>
<p>^i(ctrl+i)或tab 插入文本时，插入移动的宽度，移动宽度是事先定义好的</p>
<p>:set ai 打开自动缩进</p>
<p>:set sw=n 将移动宽度设置为n个字符</p>
<p>n&lt;&lt; 使n行都向左移动一个宽度</p>
<p>n&gt;&gt; 使n行都向右移动一个宽度，例如3&gt;&gt;就将接下来的三行每行都向右移动一个移动宽度</p>
<p><strong>1.</strong><strong>编辑模式</strong><strong>:</strong> <strong>插入</strong><strong>/</strong><strong>替换（按</strong><strong>INSERT</strong><strong>键切换）</strong></p>
<p><strong>2.[ESC]</strong> <strong>指令模式</strong></p>
<p><strong>3.</strong><strong>输入模式 将在指令模式下输入</strong> <strong>a</strong></p>
<p><strong>新增（</strong><strong>a,A</strong><strong>）</strong></p>
<p>a:从光标所在位置后面开始新增资料，光标后的资料随新增资料向后移动。</p>
<p>A:从光标所在行最后面的地方开始新增资料。</p>
<p><strong>插入（</strong><strong>i,I</strong><strong>）</strong></p>
<p>i:从光标所在位置前面开始插入资料，光标后的资料随新增资料向后移动。</p>
<p>I:从光标所在行的第一个非空白字元前面开始插入资料。</p>
<p><strong>开始（</strong><strong>o,O</strong><strong>）</strong></p>
<p>o:在光标所在行下新增一列并进入输入模式。</p>
<p>O:在光标所在行上方新增一列并进入输入模式。</p>
<p><strong>4.</strong><strong>存盘</strong><strong>/</strong><strong>退出</strong></p>
<p>[ESC] :wq //存盘退出</p>
<p>:w! //存盘继续</p>
<p>:q //退出 （源文件未被编辑过可用）</p>
<p>:q! //强制退出</p>
<p><strong>5.</strong><strong>删除与修改</strong></p>
<p>[ESC] x //删除光标所在字符</p>
<p>dd //删除光标所在列。</p>
<p>r //修改光标所在字元，r后接着要修正的字符。</p>
<p>R //进入取替换状态。</p>
<p>s //删除光标所在字元，并进入输入模式。</p>
<p>S //删除光标所在的行，并进入输入模式。</p>
<p><strong>6.</strong><strong>恢复</strong></p>
<p>[ESC] u //可以恢复被删除的文字。</p>
<p>U //可以恢复光标所在列的所有改变。</p>
<p><br clear="all" />
</p>
<p><strong>二、</strong> <strong>系统操作</strong></p>
<p><strong>1)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>pwd</strong>*：*显示用户当前所在目录。</p>
<p><strong>2)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>ps</strong>*：*查看进程，参数aux</p>
<p><strong>3)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>kill</strong>*：*杀进程，参数-9&nbsp; PID</p>
<p><strong>4)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>uname</strong>*：*参数-r查看版本信息，-a查看版本详细信息</p>
<p><strong>5)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>df</strong><strong>：</strong>-hl 查看磁盘空间</p>
<p><strong>6)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>reboot</strong>*：*重启系统。</p>
<p><strong>7)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>halt</strong>*：*关机。</p>
<p><strong>8)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>su</strong>*：*用于不同用户间的切换，例：如果登录为user1，要切换到user2，只要用如下命令即可：su user2，然后系统提示输入user2的口令，输入正确的口令切换到user2，操作完成后用exit命令返回到user1。如果输入su不带用户名，则系统提示输入根口令，输入正确可切换到根用户。如果是根用户，使用su可以成为系统上任何用户而不需要口令。</p>
<p><strong>9)</strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong> <strong>source</strong>*：*source命令也称点命令，也就是一个点符号(.)，通常用于重新执行刚修改的初始化文件，使之立即生效，而不必重新启动。<br />
用法：source filename或 . filename</p>
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
         <rdf:Description rdf:about="http://192.168.6.26:8090/pages/viewpage.action?pageId=426463" dc:identifier="http://192.168.6.26:8090/pages/viewpage.action?pageId=426463" dc:title="Linux系统常用命令整理" trackback:ping="http://192.168.6.26:8090/rpc/trackback/426463" />
</rdf:RDF>
-->
<fieldset class="hidden parameters"><legend>Labels parameters</legend><input id="editLabel" type="hidden" value="编辑" jquery1250133991386="5" /> <input id="addLabel" type="hidden" value="添加标签" jquery1250133991386="6" /> <input id="domainName" type="hidden" value="http://192.168.6.26:8090" jquery1250133991386="7" /> <input id="pageId" type="hidden" value="426463" jquery1250133991386="8" /> <input id="spaceKey" type="hidden" value="NBIZPRODUCT" jquery1250133991386="9" /> </fieldset>
<img src ="http://www.blogjava.net/kongji2008/aggbug/290964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2009-08-13 11:28 <a href="http://www.blogjava.net/kongji2008/archive/2009/08/13/290964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>kill所有java进程</title><link>http://www.blogjava.net/kongji2008/archive/2009/08/12/290775.html</link><dc:creator>andy.kong</dc:creator><author>andy.kong</author><pubDate>Wed, 12 Aug 2009 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/kongji2008/archive/2009/08/12/290775.html</guid><wfw:comment>http://www.blogjava.net/kongji2008/comments/290775.html</wfw:comment><comments>http://www.blogjava.net/kongji2008/archive/2009/08/12/290775.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kongji2008/comments/commentRss/290775.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kongji2008/services/trackbacks/290775.html</trackback:ping><description><![CDATA[ps -ef | grep java | grep -v grep |awk '{print $2}' | xargs -p kill -9 <br />
<br />
如果不需要询问，把xargs后面 -p 参数去掉
<img src ="http://www.blogjava.net/kongji2008/aggbug/290775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kongji2008/" target="_blank">andy.kong</a> 2009-08-12 11:19 <a href="http://www.blogjava.net/kongji2008/archive/2009/08/12/290775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>