每一个极客都应该知道的Linux技巧

是什么区分开普通的Linux用户和超级极客的呢?很简单:用在学习那些使长时工做转变为一瞬间工做的技巧、诀窍、秘诀和技术上的时间。若是你想提升效率而又不用作这些搜集资料的跑腿活儿,那咱们已经收集了50多条简单易学的Linux技巧,以帮助你更潇洒地工做,而且最大限度的利用你的电脑。开始享受吧!html

1:检查不是由你运行的程序mysql

难度:高级linux

应用程序:bash(译注:UNIX或者LINUX的shell)sql

想象下这个场景-你已经准备好了要和同事在办公室里对战一局快速的Crack Attack(译注:一款免费的OpenGL游戏,相似俄罗斯方块),不料却发现,当你正准备要击败你这个傲慢的下属时,方块却中止了-是什么让你的机器变得这么慢?这确定是由于其余的用户运用他们娴熟的经验来盗取你宝贵的CPU时间、服务器或者其余的诡异方式,真烦人!shell

好,让咱们列举出系统中全部不是由你运行的程序!数据库

ps aux | grep -v `whoami`

或者,更巧妙些的是,为何不列出最占用时间的前十个程序呢:windows

ps aux--sort=-%cpu | grep -m 11 -v `whoami`

也许最好使用root权限来运行这条指令,由于这样能够过滤出大部分活跃的后台程序。如今你有了这些信息,你能够终止他们的进程,可是更“卑鄙”的是反复地在他们的桌面上运行xeyes(译注:Linux下的一条好玩的命令)!浏览器

2:在多个文件中替换掉相同的文本缓存

难度:中等sass

应用程序:find(译注:Linux下的一条命令)/Perl

若是你有个文件,想在多个位置进行替换,这里有不少方法来实现。调用test[someting]把当前目录里全部文件中的Windows替换成Linux,你能够像这样运行它:

perl -i -pe 's/Windows/Linux/;' test*

要替换当前目录以及下层目录里全部文件中的Windows为Linux,你能够这样运行:

find . -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt

或者若是你更须要让它只做用于普通文件上:

find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'

节省了大量的时间而且得到了高水平的大师等级!

3:合并一个不稳定的终端

难度:简单

应用程序:bash

咱们都已经作过这件事了-偶尔使用less或者cat来列出一个文件,或者以浏览二进制文件而结束,这一般包含各类能够轻易弄乱你的终端显示的控制代码、警报声、一些有趣的字符,以及一些奇怪的颜色组合,最后,你的字体将会被一些难以辨认的字符所替代,而你殊不知道该怎么办。显然bash仍然继续工做着,可是你就是不能明白到底发生了什么!发送一个初始化命令给这个终端:

reset

而后一切就再次恢复正常了。

4:创造Mozilla关键词

难度:简单

应用程序:Firefox/Mozilla

在浏览器上的一个有用的特征是,它们有一种能力,能够经过输入gg onion来经过Google搜索onion这个词的一切。同一功能在Mozilla上也可实现,经过单击Bookmarks(书签)>Manage Bookmarks(管理书签)而后添加一个新的书签,添加的URL就像这样:

http://www.google.com/search?q=%s

如今选择书签编辑器中的条目而且点击Properties(属性)按钮,如今输入一个相似gg的关键字(或者能够是你选择的任何字符)就好了。在URL中的%s将被关键字以后的文本内容替代。你能够用这种方法向其余一些依赖你当前URL信息的网站发送请求。

或者,右击一个搜索区域而后选择菜单选项“为这个搜索添加一个关键词…”。接下来的会话将容许你使用一个指定的关键词。

5:运行多种X会话

难度:简单

应用程序:X

若是你给别人分享了你的Linux box(),而厌烦了不断的登入、登出,当你知道了这不是必要的时候,可能会如释重负。假设你的电脑以图形模式启动(runlevel 5),经过同时按下Control+Alt+F1键-你将获得一个登录提示。输入你的登陆名以及密码而后执行:

startx -- :1

来进入你的图形环境。按下Ctrl+Alt+F7来回到在你以前的用户会话,若是想回到你本身的用户会话则按下Ctrl+Alt+F8。

你能够重复使用这项技巧:F1键到F6键能够识别六个控制台会话,而F7到F12能够识别六个X会话。警告:尽管这在多数状况下是适用的,可是不一样的变种可能用不一样的方式来实现这项功能。

6:更快地浏览

难度:简单

应用程序:KDE(译注:一种Linux的桌面环境)

KDE是一个虽然小众,可是在提高你的网页浏览经验方面颇有用的选择。启动一个KDE控制中心,而后从工具条中选择System(系统)>KDE performance。如今你能够选择预加载浏览器实例。实际上,这意味著浏览器在开机的时候就开始运行,在你用以前都保持隐藏状态。当你想要使用它的时候,它几乎是瞬间出现。

7:简单地备份你的网站

难度:简单

应用程序:Backups

若是你想要从一台电脑上备份一个目录,但你仅仅想要复制改变的文件到它的备份而不是复制全部的东西到各自的备份,你可使用工具rsync来实现它。你须要在这个远程的源备份计算机上有一个帐户。下面是这条命令:

rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/

这样咱们就备份了192.168.0.2地址上/home/jono/importantfiles/目录下的全部文件到当前机器上的/home/jono/backup目录下。

8:使你的时钟保持准时

难度:简单

应用程序:NTP

若是你发现电脑上的时钟彷佛与时间脱轨了,你可使用一个特殊的NTP工具,来确保它准到只有穿实验服的人才会须要的程度。你须要安装ntpdate工具,它一般包含在NTP包中,而后你就能够与NTP服务器保持同步了:

ntpdate ntp.blueyonder.co.uk

能够在www.eecis.udel.edu/~mills/ntp/clock1b.html上得到相应的NTP服务器的列表。若是你修改了你的开机程序而且在脚本中包含这些命令,就能够确保不管什么时候你启动电脑都是彻底准时的。你还能够运行一个定时任务来校对时间。

9:找到最大的文件

难度:简单

应用程序:Shell

计算机中一个常见的问题是,你可能想删一部分大的文件(相似音频或视频片断)。以下你能够找到当前目录中最大的那个文件:

ls -lSrh

“r”的做用是将大的文件列在后面,而“h”则是给出易于人们阅读的输出(MB或者诸如此类)。你也能够搜寻最大的MP3/MPEG文件:

ls -lSrh *.mp*

你也能够经过下面这条命令搜寻最大的目录:

du -kx | egrep -v "\./.+/" | sort -n

10:Nautilus快捷键

难度:简单

应用程序:Nautilus(译注:Linux图形界面中的一个文件管理器)

尽管不少文件管理器近日来被设计为使用鼠标进行管理,但有时用键盘仍是方便些。Nautilus有一些键盘快捷键,可使你快速浏览文件:

  • 打开一个定位文件 – Ctrl+L

  • 打开父文件夹 – Ctrl+Up

  • 用方向键来浏览当前文件夹

你也可使用‘emblems’来定制文件图标。这里有少许的应用于个别文件或者组的图象展现。打开Edit(编辑) > Backgrounds and Emblems(背景和符号)菜单条目,而后拖放你想要的图片便可。

 

11:整理你的数据库

难度:简单

应用程序:MySQL

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

mysqlcheck -o <databasename>

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

12:更快的邮件

难度:简单

应用程序:KMail

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

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转换便可:

make -j4; make -j4 modules

14:节省电池电源

难度:中等

应用程序:hdparm

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

hdparm -y /dev/hdb hdparm -Y /dev/hdb hdparm -S 36 /dev/hdb

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

顺便说一下,这个下降旋转时间至5秒为单位的习惯真值得拿一个特别的用户友好奖——这个值的设置也许有什么历史缘由,但咱们不知道。若是你刚好知道为何,请来信告知咱们!

15:无线速度管理

难度:中等

应用程序:iwconfig

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

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

iwconfig eth0 rate 2M

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

iwconfig eth0 rate 5.5M auto

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

iwconfig eth0 rate auto

一般卡在1Mbps时比它们在11Mbps时能够延伸的更远。在这两种速率之间,Orinoco卡有12dB的差异,即下降数据速率可得到的潜在传输距离的四倍。

16:疏通开端口

难度:中等

应用程序:netstat

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

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

 


 

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

17:更快的硬件驱动

难度:高级

应用程序:hdparm

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

hdparm -Tt /dev/hda

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

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

如今咱们能够尝试让它提速。找出你的驱动目前设置使用的是哪一个选项,而后传递给hdparm这个硬件的名称:

hdparm /dev/hda /dev/hda: multcount=16 (on) I/O support=0 (default 16-bit) unmaskirq=0 (off) using_dma=0 (off) keepsettings =0 (off) readonly =0 (off) readahead=8 (on) geometry = 40395/16/63, sectors = 40718160, start = 0

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

hdparm -c3 -d1/dev/hda

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

18:在你手中的可用时间

难度:高级

应用程序:Perl

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

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

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

 


 

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

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

难度:简单

应用程序:Shell

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

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中激活如下设置:

X11Forwarding yes

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

ssh -X 192.168.0.2 gimp

 

21:用到man手册

难度:简单

应用程序:man

若是你在一个特殊的项目或者命令中须要帮助,man手册是一个好的入门。一般你使用man<command>来访问man手册,可是你也能够经过一个特殊的man页描述的关键词来搜索man页。举例来讲,搜索全部详述login的man页:

man -k login

当你访问了一个man页,你也可使用斜杠键来搜索一个特定的词而不是用man页自己。在你的键盘上按下“ / ”而后输入搜索项是很是简单的。

22:和你的医生对话

难度:简单

应用程序:Emacs

若是说Emacs只是个文本编辑器,就好像说Triumph只是个摩托车,或者说世界杯就是个四年一度的足球赛。好吧,它确实是个文本编辑器,但那只是一小~~~部分。举个栗子?打开编辑器,按下Esc键,紧接着按下X,而后进入doctor:你将会进入到一个离奇的对话中,有一个假想的可是熟练的精神治疗师。若是你想要磨蹭你的时间,这是一个很好的方法。

Esc-X tetris

会将你的‘编辑器’转变成一个老的、受欢迎的游乐场游戏。

疯狂到此为止了吗?绝对没有!检查你的发行版本的包,列出他们在你的Emacs上捆绑的其余功能:咱们看到有国际象棋,Perl集成,IRC chat(译注:一种聊天工具),法文翻译,HTML转换,一个Java开发环境,灵巧的编辑,甚至还有一个被称为“semantic bovinator”(语义纠错)的东西。咱们确实对最后一个能作什么的毫无头绪,可是咱们判定不管如何你都敢尝试它!(请先阅读免责声明!)

23:生成包关联图表

难度:简单

应用程序:Debian

Debian系统最受争议的是它能安装一个包,并自动知足其附属(dependency)。若是你想要以图形形式表现这些包之间的关系(这对于了解系统如何协调工做是很是有用的),你可使用Debian中非自由的Graphviz包(apt-get install graphviz)而后使用以下命令:

apt-cache dotty > debian.dot

这个命令会生成图片文件并存入dotty:

dotty debian.dot

24:卸载忙碌状态的驱动

难度:简单

应用程序:bash

你应该很熟悉这种状况-尝试去卸载一个驱动,可是系统却告诉你它处于忙碌状态。可是什么程序在占用呢?一个短小的单行代码将告诉你:

lsof +D /mnt/windows

这将返回命令和进程ID以及任何正在访问/mnt/windows目录的任务。接下来你就能够定位它们,或者使用kill命令来终结它们。

25:文本文件的转换

难度:简单

应用程序:recode

recode是一个小而实用而且能够帮你在不一样平台上使用文本文件时节省大量精力的工具。它的缺陷主要是源于换行符。一些系统使用一个换行字符,而其余的一些系统使用回车。更多其余的系统两个都用。最后的结果就是,若是你从一个平台移动文本文件到另外一个平台上,你会有太多或太少的换行符,还会有不少奇怪的字符残留。

然而,recode命令的参数是有一些神秘的,因此为何不把这种技巧和HACK 26结合到这个功能中,而后创建一些有用的别名:

alias dos2unix='recode dos/CR-LF..l1'alias unix2win='recode l1..windows-1250'alias unix2dos='recode l1..dos/CR-LF'

 


 

还有不少recode选项-它们确实能够转换大量字符间的设置。查阅man手册来获取更多信息。

26:只列出今天的文件

难度:简单

应用程序:Various

你可能熟悉这个问题,今天早些时候你建立了一个文本文档,而如今马上就须要它。然而,你想不起来你给它起了个什么好笑的名字,做为一个熟练的geek,你的家文件夹被836个不一样的文件填满了。那你要如何找到它呢?哈哈,这里有不少方法,可是这个小技巧告诉你管道和结合使用两个强力的shell命令是多么有效:

ls -al --time-style=+%D | grep `date +%D`

ls命令的参数使得这个日期戳以一种特殊的方式呈现。这个狡猾的位就是这样传递给grep来输出的。grep的参数是它本身的命令(由于是倒引号因此执行),用来将当前的日期替代成匹配的字符。你能够轻易的修改它来搜索其余特别的日期、时间、文件大小或者任何东西。结合它与HACK 26是很是节省输入的。

27:避免常见的拼写错误和长命令

难度:简单

应用程序:Shell

这个alias命令对于设立长命令的快捷键是有用的,或者说是聪明的事情。HACK 25中,咱们能够经过如下命令来获得一个新命令,lsnew:

alias lsnew=" ls -al --time-style=+%D | grep `date +%D` "

然而alias还有其余的用处。例如,解决常见的拼写错误。有多少次你在改变父目录时忽略了空格?不用再苦恼了!

alias cd..="cd .."

做为一种选择,试试重写一些已经存在的命令怎么样?

alias ls="ls -al"

像咱们同样节省一些按键,或者你老是想要完成清单。

要为每个会话激活这些快捷键,只用添加alias命令到你的用户里家文件目录中的.bashrc文件中。

28:更改Mozilla的秘密设置

难度:简单

应用程序:Mozilla

若是你想要改变Mozilla操做,可是在首选项中并无提供能够点击的选项来帮助你,这里有一个特殊的模式可让你在Mozilla中激活,这样你就能改变一切了。要访问它,在地址栏中输入这些:

about:config

这样你就能够改变表中文件里每个你感兴趣的设置的值。

其余有趣的模式包括整体信息(about:),插件详情(about:plugins),开发者信息(about:credits)和一些整体状况(about:mozilla)。

29:一个星星的背景

难度:简单

应用程序:KStars

你可能已经玩过KStars了,可是如何创造一个每次当你启动时就更新的KStars背景图呢?

KStars能够和–dump switch一块儿运行,它能够从你的启动设置中打印出一幅图片,但一点也不会增长GUI的负载。你能够写一个脚原本运行它生成一个天天都更换的桌面图片(或者你能够只是使用这个方法生成图片)。

像这样使用KStars:

kstars --dump --width 1024 --height 768 --filename = ~/kstarsback.png

你能够把它添加到~/.kde/Autostart文件夹的一个脚本中,一启动就开始运行。在浏览器中找到这个文件,把它拖到桌面上而后选择“设置为墙纸”,将它做为一个随机生成的背景图来使用。

30:直接打开一个SVG

难度:简单

应用程序:Inkscape

你能够经过shell运行Inkscape,而后直接经过一个URL来马上编辑一张图片。只用输入:

inkscape http://www.somehost.com/graphic.svg

记得要另存为一下!

 

31:不用编辑器来进行编辑

难度:中等

cut -c 8-15 file1 > file2

应用程序:好多

一般很是长的文件是很难用文本编辑器来进行操做的。若是你不时地要作这件事,可能你会发现用某些趁手的命令行工具会更快一些,就像下面这个例子同样。

从文件file1中打印第一列和第三列到文件file2中,咱们可使用awk:

awk '{print $1, $3}' file1 > file2

只输出file1中第八列到第十五列中的字符,咱们可使用cut:

cut -c 8-15 file1 > file2

要使用单词word2来替换文件file1中的单词word1,咱们可使用sed命令:

sed "s/word1/word2/g" file1 > file2

一般这是一个比打开文本编辑器更快获得结果的方式。

32:只备份选中的文件

难度:中等

应用程序:tar

想要使用tar来备份一个目录中的某一文件?你可使用-T标志。首先,用你想要备份的文件来建立一个文件:

cat >> /etc/backup.conf # /etc/passwd # /etc/shadow # /etc/yp.conf # /etc/sysctl.conf EOF

 


而后运行tar,并使用-T标志指向刚刚建立的文件。

 

tar -cjf bck-etc-`date +%Y-%m-%d`.tar.bz2 -T /etc/backup.conf

如今你已经备份好了。

33:在文件中合并列

难度:中等

应用程序:bash

在文件中拆分列是很是简单的,合并它们稍微复杂一点。下面是一个简单的完成这项工做的脚本:

#!/bin/sh length=`wc -l $1 | awk '{print $1}'` count=1[ -f $3 ] && echo "Optionally removing $3" && rm -i $3 while [ "$count" -le "$length" ] ; do a=`head -$count $1 | tail -1` b=`head -$count $2 | tail -1` echo "$a$b" >> $3 count=`expr $count + 1` done

 


 

给这个脚本命名为merge.sh而且以下运行它:

chmod u+x merge.sh

如今,若是你想要合并file1和file2中的列到file3,下面是执行方法:

/path/to/merge.sh file1 file2 file3

/path/to必须被你文件系统中的merge.sh位置所替代。

34:大小写敏感

难度:中等

应用程序:bash

有些时候,一个词在不一样操做系统间没有任何区别,在Linux中,“Command”和“command”是不一样的东西。当从Windows移动文件到Linux中时会形成一些麻烦。tr是一个小的shell功能,能够用于改变一堆文件。

#!/bin/sh for i in `ls -1`; do file1=`echo $i | tr [A-Z] [a-z] ` mv $i $file1 2>/dev/null done

 


 

经过执行这个,FILE1和fiLe2将被分别重命名为file1和file2.

35:Emacs中的宏指令

难度:中等

应用程序:Emacs

当编辑文件时,你一般会发现那些任务都是冗长和重复的,因此为了节约你的时间,你应该录制一个宏指令。在Emacs中,你将必须经历如下步骤:

1.按下 Ctrl+X 来开始一个记录。

2.插入全部你想要的按键和命令。

3.当你结束时按下Ctrl+X。

如今,你能够用如下命令来执行:

Ctrl -u <number> Ctrl -x e

<number>是你想执行宏指令的次数。若是你输入的值为0,这个宏指令将被一直执行直到文件的结束。Ctrl -x e等同于Ctrl -u 1 Ctrl-x e。

36:简单的垃圾邮件清理

难度:中等

应用程序:KMail

垃圾邮件,或者不请自来的大批邮件,已是个很广泛的问题,出于必要,如今几乎每一个人都有某种形式的垃圾邮件保护。不少ISP包含垃圾邮件过滤,可是它并无被设置的太过主动,并且一般不少都是简单的标记垃圾邮件,而后让它进来(ISP可不想由于丢失了你的邮件而被责备)。

因此,你在客户端上可能已经设置了反垃圾邮件的东西,要让它运行得更好,你能够写一些过滤器来移除被标记的垃圾邮件。标签是做为标题包含进来的。在KMail中,你能够只建立一个快速过滤器来将你的邮件装箱,或者干脆把它放到垃圾文件夹中。精确标题的使用将决定于你的ISP使用的软件,可是一般都是像SpamAssassin这样系统的相似X-Spam-Flag = YES。

在KMail中简单建立一个过滤器,选择Match Any of the Following(匹配下面的任何一个)而后输入标题细节和你须要的动做。应用过滤器到即将到来的邮件上,而后你的垃圾邮件的一半将不会再来打扰你了。

37:阅读OOo文档但不使用OOo

难度:中等

应用程序:OpenOffice.org(译注:一套跨平台办公室软件套件)

你曾经有没有过拿到一个OOo文档,可是没有OpenOffice.org来阅读?因此你就把它保存成普通的文本文件(.txt),可是被 StarOffice .sxw 格式所替代?这个文本文件能够获得拯救。首先,这个sxw文件是一个压缩文档,因此解压它:

unzip myfile.sxw

你想要的是名为’content.xml’的文件。不幸的是,它充满了xml的标签以致于很是难以辨认,因此要用一些Perl魔法将它们过滤出去:

cat content.xml | perl -p -e"s/<[^>]*>/ /g;s/\n/ /g;s/ +/ /;"

这可能丢失了不少格式,可是至少如今它是能够阅读的。

38:搜索和执行

难度:中等

应用程序:find

find命令并不仅是在寻找文件方面颇有用,它在处理如下问题时也是很是有用的。这里有一个简短的例子。

假设咱们有不少的压缩文件,如今咱们想找到全部的压缩文件:

find . -name '*.gz'

将会定位出全部当前路径下的gzip文档。可是假设咱们想要检查它们是不是有效文档,gunzip -vt选项将会帮咱们实现这个,咱们还能够机智地使用xargs结合这两个操做:

find . -name '*.gz' | xargs gunzip -vt

39:正确使用whois服务器

难度:中等

应用程序:whois

whois命令在追捕Internet上的恶棍以及给他们提供服务的ISP都是很是有用的。不幸的是,有不少whois服务器,若是你的反搜索一个域名,一般你不得不用一个指定的他们使用的TLD。然而,一些whois代理将自动转送你的查询到正确的服务器上。其中之一能够在http://whois.geektools.com/上得到。

whois -h whois.geektools.complop.info

40:驱动挂载到哪里了?

难度:中等

应用程序:bash

人们常碰到的一个问题是,你刚接通电源时,就有太多的可挂载外设(USB驱动,flash内存卡,USB键驱动)消耗光了驱动?

实际上,全部的驱动都调用一个驱动——就像usb-storage,会在日志中存储不少有用的信息。尝试:

dmesg | grep SCSI

这将从dmesg输出过滤出指定的驱动规格。你可能发现一些这样的文本:

SCSI device sda: 125952 512-byte hdwr sectors (64 MB)

这个是说你的外设是在sda上。

 

41:自动执行USB装置

难度:高级

应用程序:hotplug脚本

当添加一个特殊的外设时想要运行一个指定的应用程序?USB hotplug后台进程能够帮你!当有USB装置添加到系统中时,这个服务就会获得通知。对于须要内核驱动的装置,hotplug后台进程将在/etc/hotplug/usb/下调用一个同名的脚本,例如,这里的一个名为usb-storage的脚本。你能够直接在这个脚本的后面添加你本身的命令(或者更好的是,在它的最后添加一行来让脚本在别的地方执行)。那么你就能够播放音乐,autosync文件(译注:影像文件),搜寻图片或者其余什么的。

对于不依赖于内核驱动的装置,有一个检查表,能够用来匹配USB产品和制造商ID。不少发行版已经设置好去作一些事情,可是你能够依据你的须要定制这些脚本。到http://jphoto.sourceforge.net/ selected=sync去看一个咱们能作什么的例子。

42:重命名和调整图片大小

难度:高级

应用程序:bash

很喜欢你的新相机可是不能容忍那个糟糕的名字?你也想要准备发布它们到网上吗?没问题,一个简单的bash脚本真是你所须要的:

#!/bin/sh counter=1root=mypictresolution=400x300for i in `ls -1 $1/*.jpg`; do echo "Now working on $i" convert -resize $resolution $i ${root}_${counter}.jpg counter=`expr $counter + 1` done

 


 

保存这个脚本到一个名为picturename.sh的文件中,而后用一下命令执行它:

chmod u+x picturename.sh

而后在你的某个路径下存储它。如今,若是你在directory /path/to/pictdir下有一堆.jpg文件,全部你须要作的就是执行这个:

picturename.sh /path/to/pictdir

而在当前的目录下你会发现 mypict_1.jpg, mypict_2.jpg之类的,它们是你初始图片调整大小后的版本。你能够根据你的须要改变脚本,或者,你只是期待一个超级简单的图片大小调整,试着看看mogrify命令和它的-geometry参数。

43:安全登出

难度:简单

应用程序:bash

当你在一台共享机器上使用一个控制台,或者甚至只是在你本身的桌面使用控制台,均可能会发现当你登出时,屏幕仍然会显示谁已经登入正在作什么的痕迹。大多数发行版本将会清屏,可是有些不会。你能够经过编辑你的 ~/.bash_logout文件而后增长这个命令来解决问题:

clear

你也能够添加任何其余的有用命令在这里。

44:传输文件但不使用ftp或者scp

难度:简单

应用程序:netcat

须要传输一个目录给其余服务器可是没有FTP或者SCP使用权?那么这个小技巧将会帮助你使用netcat功能。在目的服务器上运行:

nc -l -p 1234 | uncompress -c | tar xvfp -

而且在发送服务器上运行:

tar cfp - /some/dir | compress -c | nc -w 3 [destination] 1234

如今你就能够不须要FTP而且不须要root权限,就能传送文件了。

45:备份一个Debian包清单

难度:简单

应用程序:Debian

若是你正在运行Debian而且找不到你正在运行的包,为你当前正在安装的包作一个备份是很是有用的。你能够运行以下获得一个清单:

dpkg --get-selections > debianlist.txt

这将把所有的清单放到debianlist.txt中,这样你就能够经过以下代码在不一样的计算机上安装相同的包。

dpkg --set-selections <debianlist.txt

当你复制你的系统到一个新的计算机上时,你要记住你还须要从/etc中复制配置文件。

要实际安装这些选项,使用以下指令:

apt-get -u dselect-upgrade

46:强化ssh

难度:简单

应用程序:ssh

尽管SSH是一个很是安全的链接服务器的方式,这里还有两个简单的改变,可让你进一步加强它的安全性。首先,你固然不但愿别人直接以root用户登入——他们应该以普通用户登录,而后使用su命令来转换。你能够在/etc/ssh/ssh_config 文件中经过添加以下代码改变这个件事:

PermitRootLoginno

如今惟一能获得root特权的方式是经过su,这意味着入侵者如今须要破解两个密码来获得所有的使用权。当你编辑这个文件时,找到这样一行:

Protocol 2, 1

而后把它改成以下:

Protocol 2

这将消除最初的SSH协议中的撤销选项,如今被认为是很是易于攻击的。

47:中止回应ping

难度:简单

应用程序:sysctl

ping在找出网络拓扑结构时是很是有用的命令,缺点是它只能作这件事,并且会使得网络上的黑客们更容易瞄准现场服务器。可是你能够告诉Linux忽略全部的ping服务器将不会回应。这里有不少的方法来实现它,可是最好的是使用sysctl。关掉ping回应:

sysctl -w net.ipv4.icmp_echo_ignore_all=1

想要打开它,使用:

sysctl -w net.ipv4.icmp_echo_ignore_all=0

关掉ping对你来讲是很是严重的,看看接下来的技巧。

48:下降ping速率

难度:简单

应用程序:sysctl

可能你想要保持服务器回复ping的功能,可是又想从被熟知的“ping flood”(封包洪流)的攻击中保护本身。那么你要如何完成这一壮举呢?最简单的方法是下降回应ping服务器的速率。它们仍然是有效的,但不会使服务器过载。

sysctl -w net.ipv4.icmp_echoreply_rate=10

当回复被看成一个信号地址发送时,这将会下降速率。

49:当登出的时候清理KDE

难度:简单

应用程序:bash

在Windows中有不少程序会作一些清除网络缓存,移除临时文件事情。Linux上若是也能够这样是否是很cool呢?使用KDE,你甚至不须要安装任何新的软件,startkde脚本将会自动的执行你放在特殊地方的脚本。

首先,你须要在你的.kde目录下建立一个命令shutdown的目录:

mkdir /home/username/.kde/shutdown

如今建立一个脚本,用来在关机时执行一些你想要的事情。这里是一个例子:

#!/bin/bash #clear up temp folder rm -rf ~/tmp/* #clear out caches rm -rf ~/.ee/minis/* rm -rf ~/.kde/share/cache/http/* # delete konqueror form completions rm ~/.kde/share/apps/khtml/formcompletions

如今确保你设置了正确的权限:

chmod ug+x ~/.kde/shutdown/cleanup.sh

(或者随便你叫它什么)。能够清除敏感文件,也能够经过将脚本放在你的默认KDE文件夹中有一个名为shutdown的子文件夹里,给全部用户一个全局的关机脚本。找出你的默认KDE目录在哪里,试一下:

kde-config --path exe

50:无密码的ssh

难度:中等

应用程序:ssh

厌烦了每次登录你的服务器时都要输入密码?ssh也支持密钥,因此当你登录桌面时你只能输入你的密码。在你的桌面机器上生成一个密钥对:

ssh-keygen -t dsa -C your.email@ddress

为你的密钥输入一个口令。这会将密钥放到 ~/.ssh/id_dsa and the public key in ~/.ssh/id_dsa.pub中。如今看看你是否有了一个正在运行的ssh-agent。

echo $SSH_AGENT_PID

若是安装了ssh-agent,大部分窗口管理器都会自动运行它。若是没有安装,开启一个:

eval $(ssh-agent)

如今,告诉这个代理你的密钥:

ssh-add

而后输入你的口令。你须要在每次登录时都输入口令,若是你是使用X,尝试添加:

SSH_ASKPASS=ssh-askpass ssh-add

到你的.xsession文件。(你可能须要安装ssh-askpass)如今为每一个你须要登入的服务器都建立这个目录 ~/.ssh,而后复制这个文件~/.ssh/id_dsa.pub into it as ~/.ssh/authorized_keys 。若是你是手动开启ssh-agent,当你登出时,使用以下代码终止它:

ssh-agent -k

 

51:经过ssh使用rsync

难度:中等

应用程序:Shell

rsync使大型目录结构保持同步。经过SSH使用tar远程复制一个文件系统的一部分是很是理想的,sync甚至更适合保持两台机器之间的文件系统的同步。为了使用SSH运行一个rsyns,传递给它一个-e转换:

rsync -ave ssh greendome:/home/ftp/pub/ /home/ftp/pub/

注意从源端(在greendome上)来的文件说明后面的 / ,在源说明中,一个尾部的 / 告诉rsync这个目录的内容,但不是目录自己。为了将目录放入正在复制的内容的最高等级丢掉这个 /:

rsync -ave ssh bcnu:/home/six .

这将在 ~/six/目录下保持一个与bcnu:/home/six/上的任何东西同步的复制品。rsync默认只拷贝文件和目录,可是当源端移除了文件时并不会在目的端移除它们的拷贝。为了保持复制的精确性,包含–delete这个标志:

rsync -ave ssh--delete greendome:~one/reports .

如今当老的报表从greendome上的~one/reports/中移除了,在同步版本中,每次这个命令运行时,它们也将会从~six/public_html/reports/中移除。若是你在corn中像这样运行一条命令,记得丢掉v。这将会使输出稳定(除非rsync在运行中出现问题,在这种状况下你将会收到一封有错误输出的邮件)。使用SSH做为你的rsync运输方式,这样作的好处是使数据在网络传输过程当中加密,并能够方便使用任何你已经用SSH客户端密钥创建的信任关系。

52:资源扫描

难度:中等

应用程序:nmap

例如,简单的TCP链接扫描能够在不须要root特权时进行:

通常来讲,当人们想到nmap时,都假设nmap是用来进行一些违法的网络侦查,并为恶意攻击作准备的。可是做为一个强大的工具,nmap能够成为一个白帽子,作一些比入侵网络有意义得多的事。

nmap rigel

nmap也能够经过指定范围或者CIDR符号来扫描IP地址:

nmap 192.168.0.1-254 nmap 192.168.0.0/24

nmap若是以root身份运行,能够提供更多的信息。当它以root身份运行时,经过使用-O标志,它可使用特殊的数据包来决定远程机器的操做系统。此外,你能够经过使用-sS标志来实现半开的TCP扫描。nmap将会发送一个SYN数据包到远程的主机,而后等待接收它回应的ACK。若是nmap收到一个ACK,它就知道这个端口是开放的。

这不一样于普通的TCP三次握手,客户端会发送一个SYN包,若是它收到了初始的服务器ACK,客户端随后会将一个ACK送回服务器。攻击者们时常使用这个选项来避免使他们的扫描登录到远程机器上。

nmap -sS -O rigel  Starting nmap V. 3.00 ( www.insecure.org/nmap/ )  Interesting ports on rigel.nnc (192.168.0.61):  (The 1578 ports scanned but not shown below are in state: filtered)  Port State Service  7/tcpopen echo  9/tcpopen discard  13/tcp open daytime  19/tcp open chargen  21/tcp open ftp  22/tcp open ssh  23/tcp open telnet  25/tcp open smtp  37/tcp open time  79/tcp open finger  111/tcpopen sunrpc  512/tcpopen exec  513/tcpopen login  514/tcpopen shell  587/tcpopen submission  7100/tcp open font-service  32771/tcpopen sometimes-rpc5  32772/tcpopen sometimes-rpc7  32773/tcpopen sometimes-rpc9  32774/tcpopen sometimes-rpc11  32777/tcpopen sometimes-rpc17  Remote operating system guess: Solaris 9 Beta through Release on SPARC  Uptime 44.051 days (since Sat Nov1 16:41:50 2003)  Nmap run completed -- 1 IP address (1 host up) scanned in 166 seconds

 


 

伴随着OS探测的激活,nmap能够确认OS是Solaris,可是如今你还能够知道,它多是运行在SPARC处理器上的Version 9。

一个强大的功能是能够被用于和你的nmap的XML输出性能保持联系。使用-oX命令行转换而激活,就像这样:

nmap -sS -O -oX scandata.xml rigel

这在扫描IP地址范围或者你所有的网络时是特别有用的,你能够将全部经过扫描收集起来的信息放到一个XML文件里,并通过解析后插入到数据库中。这里是一个开放的端口的XML入口:

<portprotocol="tcp"portid="22"><statestate="open"/><servicename="ssh"method="table"conf="3"/></port>

 


 

nmap是一个强大的工具。经过使用它的XML输出性能,一点点的脚本,还有一个数据库,你能够创造一个更强大的能够在你的网络上监测未受权的服务和机器的工具。

53:备份你的bootsector(引导扇区)

难度:高级

应用程序:Shell

妨碍引导装入,双启动和不少其余下热闹的程序会留给你一个混乱的引导扇区。为何不在你能够备份的时候给它建立一个备份呢:

引导装载器混乱、双启动及许多其余的可怕的进程可能形成乱七八糟的启动区。

dd if=/dev/hda of=bootsector.img bs=512count=1

很显然,你应该改变这个装置来显示你的boot驱动(有多是SCSI的sda)。还要很是当心,别把事情搞砸——你可能会垂手可得地毁掉你的驱动!恢复时使用:

dd if=bootsector.img of=/dev/hda

54:保护日志文件

难度:高级

应用程序:不少

在一个入侵过程当中,一个入侵者将会极可能在不少系统日志中留下能反映他行为的迹象:一个有价值的审计追踪应该被保护。没有可靠的日志,就很难发现攻击者是如何侵入,或者是从哪里来的攻击。这个信息在分析事件、联系相关方面并给予反馈上,是很关键的。可是,若是入侵成功,什么才能阻止他来移除他的这些错误行为的痕迹呢?

这就是文件属性能发挥做用、挽回败局的地方(或者至少使事情没那么糟)。Linux和BSD都有给文件和目录分配额外的属性这个功能。这不一样于标准的Unix权限方案中,系统为全部的用户提供的广泛的属性设置,并且它们比文件权限或者ACL都要更深层次影响文件访问。

在Linux中,你能够看到而且经过lsattr和chattr命令分别修改一个给出文件的设置。在写这篇文章时,Linux的文件属性只能在你使用ext2和ext3时得到。这还有些XFS和ReiserFS的关于得到属性支持的内核补丁。一个保护日志文件的有用的属性是append-only。当这个属性被设置后,文件不能被删除,并且写操做只能被容许在文件的最后追加。

在Linux下要设置append-only标志,运行这条命令:

chattr +afilename

看看+a属性是如何工做的:建立一个文件而后设置它的append-only属性:

touch /var/log/logfile echo "append-only not set" > /var/log/logfile chattr +a /var/log/logfile echo "append-only set" > /var/log/logfile bash: /var/log/logfile: Operation not permitted

企图第二次写文件失败,由于它将覆盖这个文件。然而,在文件的末尾追加仍然是被容许的:

echo "appending to file" >> /var/log/logfile  cat /var/log/logfile  append-only not set  appending to file

显而易见,一个得到root特权的侵入者能意识到使用了文件属性,而且能够经过运行chattr -a来移除append-only标志。为了防止这种状况,咱们须要禁用移除append-only属性的性能,在Linux下使用功能机制完成这个。

Linux功能模型分割特权给全能的root帐户,而且容许你有选择的禁用它们。为了防止一个用户移除一个文件的append-only属性,咱们须要移除CAP_LINUX_IMMUTABLE功能。当体如今当前运行系统中时,这个功能容许append-only属性被修改。为了当前系统中得到修改这个功能的设置,咱们将简单有效地调用lcap(http://packetstormsecurity.org/linux/admin/lcap-0.0.3.tar.bz2).

为了解压和编译这个工具,运行这条命令:

tar xvfj lcap-0.0.3.tar.bz2 && cd lcap-0.0.3 && make

而后,不容许修改append-only标志,运行:

./lcap CAP_LINUX_IMMUTABLE ./lcap CAP_SYS_RAWIO

 


 

第一条命令移除了改变append-only标志的功能,而后第二条移除了原始I/O的功能。这是颇有必要的,由于这样就能保护文件不被访问块设备时驻留在其上的东西修改。这阻止了访问/dev/mem和/dev/kmem,有可能给入侵者提供恢复CAP_LINUX_IMMUTABLE功能的漏洞。为了在boot上移除这项功能,添加以前的两条命令到你的系统启动脚本中(例如/etc/rc.local)。你应该确保这个功能在boot命令中被移除了,防止其余启动脚本出问题。一旦lcap移除了内核功能,就只能经过重启系统来恢复了。

在作这些以前,你应该明白,给你的日志文件添加append-only标志,将会形成日志循环脚本失败。然而,作这件事将会极大的提高你的审计追踪的安全性。安全性的提高在突发事件中会被证实是颇有用的。

55:自动加密链接

难度:高级

应用程序:FreeS/WAN

一个FreeS/WAN支持的特别cool的功能是,当其余主机运行FreeS/WAN时随机加密。这容许FreeS/WAN在全部支持随机加密的主机间透明传输。为了这个,每台主机必须使用FreeS/WAN生成一个公钥,这个公钥能够存储于那台主机的一个DNS TXT记录中。当一台主机要与另外一个主机创建一个随机加密,但愿初始化一个加密链接时,将会经过DNS查询这台主机的公钥而且初始化这个链接。

一开始,你想使用这个功能时,须要为每一台主机生成一个公钥。你能够经过运行以下命令来实现它:

ipsec newhostkey --output /tmp/`hostname`.key

如今你须要添加经过那条命令建立的文件的内容到/etc/ipsec.secrets中。

cat /tmp/`hostname`.key >> /etc/ipsec.secrets

而后,你须要生成一个TXT记录来存放你的DNS区域。你能够经过运行以下命令来实现它:

ipsec showhostkey --txt @colossus.nnc

如今添加这条记录到你的空间而后重载它。你会证明DNS已经经过这条命令正确的运行了:

ipsec verify Checking your system to see if IPsec got installed and started correctly Version check and ipsec on-path[OK] Checking for KLIPS support in kernel [OK] Checking for RSA private key (/etc/ipsec.secrets) [OK] Checking that pluto is running [OK] DNS checks. Looking for TXT in forward map: colossus [OK] Does the machine have at least one non-private address [OK]

 


 

如今只须要重启FreeS/WAN-你如今应该能链接到任何支持随机加密的主机上了。可是若是其余的主机想要链接你该怎么办?要受权链接,你须要在你的DNS反向查找区域为你的机器建立一个TXT记录。

你能够经过运行一个简单的命令来生成一条记录:

ipsec showhostkey --txt 192.168.0.64

为你的子网添加这条记录到反向查找区域,而后其余的机器就能够和你的机器初始化随机加密了。伴随着随机加密的使用,全部主机间的传输将被自动加密,同时保护全部的服务。

56:消除二进制suid

难度:中等

应用程序:find

若是你的服务器有比你自身多的shell用户,你应该在你的系统上按期的审核setuid和setgid的二进制文件。可能你会惊讶你找到了那么多文件。这里有一个搜寻全部setuid或者setgid的文件的命令位设置:

find / -perm +6000 -type f -exec ls -ld {} \; > setuid.txt &

这将会建立一个名为setuid.txt的文件,包含了全部当前系统上匹配的文件的细节。要移除任何你不用的工具的s位,输入:

 

chmod a-s program

57:Mac过滤Host AP

 

难度:高级

应用程序:iwpriv

你能够在链路层使用iptables或者ebtables执行MAC过滤,那比让Host AP为你作这些更安全。这不只仅是阻碍指向你的网络传输,也是预防邪恶的人关联你的站。这能帮助组织某些人给你的其余无线客户端形成麻烦的可能,即便他们没有更多的网络通道。

当使用MAC过滤时,不少人会列出一个他们但愿容许的无线装置清单,而后拒绝全部其余的。使用iwpriv命令完成这个功能:

iwpriv wlan0 addmac 00:30:65:23:17:05 iwpriv wlan0 addmac 00:40:96:aa:99:fd ... iwpriv wlan0 maccmd 1 iwpriv wlan0 maccmd 4

 


 

addmac指示添加一个MAC地址到内部表。只要你喜欢你就能够经过执行更多的addmac命令添加更多的MAC地址到表中。而后你须要告诉Host AP对你已经建好的表作什么。maccmd 1命令告诉Host AP就像使用一个“容许”清单同样使用这个表,而且拒绝全部其余的MAC地址来关联。最终,maccmd 4命令去除掉全部的关联客户端,强制使它们从新关联。对表中的客户端来讲是自动发生的,可是其余的任何企图关联的客户端都是被拒绝的。

有时,你只须要禁止一个或者两个捣蛋鬼,而不是设置一个详细的被容许的硬件规则。若是你须要禁止两三个MAC地址而容许其余全部的地址,尝试这个:

iwpriv wlan0 addmac 00:30:65:fa:ca:de iwpriv wlan0 maccmd 2 iwpriv wlan0 kickmac 00:30:65:fa:ca:de

像之前同样,你能够不限次数的使用addmac,只要你乐意。Maccmd2命令会将规则设置为“拒绝”,而若是该MAC恰巧已经关联,kickmac会马上将特定的MACboot。这也许比只为了禁止一个捣蛋鬼而消除全部关联而后让他们从新邻接要好一些。顺便说一下,若是你想要消除全部的MAC过滤,尝试maccmd 0。

若是你错误的输入了一个MAC地址,你能够像使用addmac同样使用delmac命令,而后它(能够预见)就会从表中删掉这个给出的MAC地址。你有时会须要彻底清除当前的MAC表可是保留它当前的规则,使用这条命令:

iwpriv wlan0 maccmd 3

最后,你能够经过使用/proc浏览正在运行的MAC表:

cat /proc/net/hostap/wlan0/ap_control

iwpriv程序操纵正在运行的Host AP驱动,可是重启后不保留设置。一旦你对你的MAC过滤表感到满意,请确保你在一个rc脚本中添加了相关命令在启动时间运行。

注意,未关联的客户端仍然能够监听网络传输,因此MAC过滤实际上只能预防一点点窃取。为了与被动的监听技巧搏斗,你须要加密你的数据。

相关文章
相关标签/搜索