﻿<?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>IT博客-玛琪朵漂浮-文章分类-缺啥补啥</title><link>http://www.cnitblog.com/nanacy1981/category/4369.html</link><description>lost and researching~~~</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 09:43:30 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 09:43:30 GMT</pubDate><ttl>60</ttl><item><title>MySQL鲜为人知的9条技巧</title><link>http://www.cnitblog.com/nanacy1981/articles/20041.html</link><dc:creator>unearthly bone</dc:creator><author>unearthly bone</author><pubDate>Mon, 04 Dec 2006 06:35:00 GMT</pubDate><guid>http://www.cnitblog.com/nanacy1981/articles/20041.html</guid><wfw:comment>http://www.cnitblog.com/nanacy1981/comments/20041.html</wfw:comment><comments>http://www.cnitblog.com/nanacy1981/articles/20041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/nanacy1981/comments/commentRss/20041.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/nanacy1981/services/trackbacks/20041.html</trackback:ping><description><![CDATA[MySQL易学易用，且附带丰富的技术文档，这二个因素使之被广泛应用。然而，随着MySQL发展之迅速，即使一个MySQL老手有时也会为该软件出其不意的功能感叹。本文将为你介绍这些不为人知的特性。
<p><strong>技巧一：以XML格式查看查询结果</strong></p><p>　　通过使用传统—xml 选项调用MySQL命令行客户程序，你可以以XML格式(而不是传统的列表形式)来查看MySQL查询结果。如果你打算将查询输出与其它程序集成在一起，这一技巧非常有用，这里是一个例子：</p><p>表A</p><p>shell&gt; mysql --xml</p><p>mysql&gt; SELECT * FROM test.stories;<br /></p><p><resultset statement="SELECT * FROM test.stories"><row><id>1</id><br /><headline>This is a test</headline><br /><tstamp>2005-07-28 00:14:57<br /><br />2<br /><headline>This is the second test</headline><br /><tstamp>2005-07-28 00:15:11</tstamp><br /></tstamp></row><br />2 rows in set (0.11 sec)</resultset></p><p><strong>技巧二：快速重建索引</strong></p><p>　　通常情况下，如果你想改变服务器的全文搜索变量，你需要在表格中重新建立全文索引，以确保你的更新得到映射。这一操作将会花费大量的时间，特别是如果你需要处理很多数据的时候。一种快速的解决方法是使用REPAIR TABLE命令，以下为演示过程：</p><p>表B</p><p>mysql&gt; REPAIR TABLE content QUICK;<br />+-----------+--------+----------+----------+<br />| Table| Op| Msg_type | Msg_text |<br />+-----------+--------+----------+----------+<br />| content| repair | status| OK|<br />+-----------+--------+----------+----------+<br />1 row in set (0.05 sec)</p><p><strong>技巧三：压缩一定的表格类型</strong></p><p>如果你处理的是只读MyISAM表格，MySQL允许你将其压缩以节省磁盘空间。对此可以使用包括myisampack，如下所示：</p><p>表C</p><p>shell&gt; myisampackmovies.MYI<br />Compressing movies.MYD: (146 records)<br />- Calculating statistics<br />- Compressing file<br />41.05%</p><p><strong>技巧四：使用传统SQL</strong></p><p>MySQL支持SQL查询中的传统用法，支持IF与CASE结构。以下是一个简单的例子：</p><p>表D</p><p>mysql&gt; SELECT IF (priv=1, 'admin', 'guest') As usertype FROM privs WHERE username = 'joe';<br />+----------+<br />| usertype |<br />+----------+<br />| admin|<br />+----------+<br />1 row in set (0.00 sec)</p><p><strong>技巧五：以CSV格式输出表格数据</strong></p><p>　　MySQL 输出文件包含一个全部SQL命令列表。如果你想将输出文件导入到MySQL，这一功能非常实用，但如果目标程序(比如Excel)不能与SQL相互通讯，这一方法将行不通。在这种情况下，可以通过告诉MySQL以CSV格式建立输出文件，这种CSV格式很方便地导入到绝大部分的程序。这里演示了 mysqldump的操作过程：</p><p>shell&gt; mysqldump -T . --fields-terminated-by=", " mydbmytable</p><p>　　这将在当前目录中生成一个文本文件，包含来自mydb.mytable列表中以逗号为间隔符的记录。</p><p><strong>技巧六：以激活strict模式减少“bad”数据的出现</strong></p><p>　　MySQL服务器能够以多种不同的模式运行，而每一种都针对于特定的目的而优化。在默认情况下，没有设置模式。然而，通过在服务器命令行中添加以下选项可以很容易地改变模式的设置并将MySQL以“strict”模式运行：</p><p>shell&gt; mysqld --sql_mode="STRICT_ALL_TABLES" &amp;</p><p>　　在“strict”模式下，通过MySQL的中止查询执行并返回一个错误，服务器的很多自动修正功能都被无效化。同样，该模式下也将会执行更为严格的时间检查。</p><p><strong>技巧七：监视服务器</strong></p><p>　　你可以通过运行SHOW STATUS命令获得一份服务器运行与统计的报告，包括打开连接的次数，激活查询次数，服务器正常运行时间等等。例如：</p><p>表 E</p><p>mysql&gt; SHOW STATUS;<br />+------------------+-------+<br />| Variable_name| Value |<br />+------------------+-------+<br />| Aborted_clients| 0|<br />| Aborted_connects | 0|<br />...<br />| Uptime| 851|<br />+------------------+-------+<br />156 rows in set (0.16 sec)</p><p><strong>技巧八：自动返回CREATE TABLE代码</strong></p><p>　　MySQL允许你自动获得SQL命令重新建立一个特定的表格。只简单地运行SHOW CREATE TABLE命令，并查看表格建立代码，如下所示：</p><p>表 F</p><p>mysql&gt; SHOW CREATE TABLE products;<br />-----------------------------------------------------<br />| Table| Create Table<br />+----------+-----------------------------------------<br />| products | CREATE TABLE `products` (<br />`id` int(8) NOT NULL auto_increment,<br />`name` varchar(255) NOT NULL default '',<br />`price` int(10) default NULL,<br />PRIMARY KEY(`id`)<br />) ENGINE=MyISAM DEFAULT CHARSET=latin1 |<br />+----------+-----------------------------------------<br />1 row in set (0.27 sec)</p><p><strong>技巧九：建立一个更为有用的命令提示：</strong></p><p>　　在缺省情况下，MySQL命令行客户程序显示一个简单的mysql&gt;提示符。然而，你可以使用特定的修改内容来改变这一提示符使之变得更为有效，这些内容包括：当前用户名称，主机名称，以及当前选择的数据库。如下所示：</p><p>表 G</p><p>mysql&gt; prompt \U:/\d&gt;<br />PROMPT set to '\U:/\d&gt;'<br /><font color="#000000">root@localhost:/db1</font>&gt;</p>从<a href="http://dev.mysql.com/doc/mysql/en/mysql-commands.html" target="_blank"><font color="#0000ff"><u>这里的文档文件</u></font></a>你可以获得支持MySQL客户程序更改的一个完整列表。 <br /><img src ="http://www.cnitblog.com/nanacy1981/aggbug/20041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/nanacy1981/" target="_blank">unearthly bone</a> 2006-12-04 14:35 <a href="http://www.cnitblog.com/nanacy1981/articles/20041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理解和使用 AIX 的日志系统</title><link>http://www.cnitblog.com/nanacy1981/articles/20039.html</link><dc:creator>unearthly bone</dc:creator><author>unearthly bone</author><pubDate>Mon, 04 Dec 2006 06:32:00 GMT</pubDate><guid>http://www.cnitblog.com/nanacy1981/articles/20039.html</guid><wfw:comment>http://www.cnitblog.com/nanacy1981/comments/20039.html</wfw:comment><comments>http://www.cnitblog.com/nanacy1981/articles/20039.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/nanacy1981/comments/commentRss/20039.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/nanacy1981/services/trackbacks/20039.html</trackback:ping><description><![CDATA[通常我们在进行服务器的健康性检查，和在出现问题的时候都会去考虑查看系统的日志。 <br /><br />　　我在学习aix的过程中发现，aix的日志跟solaris或linux的日志存储和查看的方式有着相当大的区别，为了使自己对aix的日志认识的更系统就总结了一下。 <br /><br />　　相当一部分是参考的 于宁斌《AIX 5L系统管理技术》 
<p>　　1．一旦系统的某个功能模块检测到一个错误或定义的需要记录日志的事件，则记录到/dev/error设备，把它保存在NVRAM中，这样可以保证即使在系统崩溃的情况下也不会丢失最新的错误日志。 <br /><br />　　2．同时，错误日志进程errdemon从/dev/error文件中读取错误日志，然后根据错误模版库（/var/adm/ras/errtmpit）和错误消息库（/usr/lib/nls/msg/$LANGcodepoint.cat） 对其进行处理后写入系统的错误日志/var/adm/ras/errlog中。 <br /><br />　　错误日志进程由/usr/lib/errdemon命令启动，/usr/lib/errstop停止，默认是启动的。 <br /><br />　　以上并不是重点，了解过程而已。<br /><br />　　errdemon进程： <br /><br />　　从/dev/error逻辑设备文件中读取纪录，然后在系统错误日志中创建错误日志纪录，显然这才是重点。 <br /><br />　　Errdemon的配置： <br /><br />　　/usr/lib/errdemon 命令可以启动errdemon进程，同样我们也可以通过使用参数来修改我们的errdemon,显然如果我们不是太了解还是系统初始的配置更适合我们！ <br /><br />　　例如： <br /><br />　　/usr/lib/errdemon –s 20000  设定我们的日志文件大小为20000bytes <br /><br />　　最可能用到的可能就是-l参数了 <br /><br />　　/usr/lib/errdemon –l <br />　　#/usr/lib/errdemon -l <br />　　Error Log Attributes <br />　　-------------------------------------------- <br />　　Log File                /var/adm/ras/errlog <br />　　Log Size                1048576 bytes <br />　　Memory Buffer Size      16384 bytes <br />　　Duplicate Removal       true <br />　　Duplicate Interval      100 milliseconds <br />　　Duplicate Error Maximum 1000 <br /><br />　　上面显示我的错误日志文件是/var/adm/ras/errlog，这也是系统默认的错误日志的存放位置。 <br /><br />　　具体其他的参数可以参看man 手册。 </p><p>　　查看错误日志:errpt命令 <br /><br />　　用more或者其他文本的查看命令来打开errlog文件我们看到的只是一对乱码，为了能够查看错误日志文件需要使用aix的errpt命令。 <br /><br />　　使用errpt命令查看日志,可能根据使用的参数来确定输出什么样的日志，甚至排序的方式，这是使用纯文本的日志不能做到的，或者说不能轻易做到的。 <br /><br />　　下面我们来看errpt命令的使用。 </p><p>　　# errpt <br />　　IDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTION <br />　　9DBCFDEE   0109034400 T O errdemon       ERROR LOGGING TURNED ON <br />　　192AC071   0109034300 T O errdemon       ERROR LOGGING TURNED OFF <br />　　C092AFE4   0109033500 I O ctcasd         ctcasd Daemon Started <br />　　A6DF45AA   0109033500 I O RMCdaemon      The daemon is started. <br />　　9DBCFDEE   0109033400 T O errdemon       ERROR LOGGING TURNED ON <br />　　192AC071   0106130900 T O errdemon       ERROR LOGGING TURNED OFF <br />　　369D049B   0106082400 I O SYSPFS         UNABLE TO ALLOCATE SPACE IN FILE SYSTE <br /><br />　　这里的输出分为六列依次为： <br /><br />　　1．错误标示符IDENTIFIER：并不唯一，由它来确定使用的错误模板，显然同一种错误的IDENTIFIER是相同的。 <br /><br />　　2．时间戳TIMESTAMP：错误发生的时间，MMDDhhmmYY,依次表示月日时分年。 <br /><br />　　3．类型TYPE：错误的类型，或者说严重的程度。 <br /><br />　　分为6个： <br /><br />　　PEND 设备或功能组件可能丢失 简写P <br />　　PERF 性能严重下降 P <br />　　PERM 硬件设备或软件模块损坏，确诊了的 P <br />　　TEMP 临时性错误，经过重试后已经恢复正常 T <br />　　INFO 一般消息，不是错误 I <br />　　UNKN 不能确定错误的严重性 U <br /><br />　　4．种类CLASS c:指出错误源 <br /><br />　　H 硬件或介质故障 <br />　　S 软件故障 <br />　　O 人为错误 <br />　　U 不能确定 <br /><br />　　5．资源名RESOURCE_NAME <br /><br />　　最初检测到错误的资源名软件或者硬件，并不代表这个资源有问题，而只是最先在它发现的。 <br /><br />　　6．描述 </p><p>　　显示详细的日志信息 <br /><br />　　# errpt -a|more <br />　　Standard input <br />　　--------------------------------------------------------------------------- <br />　　Standard input <br />　　LABEL:          ERRLOG_ON <br />　　IDENTIFIER:     9DBCFDEE <br />　　Date/Time:       Sun Jan  9 03:44:04 BEIS <br />　　Sequence Number: 309 <br />　　Machine Id:      004250B94C00 <br />　　Node Id:         ibm-5L <br />　　Class:           O <br />　　Type:            TEMP <br />　　Resource Name:   errdemon <br />　　Description <br />　　ERROR LOGGING TURNED ON <br />　　Probable Causes <br />　　ERRDEMON STARTED AUTOMATICALLY <br />　　User Causes <br />　　/USR/LIB/ERRDEMON COMMAND <br />　　        Recommended Actions <br />　　        NONE </p><p>　　其它<br /><br />　　指定日志文件 –I可以用来查看一个非errdemon指定位置的日志文件，例如某个日志文件备份。 <br /><br />　　-t 参数，只显示-t参数指定的错误类型TYPE。 <br />　　-s 显示指定时间之后的日志文件. <br />　　-d 指定种类CLASS. <br /><br />　　详细的参数只能看man 手册了 </p><p>　　# errpt -a -j 74533D1A <br />　　# errpt -s 0108100100 <br />　　IDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTION <br />　　9DBCFDEE   0109034400 T O errdemon       ERROR LOGGING TURNED ON <br />　　192AC071   0109034300 T O errdemon       ERROR LOGGING TURNED OFF <br />　　C092AFE4   0109033500 I O ctcasd         ctcasd Daemon Started <br />　　A6DF45AA   0109033500 I O RMCdaemon      The daemon is started. <br />　　9DBCFDEE   0109033400 T O errdemon       ERROR LOGGING TURNED ON </p><p>　　日志的清理<br /><br />　　errclear命令可以用来清理错误日志 <br /><br />　　并且默认情况下cron会每天清理错误日志 <br /><br />　　# crontab -l <br />　　0 11 * * * /usr/bin/errclear -d S,O 30 <br />　　0 12 * * * /usr/bin/errclear -d H 90 <br />　　0 15 * * *  /usr/lib/ras/dumpcheck &gt;;/dev/null 2&gt;;&amp;1 <br /><br />　　显然，找上面的例子，S,O 类的错误会保留30天，而H的错误会保留90天 <br /><br />　　errclear 0   删除多有记录 <br />　　errclear 7 删除7天以前的记录 <br />　　smit errclear </p><p>　　syslogd <br /><br />　　unix普遍用到的日志系统，配置文件/etc/syslog.conf <br /><br />　　没有什么多说的，比较普遍，定义的话是修改syslog.conf,保存的日志为文本格式 <br /><br />　　syslog.conf配置文件格式 <br /><br />　　信息类别.错误等级 记录的位置 </p><p>　　其中,各项的含义 <br /><br />　　信息类别 <br /><br />　　auth        used by authorization systems (login)  <br />　　cron        used for the cron and at systems <br />　　daemon      system/netword daemon <br />　　kern        produced by kernel messages  <br />　　lpr         printing system  <br />　　mail        mail system  <br />　　mark        internally used for time stamps  <br />　　news        reserved for the news system  <br />　　user        default facility, used for any program  <br />　　uucp        reserved for the uucp system  </p><p>　　错误等级 <br /><br />　　debug       normally used for debugging  <br />　　info        informational messages  <br />　　notice  conditions that may require attention  <br />　　Warning any warnings  <br />　　err         any errors  <br />　　crit         critical conditions like hardware problems  <br />　　Alert any condition that demand immediate attention <br />　　emerg       any emergency condition <br />　　none         Do  not  send  messages  from  the  indicated f <br />　　acility  to the selected file.   </p><p>　　记录的位置 <br /><br />　　可以是本地的文件（包括设备文件如/dev/console）或远程syslog日志服务器。 </p><p>　　假如我要记录cron的所有错误信息，则可以在/etc/syslog.conf加入下面一行 <br /><br />　　cron.err      /var/cronerr.log <br /><br />　　定义记录cron的err信息到/var/cronerr.log文件 </p><p>　　具体syslog的具体配置，网上遍地都是。<br /></p><img src ="http://www.cnitblog.com/nanacy1981/aggbug/20039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/nanacy1981/" target="_blank">unearthly bone</a> 2006-12-04 14:32 <a href="http://www.cnitblog.com/nanacy1981/articles/20039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>solaris迅速查找手册</title><link>http://www.cnitblog.com/nanacy1981/articles/20038.html</link><dc:creator>unearthly bone</dc:creator><author>unearthly bone</author><pubDate>Mon, 04 Dec 2006 06:12:00 GMT</pubDate><guid>http://www.cnitblog.com/nanacy1981/articles/20038.html</guid><wfw:comment>http://www.cnitblog.com/nanacy1981/comments/20038.html</wfw:comment><comments>http://www.cnitblog.com/nanacy1981/articles/20038.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/nanacy1981/comments/commentRss/20038.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/nanacy1981/services/trackbacks/20038.html</trackback:ping><description><![CDATA[
		<p>
				<strong>
						<table cellspacing="0" cellpadding="0" width="548" border="0">
								<tbody>
										<tr>
												<td>
														<font class="f14" id="zoom">
																<font color="#000000">硬件系统： <br /><br />1、如何查看cup的状态？ 作者:南非蜘蛛 <br /># psrinfo -v <br /># mpstat 可以列出多cpu负载的状态 <br /><br />2、如何查看内存？ 作者:南非蜘蛛 <br /># prtconf | grep 'Memory' 可以查看内存的多少. <br /># /usr/platform/sun4u/sbin/prtdiag <br /><br />3、如何动态添加swap分区？ # $su － root ----- 成为超级用户 <br /># mkfile 100m /home/swapfile ----- 创建100m的Swap文件 <br /># /usr/sbin/swap －a /path/filename ----- 激活Swap文件 <br /># /usr/sbin/swap －l ----- 验证swap文件 <br /># /usr/sbin/swap －d /path/filename ----- 取消swap文件 <br /># rm -rf /home/swapfile ----- 删除swap文件 <br /><br />4、如何查看当前网卡是以何种速率起来的？ 作者:南非蜘蛛 <br /># dmesg |grep Link <br /><br />5、如何调整x-window的分辨率和刷新频率？ <br />字符界面登陆，运行：#/kdmconfig <br /><br />6、如何使用光、软驱？ <br />一般情况下用： <br /># /etc/init.d/volmgt start <br /># volcheck <br />以上方法不行，用： <br /># /etc/init.d/volmgt stop <br /># mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom --挂接光驱 <br /># mount -F pcfs /dev/diskette0 /floppy --挂接软驱 <br />solaris定义系统磁盘文件系统说明： <br />ufs – UNIX文件系统。是Solaris缺省的文件系统。 <br />hsfs – 高密度CD-ROM文件系统，是只读文件系统。 <br />pcfs – PC文件系统，支持DOS格式化的软盘 <br /><br />7、SCSI设备的命名规则是什么？ <br />带有总线控制器的硬盘的使用，下面列出了总线控制器的硬盘命名习惯： <br />cWtXdYsZ <br />c Logical controller number <br />t Physical bus target number <br />d Drive number <br />s Slice (or partition) number (0 to 7) <br />例如： <br />/dev/rdsk/c0t0d0s0 该原始接口对应第一个控制器的第一个SCSI目标地址的第一个硬盘的第一片(根) <br />/dev/rdsk/c0t0d0s2 该原始接口对应第一个控制器的第一个SCSI目标地址上的第一个硬盘的第三片(表示整上硬盘) <br /><br />8、如何查看硬盘的使用情况？ 作者:南非蜘蛛 <br /># df -k 可以看到已安装的文件系统的空间大小及剩余空间大小。 <br /># quota -v 查看用户的磁盘空间信息,如果你用quota限制了用户空间大小的话。 <br /># du -sk * 查看目录的使用情况 <br /># du -k | sort -n 可以迅速发现那个目录是最大的。 <br /><br />9、如何查看硬盘物理信息？ <br /># format 这个命令也可以查看硬盘的类型和分区的详细情况 <br /># iostat -E看硬盘的大小和型号 <br /># prtvtoc /dev/rdsk/c0t0d0s0 显示某个磁盘的分区状况 <br /><br />10、查看系统内核命令。 作者:南非蜘蛛 <br /># isainfo 看内核的bit, <br /># isainfo -kv 调整内核 <br /># modinfo 显示可载入的模组 <br /># prtconf 显示系统硬件配置（周边设备） <br />#sysdef 显示可载入的模组，硬件配置与一些可以调整的核心参考值 <br />#ulimit -a <br /><br />11、打印当前的OBP版本号 作者:gunguymadman007 <br /># prtconf –V <br />OBP 3.20.0 2000/10/24 10:47 <br /># /usr/platform/sun4u/sbin/prtdiag –v | grep OBP <br />OBP 3.20.0 2000/10/24 10:47 POST 6.1.0 2000/10/24 10:49 <br />ok. .version <br />Release 3.20 Version 0 created 2000/10/24 10:47 <br />OBP 3.20.0 2000/10/24 10:47 <br />POST 6.1.0 2000/10/24 10:49 <br />OBDIAG 4.5.1 2000/10/24 10:48 <br /><br />12、查看及启动系统的32位或64位内核模式 作者:gunguymadman007 <br />64位模式 <br /># isalist –v <br />sparcv9+vis sparcv9 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc <br /># isainfo –v <br />64-bit sparcv9 applications <br />32-bit sparc applications <br /># isainfo –b <br />64 <br />启动64位内核模式 <br />ok. boot kernel/sparcv9/unix <br /><br />32位模式 <br /># isalist –v <br />sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc <br /># isainfo –v <br />32-bit sparc applications <br /># isainfo –b <br />32 <br />启动32位模式 <br />ok. boot kernel/unix <br /><br />13、测定当前的显示器刷新频率 <br /># /usr/sbin/fbconfig –rev ? <br /><br />14、如何配置网卡ip？ <br /># ifconfig -a --查看网卡,例如是hme0 <br /># ifconfig hme0 unplumb --停止网卡 <br /># ifconfig hme0 plumb --起用网卡 <br /># ifconfig hme0 inet 192.168.2.3 netmask 255.255.255.0 up --添加ip、子网掩码 <br /># vi /etc/defaultrouter 添加默认路由的ip <br /># vi /etc/hostname.hme0 添加主机名 <br /># vi /etc/nodename 添加主机名 <br /># vi /etc/resolv.conf <br />domain china.com 你的域名 <br />nameserver 202.106.0.20 你使用的nds ip <br /># vi /etc/nsswitch.conf 更改 hosts：file dns <br /><br />15、 PROM状态命令与参数 <br />格式： OK&gt; 指令 <br />命令 说明 <br />banner 显示当前机器配置状况，CPU,内存,hostid,EtherNet <br />probe-scsi 显示内部SCSI通道所挂接设备 <br />probe-scsi-all 显示所有SCSI通道及所挂接设备 <br />probe-ide 显示所有IDE通道及所挂接设备(针对U10,U5) <br />devalias 显示设备别名，如 cdrom,disk,disk0,disk1等 <br />printenv 无参数，显示环境变量或 <br />参数为环境变量名 如： printenv auto-boot? <br />setenv 设置环境变量，如： setenv auto-boot? false <br />set-default 恢复环境变量预定值 如：set-default auto-boot? <br />set-defaults 恢复所有环境变量预定值 <br />boot device option 启动主机 <br />设备别名: cdrom 或 disk <br />设备名: /pci@1f,4000/scsi@3,1/disk@6,0:f <br />option -r 设备配置 <br />-s 单用户 <br />eject cdrom|floppy 弹出cdrom或floppy <br />reset 复位 <br />test net <br />watch-net-all <br />show-devs <br /><br />16、查找网卡名称及接口个数 作者：阿丙 <br /># grep network /etc/path_to_inst <br /><br />17、如何一块网卡帮定三个ip,并且子网掩码不同？ <br />举例说明，网卡名hme0： <br /># vi /etc/hosts <br />127.0.0.1 localhost <br />192.168.2.1 dbs loghost <br />192.168.9.15 dd <br />192.168.9.65 aa <br /># vi /etc/netmasks <br />192.168.2.0 255.255.255.0 <br />192.168.9.0 255.255.255.192 <br />192.168.9.64 255.255.255.252 <br /><br />#vi /etc/hostname.hme0 <br />dbs <br />#vi /etc/hostname.hme0:1 <br />dd <br />#vi /etc/hostname.hme0:2 <br />aa <br /># ipconfig hme0 inet 192.168.2..1 netmask 255.255.255.0 up <br /># ipconfig hme0:1inet 192.168.9.15 netmask 255.255.255.192 up <br /># ipconfig hme0 inet 192.168.9.65 netmask 255.255.255.252 up <br /># init 6 <br />#ipconfig -a <br /><br />18、如何在prom状态下查看光纤硬盘 ？ 作者：深圳菜鸟 <br />stop +a进入ok状态： <br />ok&gt; select 光纤卡设备名（可用show-devs查看到） <br />ok&gt; show-children <br /><br />19、主机双屏幕设置。 作者：iricyan <br />1.Confirm there are two Video Cards。 <br />2.Confirm driver installed and patches installed if need。 <br />3.vi /usr/dt/config/Xservers. <br />comment the last line. <br />and uncomment the nearest line like this. <br />4.reboot. <br /><br />20、查看硬盘参数及其物理地址： <br />#format &lt;/dev/null <br /><br />21、显示磁盘的分区情况： <br />#prtvtoc /dev/rdsk/c0t0d0s2 <br /><br /><br />系统应用： <br /><br />1、、查看系统运行级别 <br /># who -r 看运行级别 <br /><br />2、进程工具 作者:e4gle <br />pstop pid　 停止进程 <br />prun　pid　 重新启动进程 <br />ptime pid　 使用微状态计算进程时间 <br />pwait pid　 等待指定的进程终止 <br />pcred pid　显示可信度　　　 * <br />pfiles pid 显示已打开文件的fstat和fcntl信息　　 * <br />pflags pid 显示每个lwp的/proc跟踪标志，等待和待有信号量以及其他状态信息　 * <br />pldd　 pid 显示链接到每个进程的动态链接库　　 * <br />pmap　pid　 显示地址映射空间　　 * <br />psig　pid　显示信号操作　　　 * <br />pstack pid 显示每个lwp的十六进制与符号堆跟踪　　 * <br />ptree　pid　显示包含指定PID的进程树 <br />pwdx　 pid 显示当前工作目录　　　* <br />后面加*的必须是超级用户执行。 <br />这些工具在/usr/proc/bin/里面。 <br /><br />3、patch软件包的安装 <br />每个补丁都有编号。例如补丁号为101945，版本是34的话，这个补丁的目录名就是101945-34. <br /># patchadd 105160-01 安装补丁 <br /># patchrm 删除补丁 <br /># patchadd -p 检查系统的补丁情况 <br /># showrev -p 查看所有已经安装的patch <br /><br />4、如何容许root用户远程登录？ <br /># vi /etc/default/login <br />CONSOLE=/dev/console ---用#注释掉这一行。 <br /><br />5、如何限定telnet登陆数？solaris pts的数量缺省为47, 修改/etc/system文件， 增加如下内容: <br />set maxusers=数量 <br />set pt_cnt=数量 <br /><br />6、显示已经使用和未使用的i-node数目 作者:gunguymadman007 <br /># df –F ufs –o i <br /><br />7、显示cpu使用率最高的进程 作者:gunguymadman007 <br /># ps –eo pid,pcpu,args | sort +1n <br />该命令输出当前系统进程的pid, CPU占用率及命令描述，并以pcpu来排序 <br /><br />8、查看当前的OpenWindows版本 作者:gunguymadman007 <br /># showrev –w <br />OpenWindows version: <br />X11 Version 6.4.1 5 November 2001 <br /><br />9、查看当前CDE的版本 作者:gunguymadman007 <br /># /usr/ccs/bin/what /usr/dt/bin/dtmail <br />/usr/dt/bin/dtmail: <br />CDE Version 1.4.6_06 <br />CDEVersion1.4.6_06 <br /><br />10、文消掉本中的^M <br /># cat test.dat | tr -d '15' &gt; test.out <br />这样可以将 test.dat 内 ^M(15) 这个字元去掉, 产生 test.out <br /><br />11、关机命令。 <br />关闭系统的方式根据关闭的原因而不同.执行关闭有的是为了转至执行等级S，有的是要停止操作系统并关闭设备的电源. <br />(1) /usr/sbin/shutdown –gtime –ilevel -y <br />(2) init 0 <br />(3) halt <br />(4) STOP+A ; sync <br />(5) 关闭电源 <br />紧急情况，按Stop_A , 如Stop_A不起作用，则将设备电源关闭再打开.这是 <br />极端情况.这两种方法不是干净的关闭，是突然关闭的，仅在紧急情况使用. <br /><br />12、Solaris下怎么发送即时消息？ <br />用wirte命令到单个用户的终端。 <br />$ wirte username <br />输入消息正文，结束按ctrl-d,消息就会出现在用户终端。 <br />用户可以用mesg n[y]来决定是否启动接受消息。 <br /><br />用wall，是发给所有系统用户。 <br />$ wall <br />hello ,i love you ...... 结束用ctrl-D. <br /><br />rwall -n netgroup 给网络上所有用户。 <br />$ rwall -n workgroup --------发给组workgroup下的每一个用户 <br />hi ! no smoking ...... 结束用ctrl -d <br /><br />$ rwall sune450 ------或者主机名为sune450。用法如上。。?a href="http://www.xxlinux.com/"&gt;Linux联盟收集整理 <br /><table cellspacing="0" cellpadding="0" width="548" border="0"><tbody><tr><td><font class="f14" id="zoom"><font color="#000000">13、系统是sunos5.8， 不知何种原因现在唯一的普通用户起不了Terminal, vi等，但是超级用户可以，如何补救？ 作者：kesin <br />用/etc/skel/local.cshrc 替换掉登陆路径下的 .cshrc, 重新登陆， 就OK了！ <br />$cp /etc/skel/local.cshrc ./ <br /><br />14、关机时这个题是什么意思？ 作者：sunmarmot <br />/usr/sbin/vold[724]: [ID 244572 daemon.error] 卸载 /vol 时发生问题；中断系统调用 <br />uxwdog[481]: [ID 248799 daemon.error] error communicating with server (Broken pipe) <br /><br />你还没卸下来/VOL就启动，才出问题，运行： <br /># umount -f /vol后再做。 <br /><br />15、find常用的例子： <br />命令格式: find dir -name filename command <br />例子: <br /># find . -name hello -print 寻找目前目录及所有的子目录内叫hello的文档。 <br /># find . -ctime +7 -print 找出七天内未被更动的文档 <br /># find . -size +2000m -print 找出大小超过2000 bytes的文档 <br /># find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档 <br /># find . -name '*.c' -exec rm {} 删除所有的.c档 <br /># find . -name test* -print 显示当前目录及其子目录文件名前4位为test的文件名 <br /><br />16、忘记solarsi的root口令怎么办？ 作者：南非蜘蛛 <br />方法一: <br />1.别怕<img class="inlineimg" title="微笑" src="http://www.linuxeden.com/forum/images/smilies/smile.gif" border="0" /> ,跟我来. <br />2.把你的solaris光盘放进cdrom <br />3.键入stop+a <br />4.当出现'ok'字样时,键入boot cdrom -s <br />5.cd /tmp <br />6.mkdir /tmp/xxx (xxx是什么鬼东西就无关紧要了) <br />7.mount /dev/dsk/c0t0d0s0 /tmp/xxx (在这里c0t0d0s0是你的root盘) <br />8.运行csh <br />9.TERM=sun;export TERM或者 <br />setenv TERM vt220 <br />10.cp /tmp/root/xxx/shadow /tmp/root/xxx/shadow/shadow.backup <br />11.vi /tmp/root/xxx/shadow并且将password里root项删除。 <br />12.重启动，你就可以以无密码的root登陆了，这时更改你的密码。 <br />要是没有shadow,就把/etc/passwd里root用户名后面的X删掉,就可以了 <br />方法二: <br />找一台有系统的solaris机器,把忘记密码的系统放进去mount上来,重复方法一10以后的步骤. <br /><br />solaris for x86的机器： <br />用光盘启动到要你安装的时候退出去就成单用户，剩下的操作如上。 <br /><br />17、常见文件的解压 作者:南非蜘蛛 <br />一般而言,在solaris下,会有这么几种格式的软件: <br />1) .gz结尾的文件,我们用gunzip或者gzip -d来解压,再用tar来解压. <br />2) .tar结尾的文件,我们肯定知道用tar xvf的格式来解压. <br />3) .zip结尾的文件,我们用unzip,注意,这个只有在高版本的solaris下,才有.而且该文件格式以solaris的patch比较多. <br />4) .Z结尾的文件,我们一般用uncompress来解压(当然,每个人的习惯不一样.) <br />上面讲的是解压,一般解压后,会生成这么几种方式: <br />1)生成.local的文件,这个时候,我们用: pkgadd -d xxx.local来安装. <br />2) 生成一个目录,而且该目录下会有一些pkg信息,我们用: pkgadd -d . ;指在当前目录下,安装,并且按照缺省的路径来安装. <br />3) 生成一个数字的目录,一般是指solaris的patch,这个时候我们用patchadd来安装. <br /><br />18、如何在命令行界面替换一个文件中的字符段？ <br /># vi file 在命令模式中输入： <br />：1， $s/diag/peng/g 全文件查找diag并替换为peng <br /><br />19、请问TERM=VT100和TERM=dtterm都在什么情况下设置？ 作者：C.Arthur <br />一般情况下如果你在机器的显示器上登陆或者通过XMANAGER等登陆，就默认是dtterm，telnet 一般是ansi，当你通过telnet修改文件的时候，需要设置成 TERM = VT100 ; export TERM <br /><br />20、如何查看系统的版本？ <br />$ uname -X <br />$ more /etc/release <br /><br />21、命令行进入CDE： <br />#/usr/dt/bin/dtlogin -daemon;exit <br />or <br />#/etc/rc2.d/S92dtlogin start;exit; <br /><br />22、查看patch安装过程中返回错误代码的含义： <br />#more /usr/sbin/patchadd <br /><br />23、如何从一台SOL8的机器登录到另外一台SOL8的CDE桌面上去。 <br />登陆CDE的时候点击一下菜单：选择--登陆远程主机-- <br /><br />24、如何查看你的默认语言环境？ C.Arthur <br /># more /etc/default/init <br /><br />25、如何更改/home的权限？ 作者： xieliangcheng <br />停掉autofs服务，或者将/etc/auto_master的home注释掉： <br />#vi /etc/auto_master <br />------------内容如下---------- <br /># Master map for automounter <br /># <br />+auto_master <br />/net -hosts -nosuid,nobrowse <br />#/home auto_home -nobrowse <br />/xfn -xfn <br /><br /><br /><br /><br /><br />第三方软件应用或技巧： <br /><br />1、查看当前的bind版本信息 作者:gunguymadman007 <br /># nslookup –class=chaos –q=txt version.bind <br /><br />2、在登录时显示系统指定的消息？ <br />#vi /etc/motd ----删除所有过时的消息,输入新消息 <br />注意：对于已经登录且正在使用系统的用户不显示该消息，超过一屏的消息无法显示。每次修改该文件后，该文件的时间戳随之更新。 <br /><br />3、去掉文本中^M <br /># dos2unix aaa.txt bbb.txt,会去掉aaa.txt中的^M，生成bbb.txt文件。 <br /><br />4、将系统中7天前的txt文件查找并打包。 <br /># find / -mtime -7 &gt;aaa.txt <br /># tar cvf bbb.tar -I aaa.txt <br />---查找出文件记录在aaa.txt文件中，在作成bbb.tar文件包。 <br /><br />5、查找并删除比某一天更老的文件： <br />#find . ! -mtime -&lt;days&gt; | /usr/bin/xarys rn -rf <br /><br />6、solaris9普通用户下无法正确输入中文的解决方法： <br />在用户目录在#vi .profile 修改如下： <br />stty cs8 -istrip <br /><br />7、请问如何防止telnet登陆发呆时间过长被踢呢？ <br />这里，vi /etc/default/login <br /># TIMEOUT sets the number of seconds (between 0 and 900) to wait before <br /># abandoning a login session. <br /># <br />#TIMEOUT=300 <br />修改之后不是立即生效，在这之后所又的login session都符合这个要求，但是在修改之前已经建立的连接不受影响。 <br /><br />8、如何安装gcc。 <br />去sunfreeware.com上下载相应平台的pkg包的gcc版本。 <br />#pkgadd -d gcc* <br />设置环境变量： <br />bash 和sh 的shell: <br />vi $home/.profiel <br />PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc:/usr/local/bin:/usr/ccs/bin;export PATH <br />CC=gcc;export CC <br />csh的shell： <br />vi $home/.cshrc <br />set path=( /bin /usr/bin /usr/ucb /etc /usr/local/bin /usr/local/sbin .) <br />setenv CC gcc <br /><br />9、列出当前目录下的目录。 作者：brucewoo <br />ls -al | grep '^d' <br /><br />10、用命令行来打开一个新的terminal。 作者：beginner-bj <br />/usr/dt/bin/dtterm <br /><br /><br /><br />X86或者Vmware： <br /><br />1、在Solaris10 x86上挂接window98分区的方法。 作者：k338 <br />#mount -F pcfs /dev/dsk/c0d1p0:e /mnt <br />总结一下： <br />偶的硬盘是接在IDE1的slaver盘上，用上述命令可将E：盘挂在/mnt <br />目录下。如果你的电脑只有一个硬盘，并且是接在主板的IDE1槽，设为 <br />Master盘（通常这种情况较多），现在想挂WIN98下的D：盘，可输入 <br />#mount -F pcfs /dev/dsk/c0d0p0:d /mnt <br />注意，/mnt可以改为任意的其它空目录，如/data(我在文件管理器中自己 <br />新建的一个目录），可改为 <br />#mount -F pcfs /dev/dsk/c0d0p0:d /data <br />按回车后如没有任何出错提示，则表示挂接成功，你就可以进入挂接的文件夹（此处为/data）找到你所挂接的win98的D：分区上的文件了。 <br />本方法经过偶N次实验，是确实可行的。为后来者不再偶走过的弯路，偶特在此总结一下，哪位初学者不会在Solaris10 x86（Solaris9也应该行） <br />挂win98分区的话，可参考本方法。<br />Solaris中的酷命令 <br /><a href="http://blog.msnfans.com/nethero/?v=e&amp;id=968" target="_blank"><font color="#000080">http://blog.msnfans.com/nethero/?v=e&amp;id=968</font></a> Solaris中的酷命令 <br />Sun eCommunity 作者 Peter Baer Galvin Solaris 中的命令非常之多，以致很难从中分离出那些很酷的命令。例如，有些命令报告程序进行每个系统调用时所要花费的时间，有些命令动态地显示系统活动信息，而且这些命令大部分都同时包含在了 Solaris 8 和 Solaris 9 中。这里，我将重点介绍其中一些命令，您或许会发现它们特别有用。 <br /><br />系统管理员是工具的使用者。通过实践经验，我们掌握了更多工具，并且增强了诊断问题以及实施解决方案的能力。本次专栏中包含的命令是通过经验、朋友、熟人以及出席 9 月举行的 SunNetwork 2002 大会收集到的。Solaris 内核的开发人员 Brian Cantrill 和 Mike Shapiro 所讲的"The /procodile Hunter"让人很有启发并令人感到惊恐，因为 Cantrill 编写代码来说明一个观点的速度比 Shapiro 能够讲解该观点的速度还要快！<br /><br />有用的 Solaris 命令<br /><br />truss -c (Solaris &gt;= 8)：这是个令人震惊的 truss 选项，它提供了被追踪命令的全面概要信息：<br /><br /><br />$ truss -c grep asdf work.doc<br />syscall seconds calls errors<br />_exit .00 1<br />read .01 24<br />open .00 8 4<br />close .00 5<br />brk .00 15<br />stat .00 1<br />fstat .00 4<br />execve .00 1<br />mmap .00 10<br />munmap .01 3<br />memcntl .00 2<br />llseek .00 1<br />open64 .00 1<br />---- --- ---<br />sys totals: .02 76 4<br />usr time: .00<br />elapsed: .05<br /><br />它还能显示正在运行的进程的概要数据。在本例中，数据表明了从启动 truss 命令到用 control-c 来终止 truss 执行的期间，进程到底做了些什么。这对于判断进程为何被挂起是很理想的，因为您无须费力浏览整个 truss 的输出。 <br /><br />truss -d 和 truss -D (Solaris &gt;= 8)：这两个选项表明与truss显示的每个系统调用相关的时间信息。这对于找出定制代码或商业代码中的问题很有帮助。例如： <br /><br /><br />$ truss -d who<br />Base time stamp: 1035385727.3460 [ Wed Oct 23 11:08:47 EDT 2002 ]<br />0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64) argc = 1<br />0.0032 stat("/usr/bin/who", 0xFFBEFA98) = 0<br />0.0037 open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT<br />0.0042 open("/usr/local/lib/libc.so.1", O_RDONLY) Err#2 ENOENT<br />0.0047 open("/usr/lib/libc.so.1", O_RDONLY) = 3<br />0.0051 fstat(3, 0xFFBEF42C) = 0<br />. . .<br />truss -D 对于显示系统调用间的延迟时间更加有用：<br /><br /><br />Dilbert&gt; truss -D who<br />0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64) argc = 1<br />0.0028 stat("/usr/bin/who", 0xFFBEFA98) = 0<br />0.0005 open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT<br />0.0006 open("/usr/local/lib/libc.so.1", O_RDONLY) Err#2 ENOENT<br />0.0005 open("/usr/lib/libc.so.1", O_RDONLY) = 3<br />0.0004 fstat(3, 0xFFBEF42C) = 0<br /><br />这个例子中，stat 这个系统调用要比其他系统调用占用更长的时间。 <br /><br />truss -T：这是个很棒的调式帮助选项。在执行指定的系统调用时，它可以终止进程（"-U"也执行同样的操作，不过是在进行用户级的函数调用时）。此时，将会获取用于进一步分析的 core 文件，或者使用一些 /proc 工具来确定进程各个方面的状态。 <br /><br />truss -l（在 Solaris 9 中已改进）：显示多线程进程中每个调用的线程号。Solaris 9 中的 truss -l 经过了改进，最后还可以监视多线程的应用程序的执行?a href="http://www.xxlinux.com/"&gt;Linux联盟收集整理 </font></font></td><td width="8"></td></tr><tr><td></td></tr></tbody></table></font>
														</font>
												</td>
												<td width="8">
												</td>
										</tr>
										<tr>
												<td>
												</td>
										</tr>
								</tbody>
						</table>
				</strong>
		</p>
<img src ="http://www.cnitblog.com/nanacy1981/aggbug/20038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/nanacy1981/" target="_blank">unearthly bone</a> 2006-12-04 14:12 <a href="http://www.cnitblog.com/nanacy1981/articles/20038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CVS的日常使用  </title><link>http://www.cnitblog.com/nanacy1981/articles/20037.html</link><dc:creator>unearthly bone</dc:creator><author>unearthly bone</author><pubDate>Mon, 04 Dec 2006 06:06:00 GMT</pubDate><guid>http://www.cnitblog.com/nanacy1981/articles/20037.html</guid><wfw:comment>http://www.cnitblog.com/nanacy1981/comments/20037.html</wfw:comment><comments>http://www.cnitblog.com/nanacy1981/articles/20037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/nanacy1981/comments/commentRss/20037.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/nanacy1981/services/trackbacks/20037.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">确认修改：确认自己的修改并写入到CVS库里</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs commit -m "write some comments here" file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<i>
						<font face="Verdana, Arial, Helvetica, sans-serif">注意：CVS的很多动作都是通过cvs commit进行最后确认并修改的，在确认的前，还需要用户填写修改注释，以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话，cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。<br />注释的质量很重要：所以不仅必须要写，而且必须写一些比较有意义的内容：以方便其他开发人员能够很好的理解。不好的注释，很难让其他的开发人员快速的理解：比如： -m "bug fixed" 甚至 -m ""。好的注释，甚至可以用中文: -m "在用户注册过程中加入了Email地址校验"</font>
				</i>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">同步最近修改：开始工作前和将自己的工作导入到CVS库里前都要做一次：先同步 后修改</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs update -m "write some comments here" file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<i>
						<font face="Verdana, Arial, Helvetica, sans-serif">注意：不要使用项目首次导出后，以后就要用cvs update在导出的项目目录下进行同步了，而不是每次重新cvs checkout来同步文件了。如果导出后修改了文件，然后再次从导出的项目目录的上一级cvs checkout proj等于是删除了proj目录然后重新导出，上次导出后的修改就全丢了。</font>
				</i>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">修改某个版本注释：每次只确认一个文件到CVS库里是一个很好的习惯，但难免有时候忘了指定文件名，把多个文件以同样注释commit到CVS库里了，以下命令可以允许你修改某个文件某个版本的注释：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs admin -m 1.3:"write some comments here" file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">删除文件：<br />文件删除后，比如：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">rm file_name<br />cvs rm file_name<br />cvs ci -m "write some comments here"</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">以上面前2步合并的方法为：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs rm -f file_name<br />cvs ci -m "why delete file"</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<i>
						<font face="Verdana, Arial, Helvetica, sans-serif">注意：很多cvs命令都有缩写形式：commit=&gt;ci; update=&gt;up; checkout=&gt;co; remove=&gt;rm;</font>
				</i>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">添加文件 文件添加后，比如：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">touch new_file<br />cvs add new_file<br />cvs ci -m "write some comments here"</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">添加目录：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs add dir_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">查看修改历史：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs log file_name<br />cvs history file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">查看当前文件不同版本的区别</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs diff -r1.3 -r1.5 file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">查看当前文件（可能已经修改了）和库中相应文件的区别</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs diff file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">cvs的web界面提供了更方便的定位文件修改和比较版本区别的方法，具体安装设置请看后面的cvsweb使用</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">正确的通过CVS恢复旧版本的方法：<br />如果用</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs update -r1.2 file.name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">这个命令是给file.name加一个STICK TAG： "1.2" ，虽然你的本意只是想将它恢复到1.2版本<br />正确的恢复版本的方法是</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs update -p -r1.2 file_name &gt;file_name</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">如果不小心已经加成STICK TAG的话：用cvs update -A 解决</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">移动文件：文件重命名<br />cvs里没有cvs move或cvs rename，因为这两个操作是先cvs remove old_file_name，然后cvs add new_file_name实现的。</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">删除，移动目录：<br />最方便的方法是让管理员直接移动，删除CVSROOT里相应目录（因为CVS一个项目下的子目录都是独立的，移动到$CVSROOT目录下都可以作为新的独立项目：好比一颗树，其实砍下任意一枝都能独立存活），对目录进行了修改后，要求其开发人员重新导出项目cvs checkout project_name 或者用cvs update -dP同步。</font>
		</p>
		<p>
				<a id="branch" name="branch">
						<b>
								<font face="Verdana, Arial, Helvetica, sans-serif">CVS Branch：项目多分支同步开发<br /></font>
						</b>
				</a>
				<b>
						<font face="Verdana, Arial, Helvetica, sans-serif">=============================</font>
				</b>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">确认版本里程碑：多个文件各自版本号不一样，项目到一定阶段，可以给所有文件统一指定一个阶段里程碑版本号，方便以后按照这个阶段里程碑版本号导出项目，同时也是项目的多个分支开发的基础。</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs tag release_1_0</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">开始一个新的里程碑：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs commit -r 2</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">标记所有文件开始进入2.x的开发</font>
		</p>
		<p>
				<i>
						<font face="Verdana, Arial, Helvetica, sans-serif">注意：CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。</font>
				</i>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">在开发项目的2.x版本的时候发现1.x有问题，但2.x又不敢用，则从先前标记的里程碑：release_1_0导出一个分支release_1_0_patch</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs rtag -b -r release_1_0 release_1_0_patch proj_dir</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">一些人先在另外一个目录下导出release_1_0_patch这个分支：解决1.0中的紧急问题，</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs checkout -r release_1_0_patch</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">而其他人员仍旧在项目的主干分支2.x上开发</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">在release_1_0_patch上修正错误后，标记一个1.0的错误修正版本号</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs tag release_1_0_patch_1</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">如果2.0认为这些错误修改在2.0里也需要，也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">cvs update -j release_1_0_patch_1</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<b>
						<font face="Verdana, Arial, Helvetica, sans-serif">CVS的远程认证：</font>
				</b>
				<a id="ssh" name="ssh">
						<b>
								<font face="Verdana, Arial, Helvetica, sans-serif">通过SSH远程访问CVS<br /></font>
						</b>
				</a>
				<b>
						<font face="Verdana, Arial, Helvetica, sans-serif">================================</font>
				</b>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">使用cvs本身的远程认证很麻烦,需要定义服务器和用户组，用户名，设置密码等，而且不安全，因此和系统本地帐号认证并通过SSH传输是比较好的办法，通过在客户机的/etc/profile里设置一下内容：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">所有客户机所有本地用户都可以映射到CVS服务器相应同名帐号了。</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">如果CVS所在服务器的SSH端口不在缺省的22，或者和客户端与CVS服务器端SSH缺省端口不一致，有时候设置了：</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">:ext:$USER@test.server.address#port:/path/to/cvsroot</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">仍然不行，比如有以下错误信息：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">ssh: test.server.address#port: Name or service not known<br />cvs [checkout aborted]: end of file from server (consult above messages if any)</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">解决的方法是做一个脚本指定端口转向（不能使用alias，会出找不到文件错误）：<br />创建一个/usr/bin/ssh_cvs文件：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">#!/usr/bin/sh<br />/path/to/ssh -p 34567 "$@"</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">然后：chmod +x /usr/bin/ssh_cvs<br />并CVS_RSH=ssh_cvs; export CVS_RSH</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">注意：port是指相应服务器SSH的端口，不是cvs pserver的端口</font>
		</p>
		<p>
				<a id="cvsweb" name="cvsweb">
						<b>
								<font face="Verdana, Arial, Helvetica, sans-serif">CVSWEB：提高程序员比较文件修改效率<br /></font>
						</b>
				</a>
				<b>
						<font face="Verdana, Arial, Helvetica, sans-serif">================================</font>
				</b>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVSWEB就是CVS的WEB界面，可以大大提高程序员定位修改的效率:<br />使用的样例可以看：</font>
				<a href="http://www.freebsd.org/cgi/cvsweb.cgi">
						<font face="Verdana, Arial, Helvetica, sans-serif">http://www.freebsd.org/cgi/cvsweb.cgi</font>
				</a>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVSWEB的下载：CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本，这个是个人感觉觉得安装设置比较方便的：</font>
				<a href="http://www.spaghetti-code.de/software/linux/cvsweb/">
						<font face="Verdana, Arial, Helvetica, sans-serif">http://www.spaghetti-code.de/software/linux/cvsweb/</font>
				</a>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">下载解包：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">tar zxf cvsweb.tgz</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">把配置文件cvsweb.conf放到安全的地方（比如和apache的配置放在同一个目录下），<br />修改：cvsweb.cgi让CGI找到配置文件：</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">$config = $ENV{'CVSWEB_CONFIG'} || '/path/to/apache/conf/cvsweb.conf';</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">转到/path/to/apache/conf下并修改cvsweb.conf：</font>
		</p>
		<ol>
				<li>
						<font face="Verdana, Arial, Helvetica, sans-serif">修改CVSROOT路径设置：<br />%CVSROOT = (<br />'Development' =&gt; '/path/to/cvsroot', #&lt;==修改指向本地的CVSROOT<br />); </font>
				</li>
				<li>
						<font face="Verdana, Arial, Helvetica, sans-serif">缺省不显示已经删除的文档：<br />"hideattic" =&gt; "1",#&lt;==缺省不显示已经删除的文档 </font>
				</li>
				<li>
						<font face="Verdana, Arial, Helvetica, sans-serif">在配置文件cvsweb.conf中还可以定制页头的描述信息，你可以修改$long_intro成你需要的文字</font>
				</li>
		</ol>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVSWEB可不能随便开放给所有用户，因此需要使用WEB用户认证：<br />先生成 passwd:</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">/path/to/apache/bin/htpasswd -c cvsweb.passwd user</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">修改httpd.conf: 增加</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">&lt;Directory "/path/to/apache/cgi-bin/cvsweb/"&gt;<br />AuthName "CVS Authorization"<br />AuthType Basic<br />AuthUserFile /path/to/cvsweb.passwd<br />require valid-user<br />&lt;/Directory&gt;</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a id="tag" name="tag">
						<b>
								<font face="Verdana, Arial, Helvetica, sans-serif">CVS TAGS: who? when?<br /></font>
						</b>
				</a>
				<b>
						<font face="Verdana, Arial, Helvetica, sans-serif">====================</font>
				</b>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">将$Id$ 加在程序文件开头的注释里是一个很好的习惯，cvs能够自动更新其中的内容成：file_name version time user_name 的格式，比如：cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp，可以这些信息了解文件的最后修改人和修改时间</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">几个常用的缺省文件：<br />default.php</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">&lt;?php<br />/*<br />* Copyright (c) 2002 Company Name.<br />* $Id$<br />*/<br /><br />?&gt;</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">Default.java: 注意文件头一般注释用 /* 开始 JAVADOC注释用 /** 开始的区别</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">/*<br />* Copyright (c) 2002 Company Name.<br />* $Id$<br />*/<br /><br />package com.netease;<br /><br />import java.io;<br /><br />/**<br />* comments here<br />*/<br />public class Default {<br />    /**<br />    *<br />    * @param<br />    * @return<br />    */<br />    public toString() {<br /><br />    }<br />}</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">default.pl:</font>
		</p>
		<table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="1" width="100%" bgcolor="#e0e0e0" border="0">
				<tbody>
						<tr>
								<td width="100%">
										<font face="Verdana, Arial, Helvetica, sans-serif" size="2">#!/usr/bin/perl -w<br /># Copyright (c) 2002 Company Name.<br /># $Id$<br /><br /># file comments here<br /><br />use strict;</font>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">相关资源：</font>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVS HOME：<br /></font>
				<a href="http://www.cvshome.org/">
						<font face="Verdana, Arial, Helvetica, sans-serif">http://www.cvshome.org/</font>
				</a>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVS FAQ：<br /></font>
				<a href="http://www.loria.fr/~molli/cvs-index.html">
						<font face="Verdana, Arial, Helvetica, sans-serif">http://www.loria.fr/~molli/cvs-index.html</font>
				</a>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">相关网站:<br /></font>
				<a href="http://directory.google.com/Top/Computers/Software/Configuration_Management/Tools/Concurrent_Versions_System/">
						<font face="Verdana, Arial, Helvetica, sans-serif">Google: CVS</font>
				</a>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVS 免费书:<br /></font>
				<a href="http://cvsbook.red-bean.com/">
						<font face="Verdana, Arial, Helvetica, sans-serif">http://cvsbook.red-bean.com/</font>
				</a>
		</p>
		<p>
				<font face="Verdana, Arial, Helvetica, sans-serif">CVS 命令的速查卡片：<br /></font>
				<a href="http://www.refcards.com/about/cvs.html">
						<font face="Verdana, Arial, Helvetica, sans-serif">http://www.refcards.com/about/cvs.html</font>
				</a>
				<br />
		</p>
<img src ="http://www.cnitblog.com/nanacy1981/aggbug/20037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/nanacy1981/" target="_blank">unearthly bone</a> 2006-12-04 14:06 <a href="http://www.cnitblog.com/nanacy1981/articles/20037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>aix 系统命令简介</title><link>http://www.cnitblog.com/nanacy1981/articles/20036.html</link><dc:creator>unearthly bone</dc:creator><author>unearthly bone</author><pubDate>Mon, 04 Dec 2006 06:04:00 GMT</pubDate><guid>http://www.cnitblog.com/nanacy1981/articles/20036.html</guid><wfw:comment>http://www.cnitblog.com/nanacy1981/comments/20036.html</wfw:comment><comments>http://www.cnitblog.com/nanacy1981/articles/20036.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/nanacy1981/comments/commentRss/20036.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/nanacy1981/services/trackbacks/20036.html</trackback:ping><description><![CDATA[在AIX操作系统上有很多的命令。这里介绍一些系统级的命令，它将有助于回答一些常见问题。大家以此做参考，并补充修改。 <br />以下命令在AIX 5.1上测试通过。 <br /><br />正文 以下命令在AIX 5.1上测试通过。 <br />· 关于内核 <br /><br />显示AIX系统内核是32位还是64位： <br />bootinfo -K <br /><br />如何改变内核模式（32位或64位） <br />/unix文件连接到一个可引导的映像。通过命令ls -l /unix查看： <br />/unix -&gt; /usr/lib/boot/unix_up # 32 bit uniprocessor kernel <br />/unix -&gt; /usr/lib/boot/unix_mp # 32 bit multiprocessor kernel <br />/unix -&gt; /usr/lib/boot/unix_64 # 64 bit multiprocessor kernel <br /><br />在AIX系统安装时，缺省安装的内核是32位。可以用如下命令更改内核模式： <br />ln -sf /usr/lib/boot/unix_64 /unixln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unixbosboot -ad /dev/hdiskxxshutdown -r <br /><br />注意：/dev/hdiskxx是指引导逻辑卷/dev/hd5所在的硬盘。可通过下面命令来查看xx是几： <br />lslv -m hd5 <br /><br /><br />· 关于硬件 <br /><br />显示机器硬件是32位还是64位： <br />bootinfo -y <br /><br />查看机器的物理内存是多少： <br />bootinfo -r <br />或 <br />lsattr -El sys0 -a realmem <br /><br />查看机器是否支持64位内核（是否64位硬件） <br />/usr/sbin/bootinfo -p <br />如果返回32，则表示硬件是32位的；如果返回的是chrp，则表示硬件是64位的机器。 <br /><br />显示当前磁带设备rmt0的属性： <br />lsattr -l rmt0 -E <br /><br />显示缺省的磁带设备rmt0的属性： <br />lsattr -l rmt0 -D <br /><br />显示终端设备tty0的登录属性： <br />lsattr -l tty0 -a login -R <br /><br />显示系统级属性： <br />lsattr -E -l sys0 <br /><br />查看当前系统有多少CPU： <br />lscfg | grep proc <br /><br />查看当前系统有多少硬盘而且是否被使用： <br />Lspv <br /><br />查看当前系统的详细配置： <br />lscfg -pv <br />也可以显示某一设备的配置： <br />lscfg -vl rmt0 <br /><br />查看当前系统的芯片名称、系统名、节点名、型号等： <br />uname -p # 显示芯片名称，例如：powerpc <br />uname -r # 显示操作系统的发行号 <br />uname -s # 显示系统名，例如：AIX <br />uname -n # 显示节点名 <br />uname -a # 显示系统名、节点名、版本、机器ID <br />uname -M # 显示型号，例如：IBM,7046-B50 <br />uname -v # 显示操作系统版本 <br />uname -m # 显示机器ID <br /><br /><br />· 关于AIX <br /><br />查看AIX的版本、发行号、ML（Maintenance Level）级别： <br />oslevel -r <br />或 <br />lslpp -h bos.rte <br /><br />如何改变文件系统大小，例如：将/usr文件系统增加1000000字节： <br />chfs -a size=+1000000 /usr <br /><br />如何使用CD： <br />mount -V cdrfs -o ro /dev/cd0 /cdrom <br /><br />查看本机的IP地址： <br />Ifconfig -a <br />或 <br />host Fully_Qualified_Host_Name <br />例如：host cyclop.austin.ibm.com <br /><br />查找哪一个文件集（fileset）包含特定的文件，例如：查找/usr/bin/vmstat属于哪一个文件集。 <br />lslpp -w /usr/bin/vmstat <br /><br />显示哪一个文件集包含/usr/bin/svmon： <br />Which_fileset svmon <br /><br />查看某一级别的ML中所有文件是否都已经安装： <br />instfix -i | grep ML <br /><br />如何确定某一补丁（fix）是否安装，例如：查看IY24043是否安装 <br />instfix -ik IY24043 <br /><br />显示哪些文件集需要安装或修改： <br />lppchk -v <br /><br />查看交换区（paging space）的分配和使用： <br />lsps -a <br /><br /><br />· 关于卷组和逻辑卷 <br /><br />创建卷组： <br />mkvg -y name_of_volume_group -s partition_size list_of_hard_disks <br />partition_size单位是MB，它是1到1024之间的一个数。（2的次幂，例如：1, 2, 4, 8, 16, 32等，缺省是4MB。） <br /><br />创建逻辑卷： <br />mklv -y name_of_logical_volume name_of_volume_group number_of_partition <br /><br />显示当前系统的所有卷组： <br />Lsvg <br /><br />显示卷组rootvg的详细信息： <br />lsvg rootvg <br /><br />显示属于rootvg的所有硬盘： <br />lsvg -p rootvg <br /><br />如何添加一个硬盘到卷组中： <br />extendvg Volume_Group_Name hdisk0 hdisk1 ... hdiskn <br /><br /><br />如何替换一个硬盘： <br />1． extendvg Volume_Group_Name hdisk_new <br />2． migratepv hdisk_bad hdisk_new <br />3． reducevg -d Volume_Group_Name hdisk_bad <br /><br />如何做一个逻辑卷镜像： <br />1． mklvcopy Logical_Volume_Name Number_of_copies <br />2． Syncvg Volume_Group_Name <br /><br /><br />在AIX上，有一个很方便的系统管理命令smit。上面提到的命令中，如逻辑卷操作部分就可以smit轻松的完成。 <br /><br />这里介绍的命令只是AIX中的一小部分。更多更详细的内容请参考AIX系统手册和技术红皮书。<br /><img src ="http://www.cnitblog.com/nanacy1981/aggbug/20036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/nanacy1981/" target="_blank">unearthly bone</a> 2006-12-04 14:04 <a href="http://www.cnitblog.com/nanacy1981/articles/20036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>