设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

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

2014-3-7 11:08| 发布者: 红黑魂| 查看: 6537| 评论: 0|来自: 伯乐在线

摘要: 是什么区分开普通的Linux用户和超级极客的呢?很简单:用在学习那些使长时工作转变为一瞬间工作的技巧、诀窍、秘诀和技术上的时间。如果你想提高效率而又不用做这些搜集资料的跑腿活儿,那我们已经收集了50多条简单 ...

21:用到man手册

难度:简单

应用程序:man

如果你在一个特殊的项目或者命令中需要帮助,man手册是一个好的入门。通常你使用man<command>来访问man手册,但是你也可以通过一个特殊的man页描述的关键词来搜索man页。举例来说,搜索所有详述login的man页:

1
man -k login

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

 

22:和你的医生对话

难度:简单

应用程序:Emacs

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

1
Esc-X tetris

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

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

 

23:生成包关联图表

难度:简单

应用程序:Debian

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

1
apt-cache dotty > debian.dot

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

1
dotty debian.dot

 

24:卸载忙碌状态的驱动

难度:简单

应用程序:bash

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

1
lsof +D /mnt/windows

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

 

25:文本文件的转换

难度:简单

应用程序:recode

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

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

1
2
3
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命令是多么有效:

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

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

 

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

难度:简单

应用程序:Shell

这个alias命令对于设立长命令的快捷键是有用的,或者说是聪明的事情。HACK 25中,我们可以通过以下命令来得到一个新命令,lsnew:

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

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

1
alias cd..="cd .."

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

1
alias ls="ls -al"

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

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

 

28:更改Mozilla的秘密设置

难度:简单

应用程序:Mozilla

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

1
about:config

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

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

 

29:一个星星的背景

难度:简单

应用程序:KStars

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

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

像这样使用KStars:

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

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

 

30:直接打开一个SVG

难度:简单

应用程序:Inkscape

你可以通过shell运行Inkscape,然后直接通过一个URL来立刻编辑一张图片。只用输入:

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

记得要另存为一下!

 

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

难度:中等

应用程序:好多

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

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

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

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

1
cut -c 8-15 file1 > file2

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

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

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

 

32:只备份选中的文件

难度:中等

应用程序:tar

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

1
2
3
4
5
6
cat >> /etc/backup.conf
# /etc/passwd
# /etc/shadow
# /etc/yp.conf
# /etc/sysctl.conf
EOF

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

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

现在你已经备份好了。

 

33:在文件中合并列

难度:中等

应用程序:bash

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

1
2
3
4
5
6
7
8
9
10
#!/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并且如下运行它:

1
chmod u+x merge.sh

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

1
/path/to/merge.sh file1 file2 file3

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

 

34:大小写敏感

难度:中等

应用程序:bash

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

1
2
3
4
5
#!/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。

现在,你可以用以下命令来执行:

1
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文件是一个压缩文档,所以解压它:

1
unzip myfile.sxw

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

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

这可能丢失了很多格式,但是至少现在它是可以阅读的。

 

38:搜索和执行

难度:中等

应用程序:find

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

假设我们有很多的压缩文件,现在我们想找到所有的压缩文件:

1
find . -name '*.gz'

将会定位出所有当前路径下的gzip文档。但是假设我们想要检查它们是否是有效文档,gunzip -vt选项将会帮我们实现这个,我们还可以机智地使用xargs结合这两个操作:

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

 

39:正确使用whois服务器

难度:中等

应用程序:whois

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

1
whois -h whois.geektools.complop.info

 

40:驱动挂载到哪里了?

难度:中等

应用程序:bash

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

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

1
dmesg | grep SCSI

 

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

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

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

 



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部