system.html
来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· HTML 代码 · 共 4,056 行 · 第 1/5 页
HTML
4,056 行
<SAMPCLASS="COMPUTEROUTPUT">1880</SAMP></PRE></FONT></TD></TR></TABLE></DD><DT><ANAME="PROCINFOREF"></A><BCLASS="COMMAND">procinfo</B></DT><DD><P>从<AHREF="devproc.html#DEVPROCREF"><TTCLASS="FILENAME">/proc</TT> pseudo-filesystem</A>中提取并显示所有信息和统计资料. 这个命令将给出更详细的信息. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">procinfo | grep Bootup</KBD><SAMPCLASS="COMPUTEROUTPUT">Bootup: Wed Mar 21 15:15:50 2001 Load average: 0.04 0.21 0.34 3/47 6829</SAMP></PRE></FONT></TD></TR></TABLE></DD><DT><ANAME="LSDEVREF"></A><BCLASS="COMMAND">lsdev</B></DT><DD><P>列出系统设备, 也就是显示所有安装的硬件. </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">lsdev</KBD><SAMPCLASS="COMPUTEROUTPUT">Device DMA IRQ I/O Ports ------------------------------------------------ cascade 4 2 dma 0080-008f dma1 0000-001f dma2 00c0-00df fpu 00f0-00ff ide0 14 01f0-01f7 03f6-03f6 ...</SAMP> </PRE></FONT></TD></TR></TABLE> </P></DD><DT><ANAME="DUREF"></A><BCLASS="COMMAND">du</B></DT><DD><P>递归的显示(磁盘)文件的使用状况. 除非特殊指定, 否则默认是当前工作目录. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><BCLASS="COMMAND">du -ach</B><SAMPCLASS="COMPUTEROUTPUT">1.0k ./wi.sh 1.0k ./tst.sh 1.0k ./random.file 6.0k . 6.0k total</SAMP></PRE></FONT></TD></TR></TABLE></DD><DT><ANAME="DFREF"></A><BCLASS="COMMAND">df</B></DT><DD><P>使用列表的形式显示文件系统的使用状况. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><BCLASS="COMMAND">df</B><SAMPCLASS="COMPUTEROUTPUT">Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 273262 92607 166547 36% / /dev/hda8 222525 123951 87085 59% /home /dev/hda7 1408796 1075744 261488 80% /usr</SAMP></PRE></FONT></TD></TR></TABLE></DD><DT><BCLASS="COMMAND">dmesg</B></DT><DD><P>将所有的系统启动消息输出到<TTCLASS="FILENAME">stdout</TT>上. 方便除错, 并且可以查出安装了哪些设备驱动和察看使用了哪些系统中断. <BCLASS="COMMAND">dmesg</B>命令的输出当然也放在脚本中, 并使用<AHREF="textproc.html#GREPREF">grep</A>, <AHREF="sedawk.html#SEDREF">sed</A>, 或<AHREF="awk.html#AWKREF">awk</A>来进行分析. </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">dmesg | grep hda</KBD><SAMPCLASS="COMPUTEROUTPUT">Kernel command line: ro root=/dev/hda2 hda: IBM-DLGA-23080, ATA DISK drive hda: 6015744 sectors (3080 MB) w/96KiB Cache, CHS=746/128/63 hda: hda1 hda2 hda3 < hda5 hda6 hda7 > hda4</SAMP> </PRE></FONT></TD></TR></TABLE> </P></DD><DT><BCLASS="COMMAND">stat</B></DT><DD><P>显示一个或多个给定文件(也可以是目录文件或设备文件)的详细统计信息(<EM>stat</EM>istic). </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">stat test.cru</KBD><SAMPCLASS="COMPUTEROUTPUT"> File: "test.cru" Size: 49970 Allocated Blocks: 100 Filetype: Regular File Mode: (0664/-rw-rw-r--) Uid: ( 501/ bozo) Gid: ( 501/ bozo) Device: 3,8 Inode: 18185 Links: 1 Access: Sat Jun 2 16:40:24 2001 Modify: Sat Jun 2 16:40:24 2001 Change: Sat Jun 2 16:40:24 2001</SAMP> </PRE></FONT></TD></TR></TABLE> </P><P>如果目标文件不存在, <BCLASS="COMMAND">stat</B>将会返回一个错误消息. </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">stat nonexistent-file</KBD><SAMPCLASS="COMPUTEROUTPUT">nonexistent-file: No such file or directory</SAMP> </PRE></FONT></TD></TR></TABLE> </P></DD><DT><ANAME="VMSTATREF"></A><BCLASS="COMMAND">vmstat</B></DT><DD><P>显示虚拟内存的统计信息. </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">vmstat</KBD><SAMPCLASS="COMPUTEROUTPUT"> procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 0 0 0 0 11040 2636 38952 0 0 33 7 271 88 8 3 89</SAMP> </PRE></FONT></TD></TR></TABLE> </P></DD><DT><BCLASS="COMMAND">netstat</B></DT><DD><P>显示当前网络的统计状况和信息, 比如路由表和激活的连接, 这个工具将访问<TTCLASS="FILENAME">/proc/net</TT>(<AHREF="devproc.html"> 27</A>)中的信息. 请参考<AHREF="procref1.html#CONSTAT">例子 27-3</A>. </P><P><BCLASS="COMMAND">netstat -r</B>等价于<AHREF="system.html#ROUTEREF">route</A>命令. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">netstat</KBD><SAMPCLASS="COMPUTEROUTPUT">Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 11 [ ] DGRAM 906 /dev/log unix 3 [ ] STREAM CONNECTED 4514 /tmp/.X11-unix/X0 unix 3 [ ] STREAM CONNECTED 4513 . . .</SAMP></PRE></FONT></TD></TR></TABLE></DD><DT><ANAME="UPTIMEREF"></A><BCLASS="COMMAND">uptime</B></DT><DD><P>显示系统运行的时间, 还有其他的一些统计信息. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">uptime</KBD><SAMPCLASS="COMPUTEROUTPUT">10:28pm up 1:57, 3 users, load average: 0.17, 0.34, 0.27</SAMP></PRE></FONT></TD></TR></TABLE><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="90%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./images/note.gif"HSPACE="5"ALT="Note"></TD><TDALIGN="LEFT"VALIGN="TOP"><P><ICLASS="FIRSTTERM">load average</I>如果小于或等于1, 那么就意味着系统会马上处理. 如果大于1, 那么就意味着进程需要排队. 如果大于3, 那么就意味着, 系统性能已经显著下降了. </P></TD></TR></TABLE></DIV></DD><DT><ANAME="HNAMEREF"></A><BCLASS="COMMAND">hostname</B></DT><DD><P>显示系统的主机名字. 这个命令在<TTCLASS="FILENAME">/etc/rc.d</TT>安装脚本(或类似的<TTCLASS="FILENAME">/etc/rc.d/rc.sysinit</TT>)中设置主机名. 等价于<BCLASS="COMMAND">uname -n</B>, 并且与<AHREF="internalvariables.html#HOSTNAMEREF">$HOSTNAME</A>内部变量很相像. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">hostname</KBD><SAMPCLASS="COMPUTEROUTPUT">localhost.localdomain</SAMP><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">echo $HOSTNAME</KBD><SAMPCLASS="COMPUTEROUTPUT">localhost.localdomain</SAMP></PRE></FONT></TD></TR></TABLE><P>与<BCLASS="COMMAND">hostname</B>命令很相像的命令还有<BCLASS="COMMAND">domainname</B>, <BCLASS="COMMAND">dnsdomainname</B>, <BCLASS="COMMAND">nisdomainname</B>, 和<BCLASS="COMMAND">ypdomainname</B>命令. 使用这些命令来显示(或设置)系统DNS或NIS/YP域名. 对于<BCLASS="COMMAND">hostname</B>命令来说, 使用不同的选项就可以分别达到上边这些命令的目的. </P></DD><DT><ANAME="HOSTIDREF"></A><BCLASS="COMMAND">hostid</B></DT><DD><P>用16进制表示法来显示主机的32位ID. </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">hostid</KBD><SAMPCLASS="COMPUTEROUTPUT">7f0100</SAMP></PRE></FONT></TD></TR></TABLE> </P><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="90%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./images/note.gif"HSPACE="5"ALT="Note"></TD><TDALIGN="LEFT"VALIGN="TOP"><P>这个命令据说对于特定系统可以获得一个<SPANCLASS="QUOTE">"唯一"</SPAN>的序号. 某些产品的注册过程可能会需要这个序号来作为用户的许可证. 不幸的是, <BCLASS="COMMAND">hostid</B>只会使用字节对转换的方法来返回机器的网络地址, 网络地址用16进制表示. </P><P>对于一个典型的没有网络的Linux机器来说, 它的网络地址保存在<TTCLASS="FILENAME">/etc/hosts</TT>中. </P><P> <TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">cat /etc/hosts</KBD><SAMPCLASS="COMPUTEROUTPUT">127.0.0.1 localhost.localdomain localhost</SAMP></PRE></FONT></TD></TR></TABLE> </P><P>碰巧, 通过对<KBDCLASS="USERINPUT">127.0.0.1</KBD>进行字节转换, 我们获得了<KBDCLASS="USERINPUT">0.127.1.0</KBD>, 用16进制表示就是<KBDCLASS="USERINPUT">007f0100</KBD>, 这就是上边<BCLASS="COMMAND">hostid</B>命令返回的结果. 这样几乎所有的无网络的Linux机器都会得到这个<EM>hostid</EM>. </P></TD></TR></TABLE></DIV></DD><DT><BCLASS="COMMAND">sar</B></DT><DD><P><BCLASS="COMMAND">sar</B>(System Activity Reporter系统活动报告)命令将会给出系统统计的一个非常详细的概要. Santa Cruz Operation(<SPANCLASS="QUOTE">"以前的"</SPAN>SCO)公司在1999年4月份以开源软件的形式发布了<BCLASS="COMMAND">sar</B>. </P><P>这个命令并不是基本Linux发行版的一部分, 但是你可以从<AHREF="http://perso.wanadoo.fr/sebastien.godard/"TARGET="_top">sysstat utilities</A>所编写的<AHREF="mailto:sebastien.godard@wanadoo.fr"TARGET="_top">Sebastien Godard</A>包中获得这个工具. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="SCREEN"><SAMPCLASS="PROMPT">bash$ </SAMP><KBDCLASS="USERINPUT">sar</KBD><SAMPCLASS="COMPUTEROUTPUT">Linux 2.4.9 (brooks.seringas.fr) 09/26/0310:30:00 CPU %user %nice %system %iowait %idle10:40:00 all 2.21 10.90 65.48 0.00 21.4110:50:00 all 3.36 0.00 72.36 0.00 24.2811:00:00 all 1.12 0.00 80.77 0.00 18.11Average: all 2.23 3.63 72.87 0.00 21.2714:32:30 LINUX RESTART15:00:00 CPU %user %nice %system %iowait %idle15:10:00 all 8.59 2.40 17.47 0.00 71.5415:20:00 all 4.07 1.00 11.95 0.00 82.9815:30:00 all 0.79 2.94 7.56 0.00 88.71Average: all 6.33 1.70 14.71 0.00 77.26</SAMP> </PRE></FONT></TD></TR></TABLE></DD><DT><BCLASS="COMMAND">readelf</B></DT><DD><P>这个命令会显示<EM>elf</EM>格式的二进制文件的统计信息. 这个工具是<EM>binutils</EM>工具包的一部分. </P><TABLEBORDER="1"BGCOLOR="#E0E0E0"WIDTH="90%"><TR><TD
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?