linux中国_ 发布的文章

让GUI都玩儿蛋去!鼠标是你的敌人!只有键盘才是你唯一的朋友!

如果把Vim和Tmux结合在一起会发生什么?你将拥有完美的编程环境!下面是我多年来珍藏的一些不传之秘,有了这些,你立刻就能轻松打造出属于你的Vim开发环境。

Tmux相关

  • Tmux速成班,这个不错,可以让你快速掌握如何开始使用Tmux。
  • 这是我的tmux.conf配置文件,它有一个定制状态栏,可以大大改进颜色主题、优化可读性,里面还有一个必不可少的操作:重设快捷将,因为Ctrl+bVim要用,因此它帮你改为了Ctrl+a。
  • 其实,构建优化IDE就像写一个bash脚本一样简单。链接内的例子展示了如何编写一个.sh脚本来运行你自己的编程环境。

Vim插件

  • Vundle,Vim的插件管理器,用它可以跟踪.vimrc文件中的所有插件,还可以进行脚本的一键安装、更新或删除。额,我会告诉你用它还可以直接在Vim里搜索插件吗?总之,这个插件扩展绝对是居家旅行、杀人越货之Vim必备佳品。
  • Syntastic 可以检测语法是否正确,写代码的时候要想避免低级错误,这个工具必不可少,它的确能大大提高你的代码编写速度。
  • Supertab,这款插件可以帮助你使用实现自动补全。它会搜索当前文档中的所有字符串,然后给出所有的匹配项建议。对写代码带来的好处不只是提升速度,还可以避免很多拼写错误。如果有兴趣,在本文最后一部分用户推荐,有此插件的替代品。
  • Ack,99%的用户会选择用它代替grep。它完美集成在Vim里,用户可以直接用它搜索项目文件,搜索结果则显示在一个独立的窗口里。在本文最后一部分用户推荐,也有此插件的替代品。
  • CtrlP 能够极快的模糊搜索全路径文件、缓冲区、“最近使用”(MRU)和标签等等,纯粹用VimL写成,专为Vim搜索。
  • NERDTree 可以帮你浏览整个文件系统、打开文件或目录。它以树形结构显示整个文件系统,支持键盘操作和简单的文件系统操作。
  • Sparkup可以帮助你更快的编写HTML代码。支持类CSS语法完整的HTML扩展代码。在本文最后一部分用户推荐,也有此插件的替代品。

小贴士

  • Vimux可以帮你在Vim中与Tmux进行交互。例如在不需要离开Vim的情况下进行测试、编写脚本、建立任务等。
  • 《自动安装Vundle》这篇文章介绍了在.vimrc配置文件中只需添加几行VimL脚本,这样每次你在一个新环境中运行Vim的时候,它就能自动安装Vundle及所有关联包。在你拷贝Vim配置文件到一个新环境或新的服务器时,这是非常有用的。
  • 一名开发者的成功故事介绍了他是如何告别他曾经最信任的MacBook Pro,并改用iPad + Linode在云上开始开发工作。

用户推荐

  • YouCompleteMe,由Reddit用户hnasarat推荐。它安装起来稍微麻烦一些,但是支持非常强大的语法补全,包括C、Ruby、Python、PHP等许多语言。
  • Ag,由gckjk推荐,大多数Reddit用户都知道它,这是升级版的ack,速度快了3到5倍。它能读取.gitignore和.hgignore,或者.agignore,从而忽略一些被版本控制软件所忽略的匹配文件(译注:不加入版本库的文件,我想你大多数时候没有搜索它的意图)。
  • Emmet,由另一个资深reddit用户damnated推荐。这是一款Sparkup的替代品,可以非常方便快速地用标签标记字符串。链接里有示例演示视频。
  • Unite由网友 basetta推荐,它可以作为前面多个插件的集大成者。你可以用它搜索文件(就像CtrlP),搜索文档内容(就像ack或ag),还可以在下拉历史或缓冲区间进行自由移动和切换。所有这些功能都集成在了这一个插件里,非常方便!

via: http://devcharm.com/pages/18-vim-is-your-new-ide

译者:Mr小眼儿 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Briquolo是一款快速而又迷人的游戏,用一个球来破坏不同的物体,经典而又好玩。

Briquolo十分考验反应速度,因此,游戏玩家必需时刻注意球的反弹走向,一不留神就可能让球掉落。

启动游戏后,你会看到这是一款3D游戏,以3D对象展现的华丽木块浮动在一个多彩的环境里,当击破木块时有机率掉落特殊物体,毫无疑问获取它们是至关重要的,这会改变球或滑板的状态,比如球会加速,但有时候也会给你带来麻烦。

音乐及特效选项还提供了更精致的效果(包括游戏全屏,高分辨率,--可调至1920×1080--),进而呈现一个有趣而又更富挑战性的Briquolo。

Briquolo 0.5.7可以通过Ubuntu软件中心(Ubuntu 12.04, Ubuntu 12.04, Ubuntu 13.04, Ubuntu 13.10, Ubuntu 14.04)免费安装


via: http://iloveubuntu.net/test-your-reflexes-briquolo-fast-breakout-game

译者:Luoxcat 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

伴随着产品品质、性能稳定和灵活性的提高,Ubuntu渐渐吸引了一批富有经验的设计师,这些设计师覆盖了越来越多的Ubuntu角落,其中就包括操作系统界面美化、优化行为、以及更为贴心的交互实现等等。

Faenza和Faience的发明者, Ubuntu设计师 Matthieu "Tiheum" James,发布了一篇富有见地的有趣文章,这篇文章围绕着几个图标的发明展开,使得对此感兴趣的用户和第三方开发人员能够直观地了解一个专业的设计师是怎样创作一个图标的。

这里提到的图标专为Juju设计,在最近的OpenStack峰会香港站上,在与Ubuntu展台的参观者们见面的时候发布,这些图标采用了一个有趣的特性,“为了向参观Ubuntu展台的观众说明Juju可以做什么,我们想用更特殊的一些东西来代替普通的Juju图标。我们决定使用这样一个创意,将不同的配料与酱汁与冰淇淋自由搭配创作出图标,这样用户就能理解,他们能够使用同样的方法,自由搭配建立Juju中的服务。

这篇文章介绍了在真实的图标创作过程中的真实心路历程,使读者沉浸在一个学习但却易于掌握的旅程中,在旅程之中包括寻找好的概念、最初的草图、为图标添加立体感、采用不同的设计方法、选择图标背景、精炼图标等等。总之,这是一个通俗易懂的设计故事。

你可以在这里享受全文http://design.canonical.com/2013/11/juju-ice-cream-icon-design/


via: http://iloveubuntu.net/deepen-your-creative-knowledge-explanatory-user-friendly-icon-creation-design-story

译者:crowner 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。在本篇中,我们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还可以运行很多命令。我们也会探索这些命令。

(译注:不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助。)

  1. Top 命令输出:

首先,让我们了解一下输出。top命令会显示系统的很多信息。我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出:

默认显示

前几行水平显示了不同系统参数的概括,接下来是进程和它们在列中的属性。

1.1 系统运行时间和平均负载:

显示运行时间

top命令的顶部显示与uptime命令相似的输出。

这些字段显示:

  • 当前时间
  • 系统已运行的时间
  • 当前登录用户的数量
  • 相应最近5、10和15分钟内的平均负载。

可以使用'l'命令切换uptime的显示。

1.2 任务:

任务概况

第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示。

1.3 CPU 状态:

CPU状态显示

下一行显示的是CPU状态。 这里显示了不同模式下的所占CPU时间的百分比。这些不同的CPU时间表示:

  • us, user: 运行(未调整优先级的) 用户进程的CPU时间
  • sy,system: 运行内核进程的CPU时间
  • ni,niced:运行已调整优先级的用户进程的CPU时间
  • wa,IO wait: 用于等待IO完成的CPU时间
  • hi:处理硬件中断的CPU时间
  • si: 处理软件中断的CPU时间
  • st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

可以使用't'命令切换显示。

1.4 内存使用:

内存使用情况

接下来两行显示内存使用率,有点像'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。

物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。

内存显示可以用'm'命令切换。

1.5 字段/列:

任务信息列

在横向列出的系统属性和状态下面,是以列显示的进程。不同的列代表下面要解释的不同属性。

默认上,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和其他更多的信息。

  1. 交互命令:

我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。

2.1 ‘h’: 帮助

首先,我们可以用'h'或者'?'显示交互命令的帮助菜单。

帮助菜单

2.2 ‘’ 或者 ‘’: 刷新显示

top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。

2.3 ‘A’: 切换交替显示模式

这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不同的字段):

  1. Def (默认字段组)
  2. Job (任务字段组)
  3. Mem (内存字段组)
  4. Usr (用户字段组)

这四组字段共有一个独立的可配置的概括区域和它自己的可配置任务区域。4个窗口中只有一个窗口是当前窗口。当前窗口的名称显示在左上方。(译注:只有当前窗口才会接受你键盘交互命令)

交替显示

我们可以用'a'和'w'在4个 窗口间切换。'a'移到后一个窗口,'w'移到前一个窗口。用'g'命令你可以输入一个数字来选择当前窗口。

在交替显示中选择窗口

2.4 ‘B’: 触发粗体显示

一些重要信息会以加粗字体显示。这个命令可以切换粗体显示。

关闭粗体

2.5 ‘d’ 或‘s’: 设置显示的刷新间隔

当按下'd'或's'时,你将被提示输入一个值(以秒为单位),它会以设置的值作为刷新间隔。如果你这里输入了1,top将会每秒刷新。

刷新间隔l

2.6 ‘l’、‘t’、‘m’: 切换负载、任务、内存信息的显示

这会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。

不显示平均负载

不显示CPU概况

不显示内存和交换内存概况

上面三个全不显示

2.7 ‘f’: 字段管理

用于选择你想要显示的字段。用'*'标记的是已选择的。

管理显示列

上下光标键在字段内导航,左光标键可以选择字段,回车或右光标键确认。

按'<'移动已排序的字段到左边,'>'则移动到右边。

2.8 ‘R’: 反向排序

切换反向/常规排序。

2.9 ‘c’: 触发命令

切换是否显示进程启动时的完整路径和程序名。

完整命令路径

2.10 ‘i’: 空闲任务

切换显示空闲任务。

不显示空闲命令

2.11 ‘V’: 树视图

切换树视图。

树视图

2.12 ‘Z’: 改变配色

按下'Z'向用户显示一个改变top命令的输出颜色的屏幕。可以为8个任务区域选择8种颜色。

定制颜色

下面显示的是4中颜色显示的top视图。

彩色显示

2.13 ‘z’: 切换彩色显示

切换彩色,即打开或关闭彩色显示。

2.14 ‘x’ 或者 ‘y’

切换高亮信息:'x'将排序字段高亮显示(纵列);'y'将运行进程高亮显示(横行)。依赖于你的显示设置,你可能需要让输出彩色来看到这些高亮。

X 和 Y高亮

2.15 ‘u’: 特定用户的进程

显示特定用户的进程。你会被提示输入用户名。空白将会显示全部用户。

raghu的进程

2.16 ‘n’ 或 ‘#’: 任务的数量

设置最大显示的任务数量

设置最大显示的任务数量

2.17 ‘k’: 结束任务

top命令中最重要的一个命令之一。用于发送信号给任务(通常是结束任务)。

杀死一个任务

2.18 ‘r’: 重新设置优先级

重新设置一个任务的调度优先级。

  1. 命令行选项:

这些命令行选项与上面讨论的命令大多相同。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 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

LCTT(Linux中国翻译组)募新公告

LCTT是Linux中国社区(http://linux.cn/)的翻译组,负责从国外优秀媒体翻译Linux相关的技术、资讯、杂文等内容。

LCTT已经拥有二十余名活跃成员,并欢迎更多的Linux志愿者加入我们的团队。

项目地址: http://lctt.github.io/

来自赛门铁克研究员的消息,这个病毒通过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 这两个版本已经打上补丁修复了这个漏洞。

这个赛门铁克的研究员在博客中写道:这个名为“Linux.Darlloz”的新蠕虫病毒基于去年10月份放出的 PoC 代码(PoC:proof of concept,概念验证。利用目标计算机的漏洞,为对其进行攻击而设计的代码称为 exploit,而一个没有充分利用漏洞的 exploit,就是 PoC —— 译者注)。

“在传播过程中,这段蠕虫代码会随机产生 IP 地址,通过特殊途径,利用普通的用户名密码发送 HTTP POST 请求,探测漏洞”,研究员解释道:“如果一个目标没有打上 CVE-2012-1823 的补丁,这台机器就会从病毒服务器下载蠕虫病毒,之后寻找下一个目标。”

这个唯一的蠕虫变种目前为止只感染了 x86 系统,这是因为这个病毒的二进制格式为 Intel 架构下的 ELF (Executable and Linkable Format)格式。

然而这个研究员警告说,黑客也为其他架构开发了病毒,包括 ARM,PPC,MIPS 和 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 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

互联网是个大熔炉。无论是好人还是坏人,都可以和我们一样连接到网络。那些制作病毒感染人们电脑的坏蛋以及寻求保护人们的好人们全都连接到同一网络中。

就像人们所说的那样,互联网是过去所出现的一个最好的东东。它包含着任何人都可以获取的有价值的信息和资源,且大部分可以免费获取。一些最著名高校的人提供了免费的高质量课程,可供任何想学习的人来学习。今天,我们都可以连入互联网真是一件好事情。

但是有些事情你一定要记住,当你连入互联网时,你的电脑就成了攻击的目标。成为病毒,木马和其它程序破坏的目标。

正因为此,推荐连入互联网的电脑都要使用反病毒和反间谍软件来保护。在有些情况下,即使使用了这些软件也不能完全保证你的安全。再添加一个安全层总是一个好主意。

当寻找添加一个额外的安全层去保护你的机器时,使用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;

重启你的电脑,祝你玩的开心!

好好享受吧!


via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipsprotect-your-computers-using-opendns-secure-dns-infrastructure/

译者:Linux-pdz 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出