附录 B. 调整、技巧和管理任务

本节中的一些技巧是 Linux 系统特有的。大多数技巧通常适用于 UNIX 系统。

Tip

du 实用程序命令: 您可以使用 du 实用程序来估计文件空间使用情况。例如,要确定以下目录树的大小(以兆字节为单位):/var/log//home/目录树,请键入以下命令
[root@deep] /# du -sh /var/log /home

3.5M    	/var/log
350M    	/home

请记住,以上命令将报告数据的实际大小。现在您知道例如/home正在使用 350M,您可以进入该目录并使用 du -sh * 来定位最大的文件所在位置。

[root@deep] /# cd /home/
[root@deep ]/home# du -sh *

343M    	admin
11k     	ftp
6.8M    	httpd
12k     	lost+found
6.0k    	named
6.0k    	smbclient
6.0k    	test
8.0k    	www

Tip: 您可以将此命令添加到您的 crontab,以便每天收到包含所需磁盘空间列表的电子邮件,并且您无需 постоянно 登录即可监控它。

Tip

查找路由: 如果您想找出从您的机器发送到远程主机的数据包的路由,只需发出以下命令
[root@deep] /# traceroute www.redhat.com

traceroute to www.portal.redhat.com (206.132.41.202), 30 hops max, 38 byte packets
 1  ppp005.108-253-207.mtl.mt.videotron.net (207.253.108.5)  98.584 ms  1519.806 ms  109.911 ms
 2  fa5-1-0.rb02-piex.videotron.net (207.96.135.1)  149.888 ms  89.830 ms  109.914 ms
 3  ia-tlpt-bb01-fec1.videotron.net (207.253.253.53)  149.896 ms  99.873 ms  139.930 ms
 4  ia-cduc-bb02-ge2-0.videotron.net (207.253.253.61)  99.897 ms  169.863 ms  329.926 ms
 5  if-4-1.core1.Montreal.Teleglobe.net (207.45.204.5)  409.895 ms  1469.882 ms  109.902 ms
 6  if-1-1.core1.NewYork.Teleglobe.net (207.45.223.109)  189.920 ms  139.852 ms  109.939 ms
 7  206.132.150.133 (206.132.150.133)  99.902 ms  99.724 ms  119.914 ms
 8  pos1-0-2488M.wr2.CLE1.gblx.net (206.132.111.89)  189.899 ms  129.873 ms  129.934 ms
 9  pos8-0-2488m.wr2.kcy1.globalcenter.net (206.132.111.82)  169.890 ms  179.884 ms  169.933 ms
10  206.132.114.77 (206.132.114.77)  199.890 ms  179.771 ms  169.928 ms
11  pos8-0-2488M.wr2.SFO1.gblx.net (206.132.110.110)  159.909 ms  199.959 ms  179.837 ms
12  pos1-0-2488M.cr1.SNV2.gblx.net (208.48.118.118)  179.885 ms  309.855 ms  299.937 ms
13  pos0-0-0-155M.hr2.SNV2.gblx.net (206.132.151.46)  329.905 ms  179.843 ms  169.936 ms
14  206.132.41.202 (206.132.41.202)  2229.906 ms  199.752 ms  309.927 ms
其中 <www.redhat.com> 是您要跟踪的主机名或 IP 地址。

Tip

显示网页访问次数: 要快速显示您的网页被访问的次数,请使用以下命令
[root@deep] /# grep "GET / HTTP" /var/log/httpd/access_log | wc -l

      467

Tip

完全关闭大多数服务: 作为 root 用户,您可以使用以下命令完全关闭大多数服务
[root@deep] /# killall httpd smbd nmbd slapd named
以上命令将分别关闭 Apache 服务器、Samba 服务、LDAP 服务器和 DNS 服务器。

Tip

终端顶部的时钟: 编辑profile文件,vi/etc/profile并添加以下行
PROMPT_COMMAND='echo -ne "\0337\033[2;999r\033[1;1H\033[00;44m\033[K"`date`"\033[00m\0338"'
结果将如下所示


Clock on terminal window

Tip

您的服务器上安装了 lsof 吗?: 如果没有,请安装它并执行 lsof-i。这应该列出您的机器上打开了哪些端口。lsof 程序是一个很棒的工具,因为它可以告诉您哪些进程正在侦听给定的端口。
[root@deep] /# lsof -i

COMMAND    PID     USER   FD    TYPE   DEVICE SIZE NODE  NAME
Inetd	   344     root   4u  	IPv4    327        TCP 	 *:ssh (LISTEN)
sendmail   389     root   4u  	IPv4    387        TCP 	 *:smtp (LISTEN)
smbd       450     root   5u  	IPv4    452        TCP 	 deep.openna.com:netbios-ssn (LISTEN)
nmbd       461     root   5u  	IPv4    463        UDP 	 *:netbios-ns
nmbd       461     root   6u  	IPv4    465        UDP 	 *:netbios-dgm
nmbd       461     root   8u  	IPv4    468        UDP 	 deep.openna.com:netbios-ns
nmbd       461     root   9u  	IPv4    470        UDP 	 deep.openna.com:netbios-dgm
named     2599	   root   4u  	IPv4   3095        UDP 	 *:32771
named     2599	   root   20u  	IPv4   3091        UDP 	 localhost.localdomain:domain
named     2599	   root   21u  	IPv4   3092        TCP 	 localhost.localdomain:domain (LISTEN)
named     2599	   root   22u  	IPv4   3093        UDP 	 deep.openna.com:domain
named     2599	   root   23u  	IPv4   3094        TCP 	 deep.openna.com:domain (LISTEN)

Tip

通过 ssh 协议在远程服务器上执行命令: ssh 命令还可用于在远程系统上运行命令,而无需登录。命令的输出会显示,并且控制权返回到本地系统。这是一个示例,它将显示远程系统上所有已登录的用户。
[admin@deep /]$ ssh mail.openna.com who

admin@mail.openna.com's password:
root	tty1	Dec  2 14:45
admin	tty2	Dec  2 14:45
wahib	pts/0	Dec  2 11:38

Tip

文件名补全: Tab 文件名补全允许您键入文件名或程序的部分内容,然后按 TAB 键,它将为您补全文件名。如果存在多个以您已键入内容开头的文件或程序,它会发出蜂鸣声,然后当您再次按 TAB 键时,它将列出所有以您最初键入内容开头的文件。

Tip

特殊字符: 您可以使用快捷键(一个或多个您在键盘上按下的键来完成任务)快速完成您经常执行的任务。例如,特殊字符可以在 Linux shell 上使用,如下所示

  • Control+d:如果您在 shell 中并按下 Control+d,您将被注销。

  • Control+l:如果您在 shell 中并按下 Control+l,您将清除屏幕。

  • ?:这是一个通配符。它可以代表单个字符。如果您在命令行中指定了类似 "m?b" 的内容,Linux 将查找 mob、mib、mub 以及 a-z、0-9 之间的每个其他字母/数字。

  • *:这可以代表任意数量的字符。如果您指定了 "mi*",它将使用 "mit"、mim、miiii、miya 以及任何以 mi 开头的内容。"m*l" 可以是 mill、mull、ml 以及任何以 m 开头并以 l 结尾的内容。

  • [] - 指定范围。如果我执行 m[o,u,i]m,Linux 会认为:mim、mum、mom。如果我执行:m[a-d]m,Linux 会认为:mam、mbm、mcm、mdm。明白了吗?[]?* 通常与复制、删除和目录列表一起使用。

Important: Linux 中的一切 都区分大小写。这意味着 "Bill" 和 "bill" 不是同一件事。这允许存储许多文件,因为 "Bill"、"bill"、"bIll"、"biLl" 等可以是不同的文件。因此,当使用 [] 时,如果任何您正在处理的文件包含大写字母,则必须指定大写字母。尽管如此,UNIX 中的大多数内容都是小写的。