This commit is contained in:
zpl1025 2014-02-18 10:18:27 +08:00
commit 725c13cf74
11 changed files with 562 additions and 561 deletions

View File

@ -1,20 +1,21 @@
内置审计跟踪工具- Linux last命令 Linux内置审计跟踪工具 - last命令
================================================================================ ================================================================================
![](http://linoxide.com/wp-content/uploads/2013/12/linux-last-command.jpg) ![](http://linoxide.com/wp-content/uploads/2013/12/linux-last-command.jpg)
如果你是一个服务器管理员,你或许理解你要保护你的服务器。不仅是从外部还要从内部保护。linux有一个内置工具来看到最后登陆服务器的用户 如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部还要从内部保护。linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。
这个命令是**last**。命令**对于追踪非常有用**。让我们来看一下last可以为你做些什么。 这个命令是**last**。**对于追踪非常有用**。让我们来看一下last可以为你做些什么。
### last命令的功能是什么 ### ### last命令的功能是什么 ###
**last**显示**/var/log/wtmp**文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览比如vi,Joe或者其他软件。这个技巧非常聪明因为用户(或者root)不能向他们希望的那样修改文件文件。 **last**显示的是自**/var/log/wtmp**文件创建起所有登录(和登出)的用户。这个文件是二进制文件它不能被文本编辑器浏览比如vi、Joe或者其他软件。这是非常有用的因为用户(或者root)不能像他们希望的那样修改这个文件。
last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远程连接的话),日期-时间,用户已经登录的时间。 last会给出所有已登录用户的用户名、tty、IP地址(如果用户是远程连接的话)、日期-时间和用户已经登录的时间。
### 如何运行last ### ### 如何运行last ###
你只要在控制台中输入**last**.这是个例子: 你只要在控制台中输入**last**即可。这是个例子:
$ last $ last
@ -22,18 +23,18 @@ last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远
pungki tty1 Mon Dec 2 09:31 still logged in pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05) reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
这里是如何阅读last信息: 这里是如何阅读last信息
- 第一列告诉谁是用户 - 第一列告诉谁是用户
- 第二列给出了用户如何连接的信息 - 第二列给出了用户如何连接的信息
> pts/0 (伪终端) 意味着从诸如SSH或telnet的远程连接的用户 - pts/0 (伪终端) 意味着从诸如SSH或telnet的远程连接的用户
>
> tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户
>
> 除了重启活动,所有状态会在启动时显示
- 第三列**显示用户来自哪里**。如果用户来自于远程计算机,你会看到一个主机名或者IP地址。如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接.除了重启活动,内核版本会显示在状态中。 - tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户
- 除了重启活动,所有状态会在启动时显示
- 第三列**显示用户来自哪里**。如果用户来自于远程计算机你会看到一个主机名或者IP地址。如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中。
- 剩下的列显示**日志活动发生在何时**。括号中的数字告诉我们连接持续了多少小时和分钟。 - 剩下的列显示**日志活动发生在何时**。括号中的数字告诉我们连接持续了多少小时和分钟。
### 日常操作中last的一些示例 ### ### 日常操作中last的一些示例 ###
@ -48,11 +49,11 @@ last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远
pungki tty1 Mon Dec 2 09:31 still logged in pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05) reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
**-n parameter** 会使last显示从当前时间到以后的3条记录。 **-n** 参数会使last显示从当前时间到以后的3条记录。
#### 不显示主机名 #### #### 不显示主机名 ####
使用 **-R parameter** 来这么做。这里是例子 : 使用 **-R** 参数来这么做。这里是例子 :
$ last -R $ last -R
@ -64,7 +65,7 @@ last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远
#### 最后一列显示主机名 #### #### 最后一列显示主机名 ####
要这么做,我们使用 **-a parameter** 要这么做,我们使用 **-a**参数
$ last -a $ last -a
@ -76,7 +77,7 @@ last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远
#### 显示完整登入登出时间日期 #### #### 显示完整登入登出时间日期 ####
对于此,你可以使用 **-F parameter**。这个是个示例: 对于此,你可以使用 **-F** 参数。这个是个示例:
$ last -F $ last -F
@ -91,7 +92,7 @@ last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远
leni tty1 Mon Dec 2 18-42 still logged in leni tty1 Mon Dec 2 18-42 still logged in
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162 leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162
或者你想要知道**reboot**何时完成,你也可以这样显示它 或者你想要知道**reboot**何时完成,你也可以这样显示它:
$ last reboot $ last reboot
@ -103,6 +104,7 @@ last会给出所有已登录用户的用户名,tty,IP地址(如果用户是远
#### 打印特定 / pts #### #### 打印特定 / pts ####
last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty名字或者pty名字。 last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty名字或者pty名字。
这里有一些例子: 这里有一些例子:
$ last tty1 $ last tty1
@ -121,13 +123,13 @@ last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty
#### 使用另一个文件而不是 /var/log/wtmp #### #### 使用另一个文件而不是 /var/log/wtmp ####
默认上,last命令会从**/var/log/wtmp**中解析信息。如果你想要**last命令**从另外一个文件解析,你可以使用**-f参数**。比如,你可以在某些条件后倒换日志。让我们假设前面的文件名为**/var/log/wtmp.1**。那么last命令会像这样。 默认上last命令会从**/var/log/wtmp**中解析信息。如果你想要**last命令**从另外一个文件解析,你可以使用**-f** 参数。比如,当日志切割后,让我们假设切割后,之前的文件名变为**/var/log/wtmp.1**。那么last命令会像这样。
$ last -f /var/log/wtmp.1 $ last -f /var/log/wtmp.1
#### 显示运行级别改变 #### #### 显示运行级别改变 ####
这里有个**-x 参数**如果你想要改变运行级别。这里示例输出: 这里有个**-x**参数来显示运行级别。这里示例输出:
pungki tty1 Mon Dec 2 19:21 still logged in pungki tty1 Mon Dec 2 19:21 still logged in
runlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 19:29 (00:08) runlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 19:29 (00:08)
@ -136,20 +138,20 @@ last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty
runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 18:56 (00:00) runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 18:56 (00:00)
leni tty1 Mon Dec 2 18:42 down (00:00) leni tty1 Mon Dec 2 18:42 down (00:00)
你可以看到这里有两个运行级别。运行级别**to lvl 3**的条目意味着系统运行在完整的控制台模式.没有活跃的X window或者GUI.同时,当系统**关机**时,Linux在**运行级别0**。这就是为什么last会显示**to lvl 0**。 你可以看到这里有两个运行级别。运行级别**to lvl 3**的条目意味着系统运行在完整的控制台模式而没在X window或者GUI中。同时,当系统**关机**时,实际上是切换为**运行级别0**这就是为什么last会显示**to lvl 0**。
#### 查看失败登录 #### #### 查看失败登录 ####
当**last**命令记录成功登录,那么 **lastb** 命令**记录失败的登录尝试**。你**必须拥有root**权限来运行lastb命令。这里有一个lastb命令的示例输出。lastb会解析/var/log/btmp的信息。 **last**命令用了记录成功登录,而 **lastb** 命令**记录失败的登录尝试**。你**必须拥有root**权限才能运行lastb命令。这里有一个lastb命令的示例输出。lastb会解析/var/log/btmp的信息。
# lastb # lastb
leni tty1 Mon Dec 2 22:12 22:12 (00:00) leni tty1 Mon Dec 2 22:12 22:12 (00:00)
rahma tty1 Mon Dec 2 22:11 22:11 (00:00) rahma tty1 Mon Dec 2 22:11 22:11 (00:00)
#### 倒换日志 #### #### 切割日志 ####
既然*/var/log/wtmp**记录每次的登录活动,文件的大小可能会快速地增长。默认上,Linux会每月**倒换 /var/log/wtmp/**。倒换活动的细节放在/etc/logrotate.conf 文件中。这里是我**/etc/logrotate.conf**文件的内容。 因为*/var/log/wtmp**记录每次的登录活动文件的大小可能会快速地增长。默认上Linux会每月**切割 /var/log/wtmp/**。切割的策略放在/etc/logrotate.conf 文件中。这里是我**/etc/logrotate.conf**文件的内容。
/var/log/wtmp { /var/log/wtmp {
  monthly   monthly
@ -168,6 +170,8 @@ last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty
  rotate 1   rotate 1
} }
你可以根据需要自己修改。
### 总结 ### ### 总结 ###
你可以结合这些参数来自定义last和lastb的输出。所有可以**运行于last命令**的参数都**可运行在**lastb命令上。更多细节,请通过在控制台输入**man last**来访问。 你可以结合这些参数来自定义last和lastb的输出。所有可以**运行于last命令**的参数都**可运行在**lastb命令上。更多细节,请通过在控制台输入**man last**来访问。
@ -176,6 +180,6 @@ last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty
via: http://linoxide.com/linux-command/linux-last-command/ via: http://linoxide.com/linux-command/linux-last-command/
译者:[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/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,4 +1,4 @@
Conky Harmattan一款时尚的Linux桌面助手 Conky Harmattan 一款时尚的Linux桌面助手
================================================================================ ================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/01/conky-harmatten.jpg) ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/01/conky-harmatten.jpg)
@ -8,9 +8,9 @@ Conky Harmattan是一款时尚的Linux桌面助手
![Several themes and modes are included](http://www.omgubuntu.co.uk/wp-content/uploads/2014/01/Screen-Shot-2014-01-21-at-20.42.42.png) ![Several themes and modes are included](http://www.omgubuntu.co.uk/wp-content/uploads/2014/01/Screen-Shot-2014-01-21-at-20.42.42.png)
**Conky Harmattan**一个来源于deviantArt用户Zagortenay333的新主题收集器也不例外。虽然屏幕截图显示的是一个一定要打动大多数人的时尚桌面小工具,但看到了解到它的复杂配置后估计会吓跑许多人了。 **Conky Harmattan**一个来源于deviantArt用户Zagortenay333的新主题收集器,同样也不例外。虽然屏幕截图显示的是一个打动大多数人的时尚桌面小工具,但看到了解到它的复杂配置后估计会吓跑许多人了。
为了帮助使用者,它的作者提供了**一步一步的安装指导**安装过程未按正常状况进行,**有效“故障排除” 手册**列出如何修复一些最常见的问题。 为了帮助使用者,它的作者提供了**一步一步的安装指导**如果安装过程未按正常状况进行,它也提供了一个**有用的“故障排除” 手册**告诉你如何修复一些最常见的问题。
Harmatten包括 Harmatten包括
@ -19,9 +19,9 @@ Harmatten包括
- **2种天气模式** - **2种天气模式**
- **天气单位转换** - **天气单位转换**
默认情况下Harmattan是“固定”这意味着你不能使用你的鼠标移动它。相对的你需要调整'x'和'y'的值就在conky-config文件的安装过程中 - 在“faff”一栏中打勾另一个 不像大多数Conky主题Harmattan不会将别人屏幕的样子复制到你的屏幕上。
不像大多数Conky主题Harmattan不要求你跳转至lua你看到的其余内容复制到你的屏幕上 默认情况下Harmattan是“固定”你需要按下ALT键并用鼠标点击和移动它。或者你也可以在设置中调整conky-config中的'x'和'y'值 - 这会浪费不少时间。此外也别忘记修改Yahoo!天气预报小部件的地区代码,它在.conkyrc里面
### 获取Harmattan Conky ### ### 获取Harmattan Conky ###
@ -36,13 +36,13 @@ Harmatten包括
之后提取Harmattan文件按Ctrl + H在Nautilus文件浏览器查看“隐藏”的文件。 之后提取Harmattan文件按Ctrl + H在Nautilus文件浏览器查看“隐藏”的文件。
最后,根据’安装‘指导进行。 最后,根据‘Installation指导进行。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/01/conky-harmattan-for-linux via: http://www.omgubuntu.co.uk/2014/01/conky-harmattan-for-linux
译者:[乌龙茶](https://github.com/yechunxiao19) 校对:[校对者ID](https://github.com/校对者ID) 译者:[乌龙茶](https://github.com/yechunxiao19) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -2,7 +2,7 @@ Pear OS 系统已成为历史!
================================================================================ ================================================================================
![](http://itsfoss.com/wp-content/uploads/2014/01/RIP_PearOS.jpeg) ![](http://itsfoss.com/wp-content/uploads/2014/01/RIP_PearOS.jpeg)
2014年伊始就看到了一个 Linux 发布版本的消亡。这一次是外形跟 Mac 系统很相似的 [Pear OS][1] 系统高调的说再见了。从现在开始Pear OS 不在提供下载了。从一月三十一号起Pear Cloud 服务也会离线。 2014年伊始就看到了一个 Linux 发布版本的消亡。这一次是外形跟 Mac 系统很相似的 [Pear OS][1] 系统高调的说再见了。从现在开始Pear OS 不在提供下载了。从一月三十一号起Pear Cloud 服务也会离线。
跟[2013年终止的 Linux 发行版本][2]不一样Pear OS 并不是因为缺乏资金或人为权利的原因而终止的,而是被不知名的大企业(我希望不是 Apple 公司 :P所收购。他们将会把 Pear OS 作为自有产品,这就意味着社区不能对 Pear OS 创建分支fork及继续使用。 跟[2013年终止的 Linux 发行版本][2]不一样Pear OS 并不是因为缺乏资金或人为权利的原因而终止的,而是被不知名的大企业(我希望不是 Apple 公司 :P所收购。他们将会把 Pear OS 作为自有产品,这就意味着社区不能对 Pear OS 创建分支fork及继续使用。
@ -12,7 +12,7 @@ Pear OS 系统已成为历史!
相同的消息在 Pear OS 的官网上也挂出来了,大卫在告别的消息中感谢用户和开发者对他们的支持。 相同的消息在 Pear OS 的官网上也挂出来了,大卫在告别的消息中感谢用户和开发者对他们的支持。
也许这就可以解释同为什么 Pear OS 8 那么幼稚(译者注:此处找不到好的词汇,请校对修正)。大卫已经很少专注在 Pear OS 的开发上了,他正忙着敲定这笔交易呢。{可以读读:[Pear OS 8 评论][4]} 也许这就可以解释了为什么 Pear OS 8 像一个失控的越野车一样。大卫已经很少专注在 Pear OS 的开发上了,他正忙着敲定这笔交易呢。{可以读读:[Pear OS 8 评论][4]}
在社区网站上我看到了很多愤怒的消息,因为它背叛了开源的“宗旨”。在一定程度上,虽然这种爆发的情绪是可以理解的,但这是大卫的权利,他有权利选择他认为的更好的未来。他表示他会转到另一个方向,也许又会开启一个新的企业。我希望他得未来式幸运的。 在社区网站上我看到了很多愤怒的消息,因为它背叛了开源的“宗旨”。在一定程度上,虽然这种爆发的情绪是可以理解的,但这是大卫的权利,他有权利选择他认为的更好的未来。他表示他会转到另一个方向,也许又会开启一个新的企业。我希望他得未来式幸运的。
@ -22,7 +22,7 @@ Pear OS 已经不在,他的用户可能会[安装 Elementary OS Luna][5],另
via: http://itsfoss.com/pear-os-history/ via: http://itsfoss.com/pear-os-history/
译者:[runningwater](https://github.com/译者ID) 校对:[校对者ID](https://github.com/runningwater) 译者:[runningwater](https://github.com/译者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,158 @@
2013年度10大linux游戏
================================================================================
**随着2013年的离去我们评点了10款去年最受喜爱的linux游戏。**
得益于Value公司持续不断对平台的支持2013年取得了巨大的成就。既有来自大工作室例如战地系列开发者[DICE][1]的宣言也有Creative Assembly公司关于下一年把“全面战争罗马II”带入linux的承诺。
我们的名单既包括独立游戏也包括迄今为止最具影响力的AAA级游戏。**这份名单并不试图包含一切,除了我们的观点**
所有的这些游戏都可以在Steam平台和/或者Ubuntu软件中心上找到赶紧掏出钱包向你的屏幕砸钱吧
### 盖瑞模组 ###
![prop or not?](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/garrysmod-prophunt.jpg)
*prop or not?*
“盖瑞模组”是一个沙盘游戏但是不为玩家设立目标神奇隐藏在从一系列的Source引擎游戏中装载的道具和社区不断创造的各种游戏模式中。
其中一个模式是[PropHunt][3] - 一个躲猫猫的游戏模式,有两组团队,一组隐藏为地图中的不同物体,另一组试图去寻找隐藏在楼道里摇摇欲坠的文件柜。
简单而有趣,大量的游戏模式 - prop hunting躲猫猫、spaceship building建造飞船、或者machinima recording拍摄游戏引擎电影 - 使得“盖瑞模组”成为linux狂热游戏爱好者的收藏。
- [从Steam上获取“盖瑞模组”][4]
### 半条命 2 ###
![理论物理从未如此之酷](http://www.omgubuntu.co.uk/wp-content/uploads/2013/05/halflife.jpg)
*理论物理从未如此之酷*
说到Source引擎“半条命2”也许是这份名单里最古老的游戏但是也是迄今为止Value公司所有作品和今年移植到linux上所有游戏中最受欢迎的游戏之一。
“半条命2”继续了该系列上一个作品中主角理论物理学家Gordon Freeman的故事想方设法穿过被人类和外星生物毁坏的世界。从物理谜题到令人恐惧而敏捷的猎头蟹总是会出现在你前进的道路上这场旅行*仍然*是今天最迷人的游戏经历之一。
“半条命”系列的下一个作品仍然有很多东西需要去兑现但是从该作品移植到linux平台上接受情况上判断linux游戏爱好者已经做好准备把雪橇和重力枪抓在手上了。
- [从Steam上获取“半条命2”][5]
### 失忆症:猪猡的机器 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/09/amnesia-machine-for-pigs.jpg)
当我们[在九月份][6]评论“失忆症:猪猡的机器”时,我们发现这部作品的气氛和它的前作一样令人胆战心惊,并且值得我们跋涉过种种不算太难的谜题去探寻属于维多路亚时代的游戏场景以及蒸汽朋克式的机械装置。
最大的收获是linux首次支持该款大受欢迎游戏系列的作品虽然Frictional Gmaes公司的开发者们一贯的对linux游戏爱好者友好。在2007和2008年半影系列一发布他们就完成了移植的工作。
- [在Steam上获取“失忆症猪猡的机器”][7]
- [在Ubuntu软件中心获取“失忆症猪猡的机器”][8]
### 地铁:最后的曙光 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/metro-lastlight-750x294.png)
“地铁最后的曙光”是最早进入linux的AAA级游戏之一而且启动速度[相对较快][9]。背景设置在2034年被核毁灭的莫斯科“地铁最后的曙光”将世界末日后的故事集中在一个射手的第一视角里。
从鬼魅到变异蜘蛛以及巨大的变形虫都准备好让末日后莫斯科的普通一天不好过。
这款游戏并不像同类末日后题材的辐射系列那样轻松搞笑,相反它反映了人类在艰难时期所经历的残酷,一些时候让人触动。
- [从Steam上获取“地铁最后的曙光”][10]
### 星际边界 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/starbound.jpg)
你可以把“星际边界”想象成具有实际故事情节且发生在太空的“泰拉瑞亚”或者2D版的“我的世界”。有什么理由不去喜爱它呢
和“我的世界”十分类似你可以狩猎、挖矿、或者建造。但是和流行的3D沙盘游戏不同你还能旅行到其他的星球并且加入一个实际的故事主线。开始时你的飞船搁浅在轨道上你的第一项挑战包括熟悉游戏的玩法机制和寻找燃料这些燃料使得你的飞船能够探寻程序产生的各种星球。更多的是程序会为每一个星球产生多样的怪兽这样在你的旅途上你将会遭遇一些奇异的生物。
“星际边界”是一款**预览版游戏**,所以你可能会发现一些不完善的机制(最起码弓和箭有一点不太好使)或者经历一到两次崩溃。尽管它仍在测试当中,但仍旧是一款有趣而有特色的游戏。
- [在Steam上获取“星际边界”][11]
### 0 A.D. ###
![工人们正在建造建筑和采摘草莓](http://www.omgubuntu.co.uk/wp-content/uploads/2013/09/0ad_buildings.jpg)
*工人们正在建造建筑和采摘草莓*
尽管“0 A.D.”几年前已经就面向linux但是因为它在2013年的所有成就我们认为它应该在这份名单上占据一席之地。
它是名单上唯一一款免费且开源的产品,最近通过[募捐活动][12]筹得了$33,251 - 足够了,他们说,准备雇佣一名程序员全职工作一年。虽然并没有达到它最初的募捐目标,但仍然获得了$33251去支撑这个开源项目。
比任何都重要的是它很有趣。“帝国时代”风格的实时战略游戏的粉丝们将享受历经多年打造的“0 A.D.”。虽然持续改进细节,但这款作品仍然有很长的一段路要走,还有一名志愿程序员在坚持完善它。
- [从Ubuntu软件中心获取“0 A.D.”][13]
### 纸箱里的坦克战争 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/papertanks.jpg)
塔防类游戏就像黑白棋或者扫雷游戏那样普遍,但是“[纸箱里的战争][14]”添加了一剂令人上瘾的魅力。
它独特的纸工艺美学非常起效使得24个关卡散发出永不疲倦的魅力让你流连忘返。每一个沉溺于即时塔防游戏的玩家都能接受这款游戏$3.99的售价。简单有趣,但又魅力十足。
- [获取“纸箱里的坦克战争”][15]
### FEZ ###
![我喜欢fezesfezes很酷。](http://www.omgubuntu.co.uk/wp-content/uploads/2013/09/fez-closeup-300x204.png)
*我喜欢fezesfezes很酷。*
我们在[九月份][16]评论了“FEZ”虽然是2D游戏但是能够变换视角一个带着毡帽和面团宝宝一样有趣的主人公让其名声大噪。
跳跃谜题、令人头疼的视角谜题以及游戏里的幽默,所有的这些都让这款作品保持新鲜,即便你已经在一张地图上摔死了很多次或者靠近了引爆的炸弹。
- [从Steam上获取“FEZ”][17]
### 欧陆风云 IV ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/europa-universalis-banner.jpg)
想象一个不同的“文明”系列更多的微观管理、更多的历史以及一个巨大的不同它支持linux
和“文明”系列不一样的是“欧陆风云”系列是历史决策游戏虽然它并不详细的描述历史教科书。“欧陆风云IV”没有把战争延绵在几千年的历史上它仅仅只包含了1444年-1821年。但是这并不意味着“欧陆风云”不如长跨度的“文明”系列那样有趣和迷人。
“欧陆风云IV”是实时游戏而不是回合制的所以你需要经常暂停以便更好地审视你不断增长的帝国或者你富裕国家的广阔的贸易路线。考虑到“大战略”游戏玩法的内容篇幅“欧陆风云”系列可能会吓到初学者但是如果你想在美洲殖民历史上大展手脚或者扭转拿破仑战争的局势这些努力都是值得的。
- [从Steam上获取“欧陆风云IV”][18]
### 肯塔基0号路 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/02/Kentucy-Route-Zero-1.jpg)
“[肯塔基0号路][19]”一直以来都是我最喜爱的游戏之一。它是名单里最富艺术气息的作品同时它也是彰显游戏诗意的典范当然这里不考虑2014年及以后我们所能找到所有AAA级作品。
“肯塔基0号路”给点击类冒险游戏带来了魔幻现实主义色彩将经典的冒险游戏元素和超现实融合在一起。游戏开始时你试图寻找一个不明就里的地址去投递古董但是随后剧情将朝着无法预料通常是奇特的方向发展。
这是一款探索类游戏,不是为了完成某个任务或者去营救一个总是在其他城堡里的公主。它不会被每一个人喜欢 - 也不会符合每一个人对“游戏”的定义 - 但是它却是最具意义和创造性,同时又让我享受其中的作品之一。
- [从Steam上获取“肯塔基0号路”][20]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2013/12/top-10-linux-games-2013
译者:[OnlySang](https://github.com/OnlySang) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.polygon.com/2013/10/12/4826190/linux-only-needs-one-killer-game-to-explode-says-battlefield-director
[2]:http://www.omgubuntu.co.uk/2013/11/total-war-rome-ii-coming-linux-early-next-year
[3]:http://steamcommunity.com/sharedfiles/filedetails/?id=135509255
[4]:http://store.steampowered.com/app/4000
[5]:http://store.steampowered.com/app/220
[6]:http://www.omgubuntu.co.uk/2013/09/amnesia-a-machine-for-pigs-review
[7]:http://store.steampowered.com/app/239200
[8]:https://apps.ubuntu.com/cat/applications/amnesia-amfp/
[9]:http://www.omgubuntu.co.uk/2013/11/metro-last-light-steam-linux-download
[10]:http://store.steampowered.com/app/43160
[11]:http://store.steampowered.com/app/211820
[12]:http://www.omgubuntu.co.uk/2013/10/crowd-funding-success-historical-war-game-0-d
[13]:https://apps.ubuntu.com/cat/applications/0ad/
[14]:http://www.omgubuntu.co.uk/2013/03/war-in-a-box-paper-tanks-ubuntu-review
[15]:https://apps.ubuntu.com/cat/applications/war-in-a-box-paper-tanks/
[16]:http://www.omgubuntu.co.uk/2013/09/fez-indie-game-review-on-linux
[17]:http://store.steampowered.com/app/224760/
[18]:http://store.steampowered.com/app/236850
[19]:http://www.omgubuntu.co.uk/2013/02/adventures-in-magical-realism-kentucky-route-zero-act-i-review
[20]:http://store.steampowered.com/app/231200

View File

@ -1,287 +0,0 @@
重出江湖 :p 翻译Ing Luox
10 Linux/Unix Bash and KSH Shell Job Control Examples
================================================================================
![](http://s0.cyberciti.org/uploads/cms/2014/02/unix-llnux-shell-job-control-series.jpg)
Linux and Unix are multitasking operating systems i.e. a system that can run multiple tasks (process) during the same period of time. In this new blog series, I am going to list the Linux and Unix job control commands that you can use for multitasking with the Bash or Korn or POSIX shell.
### What is a job control? ###
Job control is nothing but the ability to stop/suspend the execution of processes (commands) and continue/resume their execution as per your requirements. This is done using your operating system and shell such as bash/ksh or POSIX shell.
### Who provides a facility to control jobs? ###
The Bash / Korn shell, or POSIX shell provides a facility to control jobs.
### Say hello to job table ###
Your shell keeps a table of current jobs, called job table. When you type command the shell assigns a jobID (also known as JOB_SPEC). A jobID or JOB_SPEC is nothing but small integer numbers.
#### #1: Creating your first Linux/Unix job ####
I am going to run a command called xeyes that displays two googly eyes on screen, enter:
$ xeyes &
Sample outputs:
[![](http://s0.cyberciti.org/uploads/cms/2014/02/run-xeyes-command-in-background.jpg)][4]
*Fig.01: Running the xeyes command in the background*
I started a job in the background with an ampersand (&). The shell prints a line that looks like the following:
[1] 6891
In this example, two numbers are output as follows
- [1] : The xeyes job, which was started in the background, was job number 1.
- 6891 : A process ID of job number 1.
I am going to start a few more jobs:
## Start a text editor, system load average display for X, and sleep command ##
gedit /tmp/hello.c &
xload &
sleep 100000 &
#### #2: List the current jobs ####
To [see the status of active jobs in the current shell][1], type:
$ jobs
$ jobs -l
Sample outputs:
[1] 9379 Running xeyes &
[2] 9380 Running gedit /tmp/hello.c &
[3]- 9420 Running xload &
[4]+ 9421 Running sleep 100000 &
A brief description of each field is given below:
(注:表格部分,这样发表出来应该会方便看一点)
<table border="1"><tbody><tr><th>Field</th><th>Value</th><th>Description</th><th>Example(s)</th></tr><tr><td>1</td><td>[1]</td><td><strong>jobID</strong> or <strong>JOB_SPEC</strong> - Job number to use with the fg, bg, wait, kill and other shell commands. You must prefix the job number with a percent sign (<kbd><strong>%</strong></kbd>).<br>A plus sign (<kbd>+</kbd>) identifies the default or current job.<br>A minus sign (<kbd>-</kbd>) identifies the previous job.</td><td><kbd>%1</kbd><br><kbd>fg %1</kbd><br><kbd>kill %2</kbd></td></tr><tr><td>2</td><td>9379</td><td>P<strong>rocess ID</strong> - An identification unique number that is automatically assigned to each process when it is created on the system.</td><td>kill 9379</td></tr><tr><td>3</td><td>Running</td><td><strong>state</strong> - The state of job:<br><kbd><strong>Running</strong></kbd> - The job is currently running and has not been suspended by a signal.<br><kbd><strong>Stopped</strong></kbd> - The job was suspended.<br></td><td>N/A</td></tr><tr><td>4</td><td>xeyes &amp;</td><td><strong>command</strong> - The command that was given to the shell.</td><td>script &amp;<br>firefox url&amp;</td></tr></tbody></table>
You can also use ps command to list the processes running on the system:
$ ps
#### #3: Stop or suspend running jobs ####
Hit the [Ctrl]-[Z] key or use [kill command][2] as follows:
kill -s stop PID
In this example, start [ping command][3] and use the Ctrl-Z key sequence to stop the ping command job:
[![](http://s0.cyberciti.org/uploads/cms/2014/02/suspend-unix-job-command.gif)][5]
*Animated gif 01: Suspending ping command job*
#### #4: Resume suspended/stopped job in the foreground ####
Let us [resume or bring stopped ping job to the foreground][6] and make it the current job with the help of [fg command][7]. The syntax is as follows:
## Job id number 5 for ping command ##
fg %5
I can also state any job whose command line begins with the string "ping":
## %String ##
fg %ping
Sample outputs:
64 bytes from www.cyberciti.biz (75.126.153.206): icmp_req=3 ttl=53 time=265 ms
64 bytes from www.cyberciti.biz (75.126.153.206): icmp_req=4 ttl=53 time=249 ms
64 bytes from www.cyberciti.biz (75.126.153.206): icmp_req=5 ttl=53 time=267 ms
^C
#### #5: Resume suspended/stopped job in the background ####
In this example, I am going to update all installed packages on Red Hat or CentOS Linux production server using [yum command][8] background job:
# yum -y update &>/root/patch.log &
However, due to some reason (say load issue) I decided to stop this job for 20 minutes:
# kill -s stop %yum
Sample outputs:
[7]+ Stopped yum -y update &>/root/patch.log &
#### Restart a stopped background yum process with bg ####
Now, I am going to [resume stopped the yum -y update &>/root/patch.log & job][9], type:
# bg %7
OR
# bg %yum
Sample outputs:
[7]+ yum -y update &>/root/patch.log &
#### #6: Kill a job / process ####
To stop/kill a [yum command][10] process, enter the following [kill command][11] whose jobID was 7:
# kill %7
OR
# kill pid
Sample outputs:
[7]+ Terminated yum -y update &>/root/patch.log &
On Linux/FreeBSD/OS X Unix you can [use killall command to kill process by name instead of PID][12] or jobID.
#### #7 Why does shell kill off all my background jobs when I logout? ####
In this example, I am going to start pdfwriter.py job to generate pdf files for [this site][13] in bulk:
~/scripts/www/pdfwriter.py --profile=faq --type=clean --header=logo\
--footer-left "nixCraft is GIT UL++++ W+++ C++++ M+ e+++ d-" \
--footer-right "Page [of] of [total]" &
As soon as I logout from shell, pdfwriter.py job will be killed by my shell. To overcome this problem use [disown shell builting command to tell the shell not to send a HUP signal][14], type:
$ ~/scripts/www/pdfwriter.py --profile=faq .... &
$ disown
$ exit
#### #8 Prevent job from being killed on logout using an external command called nohup ####
You can also use [nohup command to execute jobs after you exit from a shell prompt][15]:
$ nohup ~/scripts/www/pdfwriter.py --profile=faq .... &
$ exit
#### #9: Finding the PID of last job ####
To find the the process ID of the most recently executed background (asynchronous) command, use bash shell special parameter $!
$ gedit foo.txt &
$ echo "PID of most recently executed background job - $!"
Sample outputs:
PID of most recently executed background job - 9421
#### #10: Wait for job completion ####
The wait command waits for given process ID or jobID (job specification) , and reports its termination status. The syntax is as follows:
/path/to/large-job/command/foo &
wait $!
/path/to/next/job/that-is-dependents/on-foo-command/bar
Here is one of my working script:
#!/bin/bash
# A shell script wrapper to create pdf files for our blog/faq section
########################################################################
# init() - Must be run first
# Purpose - Create index file in $_tmp for all our wordpress databases
########################################################################
init(){
_php="/usr/bin/php"
_phpargs="-d apc.enabled=0"
_base="~/scripts"
_tmp="$_base/tmp"
_what="$1"
for i in $_what
do
[[ ! -d "$_tmp/$i" ]] && /bin/mkdir "$_tmp/$i"
$_php $_phpargs -f "$_base/php/rawsqlmaster${i}.php" > "$_tmp/$i/output.txt"
done
}
#####################################################
# Without index file, we can out generate pdf files
#####################################################
init blog
###########################################################
# Do not run the rest of the script until init() finished
###########################################################
wait $!
## Alright, create pdf files
~/scripts/www/pdfwriter.py --profile=blog --type=clean --header=logo\
--footer-left "nixCraft is GIT UL++++ W+++ C++++ M+ e+++ d-" \
--footer-right "Page [of] of [total]"
#### Linux and Unix job control command list summery ####
<table border="1"><tbody><tr><th>Command</th><th>Description</th><th>Example(s)</th></tr><tr><td><kbd><strong>&amp;</strong></kbd></td><td>Put the job in the background</td><td><kbd>command &amp;</kbd></td></tr><tr><td><kbd><strong>%n</strong></kbd></td><td>Set the job with the given n (number)</td><td><kbd>command %1</kbd></td></tr><tr><td><kbd><strong>%Word</strong></kbd></td><td>Refer the job whose command line begins with the Word</td><td><kbd>command %yum</kbd></td></tr><tr><td><kbd><strong>%?Word</strong></kbd></td><td>Refer any job whose command line contains the Word</td><td><kbd>command %?ping</kbd></td></tr><tr><td><kbd><strong>%%</strong></kbd><br><kbd><strong>%+</strong></kbd></td><td>Refer to the current job</td><td><kbd>kill %%<br>kill %+</kbd></td></tr><tr><td><kbd><strong>%-</strong></kbd></td><td>Refer to the previous job</td><td><kbd>bg %-</kbd></td></tr><tr><td><kbd><strong>CTRL-Z</strong><br><kbd><strong>kill -s stop jobID</strong></kbd></kbd></td><td>Suspend or stop the job</td><td><kbd>kill -s stop %ping</kbd></td></tr><tr><td><kbd><strong>jobs</strong><br><kbd><strong>jobs -l</strong></kbd></kbd></td><td>List the active jobs</td><td><kbd>jobs -l</kbd></td></tr><tr><td><kbd><strong>bg</strong></kbd></td><td>Put jobs to the background</td><td><kbd>bg %1<br>bg %ping</kbd></td></tr><tr><td><kbd><strong>fg</strong></kbd></td><td>Put job to the foreground</td><td><kbd>fg %2<br>fg %apt-get</kbd></td></tr></tbody></table>
#### A note about shell built-in and external commands ####
Run the following type command to find out whether given command is internal or external:
type -a fg bg jobs disown
Sample outputs:
fg is a shell builtin
fg is /usr/bin/fg
bg is a shell builtin
bg is /usr/bin/bg
jobs is a shell builtin
jobs is /usr/bin/jobs
disown is a shell builtin
In almost all cases, you need to use shell built-in commands. All external commands such as /usr/bin/fg or /usr/bin/jobs works in a different shell environment, and can not use parent shell's environment.
#### Conclusion ####
I hope you enjoyed this blog post series ([rss feed][16]) and I suggest that you read the following for more information:
- See our faq section for [disown command examples][17], [jobs command examples][18], [bg command examples][19], and [fg command examples][20] on Linux/Unix process management.
- Man pages [bash(1)][21], [ksh(1)][22], [ps(1)][23], [kill(1)][24]
- [Korn shell (ksh93) documentation][25].
- [NU bash shell documentation][26].
I am planning to add more in-depth tutorial in this series. Please let me know if you need to see specific topic in the comment section below.
--------------------------------------------------------------------------------
via: http://www.cyberciti.biz/howto/unix-linux-job-control-command-examples-for-bash-ksh-shell/
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.cyberciti.biz/faq/unix-linux-jobs-command-examples-usage-syntax/
[2]:http://www.cyberciti.biz/faq/unix-kill-command-examples/
[3]:http://www.cyberciti.biz/faq/unix-ping-command-examples/
[4]:http://www.cyberciti.biz/howto/unix-linux-job-control-command-list-for-bash-ksh-shell/attachment/run-xeyes-command-in-background/
[5]:http://www.cyberciti.biz/howto/unix-linux-job-control-command-list-for-bash-ksh-shell/attachment/suspend-unix-job-command/
[6]:http://www.cyberciti.biz/faq/unix-linux-fg-command-examples-usage-syntax/
[7]:http://www.cyberciti.biz/faq/unix-linux-fg-command-examples-usage-syntax/
[8]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
[9]:http://www.cyberciti.biz/faq/unix-linux-bg-command-examples-usage-syntax/
[10]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
[11]:http://www.cyberciti.biz/faq/unix-kill-command-examples/
[12]:http://www.cyberciti.biz/faq/unix-linux-killall-command-examples-usage-syntax/
[13]:http://www.cyberciti.biz/faq/
[14]:http://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/
[15]:http://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-shell-prompt.html
[16]:http://www.cyberciti.biz/tutorials/practical-unixlinux-series/feed/
[17]:http://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/
[18]:http://www.cyberciti.biz/faq/unix-linux-jobs-command-examples-usage-syntax/
[19]:http://www.cyberciti.biz/faq/unix-linux-bg-command-examples-usage-syntax/
[20]:http://www.cyberciti.biz/faq/unix-linux-fg-command-examples-usage-syntax/
[21]:http://www.manpager.com/linux/man1/bash.1.html
[22]:http://www.manpager.com/linux/man1/ksh.1.html
[23]:http://www.manpager.com/linux/man1/ps.1.html
[24]:http://www.manpager.com/linux/man1/kill.1.html
[25]:http://www2.research.att.com/sw/download/man/man1/ksh.html
[26]:https://www.gnu.org/software/bash/manual/bashref.html

View File

@ -1,69 +0,0 @@
乌龙茶 翻译中
Daily Ubuntu Tips Manually Install Any Version Of Firefox In Ubuntu
================================================================================
Firefox is the primary web browser in Ubuntu. It comes pre-installed and added to Ubuntu default software repositories which get updated with the latest version of Firefox automatically.
Most people wont worry about installing or messing with Firefox because theres nothing to do. Its already installed and ready to use. The version of Firefox in Ubuntus repositories is what youll always get unless Canonical updates its software repositories with the latest versions.
Now, if you want to try other versions or Firefox, youll have to manually download and install it in Ubuntu, and this brief tutorial is going to show you how to do it properly in Ubuntu.
Because Firefox is so integrated in Ubuntu, if you try to completely remove it, youll probably break other things. So the best way to install other versions is to create a separate in folder for each version and symbolically link it.
### Downloading and installing Firefox in Ubuntu ###
So, heres it. If you want to manually download the latest version of Firefox in Ubuntu, go to its [download page][1]. From there youll be able to get the latest version and install it.
If you wish to install other versions of Firefox starting with the initial release, [visit this page][2]. There youll see every version ever released beginning with version 0.8.
After downloading the version you wish to install, change to the Downloads folder of your home directory because thats where most files get downloaded in Ubuntu.
cd ~/Downloads
![](http://www.liberiangeek.net/wp-content/uploads/2014/02/firefoxmanualinstall.png)
### Configuring Firefox ###
Since most Firefox Linux downloads get wrapped inside a .tar and bz2 archives, you must extract the files from these archives. There are many ways to extract files from archives in Ubuntu.
The one I used here is the command below. It extracts the file from both .tar and .bz2 archives easily.
tar -xjf firefox*.tar.bz2
After the extractions, theres will be a new Firefox folder in your Downloads folder. Thats the folder which contains all the Firefox files and executables.
Since we dont want to remove the current Firefox installation, we must create a separate folder each version of Firefox. So, for Firefox version 30, create a folder in the /opt directory with the new content of Firefox using the commands below.
sudo mv firefox/ /opt/firefox30
Now, **/opt/firefox30/** directory contains all the files for version 30.
### Create a symbolic link to the new Firefox executable ###
By default, Firefox executable file lives in this location: **/user/bin/firefox**. What we want to do is temporary create a backup so we can use our custom installed executable.
To do that, run the commands below.
sudo mv /usr/bin/firefox /usr/bin/firefox-old
Now that weve move Firefox executable file from its default location, we must link the default location to our new custom installed file. To do that, run the commands below to create a symbolic link to our version 30 install.
sudo ln -s /opt/firefox30/firefox /usr/bin/firefox
Were set. Now our custom installed Firefox is the default in Ubuntu. Every time you launch Firefox, it will pull from the new executable we linked earlier.
Enjoy!
![](http://www.liberiangeek.net/wp-content/uploads/2014/02/firefoxmanualinstall1.png)
This is also a great way to install 64-bit edition of Firefox.+
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2014/02/daily-ubuntu-tips-manually-install-any-version-of-firefox-in-ubuntu/
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.mozilla.org/en-US/firefox/all/
[2]:https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

View File

@ -1,3 +1,4 @@
乌龙茶 翻译中
How To Install Gnome 3.10 In Ubuntu 13.10 How To Install Gnome 3.10 In Ubuntu 13.10
================================================================================ ================================================================================
![](http://itsfoss.com/wp-content/uploads/2014/01/Install_Gnome_310_Ubuntu_1310.jpeg) ![](http://itsfoss.com/wp-content/uploads/2014/01/Install_Gnome_310_Ubuntu_1310.jpeg)

View File

@ -0,0 +1,284 @@
10个 Linux/Unix下 Bash和KSH shell 的作业控制实例
================================================================================
![](http://s0.cyberciti.org/uploads/cms/2014/02/unix-llnux-shell-job-control-series.jpg)
Linux 和 Unix 属于多任务的操作系统,也就是说一个系统在同一时间段内能运行多重任务(进程)。在这个新的博客系列,我将会列出相关的 Linux和Unix作业控制的命令你可以通过这些命令在 Bash 或 Korn 还有 POSIX shell 下实现执行多重任务。
### 什么是作业控制?###
作业控制不过是能够停止/挂起(stop/suspend)正在执行的进程(命令)也可以继续/唤醒(continue/resume)你需要的每一个进程来执行。这完全可以用你的操作系统和类似 bash/ksh 或 POSIX shell 完成。
### 谁提供给了作业控制的设施条件 ###
Bash / Korn shell,或者是 POSIX shell 提供给了作业控制的设施条件。
### 跟作业表打个招呼吧 ###
你的 shell 会留有一张当前作业的表单称为作业表。当你键入命令时shell 会给它分配一个 jobID(也称作 JOB_SPEC)。一个 jobID 或 JOB_SPEC只是很小的整数数值。
#### #1: 创建你的首个 Linux/Unix 作业(job) ####
我要运行一个名为 xeyes 的命令,它会在屏幕上显示两个椭圆的眼睛,输入:
$ xeyes &
输出样例:
[![](http://s0.cyberciti.org/uploads/cms/2014/02/run-xeyes-command-in-background.jpg)][4]
*Fig.01: 在后台运行 xeyes 命令*
我使用&符号让一个 job 在后台运行。shell 会打印一行信息类似如下:
[1] 6891
在这个例子中,有两个数字输出,分别表示:
- [1] : 在后台执行的 xeyes 任务的作业号为 1。
- 6891 : 作业1的进程ID。
我在多执行一些 job:
## 启动一个文本编辑器X 的系统负载显示,和 sleep 命令 ##
gedit /tmp/hello.c &
xload &
sleep 100000 &
#### #2: 列出当前的jobs ####
To [see the status of active jobs in the current shell][1], type:
$ jobs
$ jobs -l
输出样例:
[1] 9379 Running xeyes &
[2] 9380 Running gedit /tmp/hello.c &
[3]- 9420 Running xload &
[4]+ 9421 Running sleep 100000 &
A brief description of each field is given below:
(注:表格部分,这样发表出来应该会方便看一点)
<table border="1"><tbody><tr><th>字段</th><th></th><th>描述</th><th>示例</th></tr><tr><td>1</td><td>[1]</td><td><strong>jobID</strong><strong>JOB_SPEC</strong> - 工作号要与fg, bg, wait, kill和其他shell命令一起使用。你必须在工作号前缀添加一个百分号。(<kbd><strong>%</strong></kbd>).<br>加号 (<kbd>+</kbd>) 标识着默认的或是现在的 job。<br>减号 (<kbd>-</kbd>) 标识着先前的 job。</td><td><kbd>%1</kbd><br><kbd>fg %1</kbd><br><kbd>kill %2</kbd></td></tr><tr><td>2</td><td>9379</td><td><strong>进程 ID</strong> - 系统自动为每个进程创建并分配地独有的身份标志号。</td><td>kill 9379</td></tr><tr><td>3</td><td>Running</td><td><strong>状态</strong> - 关于 job 的状态:<br><kbd><strong>Running</strong></kbd> - 该 job 正在运行,还没有被外部信号挂起。<br><kbd><strong>Stopped</strong></kbd> - 该 job 已经被挂起。<br></td><td>N/A</td></tr><tr><td>4</td><td>xeyes &amp;</td><td><strong>command</strong> - 由shell给出的命令。</td><td>script &amp;<br>firefox url&amp;</td></tr></tbody></table>
你也可以用 ps 命名列出当前系统正在运行的进程:
$ ps
#### #3: 停止或挂起正在运行的jobs ####
按下[Ctrl]-[Z]键或使用[kill 命令][2],如下所示:
kill -s stop PID
举个例子,启动[ping 命令][3],然后用 Ctrl-Z 键触发停止 ping 命令的job
[![](http://s0.cyberciti.org/uploads/cms/2014/02/suspend-unix-job-command.gif)][5]
*Animated gif 01: 挂起 ping 命令的 job*
#### #4: 在前台恢复 挂起的/停止的 job ####
让我们[恢复处于停止状态下的 job 回到前台运行][6],要实现这个目标当前 job 必须借助[fg 命令][7]。具体语法如下:
## ping 命令的作业号的值为5 ##
fg %5
我也可以规定命令行开端符合字符串"ping"的 job[译注:不能出现不明确的字符串,例如如果后台有两个 vim 进程而你敲入 fg %vim 会报错。]:
## %String ##
fg %ping
输出样例:
64 bytes from www.cyberciti.biz (75.126.153.206): icmp_req=3 ttl=53 time=265 ms
64 bytes from www.cyberciti.biz (75.126.153.206): icmp_req=4 ttl=53 time=249 ms
64 bytes from www.cyberciti.biz (75.126.153.206): icmp_req=5 ttl=53 time=267 ms
^C
#### #5: 在后台恢复 挂起/停止状态的 job ####
在这个例子中,我将要使用[yum 命令][8]更新所有安装在 Redhat 或 CentOS Linux 生产服务器上的软件包并置于后台作业。
# yum -y update &>/root/patch.log &
然而,由于一些原因(例如,过载问题)我决定停止这个 job 20分钟
# kill -s stop %yum
输出样例:
[7]+ Stopped yum -y update &>/root/patch.log &
#### 用 bg 重启停止在后台的 yum 进程 ####
现在,我将要[恢复停止的 yum -y update &>/root/patch.log & job][9],键入:
# bg %7
或者:
# bg %yum
输出样例:
[7]+ yum -y update &>/root/patch.log &
#### #6: 杀死作业/进程 ####
杀死[yum 命令][10]进程,输入如下[kill 命令][11]及其作业号 7
# kill %7
或者
# kill pid
输出样例:
[7]+ Terminated yum -y update &>/root/patch.log &
在 Linux/FreeBSD/OS X Unix 下你可以[使用 killall 命令通过名字杀死进程或是 jobID 而不是通过 PID][12]
#### #7 为什么当我登出后 shell 会清除我的所有后台 jobs ####
在这个例子中,我将会启动 pdfwriter.py 来生成[这个站点][13]散装地 pdf 文件:
~/scripts/www/pdfwriter.py --profile=faq --type=clean --header=logo\
--footer-left "nixCraft is GIT UL++++ W+++ C++++ M+ e+++ d-" \
--footer-right "Page [of] of [total]" &
一旦当我登出shell时pdfwriter.py 作业就会被我的 shell 杀死。为了克服这个问题需要使用[shell的内置命令 disown 来告诉 shell 不要发送 HUP 信号][14],键入:
$ ~/scripts/www/pdfwriter.py --profile=faq .... &
$ disown
$ exit
#### #8 使用一个名为 nohup 的外部命令阻止在登出时杀死 job ####
你也可以使用[nohup 命令在你退出 shell 后执行 jobs][15]:
$ nohup ~/scripts/www/pdfwriter.py --profile=faq .... &
$ exit
#### #9: 查找最后 job 的 PID ####
为了查找最近在后台执行的(异步)命令的进程ID可使用 bash shell 的特殊参数 $!
$ gedit foo.txt &
$ echo "最近在后台执行的job 的PID - $!"
输出样例:
最近在后台执行的job 的PID - 9421
#### #10: 等候 job 完成 ####
wait 命令会等候给予的进程ID 或 作业ID然后报告它的终止状态。语法如下
/path/to/large-job/command/foo &
wait $!
/path/to/next/job/that-is-dependents/on-foo-command/bar
这是我的一个工作脚本:
#!/bin/bash
# A shell script wrapper to create pdf files for our blog/faq section
########################################################################
# init() - Must be run first
# Purpose - Create index file in $_tmp for all our wordpress databases
########################################################################
init(){
_php="/usr/bin/php"
_phpargs="-d apc.enabled=0"
_base="~/scripts"
_tmp="$_base/tmp"
_what="$1"
for i in $_what
do
[[ ! -d "$_tmp/$i" ]] && /bin/mkdir "$_tmp/$i"
$_php $_phpargs -f "$_base/php/rawsqlmaster${i}.php" > "$_tmp/$i/output.txt"
done
}
#####################################################
# Without index file, we can out generate pdf files
#####################################################
init blog
###########################################################
# Do not run the rest of the script until init() finished
###########################################################
wait $!
## Alright, create pdf files
~/scripts/www/pdfwriter.py --profile=blog --type=clean --header=logo\
--footer-left "nixCraft is GIT UL++++ W+++ C++++ M+ e+++ d-" \
--footer-right "Page [of] of [total]"
#### Linux 和 Unix 作业控制命令总结列表 ####
<table border="1"><tbody><tr><th>命令</th><th>描述</th><th>示例</th></tr><tr><td><kbd><strong>&amp;</strong></kbd></td><td>将 job 置入后台</td><td><kbd>命令 &amp;</kbd></td></tr><tr><td><kbd><strong>%n</strong></kbd></td><td>设置作业号为 n (数字)的 job</td><td><kbd>命令 %1</kbd></td></tr><tr><td><kbd><strong>%Word</strong></kbd></td><td>引用命令行开端包含 Word 的 job</td><td><kbd>命令 %yum</kbd></td></tr><tr><td><kbd><strong>%?Word</strong></kbd></td><td>引用命令行包含 Word 的 job</td><td><kbd>命令 %?ping</kbd></td></tr><tr><td><kbd><strong>%%</strong></kbd><br><kbd><strong>%+</strong></kbd></td><td>引用当前 job</td><td><kbd>kill %%<br>kill %+</kbd></td></tr><tr><td><kbd><strong>%-</strong></kbd></td><td>引用先前 job</td><td><kbd>bg %-</kbd></td></tr><tr><td><kbd><strong>CTRL-Z</strong><br><kbd><strong>kill -s stop jobID</strong></kbd></kbd></td><td>挂起或停止 job</td><td><kbd>kill -s stop %ping</kbd></td></tr><tr><td><kbd><strong>jobs</strong><br><kbd><strong>jobs -l</strong></kbd></kbd></td><td>列出活动的 jobs</td><td><kbd>jobs -l</kbd></td></tr><tr><td><kbd><strong>bg</strong></kbd></td><td>将 jobs 置入后台</td><td><kbd>bg %1<br>bg %ping</kbd></td></tr><tr><td><kbd><strong>fg</strong></kbd></td><td>将 job 置入前台</td><td><kbd>fg %2<br>fg %apt-get</kbd></td></tr></tbody></table>
#### 关于 shell 内置命令和外部命令的小注 ####
运行下面的 type 命令找出给予命令是否属于内部或外部的。
type -a fg bg jobs disown
输出样式:
fg is a shell builtin
fg is /usr/bin/fg
bg is a shell builtin
bg is /usr/bin/bg
jobs is a shell builtin
jobs is /usr/bin/jobs
disown is a shell builtin
在几乎所有情况下,你都需要使用 shell 的内置命令。所有外部命令例如 /usr/bin/fg 或 /usr/bin/jobs 工作在一个不同的 shell 环境下,而不能用在父 shell 的环境下。
#### 总结 ####
我希望你能喜欢这篇博文系列([rss 订阅][16]),我建议你阅读下面的更多信息:
- 在我们的 faq 章节查阅有关进程管理的文章[disoen 命令示例][17][jobs 命令示例][18][bg 命令示例][19],和[fg 命令示例][20]。
- Man pages [bash(1)][21], [ksh(1)][22], [ps(1)][23], [kill(1)][24]
- [Korn shell (ksh93) 文档][25].
- [NU bash shell 文档][26].
我会计划在这个系列添加更多深入的教程。若果你需要看到具体的主题,请在下方评论让我知道。
--------------------------------------------------------------------------------
via: http://www.cyberciti.biz/howto/unix-linux-job-control-command-examples-for-bash-ksh-shell/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.cyberciti.biz/faq/unix-linux-jobs-command-examples-usage-syntax/
[2]:http://www.cyberciti.biz/faq/unix-kill-command-examples/
[3]:http://www.cyberciti.biz/faq/unix-ping-command-examples/
[4]:http://www.cyberciti.biz/howto/unix-linux-job-control-command-list-for-bash-ksh-shell/attachment/run-xeyes-command-in-background/
[5]:http://www.cyberciti.biz/howto/unix-linux-job-control-command-list-for-bash-ksh-shell/attachment/suspend-unix-job-command/
[6]:http://www.cyberciti.biz/faq/unix-linux-fg-command-examples-usage-syntax/
[7]:http://www.cyberciti.biz/faq/unix-linux-fg-command-examples-usage-syntax/
[8]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
[9]:http://www.cyberciti.biz/faq/unix-linux-bg-command-examples-usage-syntax/
[10]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
[11]:http://www.cyberciti.biz/faq/unix-kill-command-examples/
[12]:http://www.cyberciti.biz/faq/unix-linux-killall-command-examples-usage-syntax/
[13]:http://www.cyberciti.biz/faq/
[14]:http://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/
[15]:http://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-shell-prompt.html
[16]:http://www.cyberciti.biz/tutorials/practical-unixlinux-series/feed/
[17]:http://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/
[18]:http://www.cyberciti.biz/faq/unix-linux-jobs-command-examples-usage-syntax/
[19]:http://www.cyberciti.biz/faq/unix-linux-bg-command-examples-usage-syntax/
[20]:http://www.cyberciti.biz/faq/unix-linux-fg-command-examples-usage-syntax/
[21]:http://www.manpager.com/linux/man1/bash.1.html
[22]:http://www.manpager.com/linux/man1/ksh.1.html
[23]:http://www.manpager.com/linux/man1/ps.1.html
[24]:http://www.manpager.com/linux/man1/kill.1.html
[25]:http://www2.research.att.com/sw/download/man/man1/ksh.html
[26]:https://www.gnu.org/software/bash/manual/bashref.html

View File

@ -0,0 +1,66 @@
每日Ubuntu小贴士 - 在Ubuntu中手动安装任何版本的Firefox
================================================================================
Firefox是Ubuntu中的主要网络浏览器。它预装在系统中并添加到默认的Ubuntu软件仓库中以获得Firefox最新版本的自动更新。
大多数人不用担心安装或使用Firefox的问题因为没有什么问题了它已经安装并可以使用了。Firefox在Ubuntu的软件仓库中的版本你总得到是最新版本。
现在如果你想尝试其他的Firefox版本你就必须手动下载并在Ubuntu中安装它这个简短的教程将告诉你如何正确地在Ubuntu中做到这一点。
因为Firefox集成在Ubuntu中如果你试图完全卸载它可以会破坏其他的东西。因此要安装其他版本最好的办法就是为每个版本分别创建文件夹并进行符号连接。
### 在Ubuntu中下载并安装Firefox ###
如果你想手动下载最新的Ubuntu版本Firefox进入它的[下载页面][1]。通过它你将可以获取到最新版本并安装它。
如果你想从初始版本安装其他版本的Firefox[访问这个页面][2]。在这你将看到从0.8开始的每个版本。
下载完你想要的版本之后切换到home目录下的下载文件夹因为Ubuntu的大多数文件被下载到了这。
cd ~/Downloads
![](http://www.liberiangeek.net/wp-content/uploads/2014/02/firefoxmanualinstall.png)
### 配置Firefox ###
由于大多数Firefox下载文件以.tar和.bz2格式保存必须从这些压缩包中提取文件。有很多方法可以在Ubuntu中解压缩文件。
比如我下面使用的命令。很容易从.tar和.bz2中提取文件。
tar -xjf firefox*.tar.bz2
解压后将会有一个新的Firefox文件出现在下载文件夹中。这其中包含了所有的Firefox的文件和可执行文件。
由于我们不想删除当前安装的Firefox我们必须给每个版本的Firefox创建一个单独的文件夹。因此对于Firefox的版本30使用下面的命令在/opt目录下创建一个包含新Firefox内容的文件夹。
sudo mv firefox/ /opt/firefox30
现在,**/opt/firefox30/**目录包含的所有文件都是版本30的。
### 创建新的Firefox可执行符号链接 ###
默认情况下Firefox的可执行文件在这个路径下**/user/bin/firefox**。我们想要做的是临时创建一个备份,这样我们就可以使用我们的自定义安装的可执行文件。
要做到这一点,运行下面的命令。
sudo mv /usr/bin/firefox /usr/bin/firefox-old
现在我们已经从其默认位置移动了Firefox的可执行文件我们必须将默认位置链接为我们的新的自定义安装的文件。要做到这一点运行下面的命令来创建我们的30版本的一个符号链接。
sudo ln -s /opt/firefox30/firefox /usr/bin/firefox
现在我们自定义安装的Firefox是Ubuntu默认的。每一次启动Firefox它将通过之前的新链接加载新的可执行文件。
![](http://www.liberiangeek.net/wp-content/uploads/2014/02/firefoxmanualinstall1.png)
以上方法同样适用于64-bit版本的Firefox。
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2014/02/daily-ubuntu-tips-manually-install-any-version-of-firefox-in-ubuntu/
译者:[乌龙茶](https://github.com/yechunxiao19) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.mozilla.org/en-US/firefox/all/
[2]:https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

View File

@ -1,14 +1,15 @@
如何在Ubuntu 13.10 上安装Google Keep[快捷提示] 快速技巧——如何在 Ubuntu 13.10 上安装 Google Keep
================================================================================ ================================================================================
![](http://itsfoss.com/wp-content/uploads/2014/02/Google-keep-logo.jpg) ![](http://itsfoss.com/wp-content/uploads/2014/02/Google-keep-logo.jpg)
最近,Google Keep已经成为我在Android上最喜欢的用的笔记应用。而在Ubuntu上, 我同样想做一些快速笔记。既然Google Keep会在设备间同步, 这样**在Ubuntu上安装Google Keep**也有意义了。在这个快速提示中,我会想你展示如何在Ubuntu 13.10 或者其他Linux发行版上安装Google Keep。 最近, Google Keep 已经成为我在 Android 最喜欢用的笔记应用。而在 Ubuntu 的工作中, 我同样想做一些快速笔记。既然 Google Keep 可以在设备间同步, 这样 **在 Ubuntu 上安装 Google Keep ** 也有意义了。在这个快速技巧中,我会向你展示如何在 Ubuntu 13.10 或者其它 Linux 发行版上安装 Google Keep。
如果你是一个Google Chrome用户,你可能知道Google 的'桌面应用'。可以在Chrome在线商店的**桌面**集合中找到很多应用。不像在运行在浏览器的常规Chrome应用,这些'桌面应用'独立运行,想一个桌面应用那样。我们会看见如何将这个新的特性以原生Ubuntu应用形式安装chrome应用。 如果你是一个 Google Chrome 用户,你可能知道 Google 的'桌面应用'。可以在 Chrome 在线商店的**桌面**集合中找到很多应用。不像运行在浏览器的常规 Chrome 应用,这些'桌面应用'独立运行,像桌面应用那样。我们会看见如何将这个新的特性以原生 Ubuntu 应用形式安装 chrome 应用。
### 在 Ubuntu 13.10 上安装 Google Keep: ### ### 在 Ubuntu 13.10 上安装 Google Keep: ###
虽然我在这里用Google Kepp最为例子, 你可以使用相同的流程来安装其他应用,像[Any.do][1]或者[Pocket][2](从你的桌面应用集合中)。非常明显**你必须在你的系统中安装了Chrome浏览器**。它或许无法工作在Chromium浏览器中。 尽管我在这里用 Google Keep 为例子, 你可以使用相同的流程来安装其它应用,像[Any.do][1]或者[Pocket][2](从你的桌面应用集合中)。非常明显**你必须在你的系统中安装了 Chrome 浏览器**。它或许无法工作在 Chromium 浏览器中。
### 步骤 1: ### ### 步骤 1: ###
@ -26,19 +27,19 @@
![](http://itsfoss.com/wp-content/uploads/2014/02/Install_Google_Keep_Ubuntu_2.png) ![](http://itsfoss.com/wp-content/uploads/2014/02/Install_Google_Keep_Ubuntu_2.png)
就是这样.实际上很简单.你现在可以在Unity Dash中找到Google Keep并锁定到launcher。即使你没有运行Chrome,你可以像其他的Ubuntu程序那样简单地运行Google Keep。 就是这样.实际上很简单.你现在可以在 Unity Dash 中找到 Google Keep 并锁定到 launcher。即使你没有运行 Chrome,你可以像其它的 Ubuntu 程序那样简单地运行 Google Keep。
![](http://itsfoss.com/wp-content/uploads/2014/02/Install_Google_keep_Ubuntu_3.jpeg) ![](http://itsfoss.com/wp-content/uploads/2014/02/Install_Google_keep_Ubuntu_3.jpeg)
很酷,不是么? Google也正在计划移植Google App Launcher到Linux中。很快我们就可以像在开发通道内那样使用Google Now桌面应用了。 很酷,不是么? Google 也正在计划移植 Google App Launcher Linux 中。很快我们就可以使用 Google Now 桌面应用了,目前只能运用于开发渠道
想象一下这些,我想要知道为什么Google还没有为Linux开发远程Google Drive客户端。当然这里有一些第三方程序像[SyncDrive用来在Ubuntu上像同步Dropbox那样同步Google Drive][3],,但是官方程序就更好了。 想象一下这些,我在想为什么 Google 还没有为 Linux 开发远程 Google Drive 客户端。当然这里有一些第三方程序,像[ SyncDrive 用来同步 Google Drive就像 Ubuntu 中的 Dropbox 那样][3],但是如果有一款官方程序就更好了。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
via: http://itsfoss.com/install-google-keep-ubuntu-1310/ via: http://itsfoss.com/install-google-keep-ubuntu-1310/
译者:[geekpi](https://github.com/译者ID) 校对:[geekpi](https://github.com/校对者ID) 译者:[geekpi](https://github.com/译者ID) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,157 +0,0 @@
2013年度10大linux游戏
================================================================================
**随着2013年的离去我们带来了10款去年最受喜爱的linux游戏。**
得益于Value公司持续不断对平台的支持2013年取得了巨大的成就。既有来自大工作室例如战地系列开发者[DICE][1]的宣言也有Creative Assembly公司关于下一年把全面战争罗马II带入linux的承诺。
我们的名单既包括独立游戏也包括迄今为止最具影响力的AAA级游戏。**这份名单并不试图包含一切,除了我们的观点**
所有的这些游戏都可以在Steam平台和/或者Ubuntu软件中心上找到赶紧掏出钱包向你的屏幕砸钱吧
### 盖瑞模组 ###
![承载么?](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/garrysmod-prophunt.jpg)
*承载么?*
盖瑞模组是一个沙盘游戏但是不为玩家设立目标神奇隐藏在从一系列的Source引擎游戏中装载的道具和社区不断创造的各种游戏模式中。
其中一个模式是[PropHunt][3] - 一个躲猫猫的游戏模式,有两组团队,一组隐藏为地图中的不同物体,另一组试图去寻找隐藏在楼道里摇摇欲坠的文件柜。
简单而有趣,大量的游戏模式 - prop hunting躲猫猫、spaceship building建造飞船、或者machinima recording拍摄游戏引擎电影 - 使得盖瑞模组成为linux狂热游戏爱好者的收藏。
- [从Steam上获取盖瑞模组][4]
### 半条命 2 ###
![理论物理从未如此之酷](http://www.omgubuntu.co.uk/wp-content/uploads/2013/05/halflife.jpg)
*理论物理从未如此之酷*
说到Source引擎半条命2也许是这份名单里最古老的游戏但是也是迄今为止Value公司所有作品和今年移植到linux上所有游戏中最受欢迎的游戏之一。
半条命2继续了该系列上一个作品中主角理论物理学家Gordon Freeman的故事想方设法穿过被人类和外星生物毁坏的世界。从物理谜题到令人恐惧而敏捷的猎头蟹总是会出现在你前进的道路上这场旅行*仍然*是今天最迷人的游戏经历之一。
半条命系列的下一个作品仍然有很多东西需要去兑现但是从该作品移植到linux平台上接受情况上判断linux游戏爱好者已经做好准备把雪橇和重力枪抓在手上了。
- [从Steam上获取半条命2][5]
### 失忆症:猪猡的机器 ###
![](ttp://www.omgubuntu.co.uk/wp-content/uploads/2013/09/amnesia-machine-for-pigs.jpg)
当我们[在九月份][6]评论失忆症:猪猡的机器时,我们发现这部作品的气氛和它的前作一样令人胆战心惊,并且值得我们跋涉过种种不算太难的谜题去探寻属于维多路亚时代的游戏场景以及蒸汽朋克式的机械装置。
最大的收获是linux首次支持该款大受受欢迎游戏系列的作品虽然Frictional Gmaes公司的开发者们一贯的对linux游戏爱好者友好。在2007和2008年半影系列一发布他们就完成了移植的工作。
- [在Steam上获取失忆症猪猡的机器][7]
- [在Ubuntu软件中心获取失忆症猪猡的机器][8]
### 地铁:最后的曙光 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/metro-lastlight-750x294.png)
地铁最后的曙光是最早进入linux的AAA级游戏之一而且启动速度[相对很快][9]。背景设置在2034年被核毁灭的莫斯科地铁最后的曙光将世界末日后的故事集中在一个射手的第一视角里。
从鬼魅到变异蜘蛛以及巨大的变形虫都准备好让末日后莫斯科的普通一天不好过。
这款游戏并不像同类末日后题材的辐射系列那样轻松搞笑,相反它反映了人类在艰难时期所经历的残酷,一些时候让人触动。
- [从Steam上获取地铁最后的曙光][10]
### 星际边界 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/starbound.jpg)
你可以把星际边界想象成具有实际故事情节且发生在太空的泰拉瑞亚或者2D的我的世界。有什么理由不去喜爱它呢
和我的世界十分类似你可以狩猎、挖矿、或者建造。但是和流行的3D沙盘游戏不同你还能旅行到其他的星球并且加入一个实际的故事主线。开始时你的飞船搁浅在轨道上你的第一项挑战包括熟悉游戏的玩法机制和寻找燃料这些燃料使得你的飞船能够探寻程序产生的各种星球。更多的是程序会为每一个星球产生多样的怪兽这样在你的旅途上你将会遭遇一些奇异的生物。
星际边界是一款**预览版游戏**,所以你可能会发现一些不完善的机制(最起码弓和箭有一点不太好使)或者经历一到两次崩溃。尽管它仍在测试当中,但仍旧是一款有趣而有特色的游戏。
- [在Steam上获取星际边界][11]
### 0 A.D. ###
![工人们正在建造建筑和采摘草莓](http://www.omgubuntu.co.uk/wp-content/uploads/2013/09/0ad_buildings.jpg)
*工人们正在建造建筑和采摘草莓*
尽管0 A.D.几年前已经就面向linux但是因为它在2013年的所有成就我们认为它应该在这份名单上占据一席之地。
它是名单上唯一一款免费且开源的产品,最近通过[募捐活动][12]筹得了$33,251 - 足够了,他们说,准备雇佣一名程序员全职工作一年。虽然并没有达到它最初的募捐目标,但仍然获得了$33251去支撑这个开源项目。
比任何都重要的是它很有趣。帝国时代风格的实时战略游戏的粉丝们将享受历经多年打造的0 A.D.。虽然持续改进细节,但这款作品仍然有很长的一段路要走,还有一名志愿程序员在坚持完善它。
- [从Ubuntu软件中心获取0 A.D.][13]
### 纸箱里的坦克战争 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/papertanks.jpg)
塔防类游戏就像黑白棋或者扫雷游戏那样普遍,但是[纸箱里的战争][14]添加了一剂令人上瘾的魅力。
它独特的纸工艺美学非常起效使得24个关卡散发出永不疲倦的魅力让你流连忘返。每一个沉溺于即时塔防游戏的玩家都能接受这款游戏$3.99的售价。简单有趣,但又魅力十足。
- [获取纸箱里的坦克战争][15]
### FEZ ###
![我喜欢fezes。fezes很酷。](http://www.omgubuntu.co.uk/wp-content/uploads/2013/09/fez-closeup-300x204.png)
*我喜欢fezes。 fezes很酷。*
我们在[九月份][16]评论了FEZ虽然是2D游戏但是能够变换视角一个带着毡帽和面团宝宝一样有趣的主人公让其名声大噪。
跳跃谜题、令人头疼的视角谜题以及游戏里的幽默,所有的这些都让这款作品保持新鲜,即便你已经在一张地图上摔死了很多次或者靠近了引爆的炸弹。
- [从Steam上获取FEZ][17]
### 欧陆风云 IV ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/12/europa-universalis-banner.jpg)
想象一个不同的文明系列更多的微观管理、更多的历史以及一个巨大的不同它支持linux
和文明系列不一样的是欧陆风云系列是历史决策游戏虽然它并不详细的描述历史教科书。欧陆风云IV没有把战争延绵在几千年的历史上它仅仅只包含了1444-1821。但是这并不意味着欧陆风云不如长跨度的文明系列那样有趣和迷人。
欧陆风云IV是实时游戏而不是回合制的所以你需要经常暂停以便更好地审视你不断增长的帝国或者你富裕国家的广阔的贸易路线。考虑到“大战略”游戏玩法的内容篇幅欧陆风云系列可能会吓到初学者但是如果你想在美洲殖民历史上大展手脚或者扭转拿破仑战争的局势这些努力都是值得的。
- [从Steam上获取欧陆风云IV][18]
### 肯塔基0号路 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/02/Kentucy-Route-Zero-1.jpg)
[肯塔基0号路][19]一直以来都是我最喜爱的游戏之一。它是名单里最富艺术气息的作品同时它也是彰显游戏诗意的典范当然这里不考虑2014年及以后我们所能找到所有AAA级作品。
肯塔基0号路给点击类冒险游戏带来了魔幻现实主义色彩将经典的冒险游戏元素和超现实融合在一起。游戏开始时你试图寻找一个不明就里的地址去投递古董但是随后剧情将朝着无法预料通常是奇特的方向发展。
这是一款探索类游戏,不是为了完成某个任务或者去营救一个总是在其他城堡里的公主。它不会被每一个人喜欢 - 也不会符合每一个人对“游戏”的定义 - 但是它却是最具意义和创造性,同时又让我享受其中的作品之一。
- [从Steam上获取肯塔基0号路][20]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2013/12/top-10-linux-games-2013
译者:[OnlySang](https://github.com/OnlySang) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.polygon.com/2013/10/12/4826190/linux-only-needs-one-killer-game-to-explode-says-battlefield-director
[2]:http://www.omgubuntu.co.uk/2013/11/total-war-rome-ii-coming-linux-early-next-year
[3]:http://steamcommunity.com/sharedfiles/filedetails/?id=135509255
[4]:http://store.steampowered.com/app/4000
[5]:http://store.steampowered.com/app/220
[6]:http://www.omgubuntu.co.uk/2013/09/amnesia-a-machine-for-pigs-review
[7]:http://store.steampowered.com/app/239200
[8]:https://apps.ubuntu.com/cat/applications/amnesia-amfp/
[9]:http://www.omgubuntu.co.uk/2013/11/metro-last-light-steam-linux-download
[10]:http://store.steampowered.com/app/43160
[11]:http://store.steampowered.com/app/211820
[12]:http://www.omgubuntu.co.uk/2013/10/crowd-funding-success-historical-war-game-0-d
[13]:https://apps.ubuntu.com/cat/applications/0ad/
[14]:http://www.omgubuntu.co.uk/2013/03/war-in-a-box-paper-tanks-ubuntu-review
[15]:https://apps.ubuntu.com/cat/applications/war-in-a-box-paper-tanks/
[16]:http://www.omgubuntu.co.uk/2013/09/fez-indie-game-review-on-linux
[17]:http://store.steampowered.com/app/224760/
[18]:http://store.steampowered.com/app/236850
[19]:http://www.omgubuntu.co.uk/2013/02/adventures-in-magical-realism-kentucky-route-zero-act-i-review
[20]:http://store.steampowered.com/app/231200