11:整理你的数据库

难度:简单

应用程序:MySQL

无论何时你改变一个MySQL数据库的结构,或者从中删掉大量的数据,文件都有可能被分散,并导致一些性能损失。尤其是当运行查询命令时这个情况最容易发生。每当你要改动数据库的时候,记得运行这个优化器:

  1. mysqlcheck -o <databasename> 

也许你会发现,如果你使用VARCHAR文件,有必要定期的整理你的数据库表:这个变长列variable-length columns)是非常倾向于分裂的。

12:更快的邮件

难度:简单

应用程序:KMail

连三秒钟都不想花费在找邮箱客户端上面?不想被桌面上堆积成山日渐腐烂的图标搞得找不到鼠标指针?不管你正在KDE里干什么,按几下键盘就可以发邮件了。输入:

  1. mailto:plop@ploppypants.com 

按下return,KMail将会自动启动,为你的至理名言做好准备。你甚至不需要填写完整的邮件地址。这对Internet地址也是有效的:尝试输入www.slashdot.org来启动浏览器。

13:同化你的构造

难度:简单

应用程序:GCC

如果你运行一个拥有适量RAM的多处理机系统SMP),你会发现,在写代码时,运行一个parallel make很有好处。与按照默认方式运行make并执行serial builds相比,parallel build 是一种很有效的改善方法。让make在building的时候允许同时存在多个child,用如下的-j转换即可:

  1. make -j4; make -j4 modules 

14:节省电池电源

难度:中等

应用程序:hdparm

很可能你已经对使用hdparm来调整一个硬件驱动很熟悉了,但是它还能节约你的笔记本的电池寿命,或者通过降低硬盘转速来使生活更宁静。

  1. hdparm -y /dev/hdb 
  2. hdparm -Y /dev/hdb 
  3. hdparm -S 36 /dev/hdb 

按顺序,这些命令将让硬件转换成Standby待命)模式,再转换成Sleep睡眠)模式,并且最终设置Automatic自动)旋转超时。这个结尾包含一个以5秒为单位的一块块数字变量例如,值为12就等同于一分钟)。

顺便说一下,这个降低旋转时间至5秒为单位的习惯真值得拿一个特别的用户友好奖——这个值的设置也许有什么历史原因,但我们不知道。如果你恰好知道为什么,请来信告知我们!

15:无线速度管理

难度:中等

应用程序:iwconfig

一个radio发送/接受设备和其他设备间的传输速度,取决于有多少可用信号。在信号减弱的时候如需维持传输,就需要降低radio的传输速度。一般情况下,radio都会自己找到可用信号,并自动选择最快的速度。

在边缘区域中,信号强度勉强够用,这时候就可能因radio不断调试连接速度而造成不必要的包丢失。如果不能加强天线增益,或移动设备位置来获取更充足的信号,可以尝试强制让card同步到一个较低的速率。这样,radio就会减少调试频率,实际上,还会比使用持续触发的链接传输得快一些。不同的驱动器有不同的链接速度设置方法。在Linux中,可用iwconfig来设置速度:

  1. iwconfig eth0 rate 2M 

这个指令能强制使广播总是同步在2Mbps,即使还存在其他可用速度。你也可以设置一个明确的速度作为上限,允许卡自动按照任何低于这个上限的速度来工作,但是不能高于它。例如,你可以把它作用于上文举例的连接上:

  1. iwconfig eth0 rate 5.5M auto 

如上的指令可以让驱动器将速度上限设为5.5Mbps,只慢不快。想要将card恢复为全自动缩放,只需要制定它自己自动工作。

  1. iwconfig eth0 rate auto 

通常卡在1Mbps时比它们在11Mbps时可以延伸的更远。在这两种速率之间,Orinoco卡有12dB的差别,即降低数据速率可获得的潜在传输距离的四倍。

16:疏通开端口

难度:中等

应用程序:netstat

要获取在Linux服务器上处于监听状态的网络服务器的列表,可使用netstat程序:

  1. root@catlin:~# netstat -lnp 
  2. Active Internet connections (only servers) 
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
  4. tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl 
  5. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd 
  6. tcp 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named 
  7. tcp 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named 
  8. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named 
  9. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd 
  10. udp 0 0 0.0.0.0:32768 0.0.0.0:* 220/named 
  11. udp 0 0 10.42.3.2:53 0.0.0.0:* 220/named 
  12. udp 0 0 10.42.4.6:53 0.0.0.0:* 220/named 
  13. udp 0 0 127.0.0.1:53 0.0.0.0:* 220/named 
  14. udp 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd 
  15. raw 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd 

如上消息告诉你PID为698的进程是一个绑定在5280端口的Perl进程。如果你不是超级用户,系统将不会显示哪个程序是运行在哪个端口上的。

17:更快的硬件驱动

难度:高级

应用程序:hdparm

也许你已经知道hkparm工具可以用于测试硬盘速度和更改一些设置。它还可以用于优化驱动性能,并且开启一些默认关闭的功能。在我们开始之前,敬告您,改变驱动选项可能会造成数据损坏,所以首先请备份你所有的重要数据。如下命令可以用来测试速度:

  1. hdparm -Tt /dev/hda 

你将会看到类似于这样的东西:

  1. /dev/hda: 
  2. Timing buffer-cache reads: 128 MB in1.64 seconds =78.05 MB/sec 
  3. Timing buffered disk reads:64 MB in 18.56 seconds = 3.45MB/sec 

现在我们可以尝试让它提速。找出你的驱动目前设置使用的是哪个选项,然后传递给hdparm这个硬件的名称:

  1. hdparm /dev/hda 
  2. /dev/hda: 
  3. multcount=16 (on) 
  4. I/O support=0 (default 16-bit) 
  5. unmaskirq=0 (off) 
  6. using_dma=0 (off) 
  7. keepsettings =0 (off) 
  8. readonly =0 (off) 
  9. readahead=8 (on) 
  10. geometry = 40395/16/63, sectors = 40718160start = 0 

这相当于一个默认设置。多数的Linux发行版本都会选择一个可以运行在多数硬件上的安全选项。为了获得更快的速度,你可能想要激活dma模式,然后当然要调整I/O支持。多数现代计算机支持模式3,这是一个近乎双倍通量的32位转换模式。你也可以尝试:

  1. hdparm -c3 -d1/dev/hda 

然后返回这个速度,查看一下不同。检验你的硬件支持哪些模式,然后可以在hdparm的man手册中学习如何设置它们。

18:在你手中的可用时间

难度:高级

应用程序:Perl

对计算来说,浪费的资源就是那些本可以派上更好的用场的资源。不管你还运行了什么别的程序,为什么不尝试运行一个进程,在终端标题栏实时显示当前的平均负载呢?

将这个存为一个脚本并命名为tl,然后把它存到你的~/bin目录下:

  1. #!/usr/bin/perl -w 
  2. use strict; 
  3. $|++; 
  4. my $host=`/bin/hostname`; 
  5. chomp $host; 
  6. while(1) { 
  7. open(LOAD,"/proc/loadavg") || die "Couldn't open /proc/loadavg: $!\n"; 
  8. my @load=split(/ /,<LOAD>); 
  9. close(LOAD); 
  10. print "$host: $load[0] $load[1] $load[2] at ", scalar(localtime); 
  11. print "07"; 
  12. sleep 2; 

如果你想用用load average和你登陆的机器的当前时间,来替换titlebar名字,与西宁tl&即可。它会很恰当的在后台运行,即使你运行一个类似Vim的交互式程序。

19:不使用X完成抓取一次屏幕截图

难度:简单

应用程序:Shell

确实有很多屏幕捕获的工具,但是他们大部分都是基于X的。这导致了一个问题,当你运行一个X应用程序时,将会干扰这个你想要抓取的应用程序——或许是一个游戏或者甚至是一个Linux安装程序。但如果你使用了超棒的ImageMagick译注:一个开源的图片处理工具集和开发包)导入命令,你就可以通过控制台来对X模块进行抓取。很简单,打开一个虚拟终端例如Ctrl+Alt+F1)然后输入如下:

  1. chvt 7; sleep 2; import -display :0.0 -window root sshot1.png; chvt 1; 

chvt命令改变了虚拟终端,而sleep命令给重绘屏幕提供了一个时间。导入命令会在最后的chvt命令把你再次打回到虚拟终端之前,捕获所有的显示并且保存到一个文件中。请确保你把所有的命令都输入在同一行中。

这是甚至在Linux安装程序上也是有效的,很多安装程序都只留下一个控制台而转去后台运行——一个一流的到处运行的屏幕抓取器只需要加载一些它所需要的库到一个floppy译注:磁盘)/CD上。

20:远程访问你的程序

难度:简单

应用程序:X

如果你想要躺在床上使用你的Linux笔记本从你的Window机器上访问你的应用程序,可以使用SSH来实现。首先你需要在/etc/ssh/sshd_config中激活以下设置:

  1. X11Forwarding yes 

现在我们可以使用如下命令在192.168.0.2上运行GIMP:

  1. ssh -X 192.168.0.2 gimp 


相关内容