From f5cc73c3f3cfc9da0f4e89e8da4470aa31792874 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Wed, 26 Nov 2014 10:40:16 +0800 Subject: [PATCH 001/158] Translating by ZTinoZ --- ...Qs with Answers--How to install phpMyAdmin on CentOS.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md index e655c257e8..6ab8891ccf 100644 --- a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md +++ b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md @@ -1,7 +1,6 @@ -Translating by ZTinoZ -Linux FAQs with Answers--How to install phpMyAdmin on CentOS +Linux问答时间--如何在CentOS上安装phpMyAdmin ================================================================================ -> **Question**: I am running a MySQL/MariaDB server on CentOS, and I would like to manage its databases via web-based interface using phpMyAdmin. What is a proper way to install phpMyAdmin on CentOS? +> **问题**:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库。在CentOS上安装phpMyAdmin的最佳方法是什么? phpMyAdmin is an open-source PHP application designed as a web-based MySQL/MariaDB database administration tool. While there exist lightweight database management tools such as [Adminer][1], phpMyAdmin is more popularly used among webmasters to conduct various MySQL/MariaDB administration tasks. It supports pretty much all MySQL database/table related operations such as browse, create, copy, drop, rename, alter, as well as MySQL user/privilege management, and database import/export. Here is **how to install phpMyAdmin on CentOS 6 or 7**. @@ -153,7 +152,7 @@ and restart httpd: via: http://ask.xmodulo.com/install-phpmyadmin-centos.html -译者:[译者ID](https://github.com/译者ID) +译者:[ZTinoZ](https://github.com/ZTinoZ) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From b6b6d65891534befa4180054ee82720b065ca022 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Wed, 26 Nov 2014 17:39:50 +0800 Subject: [PATCH 002/158] Translating by ZTinoZ --- ... FAQs with Answers--How to install phpMyAdmin on CentOS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md index 6ab8891ccf..500172f5ab 100644 --- a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md +++ b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md @@ -2,9 +2,9 @@ Linux问答时间--如何在CentOS上安装phpMyAdmin ================================================================================ > **问题**:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库。在CentOS上安装phpMyAdmin的最佳方法是什么? -phpMyAdmin is an open-source PHP application designed as a web-based MySQL/MariaDB database administration tool. While there exist lightweight database management tools such as [Adminer][1], phpMyAdmin is more popularly used among webmasters to conduct various MySQL/MariaDB administration tasks. It supports pretty much all MySQL database/table related operations such as browse, create, copy, drop, rename, alter, as well as MySQL user/privilege management, and database import/export. Here is **how to install phpMyAdmin on CentOS 6 or 7**. +phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具。虽然已经存在着一些诸如[Adminer][1]的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaDB的管理任务。它支持几乎所有MySQL数据库/表的相关操作,比如浏览、创建、复制、删除、重命名、更改,还有MySQL用户/权限管理和数据库导入/导出。以下就是**如何在CentOS6或7上安装phpMyAdmin**。 -### Prerequisites ### +### 前提 ### To install phpMyAdmin on CentOS, you first need to set up a web server (e.g., Apache or nginx), MySQL/MariaDB and PHP. Depending on your preference or requirement, you can choose to install either [LAMP stack][2] or [LEMP stack][3]. From ea9fa87ebf012b610aae9406b4bd28a5afbe7316 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Thu, 27 Nov 2014 18:01:21 +0800 Subject: [PATCH 003/158] Translating by ZTinoZ --- ...rs--How to install phpMyAdmin on CentOS.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md index 500172f5ab..a41056f2b7 100644 --- a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md +++ b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md @@ -2,31 +2,31 @@ Linux问答时间--如何在CentOS上安装phpMyAdmin ================================================================================ > **问题**:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库。在CentOS上安装phpMyAdmin的最佳方法是什么? -phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具。虽然已经存在着一些诸如[Adminer][1]的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaDB的管理任务。它支持几乎所有MySQL数据库/表的相关操作,比如浏览、创建、复制、删除、重命名、更改,还有MySQL用户/权限管理和数据库导入/导出。以下就是**如何在CentOS6或7上安装phpMyAdmin**。 +phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具。虽然已经存在着一些诸如[Adminer][1]的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaDB的管理任务。它支持几乎所有MySQL数据库/表的相关操作,比如浏览、创建、复制、删除、重命名、更改,还有MySQL用户/权限管理和数据库导入/导出。以下就是**如何在CentOS 6或7上安装phpMyAdmin**。 ### 前提 ### -To install phpMyAdmin on CentOS, you first need to set up a web server (e.g., Apache or nginx), MySQL/MariaDB and PHP. Depending on your preference or requirement, you can choose to install either [LAMP stack][2] or [LEMP stack][3]. +在CentOS上安装phpMyAdmin,你第一步需要架设一台Web服务器(如Apache或nginx),安装好MySQL/MariaDB数据库和PHP。根据你的偏好和需求,你可以从[LAMP][2]和[LEMP][3]中选择一种安装。 -Another requirement is to enable EPEL repository on your CentOS. Follow [this guide][4] to set up EPEL repository if you haven't done so. +另一个要求是允许在你的CentOS上安装EPEL库。如果你还没设置过请[猛戳这里][4]。 -### Install phpMyAdmin on CentOS 6 or 7 ### +### 在CentOS6或7上安装phpMyAdmin ### -Once you set up EPEL repository, you can install phpMyAdmin easily with yum command as follows. +一旦你设置了EPEL库,你就能轻松地用以下命令安装phpMyAdmin了。 -On CentOS 7: +在CentOS 7上: $ sudo yum install phpmyadmin -On CentOS 6: +在CentOS 7上: $ sudo yum install phpmyadmin php-mcrypt -### Configure phpMyAdmin on CentOS 7 ### +### 在CentOS 7上配置phpMyAdmin ### -By default, phpMyAdmin on CentOS 7 allows access only from loopback address (127.0.0.1). To enable remote access, you will need to update its configuration. +默认情况下,CentOS 7上的phpMyAdmin只允许从回环地址(127.0.0.1)访问。为了能远程连接,你需要改动以下配置。 -Open phpMyAdmin's configuration (/etc/httpd/conf.d/phpMyAdmin.conf) with a text editor. Find and comment out every line that says "Require ip XXXX". There will be four such lines. Add "Require all granted" instead. The updated configuration file will look like the following. +用编辑器打开phpMyAdmin的配置文件(路径:/etc/httpd/conf.d/phpMyAdmin.conf)。Find and comment out every line that says "Require ip XXXX". There will be four such lines. Add "Require all granted" instead. The updated configuration file will look like the following. $ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf From 4887c41da25d71e846fcb2ffbe54e02ea9c5d6f4 Mon Sep 17 00:00:00 2001 From: DoubleShift Date: Fri, 28 Nov 2014 08:44:07 +0200 Subject: [PATCH 004/158] Update 20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md begin --- ...st versions of several games and applications in Ubuntu.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md b/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md index 4e360db2d3..a8a5e6d8aa 100644 --- a/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md +++ b/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md @@ -1,3 +1,5 @@ +Translating by doubleshit + UbuTricks – Script to install the latest versions of several games and applications in Ubuntu ================================================================================ UbuTricks is a program that helps you install the latest versions of several games and applications in Ubuntu. @@ -91,4 +93,4 @@ via: http://www.ubuntugeek.com/ubutricks-script-to-install-the-latest-versions-o 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://www.tuxarena.com/intro/files/ubutricks.sh \ No newline at end of file +[1]:http://www.tuxarena.com/intro/files/ubutricks.sh From 2137e75ab5208a6f694816749b1b40f6a07ea027 Mon Sep 17 00:00:00 2001 From: DoubleShift Date: Fri, 28 Nov 2014 09:33:54 +0200 Subject: [PATCH 005/158] Delete 20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md finished --- ...everal games and applications in Ubuntu.md | 96 ------------------- 1 file changed, 96 deletions(-) delete mode 100644 sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md diff --git a/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md b/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md deleted file mode 100644 index a8a5e6d8aa..0000000000 --- a/sources/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md +++ /dev/null @@ -1,96 +0,0 @@ -Translating by doubleshit - -UbuTricks – Script to install the latest versions of several games and applications in Ubuntu -================================================================================ -UbuTricks is a program that helps you install the latest versions of several games and applications in Ubuntu. - -UbuTricks is a Zenity-based, graphical script with a simple interface. Although early in development, its aim is to create a simple, graphical way of installing updated applications in Ubuntu 14.04 and future releases. - -Apps will be downloaded and installed automatically. Some will require a PPA to be added to the repositories. Others will be compiled from source if no PPA is available. The compilation process can take a long time, while installing from a PPA or DEB file should be quick, depending on your download speed. - -### The install methods are as follows: ### - -- PPA – the program will be downloaded and installed from a PPA -- DEB – the program will be installed from a DEB package -- Source – the program will be compiled (may take a long time) -- Script – the program will be installed using a script provided by the developer -- Archive – the program will be installed from a compressed archive -- Repository – the program will be installed from a repository (not PPA) - -### List of applications you can install ### - -The latest versions of the following applications can be installed via UbuTricks: - -### Games ### - -- 0 A.D. -- Battle for Wesnoth (Dev) -- VCMI (Heroes III Engine) - -### File Managers ### - -- PCManFM - -### Internet ### - -- Geary -- HexChat -- QupZilla -- QuiteRSS - -### Multimedia ### - -- SMPlayer -- Transmageddon -- Kdenlive -- Fotoxx -- jAlbum -- GIMP -- Shutter -- Qmmp -- XBMC - -### Office/Ebooks/Documents ### - -- Calibre -- LibreOffice - -### Tools ### - -- Ubuntu Tweak - -### Desktop Environments ### - -- Cinnamon - -### Other ### - -- Google Earth -- Wine - -### Download and install Ubuntutricks script ### - -You can download ubuntutricks script from [here][1] Once downloaded, make it executable and either double-click the script or run it from the terminal. - -### Screenshots ### - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/116.png) - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/213.png) - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/35.png) - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/45.png) - --------------------------------------------------------------------------------- - -via: http://www.ubuntugeek.com/ubutricks-script-to-install-the-latest-versions-of-several-games-and-applications-in-ubuntu.html - -作者:[ruchi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://www.tuxarena.com/intro/files/ubutricks.sh From e9d59968c9603e851271496390879ca75881a2c2 Mon Sep 17 00:00:00 2001 From: DoubleShift Date: Fri, 28 Nov 2014 09:37:02 +0200 Subject: [PATCH 006/158] Create 20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md Translate finished. --- ...everal games and applications in Ubuntu.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md diff --git a/translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md b/translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md new file mode 100644 index 0000000000..4f0f8f19f1 --- /dev/null +++ b/translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md @@ -0,0 +1,94 @@ +UbuTricks - 在ubuntu上安装几个最新游戏和应用的脚本 +=== +UbuTricks是一个可以帮助你在ubuntu上安装几个最新版本的游戏和应用的程序。 + +UbuTricks是一个有简单界面,基于Zenity的图形脚本。虽然早期开发中,它的目标是通过简单的界面操作来安装Ubuntu14.04 及以后发行版上应用程序的更新。 + +应用程序会自动下载安装。一些更新可能会需要ppa。其它的将会通过编译源代码安装。编译过程可能会需要一些时间,当从ppa或者deb文件安装应该会快一点,取决于你的下载速度。 + +###一共有以下几种安装方式: + +- PPA - 程序将会从PPA下载安装 +- DEB - 程序将会从DEB文件进行安装 +- Source - 程序会进行编译安装 (可能需要一点时间) +- Script - 程序会通过开发者提供的脚本进行安装 +- Archive - 程序会通过压缩文件安装 +- Repository - 程序从仓库安装 (不是PPA) + +###你可以安装的应用程序列表 + +通过UbuTricks可以安装下面应用的最新版本: + +###游戏 + +- 0 A.D. +- Battle for Wesnoth (Dev) +- VCMI (Heroes III Engine) + +###文件管理 + +- PCManFM + +###互联网 + +- Geary +- HexChat +- QupZilla +- QuiteRSS + +###多媒体 + +- SMPlayer +- Transmageddon +- Kdenlive +- Fotoxx +- jAlbum +- GIMP +- Shutter +- Qmmp +- XBMC + +###办公/电子书/文档 + +- Calibre +- LibreOffice + +###工具 + +- Ubuntu Tweak + +###桌面环境 + +- Cinnamon + +###其他 + +- Google Earth +- Wine + +###下载,安装Ubuntutricks + +你可以从[这里][1]下载ubuntutricks,让它可执行然后双击脚本或者从终端里运行它。 + +###截图 + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/116.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/213.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/35.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/10/45.png) + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/ubutricks-script-to-install-the-latest-versions-of-several-games-and-applications-in-ubuntu.html + +作者:[ruchi][a] +译者:[DoubleShit](https://github.com/DoubleShit) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]:http://www.tuxarena.com/intro/files/ubutricks.sh From 04ed0501ac3e430a60c091ef0e7196fccd6bbe16 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Fri, 28 Nov 2014 17:35:37 +0800 Subject: [PATCH 007/158] Translating by ZTinoZ --- ...rs--How to install phpMyAdmin on CentOS.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md index a41056f2b7..481f4757c6 100644 --- a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md +++ b/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md @@ -24,9 +24,9 @@ phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工 ### 在CentOS 7上配置phpMyAdmin ### -默认情况下,CentOS 7上的phpMyAdmin只允许从回环地址(127.0.0.1)访问。为了能远程连接,你需要改动以下配置。 +默认情况下,CentOS 7上的phpMyAdmin只允许从回环地址(127.0.0.1)访问。为了能远程连接,你需要改动它的配置。 -用编辑器打开phpMyAdmin的配置文件(路径:/etc/httpd/conf.d/phpMyAdmin.conf)。Find and comment out every line that says "Require ip XXXX". There will be four such lines. Add "Require all granted" instead. The updated configuration file will look like the following. +用文本编辑器打开phpMyAdmin的配置文件(路径:/etc/httpd/conf.d/phpMyAdmin.conf),找出并注释掉带有"Require ip XXXX"字样的代码行。会有四处这样的代码行,用"Require all granted"取而代之。重新改动过的配置文件如下所示。 $ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf @@ -72,15 +72,15 @@ phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工 . . . . . -Finally, restart httpd to activate the change. +最后,重启httpd使改动生效。 $ sudo systemctl restart httpd -### Configure phpMyAdmin on CentOS 6 ### +### 在CentOS 6上配置phpMyAdmin ### -By default, phpMyAdmin on CentOS 6 blocks access from every IP address. To enable remote access, you will need to update its configuration. +默认情况下,CentOS 6上的phpMyAdmin是禁止从每个IP地址访问的。为了能远程连接,你需要改动它的配置。 -Open phpMyAdmin's configuration (/etc/httpd/conf.d/phpmyadmin.conf) with a text editor. Find a line that says "Deny from all", and comment it out. Then change the line that says "Allow from 127.0.0.1" to "Allow from 0.0.0.0". The updated configuration will look like the following. +用文本编辑器打开phpMyAdmin的配置文件(路径:/etc/httpd/conf.d/phpMyAdmin.conf),找出并注释掉"Deny from all"字样的代码行。然后把"Allow from 127.0.0.1"字样的代码行改成"Allow from 0.0.0.0"。重新改动过的配置文件如下所示。 $ sudo vi /etc/httpd/conf.d/phpmyadmin.conf @@ -92,9 +92,9 @@ Open phpMyAdmin's configuration (/etc/httpd/conf.d/phpmyadmin.conf) with a text Allow from 0.0.0.0 -The next step is to add a blowfish password to the phpMyAdmin's configuration. This step is needed to encrypt password in cookie as part of cookie-based authentication. +下一步是将phpMyAdmin的配置文件用blowfish加密工具加密。这一步需要加密cookie里的密码来作为基于cookie的部分认证。 -Open the following file with a text editor, and set a random blowfish password as follows. +用文本编辑器打开如下路径所示的文件并且用blowfish设置一个随机密码,如下所示。 $ sudo vi /usr/share/phpmyadmin/config.inc.php @@ -102,21 +102,21 @@ Open the following file with a text editor, and set a random blowfish password a $cfg['blowfish_secret'] = 'kd5G}d33aXDc50!'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ -Finally, restart httpd to activate the change. +最后,重启httpd使改动生效。 $ sudo service httpd restart -### Test phpMyAdmin ### +### 测试phpMyAdmin ### -To test if phpMyAdmin is successfully set up, go to http:///phpmyadmin +测试phpMyAdmin是否设置成功,访问这个页面:http:///phpmyadmin ![](https://farm6.staticflickr.com/5606/15550758749_0f7ab66b5b_z.jpg) -You should be able to log with any MySQL user (e.g., root), and manage MySQL/MariaDB databases/tables via a web-based interface. +你应该能通过Web界面来记录下任何MySQL用户(比如root)和管理MySQL/MariaDB的数据库/表。 ![](https://farm8.staticflickr.com/7505/15551187008_86ac7e7db1_z.jpg) -### Troubleshooting ### +### 疑难解答 ### Here are a few troubleshooting tips during phpMyAdmin installation on CentOS. From 04eb460fb15f76a9fdf4d115c179cb5130bea98b Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Fri, 28 Nov 2014 21:12:19 +0800 Subject: [PATCH 008/158] [Translated] How to install Docker on CentOS 7 --- ...41127 How to install Docker on CentOS 7.md | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) rename {sources => translated}/tech/20141127 How to install Docker on CentOS 7.md (53%) diff --git a/sources/tech/20141127 How to install Docker on CentOS 7.md b/translated/tech/20141127 How to install Docker on CentOS 7.md similarity index 53% rename from sources/tech/20141127 How to install Docker on CentOS 7.md rename to translated/tech/20141127 How to install Docker on CentOS 7.md index 31bcce6697..7c06ab283b 100644 --- a/sources/tech/20141127 How to install Docker on CentOS 7.md +++ b/translated/tech/20141127 How to install Docker on CentOS 7.md @@ -1,29 +1,27 @@ -[felixonmars translating...] - -How to install Docker on CentOS 7 +如何在 CentOS 7 上安装 Docker ================================================================================ -Docker is an open-source tool that makes creating & managing **Linux containers(LXC)** easy. Containers are like lightweight VMs which can be started & stopped in milliseconds. Dockers help the system admin & coders to develop their application in a container and can further scale up to 1000 of nodes. +Docker 是一个开源工具,它可以让创建和管理 **Linux 容器**变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点。 -The main difference between container and VM(Virtual machine) is that dockers provide **process based isolation** , whereas VM provides full isolation of resources. Virtual machine takes a minute to start where as container can be started in a second or less than a second. Container uses the Kernel of host OS , whereas VM uses the separate Kernel. +容器和 VM(虚拟机)的主要区别是,容器提供了**基于进程的隔离**,而虚拟机提供了资源的完全隔离。虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。容器使用宿主操作系统的内核,而虚拟机使用独立的内核。 -One of the limitation of Docker is that it can be used only on **64bit hosts** OS. +Docker 的局限性之一是,它只能用在 **64 位**的操作系统上。 -In this post we will discuss how to install docker in CentOS 7.x +在这篇文章中我们将讨论如何在 CentOS 7.x 中安装 docker。 -### Installation of Docker on CentOS 7 ### +### CentOS 7 中 Docker 的安装 ### -Docker package is included in the default CentOS-Extras repository. So to install docker , simply run below yum command : +Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令: [root@localhost ~]# yum install docker -### Start the Docker Service ### +### 启动 Docker 服务 ### -Once the Installation is finished , start docker service and enable it at boot using below commands +安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动: [root@localhost ~]# service docker start [root@localhost ~]# chkconfig docker on -**Download the official Centos images Locally** +**下载官方的 CentOS 镜像到本地** [root@localhost ~]# docker pull centos Pulling repository centos @@ -33,7 +31,7 @@ Once the Installation is finished , start docker service and enable it at boot u 511136ea3c5a: Download complete 5b12ef8fd570: Download complete -**Verify CentOS images that have been fetched :** +**确认 CentOS 镜像已经被获取:** [root@localhost ~]# docker images centos REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE @@ -42,12 +40,12 @@ Once the Installation is finished , start docker service and enable it at boot u centos centos7 ae0c2d0bdc10 2 weeks ago 224 MB centos latest ae0c2d0bdc10 2 weeks ago 224 MB -**Run a Docker Container :** +**运行一个 Docker 容器:** [root@localhost ~]# docker run -i -t centos /bin/bash [root@dbf66395436d /]# -As we can see centos container has been started and we got the bash shell. In docker command we have used options like ‘-i attaches stdin and stdout’ and ‘-t allocates a terminal or console’ . To disconnect from container type exit . +我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 “-i attach 标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。 [root@cd05639b3f5c /]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) @@ -55,12 +53,12 @@ As we can see centos container has been started and we got the bash shell. In do exit [root@localhost ~]# -We can also search Containers based on fedora & ubuntu OS. +我们还可以搜索基于 Fedora 和 Ubuntu 操作系统的容器。 [root@localhost ~]# docker search ubuntu [root@localhost ~]# docker search fedora -**Display the list of running containers ** +**显示当前正在运行容器的列表** ![](http://www.linuxtechi.com/wp-content/uploads/2014/11/docker-ps.png) From 392bd99ec4570f4ac5dec6991a77e2da4f8f2861 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 28 Nov 2014 09:41:00 -0500 Subject: [PATCH 009/158] translated --- ...rs--How to access a NAT guest from host with VirtualBox.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md b/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md index 32d27068b7..3e36242693 100644 --- a/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md +++ b/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md @@ -1,3 +1,5 @@ +Translating----geekpi + Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox ================================================================================ > **Question**: I have a guest VM running on VirtualBox, which uses NAT networking. So the guest VM is getting a private IP address (10.x.x.x) assigned by VirtualBox. If I want to SSH to the guest VM from the host machine, how can I do that? @@ -64,4 +66,4 @@ via: http://ask.xmodulo.com/access-nat-guest-from-host-virtualbox.html 译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 \ No newline at end of file +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 5992044cb9ee267f381784573d82eaeea3480f40 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 28 Nov 2014 09:47:50 -0500 Subject: [PATCH 010/158] translated --- ...s a NAT guest from host with VirtualBox.md | 69 ------------------- 1 file changed, 69 deletions(-) delete mode 100644 sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md diff --git a/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md b/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md deleted file mode 100644 index 3e36242693..0000000000 --- a/sources/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md +++ /dev/null @@ -1,69 +0,0 @@ -Translating----geekpi - -Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox -================================================================================ -> **Question**: I have a guest VM running on VirtualBox, which uses NAT networking. So the guest VM is getting a private IP address (10.x.x.x) assigned by VirtualBox. If I want to SSH to the guest VM from the host machine, how can I do that? - -VirtualBox supports several networking options for guest VMs, one of them being NAT networking. When NAT networking is enabled for a guest VM, VirtualBox automatically performs network address translation between the guest VM and host's network stack, so that you do not have to configure anything on the host machine and local network for the guest VM's networking to work. The implication of such NAT, however, is that the guest VM is not reachable or visible from external networks as well as from the local host itself. This is a problem if you want to access the guest VM from the host machine for some reason (e.g., SSH). - -If you want to access a NAT guest from the host on VirtualBox, you can enable port forwarding for VirtualBox NAT, either from the GUI or from the command line. This tutorial demonstrates **how to SSH a NAT guest from the host** by enabling port forwarding for port 22. If you want to access HTTP of a NAT guest instead, replace port 22 with port 80. - -### Configure VirtualBox Port Forwarding from the GUI ### - -On VirtualBox, choose the guest VM you want to access, and open "Settings" window of the VM. Click on "Network" menu on the left, click on "Advanced" to show additional network adapter options. - -![](https://farm8.staticflickr.com/7583/15797904856_2753dc785e_z.jpg) - -Click on a button labeled "Port Forwarding." - -![](https://farm8.staticflickr.com/7527/15636152708_cf2be7c7e8_z.jpg) - -You will see a window where you can configure port forwarding rules. Click on "Add" icon in the upper right corner. - -![](https://farm8.staticflickr.com/7489/15636391217_48a9954480_z.jpg) - -Add a new port forwarding rule with the following detail. - -- **Name**: SSH (any arbitrary unique name) -- **Protocol**: TCP -- **Host IP**: 127.0.0.1 -- **Host Port**: 2222 (any unused port higher than 1024) -- **Guest IP**: IP address of the guest VM -- **Guest Port**: 22 (SSH port) - -![](https://farm6.staticflickr.com/5603/15202135853_02a07c3212_o.png) - -Port forwarding configured for the guest VM will be enabled automatically when you power on the guest VM. For verification, check that port 2222 is opened by VirtualBox after you launch the guest VM: - - $ sudo netstat -nap | grep 2222 - -![](https://farm8.staticflickr.com/7461/15819682411_6bb9707f8a_z.jpg) - -Now that port forwarding is in place, you can SSH to the guest VM bs follows. - - $ ssh -p 2222 @127.0.0.1 - -An SSH login request sent to 127.0.0.1:2222 will automatically be translated into 10.0.2.15:22 by VirtualBox, allowing you to SSH to the guest VM. - -### Configure VirtualBox Port Forwarding from the Command Line ### - -VirtualBox comes with a command-line management interface called VBoxManage. Using this command-line tool, you can also set up port forwarding for your guest VM. - -The following command creates a port forwarding rule for guest VM named "centos7" with IP address 10.0.2.15 and SSH port 22, mapped to local host at port 2222. The name of the rule ("SSH" in this example) must be unique. - - $ VBoxManage modifyvm "centos7" --natpf1 "SSH,tcp,127.0.0.1,2222,10.0.2.15,22" - -Once the rule is created, you can verify that by using the command below. - - $ VBoxManage showvminfo "centos7" | grep NIC - -![](https://farm8.staticflickr.com/7559/15636458427_7a0959900c_z.jpg) - --------------------------------------------------------------------------------- - -via: http://ask.xmodulo.com/access-nat-guest-from-host-virtualbox.html - -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 1676f66d703f70f65368f3f10669138c3fb05e87 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 28 Nov 2014 09:48:34 -0500 Subject: [PATCH 011/158] translated --- ...s a NAT guest from host with VirtualBox.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md diff --git a/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md b/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md new file mode 100644 index 0000000000..380b7601a3 --- /dev/null +++ b/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md @@ -0,0 +1,67 @@ +nux 有问必答 -- 如何从VirtualBox中从主机访问NAT客户机 +================================================================================ +> **提问**: 我有一台运行在VirtualBox上的使用NAT的虚拟机。因此虚拟机会被VirtualBox分配一个私有IP地址(10.x.x.x)。如果我想要从主机SSH到虚拟机中,我该怎么做? + +VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络。当虚拟机启用NAT后,VirtualBox会自动在虚拟机和主机之间进行网络翻译,因此你不于必在虚拟机和主机之间配置任何东西。这也意味着NAT中的虚拟机对于外部网络以及主机本身是不可见的。这会在你想要从主机访问虚拟机时会产生问题(比如SSH)。 + +如果你想从VirtualBox的NAT环境的虚拟机,你可以在GUI或者命令行下启用VirtualBox NAT的端口转发。本篇教程将会演示**如何通过启用22端口转发而从主机SSH连接到NAT环境的客户机**。如果你先想要从HTTP访问NAT的客户机,用80端口代替22端口即可。 + +### 通过GUI配置VirtualBox端口转发 ### + +在VirtualBox中选择你想要访问的虚拟机,打开虚拟机的“设置”。点击左侧的“网络”菜单,点击网络适配选项的“高级”。 + +![](https://farm8.staticflickr.com/7583/15797904856_2753dc785e_z.jpg) + +点击“端口转发”按钮 + +![](https://farm8.staticflickr.com/7527/15636152708_cf2be7c7e8_z.jpg) + +你会看到一个配置端口转发规则的窗口。点击右上角的“添加”图标。 + +![](https://farm8.staticflickr.com/7489/15636391217_48a9954480_z.jpg) + +就会看到像下面那样的转发规则。 + +- **Name**: SSH (可以是任意唯一名) +- **Protocol**: TCP +- **Host IP**: 127.0.0.1 +- **Host Port**: 2222 (任何大于1024未使用的端口) +- **Guest IP**: 虚拟机IP +- **Guest Port**: 22 (SSH 端口) + +![](https://farm6.staticflickr.com/5603/15202135853_02a07c3212_o.png) + +端口转发的规则会自动在你启动虚拟机的时候启用。为了验证。可以在你启用虚拟机后检查端口2222是否被VirtualBox开启了。 + + $ sudo netstat -nap | grep 2222 + +![](https://farm8.staticflickr.com/7461/15819682411_6bb9707f8a_z.jpg) + +现在端口转发可以使用了,你可以用下面的命令SSH到虚拟机。 + + $ ssh -p 2222 @127.0.0.1 + +发送到127.0.0.1:2222的登录请求会自动被VirtualBox翻译成10.0.2.15:22,这可以让你SSH到虚拟机中。 + +### 通过命令行配置VirtualBox端口转发 ### + +VirtualBox有一个称为VBoxManage的命令行管理工具。使用命令行工具,你也可以为你的虚拟机设置端口转发。 + +下面的命令会为IP地址为10.0.2.15的虚拟机设置一个名字为"centos7"的端口转发规则,SSH的端口号为22,映射到本地主机的端口为2222。规则的名字(本例中是SSH)必须是唯一的。 + + $ VBoxManage modifyvm "centos7" --natpf1 "SSH,tcp,127.0.0.1,2222,10.0.2.15,22" + +规则创建之后,你可以用下面的命令来验证。 + + $ VBoxManage showvminfo "centos7" | grep NIC + +![](https://farm8.staticflickr.com/7559/15636458427_7a0959900c_z.jpg) + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/access-nat-guest-from-host-virtualbox.html + +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 592cc17351b5adc64af6377d6f26e2b19079550f Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 28 Nov 2014 22:53:55 +0800 Subject: [PATCH 012/158] Update 20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md --- ...wers--How to access a NAT guest from host with VirtualBox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md b/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md index 380b7601a3..87032ce167 100644 --- a/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md +++ b/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md @@ -1,4 +1,4 @@ -nux 有问必答 -- 如何从VirtualBox中从主机访问NAT客户机 +Linux 有问必答 -- 如何从VirtualBox中从主机访问NAT客户机 ================================================================================ > **提问**: 我有一台运行在VirtualBox上的使用NAT的虚拟机。因此虚拟机会被VirtualBox分配一个私有IP地址(10.x.x.x)。如果我想要从主机SSH到虚拟机中,我该怎么做? From 3760bdc4603b29aa7accdb5be6efecc527b40664 Mon Sep 17 00:00:00 2001 From: KayGuoWhu Date: Sat, 29 Nov 2014 11:53:50 +0800 Subject: [PATCH 013/158] translated --- .../20141127 What Makes a Good Programmer.md | 63 ------------------ .../20141127 What Makes a Good Programmer.md | 66 +++++++++++++++++++ 2 files changed, 66 insertions(+), 63 deletions(-) delete mode 100644 sources/talk/20141127 What Makes a Good Programmer.md create mode 100644 translated/talk/20141127 What Makes a Good Programmer.md diff --git a/sources/talk/20141127 What Makes a Good Programmer.md b/sources/talk/20141127 What Makes a Good Programmer.md deleted file mode 100644 index e57aa9e58d..0000000000 --- a/sources/talk/20141127 What Makes a Good Programmer.md +++ /dev/null @@ -1,63 +0,0 @@ -[KayGuoWhu translating] -What Makes a Good Programmer? -================================================================================ -What makes a good programmer? It’s an interesting question to ask yourself. It makes you reflect on the craft of software development. It is also a good question to ask your colleagues. It can trigger some interesting discussions on how you work together. Here are five skills I think are crucial to have in order to be a good programmer. - -### 1. Problem Decomposition ### - -Programming is about solving problems. But before you write any code, you need to be clear on how to solve the problem. One skill good programmers have is the ability to break the problem down in smaller and smaller parts, until each part can be easily solved. But it is not enough simply to find a way to solve the problem. A good programmer finds a way to model the problem in such a way that the resulting program is easy to reason about, easy to implement and easy to test. - -Some of the most complicated programs I have worked on were complicated in part because the implementation did not fit the problem very well. This led to code that was hard to understand. When the problem is well modeled, I agree with Bernie Cosell (interviewed in the excellent [Coders at Work][1]): - -> “…there are very few inherently hard programs. If you are looking at a piece of code and it looks very hard – if you can’t understand what this thing is supposed to be doing – that’s almost always an indication that it was poorly thought through. At that point you don’t roll up your sleeves and try to fix the code; you take a step back and think it through again. When you’ve thought it through enough, you’ll find out that it’s easy“. - -### 2. Scenario Analysis ### - -Good developers have the ability to consider many different scenarios for the program. This applies both to the logic in the program, and to the internal and external events that can occur. To consider the different paths in the logic, they ask questions like: What happens if this argument is null? What if none of these conditions are true? Is this method thread-safe? To discover what types of events the software needs to handle, they will ask questions like: What if this queue becomes full? What if there is no response to this request? What if the other server restarts while this server is restarting? - -The good programmers ask themselves: How can this break? In other words, they have the ability to think like testers. In contrast, inexperienced programmers mostly only consider the “happy path” – the normal flow of control when everything goes as expected (which it does most of the time). But of course, the unexpected inevitably happens, and the program needs to be able to cope with that. - -### 3. Naming ### - -Programming consists to a large degree of naming things: classes, methods and variables. When done well, the program becomes largely self-documenting, meaning that the function of the program is quite clear just from reading the source code. One effect of self-documenting code is that it naturally leads to many smaller methods, rather than a few large ones, simply because then you have more places to put meaningful names (there are [other reasons][2] why many small methods are good too). - -Coming up with good names is much harder than it sounds. I like this quote (from Phil Karlton): “There are only two hard things in Computer Science: cache invalidation and naming things.” Partly naming is hard because it needs to be clear in your mind what each name represents. Sometimes that is not immediately clear, but only becomes apparent as the development proceeds. Therefore, renaming is just as important as naming. - -Naming things well also includes coming up with concepts to be used, and what these concepts should be called. By having well-thought out, distinctly named concepts that are used consistently (in the program, and when discussing the domain with programmers and non-programmers), writing the program becomes much easier. - -### 4. Consistency ### - -Perhaps the biggest challenge in programming is managing complexity. Consistency is one way to combat complexity. It reduces some of the complexity by allowing us to see patterns and infer how things are named, used and handled. With consistency, we don’t need to use brain power to remember exceptions and random variations. Instead we can concentrate on [essential complexity, not accidental complexity][3]. - -Consistency is important across the board. It applies to variable names and grouping, method naming, the division into modules, the directory structure, the GUI, error handling, logging, documentation etc. For example, if some variables are related and appear together (in declarations, method calls or as columns in the database) then always use them in the same order. Then it becomes easier to see if one is missing, or if they have been mixed up. For an operation, if it is called delete in one place, don’t call it remove in another place – stick with the same name. Steve McConnell also has some good advice on using opposites precisely in [Code Complete][4]. For example, begin/end are opposites, as are start/stop. Don’t mix names from different pairs (for example using begin/stop) when dealing with opposites. - -Inconsistencies can get introduced when modifying a program. Sloppy programmers don’t pay attention to if what they add is consistent with the existing code or not. Good programmers are relentless in ensuring that seemingly small details are just right. They know how important consistency is in the overall fight against complexity. - -### 5. Learning ### - -As a software developer, you are constantly learning. Before adding a new feature, you have to understand what it is supposed to do. Before adding code to an existing program, you usually have to learn what the existing code does, in order fit the new functionality in properly. You also have to learn about the surrounding systems, in order to interface with them correctly. The ability to learn fast therefore makes you a much more effective developer. - -Furthermore, because the pace of development in the software engineering field is so high, there is a steady stream of new languages, tools, techniques and frameworks to learn about. You can view this as good or bad. Fred Brooks lists learning as [one of the joys of the craft][5], and I agree. Learning new things is satisfying in itself. It also means that life as a developer never is boring. - -### Conclusion ### - -All of the above skills are generic – none of them are specific to any one language, framework or technology. If you have them, you can quickly learn a new language or tool, and write good software in that environment. Furthermore, because they are general in nature, they will not become obsolete in a couple of years. - -These are my answers for what makes a good programmer. What do you think makes a good programmer? Let me know in the comments. - --------------------------------------------------------------------------------- - -via: http://henrikwarne.com/2014/06/30/what-makes-a-good-programmer/ - -作者:[Henrik Warne][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://henrikwarne.com/about/ -[1]:http://www.amazon.com/review/R2OV0TG7MJGXGL -[2]:http://henrikwarne.com/2013/08/31/7-ways-more-methods-can-improve-your-program/ -[3]:http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf -[4]:http://www.amazon.com/review/R269BBARXH1V6R/ -[5]:http://henrikwarne.com/2012/06/02/why-i-love-coding/ \ No newline at end of file diff --git a/translated/talk/20141127 What Makes a Good Programmer.md b/translated/talk/20141127 What Makes a Good Programmer.md new file mode 100644 index 0000000000..7e754c2e16 --- /dev/null +++ b/translated/talk/20141127 What Makes a Good Programmer.md @@ -0,0 +1,66 @@ +什么造就一个优秀的程序员? + +================================================================================ +是什么造成一个优秀的程序员?首先问问你自己吧,这会是个有趣的问题。它让你反思自己软件开发的能力。这个问题也适合问问你的同事。它可以带来一些关于如何协同工作的有趣讨论。下面是五个我认为成为一个优秀程序员必备的重要技能。 + +### 1. 分解问题 ### + +编程是为了解决问题,但在你开始写代码前,需要明白如何解决问题。优秀程序员的一项技能是把大的问题逐层分解成一个个更小的部分,直到每一部分都可以很容易解决。但找到解决问题的方式往往并没有那么简单。优秀程序员能找到方法去建立问题模型,这种方法使得输出结果的程序容易解释、实现和测试。 + +我写过的某些最复杂的程序在局部上都是难懂的,因为代码实现并不能很好地描述问题,也就导致了编写的代码难以理解。当问题很好建模的时候,我赞同伯尼·科赛尔所说的话(取自著名的[程序员在工作][1]中的访谈记录): + +> “……很少有本质上很难的程序。如果你盯着某一块代码,它看起来确实很难;如果你无法理解某件事情应该产生什么结果,这基本上就暗示这件事情很难思考清楚了。在这个时候,你不应该卷起袖子,尝试修复代码;你需要只是往回一步,再仔细考虑清楚。当你已经深思熟虑后,你会发现问题变得很简单”。 + +### 2. 场景分析 ### + +优秀开发者能考虑到如何使程序适合多种不同的场景。这项能力既适用于处理程序本身的逻辑,又适用于处理发生的外部和内部事件。为了考虑逻辑上的不同思路,他们问自己这样的问题:如果这个参数为空会发生什么?如果所有条件都为假呢?这个方法在线程上是安全的吗?为了发现软件需要处理的各种类型的事件,他们问自己这样的问题:如果队列占满了会怎样?如果请求收不到响应会怎样?如果在这台服务器重启的同时另外一台服务器也重启了会怎样? + +优秀程序员问他们自己:如何打破自己的程序?换句话说,他们有能力像测试人员一样思考。相反,缺少经验的程序员通常只考虑正确的路径——在一切都按照预期进行时正常的控制流(当然这也是程序在大部分时候做的事情)。当然,异常不可避免要发生,所以需要程序能处理这些情况。 + +### 3. 命名 ### + +编程由大量的命名对象组成:类、方法和变量。当编码完成时,程序也具备了自我描述的能力,也就是说通过阅读源代码可以清楚地明白程序中函数的含义。自描述代码的一个好处就是很自然地产生许多体积更小的方法,而不是少数体积大的方法,因为你有更多空间去放置有意义的名字(还有[其它原因][2]解释为什么短小方法更好)。 + +想出好的名字比它听起来更困难一些。我喜欢这段引用(来自菲尔·卡尔顿):“在计算机科学领域只有两件困难的事情:缓存失效和命名对象。”命名在一定程度上很困难是因为你需要清楚地明白每一个名字究竟要代表什么。有时候命名不是清楚,只有随着软件开发进展才会慢慢显现。因此,重命名和命名一样重要。 + +命名对象也包含提出要用的概念和这些概念该如何称呼。通过深思熟虑,清楚命名所使用的惯用概念(在程序中和与程序员、非程序员讨论时使用),这使得编写程序变得更加容易。 + +### 4. 一致性 ### + +也许编程中最大的挑战是管理复杂性。保持一致性是处理复杂性的一种方法。它通过允许我们看到对象命名、使用和处理所采用的模式和推理来降低了某些复杂性。有了一致性,我们就无需用脑袋去记住异常和随机变量。取而代之,我们可以更关注[程序本身的复杂性,而不是偶然产生的复杂性][3]。 + +保持一致性是很重要的。它应用在变量名字和分组、方法命名、模块划分、目录结构、GUI、错误处理、日志输出和文档等很多方面。比如,如果某些变量是的相关,并一起出现(在声明、方法调用或数据库中的列),而且总是以相同的顺序使用它们。那么当其中一个消失或者整体被打乱时,你就会很容易发现。对于一个操作,如果在一个地方叫delete,就不要在另一个地方叫remove:务必使用相同的名字。史蒂夫·麦克奈尔在[代码大全][4]中对于使用相反命名有相同的建议。比如,begin和end是相反的,就如同start和stop一样。当使用相反对时不要混用不同对的名字(比如使用begin和stop)。 + +当修改一段程序时可能会引入非一致性。粗心大意的程序员不会注意到他们添加的代码是否和已有的代码保持一致。优秀程序员会严苛地确保在这些看似很小的细节上都要做得恰到好处。他们知道保持一致性对于在软件开发的整个过程中处理复杂性是多么的重要。 + +### 5. 学习能力 ### + +作为一名软件开发者,你需要持续学习。在为软件添加一项新功能前,你必须明白为什么要这么做。在给一个已有程序添加代码前,你通常必须学习已有代码在做什么,以便合适地嵌入新功能。你还需要学习相关系统,以便正确地与它们交互。因此,快速学习的能力使你成为一名更加高效的开发者。 + +而且,因为软件工程领域的开发速度是如此的快速,所以新的编程语言、工具、技术和框架需要学习层出不穷。这是好还是坏,就看你怎么看。佛瑞德·布鲁克斯把学习能力列为[技能的快乐之一][5],对此我深表赞同。学习新事物本身就是令人心满意足的,它也意味着开发者的生活从不无聊。 + +### 总结 ### + +上面所有的技能都是通用的——它们中没有一项是针对某种语言、某个框架或某种技术。如果你拥有它们,你就能快速学习一门新的语言或工具,在新的环境下写出优秀的软件。而且,因为它们在本质上是通用的,所以不会在若干年以后变得不实用。 + +这就是我对什么因素造就一个优秀程序员的回答。你认为造就一个优秀程序员的因素是哪些?在评论里让我知道吧。 + +-------------------------------------------------------------------------------- + +via: http://henrikwarne.com/2014/06/30/what-makes-a-good-programmer/ + +作者:[Henrik Warne][a] +译者:[KayGuoWhu](https://github.com/KayGuoWhu) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://henrikwarne.com/about/ +[1]:http://www.amazon.com/review/R2OV0TG7MJGXGL +[2]:http://henrikwarne.com/2013/08/31/7-ways-more-methods-can-improve-your-program/ +[3]:http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf +[4]:http://www.amazon.com/review/R269BBARXH1V6R/ +[5]:http://henrikwarne.com/2012/06/02/why-i-love-coding/ + + + From 50cbc2fd447c5621d0c54751b43f774415fbf41e Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Sat, 29 Nov 2014 15:04:44 +0800 Subject: [PATCH 014/158] translated by Stevearzh --- .DS_Store | Bin 0 -> 6148 bytes sources/.DS_Store | Bin 0 -> 8196 bytes sources/share/.DS_Store | Bin 0 -> 10244 bytes sources/talk/.DS_Store | Bin 0 -> 8196 bytes .../talk/20141108 When hackers grow old.md | 66 ------------------ translated/.DS_Store | Bin 0 -> 8196 bytes translated/talk/.DS_Store | Bin 0 -> 8196 bytes .../talk/20141108 When hackers grow old.md | 65 +++++++++++++++++ 8 files changed, 65 insertions(+), 66 deletions(-) create mode 100644 .DS_Store create mode 100644 sources/.DS_Store create mode 100644 sources/share/.DS_Store create mode 100644 sources/talk/.DS_Store delete mode 100644 sources/talk/20141108 When hackers grow old.md create mode 100644 translated/.DS_Store create mode 100644 translated/talk/.DS_Store create mode 100644 translated/talk/20141108 When hackers grow old.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3b5ccdfd86da902652a4e3254157c83d22e39145 GIT binary patch literal 6148 zcmeHK-D(p-6h6~Nvq_<>s8H}`FBO8MrXja!ng|6ep(`z7CGIv$GqCQ4-A#jpK(2j) zUi<$Tg6NeGppW8J{APA4$z}zwL}X4l^PQPF=j_Zk*_j<8Vy#hso5&<011hjkMv)_; zU+9Xgsg?~OlR55Dm9}Yz?$YxWZ{467&-Bm@DSU> zedz7E6j($>dO-WMM;&@dHgz)IUo+k%8q$bdJc(0G1M(=7pB=7593uBFwdnvTc9d+y zw@gG4nK_+NkmoJOf3YlLfks7))@q|vBWtesk8IyFBU#;rT`-Gj%&>C0EI-@JYI{==uwa^l3WwM)6K@Djej z$k1|bM}Z#(XXp`8W&EWga{kpgWhG4C!$DLs1KBh&@1y zW<<=HU{m2NMY(mLkXHa;0nJiii;o2nV<~JZoTZ2!2unkOX(&@y43>tY z-BNx{g|igXaANB6!PJwPx}h-nbmX_BJF#Ypy3`D429_CEPphUl|2x0G|1SsWnr1*V z@Lw^&3T?aH!j#n6x-vO&)>_bKP$9x^mZA(np^jr|h@*H5Dg}L(Fn~>kvlP(+(H{bm M23=?d{wf1M0j~`c9RL6T literal 0 HcmV?d00001 diff --git a/sources/.DS_Store b/sources/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..245c23902a8336ca2f1abe7eacf98a578abb51be GIT binary patch literal 8196 zcmeHL&2Jk;6n`&u={kjU+oX_Es1|aeY7RkZlvCBMTM7}XV(KVONQ&9DC-x|t8EbbF zH;oKFB5wQvT=?d1;DUre9QXs^fO_Ww*PgR-jo;34&ejl@*-|pMpw*Y{p z?fUBglK|k+Q0Ske=@Fv*Y8;XgYZ)a(%7=wS*5X9Q^xHoa?F^0q$ADwNG2j?*4Ez@u zpl7xc?=jDP<8`xRz%g(n8Bq6!fQG`*V%MO)bAru}4PRp`dL%Fwo(Ep+Pr01{?#28Bo1@0R%8; zLpIdE-z48_`&xA3amb(v5v0I|B7aelG;n`^I5KW$E&EO2Vcbf1me0)mh9k!c$DcXj z6-P<;|YHBxTaqqj;IKcGaJ_E=3-3!P0@$ z^*dbDWxFJ|MLk=unDy@Pdfu%1XUi$uq119D*fP&}%oCpP7D>Ef)t}tko12@P4rb?P zJJZ45{QS&xaCvsV)A7Ieyz>|5uH9N~bw2*=^Dn;q>g#WQ_)%{f(B7M1-2Cp(Kan;- z9!B@cZ6fRvNZJ~wvCKYeC=;_UM;OrCr3{7WxixDZtR@i?k&Hd3{n>oSpP zDcNRgjg;3bt*FLDV|n<-;LueZ3dk+FPb zKwqu;r?OfqlcX#&o^vTy*E2e03pv|b5F3(?sMuU=DOa}4(v0v>&dO?(rjcl{((c_P zidnKKN;1#omWouX)ugcJWrdTj_A+(#FGJ*1_;ycG*BVLRXr*!*W<;cfD%&5qc@ z>c_dV0#IeuC&U%ilP;=|=%?=SX%|)h3V1|GF{nXvsHA?SKRx(V)4Mp5(=oH_N!9dVN0>Vbq7b)%272STwv$RtTIxm-ci4{IMsd7RoHXg3AA^VD z0eBnu{m*Q=yUzL+p)zaDp4r)%^YK3)o0*td*10-vnFTZ3poxC<1-FJv@73;HpA;is zLNnHzZQ5g63wFIbv(rFAAR&+tNC+eZ5(57P1o&p_+W0)ubWaE*1QG%t5Kw&xG|_fJ zmyvqu;O1KZ=skx0qR&3S*Mx$$3%ZQdm%=md99 z)MU2o=R#}All-cjV{Exb>I^zWQoyDm&qI5IW@{v7uT~`fP?Px3Pg0J+G@>ZX1N{I` zVJ9g)dufMwFgU`JENOwabMB>v4H##Ctw?|JL3#^>H*FgZdvLmj%3A?R(YFH-m2b}& z+Xv|d$d2j1#Qq^sQ`OD4Zfw*t}x)8GYFx1Y=w%X5R2DuL)V%HTJ09_jQv-Z51_w($hlh}JOWS3s7rL1@eA~nPr*@@wt5%r9X&IiV}H9 zt4gbe$UEn)G*MKQJS6*8*XXSV?_`SDs=dEf>{ZnK1dktSJ4B5nt76E47f7ABgaKn$ z=s))H4q6D4n8kWGMXPH@RXtQWqR+}mE^Rr4-wA$y;P#yQ`~lG?l;q*YEcd9dTCmq( zK@YA&c*nZ;2+wcPbgucLK=>VRC+I0p?zo<@*2%I7W49414l&Ml?SR$$#M}CuX+T{0 zkZn}*p$YLmnkrAfhW7#OHV-8!M`P()j>hcV!@}EoqI`buC@wtWpMk8jzQ7yuk5sxPXTs&&`I!+MNj{;HZ>xDM6t&jFgMT0Mtb4wvuf_ZgFZ z(KF34K~&c?+^%V;uVakr4!mLxu8Zd*W{jBKK|6UwIjNd6fR0@UeJk}{-SJFp)`!Ym z)2FwhkE%+`<1tp`DV&w@hwxU^N``zc|HjHaV1_bKc_)l7{JRwFH?$NotNv96#QEYg z_ZVpMt)la$5}m&^XsW*;RF~vaeGiqjQ<~yRaaR3K)%~uxjDJO(F+bMlr*2jklpJJx*c`a;GwhjK>MAhOY@eI`Vww_91r#5cph{df1jqgo1(htw+p(Alo76f d{htA8|F4t1wErIwe4IA>{;zt*@;})B{{!bUaHIeL literal 0 HcmV?d00001 diff --git a/sources/talk/.DS_Store b/sources/talk/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d89afa222e41d7653a871106f9cd398899f330e6 GIT binary patch literal 8196 zcmeHM&2AGh5FSGhMF@!#>d^-zDo_w9MNlN9q)pOBP_=4Hdu8*}61rroZ9l4z&pZG% z*e~)z-bfkU%Ew#WVIm+95C{ka1Ofs9fqwx3ytCPs=e+mbY8V3o0fB`?failnC#`ro zc2tiJ40;6sUBa|BJmVgqd#tAwPsfhxR>*X>2jjOIf5k9vJJv1PK`Wk)9d+Bqxb0%R zX5()tMzv#~Rdz8IN5dEp2ngIpfOq$IvWA;`S=MLn?-z0@14*STk$gopM$(rKXiXBi z!gF@DBqhv!mJ!x3z}c2_jAzmV-x=lx_;wCSm-^g;yskXQ*lET|yA>xbSi!<=ps)Vc zh9{9{8Ot_c-5T~EK~EPnf<{VAR9dXMyU^Z)b_=aTJav?F03IvvVR^k!>yMn)QBLbC z>^||{HPwe5NI%8L`A7ME@a%&U6)Oi=@8dJ^zlynC%*9yk0jqsjpDO1eEKD)yusKpo z_c24S5^&JdiN_zNe0$Jsg;KX6m8jD`ddaRZ?4Nd!#rW!=_*0P1N39@TG=E{Sa;E(&%~D* zy#;-&hn_~C2)8vREgfsh)k8-1i+mSm-+Y^10&mt_S6YzI8hqk)_7wLRt0$OG75yDN z(W0it_&{-q;RiE>RS{7HCW&Kf?E6kuQw7SA>v6o1dTkh^?1o7e$|glNGHC{|?TSgsJ8%LiCdq|-j44^UeBC% z*S|J^~OH$gG8Q{pnBWD+6I*v1^bl zBxq6zO)AWO`#ZkenE!|@;E^22j`{&?E z)Jk}kkB>jbfdhquuN*3t4wDQX_D&4mt~O=6nuqyXRu0oe-QqEetX>K8=C(d7Wzy5b zXpXaX%^SWfMILg&(p{-bx44L9yDZm4oGn#Nf46v?H*4OhO3KzLwGs+8$1@)Bgy$P2 zl47amjcjgCPEL;b6H^nNF@JMvYJAMUI5E}fcs~}4XWp5-bYr2_`QpLX-+cSs_dopf zvz{`beS^V}Y4_@1Nb3>8>+6;f{A-(#KRs`Uk|Rft4IcMSoE#cH_3CRQr(ZvF_KkDr z{F*luh4qz2swQ(;CNeE2YizNR^0?Xx>s&PEb9Ohc@_Vf2o$L#}$>L9TOtTv;iW%N9 z=Azv(;&_ENMi=Hk{MB!c`jE~r0T6Mg}p2DoOCsp(f9u`G>!(>w-xoAk@Q^N zjyh^w=c)@9$dP)Z8m-Sf7f*z+%^+GAX;> zg$dpMuLyDC7ZcFgR2|^|0@Ik0&m$QE&u=k literal 0 HcmV?d00001 diff --git a/translated/talk/.DS_Store b/translated/talk/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c9623e15cdd81793d6a88347c3898e0c73599861 GIT binary patch literal 8196 zcmeI1&u$b)5XNf)2S*VSr-)k**j;RHr{^II@-GJj$qU zMO3#USuWBIrEu%$1s`rjE6V)N3}gl_GoZWsmaTGgU$J`&_xGWFAO~OC#AbF(ZIjwt zduJURd(Ttr^VhQz`d-kdJO8mA*_75`JG2~oZ5N$BI>GkRT!-GSuh)z|Wk!wso!NWa zqsd`+H0gp$iTsFi`-?x+%-W4ek8H$WuqRj_gZ7Mi-`-P%yX)3E$dT8kj&;CTjR-&0zbIf-W&QCR*e^hX;!R#GoI$$O-+IIU|z3c_s1y>LG z4BHbM@b1v_*4Hwi{fXNhfUiSu-|>n2a(!(^HnLYduc6v*L?w?6v9pe!-X)F>ur-Al zwePcP*%Hh0_iwZ*7G?>zSkb61E#ha!*BCWIc5A1e`A z_w;>ciT=JS?l<90cuSl0JP6oO?kvXhK5LE9*}$7A{;H^!YrF~74otl9wJQQoK_DC* zxG9l5q9z}U)h%-Kwd0tkwv#44JjSY)|5~uTY7dxe6OYM9iuYY&Bfz+9T;%JrEwhIx z(}MlY$VrN`n0>)E9Os2E%l3V|HX^GUIPqAjBD-5d7JsEI^ZdvWb+A83_7z<-qIwD| zkpt~2VoOmX|HzBgRWzVbycA27c=@x2VvQNfh_241j4C~@d>Ue{%(#EBD-SAXyWXyy z>LT7A!`3lKzqYdyF$=hUImfl)@msPJcW$wC=+P7RN9|G(!36$$P5k@H&nheb(Vi1k z>+F9!$Of(o_NxU%(y2EHW*itFvY_692|u2_}s+JW+lqDSNAQMw8*zm6mQI*vU54@2sKq0(t3 kIggSSp8x!Z0NrxdIPJ<4F8(_|pa10@FrWV(m*4v9U-^XE-2eap literal 0 HcmV?d00001 diff --git a/translated/talk/20141108 When hackers grow old.md b/translated/talk/20141108 When hackers grow old.md new file mode 100644 index 0000000000..1f34116808 --- /dev/null +++ b/translated/talk/20141108 When hackers grow old.md @@ -0,0 +1,65 @@ +黑客年暮 +================================================================================ +近来我一直在与某资深开源组织的各成员进行争斗,尽管密切关注我的人们会在读完本文后猜到是哪个组织,但我不会在这里说出这个组织的名字。 + +怎么让某些人进入 21 世纪就这么难呢?真是的... + +我快56 岁了,也就是大部分年轻人会以为的我将时不时朝他们发出诸如“滚出我的草坪”之类歇斯底里咆哮的年龄。但事实并非如此 —— 我发现,尤其是在技术背景之下,我变得与我的年龄非常不相称。 + +在我这个年龄的大部分人确实变成了爱发牢骚、墨守成规的老顽固。并且,尴尬的是,偶尔我会成为那个打断谈话的人,然后提出在 1995 年(或者在某些特殊情况下,1985 年)时很适合的方法... 但十年后就不是个好方法了。 + +为什么是我?因为我的同龄人里大部分人在孩童时期都没有什么名气。任何想要改变自己的人,就必须成为他们中具有较高思想觉悟的佼佼者。即便如此,在与习惯做斗争的过程中,我也比实际上花费了更多的时间。 + +年轻人犯下无知的错误是可以被原谅的。他们还年轻。年轻意味着缺乏经验,缺乏经验通常会导致片面的判断。我很难原谅那些经历了足够多本该有经验的人,却被长期的固化思维蒙蔽,无法发觉近在咫尺的东西。 + +(补充一下:我真的不是老顽固。那些和我争论政治的,无论保守派还是非保守派都没有注意到这点,我觉得这颇有点嘲讽的意味。) + +那么,现在我们来讨论下 GNU 更新日志文件这件事。在 1985 年的时候,这是一个不错的主意,甚至可以说是必须的。当时的想法是用单独的更新日志文件来记录相关文件的变更情况。用这种方式来对那些存在版本缺失或者非常原始的版本进行版本控制确实不错。当时我也在场,所以我知道这些。 + +不过即使到了 1995 年,甚至 21 世纪早期,许多版本控制系统仍然没有太大改进。也就是说,这些版本控制系统并非对批量文件的变化进行分组再保存到一条记录上,而是对每个变化的文件分别进行记录并保存到不同的地方。CVS,当时被广泛使用的版本控制系统,仅仅是模拟日志变更 —— 并且在这方面表现得很糟糕,导致大多数人不再依赖这个功能。即便如此,更新日志文件的出现依然是必要的。 + +但随后,版本控制系统 Subversion 于 2003 年发布 beta 版,并于 2004 年发布 1.0 正式版,Subversion 真正实现了更新日志记录功能,得到了人们的广泛认可。它与一年后兴起的分散式版本控制系统(Distributed Version Control System,DVCS)共同引发了主流世界的激烈争论。因为如果你在项目上同时使用了分散式版本控制与更新日志文件记录的功能,它们将会因为争夺相同元数据的控制权而产生不可预料的冲突。 + +另一种方法是对提交的评论日志进行授权。如果你这样做了,不久后你就会开始思忖为什么自己仍然对所有的日志更新条目进行记录。提交的元数据与变化的代码具有更好的相容性,毕竟这就是它当初设计的目的。 + +(现在,试想有这样一个项目,同样本着把项目做得最好的想法,但两拨人却做出了完全不同的选择。因此你必须同时阅读更新日志和评论日志以了解到底发生了什么。最好在矛盾激化前把问题解决....) + +第三种办法是尝试同时使用两种方法 —— 以另一种格式再次提交评论数据,作为更新日志提交的一部分。这解决了所有你期待的有代表性的问题,并且没有任何缺陷遗留下来;只要其中有拷贝文件损坏,日志文件就会修改,因此这不再是同步时数据匹配的问题,而且导致在其后参与进来的人试图搞清人们是怎么想的时候将会变得非常困惑。 + +或者,如某个我就不说出具体名字的特定项目的高层开发只是通过电子邮件来完成这些,声明提交可以包含多个更新日志,以及提交的元数据与更新日志是无关的。这导致我们直到现在还得不断进行记录。 + +当我读到那条的时候我的眼光停在了那个地方。什么样的傻瓜才会没有意识到这是在自找麻烦 —— 事实上,针对更新日志文件采取的定制措施完全是不必要的,尤其是在分散式版本控制系统中 +有很好的浏览工具来阅读可靠的提交日志的时候。 + +唉,这是比较特殊的笨蛋:变老的并且思维僵化了的黑客。所有的合理化改革他都会极力反对。他所遵循的行事方法在十年前是有效的,但现在只能使得其反了。如果你试图解释不只是git的总摘要,还得正确掌握当前的各种工具才能完全弃用更新日志... 呵呵,准备好迎接无法忍受、无法想象的疯狂对话吧。 + +幸运的是这激怒了我。因为这点还有其他相关的胡言乱语使这个项目变成了很难完成的工作。而且,这类糟糕的事时常发生在年轻的开发者身上,这才是问题所在。相关 G+ 社群的数量已经达到了 4 位数,他们大部分都是孩子,他们也没有紧张起来。显然消息已经传到了外面;这个项目的开发者都是被莫名关注者的老牌黑客,同时还有很多对他们崇拜的人。 + +这件事给我的最大触动就是每当我要和这些老牌黑客较量时,我都会想:有一天我也会这样吗?或者更糟的是,我看到的只是如同镜子一般对我自己的真实写照,而我自己却浑然不觉吗?我的意思是,我的印象来自于他的网站,这个特殊的样本要比我年轻。通过十五年的仔细观察得出的结论。 + +我觉得思路很清晰。当我和那些比我聪明的人打交道时我不会受挫,我只会因为那些不能跟上我的人而 +沮丧,这些人也不能看见事实。但这种自信也许只是邓宁·克鲁格效应的消极影响,至少我明白这点。很少有什么事情会让我感到害怕;而这件事在让我害怕的事情名单上是名列前茅的。 + +另一件让人不安的事是当我逐渐变老的时候,这样的矛盾发生得越来越频繁。不知怎的,我希望我的黑客同行们能以更加优雅的姿态老去,即使身体老去也应该保持一颗年轻的心灵。有些人确实是这样;但可是绝大多数人都不是。真令人悲哀。 + +我不确定我的职业生涯会不会完美收场。假如我最后成功避免了思维僵化(注意我说的是假如),我想我一定知道其中的部分原因,但我不确定这种模式是否可以被复制 —— 为了达成目的也许得在你的头脑中发生一些复杂的化学反应。尽管如此,无论对错,请听听我给年轻黑客以及其他有志青年的建议。 + +你们 —— 对的,也包括你 —— 一定无法在你中年老年的时候保持不错的心灵,除非你能很好的控制这点。你必须不断地去磨练你的内心、在你还年轻的时候完成自己的种种心愿,你必须把这些行为养成一种习惯直到你老去。 + +有种说法是中年人锻炼身体的最佳时机是他进入中年的 30 年前。我以为同样的方法,坚持我以上所说的习惯能让你在 56 岁,甚至 65 岁的时候仍然保持灵活的头脑。挑战你的极限,使不断地挑战自己成为一种习惯。立刻离开安乐窝,由此当你以后真正需要它的时候你可以建立起自己的安乐窝。 + +你必须要清楚的了解这点;还有一个可选择的挑战是你选择一个可以实现的目标并且为了这个目标不断努力。这个月我要学习 Go 语言。不是指游戏,我早就玩儿过了(虽然玩儿的不是太好)。并不是因为工作需要,而是因为我觉得是时候来扩展下我自己了。 + +保持这个习惯。永远不要放弃。 + +-------------------------------------------------------------------------------- + +via: http://esr.ibiblio.org/?p=6485 + +作者:[Eric Raymond][a] +译者:[Stevearzh](https://github.com/Stevearzh) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://esr.ibiblio.org/?author=2 From 03e22baa0d96306b7183c857c778fb7bb731c68c Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Sat, 29 Nov 2014 15:09:11 +0800 Subject: [PATCH 015/158] translated by Stevearzh --- .DS_Store | Bin 6148 -> 0 bytes sources/.DS_Store | Bin 8196 -> 0 bytes sources/share/.DS_Store | Bin 10244 -> 0 bytes sources/talk/.DS_Store | Bin 8196 -> 0 bytes translated/.DS_Store | Bin 8196 -> 0 bytes translated/talk/.DS_Store | Bin 8196 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store delete mode 100644 sources/.DS_Store delete mode 100644 sources/share/.DS_Store delete mode 100644 sources/talk/.DS_Store delete mode 100644 translated/.DS_Store delete mode 100644 translated/talk/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 3b5ccdfd86da902652a4e3254157c83d22e39145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK-D(p-6h6~Nvq_<>s8H}`FBO8MrXja!ng|6ep(`z7CGIv$GqCQ4-A#jpK(2j) zUi<$Tg6NeGppW8J{APA4$z}zwL}X4l^PQPF=j_Zk*_j<8Vy#hso5&<011hjkMv)_; zU+9Xgsg?~OlR55Dm9}Yz?$YxWZ{467&-Bm@DSU> zedz7E6j($>dO-WMM;&@dHgz)IUo+k%8q$bdJc(0G1M(=7pB=7593uBFwdnvTc9d+y zw@gG4nK_+NkmoJOf3YlLfks7))@q|vBWtesk8IyFBU#;rT`-Gj%&>C0EI-@JYI{==uwa^l3WwM)6K@Djej z$k1|bM}Z#(XXp`8W&EWga{kpgWhG4C!$DLs1KBh&@1y zW<<=HU{m2NMY(mLkXHa;0nJiii;o2nV<~JZoTZ2!2unkOX(&@y43>tY z-BNx{g|igXaANB6!PJwPx}h-nbmX_BJF#Ypy3`D429_CEPphUl|2x0G|1SsWnr1*V z@Lw^&3T?aH!j#n6x-vO&)>_bKP$9x^mZA(np^jr|h@*H5Dg}L(Fn~>kvlP(+(H{bm M23=?d{wf1M0j~`c9RL6T diff --git a/sources/.DS_Store b/sources/.DS_Store deleted file mode 100644 index 245c23902a8336ca2f1abe7eacf98a578abb51be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHL&2Jk;6n`&u={kjU+oX_Es1|aeY7RkZlvCBMTM7}XV(KVONQ&9DC-x|t8EbbF zH;oKFB5wQvT=?d1;DUre9QXs^fO_Ww*PgR-jo;34&ejl@*-|pMpw*Y{p z?fUBglK|k+Q0Ske=@Fv*Y8;XgYZ)a(%7=wS*5X9Q^xHoa?F^0q$ADwNG2j?*4Ez@u zpl7xc?=jDP<8`xRz%g(n8Bq6!fQG`*V%MO)bAru}4PRp`dL%Fwo(Ep+Pr01{?#28Bo1@0R%8; zLpIdE-z48_`&xA3amb(v5v0I|B7aelG;n`^I5KW$E&EO2Vcbf1me0)mh9k!c$DcXj z6-P<;|YHBxTaqqj;IKcGaJ_E=3-3!P0@$ z^*dbDWxFJ|MLk=unDy@Pdfu%1XUi$uq119D*fP&}%oCpP7D>Ef)t}tko12@P4rb?P zJJZ45{QS&xaCvsV)A7Ieyz>|5uH9N~bw2*=^Dn;q>g#WQ_)%{f(B7M1-2Cp(Kan;- z9!B@cZ6fRvNZJ~wvCKYeC=;_UM;OrCr3{7WxixDZtR@i?k&Hd3{n>oSpP zDcNRgjg;3bt*FLDV|n<-;LueZ3dk+FPb zKwqu;r?OfqlcX#&o^vTy*E2e03pv|b5F3(?sMuU=DOa}4(v0v>&dO?(rjcl{((c_P zidnKKN;1#omWouX)ugcJWrdTj_A+(#FGJ*1_;ycG*BVLRXr*!*W<;cfD%&5qc@ z>c_dV0#IeuC&U%ilP;=|=%?=SX%|)h3V1|GF{nXvsHA?SKRx(V)4Mp5(=oH_N!9dVN0>Vbq7b)%272STwv$RtTIxm-ci4{IMsd7RoHXg3AA^VD z0eBnu{m*Q=yUzL+p)zaDp4r)%^YK3)o0*td*10-vnFTZ3poxC<1-FJv@73;HpA;is zLNnHzZQ5g63wFIbv(rFAAR&+tNC+eZ5(57P1o&p_+W0)ubWaE*1QG%t5Kw&xG|_fJ zmyvqu;O1KZ=skx0qR&3S*Mx$$3%ZQdm%=md99 z)MU2o=R#}All-cjV{Exb>I^zWQoyDm&qI5IW@{v7uT~`fP?Px3Pg0J+G@>ZX1N{I` zVJ9g)dufMwFgU`JENOwabMB>v4H##Ctw?|JL3#^>H*FgZdvLmj%3A?R(YFH-m2b}& z+Xv|d$d2j1#Qq^sQ`OD4Zfw*t}x)8GYFx1Y=w%X5R2DuL)V%HTJ09_jQv-Z51_w($hlh}JOWS3s7rL1@eA~nPr*@@wt5%r9X&IiV}H9 zt4gbe$UEn)G*MKQJS6*8*XXSV?_`SDs=dEf>{ZnK1dktSJ4B5nt76E47f7ABgaKn$ z=s))H4q6D4n8kWGMXPH@RXtQWqR+}mE^Rr4-wA$y;P#yQ`~lG?l;q*YEcd9dTCmq( zK@YA&c*nZ;2+wcPbgucLK=>VRC+I0p?zo<@*2%I7W49414l&Ml?SR$$#M}CuX+T{0 zkZn}*p$YLmnkrAfhW7#OHV-8!M`P()j>hcV!@}EoqI`buC@wtWpMk8jzQ7yuk5sxPXTs&&`I!+MNj{;HZ>xDM6t&jFgMT0Mtb4wvuf_ZgFZ z(KF34K~&c?+^%V;uVakr4!mLxu8Zd*W{jBKK|6UwIjNd6fR0@UeJk}{-SJFp)`!Ym z)2FwhkE%+`<1tp`DV&w@hwxU^N``zc|HjHaV1_bKc_)l7{JRwFH?$NotNv96#QEYg z_ZVpMt)la$5}m&^XsW*;RF~vaeGiqjQ<~yRaaR3K)%~uxjDJO(F+bMlr*2jklpJJx*c`a;GwhjK>MAhOY@eI`Vww_91r#5cph{df1jqgo1(htw+p(Alo76f d{htA8|F4t1wErIwe4IA>{;zt*@;})B{{!bUaHIeL diff --git a/sources/talk/.DS_Store b/sources/talk/.DS_Store deleted file mode 100644 index d89afa222e41d7653a871106f9cd398899f330e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHM&2AGh5FSGhMF@!#>d^-zDo_w9MNlN9q)pOBP_=4Hdu8*}61rroZ9l4z&pZG% z*e~)z-bfkU%Ew#WVIm+95C{ka1Ofs9fqwx3ytCPs=e+mbY8V3o0fB`?failnC#`ro zc2tiJ40;6sUBa|BJmVgqd#tAwPsfhxR>*X>2jjOIf5k9vJJv1PK`Wk)9d+Bqxb0%R zX5()tMzv#~Rdz8IN5dEp2ngIpfOq$IvWA;`S=MLn?-z0@14*STk$gopM$(rKXiXBi z!gF@DBqhv!mJ!x3z}c2_jAzmV-x=lx_;wCSm-^g;yskXQ*lET|yA>xbSi!<=ps)Vc zh9{9{8Ot_c-5T~EK~EPnf<{VAR9dXMyU^Z)b_=aTJav?F03IvvVR^k!>yMn)QBLbC z>^||{HPwe5NI%8L`A7ME@a%&U6)Oi=@8dJ^zlynC%*9yk0jqsjpDO1eEKD)yusKpo z_c24S5^&JdiN_zNe0$Jsg;KX6m8jD`ddaRZ?4Nd!#rW!=_*0P1N39@TG=E{Sa;E(&%~D* zy#;-&hn_~C2)8vREgfsh)k8-1i+mSm-+Y^10&mt_S6YzI8hqk)_7wLRt0$OG75yDN z(W0it_&{-q;RiE>RS{7HCW&Kf?E6kuQw7SA>v6o1dTkh^?1o7e$|glNGHC{|?TSgsJ8%LiCdq|-j44^UeBC% z*S|J^~OH$gG8Q{pnBWD+6I*v1^bl zBxq6zO)AWO`#ZkenE!|@;E^22j`{&?E z)Jk}kkB>jbfdhquuN*3t4wDQX_D&4mt~O=6nuqyXRu0oe-QqEetX>K8=C(d7Wzy5b zXpXaX%^SWfMILg&(p{-bx44L9yDZm4oGn#Nf46v?H*4OhO3KzLwGs+8$1@)Bgy$P2 zl47amjcjgCPEL;b6H^nNF@JMvYJAMUI5E}fcs~}4XWp5-bYr2_`QpLX-+cSs_dopf zvz{`beS^V}Y4_@1Nb3>8>+6;f{A-(#KRs`Uk|Rft4IcMSoE#cH_3CRQr(ZvF_KkDr z{F*luh4qz2swQ(;CNeE2YizNR^0?Xx>s&PEb9Ohc@_Vf2o$L#}$>L9TOtTv;iW%N9 z=Azv(;&_ENMi=Hk{MB!c`jE~r0T6Mg}p2DoOCsp(f9u`G>!(>w-xoAk@Q^N zjyh^w=c)@9$dP)Z8m-Sf7f*z+%^+GAX;> zg$dpMuLyDC7ZcFgR2|^|0@Ik0&m$QE&u=k diff --git a/translated/talk/.DS_Store b/translated/talk/.DS_Store deleted file mode 100644 index c9623e15cdd81793d6a88347c3898e0c73599861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeI1&u$b)5XNf)2S*VSr-)k**j;RHr{^II@-GJj$qU zMO3#USuWBIrEu%$1s`rjE6V)N3}gl_GoZWsmaTGgU$J`&_xGWFAO~OC#AbF(ZIjwt zduJURd(Ttr^VhQz`d-kdJO8mA*_75`JG2~oZ5N$BI>GkRT!-GSuh)z|Wk!wso!NWa zqsd`+H0gp$iTsFi`-?x+%-W4ek8H$WuqRj_gZ7Mi-`-P%yX)3E$dT8kj&;CTjR-&0zbIf-W&QCR*e^hX;!R#GoI$$O-+IIU|z3c_s1y>LG z4BHbM@b1v_*4Hwi{fXNhfUiSu-|>n2a(!(^HnLYduc6v*L?w?6v9pe!-X)F>ur-Al zwePcP*%Hh0_iwZ*7G?>zSkb61E#ha!*BCWIc5A1e`A z_w;>ciT=JS?l<90cuSl0JP6oO?kvXhK5LE9*}$7A{;H^!YrF~74otl9wJQQoK_DC* zxG9l5q9z}U)h%-Kwd0tkwv#44JjSY)|5~uTY7dxe6OYM9iuYY&Bfz+9T;%JrEwhIx z(}MlY$VrN`n0>)E9Os2E%l3V|HX^GUIPqAjBD-5d7JsEI^ZdvWb+A83_7z<-qIwD| zkpt~2VoOmX|HzBgRWzVbycA27c=@x2VvQNfh_241j4C~@d>Ue{%(#EBD-SAXyWXyy z>LT7A!`3lKzqYdyF$=hUImfl)@msPJcW$wC=+P7RN9|G(!36$$P5k@H&nheb(Vi1k z>+F9!$Of(o_NxU%(y2EHW*itFvY_692|u2_}s+JW+lqDSNAQMw8*zm6mQI*vU54@2sKq0(t3 kIggSSp8x!Z0NrxdIPJ<4F8(_|pa10@FrWV(m*4v9U-^XE-2eap From 885887800804be7948dca76ab52214eebbaf8d28 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 29 Nov 2014 03:18:11 -0500 Subject: [PATCH 016/158] [Translating] --- ...wd (Print Working Directory) Command Examples in Linux.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md b/sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md index 32c74cddaa..93e0f4a7ab 100644 --- a/sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md +++ b/sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md @@ -1,3 +1,6 @@ +Transalting-----geekpi + + 15 ‘pwd’ (Print Working Directory) Command Examples in Linux ================================================================================ For those working with Linux command Line, command ‘**pwd**‘ is very helpful, which tells where you are – in which directory, starting from the root (**/**). Specially for Linux newbies, who may get lost amidst of directories in command Line Interface while navigation, command ‘**pwd**‘ comes to rescue. @@ -262,4 +265,4 @@ via: http://www.tecmint.com/pwd-command-examples/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[a]:http://www.tecmint.com/author/avishek/ \ No newline at end of file +[a]:http://www.tecmint.com/author/avishek/ From cf408257c1fa3cf44239e7e032f477a680f64ed4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 29 Nov 2014 06:15:26 -0500 Subject: [PATCH 017/158] translated --- ...ng Directory) Command Examples in Linux.md | 118 +++++++++--------- 1 file changed, 58 insertions(+), 60 deletions(-) rename {sources => translated}/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md (51%) diff --git a/sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md b/translated/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md similarity index 51% rename from sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md rename to translated/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md index 93e0f4a7ab..2e829d5628 100644 --- a/sources/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md +++ b/translated/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md @@ -1,54 +1,51 @@ -Transalting-----geekpi - - -15 ‘pwd’ (Print Working Directory) Command Examples in Linux +15条Linux下的‘pwd’命令(打印工作目录)示例 ================================================================================ -For those working with Linux command Line, command ‘**pwd**‘ is very helpful, which tells where you are – in which directory, starting from the root (**/**). Specially for Linux newbies, who may get lost amidst of directories in command Line Interface while navigation, command ‘**pwd**‘ comes to rescue. +对于那些使用Linux命令行的人来说,‘**pwd**‘命令是非常有用的,它告诉你你现在在那个目录,从根目录(**/**)开始。特别对于或许会在目录的切换间容易糊涂的Linux新手而言,‘**pwd**‘ 可以拯救他们。 ![15 pwd Command Examples](http://www.tecmint.com/wp-content/uploads/2014/11/pwd-command.png) -15 pwd Command Examples +15 pwd 命令示例 -### What is pwd? ### +### 什么是pwd? ### -‘**pwd**‘ stands for ‘**Print Working Directory**‘. As the name states, command ‘**pwd**‘ prints the current working directory or simply the directory user is, at present. It prints the current directory name with the complete path starting from root (**/**). This command is built in shell command and is available on most of the shell – bash, Bourne shell, ksh,zsh, etc. +‘**pwd**‘ 代表的是‘**Print Working Directory**’(打印当前目录)。如它的名字那样,‘**pwd**’会打印出当前工作目录或仅是目录用户。它会打印出以root (**/**)为起始的完整目录名。这条命令是一条shell内建命令,并且在大多数shell中都可以使用,如bash、Bourne shell,ksh、zsh等等。 -#### Basic syntax of pwd: #### +#### pwd的基本语法: #### # pwd [OPTION] -#### Options used with pwd #### +#### pwd的选项 #### - - + + - + - + - + - +
 Options Description 选项 描述
 -L (logical) Use PWD from environment, even if it contains symbolic links 使用环境中的路径,即使包含了符号链接
 -P (physical) Avoid all symbolic links 避免所有的符号链接
 –help  Display this help and exit 显示帮助并退出
 –version Output version information and exit 输出版本信息并退出
-If both ‘**-L**‘ and ‘**-P**‘ options are used, option ‘**L**‘ is taken into priority. If no option is specified at the prompt, pwd will avoid all symlinks, i.e., take option ‘**-P**‘ into account. +如果同时使用了‘**-L**‘和‘**-P**‘,‘**-L**‘会有更高的优先级。如果没有指定参数,pwd会避开所有的软链接,也就是说会使用‘**-P**‘参数。 -Exit status of command pwd: +pwd的退出状态: @@ -56,18 +53,18 @@ Exit status of command pwd: - + - +
0Success成功
Non-zeroFailure失败
-This article aims at providing you a deep insight of Linux command ‘**pwd**‘ with practical examples. +本篇的目的是采用例子让你对‘**pwd**‘有更深入的领悟。 -**1.** Print your current working directory. +**1.** 打印放钱工作目录. avi@tecmint:~$ /bin/pwd @@ -75,20 +72,20 @@ This article aims at providing you a deep insight of Linux command ‘**pwd**‘ ![Print Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/pwd.gif) -Print Working Directory +打印工作目录 -**2.** Create a symbolic link of a folder (say **/var/www/html** into your home directory as **htm**). Move to the newly created directory and print working directory with symbolic links and without symbolic links. +**2.** 为文件夹创建一个符号链接(比如说在home目录下创建一个**htm**链接指向**/var/www/html**)。进入新创建的目录并打印出含有以及不含符号链接的目录。 -Create a symbolic link of folder /var/www/html as htm in your home directory and move to it. +在home目录下创建一个htm链接指向/var/www/html,并进入。 avi@tecmint:~$ ln -s /var/www/html/ htm avi@tecmint:~$ cd htm ![Create Symbolic Link](http://www.tecmint.com/wp-content/uploads/2014/11/Create-Symbolic-Link.gif) -Create Symbolic Link +创建符号链接 -**3.** Print working directory from environment even if it contains symlinks. +**3.** 从当前环境中答应目录即使它含有符号链接。 avi@tecmint:~$ /bin/pwd -L @@ -96,9 +93,9 @@ Create Symbolic Link ![Print Current Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Print-Working-Directory.gif) -Print Current Working Directory +打印工作目录 -**4.** Print actual physical current working directory by resolving all symbolic links. +**4.** 解析符号链接并打印出物理目录。 avi@tecmint:~$ /bin/pwd -P @@ -106,9 +103,9 @@ Print Current Working Directory ![Print Physical Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Print-Physical-Working-Directory.gif) -Print Physical Working Directory +打印物理工作目录 -**5.** Check if the output of command “**pwd**” and “**pwd -P**” are same or not i.e., if no options are given at run-time does “**pwd**” takes option **-P** into account or not, automatically. +**5.** 查看一下“**pwd**”和“**pwd -P**”的输出是否一致,也就是说,如果没有跟上选项,“**pwd**”时候会自动采用**-P**选项。 avi@tecmint:~$ /bin/pwd @@ -116,11 +113,11 @@ Print Physical Working Directory ![Check pwd Output](http://www.tecmint.com/wp-content/uploads/2014/11/Check-pwd-Output.gif) -Check pwd Output +检查pwd输出 -**Result:** It’s clear from the above output of example 4 and 5 (both result are same) thus, when no options are specified with command “**pwd**”, it automatically takes option “**-P**” into account. +**结论:** 上面例子4和5的输出很明显(结果相同),当你“**pwd**”后面不带参数时,pwd会使用“**-P**”选项。 -**6.** Print version of your ‘pwd’ command. +**6.** 打印pwd命令的版本。 avi@tecmint:~$ /bin/pwd --version @@ -134,15 +131,15 @@ Check pwd Output ![Check pwd Version](http://www.tecmint.com/wp-content/uploads/2014/11/Check-pwd-Version.gif) -Check pwd Version +检查pwd命令版本 -**Note:** A ‘pwd’ command is often used without options and never used with arguments. +**注意:** ‘pwd’ 通常不带选项运行,且没有任何参数 -**Important:** You might have noticed that we are executing the above command as “**/bin/pwd**” and not “**pwd**”. +**重要:** 你可能注意到我们刚才运行的都是 “**/bin/pwd**” 而不是 “**pwd**”。 -So what’s the difference? Well “**pwd**” alone means shell built-in pwd. Your shell may have different version of pwd. Please refer manual. When we are using **/bin/pwd**, we are calling the binary version of that command. Both the shell and the binary version of command Prints Current Working Directory, though the binary version have more options. +这有什么区别呢?直接使用“**pwd**”意味着使用shell内置的pwd。你的shell可能有不同版本的pwd。具体请参考手册。当你使用的是**/bin/pwd**时,我们调用的是二进制版本的命令。虽然二进制的版本有更多的选项,但是它们两者都能打印当前的目录。 -**7.** Print all the locations containing executable named pwd. +**7.** 打印所有含有可执行pwd的路径 avi@tecmint:~$ type -a pwd @@ -151,9 +148,9 @@ So what’s the difference? Well “**pwd**” alone means shell built-in pwd. Y ![Print Executable Locations](http://www.tecmint.com/wp-content/uploads/2014/11/Print-Executable-Locations.gif) -Print Executable Locations +打印可执行文件路径 -**8.** Store the value of “**pwd**” command in variable (say **a**), and print its value from the variable (important for shell scripting perspective). +**8.** 存储“**pwd**”命令的值到变量中(比如说:**a** ),并从中打印i变量的值(对于观察shell脚本很重要)。 avi@tecmint:~$ a=$(pwd) avi@tecmint:~$ echo "Current working directory is : $a" @@ -162,11 +159,11 @@ Print Executable Locations ![Store Pwd Value in Variable](http://www.tecmint.com/wp-content/uploads/2014/11/Store-Pwd-Value-in-Variable.gif) -Store Pwd Value in Variable +存储pwd的值到变量中。 -Alternatively, we can use **printf**, in the above example. +下面的例子中也可以用**printf**来替代。 -**9.** Change current working directory to anything (say **/home**) and display it in command line prompt. Execute a command (say ‘**ls**‘) to verify is everything is **OK**. +**9.** 将工作路径切换到其他地方(比如说 **/home**),并在命令行中显示。通过执行命令(比如说 ‘**ls**‘)来验证一切**OK**。 avi@tecmint:~$ cd /home avi@tecmint:~$ PS1='$pwd> ' [Notice single quotes in the example] @@ -174,14 +171,14 @@ Alternatively, we can use **printf**, in the above example. ![Change Current Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Change-Current-Working-Directory.gif) -Change Current Working Directory +改变当前工作路径 -**10.** Set multi-line command line prompt (say something like below). +**10.** 设置多行显示 (就像下面这样), /home 123#Hello#! -And then execute a command (say **ls**) to check is everything is **OK**. +接着执行命令(比如说 **ls**)来检验一切**OK**。 avi@tecmint:~$ PS1=' > $PWD @@ -193,9 +190,9 @@ And then execute a command (say **ls**) to check is everything is **OK**. ![Set Multi Commandline Prompt](http://www.tecmint.com/wp-content/uploads/2014/11/Set-Multi-Commandline-Prompt.gif) -Set Multi Commandline Prompt +设置多行显示 -**11.** Check the current working directory and previous working directory in one GO! +**11.** 一下子检查当前工作路径以及先前的工作路径。 avi@tecmint:~$ echo “$PWD $OLDPWD” @@ -204,28 +201,29 @@ Set Multi Commandline Prompt ![Check Present Previous Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Check-Present-Previous-Working-Directory.gif) Check Present Previous Working Directory +检查当前工作路径 -**12.** What is the absolute path (starting from **/**) of the pwd binary file. +**12.** pwd文件的绝对路径(以**/**开始)。 /bin/pwd -**13.** What is the absolute path (starting from **/**) of the pwd source file. +**13.** pwd源文件文件的绝对路径(以**/**开始)。 /usr/include/pwd.h -**14.** Print the absolute path (starting from **/**) of the pwd manual pages file. +**13.** 打印pwd手册的绝对路径(以**/**开始)。 /usr/share/man/man1/pwd.1.gz -**15.** Write a shell script analyses current directory (say **tecmint**) in your home directory. If you are under directory **tecmint** it output “**Well! You are in tecmint directory**” and then print “**Good Bye**” else create a directory **tecmint** under your home directory and ask you to cd to it. +**15.** 写一个shell脚本分析home目录下的一个目录(比如**tecmint**)。如果当前目录是**tecmint**就输出“**Well! You are in tecmint directory**”接着输出“**Good Bye**”,不然就在**tecmint**下面创建一个目录并提示你cd进入它。 -Let’s first create a ‘tecmint’ directory, under it create a following shell script file with name ‘pwd.sh’. +让我们首先创建一个‘tecmint’目录,在下面创建一个名为‘pwd.sh’的脚本文件。 avi@tecmint:~$ mkdir tecmint avi@tecmint:~$ cd tecmint avi@tecmint:~$ nano pwd.sh -Next, add the following script to the pwd.sh file. +接下来在pwd.sh中加入下面的脚本。 #!/bin/bash @@ -243,7 +241,7 @@ Next, add the following script to the pwd.sh file. } fi -Give execute permission and run it. +给予他执行权限并运行。 avi@tecmint:~$ chmod 755 pwd.sh avi@tecmint:~$ ./pwd.sh @@ -251,18 +249,18 @@ Give execute permission and run it. Well you are in tecmint directory Good Bye -#### Conclusion #### +#### 总结 #### -**pwd** is one of the simplest yet most popular and most widely used command. A good command over pwd is basic to use Linux terminal. That’s all for now. I’ll be here again with another interesting article soon, till then stay tuned and connected to Tecmint. +**pwd**是一个最简单且会广泛用到的命令。掌握好pwd是使用Linux终端的基础。就是这些了。我很快会再带来另外有趣的注意,请不要走开继续关注Tecmint。 -------------------------------------------------------------------------------- via: http://www.tecmint.com/pwd-command-examples/ 作者:[Avishek Kumar][a] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[a]:http://www.tecmint.com/author/avishek/ +[a]:http://www.tecmint.com/author/avishek/ \ No newline at end of file From 37715e5eca070baf14453a20446454281f0987f6 Mon Sep 17 00:00:00 2001 From: a598799539 Date: Sat, 29 Nov 2014 21:00:10 +0800 Subject: [PATCH 018/158] translated Some Sentences about Java --- .../20141127 Some Sentences about Java.md | 164 -------------- .../20141127 Some Sentences about Java.md | 202 ++++++++++++++++++ 2 files changed, 202 insertions(+), 164 deletions(-) delete mode 100644 sources/tech/20141127 Some Sentences about Java.md create mode 100644 translated/tech/20141127 Some Sentences about Java.md diff --git a/sources/tech/20141127 Some Sentences about Java.md b/sources/tech/20141127 Some Sentences about Java.md deleted file mode 100644 index 7b239b2216..0000000000 --- a/sources/tech/20141127 Some Sentences about Java.md +++ /dev/null @@ -1,164 +0,0 @@ -[a598799539 translating...] -Some Sentences about Java -================================================================================ -There is nothing new in this article. I just collected some trivial statements which may not be trivial for some of the junior programmers programmers. Boring old stuff. - -If you happen all of these things you know more about Java than the average house wife. I do not know if there is point to know all of these. You can be a fairly good Java programmer if you do not know some of these features. However a lot of new information in this article probably indicates you have room to develop. - -### There are 4 different protection types ### - -in Java (not three). These are `private`, package private, `protected` and `public`. If you do not specify any protection modifier when you define an element in a class it will be package private (and not public and not protected). - -![There are four levels of protection in Java.](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/four-levels-of-protection.png) - -There are four levels of protection in Java. - -On the other hand if you do not specify protection modifier in front of a method declaration in an interface: it will be public. You may specify it to be explicitly public but it does not have effect on Java and SONAR will not like you doing so. - -![Protection is Transitive](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/protection-is-transitive.png) - -Protection is Transitive - -> My opinion about Java allowing you to optionally write `public` in front of a method in an interface is that this is a technology mistake. - -Similarly you can write `final` in front of a field in an interface, or even `static`. It may imply that they could be non-static or non-final: not true. Fields of an interface are final and static. Always. - -### Protected and package private are not the same ### - -Package private (or default) protection will let other classes of the same package access to the method or field. Protected methods and fields can be used from classes in the same package (so far the same as package private) and in addition to that it can be used from other classes that extend the class containing the protected field or method. - -### Protected is transitive ### - -If there are three packages `a`, `b` and `c`, each containing a class named `A`, `B` and `C` so that `B` extends `A` and `C` extends `B` then the class `C` can access the protected fields and methods of `A`. - - package a; - - public class A { - protected void a() { - - } - } - package b; - - import a.A; - - public class B extends A { - protected void b() { - a(); - } - } - package c; - - import b.B; - - public class C extends B { - protected void c() { - a(); - } - } - -### Interface can not define protected methods ### - -Many thinks that you can also define `protected` methods in an interface. When programming the compiler makes it obvious fast and brutally: you can not. Btw: this is why I think that allowing the `public` keyword in an interface is a technology mistake: it makes people think that it could also be something else as well. - -![Private is the new public](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/private-is-the-new-public.png) - -Private is the new public - -If you want to declare a `protected` method in an interface, you probably did not understand encapsulation. - -### Private is not that private ### - -Private variables and methods are visible inside the compilation unit. If that sounds too cryptic: in the same Java file (almost). This is a bit more than “in the class where they are defined”. They can also be seen from classes and interfaces that are in the same compilation unit. Inner and nested classes can see private fields and methods of the class enclosing them. However enclosing classes can also see the private methods and fields of the classes they enclose down to any depth. - - package a; - - class Private { - private class PrivateInPrivate { - private Object object; - } - - Object m() { - return new PrivateInPrivate().object; - } - } - -This latter is not widely known. As a matter of fact it is rarely useful. - -### Private is class level not object ### - -If you can access a variable or method you can access it no matter which object it belongs to. If `this.a` is accessible then `another.a` is also accessible assumed that `another` is an instance of the same class. Objects that are instances of the same class can fool around with each others variables or methods. Rarely makes sense to have such a code though. A real life exception is `equals()` (as generated by Eclipse, lines 15 and 18): - - package a; - - public class PrivateIsClass { - private Object object; - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - PrivateIsClass other = (PrivateIsClass) obj; - if (object == null) { - if (other.object != null) - return false; - } else if (!object.equals(other.object)) - return false; - return true; - } - } - -### Static classes may have many instances ### - -![Protection is not object level. It is class level.](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/protection-is-class-feature.png) - -Protection is not object level. It is class level. - -Classes that are not supposed to have any instances are usually called utility classes. They contain only static fields and static methods and the only constructor is private, not invoked from any of the static methods of the class. In Java 8 you can have such a beasts implemented in interfaces, since Java 8 interfaces can have static methods in it. I am not convinced that we should use that feature instead of utility classes. I am not absolutely convinced that we should use utility classes at all. - -Static classes are always inside in another class (or interface). They are nested classes. They are static and just as static methods can not access instance methods and fields of the class similarly a static nested class can not access the instance methods and fields of the embedding class. That is because nested classes do not have a reference (pointer if you like) to an instance of the embedding class. Inner classes, as opposed to nested classes are non static and can not be created without an instance of the embedding class. Each instance of an inner class has a reference to exactly one instance of the embedding class and thus an inner class can access instance methods and fields of the embedding class. - -Because of this you can not create an inner class without an instance of the surrounding class. You need not specify it though if this is the current object, a.k.a `this`. In that case you can write `new`, which is, in this case, just a short form for `this.new`. In a static environment, for example from a static method you have to specify which instance of the enclosing class should the inner class created with. See the line 10: - - package a; - - class Nesting { - static class Nested {} - class Inner {} - void method(){ - Inner inner = new Inner(); - } - static void staticMethod(){ - Inner inner = new Nesting().new Inner(); - } - } - -### Anonymous classes can access only final variables ### - -![Variable has to be effective final](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/effective-final.png) - -Variable has to be effective final - -When an anonymous class is defined inside a method, it can access local variables if they are final. But saying that is vague. They have to be declared final and they also have to be effective final. This is what is released a bit in Java 8. You need not declare such variables as final but they still have to be effective final. - -![Java 8 does not require final, only effective final](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/java_ee_-_javabeantester_src_main_java_com_javax0_jbt_blog_java_-_eclipse_-__users_verhasp_github_javax_blog.png) - -Java 8 does not require final, only effective final - -Why do you need to declare something final, when it has to checked to be like that anyway. Like method arguments. They also have to be final. You say that this is not a requirement of Java? Well, you are right. It is a requirement of programming in good style. - --------------------------------------------------------------------------------- - -via: http://www.javacodegeeks.com/2014/11/some-sentences-about-java.html - -作者:[Peter Verhas][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.javacodegeeks.com/author/peter-verhas/ diff --git a/translated/tech/20141127 Some Sentences about Java.md b/translated/tech/20141127 Some Sentences about Java.md new file mode 100644 index 0000000000..3fe1a9f682 --- /dev/null +++ b/translated/tech/20141127 Some Sentences about Java.md @@ -0,0 +1,202 @@ +一些关于Java的句子 +================================================================================ +本文并没有什么新鲜的。我只是收集了一些不太重要的语句, +但这些语句可能对初级程序员来说很重要。也就是些无聊的旧东西。 + +如果以下的这些你都知道的话,那么你比Java的了解已经超过了对一个平常的家庭主妇的了解。我不知 +道清楚所有的这些是否是有意义的。即使不知道其中的一些特性,你照样也可以成 +为一个相当不错的Java程序员。然而,本文中许多的新信息可能表明你还有很大 +的发展空间。 + +### Java中有四种不同的访问类型(而不是三种) ### + +这四种类型包括:`private`, package private (包访问权限,无修饰符,又叫 +default, 译者注)。如果你在类中定义一个元素时并不加任何访问类型修饰符, +它将被默认设置为包访问权限(package private),而不是`public`或者`protected`。 + + +![Java中有四种级别的访问类型](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/four-levels-of-protection.png) + +Java有四个级别的访问类型。 + +从另一方面来说,如果在接口中,你不指定方法的访问修饰符,那么它将是 +`public`类型的。你也可以显式地指定它为`public`类型, 但这并不符合SONAR +(一个开源代码质量管理平台,译者注)的代码质量管理思想。 + +![访问类型是传递的](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/protection-is-transitive.png) + +访问类型是传递的 + +> 我的在Java中允许选择性的在接口的方法中写`public`的观点是一个技术错误。 + +同样你也可在接口的字段前写`final`,甚至是`static`。这说明这些字段可以 +是非静态或非final吗?不是的,接口中的字段中总是final和static的。 + +### Protected和package private是不一样的 ### + +Package private(或者default)访问类型可以使得相同包(package)下其他类 +能够访问这些字段或方法。保护类型(`protected`)的方法和字段可以被相同包 +下的类使用(这和package private是一样的),同时它也可以被其他类使用,只 +要那个类继承了这个包含这些`protected`方法或字段的类。 + +### Protected是可传递的 ### + +如果有三个包a、b、c,每个包都分别包含A、B、C类,而且B继承A,C继承B,那 +么C可以访问A中的protected字段和方法。 + + package a; + + public class A { + protected void a() { + + } + } + package b; + + import a.A; + + public class B extends A { + protected void b() { + a(); + } + } + package c; + + import b.B; + + public class C extends B { + protected void c() { + a(); + } + } + +### 接口不能定义protected方法 ### + +很多人认为可以在接口中定义`protected`方法。如果你这么做的话,编译器很 +快就会毫不留情地给你报错。顺便说下,这也就是我为什么认为允许`public`关键字在接口 +中是一个技术错误,它会让人觉得还可以写其他访问类型似的。 + +![Private is the new public](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/private-is-the-new-public.png) + +private是一种新的public + +如果你还想在一个接口的方法中声明protected方法,你可能还不理解封装的含义。 +### 此private非彼private ### + +私有变量和方法在编译单元内是可见的。如果这听起来太神秘的话,换种说法:几 +乎就是在同一个Java文件中。这比“在它们被定义的类中”听起来好理解些。它们在 +同一编译单元的类和接口中也是可见的。嵌套类可以看到类中封装的私有字段和 +方法。然而,当前封闭类也可以看到该类下任何深度下类中的私有方法和字段。 + + package a; + + class Private { + private class PrivateInPrivate { + private Object object; + } + + Object m() { + return new PrivateInPrivate().object; + } + } + +后者并不广为人知,事实上也很少有用到。 + +### Private是类的访问级别而不是对象 ### + +如果你可以访问一个变量或方法,那么不管它属于哪个对象你都可以访问它。如 +果`this.a`可以访问到,那`another.a`也可以访问到,只要它们是同一个类的 +实例。同一个类的实例对象可以随意调用其他实例的变量或方法。不过这样的代 +码一般都没有意义。现实生活中异常是`equals()`(由Eclipse生成, 15 - 18行): + + package a; + + public class PrivateIsClass { + private Object object; + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PrivateIsClass other = (PrivateIsClass) obj; + if (object == null) { + if (other.object != null) + return false; + } else if (!object.equals(other.object)) + return false; + return true; + } + } + +###静态(static)类可能有很多实例 ### + +![Protection is not object level. It is class level.](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/protection-is-class-feature.png) + +访问类型不是对象级别的而是类级别的。 + +那些不支持有任何实例的类,通常被称为实用工具类。它们只包含静态字段和静 +态方法以及唯一的不被该类的任何静态方法调用的私有构造函数。在Java 8中也 +可以有这样的一个野兽(这个词翻译不通,译者注)在接口中实现,因为Java 8的 +接口可以有静态方法。我不觉得我们应该使用这个特性而不是实用工具类。我也 +不完全确信我们应该使用实用工具类。 + +静态类总是在另一个类或接口中。它们是嵌套类。他们是静态的,就像静态方法 +不能访问类的实例方法和字段一样,静态内部类也不能访问嵌入类的实例方法和 +字段。这是因为内部类没有嵌入类实例的引用(或者说是指针,如果你喜欢这么 +叫的话)。内部类(内部类,也即非静态嵌套类, 译者注),而非静态嵌套类, 没 +有嵌入类的一个实例,它是无法被创建的。每个内部类的实例都具有嵌入类实例 +的一个引用,因此一个内部类可以访问嵌入类的实例方法和字段。 + +因为这个原因,要是没有外部类的一个实例,你就不能创建一个内部类。当然, +如果是当前对象,也就是`this`的话,你就可以不需要指定它。在这种情况下你 +可以使用`new`, 在这种情况下,也就是`this.new`的简式。在一个静态的环境中 +,例如从一个静态方法,你必须指定内部类应该创建哪个封闭类的实例。见第10 +行: + + package a; + + class Nesting { + static class Nested {} + class Inner {} + void method(){ + Inner inner = new Inner(); + } + static void staticMethod(){ + Inner inner = new Nesting().new Inner(); + } + } + +### 匿名类只能访问final变量 ### + +![Variable has to be effective final](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/effective-final.png) + +变量必须是有效的final + +当一个匿名类被定义在一个方法中,它可以访问局部变量如果该变量是`final`的 +。但这说的有点模糊。它们不得不声明成final,他们还必须是有效final。这也 +是Java 8中发布的一些特性。你不需要声明这些变量为`final`型,但它们仍然 +必须是有效的`final`。 + +![Java 8 does not require final, only effective final](http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/11/java_ee_-_javabeantester_src_main_java_com_javax0_jbt_blog_java_-_eclipse_-__users_verhasp_github_javax_blog.png) + +Java 8并不要求`final`,只要求有效final. + +为什么你需要对一些东西声明`final`,当它被检查必须是这样的。就像方法的参 +数。它们也必须是`final`的。你说这不是Java所必须的吗?嗯,你是对的。这只 +是一个良好的编程风格所必须的。 + +-------------------------------------------------------------------------------- + +via: http://www.javacodegeeks.com/2014/11/some-sentences-about-java.html + +作者:[Peter Verhas][a] +译者:[a598799539](https://github.com/a598799539) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.javacodegeeks.com/author/peter-verhas/ From 84eaf6ed1dcb11898f8c975782affbb7e08fce70 Mon Sep 17 00:00:00 2001 From: disylee Date: Sat, 29 Nov 2014 22:34:25 +0800 Subject: [PATCH 019/158] disylee translated ok --- ...ve Music Players from Ubuntu Sound Menu.md | 65 ---------------- ...ve Music Players from Ubuntu Sound Menu.md | 77 +++++++++++++++++++ 2 files changed, 77 insertions(+), 65 deletions(-) delete mode 100644 sources/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md create mode 100644 translated/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md diff --git a/sources/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md b/sources/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md deleted file mode 100644 index d42bd88065..0000000000 --- a/sources/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md +++ /dev/null @@ -1,65 +0,0 @@ -disylee来翻译 -How to Remove Music Players from Ubuntu Sound Menu -================================================================================ -![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/music-players.jpg) - -**Since its introduction back in 2010, the Ubuntu Sound Menu has proven to be one of the most popular and unique features of the Unity desktop.** - -Allowing music players to integrate with the volume applet – i.e., where one would expect to find sound-related tomfoolery – through a standard interface is inspired. One wonders why other operating systems haven’t followed suit! - -#### Overstuffed #### - -Handy though it may be there is a “problem” with the applet as it currently exists: pretty much anything that so much as looks at an MP3 can, should it want, lodge itself inside. While useful, an omnipresent listing for apps you have installed but don’t use that often is annoying and unsightly. - -I’m going to wager that the screenshot above looks familiar to a great many of you reading this! Never fear, **dconf-editor** is here. - -### Remove Players from Ubuntu Sound Menu ### - -#### Part One: Basics #### - -The quickest and easiest way to remove entries from the Sound Menu is to uninstall the apps afflicting it. But that’s extreme; as I said, you may want the app, just not the integration. - -To remove players without ditching the apps we need to use a scary looking tool called dconf-editor. - -You may have it installed already, but if you don’t you’ll find it in the Ubuntu Software Center waiting. - -- [Click to Install Dconf-Editor in Ubuntu][1] - -Once installed, head to the Unity Dash to open it. Don’t panic when it opens; you’ve not been shunted back to the 2002, it’s supposed to look like that. - -Using the left-hand sidebar you need to navigate to com > canonical > indicator > sound. The following pane will appear. - -![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/dconf-editor.jpg) - -Double click on the closed brackets next to interested-media-players and delete the players you wish to remove from the Sound Menu, but leave in the square brackets and don’t delete any commas or apostrophes from items you wish to keep. - -For example, I removed ‘**rhythmbox.desktop**’, ‘**pithos.desktop**’, ‘**clementine.desktop**’, to leave a line that reads: - - ['tomahawk.desktop'] - -Now, when I open the Sound menu I only see Tomahawk: - -![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/music-players-2.jpg) - -#### Part Two: Blacklisting #### - -Wait! Don’t close dconf-editor yet. While the steps above makes things look nice and tidy some players will instantly re-add themselves to the sound menu when opened. To avoid having to repeat the process add them to the **blacklisted-media-player** section. - -Remember to enclose each player in apostrophes with a comma separating multiple entries. They must also be inside the square brackets — so double check before exiting. - -The net result: - -![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/from-to-.jpg) - --------------------------------------------------------------------------------- - -via: http://www.omgubuntu.co.uk/2014/11/remove-players-ubuntu-sound-menu - -作者:[Joey-Elijah Sneddon][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:https://plus.google.com/117485690627814051450/?rel=author -[1]:apt://dconf-editor diff --git a/translated/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md b/translated/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md new file mode 100644 index 0000000000..f0bb652ad6 --- /dev/null +++ b/translated/tech/20141112 How to Remove Music Players from Ubuntu Sound Menu.md @@ -0,0 +1,77 @@ + +如何从Ubuntu的声音菜单中移除音乐播放器 +================================================================================ +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/music-players.jpg) + + +**自从2010年的介绍一来,Ubuntu声音菜单已经被证明是最流行和个性的统一桌面之一.** + +随着音乐播放器与音量程序合成小体积的应用程序-即集成,其中一个希望找到与声音相关的蠢事-通过标准接口的灵感。人们不禁要问,为什么其它操作系统没有效仿这种做法! + +#### 冗长的 #### + + +尽管它看起来很方便,但是这个小应用当前存在一个问题:相当多的东西集在一起看起来想一个MP3,是否真正的把想要的东西都放在里面了。虽然有用,但是一个无所不再的应用程序清单已经安装了,这让一些不经常适用的人看着很累赘和反感。 + + +我将要打赌上面的截图看起来一定很熟悉,你们中的很多人一定阅读过吧!不要害怕,**dconf-editor **就在这里。 + + + +### 从Ubuntu 声音菜单中移除播放器 ### + + +#### 第一部分: 基础知识 #### + +最快速和最简单地从声音菜单中移除播放器的方法就是卸载相关的应用程序。但这是极端的方式,我的意思是指你也许想要保留应用程序,但是不需要它集成。 + +只删除播放器但是保留我们需要的应用程序,我们用到一个看起来令人惊讶的工具叫“dconf-editor”. + +你可能已经安装了,如果没有安装的话,那么你从Ubuntu软件中心找出。 + + +- [在Ubuntu中点击安装Dconf-Editor][1] + +一旦安装完毕,找到Unity Dash并打开。打开的时候不要惊慌;你不会再回到2002年了,它确实是这样子的。 + + +使用右侧菜单栏,你需要从导航到 com > canonical > indicator > sound.下面的面板将会出现。 +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/dconf-editor.jpg) + +双击靠近interested-media-players的比括号并删除你希望从声音菜单里移除掉的播放器,但需要保留在方括号中,且不要删除任何你想保留逗号或者撇号。 + + +举个例子,我移除掉这些 + +‘**rhythmbox.desktop**’, ‘**pithos.desktop**’, ‘**clementine.desktop**’, + +这样就好留了一行如下: + + ['tomahawk.desktop'] + +现在,当我再打开声音菜单时,我只看到Tomahawk: + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/music-players-2.jpg) + +#### 第二部分:黑名单 #### + +等等!还不能关闭dconf-editor。尽管上面的步骤看起来把事情处理得干净利落,但是一些播放器在打开时会立即重新加载到声音菜单。为了避免重复这个过程,将它们添加到**媒体播放器黑名单**中。 + +记得每个在撇括号里的播放器都用逗号分隔多个条目。他们也必须在方括号内,所以在退出之前请务必仔细检查。 + +最终结果如下: + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/from-to-.jpg) + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/11/remove-players-ubuntu-sound-menu + +作者:[Joey-Elijah Sneddon][a] +译者:[disylee](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:apt://dconf-editor From 1d67907640615266fab1c25ecbb9a189869873f6 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 28 Nov 2014 09:46:46 +0800 Subject: [PATCH 020/158] PUB:20141125 Linux FAQs with Answers--How to check glibc version on Linux @GOLinux --- ...AQs with Answers--How to check glibc version on Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md (89%) diff --git a/translated/tech/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md b/published/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md similarity index 89% rename from translated/tech/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md rename to published/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md index 46fffcbbd8..fe6ce70b0d 100644 --- a/translated/tech/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md +++ b/published/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md @@ -1,4 +1,4 @@ -Linux有问必答——如何检查Linux上的glibc版本 +Linux有问必答:如何检查Linux上的glibc版本 ================================================================================ > **问题**:我需要找出我的Linux系统上的GNU C库(glibc)的版本,我怎样才能检查Linux上的glibc版本呢? @@ -20,7 +20,7 @@ GNU C库(glibc)是标准C库的GNU实现。glibc是GNU工具链的关键组 ### 方法二 ### -另一个方法是在命令行“输入”**glibc library**(如,libc.so.6),就像命令一样。 +另一个方法是在命令行“输入”**glibc 库的名称**(如,libc.so.6),就像命令一样执行。 输出结果会显示更多关于**glibc库**的详细信息,包括glibc的版本以及使用的GNU编译器,也提供了glibc扩展的信息。glibc变量的位置取决于Linux版本和处理器架构。 @@ -49,6 +49,6 @@ GNU C库(glibc)是标准C库的GNU实现。glibc是GNU工具链的关键组 via: http://ask.xmodulo.com/check-glibc-version-linux.html 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 125ceabe71c909a489f044279d6a21b6e9a8d8d4 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 30 Nov 2014 10:05:10 +0800 Subject: [PATCH 021/158] PUB:Meet systemd, the controversial project taking over a Linux distro near you @SPccman --- ...ect taking over a Linux distro near you.md | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) rename {translated/talk => published}/Meet systemd, the controversial project taking over a Linux distro near you.md (61%) diff --git a/translated/talk/Meet systemd, the controversial project taking over a Linux distro near you.md b/published/Meet systemd, the controversial project taking over a Linux distro near you.md similarity index 61% rename from translated/talk/Meet systemd, the controversial project taking over a Linux distro near you.md rename to published/Meet systemd, the controversial project taking over a Linux distro near you.md index 710524a18d..ceecf96843 100644 --- a/translated/talk/Meet systemd, the controversial project taking over a Linux distro near you.md +++ b/published/Meet systemd, the controversial project taking over a Linux distro near you.md @@ -1,19 +1,18 @@ -systemd这个有争议的项目正在接管你身边的Linux发行版 +Systemd这个有争议的项目正在接管你身边的Linux发行版 ========= ![](http://core4.staticworld.net/images/article/2014/10/linux-attack-100528169-gallery.jpg) -systemd 是目前为止在Linux平台上最有争议的项目之一。它到底有多大的争议?它的争议大到systemd的开发者之一Lennart Poettering 声称有人使用[比特币][2]雇佣职业杀手要干掉他。但是还是有比较理智的做法的,有一个[抵制systemd网站][3]在技术角度上提出了抵制systemd的原因。 +Systemd 是目前为止在Linux平台上最有争议的项目之一。它到底有多大的争议?它的争议大到systemd的开发者之一Lennart Poettering 声称有人使用[比特币][2]雇佣职业杀手要干掉他。但是还是有比较理智的做法的,有一个[抵制systemd网站][3]在技术角度上提出了抵制systemd的原因。 -如此强烈的抵制也反映了systemd的成功。它已经被或将要被Fedroa、OpenSUSE、Ubuntu、Debian、Arch Linux等众多发型版采用。随着时间推移,GNOME越来越依赖它,Debian[回归GNOME][4]的原因之一就是它采用了systemd。systemd无处不在。 - -那么如此激烈的争论到底是关于什么呢?让我们及距离观察这场战争。 +如此强烈的抵制也反映了systemd的成功。它已经被或将要被Fedroa、OpenSUSE、Ubuntu、Debian、Arch Linux等众多发行版采用。随着时间推移,GNOME越来越依赖它,Debian[回归GNOME][4]的原因之一就是它采用了systemd。systemd无处不在! +那么如此激烈的争论到底是关于什么呢?让我们近距离观察这场战争。 ###Systemd是一个全新的init -[systemd][5]的核心是取代老旧的[SysV init][6]。init用来初始化你的操作系统,当你启动系统时,init负责加载需要的驱动,激活你的网络链接,启动众多的系统服务,最后进入图形登陆界面。而SysV init 是一个老旧的系统,它基本上仅运行**/etc/init.d**目录下的一些脚本。 +[Systemd][5]的核心是取代老旧的[SysV init][6]。init用来初始化你的操作系统,当你启动系统时,init负责加载需要的驱动,激活你的网络链接,启动众多的系统服务,最后进入图形登陆界面。而SysV init 是一个老旧的系统,它基本上仅运行**/etc/init.d**目录下的一些脚本。 -systemd是一个现代技术用以取代老旧以及粗糙的SysV init。它可以在接收到事件响应时启动相关服务;比如,当你接入了一个USB打印机,systemd可以在接收到设备接入响应时启动打印服务。当它接收到某个网络端口的连接请求时,它可以启动在此端口上监听的服务并且传递这个连接。 +Systemd是一个现代技术,用以取代老旧以及粗糙的SysV init。它可以在接收到事件响应时启动相关服务;比如,当你接入了一个USB打印机,systemd可以在接收到设备接入响应时启动打印服务。当它接收到某个网络端口的连接请求时,它可以启动在此端口上监听的服务并且传递这个连接。 获取更多关于SysV init 与 systemd的信息,可以参考Jorgen Schäfer的 “[Why systemd?][9]” @@ -23,18 +22,15 @@ systemd的反对者之中也有部分人认为SysV太老了,应该被取代掉 ![An illustration of systemd's structure.](https://cms-images.idgesg.net/images/article/2014/10/systemd-diagram-100528171-orig.png) -[维基共享资源][10] +*[维基共享资源][10] systemd 结构图解* - -systemd 结构图解。 - -systemd包括用于管理用户登陆的守护进程logind,还包括journald,并且journald 颇有争议的使用了二进制形式保存系统日志而不是以文本形式。systemd也采用了[udev][11]的思想及代码,它对**/dev/**目录下的虚拟设备文件进行管理,并且处理设备接入或推出时所产生的事件。除了这些还有很多其他的,如:systemd还包括了[cron][12]风格的任务调度器与网络守护进程networkd。 +Systemd包括用于管理用户登陆的守护进程logind,还包括journald,并且journald 颇有争议的使用了二进制形式保存系统日志而不是以文本形式。systemd也采用了[udev][11]的思想及代码,它对**/dev/**目录下的虚拟设备文件进行管理,并且处理设备接入或推出时所产生的事件。除了这些还有很多其他的,如:systemd还包括了[cron][12]风格的任务调度器与网络守护进程networkd等等。 ###抨击者认为systemd不是类UNIX风格 多数的抱怨源于人们认为systemd项目太大以至于超出了它的工作范围,并且它从Linux系统接管的部分太多了。不要感到惊奇,systemd的抵制活动是以下面的抱怨开始的: ->"systemd文件是一大堆的复杂的高度耦合的二进制组成的,这违反了UNIX哲学:“做一件事情,并把它做好”。它超出了一个init程序的职责范围,因为它还有电源管理,设备管理,挂载管理,cron(定时执行工具),磁盘加密,socket接口/inetd,syslog,网络配置,登陆/绘画管理,文件预读,GPT分区发现,容器注册,hostname/locale/time管理,mDNS/DNS-SD等功能,它将Linux控制台以及其他的一些功能都包装在一个程序里面。 +>"systemd文件是一大堆的复杂的高度耦合的二进制组成的,这违反了UNIX哲学:‘做一件事情,并把它做好’。它超出了一个init程序的职责范围,因为它还有电源管理,设备管理,挂载管理,cron(定时执行工具),磁盘加密,socket接口/inetd,syslog,网络配置,登陆/会话管理,文件预读,GPT分区发现,容器注册,hostname/locale/time管理,mDNS/DNS-SD等功能,它将Linux控制台以及其他的一些功能都包装在一个程序里面。 ##那么,systemd是好是坏? @@ -42,25 +38,25 @@ systemd包括用于管理用户登陆的守护进程logind,还包括journald, ![](https://cms-images.idgesg.net/images/article/2013/09/linux-penguin-100055693-medium.png) -systemd最初的想法是非常好的。Linux需要一个新的东西来替换老的SysV init和沉重的 SysV init 脚本,这个新的程序应该是灵活的,现代化的系统守护进程,它可以响应更多类型,并且智能化的管理众多的守护进程。然而,事实上systemd好像成为了一个仅依赖Linux核心的完全统一的系统层。 +systemd最初的想法是非常好的。Linux需要一个新的东西来替换老的 SysV init 和沉重的 SysV init 脚本,这个新的程序应该是灵活的,现代化的系统守护进程,它可以响应更多类型,并且智能化的管理众多的守护进程。然而,事实上systemd好像成为了**一个仅依赖Linux核心的完全统一的系统层**。 -*但是*,尽管Linux是一个社区开发项目,但它不是为PC世界的专栏作家或者是一群网络评论者提供的,这些人都不能决定它的进化与发展。只有那些亲手贡献代码以及全身心投入的人才有这个资格。巧的是,Linux发行版以及那些参与者好像大部分都倾向与systemd。 +*但是*,尽管Linux是一个社区开发项目,但它不是为PC世界的专栏作家或者是一群网络评论者提供的,这些人都不能决定它的进化与发展。只有那些亲手贡献代码以及全身心投入的人才有这个资格。巧的是,Linux发行版以及那些参与者好像大部分都倾向与systemd。 >'我对于systemd本身并没有很强烈的个人看法。我与核心开发人员争论过它的bug与兼容性,并且我认为它的一些设计是愚蠢的(比如二进制的日志),但这只是细节,不是大问题。 -如果Linux Torvald 对于systemd的设计没有什么反对意见,那么说明它可能还是不错的。如果你想平静的看下为什么Linux发型版要使用systemd的话,我推荐这篇文章,[Debian's systemd discussion document][13]。 +如果 Linux Torvald 对于systemd的设计没有什么反对意见,那么说明它可能还是不错的。如果你想平静的看下为什么Linux发行版要使用systemd的话,我推荐这篇文章,[Debian's systemd discussion document][13]。 你是如何看systemd的,可以在评论回复!但是请文明讨论。 -*更新这篇文章以澄清之前的错误,ubuntu 桌面版将在下一个版本中纳入systemd。之前我们错误的认为ubuntu已经使用了systemd*(这段应该不用了吧,校对把握一下吧) +*更新这篇文章以澄清之前的错误的消息,ubuntu 桌面版将在下一个版本中纳入systemd。之前我们错误的认为ubuntu已经使用了systemd*。 ------------------------------------------------------------------------------- via: http://www.pcworld.com/article/2841873/meet-systemd-the-controversial-project-taking-over-a-linux-distro-near-you.html 作者:[Chris Hoffman][a] -译者:[SPccman](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[SPccman](https://github.com/SPccman) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 25bf2ecd2d7edbdfbe02b8cbcf4be37b6470e8d6 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 30 Nov 2014 10:31:33 +0800 Subject: [PATCH 022/158] PUB:04 - The history of Android @alim0x --- .../04 - The history of Android.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) rename {translated/talk => published}/The history of Android/04 - The history of Android.md (90%) diff --git a/translated/talk/The history of Android/04 - The history of Android.md b/published/The history of Android/04 - The history of Android.md similarity index 90% rename from translated/talk/The history of Android/04 - The history of Android.md rename to published/The history of Android/04 - The history of Android.md index b5d8018ad8..13143fb80b 100644 --- a/translated/talk/The history of Android/04 - The history of Android.md +++ b/published/The history of Android/04 - The history of Android.md @@ -1,32 +1,32 @@ -安卓编年史 +安卓编年史(4) ================================================================================ ![安卓0.9显示着横屏的主屏幕——后续一些版本无法实现的一个特性。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/horizontal.png) -安卓0.9显示着横屏的主屏幕——后续一些版本无法实现的一个特性。 -Ron Amadeo供图 -尽管从功能上很难将模拟器和操作系统区分开,但安卓0.9是第一个支持横屏显示的版本。更让人惊讶的是,几乎所有东西都支持横屏模式,在某些方面安卓0.9甚至做的比KitKat更好。在Kiakat中,主屏幕和拨号被锁定为竖向并且无法旋转。但在安卓0.9这里,对任何一个应用横向显示都不是问题。(有谁知道怎么把Nexus 5从Kitkat升级到安卓0.9吗?) +*安卓0.9显示着横屏的主屏幕——后续一些版本无法实现的一个特性* [Ron Amadeo供图] + +尽管从功能上很难将模拟器和操作系统区分开,但安卓0.9是第一个支持横屏显示的版本。更让人惊讶的是,几乎所有东西都支持横屏模式,在某些方面安卓0.9甚至做的比KitKat更好。在Kiakat中,主屏幕和拨号被锁定为竖向并且无法旋转。但在安卓0.9这里,对任何一个应用横向显示都不是问题。(有谁知道怎么把Nexus 5从Kitkat升(降)级到安卓0.9吗?) 截图同样显示了安卓0.9中的新的音量显示设计。它抛弃了在Milestone 3中初次登场的旧铃铛式控制界面。那是一个巨大的,充满屏幕的界面。实际上,安卓4.0的重新设计中让它变得更小了,但它仍然是个问题。(你想增加音量却因此没法看到视频了这种情况特别烦人。) ![新通知面板,抛弃了应用快捷方式并添加了顶部部分。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/n09c2.png) -新通知面板,抛弃了应用快捷方式并添加了顶部部分。 -Ron Amadeo供图 + +*新通知面板,抛弃了应用快捷方式并添加了顶部部分* [Ron Amadeo供图] 几乎每个安卓版本中的通知面板都有一定的调整,安卓0.9也不例外。电池电量图标进行了重绘,变成了黑底绿色图标,其它的状态栏图标变为黑色,白色以及灰色。状态栏左侧部分明智地选择在通知面板打开的时候显示日期。 通知面板加入了一个新的顶部部分,它能够显示运营商名称(在模拟器里显示“安卓”),以及一个巨大的写着“清除通知”的按钮,它能够让你不用打开应用而彻底清除通知。应用程序图标被取消了,替换为通知到达的时间,“最新事件”文字被更换为简单的“通知”。面板的空白部分现在是灰色的而不是之前的白色,底部的滑动条也进行了重新设计。上面两张图片的底部看起来并没有对齐,但这是因为Milestone 5的通知面板在面板底部有一圈空白。安卓0.9的通知面板是完全直达底部边缘的。 ![安卓0.9和0.5的浏览器,展现出新的无色彩菜单。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/browser4c2.png) -安卓0.9和0.5的浏览器,展现出新的无色彩菜单。 -Ron Amadeo供图 + +*安卓0.9和0.5的浏览器,展现出新的无色彩菜单* [Ron Amadeo供图] 浏览器主页现在是加载一个真正的网站,而不是像Milestone 5中那样的本地存储的假Google页面。Webkit的版本升至525.10,但是看起来它似乎没法正确渲染更现代的Google.com搜索按钮。纵观安卓0.9,Milestone 5中的菜单设计已经被抛弃,取而代之的是重新设计的灰色图标。这些截图的区别十分的明显,因为所有的颜色都被去除了。 “更趋向于”列表式的菜单变得更高了一点,并且只是一个没有图标的列表而已。安卓0.9已经获得了其它搜索方式,这次是在浏览器菜单里。和主屏幕小部件,主屏幕菜单按钮,以及浏览器主页,它们共同组成了四个搜索框。谷歌从未隐藏它的主要业务是什么,就连在它的操作系统中也是这样。 ![从左到右:安卓0.9的浏览器缩放控件,页面内搜索界面,浏览器窗口,以及设置。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/b4.png) -从左到右:安卓0.9的浏览器缩放控件,页面内搜索界面,浏览器窗口,以及设置。 -Ron Amadeo供图 + +*从左到右:安卓0.9的浏览器缩放控件,页面内搜索界面,浏览器窗口,以及设置* [Ron Amadeo供图] 安卓0.9带来了许多浏览器改进。谢天谢地缩放控件又能正常使用了,而且从疯狂的垂直控制变成了简单的加减按钮。谷歌做了个符合常识的决定,将缩放控制从屏幕中间移到了屏幕底部。在这些缩放控件中,安卓在一致性方面的努力显而易见。这些看起来是系统中唯一的圆形按钮。 @@ -35,20 +35,20 @@ Ron Amadeo供图 这个版本的系统没有设置界面,但是浏览器最终还是有了自己的设置界面。它会有个桌面式选项的弹窗,Javascript,隐私和cookie,保存的密码以及表单数据。甚至还有Google Gears整合(还记得Google Gears吗?)。 ![拨号盘以及打开菜单的正在通话界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/04/revisedcalls.jpg) -拨号盘以及打开菜单的正在通话界面。 -Ron Amadeo供图 + +*拨号盘以及打开菜单的正在通话界面* [Ron Amadeo供图] 拨号和联系人在安卓0.9中实际上是同一个应用——两个图标只是打开不同的标签而已。将联系人像这样附到拨号盘表明了智能手机联系人的第一目的还是通话,不是短信,电子邮件,即时通讯或查找地址。最终谷歌还是会完全接受非传统的智能手机沟通,将联系人和拨号分为两个独立的应用程序。 -Milestone 5中大多数拨号盘的缺陷在安卓0.9中得到了修复。“最小化”标签被一组正常的亮/暗标签替代。对话气泡式的退格键被替换为正常的退格图标并集成到了拨号数字显示界面。数字键变成了圆形,尽管这个系统的其它东西是圆角矩形的(至少这次文本是垂直对齐的)。谷歌还修复了Milestone 5中“一”键,“星”键和“井”键不平衡的问题。 +Milestone 5中大多数拨号盘的缺陷在安卓0.9中得到了修复。“最小化”标签被一组正常的亮/暗标签替代。对话气泡式的退格键被替换为正常的退格图标并集成到了拨号数字显示界面。数字键变成了圆形,尽管这个系统的其它东西是圆角矩形的(至少这次文本是垂直对齐的)。谷歌还修复了Milestone 5中“-”键,“*”键和“#”键不平衡的问题。 在安卓0.9中点击显示的号码会开始一个通话。这是十分重要的,因为这是摆脱安卓设备硬件实体“拨号”和“结束”键的一大步。另一方面,来电界面却走的是完全相反的道路,去除了在安卓0.5中显示于屏幕之上的“接听”和“拒绝”按键。谷歌会花上接下来几个版本的时间去摸索在特定的显示之下是否需要硬件实体拨号键。但是直到安卓2.0和摩托罗拉Droid面世,实体拨号按钮才最终变成了可选选项。 来电界面的所有选项隐藏在目录按钮之后。Milestone 5不支持距离传感器,所以它采取了简单粗暴的路线,在通话过程中禁用触摸屏。安卓0.9为G1开发,它有个距离传感器。最终谷歌没有在通话的时候禁用触摸传感器。 ![安卓0.9和0.5中独立的联系人界面和联系人编缉界面。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/CONTACTS.png) -安卓0.9和0.5中独立的联系人界面和联系人编缉界面。 -Ron Amadeo供图 + +*安卓0.9和0.5中独立的联系人界面和联系人编缉界面* [Ron Amadeo供图] Milestone 5的一些联系人信息有令人困惑的标签,像电子邮件只被打上“主要的”标签而不是“主电子邮箱”标签。安卓0.9用各部分的水平标题纠正了这个错误。而且现在左侧的每个联系人类型都有了手形图标(Action icons)。 @@ -66,7 +66,7 @@ Milestone 5的一些联系人信息有令人困惑的标签,像电子邮件只 via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/4/ -译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) +译者:[alim0x](https://github.com/alim0x) 校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From cd27963acc8a1c4bb1907537c50fee5e48db7717 Mon Sep 17 00:00:00 2001 From: coloka Date: Sun, 30 Nov 2014 11:37:20 +0800 Subject: [PATCH 023/158] =?UTF-8?q?=E3=80=90=E7=BF=BB=E8=AF=91=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E3=80=9120141117=20Restricting=20process=20CPU=20usag?= =?UTF-8?q?e=20using=20nice=20cpulimit=20and=20cgroups.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...U usage using nice cpulimit and cgroups.md | 200 ------------------ ...U usage using nice cpulimit and cgroups.md | 196 +++++++++++++++++ 2 files changed, 196 insertions(+), 200 deletions(-) delete mode 100644 sources/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md create mode 100644 translated/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md diff --git a/sources/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md b/sources/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md deleted file mode 100644 index d81daccb4c..0000000000 --- a/sources/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md +++ /dev/null @@ -1,200 +0,0 @@ -翻译中 by coloka -Restricting process CPU usage using nice, cpulimit, and cgroups -================================================================================ -注:本文中的图片似乎都需要翻墙后才能看到,发布的时候注意 - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/juggle.jpg) - -The Linux kernel is an incredible circus performer, carefully juggling many processes and their resource needs to keep your server humming along. The kernel is also all about equity: when there is competition for resources, the kernel tries to distribute those resources fairly. - -However, what if you've got an important process that needs priority? What about a low-priority process? Or what about limiting resources for a group of a processes? - -**The kernel can't determine what CPU processes are important without your help. ** - -Most processes are started at the same priority level and the Linux kernel schedules time for each task evenly on the processor. Have a CPU intensive process that can be run at a lower priority? Then you need to tell the scheduler about it! - -There are at least three ways in which you can control how much CPU time a process gets: - -- Use the nice command to manually lower the task's priority. -- Use the cpulimit command to repeatedly pause the process so that it doesn’t exceed a certain limit. -- Use Linux’s built-in **control groups**, a mechanism which tells the scheduler to limit the amount of resources available to the process. - -Let's look at how these work and the pros and cons of each. - -### Simulating high CPU usage ### - -Before looking at these three techniques, we need to find a tool that will simulate high CPU usage on a system. We will be using CentOS as our base system, and to artificially load the processor we can use the prime number generator from the [Mathomatic toolkit][1]. - -There isn’t a prebuilt package for CentOS so you will need to build it yourself. Download the source code from http://mathomatic.orgserve.de/mathomatic-16.0.5.tar.bz2 and then unpack the archive file. Change directory into **mathomatic-16.0.5/primes**. Run **make** and **sudo make install** to build and install the binaries. You will now have the **matho-primes** binary in **/usr/local/bin**. - -Run the command like this: - - /usr/local/bin/matho-primes 0 9999999999 > /dev/null & - -This will generate a list of prime numbers from zero to nine billion nine hundred ninety-nine million nine hundred ninety-nine thousand nine hundred ninety-nine. Since we don’t really want to keep the list, the output is redirected to /dev/null. - -Now run top and you will see that the matho-primes process is using all the available CPU. - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image00.jpg) - -Exit top (press the q key) and kill the matho-primes process (fg to bring the process to the foreground and press CTRL+C). - -### nice ### - -The nice command tweaks the priority level of a process so that it runs less frequently. **This is useful when you need to run a CPU intensive task as a background or batch job**. The niceness level ranges from -20 (most favorable scheduling) to 19 (least favorable). Processes on Linux are started with a niceness of 0 by default. The nice command (without any additional parameters) will start a process with a niceness of 10. At that level the scheduler will see it as a lower priority task and give it less CPU resources. - -Start two **matho-primes** tasks, one with nice and one without: - - nice matho-primes 0 9999999999 > /dev/null & - matho-primes 0 9999999999 > /dev/null & - -Now run top. - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image05.jpg) - -Observe that the process started without nice (at niceness level 0) gets more processor time, whereas the process with a niceness level of 10 gets less. - -What this means in real terms is that if you want to run a CPU intensive task you can start it using nice and the scheduler will always ensure that other tasks have priority over it. This means that the server (or desktop) will remain responsive even when under heavy load. - -Nice has an associated command called renice. It changes the niceness level of an already running process. To use it, find out the PID of process hogging all the CPU time (using ps) and then run renice: - - renice +10 1234 - -Where 1234 is the PID. - -Don’t forget to kill the **matho-primes** processes once you have finished experimenting with the **nice** and **renice** commands. - -### cpulimit ### - -The **cpulimit** tool curbs the CPU usage of a process by pausing the process at different intervals to keep it under the defined ceiling. It does this by sending SIGSTOP and SIGCONT signals to the process. It does not change the **nice** value of the process, instead it monitors and controls the real-world CPU usage. - -cpulimit **is useful when you want to ensure that a process doesn't use more than a certain portion of the CPU**. The disadvantage over nice is that the process can't use all of the available CPU time when the system is idle. - -To install it on CentOS type: - - wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip - unzip cpulimit.zip - cd cpulimit-master - make - sudo cp src/cpulimit /usr/bin - -The commands above will download the source code from GitHub, unpack the archive file, build the binary, and copy it to /usr/bin. - -cpulimit is used in a similar way to nice, however you need to explicitly define the maximum CPU limit for the process using the ‘-l’ parameter. For example: - - cpulimit -l 50 matho-primes 0 9999999999 > /dev/null & - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image03.jpg) - -Note how the matho-primes process is now only using 50% of the available CPU time. On my example system the rest of the time is spent in idle. - -You can also limit a currently running process by specifying its PID using the ‘-p’ parameter. For example - - cpulimit -l 50 -p 1234 - -Where 1234 is the PID of the process. - -### cgroups ### - -Control groups (cgroups) are a Linux kernel feature that allows you to specify how the kernel should allocate specific resources to a group of processes. With cgroups you can specify how much CPU time, system memory, network bandwidth, or combinations of these resources can be used by the processes residing in a certain group. - -**The advantage of control groups over** nice **or** cpulimit **is that the limits are applied to a set of processes, rather than to just one**. Also, nice or cpulimit only limit the CPU usage of a process, whereas cgroups can limit other process resources. - -By judiciously using cgroups the resources of entire subsystems of a server can be controlled. For example in CoreOS, the minimal Linux distribution designed for massive server deployments, the upgrade processes are controlled by a cgroup. This means the downloading and installing of system updates doesn’t affect system performance. - -To demonstrate cgroups, we will create two groups with different CPU resources allocated to each group. The groups will be called ‘cpulimited’ and ‘lesscpulimited’. - -The groups are created with the cgcreate command like this: - - sudo cgcreate -g cpu:/cpulimited - sudo cgcreate -g cpu:/lesscpulimited - -The “-g cpu” part of the command tell cgroups that the groups can place limits on the amount of CPU resources given to the processes in the group. Other contollers include cpuset, memory, and blkio. The cpuset controller is related to the cpu controller in that it allows the processes in a group to be bound to a specific CPU, or set of cores in a CPU. - -The cpu controller has a property known as cpu.shares. It is used by the kernel to determine the share of CPU resources available to each process across the cgroups. The default value is 1024. By leaving one group (lesscpulimited) at the default of 1024 and setting the other (cpulimited) to 512, we are telling the kernel to split the CPU resources using a 2:1 ratio. - -To set the cpu.shares to 512 in the cpulimited group, type: - - sudo cgset -r cpu.shares=512 cpulimited - -To start a task in a particular cgroup you can use the cgexec command. To test the two cgroups, start matho-primes in the cpulimited group, like this: - - sudo cgexec -g cpu:cpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null & - -If you run top you will see that the process is taking all of the available CPU time. - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image01.jpg) - -This is because when a single process is running, it uses as much CPU as necessary, regardless of which cgroup it is placed in. The CPU limitation only comes into effect when two or more processes compete for CPU resources. - -Now start a second matho-primes process, this time in the lesscpulimited group: - - sudo cgexec -g cpu:lesscpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null & - -The top command shows us that the process in the cgroup with the greater cpu.shares value is getting more CPU time. - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image02.jpg) - -Now start another matho-primes process in the cpulimited group: - - sudo cgexec -g cpu:cpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null & - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image04.jpg) - -Observe how the CPU is still being proportioned in a 2:1 ratio. Now the two matho-primes tasks in the cpulimited group are sharing the CPU equally, while the process in the other group still gets more processor time. - -You can [read the full control groups documentation from Red Hat][2] (which applies equally to CentOS 7). - -### Monitoring process CPU usage with Scout ### - -What's the easiest way to monitor process CPU usage? [Scout][3] automatically tracks track process CPU + memory usage when our monitoring agent is installed on your servers. - -### Monitoring process CPU usage with Scout ### - -What's the easiest way to monitor process CPU usage? Scout automatically tracks track process CPU + memory usage when our monitoring agent is installed on your servers. - -![](https://dl.dropboxusercontent.com/u/468982/blog/server_view/processes.png) - -You can then create triggers to alert you when processes exceed specific CPU + memory usage thresholds. - -[Signup for a free trial of Scout][4] to try process CPU monitoring. - -### TL;DR ### - -![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/overview.png) - -The finite resources of any server or desktop are a valuable commodity. The tools described above help you manage those resources, especially the CPU resource: - -- **nice** is a great tool for 'one off' tweaks to a system. -- **cpulimit** is useful when you need to run a CPU intensive job and having free CPU time is essential for the responsiveness of a system. -- **cgroups** are the Swiss army knife of process limiting and offer the greatest flexibility. - --------------------------------------------------------------------------------- - -via: http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups - -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://www.mathomatic.org/ -[2]:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Resource_Management_and_Linux_Containers_Guide/chap-Introduction_to_Control_Groups.html -[3]:https://scoutapp.com/ -[4]:https://scoutapp.com/ -[5]: -[6]: -[7]: -[8]: -[9]: -[10]: -[11]: -[12]: -[13]: -[14]: -[15]: -[16]: -[17]: -[18]: -[19]: -[20]: \ No newline at end of file diff --git a/translated/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md b/translated/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md new file mode 100644 index 0000000000..7dd9bc4851 --- /dev/null +++ b/translated/tech/20141117 Restricting process CPU usage using nice cpulimit and cgroups.md @@ -0,0 +1,196 @@ +使用nice、cpulimit和cgroups限制cpu占用率 +================================================================================ +注:本文中的图片似乎都需要翻墙后才能看到,发布的时候注意 + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/juggle.jpg) + +Linux内核是一名了不起的马戏表演者,它在进程和系统资源间小心地玩着杂耍,并保持系统的能够正常运转。 同时,内核也很公正:它将资源公平地分配给各个进程。 + +但是,如果你需要给一个重要进程提高优先级时,该怎么做呢? 或者是,如何降低一个进程的优先级? 又或者,如何限制一组进程所使用的资源呢? + +**答案是需要由用户来为内核指定进程的优先级** + +大部分进程启动时的优先级时相同的,因此Linux内核会公平地进行调度。 如果想让一个CPU密集型的进程运行在低优先级,那么你就得事先配置好调度器。 + +下面介绍3种控制进程运行时间的方法: + +- 使用nice命令手动减低任务的优先级。 +- 使用cpulimit命令控制进程的运行时间上限。 +- 使用linux内建的**control groups**功能,它提供了限制进程资源消耗的机制。 + +我们来看一下这3个工具的工作原理和各自的优缺点。 + +### 模拟高cpu占用率 ### + +在分析这3种技术前,我们要先安装一个工具来模拟高CPU占用率的场景。我们会用到CentOS作为测试系统,并使用[Mathomatic toolkit][1]中的质数生成器来模拟CPU负载。 + +很不幸,在CentOS上这个工具没有预编译好的版本,所以必须要从源码进行安装。先从http://mathomatic.orgserve.de/mathomatic-16.0.5.tar.bz2这个链接下载源码包并解压。然后进入**mathomatic-16.0.5/primes**文件夹,运行**make** 和 **sudo make install**进行编译和安装。这样,就把**matho-primes**程序安装到了**/usr/local/bin**目录中。 + +接下来,通过命令行运行: + + /usr/local/bin/matho-primes 0 9999999999 > /dev/null & + +程序运行后,将输出从0到9999999999之间的质数。因为我们并不需要这些输出结果,直接将输出重定向到/dev/null就好。 + +现在,使用top命令就可以看到matho-primes进程榨干了你所有的cpu资源。 + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image00.jpg) + +好了,接下来退出top(按q键)并杀掉matho-primes进程(使用fg命令将进程切换到前台,再按CTRL+C) + +### nice命令 ### +下来介绍一下nice命令的使用方法,nice命令可以修改进程的优先级,这样就可以让进程运行得不那么频繁。 **这个功能在运行cpu密集型的后台进程或批处理作业时尤为有用。** nice值的取值范围是[-20,19],-20表示最高优先级,而19表示最低优先级。 Linux进程的默认nice值为0。使用nice命令(不带任何参数时)可以将进程的nice值设置为10。这样调度器就会将此进程视为低优先级的进程,从而减少cpu资源的分配。 + +下面来看一个例子,我们同时运行两个**matho-primes**进程,一个使用nice命令来启动运行,而另一个正常启动运行: + + nice matho-primes 0 9999999999 > /dev/null & + matho-primes 0 9999999999 > /dev/null & + +再运行top命令。 + + + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image05.jpg) + +看到没,正常运行的进程(nice值为0)获得了更多的cpu运行时间,相反的,用nice命令运行的进程占用的cpu时间会较少(nice值为10)。 + +在实际使用中,如果你要运行一个CPU密集型的程序,那么最好用nice命令来启动它,这样就可以保证其他进程获得更高的优先级。 也就是说,即使你的服务器或者台式机在重载的情况下,也可以快速响应。 + +nice还有一个关联命令叫做renice,它可以在运行时调整进程的nice值。使用renice命令时,要先找出进程的PID。下面是一个例子: + + renice +10 1234 + +其中,1234是进程的PID。 + +测试完**nice** 和 **renice**命令后,记得要将**matho-primes**进程全部杀掉。 + +### cpulimit命令 ### + +接下来介绍 **cpulimit** 命令的用法。 **cpulimit** 命令的工作原理是为进程预设一个cpu占用率门限,并实时监控进程是否超出此门限,若超出则让该进程暂停运行一段时间。cpulimit使用 SIGSTOP和SIGCONT这两个信号来控制进程。它不会修改进程的nice值,而是通过监控进程的cpu占用率来做出动态调整。 + +cpulimit的优势是可以控制进程的cpu使用率的上限值。但与nice相比也有缺点,那就是即使cpu是空闲的,进程也不能完全使用整个cpu资源。 + +在CentOS上,可以用下面的方法来安装: + + wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip + unzip cpulimit.zip + cd cpulimit-master + make + sudo cp src/cpulimit /usr/bin + +上面的命令行,会先从从GitHub上将源码下载到本地,然后再解压、编译、并安装到/usr/bin目录下。 + +cpulimit的使用方式和nice命令类似,但是需要用户使用-l选项显式地定义进程的cpu使用率上限值。举例说明: + + cpulimit -l 50 matho-primes 0 9999999999 > /dev/null & + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image03.jpg) + +从上面的例子可以看出matho-primes只使用了50%的cpu资源,剩余的cpu时间都为idle。 + +You can also limit a currently running process by specifying its PID using the ‘-p’ parameter. For example +cpulimit还可以在运行时对进程进行动态限制,使用-p选项来指定进程的PID,下面是一个实例: + + cpulimit -l 50 -p 1234 + +其中,1234是进程的PID。 + +### cgroups命令集 ### + +最后介绍,功能最为强大的控制组(cgroups)的用法。cgroups是Linux内核提供的一种机制,利用它可以指定一组进程的资源分配。 具体来说,使用cgroups,用户能够限定一组进程的cpu占用率、系统内存消耗、网络带宽,以及这几种资源的组合。 + +对比nice和cpulimit,**cgroups的优势**在于它可以控制一组进程,不像前者仅能控制单进程。同时,nice和cpulimit只能限制cpu使用率,而cgroups可以限制其他进程资源的使用。 + +对cgroups善加利用就可以控制好整个子系统的资源消耗。就拿CoreOS作为例子,这是一个专为大规模服务器部署而设计的最简化的Linux发行版本,它的upgrade进程就是使用cgroups来管控。这样,系统在下载和安装升级版本时也不会影响到系统的性能。 + +下面做一下演示,我们将创建两个控制组(cgroups),并对其分配不同的cpu资源。这两个控制组分别命名为“cpulimited”和“lesscpulimited”。 + +使用cgcreate命令来创建控制组,如下所示: + + sudo cgcreate -g cpu:/cpulimited + sudo cgcreate -g cpu:/lesscpulimited + +其中“-g cpu”选项用于设定cpu的使用上限。除此cpu外,cgroups还提供cpuset、memory、blkio等控制器。cpuset控制器与cpu控制器的不同在于,cpu控制器只能限制一个cpu核的使用率,而cpuset可以控制多个cpu核。 + +cpu控制器中的cpu.shares属性用于控制cpu使用率。它的默认值是1024,我们将lesscpulimited控制组的cpu.shares设为1024(默认值),而cpulimited设为512,配置后内核就会按照2:1的比例为这两个控制组分配资源。 + +To set the cpu.shares to 512 in the cpulimited group, type: + + sudo cgset -r cpu.shares=512 cpulimited + +使用cgexec命令来启动控制组的运行,为了测试这两个控制组,我们先用cpulimited控制组来启动matho-primes进程,命令行如下: + + sudo cgexec -g cpu:cpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null & + +打开top可以看到,matho-primes进程占用了所有的cpu资源。 + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image01.jpg) + +因为只有一个进程在系统中运行,不管将其放到哪个控制组中启动,它都会尽可能多的使用cpu资源。cpu资源限制只有在两个进程争夺cpu资源时才会生效。 + +那么,现在我们就启动第二个matho-primes进程,这一次我们在lesscpulimited控制组中来启动它: + + sudo cgexec -g cpu:lesscpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null & + +再打开top就可以看到,cpu.shares值大的控制组会得到更多的cpu运行时间。 + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image02.jpg) + +现在,我们再在cpulimited控制组中增加一个matho-primes进程: + + sudo cgexec -g cpu:cpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null & + +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/image04.jpg) + +看到没,两个控制组的cpu的占用率比例仍然为2:1。其中,cpulimited控制组中的两个matho-primes进程获得的cpu时间基本相当,而另一组中的matho-primes进程显然获得了更多的运行时间。 + +更多的使用方法,可以在Red Hat上查看详细的cgroups使用[说明][2]。(当然CentOS 7也有) + +### 使用Scout来监控cpu占用率 ### + +监控cpu占用率最为简单的方法是什么?[Scout][3]工具能够监控能够自动监控进程的cpu使用率和内存使用情况。 + +![](https://dl.dropboxusercontent.com/u/468982/blog/server_view/processes.png) + +[Scout][3]的触发器(trigger)功能还可以设定cpu和内存的使用门限,超出门限时会自动产生报警。 + +从这里可以获取[Scout][4]的试用版。 + +### 总结 ### +![](https://dl.dropboxusercontent.com/u/468982/blog/cpu_usage_blog/overview.png) + +计算机的系统资源是非常宝贵的。上面介绍的这3个工具能够帮助大家有效地管理系统资源,特别是cpu资源: + +- **nice**可以一次性调整进程的优先级。 +- **cpulimit**在运行cpu密集型任务且要保持系统的响应性时会很有用。 +- **cgroups**是资源管理的瑞士军刀,同时在使用上也很灵活。 + +-------------------------------------------------------------------------------- + +via: http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups + +译者:[coloka](https://github.com/coloka) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://www.mathomatic.org/ +[2]:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Resource_Management_and_Linux_Containers_Guide/chap-Introduction_to_Control_Groups.html +[3]:https://scoutapp.com/ +[4]:https://scoutapp.com/ +[5]: +[6]: +[7]: +[8]: +[9]: +[10]: +[11]: +[12]: +[13]: +[14]: +[15]: +[16]: +[17]: +[18]: +[19]: +[20]: \ No newline at end of file From c94225cdf5912dc04e9aebd2a363beedb7d75be8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 30 Nov 2014 03:47:49 -0500 Subject: [PATCH 024/158] Translating --- ...To Create A Multiboot USB From Ubuntu Using MultiSystem.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md b/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md index f89014cd07..5705b1b4ab 100644 --- a/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md +++ b/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md @@ -1,3 +1,5 @@ +Translating------geekpi + How To Create A Multiboot USB From Ubuntu Using MultiSystem ================================================================================ ### Introduction ### @@ -100,4 +102,4 @@ via: http://www.unixmen.com/create-multiboot-usb-ubuntu-using-multisystem/ [a]:http://www.unixmen.com/author/sk/ [1]:http://liveusb.info/multisystem/install-depot-multisystem.sh.tar.bz2 -[2]:http://liveusb.info/dotclear/ \ No newline at end of file +[2]:http://liveusb.info/dotclear/ From e0be26800b36696a2a62378c92f4a62fa831a718 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 30 Nov 2014 04:22:57 -0500 Subject: [PATCH 025/158] translated --- ...iboot USB From Ubuntu Using MultiSystem.md | 105 ------------------ ...iboot USB From Ubuntu Using MultiSystem.md | 103 +++++++++++++++++ 2 files changed, 103 insertions(+), 105 deletions(-) delete mode 100644 sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md create mode 100644 translated/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md diff --git a/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md b/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md deleted file mode 100644 index 5705b1b4ab..0000000000 --- a/sources/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md +++ /dev/null @@ -1,105 +0,0 @@ -Translating------geekpi - -How To Create A Multiboot USB From Ubuntu Using MultiSystem -================================================================================ -### Introduction ### - -For those who don’t know, **MultiSystem** is a small, Open Source freeware to create a multiboot usb drives from Linux systems. Using this utility, we can create any number of bootable Linux distributions in a USB drive. All you need is an Internet connection(at the time of MultiSystem installation only), and a sufficient size of a USB drive depending upon the number of distributions you want to include in that USB drive. - -### Install MultiSystem On Ubuntu 14.10/14.04 ### - -#### Manual Installation: #### - -[Download MultiSystem][1] script, and extract it anywhere of your choice. Go to the extracted location, and run the script as shown below. - - sudo ./install-depot-multisystem.sh - -#### Installation Using PPA: #### - -Alternatively, you can install MultiSystem more easily using PPA as shown below. - - sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main' - wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add - - sudo apt-get update - sudo apt-get install multisystem - -After installation, It will automatically open. Just click Close button to exit. - -### Post Installation ### - -Once installed, plug-in your USB key, and launch MultiSystem either from Unity Dash or Menu. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/Menu_0012.png) - -At first time, the MultiSystem interface will look like below. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_002.png) - -Select the USB drive, and click **Confirm** button. You may get the following error dialog box. Don’t worry, It says our USB drive has no label. Click Ok to set label by MultiSystem itself. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/Error_003.png) - -Then, unplug/replug the USB key, and launch MultiSystem again. Select the USB key, and click Confirm again. Now, you’ll be asked to confirm Grub2 installation in your USB key. Click Ok to continue. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/gtkdialog_004.png) - -Finally, you’ll be pleased with MultiSystem interface. Now’ it’s time to create multiboot usb key. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_005.png) - -### Usage ### - -MultiSystem is very simple to use. Drag the ISO of your choice into the MultiSystem window. If it doesn’t work, click on the **cd icon** on the bottom and select the ISO’s. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_006.png) - -Now, MultiSystem will copy the files from the ISO, and make the USB key as bootable. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_007.png) - -Likewise, you can add as many distributions as you want in your USB key. In my case, I have added two Linux distributions: CentOS 6.5 and Android. - -After adding all ISO’s, you will now see the list of bootable distributions in the MultiSystem main window. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_008.png) - -That’s it. Our multiboot USB key is ready to use. Reboot your system, and set the first boot device as USB in your Bios. Select the distribution you want to install, and start installing the OS from the multiboot USB key. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/QEMU_009.png) - -Additionally, MultiSystem includes some extra options such as: - -- Grub Settings; -- Grub & Burg bootloaders Update; -- Download Live Cds; -- VirtualBox installation; -- Format USB key; -- and many. - -To view the list of additional options, navigate to the **Menus** tab of the MultiSystem. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_010.png) - -Also, you can test the multiboot USB key within your Ubuntu desktop itself using QEMU or Oracle VirtualBox. - -![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_011.png) - -MultiSystem tool is one of the best and useful tool ever I have tested. This tool will definitely useful for those who wants to install multiple different operating systems on their systems. You don’t have to carry your CD/DVD pouch wherever you go. Just buy a 16GB 0r 32GB USB, and dumb all Operating systems you want to install in it. and install OS like a boss. - -And, the good news for Windows OS users is it supports some Windows os too. I tested Windows 7, and it’s working! - -Enjoy! - --------------------------------------------------------------------------------- - -via: http://www.unixmen.com/create-multiboot-usb-ubuntu-using-multisystem/ - -作者:[SK][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.unixmen.com/author/sk/ -[1]:http://liveusb.info/multisystem/install-depot-multisystem.sh.tar.bz2 -[2]:http://liveusb.info/dotclear/ diff --git a/translated/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md b/translated/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md new file mode 100644 index 0000000000..beb8600024 --- /dev/null +++ b/translated/tech/20141127 How To Create A Multiboot USB From Ubuntu Using MultiSystem.md @@ -0,0 +1,103 @@ +如何在Ubuntu上使用MultiSystem创建多启动USB +================================================================================ +### 介绍 ### + +一些人并不知道**MultiSystem**是一个小型的开源软件来在Linux系统中创建多启动usb盘。使用这个工具,我们可以在USB中创建任意多的可启动Linux发行版。你所要的只是网络链接(之在MultiSystem安装的时候需要),以及一个足够大的USB盘,这取决于你想在USB盘中放入发行版的数量。 + +### 在 Ubuntu 14.10/14.04 安装MultiSystem ### + +#### 手动安装: #### + +[下载 MultiSystem][1]脚本,并解压到任意地方。进入解压的地址,使用下面的命令运行脚本。 + + sudo ./install-depot-multisystem.sh + +#### 使用 PPA 安装: #### + +相应地,你可以用下面的命令来更简单地使用PPA来安装MultiSystem。 + + sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main' + wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add - + sudo apt-get update + sudo apt-get install multisystem + +安装玩之后,它会自动打开。只要点击关闭按钮退出。 + +### 安装之后 ### + +安装完成后,插入你的USB,并通过Unity Dash或者菜单运行MultiSystem。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/Menu_0012.png) + +第一次启动时,MultiSystem界面看起来会像下面这样。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_002.png) + +选择USB设备,点击**确认**按钮。你可能会看到下面的错误窗口。不必担心,它说的是USB设备没有标签。点击OK让MultiSystem自动设置标签。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/Error_003.png) + +那么,拔出/重新插入USB,再次运行MultiSystem。选择USB盘,再次点击确认。现在,你被要求确认在USB中安装Grub2.点击OK继续。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/gtkdialog_004.png) + +最终,你会高兴地看到MultiSystem的界面。现在,时候创建多启动USB盘。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_005.png) + +### 使用 ### + +MultiSystem非常容易使用。将ISO文件拖入MultiSystem窗口中。如果这不能用,点击底部的**cd 按钮**来选择ISO文件。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_006.png) + +现在,MultiSystem会从ISO中拷贝文件,并让USB可启动。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_007.png) + +相似地,你可以在你的USB中加入任意多的发行版。我这次加入了两个Linux发行版:CentOS 6.5和Android。 + +加完ISO文件后,你会在MultiSystem的主窗口中看到可启动的发行版列表了。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_008.png) + +就是这样。我们的多启动USB盘就可以使用了。重启系统,并在BIOS中设置USB优先启动。选择你想要安装的发行版并开始安装系统。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/QEMU_009.png) + +额外地,MultiSystem含有一些额外的选项: + +- Grub 设置; +- Grub 和 Burg 的bootloader更新; +- 下载 LiveCD; +- VirtualBox 安装; +- 格式化USB盘; +- 还有更多选项。 + +要浏览额外的选项列表,进入MultiSystem的**菜单**标签。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_010.png) + +同样,你可以在Ubuntu中使用QEMU或者Oracle VirtualBox测试多启动USB盘。 + +![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/MultiSystem_011.png) + +MultiSystem工具是我测试到现在最棒和最有用的一款工具。这款工具对那些想要在他们的机器上安装多个系统的人是非常有用的。在你外出的时候,你不必再携带CD/DVD袋了。只要买一个16GB或者32GB的USB就行,并把所有你想要的系统都放在里面,就像老板一样安装系统。 + +并且,一个对于Windows系统用户的好消息是它也支持Windows系统。我在Windows 7上测试过,它可以工作! + +享受吧! + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/create-multiboot-usb-ubuntu-using-multisystem/ + +作者:[SK][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/sk/ +[1]:http://liveusb.info/multisystem/install-depot-multisystem.sh.tar.bz2 +[2]:http://liveusb.info/dotclear/ \ No newline at end of file From bd3ce8c9fdc63ccd287289e96ec66b0c3449740e Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Sun, 30 Nov 2014 17:33:29 +0800 Subject: [PATCH 026/158] Finish the translation by ZTinoZ --- ...swers--How to install phpMyAdmin on CentOS.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename {sources => translated}/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md (86%) diff --git a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md b/translated/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md similarity index 86% rename from sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md rename to translated/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md index 481f4757c6..712303ed0a 100644 --- a/sources/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md +++ b/translated/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md @@ -118,17 +118,17 @@ phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工 ### 疑难解答 ### -Here are a few troubleshooting tips during phpMyAdmin installation on CentOS. +这里有一些在CentOS上安装phpMyAdmin的过程中遇到的一些问题解决方法。 -1. When you are trying to access phpMyAdmin page in web browser, you are getting "403 Forbidding" error with: +1. 当你在浏览器里尝试连接phpMyAdmin页面的时候,你看到"403 Forbidding"错误: You don't have permission to access /phpMyAdmin on this server. -This error is happening because the default setting of phpMyAdmin blocks access from a remote IP address. To fix this error, you need to edit its configuration to allow remote access. See the above for more detail. +发生这种错误是因为phpMyAdmin默认阻止了IP地址远程连接。要修复这种错误,你需要编辑它的配置文件来允许远程连接。具体操作见上。 -2. When you access phpMyAdmin page, you are seeing "The configuration file now needs a secret passphrase (blowfish_secret)." message, and you cannot login. +2. 当你连接phpMyAdmin页面时,你看见"The configuration file now needs a secret passphrase (blowfish_secret)."信息,并且你无法登录。 -To fix this error, you need to edit /usr/share/phpmyadmin/config.inc.php to add a random blowfish password as follows, and restart httpd. +要修复这种错误,你需要编辑 /usr/share/phpmyadmin/config.inc.php 这个文件来添加一个随机的blowfish密码,然后重启httpd,如下所示。 $cfg['blowfish_secret'] = 'kd5G}d33aXDc50!'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ @@ -137,13 +137,13 @@ To fix this error, you need to edit /usr/share/phpmyadmin/config.inc.php to add $ sudo service httpd restart (CentOS 6) $ sudo systemctl restart httpd (CentOS 7) -3. When you access phpMyAdmin page, you are getting "Cannot load mcrypt extension. Please check your PHP configuration" error message. +3. 当你连接phpMyAdmin页面时,你看见"Cannot load mcrypt extension. Please check your PHP configuration"错误信息。 -To solve this error, install the following package: +要修复这种错误,要安装下面这个包: $ sudo yum install php-mcrypt -and restart httpd: +然后重启httpd: $ sudo service httpd restart (CentOS 6) $ sudo systemctl restart httpd (CentOS 7) From 3f8ce069479dc1be41573a751a7fc55177684b91 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 30 Nov 2014 21:10:06 +0800 Subject: [PATCH 027/158] PUB:20141127 How to install Docker on CentOS 7 @felixonmars --- .../20141127 How to install Docker on CentOS 7.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) rename {translated/tech => published}/20141127 How to install Docker on CentOS 7.md (82%) diff --git a/translated/tech/20141127 How to install Docker on CentOS 7.md b/published/20141127 How to install Docker on CentOS 7.md similarity index 82% rename from translated/tech/20141127 How to install Docker on CentOS 7.md rename to published/20141127 How to install Docker on CentOS 7.md index 7c06ab283b..63ccb537f5 100644 --- a/translated/tech/20141127 How to install Docker on CentOS 7.md +++ b/published/20141127 How to install Docker on CentOS 7.md @@ -1,5 +1,6 @@ 如何在 CentOS 7 上安装 Docker ================================================================================ + Docker 是一个开源工具,它可以让创建和管理 **Linux 容器**变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点。 容器和 VM(虚拟机)的主要区别是,容器提供了**基于进程的隔离**,而虚拟机提供了资源的完全隔离。虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。容器使用宿主操作系统的内核,而虚拟机使用独立的内核。 @@ -20,8 +21,15 @@ Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想 [root@localhost ~]# service docker start [root@localhost ~]# chkconfig docker on + +(LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下: -**下载官方的 CentOS 镜像到本地** + [root@localhost ~]# systemctl start docker.service + [root@localhost ~]# systemctl enable docker.service + +) + +**下载官方的 CentOS 镜像到本地** (LCTT 译注:由于 Docker 被**墙** :-< ,所以请使用 http://docker.cn  的[镜像][1],感谢 @马全一 的镜像。 ) [root@localhost ~]# docker pull centos Pulling repository centos @@ -45,7 +53,7 @@ Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想 [root@localhost ~]# docker run -i -t centos /bin/bash [root@dbf66395436d /]# -我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 “-i attach 标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。 +我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 “-i 捕获标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。 [root@cd05639b3f5c /]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) @@ -68,8 +76,9 @@ via: http://www.linuxtechi.com/install-docker-on-centos-7/ 作者:[Pradeep Kumar][a] 译者:[felixonmars](https://github.com/felixonmars) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.linuxtechi.com/author/pradeep/ +[1]:https://docker.cn/h/how-to-use-docker-official-repositories From a72c37dcaed0705132f5509fb925edf15617958e Mon Sep 17 00:00:00 2001 From: coloka Date: Sun, 30 Nov 2014 22:11:16 +0800 Subject: [PATCH 028/158] =?UTF-8?q?=E3=80=90=E7=BF=BB=E8=AF=91=E4=B8=AD?= =?UTF-8?q?=E3=80=91Four=20ways=20Linux=20is=20headed=20for=20no-downtime?= =?UTF-8?q?=20kernel=20patching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Four ways Linux is headed for no-downtime kernel patching.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md b/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md index 6484b8124b..91f666319e 100644 --- a/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md +++ b/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md @@ -1,3 +1,4 @@ +翻译中 by coloka Four ways Linux is headed for no-downtime kernel patching ================================================================================ ![Credit: Shutterstock](http://images.techhive.com/images/article/2014/10/patch_f-100526950-primary.idge.jpeg) From 1adfadc8967eb3408b1f23889fc15f3f19de55f5 Mon Sep 17 00:00:00 2001 From: joeren Date: Mon, 1 Dec 2014 08:29:25 +0800 Subject: [PATCH 029/158] Update 20141119 When Microsoft Went A-Courting.md --- sources/talk/20141119 When Microsoft Went A-Courting.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/talk/20141119 When Microsoft Went A-Courting.md b/sources/talk/20141119 When Microsoft Went A-Courting.md index 768f327b83..60d8667b2e 100644 --- a/sources/talk/20141119 When Microsoft Went A-Courting.md +++ b/sources/talk/20141119 When Microsoft Went A-Courting.md @@ -1,3 +1,4 @@ +Translating by GOLinux! When Microsoft Went A-Courting ================================================================================ ![](http://www.linuxinsider.com/ai/769827/microsoft-linux-open-source.jpg) @@ -103,4 +104,4 @@ via: http://www.linuxinsider.com/story/When-Microsoft-Went-A-Courting-81374.html [4]:http://www.ledgersmb.org/ [5]:http://linuxrants.com/ [6]:http://mrpogson.com/ -[7]:http://slashdot.org/ \ No newline at end of file +[7]:http://slashdot.org/ From db57f2d75508e89e50ca6c87492f58cd9be17cfd Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Dec 2014 10:18:06 +0800 Subject: [PATCH 030/158] PUB:20141014 How to monitor and troubleshoot a Linux server using sysdig.md @GOLinux --- ...roubleshoot a Linux server using sysdig.md | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) rename {translated/tech => published}/20141014 How to monitor and troubleshoot a Linux server using sysdig.md (80%) diff --git a/translated/tech/20141014 How to monitor and troubleshoot a Linux server using sysdig.md b/published/20141014 How to monitor and troubleshoot a Linux server using sysdig.md similarity index 80% rename from translated/tech/20141014 How to monitor and troubleshoot a Linux server using sysdig.md rename to published/20141014 How to monitor and troubleshoot a Linux server using sysdig.md index bd48d637a9..1239f33483 100644 --- a/translated/tech/20141014 How to monitor and troubleshoot a Linux server using sysdig.md +++ b/published/20141014 How to monitor and troubleshoot a Linux server using sysdig.md @@ -1,14 +1,14 @@ -Linux服务器监控和排障利器:sysdig +系统之锹sysdig:Linux服务器监控和排障利器 ================================================================================ 当你需要追踪某个进程产生和接收的系统调用时,首先浮现在你脑海中的是什么?你可能会想到strace,那么你是对的。你会使用什么样的命令行工具来监控原始网络通信呢?如果你想到了tcpdump,你又作出了一个极佳的选择。而如果你碰到必须追踪打开的文件(在Unix意义上:一切皆文件)的需求,可能你会使用lsof。 -strace、tcpdump以及lsof,确实是些伟大的工具,它们应该成为每个系统管理员工具集中的一部分,而这也正是你为什么会爱上[sysdig][1]的原因。它是一个强大的开源工具,用于系统级别的勘察和排障,它的创建者在介绍它时称之为“strace+tcpdump+lsof+上面点缀着lua樱桃的绝妙酱汁”。抛开幽默不说,sysdig的最棒特性之一在于,它不仅能分析Linux系统的“存活”状态,也能将该状态保存为转储文件以供离线检查。更重要的是,你可以自定义sysdig的行为,或者甚至通过内建的(你也可以自己编写)名为凿子的小脚本增强其功能。单独的凿子可以脚本指定的各种风格分析sysdig捕获的事件流。 +strace、tcpdump以及lsof,确实是些伟大的工具,它们应该成为每个系统管理员工具集之中的一部分,而这也正是你为什么应该爱上[sysdig][1]的原因。它是一个强大的开源工具,用于系统级别的勘察和排障,它的创建者在介绍它时称之为“strace+tcpdump+lsof+上面点缀着lua樱桃的绝妙酱汁”。抛开幽默不说,sysdig的最棒特性之一在于,它不仅能分析Linux系统的“现场”状态,也能将该状态保存为转储文件以供离线检查。更重要的是,你可以自定义sysdig的行为,或者甚至通过内建的(你也可以自己编写)名为凿子(chisel)的小脚本增强其功能。单独的凿子可以以脚本指定的各种风格分析sysdig捕获的事件流。 在本教程中,我们将探索sysdig的安装及其基本用法,在Linux上实施系统监控和排障。 ### 安装Sysdig ### -对于本教程,由于为了简便、缩短安装流程以及版本不可知,我们将选择使用官方网站提供的自动化安装过程。在自动化过程中,安装脚本会自动检测操作系统并安装必需的依赖包。 +对于本教程,由于为了简便、缩短安装流程以及版本的不可知,我们将选择使用官方网站提供的自动化安装过程。在自动化过程中,安装脚本会自动检测操作系统并安装必需的依赖包。 以root身份运行以下命令来从官方apt/yum仓库安装sysdig: @@ -20,7 +20,7 @@ strace、tcpdump以及lsof,确实是些伟大的工具,它们应该成为每 # sysdig -我们的屏幕将马上被系统上发生的所有事件填满,对于这些信息,我们不能做更多操作。要进一步处理,我们可以运行: +我们的屏幕将马上被系统上发生的所有事件填满,对于这些信息,不便于我们做更多操作。要进一步处理,我们可以运行: # sysdig -cl | less @@ -28,7 +28,6 @@ strace、tcpdump以及lsof,确实是些伟大的工具,它们应该成为每 ![](https://farm4.staticflickr.com/3938/15334678610_e5956a26e8_z.jpg) -The following categories are available by default, each of which is populated by multiple built-in chisels. 默认有以下类目可用,各个类目中分布有多个内建的凿子。 - CPU Usage:CPU使用量 @@ -43,7 +42,7 @@ The following categories are available by default, each of which is populated by 要显示指定凿子上的信息(包括详细的命令行用法),运行以下命令: - # sysdig -cl [chisel_name] + # sysdig -cl [凿子名称] 例如,我们可以检查“网络”类目下关于spy_port凿子的信息: @@ -51,14 +50,14 @@ The following categories are available by default, each of which is populated by ![](https://farm4.staticflickr.com/3945/15521424095_0365bf20c3_z.jpg) -凿子可以通过过滤器(可同时应用于存活数据和记录文件)组合,以获取更多有用的输出。 +凿子可以通过过滤器(可同时应用于实时数据和记录文件)组合,以获取更多有用的输出。 过滤器遵从“类.字段”结构。例如: - **fd.cip**:客户端IP地址。 - **evt.dir**:事件方向,可以是‘>’用于进入事件,或‘<’用于退出事件。 -完成得过滤器列表可以通过以下命令显示: +完整的过滤器列表可以通过以下命令显示: # sysdig -l @@ -68,7 +67,7 @@ The following categories are available by default, each of which is populated by 假定你的服务器发生了性能问题(如,没有回应,或者重大的回应延迟)。你可以使用瓶颈凿子来显示当前10个最慢系统调用的列表。 -使用以下命令在存活服务器上进行实时检查。“-c”标识,后跟凿子名告诉sysdig运行指定的凿子。 +使用以下命令在存活服务器上进行实时检查。“-c”标识,后跟凿子名称告诉sysdig运行指定的凿子。 # sysdig -c bottlenecks @@ -84,7 +83,7 @@ The following categories are available by default, each of which is populated by ![](https://farm6.staticflickr.com/5611/15334678670_ebbe93265e_z.jpg) -你想要关注栏#2,#3和#4,这些分别表示执行时间、进程名和PID。 +你需要关注栏#2,#3和#4,这些分别表示执行时间、进程名和PID。 ### Sysdig实例: 监控交互用户活动 ### @@ -130,7 +129,7 @@ The following categories are available by default, each of which is populated by # sysdig -s 4096 -A -c echo_fds fd.cip=192.168.0.100 -r /mnt/sysdig/debian.scap.gz proc.name=apache2 -如果你想要监控原生数据传输(二进制格式),请用“-A”替换“-X”: +如果你想要监控原生数据传输(二进制格式),请把“-A”替换为“-X”: # sysdig -s 4096 -X -c echo_fds fd.cip=192.168.0.100 -r /mnt/sysdig/debian.scap.gz proc.name=apache2 @@ -142,7 +141,7 @@ via: http://xmodulo.com/monitor-troubleshoot-linux-server-sysdig.html 作者:[Gabriel Cánepa][a] 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From c55d124ffbe9b26a2e853292ca4f6cc53a2c40ef Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Dec 2014 10:21:44 +0800 Subject: [PATCH 031/158] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20201411?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20140617 7 Improvements The Linux Desktop Needs.md | 0 ...The People Who Support Linux--Hacking on Linux Since Age 16.md | 0 published/{ => 201411}/20140729 Don't Fear The Command Line.md | 0 ...o set up a USB network printer and scanner server on Debian.md | 0 ...e 'Snapshot of Logical Volume and Restore' in LVM--Part III.md | 0 .../{ => 201411}/20140819 Build a Raspberry Pi Arcade Machine.md | 0 ...o configure a network printer and scanner on Ubuntu desktop.md | 0 ...all Ansible Configuration Management And IT Automation Tool.md | 0 published/{ => 201411}/20140828 Interesting facts about Linux.md | 0 ...sioning Volumes in Logical Volume Management (LVM)--Part IV.md | 0 .../20140901 How to install and configure ownCloud on Debian.md | 0 ...20140905 Linux TCP or IP networking--net-tools vs. iproute2.md | 0 ...140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md | 0 ...rver memory usage with Nagios Remote Plugin Executor (NRPE).md | 0 ...9 How to install Arch Linux the easy way with Evo or Lution.md | 0 ...hezzy) on Client Machines using DNSMASQ Network Boot Server.md | 0 .../20140924 7 killer open source monitoring tools.md | 0 ...ow to manage configurations in Linux with Puppet and Augeas.md | 0 ...6 How to monitor user login history on CentOS with utmpdump.md | 0 ...ow to turn your CentOS box into an OSPF router using Quagga.md | 0 .../{ => 201411}/20140928 How to use xargs command in Linux.md | 0 ...ow to configure a host intrusion detection system on CentOS.md | 0 ...08 How to speed up slow apt-get install on Debian or Ubuntu.md | 0 .../20141008 The Why and How of Ansible and Docker.md | 0 .../20141012 Simple guide to forks in github and git.md | 0 ...How to monitor and troubleshoot a Linux server using sysdig.md | 0 ...-How to change date and time from the command line on Linux.md | 0 ...nswers--How to change default location of libvirt VM images.md | 0 ...nswers--How to create and mount an XFS file system on Linux.md | 0 ...41017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md | 0 ...7 pidstat - Monitor and Find Statistics for Linux Procesess.md | 0 ...s--How to change character encoding of a text file on Linux.md | 0 ...ix fatal error--openssl or aes.h--No such file or directory.md | 0 published/{ => 201411}/20141023 6 Minesweeper Clones for Linux.md | 0 .../20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md | 0 .../20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md | 0 .../{ => 201411}/20141024 SUSE Linux--Zypper Command Examples.md | 0 published/{ => 201411}/20141027 Handy Disk Image Tools.md | 0 ...image with BitTorrent fast and safely from the command line.md | 0 .../20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md | 0 .../20141029 How to create and manage LXC containers on Ubuntu.md | 0 ...install LEMP stack nginx MariaDB or MySQL and php on CentOS.md | 0 ...rs--How to fix hda-duplex not supported in this QEMU binary.md | 0 ...h Answers--How to install REMI repository on CentOS or RHEL.md | 0 ...swers--How to open a port in the firewall on CentOS or RHEL.md | 0 ...20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md | 0 ...ebuts With New Features, Here's How To Install It In Ubuntu.md | 0 ...iaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md | 0 ...Mozilla to Launch Brand New Developer Web Browser Next Week.md | 0 ...nux FAQs with Answers--How to disable HTTP redirect in wget.md | 0 ...05 The Latest Ubuntu Images Arrive on Google Cloud Platform.md | 0 ...41106 Quick Tip Allow Services Through Firewall In openSUSE.md | 0 ... timedatectl--Control Linux System Time and Date in Systemd.md | 0 ... Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md | 0 ...2 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md | 0 .../20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md | 0 ...ice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md | 0 ...inux FAQs with Answers--How to check glibc version on Linux.md | 0 .../{ => 201411}/20141127 How to install Docker on CentOS 7.md | 0 ...ate a site-to-site IPsec VPN tunnel using Openswan in Linux.md | 0 .../How to sniff HTTP traffic from the command line on Linux.md | 0 ...-to-debug-a-C or C++ program with GDB command-line debugger.md | 0 ...e controversial project taking over a Linux distro near you.md | 0 63 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 201411}/20140617 7 Improvements The Linux Desktop Needs.md (100%) rename published/{ => 201411}/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md (100%) rename published/{ => 201411}/20140729 Don't Fear The Command Line.md (100%) rename published/{ => 201411}/20140812 How to set up a USB network printer and scanner server on Debian.md (100%) rename published/{ => 201411}/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md (100%) rename published/{ => 201411}/20140819 Build a Raspberry Pi Arcade Machine.md (100%) rename published/{ => 201411}/20140821 How to configure a network printer and scanner on Ubuntu desktop.md (100%) rename published/{ => 201411}/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md (100%) rename published/{ => 201411}/20140828 Interesting facts about Linux.md (100%) rename published/{ => 201411}/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md (100%) rename published/{ => 201411}/20140901 How to install and configure ownCloud on Debian.md (100%) rename published/{ => 201411}/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md (100%) rename published/{ => 201411}/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md (100%) rename published/{ => 201411}/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md (100%) rename published/{ => 201411}/20140919 How to install Arch Linux the easy way with Evo or Lution.md (100%) rename published/{ => 201411}/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md (100%) rename published/{ => 201411}/20140924 7 killer open source monitoring tools.md (100%) rename published/{ => 201411}/20140926 How to manage configurations in Linux with Puppet and Augeas.md (100%) rename published/{ => 201411}/20140926 How to monitor user login history on CentOS with utmpdump.md (100%) rename published/{ => 201411}/20140928 How to turn your CentOS box into an OSPF router using Quagga.md (100%) rename published/{ => 201411}/20140928 How to use xargs command in Linux.md (100%) rename published/{ => 201411}/20141008 How to configure a host intrusion detection system on CentOS.md (100%) rename published/{ => 201411}/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md (100%) rename published/{ => 201411}/20141008 The Why and How of Ansible and Docker.md (100%) rename published/{ => 201411}/20141012 Simple guide to forks in github and git.md (100%) rename published/{ => 201411}/20141014 How to monitor and troubleshoot a Linux server using sysdig.md (100%) rename published/{ => 201411}/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md (100%) rename published/{ => 201411}/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md (100%) rename published/{ => 201411}/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md (100%) rename published/{ => 201411}/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md (100%) rename published/{ => 201411}/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md (100%) rename published/{ => 201411}/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md (100%) rename published/{ => 201411}/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md (100%) rename published/{ => 201411}/20141023 6 Minesweeper Clones for Linux.md (100%) rename published/{ => 201411}/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md (100%) rename published/{ => 201411}/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md (100%) rename published/{ => 201411}/20141024 SUSE Linux--Zypper Command Examples.md (100%) rename published/{ => 201411}/20141027 Handy Disk Image Tools.md (100%) rename published/{ => 201411}/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md (100%) rename published/{ => 201411}/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md (100%) rename published/{ => 201411}/20141029 How to create and manage LXC containers on Ubuntu.md (100%) rename published/{ => 201411}/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md (100%) rename published/{ => 201411}/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md (100%) rename published/{ => 201411}/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md (100%) rename published/{ => 201411}/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md (100%) rename published/{ => 201411}/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md (100%) rename published/{ => 201411}/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md (100%) rename published/{ => 201411}/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md (100%) rename published/{ => 201411}/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md (100%) rename published/{ => 201411}/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md (100%) rename published/{ => 201411}/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md (100%) rename published/{ => 201411}/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md (100%) rename published/{ => 201411}/20141106 timedatectl--Control Linux System Time and Date in Systemd.md (100%) rename published/{ => 201411}/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md (100%) rename published/{ => 201411}/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md (100%) rename published/{ => 201411}/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md (100%) rename published/{ => 201411}/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md (100%) rename published/{ => 201411}/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md (100%) rename published/{ => 201411}/20141127 How to install Docker on CentOS 7.md (100%) rename published/{ => 201411}/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md (100%) rename published/{ => 201411}/How to sniff HTTP traffic from the command line on Linux.md (100%) rename published/{ => 201411}/How-to-debug-a-C or C++ program with GDB command-line debugger.md (100%) rename published/{ => 201411}/Meet systemd, the controversial project taking over a Linux distro near you.md (100%) diff --git a/published/20140617 7 Improvements The Linux Desktop Needs.md b/published/201411/20140617 7 Improvements The Linux Desktop Needs.md similarity index 100% rename from published/20140617 7 Improvements The Linux Desktop Needs.md rename to published/201411/20140617 7 Improvements The Linux Desktop Needs.md diff --git a/published/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md b/published/201411/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md similarity index 100% rename from published/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md rename to published/201411/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md diff --git a/published/20140729 Don't Fear The Command Line.md b/published/201411/20140729 Don't Fear The Command Line.md similarity index 100% rename from published/20140729 Don't Fear The Command Line.md rename to published/201411/20140729 Don't Fear The Command Line.md diff --git a/published/20140812 How to set up a USB network printer and scanner server on Debian.md b/published/201411/20140812 How to set up a USB network printer and scanner server on Debian.md similarity index 100% rename from published/20140812 How to set up a USB network printer and scanner server on Debian.md rename to published/201411/20140812 How to set up a USB network printer and scanner server on Debian.md diff --git a/published/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md b/published/201411/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md similarity index 100% rename from published/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md rename to published/201411/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md diff --git a/published/20140819 Build a Raspberry Pi Arcade Machine.md b/published/201411/20140819 Build a Raspberry Pi Arcade Machine.md similarity index 100% rename from published/20140819 Build a Raspberry Pi Arcade Machine.md rename to published/201411/20140819 Build a Raspberry Pi Arcade Machine.md diff --git a/published/20140821 How to configure a network printer and scanner on Ubuntu desktop.md b/published/201411/20140821 How to configure a network printer and scanner on Ubuntu desktop.md similarity index 100% rename from published/20140821 How to configure a network printer and scanner on Ubuntu desktop.md rename to published/201411/20140821 How to configure a network printer and scanner on Ubuntu desktop.md diff --git a/published/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md b/published/201411/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md similarity index 100% rename from published/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md rename to published/201411/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md diff --git a/published/20140828 Interesting facts about Linux.md b/published/201411/20140828 Interesting facts about Linux.md similarity index 100% rename from published/20140828 Interesting facts about Linux.md rename to published/201411/20140828 Interesting facts about Linux.md diff --git a/published/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md b/published/201411/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md similarity index 100% rename from published/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md rename to published/201411/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md diff --git a/published/20140901 How to install and configure ownCloud on Debian.md b/published/201411/20140901 How to install and configure ownCloud on Debian.md similarity index 100% rename from published/20140901 How to install and configure ownCloud on Debian.md rename to published/201411/20140901 How to install and configure ownCloud on Debian.md diff --git a/published/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md b/published/201411/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md similarity index 100% rename from published/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md rename to published/201411/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md diff --git a/published/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md b/published/201411/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md similarity index 100% rename from published/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md rename to published/201411/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md diff --git a/published/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md b/published/201411/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md similarity index 100% rename from published/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md rename to published/201411/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md diff --git a/published/20140919 How to install Arch Linux the easy way with Evo or Lution.md b/published/201411/20140919 How to install Arch Linux the easy way with Evo or Lution.md similarity index 100% rename from published/20140919 How to install Arch Linux the easy way with Evo or Lution.md rename to published/201411/20140919 How to install Arch Linux the easy way with Evo or Lution.md diff --git a/published/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md b/published/201411/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md similarity index 100% rename from published/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md rename to published/201411/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md diff --git a/published/20140924 7 killer open source monitoring tools.md b/published/201411/20140924 7 killer open source monitoring tools.md similarity index 100% rename from published/20140924 7 killer open source monitoring tools.md rename to published/201411/20140924 7 killer open source monitoring tools.md diff --git a/published/20140926 How to manage configurations in Linux with Puppet and Augeas.md b/published/201411/20140926 How to manage configurations in Linux with Puppet and Augeas.md similarity index 100% rename from published/20140926 How to manage configurations in Linux with Puppet and Augeas.md rename to published/201411/20140926 How to manage configurations in Linux with Puppet and Augeas.md diff --git a/published/20140926 How to monitor user login history on CentOS with utmpdump.md b/published/201411/20140926 How to monitor user login history on CentOS with utmpdump.md similarity index 100% rename from published/20140926 How to monitor user login history on CentOS with utmpdump.md rename to published/201411/20140926 How to monitor user login history on CentOS with utmpdump.md diff --git a/published/20140928 How to turn your CentOS box into an OSPF router using Quagga.md b/published/201411/20140928 How to turn your CentOS box into an OSPF router using Quagga.md similarity index 100% rename from published/20140928 How to turn your CentOS box into an OSPF router using Quagga.md rename to published/201411/20140928 How to turn your CentOS box into an OSPF router using Quagga.md diff --git a/published/20140928 How to use xargs command in Linux.md b/published/201411/20140928 How to use xargs command in Linux.md similarity index 100% rename from published/20140928 How to use xargs command in Linux.md rename to published/201411/20140928 How to use xargs command in Linux.md diff --git a/published/20141008 How to configure a host intrusion detection system on CentOS.md b/published/201411/20141008 How to configure a host intrusion detection system on CentOS.md similarity index 100% rename from published/20141008 How to configure a host intrusion detection system on CentOS.md rename to published/201411/20141008 How to configure a host intrusion detection system on CentOS.md diff --git a/published/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md b/published/201411/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md similarity index 100% rename from published/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md rename to published/201411/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md diff --git a/published/20141008 The Why and How of Ansible and Docker.md b/published/201411/20141008 The Why and How of Ansible and Docker.md similarity index 100% rename from published/20141008 The Why and How of Ansible and Docker.md rename to published/201411/20141008 The Why and How of Ansible and Docker.md diff --git a/published/20141012 Simple guide to forks in github and git.md b/published/201411/20141012 Simple guide to forks in github and git.md similarity index 100% rename from published/20141012 Simple guide to forks in github and git.md rename to published/201411/20141012 Simple guide to forks in github and git.md diff --git a/published/20141014 How to monitor and troubleshoot a Linux server using sysdig.md b/published/201411/20141014 How to monitor and troubleshoot a Linux server using sysdig.md similarity index 100% rename from published/20141014 How to monitor and troubleshoot a Linux server using sysdig.md rename to published/201411/20141014 How to monitor and troubleshoot a Linux server using sysdig.md diff --git a/published/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md b/published/201411/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md similarity index 100% rename from published/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md rename to published/201411/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md diff --git a/published/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md b/published/201411/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md similarity index 100% rename from published/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md rename to published/201411/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md diff --git a/published/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md b/published/201411/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md similarity index 100% rename from published/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md rename to published/201411/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md diff --git a/published/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md b/published/201411/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md similarity index 100% rename from published/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md rename to published/201411/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md diff --git a/published/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md b/published/201411/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md similarity index 100% rename from published/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md rename to published/201411/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md diff --git a/published/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md b/published/201411/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md similarity index 100% rename from published/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md rename to published/201411/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md diff --git a/published/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md b/published/201411/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md similarity index 100% rename from published/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md rename to published/201411/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md diff --git a/published/20141023 6 Minesweeper Clones for Linux.md b/published/201411/20141023 6 Minesweeper Clones for Linux.md similarity index 100% rename from published/20141023 6 Minesweeper Clones for Linux.md rename to published/201411/20141023 6 Minesweeper Clones for Linux.md diff --git a/published/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md b/published/201411/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md similarity index 100% rename from published/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md rename to published/201411/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md diff --git a/published/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md b/published/201411/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md similarity index 100% rename from published/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md rename to published/201411/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md diff --git a/published/20141024 SUSE Linux--Zypper Command Examples.md b/published/201411/20141024 SUSE Linux--Zypper Command Examples.md similarity index 100% rename from published/20141024 SUSE Linux--Zypper Command Examples.md rename to published/201411/20141024 SUSE Linux--Zypper Command Examples.md diff --git a/published/20141027 Handy Disk Image Tools.md b/published/201411/20141027 Handy Disk Image Tools.md similarity index 100% rename from published/20141027 Handy Disk Image Tools.md rename to published/201411/20141027 Handy Disk Image Tools.md diff --git a/published/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md b/published/201411/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md similarity index 100% rename from published/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md rename to published/201411/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md diff --git a/published/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md b/published/201411/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md similarity index 100% rename from published/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md rename to published/201411/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md diff --git a/published/20141029 How to create and manage LXC containers on Ubuntu.md b/published/201411/20141029 How to create and manage LXC containers on Ubuntu.md similarity index 100% rename from published/20141029 How to create and manage LXC containers on Ubuntu.md rename to published/201411/20141029 How to create and manage LXC containers on Ubuntu.md diff --git a/published/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md b/published/201411/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md similarity index 100% rename from published/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md rename to published/201411/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md diff --git a/published/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md b/published/201411/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md similarity index 100% rename from published/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md rename to published/201411/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md diff --git a/published/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md b/published/201411/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md similarity index 100% rename from published/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md rename to published/201411/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md diff --git a/published/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md b/published/201411/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md similarity index 100% rename from published/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md rename to published/201411/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md diff --git a/published/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md b/published/201411/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md similarity index 100% rename from published/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md rename to published/201411/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md diff --git a/published/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md b/published/201411/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md similarity index 100% rename from published/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md rename to published/201411/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md diff --git a/published/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md b/published/201411/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md similarity index 100% rename from published/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md rename to published/201411/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md diff --git a/published/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md b/published/201411/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md similarity index 100% rename from published/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md rename to published/201411/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md diff --git a/published/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md b/published/201411/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md similarity index 100% rename from published/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md rename to published/201411/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md diff --git a/published/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md b/published/201411/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md similarity index 100% rename from published/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md rename to published/201411/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md diff --git a/published/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md b/published/201411/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md similarity index 100% rename from published/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md rename to published/201411/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md diff --git a/published/20141106 timedatectl--Control Linux System Time and Date in Systemd.md b/published/201411/20141106 timedatectl--Control Linux System Time and Date in Systemd.md similarity index 100% rename from published/20141106 timedatectl--Control Linux System Time and Date in Systemd.md rename to published/201411/20141106 timedatectl--Control Linux System Time and Date in Systemd.md diff --git a/published/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md b/published/201411/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md similarity index 100% rename from published/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md rename to published/201411/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md diff --git a/published/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md b/published/201411/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md similarity index 100% rename from published/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md rename to published/201411/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md diff --git a/published/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md b/published/201411/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md similarity index 100% rename from published/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md rename to published/201411/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md diff --git a/published/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md b/published/201411/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md similarity index 100% rename from published/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md rename to published/201411/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md diff --git a/published/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md b/published/201411/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md similarity index 100% rename from published/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md rename to published/201411/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md diff --git a/published/20141127 How to install Docker on CentOS 7.md b/published/201411/20141127 How to install Docker on CentOS 7.md similarity index 100% rename from published/20141127 How to install Docker on CentOS 7.md rename to published/201411/20141127 How to install Docker on CentOS 7.md diff --git a/published/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md b/published/201411/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md similarity index 100% rename from published/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md rename to published/201411/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md diff --git a/published/How to sniff HTTP traffic from the command line on Linux.md b/published/201411/How to sniff HTTP traffic from the command line on Linux.md similarity index 100% rename from published/How to sniff HTTP traffic from the command line on Linux.md rename to published/201411/How to sniff HTTP traffic from the command line on Linux.md diff --git a/published/How-to-debug-a-C or C++ program with GDB command-line debugger.md b/published/201411/How-to-debug-a-C or C++ program with GDB command-line debugger.md similarity index 100% rename from published/How-to-debug-a-C or C++ program with GDB command-line debugger.md rename to published/201411/How-to-debug-a-C or C++ program with GDB command-line debugger.md diff --git a/published/Meet systemd, the controversial project taking over a Linux distro near you.md b/published/201411/Meet systemd, the controversial project taking over a Linux distro near you.md similarity index 100% rename from published/Meet systemd, the controversial project taking over a Linux distro near you.md rename to published/201411/Meet systemd, the controversial project taking over a Linux distro near you.md From 9cc94c8014c131e041a4ba8cff2881d677a780bd Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Dec 2014 20:14:22 +0800 Subject: [PATCH 032/158] PUB:20140826 20 Postfix Interview Questions and Answers @bazz2 --- ...Postfix Interview Questions and Answers.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) rename {translated/tech => published}/20140826 20 Postfix Interview Questions and Answers.md (55%) diff --git a/translated/tech/20140826 20 Postfix Interview Questions and Answers.md b/published/20140826 20 Postfix Interview Questions and Answers.md similarity index 55% rename from translated/tech/20140826 20 Postfix Interview Questions and Answers.md rename to published/20140826 20 Postfix Interview Questions and Answers.md index 4ae9f2ad38..a2c5f7e569 100644 --- a/translated/tech/20140826 20 Postfix Interview Questions and Answers.md +++ b/published/20140826 20 Postfix Interview Questions and Answers.md @@ -1,4 +1,4 @@ -Postfix的20个问答题 +20个关于Postfix的面试题 ================================================================================ ### 问题1:什么是 Postfix,它的默认端口是多少? ### @@ -10,19 +10,19 @@ Postfix的20个问答题 ### 问题3:什么是 MTA,它在邮件系统中扮演什么角色? ### -答:MTA 是 Mail Transfer Agent 的缩写。MTA 负责接收和发送邮件、确定发送路径和地址重写(LCTT:address rewriting,就是完善发送地址,比如将“username”这个地址重写为“username@example.com”)。本地转发就是将邮件发送给 MDA。Qmail、Postix、Sendmail 都是 MTA。 +答:MTA 是 Mail Transfer Agent (邮件传输代理)的缩写。MTA 负责接收和发送邮件、确定发送路径和地址重写(LCTT译注:address rewriting,就是完善发送地址,比如将“username”这个地址重写为“username@example.com”)。本地转发就是将邮件发送给 MDA。Qmail、Postix、Sendmail 都是 MTA。 ### 问题4:什么是 MDA? ### -答:MDA 是 Mail Delivery Agent 的缩写。MDA 这个程序用于从 MTA 获取邮件并传送至本地接受者的邮箱。MDA 通常可以过滤邮件或为邮件分类。一个 MDA 也能决定一封邮件是否需要转发到另一个邮箱地址。Procmail 就是一个 MDA。 +答:MDA 是 Mail Delivery Agent (邮件投递代理)的缩写。MDA 这个程序用于从 MTA 获取邮件并投递至本地收件人的邮箱。MDA 通常可以过滤邮件或为邮件分类。一个 MDA 也能决定一封邮件是否需要转发到另一个邮箱地址。Procmail 就是一个 MDA。 ### 问题5:什么是 MUA? ### -答:MUA 是 Mail User Agent 的缩写。MUA 是一个邮件客户端软件,可以用来写邮件、发送邮件、接收邮件。发送邮件时使用的是 MTA;接收邮件时可以从邮件存储区直接收取,也可以通过 POP/IMAP 服务器间接收取。Outlook、Thunkerbird、Evolution 都是 MUA。 +答:MUA 是 Mail User Agent (邮件用户代理)的缩写。MUA 是一个邮件客户端软件,可以用来写邮件、发送邮件、接收邮件。发送邮件时使用的是 MTA;接收邮件时可以从邮件存储区直接收取,也可以通过 POP/IMAP 服务器间接收取。Outlook、Thunkerbird、Evolution 都是 MUA。 -### 问题6:Mailserver 里 postmaster 的作用是什么? ### +### 问题6:邮件服务器里 postmaster 的作用是什么? ### -答:邮件管理者一般就是 postmaster。一个 postmaster 的责任就是保证邮件系统正常工作、更新系统配置、添加/删除邮箱帐号,以及其他。每个域中必须存在一个 postmaster 的别名(LCTT:postmaster 别名的作用就是能让你的邮件系统以外的用户往邮件系统里面的用户发邮件,当然也能接收来自系统内部用户发送出来的邮件),用于将邮件发往正确的用户。 +答:邮件管理者一般就是 postmaster。一个 postmaster 的责任就是保证邮件系统正常工作、更新系统配置、添加/删除邮箱帐号,以及其他工作。每个域中必须存在一个 postmaster 的别名(LCTT译注:postmaster 别名用于接受一些其它服务器/用户对该邮件系统的沟通邮件,如关于垃圾邮件拒收的投诉等,通常都会直接被邮件服务器的管理员所接受。一些系统错误和提示的邮件,也往往以postmaster 作为发件人),用于将邮件发往正确的用户。 ### 问题7:Postfix 都有些什么重要的进程? ### @@ -31,10 +31,10 @@ Postfix的20个问答题 - **master**:这条进程是 Postfix 邮件系统的大脑,它产生所有其他进程。 - **smtpd**:作为服务器端程序处理所有外部连进来的请求。 - **smtp**:作为客户端程序处理所有对外发起连接的请求。 -- **qmgr**:它是 Postfix 邮件系统的心脏,处理和控制邮件列表里面的所有消息。 -- **local**:这是 Postfix 自有的本地传送代理,就是它负责把邮件保存到邮箱里。 +- **qmgr**:它是 Postfix 邮件系统的心脏,处理和控制邮件队列里面的所有消息。 +- **local**:这是 Postfix 自有的本地投递代理MDA,就是它负责把邮件保存到邮箱里。 -### 问题8:Postfix 服务器的配置什么是什么? ### +### 问题8:Postfix 服务器的配置文件是什么? ### 答:有两个主要配置文件: @@ -45,9 +45,9 @@ Postfix的20个问答题 答:使用这个命令重启:`service postfix restart`;使用这个命令设为开机启动:`chkconfig postfix on` -### 问题10:怎么查看 Postfix 的邮件列表? ### +### 问题10:怎么查看 Postfix 的邮件队列? ### -答:Postfix 维护两个列表:未决邮件队列(pending mails queue)和等待邮件队列(deferred mail queue)。等待队列包含了暂时发送失败、需要重新发送的邮件,Postfix 会定期重发(默认5分钟,可自定义设置)。(LCTT:其实 Postfix 维护5个队列:输入队列,邮件进入 Postfix 系统的第一站;活动队列,qmgr 将输入队列的邮件移到活动队列;等待队列,保存暂时不能发送出去的邮件;故障队列,保存受损或无法解读的邮件;保留队列,将邮件无限期留在 Postfix 队列系统中。) +答:Postfix 维护两个队列:未决邮件队列(pending mails queue)和等待邮件队列(deferred mail queue)。等待队列包含了暂时发送失败、需要重新发送的邮件,Postfix 会定期重发(默认5分钟,可自定义设置)。(LCTT译注:其实 Postfix 维护5个队列:输入队列,邮件进入 Postfix 系统的第一站;活动队列,qmgr 将输入队列的邮件移到活动队列;等待队列,保存暂时不能发送出去的邮件;故障队列,保存受损或无法解读的邮件;保留队列,将邮件无限期留在 Postfix 队列系统中。) 列出邮件队列里面所有邮件: @@ -85,9 +85,9 @@ Postfix的20个问答题 # echo "Test mail from postfix" | mail -s "Plz ignore" info@something.com -### 问题15:什么是“开放邮件转发”? ### +### 问题15:什么是“开放邮件转发(Open Relay)”? ### -答:开放邮件转发是 SMTP 服务器的一项设定,允许因特网上其他用户能通过该服务器转发邮件,而不是直接发送到某个帐号。过去,这项功能在许多邮件服务器中都是默认开启的,但是现在已经不再流行了,因为邮件转发会导致大量垃圾邮件和病毒邮件在网络上肆虐。 +答:开放邮件转发是 SMTP 服务器的一项设定,允许因特网上任意的其他用户能通过该服务器转发邮件,而不是直接发送到某个帐号的服务器或只允许授权用户通过它来发送邮件。过去,这项功能在许多邮件服务器中都是默认开启的,但是现在已经不再流行了,因为邮件转发会导致大量垃圾邮件和病毒邮件在网络上肆虐。 ### 问题16:什么是 Postfix 上的邮件转发主机? ### @@ -95,11 +95,11 @@ Postfix的20个问答题 ### 问题17:什么是灰名单? ### -答:灰名单(LCTT:介于白名单和黑名单之间)用于拦截垃圾邮件。一个 MTA 使用灰名单时就会“暂时拒绝”未被识别的发送者发来的所有邮件。如果邮件是正当合理的,发起者会在一段时间后重新发送,然后这份邮件就能被接收。(LCTT:灰名单基于这样一个事实,就是大多数的垃圾邮件服务器和僵尸网络的邮件只发送一次,而会忽略要求它们在一定的时间间隔后再次发送的请求。) +答:灰名单(LCTT译注:介于白名单和黑名单之间)是一种用于拦截垃圾邮件的技术。一个 MTA 使用灰名单时就会“暂时拒绝”未被识别的发送者发来的所有邮件。如果邮件是正当合理的,发起者会在一段时间后重新发送,然后这份邮件就能被接收。(LCTT译注:灰名单基于这样一个事实,就是大多数的垃圾邮件服务器和僵尸网络的邮件只发送一次,而会忽略要求它们在一定的时间间隔后再次发送的请求。) ### 问题18:邮件系统中 SPF 记录有什么重要作用? ### -答:SPF 是 Sender Policy Framework 的缩写,用于帮助域的拥有者确认发送方是否来自他们的域,目的是其他邮件系统能够保证发送方在发送邮件时是否经过授权 —— 这种方法可以减小遇到邮件地址欺骗、网络钓鱼和垃圾邮件的风险。 +答:SPF 是 Sender Policy Framework 的缩写,用于帮助邮件域的拥有者确认发送方是否来自他们的域,目的是其他邮件系统能够保证发送方在发送邮件时来自经过授权的来源 —— 这种方法可以减小遇到邮件地址欺骗、网络钓鱼和垃圾邮件的风险。 ### 问题19:邮件系统中 DKIM 有什么用处? ### @@ -115,7 +115,7 @@ via: http://www.linuxtechi.com/postfix-interview-questions-answers/ 作者:[Pradeep Kumar][a] 译者:[bazz2](https://github.com/bazz2) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 487ac45d4b30348fc68aea1b7f78e53a5c522a91 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Dec 2014 20:38:20 +0800 Subject: [PATCH 033/158] PUB:20140818 What are useful CLI tools for Linux system admins @zpl1025 --- ...seful CLI tools for Linux system admins.md | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) rename {translated/tech => published}/20140818 What are useful CLI tools for Linux system admins.md (91%) diff --git a/translated/tech/20140818 What are useful CLI tools for Linux system admins.md b/published/20140818 What are useful CLI tools for Linux system admins.md similarity index 91% rename from translated/tech/20140818 What are useful CLI tools for Linux system admins.md rename to published/20140818 What are useful CLI tools for Linux system admins.md index fb87e04967..58703a178d 100644 --- a/translated/tech/20140818 What are useful CLI tools for Linux system admins.md +++ b/published/20140818 What are useful CLI tools for Linux system admins.md @@ -1,7 +1,9 @@ -对Linux系统管理员有帮助的命令行工具 +Linux系统管理员的命令行工具箱目录 ================================================================================ 系统管理员(sysadmins)负责日常维护生产系统和服务。其中一个关键任务就是保证功能性服务能24小时工作。为了这个,他们得很小心地计划备份方式,灾难管理策略,定时维护,安全审查,等等。和任意其他管理一样,系统管理员也有他们的必备工具。在正确的时间正确的情况下使用合适的工具,可以帮助维护操作系统的健壮,达到最小的服务中断时间和最大的运行时间。 +![](https://farm6.staticflickr.com/5563/14853747084_e14cf18e8f_z.jpg) + 这篇文章会介绍一些系统管理员日常活动中最常用和有效的命令行工具。如果你想推荐其他没在这里列出来的好用的工具,别忘了在评论区里分享一下。 ### 网络工具 ### @@ -14,7 +16,7 @@ 4. **mtr**:traceroute的一个变种,能根据运行时统计数据整理出每一跳的包丢失/抖动。用来评估路由路径延时很不错。 -5. **[netcat][2]/[socat][3]**:TCP/IP网络里的瑞士军刀,可以读/写TCP/UDP协议字节流。用来调试防火墙策略和服务可用性很不错。 +5. **[netcat][2]/[socat][3]**:TCP/IP网络里的瑞士军刀,可以读/写 TCP/UDP 协议字节流。用来调试防火墙策略和服务可用性很不错。 6. **dig**:DNS调试工具,可以生成正向查询,反向查询,搜索域名服务器,检查CNAME,MX和其他DNS记录。可以在侦错的时候查询特定的DNS服务器。 @@ -68,7 +70,7 @@ 29. **[parted][15]**:另一个磁盘分区编辑器,支持超过2TB的磁盘的GPT(GUID分区表)格式。gparted是parted的一个前端GTK+图形界面。 -30. **df**:用来查看不同分区或文件路径的已用/可用存储空间和挂载点。存在一个用户友好的变种dfc。 +30. **df**:用来查看不同分区或文件路径的已用/可用存储空间和挂载点。还有一个更易用的变种dfc。 31. **du**:用来查看不同文件和目录的当前磁盘占用情况(例如,du -sh *)。 @@ -86,7 +88,7 @@ 37. **tail**:用来查看一个(增长中的)日志文件的尾部。有几个变种,包括multitail(多窗口查看)和[ztail][16](支持inotify和正则表达式过滤以及颜色)。 -38. **logrotate**:一个命令行工具,可以在根据设定的时间段拆分、压缩并邮寄旧的/大的日志文件。用来管理可能产生大量日志文件的繁忙主机很有用。 +38. **logrotate**:一个命令行工具,可以在根据设定的时间段拆分、压缩并通过邮件发送旧的/大的日志文件。用来管理可能产生大量日志文件的繁忙主机很有用。 39. **grep/egrep**:可以通过特定的模式或正则表达式过滤日志内容。变种包括用户更友好的ack和速度更快的ag。 @@ -96,7 +98,7 @@ ### 备份工具 ### -42. **[rsync][17]**:一个快速的单向增量备份和镜像工具。常用于复制一个数据仓库到线下存储,可以选择通过SSH或stunnel的加密连接。 +42. **[rsync][17]**:一个快速的单向增量备份和镜像工具(LCTT 译注:rsync 应是双向的)。常用于复制一个数据仓库到线下存储,可以选择通过SSH或stunnel的加密连接。 43. **[rdiff-backup][18]**:另一个有效利用带宽的增量备份工具。管理两个连续快照之间的差分。 @@ -104,13 +106,13 @@ ### 性能监视工具 ### -45. **top**:一个命令行的进程查看程序。可以监视系统负载、进程状态、CPU和内存占用。有一个更用户友好的变种htop。 +45. **top**:一个命令行的进程查看程序。可以监视系统负载、进程状态、CPU和内存占用。有一个更易用的变种htop。 -46. **ps**:显示系统所有运行中进程的一个快照。输出可以定制成显示PID、PPID、用户、负载、内存、积累的用户/系统时间、启动时间、以及更多。有一个变种是pstree可以用树结构显示进程。 +46. **ps**:显示系统所有运行中进程的一个快照。输出可以定制成显示PID、PPID、用户、负载、内存、积累的用户/系统时间、启动时间、以及更多。有一个变种pstree可以用树结构显示进程。 47. **[nethogs][19]**:一个带宽监视工具,按进程来分组显示活动网络连接,实时汇报每个进程占用的(上传/下载)带宽。 -48. **ngxtop**:一个网页服务器访问日志解析和监视工具,界面是受top命令启发。它可以实时汇报整理过的页面请求列表,包括频率、大小、HTTP返回值、IP地址,等等。 +48. **ngxtop**:一个网页服务器访问日志解析和监视工具,界面受到了top命令启发。它可以实时汇报整理过的页面请求列表,包括频率、大小、HTTP返回值、IP地址,等等。 49. **vmstat**:一个简单的命令行工具,可以显示多个实时系统特征,例如进程数、剩余内存、分页状态、CPU占用、块设备I/O活动、中断/上下文切换统计、等等。 @@ -138,9 +140,9 @@ 59. **dpkg**:一个用来手动安装.deb包的命令行工具。强烈建议尽可能的使用apt。 -60. **yum**:基于红帽的系统的事实上的自动包管理工具,比如RHEL、CentOS或Fedora。另一个救生圈。 +60. **yum**:用于基于红帽的系统的自动包管理工具,比如RHEL、CentOS或Fedora。这是另一个救生圈! -61. **rpm**:通常我都是rpmyum一下。有很多有用的参数,比如-q、-f、-l可以分别用来查询、指定文件和路径。 +61. **rpm**:通常我都是使用 rpm 来配合 yum 使用。有很多有用的参数,比如-q、-f、-l可以分别用来查询、指定文件和路径。 ### 硬件工具 ### @@ -158,7 +160,7 @@ via: http://xmodulo.com/2014/08/useful-cli-tools-linux-system-admins.html 作者:[Sarmed Rahman][a] 译者:[zpl1025](https://github.com/zpl1025) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From c40f1964980fc954fbb28e1567a492a836c34c7e Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Dec 2014 21:09:23 +0800 Subject: [PATCH 034/158] PUB:20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md @ZTinoZ --- ...ke Disk Full Or Can't Write to the Disk.md | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) rename {translated/tech => published}/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md (89%) diff --git a/translated/tech/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md b/published/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md similarity index 89% rename from translated/tech/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md rename to published/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md index 6e8784d5d8..f80104ba0b 100644 --- a/translated/tech/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md +++ b/published/20141030 8 Tips to Solve Linux and Unix Systems Hard Disk Problmes Like Disk Full Or Can't Write to the Disk.md @@ -1,4 +1,4 @@ -磁盘写满或磁盘不可写?解决Linux和UNIX系统这些硬盘问题的8个小贴士 +解决八种Linux硬盘问题的技巧 ================================================================================ 不能在Linux或者类UNIX系统的硬盘上写入数据?想解决服务器上磁盘损坏的问题吗?想知道你为什么总是在屏幕上看到“磁盘已满”的字眼吗?想学习处理这些问题的办法吗?试试一下这8个解决Linux及UNIX服务器硬盘问题的小贴士吧。 @@ -95,6 +95,8 @@ # mount -o remount,rw /ftpusers/tmp +(LCTT 译注:如果硬盘由于硬件故障而 fallback 到只读模式,建议不要强制变回读写模式,而是赶快替换硬盘) + 另外,我是这样[用rw模式重新挂载FreeBSD 9.x服务器的根目录][7]的: # mount -o rw /dev/ad0s1a / @@ -111,11 +113,13 @@ Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda8 6250496 11568 6238928 1% /ftpusers -所以 /ftpusers 下有总计62,50,496KB大小的索引节点但是只有11,568KB被使用。你可以在 /ftpusers 位置下另外创建62,38,928KB大小的文件。如果你的索引节点100%被使用了,试试看以下的选项: +如上 /ftpusers 下有总计62,50,496KB大小的索引节点但是只有11,568KB被使用。你可以在 /ftpusers 位置下另外创建62,38,928KB大小的文件。如果你的索引节点100%被使用了,试试看以下的选项: - 找出不想要的文件并删除它,或者把它移动到其它服务器上。 - 找出不想要的大文件并删除它,或者把它移动到其它服务器上。 +(LCTT 译注:如果一个分区存储了太多的小文件,会出现 inode 用完而存储扇区还有空闲的情况,这种情况下要么清除小文件或在不需要独立访问的情况下将它们打包成一个大文件;要么将数据保存好之后重新分区,并设置分区的 -t news 属性,增加 inode 分配) + ### #4 - 我的硬盘驱动器宕了吗? ### [日志文件中的输入/输出错误(例如 /var/log/messages)][9]说明硬盘出了一些问题并且可能已经失效,你可以用smartctl命令来查看硬盘的错误,这是一个在类UNIX系统下控制和监控硬盘状态的一个命令。语法如下: @@ -130,15 +134,16 @@ 图 01: Gnome磁盘工具(Applications > System Tools > Disk Utility) -> **注意**: 不要对SMART工具期望太高,它在某些状况下无法工作,我们要定期做备份。 +> **注意**: 不要对S.M.A.R.T.工具期望太高,它在某些状况下无法工作,我们要定期做备份。 ### #5 - 我的硬盘驱动器和服务器是不是太热了? ### -高温会引起服务器低效,所以你需要把服务器和磁盘维持在一个平稳适当的温度,高温甚至能导致服务器宕机或损坏文件系统和磁盘。[用hddtemp或smartctl功能,通过从支持此特点的驱动上的SMART技术来读取数据的方式,从而查出你的Linux或基于UNIX系统上的硬件温度。][11]只有现代硬驱动器有温度传感器。hddtemp功能也支持从SCSI驱动器读取SMART信息。hddtemp能作为一个简单的命令行工具或守护程序来从所有服务器中获取信息: +高温会引起服务器低效,所以你需要把服务器和磁盘维持在一个平稳适当的温度,高温甚至能导致服务器宕机或损坏文件系统和磁盘。[用hddtemp或smartctl功能,通过从支持S.M.A.R.T.功能的硬盘上读取数据的方式,从而查出你的Linux或基于UNIX系统上的硬盘温度][11]。只有现代硬驱动器有温度传感器。hddtemp功能也支持从SCSI驱动器读取S.M.A.R.T.信息。hddtemp能作为一个简单的命令行工具或守护程序来从所有服务器中获取信息: + hddtemp /dev/DISK hddtemp /dev/sg0 -部分输出内容: +部分输出内容如下: [![](http://s0.cyberciti.org/uploads/cms/2014/10/hddtemp-on-rhel-300x85.jpg)][12] @@ -150,7 +155,7 @@ #### 我怎么获取CPU的温度 #### -你可以使用Linux硬件监控工具例如像[用基于Linux系统的lm_sensor功能来获取CPU温度][13]: +你可以使用Linux硬件监控工具,例如像[用基于Linux系统的lm_sensor功能来获取CPU温度][13]: sensors @@ -162,7 +167,7 @@ Debian服务器的部分输出内容: ### #6 - 处理损坏的文件系统 ### -服务器上的文件系统可能会因为硬件重启或一些其它的错误比如坏区而损坏。你可以[用fsck命令来修复损坏的文件系统][15]: +服务器上的文件系统可能会因为硬件重启或一些其它的错误比如坏的扇区而损坏。你可以[用fsck命令来修复损坏的文件系统][15]: umount /ftpusers fsck -y /dev/sda8 @@ -251,7 +256,7 @@ via: http://www.cyberciti.biz/datacenter/linux-unix-bsd-osx-cannot-write-to-hard 作者:[nixCraft][a] 译者:[ZTinoZ](https://github.com/ZTinoZ) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From d08dc0b89957905d29df0cd47a7694b732d0c88e Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Dec 2014 21:09:33 +0800 Subject: [PATCH 035/158] =?UTF-8?q?=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...19 10 SCP Commands to Transfer Files or Folders in Linux.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 60309aca84..1042c67783 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,4 +1,3 @@ -(translating by runningwater) 10 SCP Commands to Transfer Files/Folders in Linux ================================================================================ Linux administrator should be familiar with **CLI** environment. Since **GUI** mode in Linux servers is not a common to be installed. **SSH** may the most popular protocol to enable Linux administrator to manage the servers via remote in secure way. Built-in with **SSH** command there is **SCP** command. **SCP** is used to copy file(s) between servers in secure way. @@ -231,7 +230,7 @@ That’s all about **SCP**. You can see **man pages** of **SCP** for more detail via: http://www.tecmint.com/scp-commands-examples/ 作者:[Pungki Arianto][a] -译者:[runningwater](https://github.com/runningwater) +译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From ed5987a7af9acf8d0dc63db9f175c47452adc1a1 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Mon, 1 Dec 2014 21:19:03 +0800 Subject: [PATCH 036/158] Translating by ZTinoZ --- ...19 10 SCP Commands to Transfer Files or Folders in Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 1042c67783..8a94352768 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,3 +1,4 @@ +Translating by ZTinoZ 10 SCP Commands to Transfer Files/Folders in Linux ================================================================================ Linux administrator should be familiar with **CLI** environment. Since **GUI** mode in Linux servers is not a common to be installed. **SSH** may the most popular protocol to enable Linux administrator to manage the servers via remote in secure way. Built-in with **SSH** command there is **SCP** command. **SCP** is used to copy file(s) between servers in secure way. @@ -235,4 +236,4 @@ via: http://www.tecmint.com/scp-commands-examples/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[a]:http://www.tecmint.com/author/pungkiarianto/ \ No newline at end of file +[a]:http://www.tecmint.com/author/pungkiarianto/ From ac5dcd7026784f873cfcf16ea2db27e68e411796 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Mon, 1 Dec 2014 22:12:32 +0800 Subject: [PATCH 037/158] Translating by ZTinoZ --- ...19 10 SCP Commands to Transfer Files or Folders in Linux.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 8a94352768..d30ebf59bf 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,5 +1,4 @@ -Translating by ZTinoZ -10 SCP Commands to Transfer Files/Folders in Linux +Linux中的十条SCP传输命令 ================================================================================ Linux administrator should be familiar with **CLI** environment. Since **GUI** mode in Linux servers is not a common to be installed. **SSH** may the most popular protocol to enable Linux administrator to manage the servers via remote in secure way. Built-in with **SSH** command there is **SCP** command. **SCP** is used to copy file(s) between servers in secure way. From ac79d9b0ffae29930eb5f4b79c613a340a6a479c Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Mon, 1 Dec 2014 23:34:00 +0800 Subject: [PATCH 038/158] [Translating] How To Use Emoji Anywhere With Twitter's Open Source Library --- ...To Use Emoji Anywhere With Twitter's Open Source Library.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141114 How To Use Emoji Anywhere With Twitter's Open Source Library.md b/sources/tech/20141114 How To Use Emoji Anywhere With Twitter's Open Source Library.md index eb028133b8..142db90012 100644 --- a/sources/tech/20141114 How To Use Emoji Anywhere With Twitter's Open Source Library.md +++ b/sources/tech/20141114 How To Use Emoji Anywhere With Twitter's Open Source Library.md @@ -1,3 +1,4 @@ +[felixonmars translating...] How To Use Emoji Anywhere With Twitter's Open Source Library ================================================================================ > Embed them in webpages and other projects via GitHub. @@ -88,4 +89,4 @@ via: http://readwrite.com/2014/11/12/how-to-use-emoji-in-the-browser-window [7]:http://ellekasai.github.io/twemoji-awesome/ [8]:https://github.com/ellekasai/twemoji-awesome/blob/gh-pages/twemoji-awesome.css [9]:https://github.com/laurenorsini/Emoji-Everywhere -[10]:http://getemoji.com/ \ No newline at end of file +[10]:http://getemoji.com/ From c63694f8a1f390e81033aa2764a12413f15a19f1 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Tue, 2 Dec 2014 08:41:59 +0800 Subject: [PATCH 039/158] [Translated] 20141119 When Microsoft Went A-Courting.md --- ...20141119 When Microsoft Went A-Courting.md | 107 ------------------ ...20141119 When Microsoft Went A-Courting.md | 106 +++++++++++++++++ 2 files changed, 106 insertions(+), 107 deletions(-) delete mode 100644 sources/talk/20141119 When Microsoft Went A-Courting.md create mode 100644 translated/talk/20141119 When Microsoft Went A-Courting.md diff --git a/sources/talk/20141119 When Microsoft Went A-Courting.md b/sources/talk/20141119 When Microsoft Went A-Courting.md deleted file mode 100644 index 60d8667b2e..0000000000 --- a/sources/talk/20141119 When Microsoft Went A-Courting.md +++ /dev/null @@ -1,107 +0,0 @@ -Translating by GOLinux! -When Microsoft Went A-Courting -================================================================================ -![](http://www.linuxinsider.com/ai/769827/microsoft-linux-open-source.jpg) - -**Open-sourcing .Net "doesn't have a thing to do with Linux -- it has to do with SaaS and having a CEO that isn't a whackadoo living in the 90s," said SoylentNews blogger hairyfeet. "Nadella is smart and realizes the value of a programming language is not patents or OS exclusivity but in services and support for the language. ... The more platforms the language can be used on, the better."** - -Fans of free and open source software perhaps may be excused if they've felt a bit confused over the past few days. Dizziness, headaches and vertigo also have been common. - -What strange new ailment is this, you might ask? - -Well, it's no ailment, Linux Girl is glad to report. That, however, doesn't mean it's any simpler to remedy. - -The cause, it turns out, is none other than the news that Microsoft is open sourcing .Net and also expanding it to run on Linux and Mac OS. - -Yes, you heard that right: Steve Ballmer once may have [called Linux a "cancer,"][1] but today Redmond has a newfound "[love" for Linux][2] that can't be contained! - -It's making Microsoft behave in strange new ways -- and it's also driving FOSS fans to the blogosphere's seedy Broken Windows Lounge in greater numbers than ever. - -Can tequila help make sense of it all? That's one of many questions now being investigated. - -### 'A Chance to Thrive' ### - -"This is big news, and somewhat overdue," Chris Travers, a [blogger][3] who works on the [LedgerSMB][4] project, told Linux Girl. - -![](http://www.linuxinsider.com/images/article_images/linuxgirl_bg_pinkswirl_150x245.jpg) - -"We live in a world where new programming languages which are open sourced thrive even without being backed by big businesses, and closed source programming languages only survive with help from big businesses," Travers said. "Bing closed source killed REBOL 2.x," for example. - -"This move has clearly been in the works for some time -- a large company like Microsoft does not open source something of this complexity overnight -- and I think to some extent Microsoft must have seen the writing on the wall when Sun open sourced the OpenJDK," he suggested. - -Meanwhile, "this gives languages like C# and F# a chance to thrive well beyond their current markets," Travers said. - -### 'I Still Don't Trust You' ### - -"I want to be the first to say, 'Thank you Microsoft!'" [Linux Rants][5] blogger Mike Stone began. "We really appreciate you open sourcing .Net and taking it cross platform. It's a step in the right direction! - -"I still don't trust you, though," he added. - -"I love that Microsoft is considering open source, but I have seen no movement towards the GPL," Stone told Linux Girl. "This strikes me as an opportunity to get their software on multiple platforms but tie the developers down to Microsoft." - -Moreover, there are no guarantees that Microsoft will keep .Net open source over the years, he pointed out. - -"That means that Microsoft could withdraw and leave all applications developed with the intention of being cross platform legally Windows-only," he warned. "I won't put any faith in Microsoft's commitment, and I'll always be looking for their sudden but inevitable betrayal." - -### 'Watch for Greeks Bearing Gifts' ### - -The move reeks of desperation, Google+ blogger Alessandro Ebersol suggested. - -"They arrived too late," Ebersol said. "Java already ate the best dishes, and while .Net was a Windows/Microsoft-only thing, Java was everywhere. Good luck trying to be adopted." - -Besides, "I would only believe it if it was GPL'ed to protect the creators of the code," he added. "A fragile MIT license can be overturned at anytime." - -In any case, "with all the hatred the company generated towards the FLOSS community, they burned the bridge beyond repair," Ebersol concluded. "The bottom line: Timeo Danaos et dona ferentes -- Watch carefully for Greeks bearing gifts..." - -### 'Like a Cat Loves Mice' ### - -Microsoft loves Linux "like a cat loves mice," blogger [Robert Pogson][6] quipped. "Sure, they will play with */Linux, but they are not our friends." - -What's happened is that the FOSS and Linux communities have defeated "all the barriers to entry that M$ placed in the way of competition since M$ first made a deal with IBM to supply an OS," Pogson said. "You bet M$ is trying desperately to 'make friends' with 'the enemy' now that their position is overrun. - -"It's all good," he added. "M$ can still cause a lot of trouble by spending $billions foolishly or they can become a normal business and compete on price/performance. That's not 'love' -- that's accepting reality." - -### Adapt or Die ### - -The problem for Microsoft is that "open source development packages are starting to get good enough for developers," offered consultant and [Slashdot][7] blogger Gerhard Mack. - -"At my last job, most of the programmers wanted Eclipse rather than Visual Studio, even though the client software was Windows-only, and I had a slowly increasing number move their development to Linux while using Windows for testing," Mack recalled. - -"Very few people want to be locked into just one platform, so more of the mindshare is moving away from single-platform languages," he added. "Microsoft must now choose between adapting or dying." - -### No Warm Fuzzies Here ### - -art of what's driving the move is also that "the various cloud implementations are very heavily Linux, and even on Microsoft's own Azure cloud, Linux is a strong presence," Google+ blogger Kevin O'Brien suggested. - -"Nadella has made it clear he is taking Microsoft in a cloud direction, so he almost has to do this to even stay in the game," O'Brien asserted. - -That said, however, "I don't expect Microsoft to be cuddly and nice -- they will do whatever they think is in their best corporate interest," he said. - -In fact, "it doesn't have a thing to do with Linux -- it has to do with SaaS and having a CEO that isn't a whackadoo living in the 90s," SoylentNews blogger hairyfeet told Linux Girl. - -"Nadella is smart and realizes the value of a programming language is not patents or OS exclusivity but in services and support for the language," hairyfeet explained. "With that in mind, the more platforms the language can be used on, the better, as that adds value to the language and will give you that many more you can sell services to." - -### The Fall of an Empire ### - -ll in all, if anything is clear, it's that "Micro$oft's empire is tumbling down," said Google+ blogger Gonzalo Velasco C. - -"I don't know or care about why they are lying and saying they love Linux," he added. "I just hope the GNU/Linux community is smarter than recently (cough, Systemd, cough) and refuses Micro$oft .Net and other infections. GNU/Linux must use only FLOSS tools." - --------------------------------------------------------------------------------- - -via: http://www.linuxinsider.com/story/When-Microsoft-Went-A-Courting-81374.html - -作者:[Katherine Noyes][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://twitter.com/noyesk -[1]:http://www.linuxinsider.com/perl/story/35697.html -[2]:http://www.theregister.co.uk/2014/10/20/microsoft_cloud_event/ -[3]:http://ledgersmbdev.blogspot.com/ -[4]:http://www.ledgersmb.org/ -[5]:http://linuxrants.com/ -[6]:http://mrpogson.com/ -[7]:http://slashdot.org/ diff --git a/translated/talk/20141119 When Microsoft Went A-Courting.md b/translated/talk/20141119 When Microsoft Went A-Courting.md new file mode 100644 index 0000000000..df64dbb661 --- /dev/null +++ b/translated/talk/20141119 When Microsoft Went A-Courting.md @@ -0,0 +1,106 @@ +当微软离去时 +================================================================================ +![](http://www.linuxinsider.com/ai/769827/microsoft-linux-open-source.jpg) + +**开源.Net“这与Linux无关——它与SaaS相关,也和一位并不偏执和狂热的90后CEO相关,”SoylentNews博主hairyfeet道,“纳德拉很明智,而且意识到了编程语言的价值不在于专利或OS排他性,而在于服务和对语言的支持……越多的平台使用该语言,它就会越好。”** + +如果自由和开源软件迷们在过去的几天里感到有些许困惑的话,他们也许可能会被原谅的,头昏、头痛以及头晕也会显得司空见惯了。 + +你或许会问,这又是什么新的病症? + +好吧,Linux女孩很高兴告诉你,它不是什么病症。那个,然而它并不意味着它很容易治愈。 + +原因无他,而是微软开源.Net并让它可以在Linux或Mac OS上运行的消息。 + +是的,你没听错:史蒂夫·鲍尔默曾经可能[称Linux为“癌症”][1],但今天雷蒙德有个新发现,曾经不被包容的[对Linux的“爱”][2]! + +它让微软表现出新的奇怪方式——它也驱使FOSS迷们聚拢到博客圈的破败的Broken Windows Lounge,数量更是空前。 + +龙舌兰可以赋予它全部的意义么?这是现在众多调查的问题之一。 + +### ‘繁荣的机遇’ ### + +“这是个重大的消息,虽然有点过时了,”克里斯·特拉弗斯,一位[博主][3],他为[LedgerSMB][4]项目工作,告诉Linux女孩。 + +![](http://www.linuxinsider.com/images/article_images/linuxgirl_bg_pinkswirl_150x245.jpg) + +“我们生活的世界中,即使没有大的商业公司支持,新的开源编程语言也很兴旺,而关闭的开源编程语言也仅仅在大的商业公司的帮助下摆脱了困境,”特拉弗斯说,“例如,Bing闭源杀死了REBOL 2.x。” + +“这项运动很明显酝酿已久——一家像微软这样庞大的公司没有突然开源这种复杂的东西——而我想,在某种程度上,微软一定看到了Sun开源OpenJDK时的不祥之兆了。”他暗示道。 + +同时,“这也为诸如C#和F#这样的语言提供了比当前市场更为兴盛的机会,”特拉弗斯说。 + +### ‘我仍然不相信你’ ### + +“我首先想说,‘谢谢你,微软!’”[Linux Rants][5]博主麦克·斯通开篇说,“我们真的很欣赏你开源.Net并推动它跨平台,这是迈向正确方向的一步!” + +“然而,我仍然不相信你。”他补充道。 + +“我很喜欢微软在考虑开源,但是我没有见到它向GPL迈进,”斯通告诉Linux女孩,“这让我想到了这么个可能性,微软提供了多个平台的软件供你使用,但却会把开发者和它捆绑起来。” + +此外,微软不会作出任何保证,保证.Net常年开源,他指出。 + +“这意味着微软可以退出,并让开发出来的应用程序成为跨平台的Windows专有软件,”他警告道,“我不会相信微软的承诺,我会翘首期盼微软他们的突然而无可避免的背叛。” + +### ‘留心不怀好意的礼物’ ### + +该运动明显带有失望的气息,Google+博主阿里桑德罗·埃伯索尔暗示道。 + +“他们来得太晚了,”埃伯索尔说,“Java已经先下手为强了,当.Net还是Windows/Microsoft专有产品时,Java已经遍布四处了。试着让人采用,希望好运吧。” + +此外,“我只相信它被打上GPL烙印来保护代码创建者,”他补充道,“一个脆弱的MIT许可证任何时候都是逆天而行的。” + +无论如何,“在该公司产生的对FLOSS社区的全部的敌意下,他们会过河拆桥,”埃伯索尔总结道,“底线是:送礼的希腊人也很可畏——仔细留心希腊人不怀好意的礼物……” + +### ‘就像猫爱上老鼠’ ### + +微软爱上Linux“就像猫爱上老鼠,”博主[罗伯特·伯格森][6]打趣道,“当然,他们会玩玩*/Linux,但是他们不是我们的朋友。” + +所发生的事情是,FOSS和LInux社区已经击溃了“MS自从和IBM达成提供OS的交易后放置在竞争道路入口上的所有障碍,”伯格森说,“MS肯定是在绝望地试着和‘敌人’‘做朋友’,因为它们的位置被侵占了。” + +“一切都会好的,”他补充道,“MS仍然可以通过愚蠢地花大量的金钱来制造麻烦,或者他们可以进行常规商业运作并在价格/性能上开展竞争。那不是‘爱’——那是接受现实。” + +### 适应或者灭亡 ### + +对于微软而言,问题在于“开源开发包对于开发者而言开始变得足够好用了,”参团顾问和[Slashdot][7]博主格哈德·麦克。 + +“在我的最后一份职业中,大多数的程序员想要Eclipse,而不是Visual Studio,即使客户端软件是Windows专用的。用Windows做测试的开发者们迁移到Linux的数量在缓慢增长。”麦克回忆道。 + +“很要有人想被锁进一个平台中,因此更多的精神占有率正在从单一平台语言中逃离,”他补充道,“微软现在必须在适应与灭亡中作出选择。” + +### 这里没有温暖的毛球 ### + +驱动此项运动的策略也在于“各种云大量地在Linux上部署,即便在微软自己的Azure云,Linux也被大量部署,”Google+博主凯文·奥布莱恩暗示道。 + +“纳德拉清楚地指出,他正将微软向云方向推进,因为他几乎不得不如此,以期继续将游戏玩下去。”奥布莱恩坚信。 + +那就是说,不管怎样,“我都不期待微软变得可爱又善意——他们将做所有他们认为能获得最佳公司利益的事情。”他说。 + +事实上,“根本没Linux什么事——它只和SaaS相关,也和一位并不偏执和狂热的90后CEO相关,”SoylentNews博主hairyfeet告诉Linux女孩。 + +“纳德拉很明智,而且意识到了编程语言的价值不在于专利或OS排他性,而在于服务和对语言的支持,”hairyfeet解释道,“考虑到这一点,越多的平台使用该语言,它就会越好,因为那会增加该语言的价值,并且为你的服务带来更多客户。” + +### 帝国的没落 ### + +总得来说,一切都很明了,那就是“微软帝国正在摇摇欲坠,”Google+博主贡萨洛·维拉斯科 C说。 + +“我不知道,或者不关心他们为什么会说谎,说他们热爱Linux,”他补充道,“我只希望GNU/Linux社区变得比现今更聪明些(咳嗽,Systemd,咳嗽),拒绝微软.Net和其它产生影响的东西。GNU/Linux必须只用FLOSS工具。” + +-------------------------------------------------------------------------------- + +via: http://www.linuxinsider.com/story/When-Microsoft-Went-A-Courting-81374.html + +作者:[Katherine Noyes][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://twitter.com/noyesk +[1]:http://www.linuxinsider.com/perl/story/35697.html +[2]:http://www.theregister.co.uk/2014/10/20/microsoft_cloud_event/ +[3]:http://ledgersmbdev.blogspot.com/ +[4]:http://www.ledgersmb.org/ +[5]:http://linuxrants.com/ +[6]:http://mrpogson.com/ +[7]:http://slashdot.org/ From b7d68f825989f68a1b83d4b43f0880af1d0345f8 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Dec 2014 11:01:30 +0800 Subject: [PATCH 040/158] PUB:20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu @DoubleShit --- ...ersions of several games and applications in Ubuntu.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename {translated/share => published}/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md (91%) diff --git a/translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md b/published/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md similarity index 91% rename from translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md rename to published/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md index 4f0f8f19f1..51e988fb3c 100644 --- a/translated/share/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md +++ b/published/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md @@ -1,10 +1,10 @@ -UbuTricks - 在ubuntu上安装几个最新游戏和应用的脚本 +使用 UbuTricks 在ubuntu上安装最新游戏和应用 === UbuTricks是一个可以帮助你在ubuntu上安装几个最新版本的游戏和应用的程序。 UbuTricks是一个有简单界面,基于Zenity的图形脚本。虽然早期开发中,它的目标是通过简单的界面操作来安装Ubuntu14.04 及以后发行版上应用程序的更新。 -应用程序会自动下载安装。一些更新可能会需要ppa。其它的将会通过编译源代码安装。编译过程可能会需要一些时间,当从ppa或者deb文件安装应该会快一点,取决于你的下载速度。 +应用程序会自动下载安装。一些更新可能会需要ppa,其它的将会通过编译源代码安装。编译过程可能会需要一些时间,当从ppa或者deb文件安装应该会快一点,取决于你的下载速度。 ###一共有以下几种安装方式: @@ -29,7 +29,7 @@ UbuTricks是一个有简单界面,基于Zenity的图形脚本。虽然早期 - PCManFM -###互联网 +###互联网应用 - Geary - HexChat @@ -86,7 +86,7 @@ via: http://www.ubuntugeek.com/ubutricks-script-to-install-the-latest-versions-o 作者:[ruchi][a] 译者:[DoubleShit](https://github.com/DoubleShit) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 034e4ecb3ec9ebabbea35d063f7034aca5e5ab65 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Dec 2014 11:27:59 +0800 Subject: [PATCH 041/158] PUB:20141119 Qshutdown--An avanced shutdown tool @GOLinux --- ...141119 Qshutdown--An avanced shutdown tool.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename {translated/share => published}/20141119 Qshutdown--An avanced shutdown tool.md (64%) diff --git a/translated/share/20141119 Qshutdown--An avanced shutdown tool.md b/published/20141119 Qshutdown--An avanced shutdown tool.md similarity index 64% rename from translated/share/20141119 Qshutdown--An avanced shutdown tool.md rename to published/20141119 Qshutdown--An avanced shutdown tool.md index af56e0aa38..ba2ffe00ea 100644 --- a/translated/share/20141119 Qshutdown--An avanced shutdown tool.md +++ b/published/20141119 Qshutdown--An avanced shutdown tool.md @@ -1,18 +1,19 @@ Qshutdown – 一个先进的关机神器 ================================================================================ -qshutdown是一个QT程序,用于让计算机在指定时间或者在几分钟后关机/重启/挂起/睡眠。它会一直显示时间,直到相应的请求被发送到Gnome或KDE会话管理器,或者发送到HAL或DeviceKit。而如果这一切都没有发生,将会使用‘sudo shutdown -P now’进行关机。对于那些只在特定时间使用计算机工作的人而言,可能很有用。 +qshutdown是一个QT程序,用于让计算机在指定时间或者在几分钟后关机/重启/挂起/睡眠。对于那些只在特定时间使用计算机工作的人而言,可能很有用。 -qshutdown将在最后70秒时显示3次警告提醒。(如果设置了1分钟或者本地时间+1,它只会显示一次。) +![](http://www.ubuntugeek.com/wp-content/uploads/2014/11/12.png) -该程序使用qdbus来发送关机/重启/挂起/睡眠请求到gnome或kde会话管理器,或者到HAL或DeviceKit,而如果这些都没有工作,那么就会使用‘sudo shutdown’命令进行关机(注意,但发送请求到HAL或DeviceKit,或者使用shutdown命令时,会话不会被保存。如果使用shutdown命令,该程序只会被关机或重启)。所以,如果在shutdown或reboot时间到时什么都没发生,这就意味着用户缺少使用shutdown命令的权限。 +qshutdown将在最后70秒时显示3次警告提醒。(如果设置了1分钟或者“本地时间+1”,它只会显示一次。) + +该程序使用qdbus来发送关机/重启/挂起/睡眠请求到gnome或kde会话管理器,或者到HAL或DeviceKit,而如果这些都没有工作,那么就会使用‘sudo shutdown -P now’命令进行关机(注意,当发送请求到HAL或DeviceKit,或者使用shutdown命令时,会话不会被保存。如果使用shutdown命令,该程序只会被关机或重启)。所以,如果在shutdown或reboot时间到时却什么都没发生,这就意味着用户缺少使用shutdown命令的权限。 在这种情况下,你可以进行以下操作: -粘贴以下信息到终端:“EDITOR:nano sudo -E visudo”并添加此行:“* ALL = NOPASSWD:/sbin/shutdown”这里*替换username或%groupname。 +粘贴以下信息到终端:“EDITOR:nano sudo -E visudo”并添加此行:“* ALL = NOPASSWD:/sbin/shutdown”这里*替换为你的“用户名”或“%组名”。 -配置文件qshutdown.conf -倒计时最大计数为1440分钟(24小时)。配置文件(和日志文件)位于~/.qshutdown。 +倒计时最大计数为1440分钟(24小时)。配置文件(和日志文件)位于~/.qshutdown,配置文件为:qshutdown.conf。 对于管理员: @@ -26,7 +27,6 @@ qshutdown将在最后70秒时显示3次警告提醒。(如果设置了1分钟 ### 屏幕截图 ### -![](http://www.ubuntugeek.com/wp-content/uploads/2014/11/12.png) ![](http://www.ubuntugeek.com/wp-content/uploads/2014/11/23.png) @@ -40,7 +40,7 @@ via: http://www.ubuntugeek.com/qshutdown-an-avanced-shutdown-tool.html 作者:[ruchi][a] 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From cc40ae47a73ef47fe223eb6a14e862f3a4a721c5 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Dec 2014 14:47:09 +0800 Subject: [PATCH 042/158] PUB:20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox @geekpi --- ...How to access a NAT guest from host with VirtualBox.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename {translated/tech => published}/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md (86%) diff --git a/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md b/published/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md similarity index 86% rename from translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md rename to published/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md index 87032ce167..4b817c6536 100644 --- a/translated/tech/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md +++ b/published/20141125 Linux FAQs with Answers--How to access a NAT guest from host with VirtualBox.md @@ -1,8 +1,8 @@ -Linux 有问必答 -- 如何从VirtualBox中从主机访问NAT客户机 +Linux 有问必答:如何从VirtualBox中从主机访问NAT客户机 ================================================================================ -> **提问**: 我有一台运行在VirtualBox上的使用NAT的虚拟机。因此虚拟机会被VirtualBox分配一个私有IP地址(10.x.x.x)。如果我想要从主机SSH到虚拟机中,我该怎么做? +> **提问**: 我有一台运行在VirtualBox上的使用NAT的虚拟机,因此虚拟机会被VirtualBox分配一个私有IP地址(10.x.x.x)。如果我想要从主机SSH到虚拟机中,我该怎么做? -VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络。当虚拟机启用NAT后,VirtualBox会自动在虚拟机和主机之间进行网络翻译,因此你不于必在虚拟机和主机之间配置任何东西。这也意味着NAT中的虚拟机对于外部网络以及主机本身是不可见的。这会在你想要从主机访问虚拟机时会产生问题(比如SSH)。 +VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络。当虚拟机启用NAT后,VirtualBox会自动在虚拟机和主机之间进行网络翻译,因此你不必在虚拟机和主机之间配置任何东西。这也意味着NAT中的虚拟机对于外部网络以及主机本身是不可见的。这会在你想要从主机访问虚拟机时会产生问题(比如SSH)。 如果你想从VirtualBox的NAT环境的虚拟机,你可以在GUI或者命令行下启用VirtualBox NAT的端口转发。本篇教程将会演示**如何通过启用22端口转发而从主机SSH连接到NAT环境的客户机**。如果你先想要从HTTP访问NAT的客户机,用80端口代替22端口即可。 @@ -62,6 +62,6 @@ VirtualBox有一个称为VBoxManage的命令行管理工具。使用命令行工 via: http://ask.xmodulo.com/access-nat-guest-from-host-virtualbox.html 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 1986af6f30e91a78506dc0d97d7e317a5570ca6d Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Dec 2014 15:09:43 +0800 Subject: [PATCH 043/158] PUB:20141124 15 pwd (Print Working Directory) Command Examples in Linux @geekpi --- ...ng Directory) Command Examples in Linux.md | 53 +++++++++---------- 1 file changed, 26 insertions(+), 27 deletions(-) rename {translated/tech => published}/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md (86%) diff --git a/translated/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md b/published/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md similarity index 86% rename from translated/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md rename to published/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md index 2e829d5628..386d8faa5e 100644 --- a/translated/tech/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md +++ b/published/20141124 15 pwd (Print Working Directory) Command Examples in Linux.md @@ -1,14 +1,14 @@ -15条Linux下的‘pwd’命令(打印工作目录)示例 +菜鸟教程:全面学习 pwd 命令 ================================================================================ -对于那些使用Linux命令行的人来说,‘**pwd**‘命令是非常有用的,它告诉你你现在在那个目录,从根目录(**/**)开始。特别对于或许会在目录的切换间容易糊涂的Linux新手而言,‘**pwd**‘ 可以拯救他们。 +对于那些使用Linux命令行的人来说,‘**pwd**‘命令是非常有用的,它告诉你你现在在那个目录,从根目录(**/**)如何到达。特别是对于或许会在目录的切换间容易糊涂的Linux新手而言,‘**pwd**‘ 可以拯救他们。 ![15 pwd Command Examples](http://www.tecmint.com/wp-content/uploads/2014/11/pwd-command.png) -15 pwd 命令示例 +*15个 pwd 命令示例* ### 什么是pwd? ### -‘**pwd**‘ 代表的是‘**Print Working Directory**’(打印当前目录)。如它的名字那样,‘**pwd**’会打印出当前工作目录或仅是目录用户。它会打印出以root (**/**)为起始的完整目录名。这条命令是一条shell内建命令,并且在大多数shell中都可以使用,如bash、Bourne shell,ksh、zsh等等。 +‘**pwd**‘ 代表的是‘**Print Working Directory**’(打印当前目录)。如它的名字那样,‘**pwd**’会打印出当前工作目录,或简单的来说就是当前用户所位于的目录。它会打印出以根目录 (**/**)为起点的完整目录名(绝对目录)。这条命令是一条shell内建命令,并且在大多数shell中都可以使用,如bash、Bourne shell,ksh、zsh等等。 #### pwd的基本语法: #### @@ -25,11 +25,11 @@  描述 - -L (logical) + -L (即逻辑路径logical )  使用环境中的路径,即使包含了符号链接 - -P (physical) + -P (即物理路径physical)  避免所有的符号链接 @@ -56,7 +56,7 @@ pwd的退出状态: 成功 -Non-zero +非零值 失败 @@ -64,7 +64,7 @@ pwd的退出状态: 本篇的目的是采用例子让你对‘**pwd**‘有更深入的领悟。 -**1.** 打印放钱工作目录. +**1.** 打印当前工作目录. avi@tecmint:~$ /bin/pwd @@ -72,7 +72,7 @@ pwd的退出状态: ![Print Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/pwd.gif) -打印工作目录 +*打印工作目录* **2.** 为文件夹创建一个符号链接(比如说在home目录下创建一个**htm**链接指向**/var/www/html**)。进入新创建的目录并打印出含有以及不含符号链接的目录。 @@ -83,9 +83,9 @@ pwd的退出状态: ![Create Symbolic Link](http://www.tecmint.com/wp-content/uploads/2014/11/Create-Symbolic-Link.gif) -创建符号链接 +*创建符号链接* -**3.** 从当前环境中答应目录即使它含有符号链接。 +**3.** 从当前环境中打印目录即使它含有符号链接。 avi@tecmint:~$ /bin/pwd -L @@ -93,7 +93,7 @@ pwd的退出状态: ![Print Current Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Print-Working-Directory.gif) -打印工作目录 +*打印工作目录* **4.** 解析符号链接并打印出物理目录。 @@ -103,7 +103,7 @@ pwd的退出状态: ![Print Physical Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Print-Physical-Working-Directory.gif) -打印物理工作目录 +*打印物理工作目录* **5.** 查看一下“**pwd**”和“**pwd -P**”的输出是否一致,也就是说,如果没有跟上选项,“**pwd**”时候会自动采用**-P**选项。 @@ -113,7 +113,7 @@ pwd的退出状态: ![Check pwd Output](http://www.tecmint.com/wp-content/uploads/2014/11/Check-pwd-Output.gif) -检查pwd输出 +*检查pwd输出* **结论:** 上面例子4和5的输出很明显(结果相同),当你“**pwd**”后面不带参数时,pwd会使用“**-P**”选项。 @@ -131,7 +131,7 @@ pwd的退出状态: ![Check pwd Version](http://www.tecmint.com/wp-content/uploads/2014/11/Check-pwd-Version.gif) -检查pwd命令版本 +*检查pwd命令版本* **注意:** ‘pwd’ 通常不带选项运行,且没有任何参数 @@ -148,9 +148,9 @@ pwd的退出状态: ![Print Executable Locations](http://www.tecmint.com/wp-content/uploads/2014/11/Print-Executable-Locations.gif) -打印可执行文件路径 +*打印可执行文件路径* -**8.** 存储“**pwd**”命令的值到变量中(比如说:**a** ),并从中打印i变量的值(对于观察shell脚本很重要)。 +**8.** 存储“**pwd**”命令的值到变量中(比如说:**a** ),并从中打印变量的值(对于观察shell脚本很重要)。 avi@tecmint:~$ a=$(pwd) avi@tecmint:~$ echo "Current working directory is : $a" @@ -159,19 +159,19 @@ pwd的退出状态: ![Store Pwd Value in Variable](http://www.tecmint.com/wp-content/uploads/2014/11/Store-Pwd-Value-in-Variable.gif) -存储pwd的值到变量中。 +*存储pwd的值到变量中* 下面的例子中也可以用**printf**来替代。 **9.** 将工作路径切换到其他地方(比如说 **/home**),并在命令行中显示。通过执行命令(比如说 ‘**ls**‘)来验证一切**OK**。 avi@tecmint:~$ cd /home - avi@tecmint:~$ PS1='$pwd> ' [Notice single quotes in the example] + avi@tecmint:~$ PS1='$pwd> ' [注意例子中的单引号] > ls ![Change Current Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Change-Current-Working-Directory.gif) -改变当前工作路径 +*改变当前工作路径* **10.** 设置多行显示 (就像下面这样), @@ -190,7 +190,7 @@ pwd的退出状态: ![Set Multi Commandline Prompt](http://www.tecmint.com/wp-content/uploads/2014/11/Set-Multi-Commandline-Prompt.gif) -设置多行显示 +*设置多行显示* **11.** 一下子检查当前工作路径以及先前的工作路径。 @@ -200,8 +200,7 @@ pwd的退出状态: ![Check Present Previous Working Directory](http://www.tecmint.com/wp-content/uploads/2014/11/Check-Present-Previous-Working-Directory.gif) -Check Present Previous Working Directory -检查当前工作路径 +*检查当前工作路径* **12.** pwd文件的绝对路径(以**/**开始)。 @@ -211,7 +210,7 @@ Check Present Previous Working Directory /usr/include/pwd.h -**13.** 打印pwd手册的绝对路径(以**/**开始)。 +**13.** pwd手册的绝对路径(以**/**开始)。 /usr/share/man/man1/pwd.1.gz @@ -241,7 +240,7 @@ Check Present Previous Working Directory } fi -给予他执行权限并运行。 +给予执行权限并运行。 avi@tecmint:~$ chmod 755 pwd.sh avi@tecmint:~$ ./pwd.sh @@ -251,7 +250,7 @@ Check Present Previous Working Directory #### 总结 #### -**pwd**是一个最简单且会广泛用到的命令。掌握好pwd是使用Linux终端的基础。就是这些了。我很快会再带来另外有趣的注意,请不要走开继续关注Tecmint。 +**pwd**是一个最简单且会广泛用到的命令。掌握好pwd是使用Linux终端的基础。就是这些了。我很快会再带来另外有趣的文章,请不要走开继续关注我们。 -------------------------------------------------------------------------------- @@ -259,7 +258,7 @@ via: http://www.tecmint.com/pwd-command-examples/ 作者:[Avishek Kumar][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 48f48783210f2c6c0de58ac0c0ad73e4418174eb Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Tue, 2 Dec 2014 17:53:43 +0800 Subject: [PATCH 044/158] Translating by ZTinoZ --- ... 10 SCP Commands to Transfer Files or Folders in Linux.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index d30ebf59bf..c88e97661c 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,6 +1,7 @@ -Linux中的十条SCP传输命令 +Linux的十条SCP传输命令 ================================================================================ -Linux administrator should be familiar with **CLI** environment. Since **GUI** mode in Linux servers is not a common to be installed. **SSH** may the most popular protocol to enable Linux administrator to manage the servers via remote in secure way. Built-in with **SSH** command there is **SCP** command. **SCP** is used to copy file(s) between servers in secure way. +Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。Built-in with 在**SSH**命令中内置了一种叫 +**SCP**的命令,用来在服务器之间安全传输文件。 ![](http://www.tecmint.com/wp-content/uploads/2013/10/SCP-Commands.png) From 6a95046f3d9d79390cda7cd741da558ec658f4a7 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Tue, 2 Dec 2014 18:15:29 +0800 Subject: [PATCH 045/158] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translated/talk/20141127 What Makes a Good Programmer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/talk/20141127 What Makes a Good Programmer.md b/translated/talk/20141127 What Makes a Good Programmer.md index 7e754c2e16..400bf55882 100644 --- a/translated/talk/20141127 What Makes a Good Programmer.md +++ b/translated/talk/20141127 What Makes a Good Programmer.md @@ -9,7 +9,7 @@ 我写过的某些最复杂的程序在局部上都是难懂的,因为代码实现并不能很好地描述问题,也就导致了编写的代码难以理解。当问题很好建模的时候,我赞同伯尼·科赛尔所说的话(取自著名的[程序员在工作][1]中的访谈记录): -> “……很少有本质上很难的程序。如果你盯着某一块代码,它看起来确实很难;如果你无法理解某件事情应该产生什么结果,这基本上就暗示这件事情很难思考清楚了。在这个时候,你不应该卷起袖子,尝试修复代码;你需要只是往回一步,再仔细考虑清楚。当你已经深思熟虑后,你会发现问题变得很简单”。 +> “……很少有本质上很难的程序。如果你盯着某一块代码,它看起来确实很难;如果你无法理解某件事情应该产生什么结果,这基本上就暗示这件事情很难思考清楚了。在这个时候,你不应该卷起袖子,尝试修复代码;你需要只是往回一步,再仔细考虑清楚。当你已经深思熟虑后,你会发现问题变得很简单”。 ### 2. 场景分析 ### From 929fd236d48a51c476026315624a4aefba021ff3 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Dec 2014 23:09:28 +0800 Subject: [PATCH 046/158] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=90=E5=91=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 73 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 9c14823d48..0caee9b7a8 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,8 @@ LCTT的组成 - CORE [geekpi](https://github.com/geekpi), - CORE [GOLinux](https://github.com/GOLinux), - CORE [reinoir](https://github.com/reinoir), +- CORE [bazz2](https://github.com/bazz2), +- CORE [zpl1025](https://github.com/zpl1025), - Senior [tinyeyeser](https://github.com/tinyeyeser), - Senior [vito-L](https://github.com/vito-L), - Senior [jasminepeng](https://github.com/jasminepeng), @@ -47,66 +49,73 @@ LCTT的组成 - Senior [vizv](https://github.com/vizv), - [runningwater](https://github.com/runningwater), - [luoxcat](https://github.com/Luoxcat), -- [bazz2](https://github.com/bazz2), - [Vic020](https://github.com/Vic020), -- [alim0x](https://github.com/alim0x), - [KayGuoWhu](https://github.com/KayGuoWhu), -- [zpl1025](https://github.com/zpl1025), -- [blueabysm](https://github.com/blueabysm), -- [flsf](https://github.com/flsf), -- [crowner](https://github.com/crowner), -- [Linux-pdz](https://github.com/Linux-pdz), -- [Linchenguang](https://github.com/Linchenguang), -- [linuhap](https://github.com/linuhap), +- [alim0x](https://github.com/alim0x), +- [ZTinoZ](https://github.com/ZTinoZ), - [2q1w2007](https://github.com/2q1w2007), +- [flsf](https://github.com/flsf), +- [blueabysm](https://github.com/blueabysm), +- [barney-ro](https://github.com/barney-ro), +- [su-kaiyao](https://github.com/su-kaiyao), +- [crowner](https://github.com/crowner), +- [Linchenguang](https://github.com/Linchenguang), +- [Linux-pdz](https://github.com/Linux-pdz), +- [linuhap](https://github.com/linuhap), - [yechunxiao19](https://github.com/yechunxiao19), - [woodboow](https://github.com/woodboow), -- [su-kaiyao](https://github.com/su-kaiyao), +- [SPccman](https://github.com/SPccman), +- [disylee](https://github.com/disylee), +- [cvsher](https://github.com/cvsher), +- [ThomazL](https://github.com/ThomazL), +- [Stevearzh](https://github.com/Stevearzh), +- [felixonmars](https://github.com/felixonmars), - [scusjs](https://github.com/scusjs), +- [johnhoow](https://github.com/johnhoow), - [hyaocuk](https://github.com/hyaocuk), - [MikeCoder](https://github.com/MikeCoder), -- [ThomazL](https://github.com/ThomazL), - [theo-l](https://github.com/theo-l), +- [wangjiezhe](https://github.com/wangjiezhe), - [jiajia9linuxer](https://github.com/jiajia9linuxer), -- [SteveArcher](https://github.com/SteveArcher), -- [l3b2w1](https://github.com/l3b2w1), - [NearTan](https://github.com/NearTan), +- [l3b2w1](https://github.com/l3b2w1), - [shipsw](https://github.com/shipsw), -- [disylee](https://github.com/disylee), -- [Love-xuan](https://github.com/Love-xuan), - [boredivan](https://github.com/boredivan), -- [cvsher](https://github.com/cvsher), -- [owen-carter](https://github.com/owen-carter), +- [Love-xuan](https://github.com/Love-xuan), - [JonathanKang](https://github.com/JonathanKang), -- [tenght](https://github.com/tenght), +- [luoyutiantang](https://github.com/luoyutiantang), +- [owen-carter](https://github.com/owen-carter), - [icybreaker](https://github.com/icybreaker), -- [liuaiping](https://github.com/liuaiping), +- [tenght](https://github.com/tenght), - [rogetfan](https://github.com/rogetfan), +- [liuaiping](https://github.com/liuaiping), - [nd0104](https://github.com/nd0104), -- [whatever1992](https://github.com/whatever1992), +- [szrlee](https://github.com/szrlee), - [lfzark](https://github.com/lfzark), -- [CNprober](https://github.com/CNprober), -- [213edu](https://github.com/213edu), -- [johnhoow](https://github.com/johnhoow), -- [yujianxuechuan](https://github.com/yujianxuechuan), - [ggaaooppeenngg](https://github.com/ggaaooppeenngg), +- [CNprober](https://github.com/CNprober), +- [coloka](https://github.com/coloka), +- [213edu](https://github.com/213edu), +- [guodongxiaren](https://github.com/guodongxiaren), +- [Tanete](https://github.com/Tanete), - [zzlyzq](https://github.com/zzlyzq), +- [yujianxuechuan](https://github.com/yujianxuechuan), - [ailurus1991](https://github.com/ailurus1991), - [FineFan](https://github.com/FineFan), +- [shaohaolin](https://github.com/shaohaolin), - [tomatoKiller](https://github.com/tomatoKiller), +- [CHINAANSHE](https://github.com/CHINAANSHE), - [stduolc](https://github.com/stduolc), - [Maclauring](https://github.com/Maclauring), -- [zsJacky](https://github.com/zsJacky), - [Hao-Ding](https://github.com/Hao-Ding), -- [luoyutiantang](https://github.com/luoyutiantang), +- [zsJacky](https://github.com/zsJacky), - [small-Wood](https://github.com/small-Wood), -- [CHINAANSHE](https://github.com/CHINAANSHE), -- [guodongxiaren](https://github.com/guodongxiaren), - [cereuz](https://github.com/cereuz), - [lijhg](https://github.com/lijhg), +- [fbigun](https://github.com/fbigun), -(更新于2014/09/09) +(更新于2014/12/02,以Github contributors列表排名) 谢谢大家的支持! @@ -124,5 +133,7 @@ LCTT的组成 * 2014/01/02 增加了Core Translators 成员: geekpi。 * 2014/05/04 更换了新的QQ群:198889102 * 2014/05/16 增加了Core Translators 成员: will.qian、vizv。 -* 2014/06/18 由于GOLinux令人惊叹的翻译速度和不错的翻译质量,升级为Core Translators 成员。 -* 2014/09/09 LCTT 一周年,做一年[总结](http://linux.cn/article-3784-1.html)。并将曾任 CORE 的成员分组为 Senior,以表彰他们的贡献。 \ No newline at end of file +* 2014/06/18 由于GOLinux令人惊叹的翻译速度和不错的翻译质量,升级为Core Translators成员。 +* 2014/09/09 LCTT 一周年,做一年[总结](http://linux.cn/article-3784-1.html)。并将曾任 CORE 的成员分组为 Senior,以表彰他们的贡献。 +* 2014/10/08 提升bazz2为Core Translators成员。 +* 2014/11/04 提升zpl1025为Core Translators成员。 \ No newline at end of file From 139911ff7ea18234e99ea6ae03e23c7712ee2aea Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Tue, 2 Dec 2014 23:35:03 +0800 Subject: [PATCH 047/158] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20141127 What Makes a Good Programmer.md | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/translated/talk/20141127 What Makes a Good Programmer.md b/translated/talk/20141127 What Makes a Good Programmer.md index 400bf55882..81c33d222b 100644 --- a/translated/talk/20141127 What Makes a Good Programmer.md +++ b/translated/talk/20141127 What Makes a Good Programmer.md @@ -1,49 +1,48 @@ -什么造就一个优秀的程序员? - +是什么造就了一个优秀的程序员? ================================================================================ -是什么造成一个优秀的程序员?首先问问你自己吧,这会是个有趣的问题。它让你反思自己软件开发的能力。这个问题也适合问问你的同事。它可以带来一些关于如何协同工作的有趣讨论。下面是五个我认为成为一个优秀程序员必备的重要技能。 +是什么造就了一个优秀的程序员?首先问问你自己吧,这会是个有趣的问题。它让你反思自己的软件开发技术。这个问题也适合问问你的同事们。它可以带来一些关于如何协同工作的有趣讨论。下面是我认为成为一个优秀程序员必备的五个重要技能。 ### 1. 分解问题 ### 编程是为了解决问题,但在你开始写代码前,需要明白如何解决问题。优秀程序员的一项技能是把大的问题逐层分解成一个个更小的部分,直到每一部分都可以很容易解决。但找到解决问题的方式往往并没有那么简单。优秀程序员能找到方法去建立问题模型,这种方法使得输出结果的程序容易解释、实现和测试。 -我写过的某些最复杂的程序在局部上都是难懂的,因为代码实现并不能很好地描述问题,也就导致了编写的代码难以理解。当问题很好建模的时候,我赞同伯尼·科赛尔所说的话(取自著名的[程序员在工作][1]中的访谈记录): +我写过的某些最复杂的程序在局部上都是难懂的,因为代码实现并不能很好地匹配这个问题,也就导致了编写的代码难以理解。当问题很好地建模的时候,我赞同伯尼·科赛尔所说的话(取自著名的[程序员在工作][1]中的访谈记录): -> “……很少有本质上很难的程序。如果你盯着某一块代码,它看起来确实很难;如果你无法理解某件事情应该产生什么结果,这基本上就暗示这件事情很难思考清楚了。在这个时候,你不应该卷起袖子,尝试修复代码;你需要只是往回一步,再仔细考虑清楚。当你已经深思熟虑后,你会发现问题变得很简单”。 +> “……很少有本质上很难的程序。如果你盯着某一块代码,它看起来确实很难;如果你无法理解这段代码应该产生什么结果,这基本上就是暗示它很难被理解了。在这个时候,你不应该卷起袖子,尝试修复代码;你需要只是往回一步,再仔细考虑清楚。当你已经深思熟虑后,你会发现问题变得很简单”。 ### 2. 场景分析 ### -优秀开发者能考虑到如何使程序适合多种不同的场景。这项能力既适用于处理程序本身的逻辑,又适用于处理发生的外部和内部事件。为了考虑逻辑上的不同思路,他们问自己这样的问题:如果这个参数为空会发生什么?如果所有条件都为假呢?这个方法在线程上是安全的吗?为了发现软件需要处理的各种类型的事件,他们问自己这样的问题:如果队列占满了会怎样?如果请求收不到响应会怎样?如果在这台服务器重启的同时另外一台服务器也重启了会怎样? +优秀开发者能考虑到如何使程序适合多种不同的场景。这项能力既适用于处理程序本身的逻辑,又适用于处理可能会发生的外部和内部事件。为了考虑逻辑上的不同思路,他们问自己这样的问题:如果这个参数为空会发生什么?如果所有条件都为假呢?这个方法在线程上是安全的吗?为了发现软件需要处理的各种类型的事件,他们问自己这样的问题:如果队列占满了会怎样?如果请求收不到响应会怎样?如果在这台服务器重启的同时另外一台服务器也重启了会怎样? -优秀程序员问他们自己:如何打破自己的程序?换句话说,他们有能力像测试人员一样思考。相反,缺少经验的程序员通常只考虑正确的路径——在一切都按照预期进行时正常的控制流(当然这也是程序在大部分时候做的事情)。当然,异常不可避免要发生,所以需要程序能处理这些情况。 +优秀程序员问他们自己:如何打破自己的程序?换句话说,他们有能力像测试人员一样思考。相反,缺少经验的程序员通常只考虑正确的路径——在一切都按照预期进行时正常的控制流(当然这也是程序在大部分时候的情况)。当然,异常不可避免要发生,所以需要程序能处理这些情况。 ### 3. 命名 ### -编程由大量的命名对象组成:类、方法和变量。当编码完成时,程序也具备了自我描述的能力,也就是说通过阅读源代码可以清楚地明白程序中函数的含义。自描述代码的一个好处就是很自然地产生许多体积更小的方法,而不是少数体积大的方法,因为你有更多空间去放置有意义的名字(还有[其它原因][2]解释为什么短小方法更好)。 +编程由大量的命名对象组成:类、方法和变量。当编码完成得很好时,程序也具备了自我描述的能力,也就是说通过阅读源代码可以清楚地明白程序中函数的含义。自描述代码的一个好处就是很自然地产生许多更短的命名方法,而不是少数更长的方法,因为你有更多空间去放置有意义的名字(还有[其它原因][2]解释为什么短小方法更好)。 -想出好的名字比它听起来更困难一些。我喜欢这段引用(来自菲尔·卡尔顿):“在计算机科学领域只有两件困难的事情:缓存失效和命名对象。”命名在一定程度上很困难是因为你需要清楚地明白每一个名字究竟要代表什么。有时候命名不是清楚,只有随着软件开发进展才会慢慢显现。因此,重命名和命名一样重要。 +想出好的名字比它听起来更困难一些。我喜欢这段引用(来自菲尔·卡尔顿):“在计算机科学领域只有两件困难的事情:缓存失效和命名对象。”命名在一定程度上很困难是因为你需要清楚地明白每一个名字究竟要代表什么。有时候命名不是一下子就清晰明了,只有随着软件开发进展才会慢慢显现。因此,重命名和命名一样重要。 命名对象也包含提出要用的概念和这些概念该如何称呼。通过深思熟虑,清楚命名所使用的惯用概念(在程序中和与程序员、非程序员讨论时使用),这使得编写程序变得更加容易。 ### 4. 一致性 ### -也许编程中最大的挑战是管理复杂性。保持一致性是处理复杂性的一种方法。它通过允许我们看到对象命名、使用和处理所采用的模式和推理来降低了某些复杂性。有了一致性,我们就无需用脑袋去记住异常和随机变量。取而代之,我们可以更关注[程序本身的复杂性,而不是偶然产生的复杂性][3]。 +也许编程中最大的挑战是管理复杂性。保持一致性是处理复杂性的一种方法。它通过允许我们看到对象命名、使用和处理所采用的模式和推理来降低了某些复杂性。有了一致性,我们就无需用脑去记住异常和随机变量。取而代之,我们可以更关注[程序本身的复杂性,而不是偶然产生的复杂性][3]。 -保持一致性是很重要的。它应用在变量名字和分组、方法命名、模块划分、目录结构、GUI、错误处理、日志输出和文档等很多方面。比如,如果某些变量是的相关,并一起出现(在声明、方法调用或数据库中的列),而且总是以相同的顺序使用它们。那么当其中一个消失或者整体被打乱时,你就会很容易发现。对于一个操作,如果在一个地方叫delete,就不要在另一个地方叫remove:务必使用相同的名字。史蒂夫·麦克奈尔在[代码大全][4]中对于使用相反命名有相同的建议。比如,begin和end是相反的,就如同start和stop一样。当使用相反对时不要混用不同对的名字(比如使用begin和stop)。 +保持一致性从整体看来是很重要的。它应用在变量名字和分组、方法命名、模块划分、目录结构、GUI、错误处理、日志输出和文档等很多方面。比如,如果某些变量是的相关,并一起出现(在声明、方法调用或数据库中的列),而且总是以相同的顺序使用它们。那么当其中一个消失或者整体被打乱时,你就会很容易发现。对于一个操作,如果在一个地方叫delete,就不要在另一个地方叫remove:务必使用相同的名字。史蒂夫·麦克奈尔在[代码大全][4]中对于使用相反命名有相同的建议。比如,begin和end是相反的,就如同start和stop一样。当使用相反对时不要混用不同对的名字(比如使用begin和stop)。 -当修改一段程序时可能会引入非一致性。粗心大意的程序员不会注意到他们添加的代码是否和已有的代码保持一致。优秀程序员会严苛地确保在这些看似很小的细节上都要做得恰到好处。他们知道保持一致性对于在软件开发的整个过程中处理复杂性是多么的重要。 +当修改一段程序时可能会引入非一致性。粗心大意的程序员不会注意到他们添加的代码是否和已有的代码保持一致。优秀程序员会严苛地确保在这些看似很小的细节上都要做到精益求精。他们知道保持一致性对于在软件开发的整个过程中处理复杂性是多么的重要。 ### 5. 学习能力 ### -作为一名软件开发者,你需要持续学习。在为软件添加一项新功能前,你必须明白为什么要这么做。在给一个已有程序添加代码前,你通常必须学习已有代码在做什么,以便合适地嵌入新功能。你还需要学习相关系统,以便正确地与它们交互。因此,快速学习的能力使你成为一名更加高效的开发者。 +作为一名软件开发者,你需要持续学习。在为软件添加一项新功能前,你必须明白为什么要这么做。在给一个已有程序添加代码前,你通常必须知道已有代码在做什么,以便合适地嵌入新功能。你还需要学习相关系统,以便正确地与它们交互。因此,快速学习的能力使你成为一名更加高效的开发者。 而且,因为软件工程领域的开发速度是如此的快速,所以新的编程语言、工具、技术和框架需要学习层出不穷。这是好还是坏,就看你怎么看。佛瑞德·布鲁克斯把学习能力列为[技能的快乐之一][5],对此我深表赞同。学习新事物本身就是令人心满意足的,它也意味着开发者的生活从不无聊。 ### 总结 ### -上面所有的技能都是通用的——它们中没有一项是针对某种语言、某个框架或某种技术。如果你拥有它们,你就能快速学习一门新的语言或工具,在新的环境下写出优秀的软件。而且,因为它们在本质上是通用的,所以不会在若干年以后变得不实用。 +上面所有的技能都是通用的——它们中没有一项是针对某种语言、某个框架或某种技术。如果你拥有它们,你就能快速学习一门新的语言或工具,在新的环境下写出优秀的软件。而且,因为它们在本质上是通用的,所以不会在若干年以后过时。 -这就是我对什么因素造就一个优秀程序员的回答。你认为造就一个优秀程序员的因素是哪些?在评论里让我知道吧。 +是什么造就了一个优秀的程序员?以上便是我的观点。你认为造就一个优秀程序员的因素有哪些?在评论里告诉我吧。 -------------------------------------------------------------------------------- @@ -51,7 +50,7 @@ via: http://henrikwarne.com/2014/06/30/what-makes-a-good-programmer/ 作者:[Henrik Warne][a] 译者:[KayGuoWhu](https://github.com/KayGuoWhu) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 63a6eab73dcf200b35cbc0da300b78c33fab0741 Mon Sep 17 00:00:00 2001 From: forsil Date: Wed, 3 Dec 2014 11:03:28 +0800 Subject: [PATCH 048/158] translate finished --- ...use on-screen virtual keyboard on Linux.md | 129 ----------------- ...use on-screen virtual keyboard on Linux.md | 130 ++++++++++++++++++ 2 files changed, 130 insertions(+), 129 deletions(-) delete mode 100644 sources/tech/20140901 How to use on-screen virtual keyboard on Linux.md create mode 100644 translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md diff --git a/sources/tech/20140901 How to use on-screen virtual keyboard on Linux.md b/sources/tech/20140901 How to use on-screen virtual keyboard on Linux.md deleted file mode 100644 index bab9fca09a..0000000000 --- a/sources/tech/20140901 How to use on-screen virtual keyboard on Linux.md +++ /dev/null @@ -1,129 +0,0 @@ -forsil translating ... -How to use on-screen virtual keyboard on Linux -================================================================================ -On-screen virtual keyboard is an alternative input method that can replace a real hardware keyboard. Virtual keyboard may be a necessity in various cases. For example, your hardware keyboard is just broken; you do not have enough keyboards for extra machines; your hardware does not have an available port left to connect a keyboard; you are a disabled person with difficulty in typing on a real keyboard; or you are building a touchscreen-based web kiosk. - -On-screen keyboard can also be a protection mechanism against a hardware keylogger which silently records your keystrokes for sensitive information such as passwords. Some online banking sites actually force you to use a virtual keyboard for security-enhanced transactions. - -In Linux environment, there are a couple of open-source virtual keyboard software available, e.g., [GOK (GNOME Onscreen Keyboard)][1], [kvkbd][2], [onboard][3], [Florence][4]. - -In this tutorial, I am going to focus on Florence, and show you **how to set up a virtual keyboard with Florence.**. Florence comes with a number of nice features such as flexible layout, multiple input methods, auto-hide, etc. As part of the tutorial, I will also demonstrate **how to use Ubuntu desktop with a mouse only**. - -### Install Florence Virtual Keyboard on Linux ### - -Fortunately, Florence is available on base repositories of most Linux distros. - -On Debian, Ubuntu or Linux Mint: - - $ sudo apt-get install florence - -On Fedora, CentOS or RHEL ([EPEL repo][5] is required for CentOS/RHEL): - - $ sudo yum install florence - -On Mandriva or Mageia: - - $ sudo urpmi florence - -For Archlinux users, the package is available in [AUR][6]. - -Configure and Launch Virtual Keyboard - -Once you install Florence, you can launch virtual keyboard simply by typing: - - $ florence - -By default, the virtual keyboard is always on top of other windows, allowing you to type on any active window easily. - -To change default settings of Florence, click on tool key on the left side of the keyboard. - -![](https://farm4.staticflickr.com/3923/14873468448_216c794244_z.jpg) - -In "style" menu of Florence settings, you can customize keyboard style, and enable/disable sound effect. - -![](https://farm6.staticflickr.com/5563/14873470478_de81aac39b_o.png) - -In "window" menu, you can adjust keyboard background transparency and key opacity, as well as control keyboard ratio, taskbar, resizability and always-on-top features. Transparency and opacity adjustment can be useful if your screen resolution is not high enough, so the virtual keyboard is blocking other windows. In this example, I switch to transparent keyboard, and set opacity to 50%. - -![](https://farm6.staticflickr.com/5556/15060050245_1534127d1c_z.jpg) - -In "behaviour" menu, you can change an input method. Florence supports several different input methods: mouse, touch screen, timer and ramble. The default input is mouse method. The last two methods do not require button clicks. With timer method, key press is triggered by locating a pointer at the key for a certain amount of time. The ramble method works similar to **timer** input, but with dexterity and training, can type much faster than **timer** method. - -![](https://farm4.staticflickr.com/3843/14873384900_82baef4c22_o.png) - -In "layout" menu, you can change the keyboard layout. For example, you can extend the keyboard layout to include navigation keys, numeric keys, and function keys. - -![](https://farm6.staticflickr.com/5556/15057015461_e611b6ee25_z.jpg) - -### Use Ubuntu Desktop with Mouse Only ### - -I am going to demonstrate how to integrate Florence with Ubuntu desktop, so that we can access the desktop without a hardware keyboard. While this tutorial is specific to Ubuntu desktop with LightDM (Ubuntu's default display manager), a similar environment can be set up for other desktop environments. - -The initial setup requires a hardware keyboard, but once the setup is completed, you only need a mouse, but not the keyboard. - -When you boot up Ubuntu desktop, the boot procedure ends with launch of a display manager (or login manager) with Greeter interface, where you type in your login info. By default, Ubuntu desktop uses LightDM with Unity Greeter interface. Without a hardware keyboard, you cannot enter username and password at the login screen. - -To be able to launch a virtual keyboard at the login screen, install GTK+ Greeter, which comes with on-screen keyboard support. - - $ sudo apt-get install lightdm-gtk-greeter - -Then, open a Greeter configuration file (/etc/lightdm/lightdm-gtk-greeter.conf) with a text editor, and specify Florence as an on-screen keyboard to use. Instead of Florence, you could also use onboard, Ubuntu's default on-screen keyboard. - - $ sudo vi /etc/lightdm/lightdm-gtk-greeter.conf - ----------- - - [greeter] - keyboard=florence --no-gnome --focus & - -![](https://farm6.staticflickr.com/5554/15056999361_180dc724b2_z.jpg) - -Let's reboot Ubuntu desktop, and verify whether you can use virtual keyboard at the login screen. - -When you see the GTK+ Greeter's login screen after boot, click on a human symbol icon on the top right corner. You will see "On Screen Keyboard" menu option as follows. - -![](https://farm6.staticflickr.com/5554/14873314399_e48bd6eb84_z.jpg) - -Click on this option, and a virtual keyboard will pop up on the login screen. Now you should be able to log in by tapping on the on-screen keyboard. - -![](https://farm6.staticflickr.com/5572/14873460568_02480cccb7_z.jpg) - -For those GDM2/GDM3 users, the Florence official site offers [documentation][7] on using virtual keyboard at GDM2/GDM3 screen. - -The last step to make our Ubuntu desktop fully keyboard-less is to have virtual keyboard auto-start upon login, so that we can use our desktop without a hardware keyboard even after logging in. For that, create the following desktop file. - - $ mkdir -p ~/.config/autostart - $ vi ~/.config/autostart/florence.desktop - ----------- - - [Desktop Entry] - Type=Application - Name=Virtual Keyboard - Comment=Auto-start virtual keyboard - Exec=florence --no-gnome - -This will make virtual keyboard appear as soon as you log in to the desktop. - -![](https://farm4.staticflickr.com/3873/15037038376_f8359f3a65_z.jpg) - -Hope this tutorial is useful to you. As you can see, Florence is quite powerful virtual keyboard which can be used for different purposes. Let me know if you have any use case for virtual keyboard. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/2014/08/onscreen-virtual-keyboard-linux.html - -作者:[Dan Nanni][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:https://developer.gnome.org/gok/ -[2]:http://homepage3.nifty.com/tsato/xvkbd/ -[3]:https://launchpad.net/onboard -[4]:http://florence.sourceforge.net/ -[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html -[6]:https://aur.archlinux.org/packages/florence/ -[7]:http://florence.sourceforge.net/english/how-to.html \ No newline at end of file diff --git a/translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md b/translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md new file mode 100644 index 0000000000..a745f6703c --- /dev/null +++ b/translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md @@ -0,0 +1,130 @@ + +如何在 Linux 中使用屏幕键盘 +================================================================================ + +屏幕键盘可以作为实体键盘输入的替代方案. 在某些时候,屏幕键盘显得非常需要. 比如, 你的键盘刚好坏了; 你的机器太多, 没有足够的键盘; 你的机器没有多余的接口来连接键盘; 你是个残疾人, 打字有困难; 或者你正在组建基于触摸屏的信息服务站. + +屏幕键盘也可以作为一种针对实体键盘背后记录按键来获取密码等敏感信息的情况的保护手段. 一些网上银行页面实际上会强制你使用屏幕键盘来增强交易的安全性. + +在linux 中有几个可用的开源键盘软件, 比如 [GOK (Gnome 的屏幕键盘)][1], [kvkbd][2], [onboard][3], [Florence][4]. + +我会在这个教程中集中讲解 Florence, 告诉你 ** 如何用 Florence 配置屏幕键盘 **. Florence 有着布局方案灵活, 输入法多样, 自动隐藏等特性. 作为教程的一部分, 我也将会示范 ** 如何只使用鼠标来操作 Ubuntu 桌面 **. + +### 在 Linux 中安装 Florence 屏幕键盘 ### + +幸运的是, Florence 存在于大多数 Linux 发行版的基础仓库中. + +在 Debian, Ubuntu 或者 Linux Mint 中: + + $ sudo apt-get install florence + +在 Fedora, CentOS 或者 RHEL (CentOS/RHEL 需要 [EPEL 仓库][5]) 中: + + $ sudo yum install florence + +在 Mandriva 或者 Mageia 中: + + $ sudo urpmi florence + +对于 Archlinux 用户, Florence 存在于 [AUR][6] 中. + +### 配置和加载屏幕键盘 ### + +当你安装好 Florence 之后, 你只需要简单的输入以下命令就能加载屏幕键盘: + + $ florence + +默认情况下, 屏幕键盘总是在其他窗口的顶部, 让你能够在任意活动窗口上进行输入. + +在键盘的左侧点击工具按键来改变 Florence 的默认配置. + +![](https://farm4.staticflickr.com/3923/14873468448_216c794244_z.jpg) + +在 Florence 的 "样式 (style)" 菜单中, 你能够自定义键盘样式, 启用/取消声音效果. + +![](https://farm6.staticflickr.com/5563/14873470478_de81aac39b_o.png) + +在 "窗口 (window)" 菜单中, 你能够调整键盘背景透明度, 按键不透明度, 以及控制键盘比例, 工具栏, 大小和总是置顶等特性. 如果你的分辨率不是非常高, 透明度调整就显得非常有用. 因为屏幕键盘会挡住其他窗口. 在这个例子中, 我切换到透明键盘, 并且设置不透明度为 50%. + +![](https://farm6.staticflickr.com/5556/15060050245_1534127d1c_z.jpg) + +在 "行为 (behaviour)" 菜单中, 你能够改变输入方法. Florence 支持几种不同的输入法: 鼠标 (mouse), 触摸屏 (touch screen), 计时器 (timer) 和漫步 (ramble). 鼠标输入是默认输入法. 最后的两种输入法不需要按键. 计时器输入通过将指针滞留在按键上一定时间来触发按键. 漫步输入的原理跟 ** 计时器 ** 输入差不多, 但是经过训练和灵巧使用, 能够比 ** 计时器 ** 输入更加迅速. + +![](https://farm4.staticflickr.com/3843/14873384900_82baef4c22_o.png) + +在 "布局 (layout)" 菜单中, 你能够改变键盘布局. 比如, 你能够扩展键盘布局来增加导航键, 数字键和功能键. + +![](https://farm6.staticflickr.com/5556/15057015461_e611b6ee25_z.jpg) + +### 只使用鼠标来操作 Ubuntu 桌面 + +我将示范如何将 Florence 集成到 Ubuntu 桌面中, 然后我们不需要实体键盘就能够进入桌面. 这个教程使用 LightDM (Ubuntu 的默认显示管理器) 来进入 Ubuntu, 而类似的环境也能够设置为其他桌面环境. + +初始设置需要实体键盘, 但是一旦设置完成, 你只需要一个鼠标, 而不是键盘. + +当你启动 Ubuntu 桌面时, 启动程序最后会停在显示管理器 (或者登录管理器) 的问候界面. 在这个界面上你需要输入你的登录信息. 默认的情况下, Ubuntu 桌面会使用 LightDM 显示管理器和 Unity 问候界面. 如果没有实体键盘, 你就不能在登录界面输入用户名和密码. + +为了能够在登录界面加载屏幕键盘, 安装配备了屏幕键盘支持的 GTK+ 问候界面. + + $ sudo apt-get install lightdm-gtk-greeter + +然后用编辑器打开问候界面配置文件 (/etc/lightdm/lightdm-gtk-greeter.conf), 指定 Florence 作为屏幕键盘来使用. 你也能够使用 Ubuntu 的默认屏幕键盘 onboard 来代替 Florence. + + $ sudo vi /etc/lightdm/lightdm-gtk-greeter.conf + +---------- + + [greeter] + keyboard=florence --no-gnome --focus & + +![](https://farm6.staticflickr.com/5554/15056999361_180dc724b2_z.jpg) + +重启 Ubuntu 桌面, 然后检查你是否能够在登录界面使用屏幕键盘. + +启动之后当你看到 GTK+ 问候登录界面时, 点击右上角的人形符号. 你会看到 "使用屏幕键盘 (On Screen Keyboard)" 菜单选项, 如下 + +![](https://farm6.staticflickr.com/5554/14873314399_e48bd6eb84_z.jpg) + +点击这个选项, 屏幕键盘就会在登录界面弹出. 现在你应该能够用屏幕键盘来登录了. + +![](https://farm6.staticflickr.com/5572/14873460568_02480cccb7_z.jpg) + +对于 GDM2/GDM3 用户怎么在 GDM2/GDM3 界面上使用屏幕键盘, Florence 官方网页提供了 [文档 (documentation)][7]. + +Ubuntu 桌面完全少键盘化的最后一步是让屏幕键盘在登录后自动启动, 然后我们在登录后能够不使用实体键盘就操作桌面. 为了做到这一点, 创建以下桌面文件. + + $ mkdir -p ~/.config/autostart + $ vi ~/.config/autostart/florence.desktop + +---------- + + [Desktop Entry] + Type=Application + Name=Virtual Keyboard + Comment=Auto-start virtual keyboard + Exec=florence --no-gnome + +这样可以让你在登录到桌面的时候就看到屏幕键盘. + +![](https://farm4.staticflickr.com/3873/15037038376_f8359f3a65_z.jpg) + +希望这个教程对你有用. 与你所看到的一样, Florence 是非常强大的屏幕键盘, 可以用于不同目的. 让我知道你是否在任何情况下使用屏幕键盘. + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/2014/08/onscreen-virtual-keyboard-linux.html + +作者:[Dan Nanni][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:https://developer.gnome.org/gok/ +[2]:http://homepage3.nifty.com/tsato/xvkbd/ +[3]:https://launchpad.net/onboard +[4]:http://florence.sourceforge.net/ +[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html +[6]:https://aur.archlinux.org/packages/florence/ +[7]:http://florence.sourceforge.net/english/how-to.html \ No newline at end of file From 540ee1fc311cdbb83876eb18a7f37eb174063507 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Wed, 3 Dec 2014 11:08:39 +0800 Subject: [PATCH 049/158] =?UTF-8?q?=E5=B7=B2=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../talk => published}/20141127 What Makes a Good Programmer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {translated/talk => published}/20141127 What Makes a Good Programmer.md (99%) diff --git a/translated/talk/20141127 What Makes a Good Programmer.md b/published/20141127 What Makes a Good Programmer.md similarity index 99% rename from translated/talk/20141127 What Makes a Good Programmer.md rename to published/20141127 What Makes a Good Programmer.md index 81c33d222b..1987afb0f6 100644 --- a/translated/talk/20141127 What Makes a Good Programmer.md +++ b/published/20141127 What Makes a Good Programmer.md @@ -14,7 +14,7 @@ 优秀开发者能考虑到如何使程序适合多种不同的场景。这项能力既适用于处理程序本身的逻辑,又适用于处理可能会发生的外部和内部事件。为了考虑逻辑上的不同思路,他们问自己这样的问题:如果这个参数为空会发生什么?如果所有条件都为假呢?这个方法在线程上是安全的吗?为了发现软件需要处理的各种类型的事件,他们问自己这样的问题:如果队列占满了会怎样?如果请求收不到响应会怎样?如果在这台服务器重启的同时另外一台服务器也重启了会怎样? -优秀程序员问他们自己:如何打破自己的程序?换句话说,他们有能力像测试人员一样思考。相反,缺少经验的程序员通常只考虑正确的路径——在一切都按照预期进行时正常的控制流(当然这也是程序在大部分时候的情况)。当然,异常不可避免要发生,所以需要程序能处理这些情况。 +优秀程序员问他们自己:如何发现程序的缺陷?换句话说,他们有能力像测试人员一样思考。相反,缺少经验的程序员通常只考虑正确的路径——在一切都按照预期进行时正常的控制流(当然这也是程序在大部分时候的情况)。当然,异常不可避免要发生,所以需要程序能处理这些情况。 ### 3. 命名 ### From 3d70b82e807e1423a74989ef87138077d7e7c740 Mon Sep 17 00:00:00 2001 From: mdjsjdqe Date: Wed, 3 Dec 2014 11:10:41 +0800 Subject: [PATCH 050/158] Update 20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md --- ...1 Useful Utilities To Supercharge Your Ubuntu Experience.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/share/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md b/sources/share/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md index 13608d6dd5..75dcdc9fbc 100644 --- a/sources/share/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md +++ b/sources/share/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md @@ -1,3 +1,4 @@ +mdjsjdqe translating... 11 Useful Utilities To Supercharge Your Ubuntu Experience ================================================================================ **Whether you’re a relative novice or a seasoned pro, we all want to get the most from our operating system. Ubuntu, like most modern OSes, has more to offer than what is presented at first blush.** @@ -151,4 +152,4 @@ via: http://www.omgubuntu.co.uk/2014/11/useful-tools-for-ubuntu-do-you-use-them [7]:https://apps.ubuntu.com/cat/applications/laptop-mode-tools/ [8]:https://01.org/linuxgraphics/downloads/2014/intelr-graphics-installer-linux-1.0.7 [9]:https://launchpad.net/i-nex -[10]:https://apps.ubuntu.com/cat/applications/bleachbit/ \ No newline at end of file +[10]:https://apps.ubuntu.com/cat/applications/bleachbit/ From f7a105d9afd140aa4f5900b6eb6e44d361109297 Mon Sep 17 00:00:00 2001 From: Jonathan Kang Date: Wed, 3 Dec 2014 15:28:22 +0800 Subject: [PATCH 051/158] JonathanKang is translating --- ...stall and Setup My Weather Indicator in Ubuntu 14.10.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md b/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md index a5e06daef8..0fac43ba93 100644 --- a/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md +++ b/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md @@ -1,3 +1,4 @@ +Translating by JonathanKang How to Install and Setup ‘My Weather Indicator’ in Ubuntu 14.10 ================================================================================ ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/my-weather-indicator.jpg) @@ -23,7 +24,7 @@ To ensure you’re always kept up-to-date with the latest release I recommend ad How? **Open a new Terminal** window (Unity Dash > Terminal, or press Ctrl+Alt+T) and **enter the following two commands carefully**, entering your system password when prompted: sudo add-apt-repository ppa:atareao/atareao - + sudo apt-get update && sudo apt-get install my-weather-indicator #### Setting Up My Weather Indicator #### @@ -36,7 +37,7 @@ The first time you open the app the following Preferences window will open. From ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/Screen-Shot-2014-10-27-at-17.39.07.jpeg) -If you’re travelling (or in need of some small talk fodder) **you can monitor a second locale**, too. This is set up in the same way as the first but in the ‘Second Location’ tab. +If you’re travelling (or in need of some small talk fodder) **you can monitor a second locale**, too. This is set up in the same way as the first but in the ‘Second Location’ tab. Checking the ‘**Show Widget**’ box in the “**Widget Options**” section adds a small forecast desklet to your desktop. There are a number of different skins included, so be sure to play around to find the one you like the most (note: widget changes are applied on clicking ‘Ok’). @@ -72,4 +73,4 @@ via: http://www.omgubuntu.co.uk/2014/10/install-weather-indicator-ubuntu-14-10 [2]:https://launchpad.net/my-weather-indicator [3]:https://launchpad.net/~atareao/+archive/ubuntu/atareao [4]:http://openweathermap.org/ -[5]:http://www.omgubuntu.co.uk/2014/02/get-weather-forecast-terminal-linux \ No newline at end of file +[5]:http://www.omgubuntu.co.uk/2014/02/get-weather-forecast-terminal-linux From de32ba5c778ae71ea7273e4999b1a58cd4276ebb Mon Sep 17 00:00:00 2001 From: DeadFire Date: Wed, 3 Dec 2014 15:33:41 +0800 Subject: [PATCH 052/158] =?UTF-8?q?20141203-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20141203 Docker--Present and Future.md | 156 ++++++++++++++++++ ...0141203 Undelete Files on Linux Systems.md | 118 +++++++++++++ 2 files changed, 274 insertions(+) create mode 100644 sources/talk/20141203 Docker--Present and Future.md create mode 100644 sources/tech/20141203 Undelete Files on Linux Systems.md diff --git a/sources/talk/20141203 Docker--Present and Future.md b/sources/talk/20141203 Docker--Present and Future.md new file mode 100644 index 0000000000..a3d101b56c --- /dev/null +++ b/sources/talk/20141203 Docker--Present and Future.md @@ -0,0 +1,156 @@ +Docker: Present and Future +================================================================================ +### Docker - the story so far ### + +Docker is a toolset for Linux containers designed to ‘build, ship and run’ distributed applications. It was first released as an open source project by DotCloud in March 2013. The project quickly became popular, leading to DotCloud rebranded as Docker Inc (and ultimately [selling off their original PaaS business][1]). [Docker 1.0][2] was released in June 2014, and the monthly release cadence that led up to the June release has been sustained since. + +The 1.0 release marked the point where Docker Inc considered the platform sufficiently mature to be used in production (with the company and partners providing paid for support options). The monthly release of point updates shows that the project is still evolving quickly, adding new features, and addressing issues as they are found. The project has however successfully decoupled ‘ship’ from ‘run’, so images sourced from any version of Docker can be used with any other version (with both forward and backward compatibility), something that provides a stable foundation for Docker use despite rapid change. + +The growth of Docker into one of the most popular open source projects could be perceived as hype, but there is a great deal of substance. Docker has attracted support from many brand names across the industry, including Amazon, Canonical, CenturyLink, Google, IBM, Microsoft, New Relic, Pivotal, Red Hat and VMware. This is making it almost ubiquitously available wherever Linux can be found. In addition to the big names many startups are growing up around Docker, or changing direction to be better aligned with Docker. Those partnerships (large and small) are helping to drive rapid evolution of the core project and its surrounding ecosystem. + +### A brief technical overview of Docker ### + +Docker makes use of Linux kernel facilities such as [cGroups][3], namespaces and [SElinux][4] to provide isolation between containers. At first Docker was a front end for the [LXC][5] container management subsystem, but release 0.9 introduced [libcontainer][6], which is a native Go language library that provides the interface between user space and the kernel. + +Containers sit on top of a union file system, such as [AUFS][7], which allows for the sharing of components such as operating system images and installed libraries across multiple containers. The layering approach in the filesystem is also exploited by the [Dockerfile][8] DevOps tool, which is able to cache operations that have already completed successfully. This can greatly speed up test cycles by taking out the wait time usually taken to install operating systems and application dependencies. Shared libraries between containers can also reduce RAM footprint. + +A container is started from an image, which may be locally created, cached locally, or downloaded from a registry. Docker Inc operates the [Docker Hub public registry][9], which hosts official repositories for a variety of operating systems, middleware and databases. Organisations and individuals can host public repositories for images at Docker Hub, and there are also subscription services for hosting private repositories. Since an uploaded image could contain almost anything Docker Hub provides an automated build facility (that was previously called ‘trusted build’) where images are constructed from a Dockerfile that serves as a manifest for the contents of the image. + +### Containers versus VMs ### + +Containers are potentially much more efficient than VMs because they’re able to share a single kernel and share application libraries. This can lead to substantially smaller RAM footprints even when compared to virtualisation systems that can make use of RAM overcommitment. Storage footprints can also be reduced where deployed containers share underlying image layers. IBM’s Boden Russel has done [benchmarking][10] that illustrates these differences. + +Containers also present a lower systems overhead than VMs, so the performance of an application inside a container will generally be the same or better versus the same application running within a VM. A team of IBM researchers have published a [performance comparison of virtual machines and Linux containers][11]. + +One area where containers are weaker than VMs is isolation. VMs can take advantage of ring -1 [hardware isolation][12] such as that provided by Intel’s VT-d and VT-x technologies. Such isolation prevents VMs from ‘breaking out’ and interfering with each other. Containers don’t yet have any form of hardware isolation, which makes them susceptible to exploits. A proof of concept attack named [Shocker][13] showed that Docker versions prior to 1.0 were vulnerable. Although Docker 1.0 fixed the particular issue exploited by Shocker, Docker CTO Solomon Hykes [stated][14], “When we feel comfortable saying that Docker out-of-the-box can safely contain untrusted uid0 programs, we will say so clearly.”. Hykes’s statement acknowledges that other exploits and associated risks remain, and that more work will need to be done before containers can become trustworthy. + +For many use cases the choice of containers or VMs is a false dichotomy. Docker works well within a VM, which allows it to be used on existing virtual infrastructure, private clouds and public clouds. It’s also possible to run VMs inside containers, which is something that Google uses as part of its cloud platform. Given the widespread availability of infrastructure as a service (IaaS) that provides VMs on demand it’s reasonable to expect that containers and VMs will be used together for years to come. It’s also possible that container management and virtualisation technologies might be brought together to provide a best of both worlds approach; so a hardware trust anchored micro virtualisation implementation behind libcontainer could integrate with the Docker tool chain and ecosystem at the front end, but use a different back end that provides better isolation. Micro virtualisation (such as Bromium’s [vSentry][15] and VMware’s [Project Fargo][16]) is already used in desktop environments to provide hardware based isolation between applications, so similar approaches could be used along with libcontainer as an alternative to the container mechanisms in the Linux kernel. + +### ‘Dockerizing’ applications ### + +Pretty much any Linux application can run inside a Docker container. There are no limitations on choice of languages or frameworks. The only practical limitation is what a container is allowed to do from an operating system perspective. Even that bar can be lowered by running containers in privileged mode, which substantially reduces controls (and correspondingly increases risk of the containerised application being able to cause damage to the host operating system). + +Containers are started from images, and images can be made from running containers. There are essentially two ways to get applications into containers - manually and Dockerfile.. + +#### Manual builds #### + +A manual build starts by launching a container with a base operating system image. An interactive terminal can then be used to install applications and dependencies using the package manager offered by the chosen flavour of Linux. Zef Hemel provides a walk through of the process in his article ‘[Using Linux Containers to Support Portable Application Deployment][17]’. Once the application is installed the container can be pushed to a registry (such as Docker Hub) or exported into a tar file. + +#### Dockerfile #### + +Dockerfile is a system for scripting the construction of Docker containers. Each Dockerfile specifies the base image to start from and then a series of commands that are run in the container and/or files that are added to the container. The Dockerfile can also specify ports to be exposed, the working directory when a container is started and the default command on startup. Containers built with Dockerfiles can be pushed or exported just like manual builds. Dockerfiles can also be used in Docker Hub’s automated build system so that images are built from scratch in a system under the control of Docker Inc with the source of that image visible to anybody that might use it. + +#### One process? #### + +Whether images are built manually or with Dockerfile a key consideration is that only a single process is invoked when the container is launched. For a container serving a single purpose, such as running an application server, running a single process isn’t an issue (and some argue that containers should only have a single process). For situations where it’s desirable to have multiple processes running inside a container a [supervisor][18] process must be launched that can then spawn the other desired processes. There is no init system within containers, so anything that relies on systemd, upstart or similar won’t work without modification. + +### Containers and microservices ### + +A full description of the philosophy and benefits of using a microservices architecture is beyond the scope of this article (and well covered in the [InfoQ eMag: Microservices][19]). Containers are however a convenient way to bundle and deploy instances of microservices. + +Whilst most practical examples of large scale microservices deployments to date have been on top of (large numbers of) VMs, containers offer the opportunity to deploy at a smaller scale. The ability for containers to have a shared RAM and disk footprint for operating systems, libraries common application code also means that deploying multiple versions of services side by side can be made very efficient. + +### Connecting containers ### + +Small applications will fit inside a single container, but in many cases an application will be spread across multiple containers. Docker’s success has spawned a flurry of new application compositing tools, orchestration tools and platform as a service (PaaS) implementations. Behind most of these efforts is a desire to simplify the process of constructing an application from a set of interconnected containers. Many tools also help with scaling, fault tolerance, performance management and version control of deployed assets. + +#### Connectivity #### + +Docker’s networking capabilities are fairly primitive. Services within containers can be made accessible to other containers on the same host, and Docker can also map ports onto the host operating system to make services available across a network. The officially sponsored approach to connectivity is [libchan][20], which is a library that provides Go like [channels][21] over the network. Until libchan finds its way into applications there’s room for third parties to provide complementary network services. For example, [Flocker][22] has taken a proxy based approach to make services portable across hosts (along with their underlying storage). + +#### Compositing #### + +Docker has native mechanisms for linking containers together where metadata about a dependency can be passed into the dependent container and consumed within as environment variables and hosts entries. Application compositing tools like [Fig][23] and [geard][24] express the dependency graph inside a single file so that multiple containers can be brought together into a coherent system. CenturyLink’s [Panamax][25] compositing tool takes a similar underlying approach to Fig and geard, but adds a web based user interface, and integrates directly with GitHub so that applications can be shared. + +#### Orchestration #### + +Orchestration systems like [Decking][26], New Relic’s [Centurion][27] and Google’s [Kubernetes][28] all aim to help with the deployment and life cycle management of containers. There are also numerous examples (such as [Mesosphere][29]) of [Apache Mesos][30] (and particularly its [Marathon][31] framework for long running applications) being used along with Docker. By providing an abstraction between the application needs (e.g. expressed as a requirement for CPU cores and memory) and underlying infrastructure, the orchestration tools provide decoupling that’s designed to simplify both application development and data centre operations. There is such a variety of orchestration systems because many have emerged from internal systems previously developed to manage large scale deployments of containers; for example Kubernetes is based on Google’s [Omega][32] system that’s used to manage containers across the Google estate. + +Whilst there is some degree of functional overlap between the compositing tools and the orchestration tools there are also ways that they can complement each other. For example Fig might be used to describe how containers interact functionally whilst Kubernetes pods might be used to provide monitoring and scaling. + +#### Platforms (as a Service) #### + +A number of Docker native PaaS implementations such as [Deis][33] and [Flynn][34] have emerged to take advantage of the fact that Linux containers provide a great degree of developer flexibility (rather than being ‘opinionated’ about a given set of languages and frameworks). Other platforms such as CloudFoundry, OpenShift and Apcera Continuum have taken the route of integrating Docker based functionality into their existing systems, so that applications based on Docker images (or the Dockerfiles that make them) can be deployed and managed alongside of apps using previously supported languages and frameworks. + +### All the clouds ### + +Since Docker can run in any Linux VM with a reasonably up to date kernel it can run in pretty much every cloud offering IaaS. Many of the major cloud providers have announced additional support for Docker and its ecosystem. + +Amazon have introduced Docker into their Elastic Beanstalk system (which is an orchestration service over underlying IaaS). Google have Docker enabled ‘managed VMs’, which provide a halfway house between the PaaS of App Engine and the IaaS of Compute Engine. Microsoft and IBM have both announced services based on Kubernetes so that multi container applications can be deployed and managed on their clouds. + +To provide a consistent interface to the wide variety of back ends now available the Docker team have introduced [libswarm][35], which will integrate with a multitude of clouds and resource management systems. One of the stated aims of libswarm is to ‘avoid vendor lock-in by swapping any service out with another’. This is accomplished by presenting a consistent set of services (with associated APIs) that attach to implementation specific back ends. For example the Docker server service presents the Docker remote API to a local Docker command line tool so that containers can be managed on an array of service providers. + +New service types based on Docker are still in their infancy. London based Orchard labs offered a Docker hosting service, but Docker Inc said that the service wouldn’t be a priority after acquiring Orchard. Docker Inc has also sold its previous DotCloud PaaS business to cloudControl. Services based on older container management systems such as [OpenVZ][36] are already commonplace, so to a certain extent Docker needs to prove its worth to hosting providers. + +### Docker and the distros ### + +Docker has already become a standard feature of major Linux distributions like Ubuntu, Red Hat Enterprise Linux (RHEL) and CentOS. Unfortunately the distributions move at a different pace to the Docker project, so the versions found in a distribution can be well behind the latest available. For example Ubuntu 14.04 was released with Docker 0.9.1, and that didn’t change on the point release upgrade to Ubuntu 14.04.1 (by which time Docker was at 1.1.2). There are also namespace issues in official repositories since Docker was also the name of a KDE system tray; so with Ubuntu 14.04 the package name and command line tool are both ‘docker.io’. + +Things aren’t much different in the Enterprise Linux world. CentOS 7 comes with Docker 0.11.1, a development release that precedes Docker Inc’s announcement of production readiness with Docker 1.0. Linux distribution users that want the latest version for promised stability, performance and security will be better off following the [installation instructions][37] and using repositories hosted by Docker Inc rather than taking the version included in their distribution. + +The arrival of Docker has spawned new Linux distributions such as [CoreOS][38] and Red Hat’s [Project Atomic][39] that are designed to be a minimal environment for running containers. These distributions come with newer kernels and Docker versions than the traditional distributions. They also have lower memory and disk footprints. The new distributions also come with new tools for managing large scale deployments such as [fleet][40] ‘a distributed init system’ and [etcd][41] for metadata management. There are also new mechanisms for updating the distribution itself so that the latest versions of the kernel and Docker can be used. This acknowledges that one of the effects of using Docker is that it pushes attention away from the distribution and its package management solution, making the Linux kernel (and Docker subsystem using it) more important. + +New distributions might be the best way of running Docker, but traditional distributions and their package managers remain very important within containers. Docker Hub hosts official images for Debian, Ubuntu, and CentOS. There’s also a ‘semi-official’ repository for Fedora images. RHEL images aren’t available in Docker Hub, as they’re distributed directly from Red Hat. This means that the automated build mechanism on Docker Hub is only available to those using pure open source distributions (and willing to trust the provenance of the base images curated by the Docker Inc team). + +Whilst Docker Hub integrates with source control systems such as GitHub and Bitbucket for automated builds the package managers used during the build process create a complex relationship between a build specification (in a Dockerfile) and the image resulting from a build. Non deterministic results from the build process isn’t specifically a Docker problem - it’s a result of how package managers work. A build done one day will get a given version, and a build done another time may get a later version, which is why package managers have upgrade facilities. The container abstraction (caring less about the contents of a container) along with container proliferation (because of lightweight resource utilisation) is however likely to make this a pain point that gets associated with Docker. + +### The future of Docker ### + +Docker Inc has set a clear path on the development of core capabilities (libcontainer), cross service management (libswarm) and messaging between containers (libchan). Meanwhile the company has already shown a willingness to consume its own ecosystem with the Orchard Labs acquisition. There is however more to Docker than Docker Inc, with contributions to the project coming from big names like Google, IBM and Red Hat. With a benevolent dictator in the shape of CTO Solomon Hykes at the helm there is a clear nexus of technical leadership for both the company and the project. Over its first 18 months the project has shown an ability to move fast by using its own output, and there are no signs of that abating. + +Many investors are looking at the features matrix for VMware’s ESX/vSphere platform from a decade ago and figuring out where the gaps (and opportunities) lie between enterprise expectations driven by the popularity of VMs and the existing Docker ecosystem. Areas like networking, storage and fine grained version management (for the contents of containers) are presently underserved by the existing Docker ecosystem, and provide opportunities for both startups and incumbents. + +Over time it’s likely that the distinction between VMs and containers (the ‘run’ part of Docker) will become less important, which will push attention to the ‘build’ and ‘ship’ aspects. The changes here will make the question of ‘what happens to Docker?’ much less important than ‘what happens to the IT industry as a result of Docker?’. + +-------------------------------------------------------------------------------- + +via: http://www.infoq.com/articles/docker-future + +作者:[Chris Swan][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.infoq.com/author/Chris-Swan +[1]:http://blog.dotcloud.com/dotcloud-paas-joins-cloudcontrol +[2]:http://www.infoq.com/news/2014/06/docker_1.0 +[3]:https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt +[4]:http://selinuxproject.org/page/Main_Page +[5]:https://linuxcontainers.org/ +[6]:http://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/ +[7]:http://aufs.sourceforge.net/aufs.html +[8]:https://docs.docker.com/reference/builder/ +[9]:https://registry.hub.docker.com/ +[10]:http://bodenr.blogspot.co.uk/2014/05/kvm-and-docker-lxc-benchmarking-with.html?m=1 +[11]:http://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf +[12]:https://en.wikipedia.org/wiki/X86_virtualization#Hardware-assisted_virtualization +[13]:http://stealth.openwall.net/xSports/shocker.c +[14]:https://news.ycombinator.com/item?id=7910117 +[15]:http://www.bromium.com/products/vsentry.html +[16]:http://cto.vmware.com/vmware-docker-better-together/ +[17]:http://www.infoq.com/articles/docker-containers +[18]:http://docs.docker.com/articles/using_supervisord/ +[19]:http://www.infoq.com/minibooks/emag-microservices +[20]:https://github.com/docker/libchan +[21]:https://gobyexample.com/channels +[22]:http://www.infoq.com/news/2014/08/clusterhq-launch-flocker +[23]:http://www.fig.sh/ +[24]:http://openshift.github.io/geard/ +[25]:http://panamax.io/ +[26]:http://decking.io/ +[27]:https://github.com/newrelic/centurion +[28]:https://github.com/GoogleCloudPlatform/kubernetes +[29]:https://mesosphere.io/2013/09/26/docker-on-mesos/ +[30]:http://mesos.apache.org/ +[31]:https://github.com/mesosphere/marathon +[32]:http://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/41684.pdf +[33]:http://deis.io/ +[34]:https://flynn.io/ +[35]:https://github.com/docker/libswarm +[36]:http://openvz.org/Main_Page +[37]:https://docs.docker.com/installation/#installation +[38]:https://coreos.com/ +[39]:http://www.projectatomic.io/ +[40]:https://github.com/coreos/fleet +[41]:https://github.com/coreos/etcd \ No newline at end of file diff --git a/sources/tech/20141203 Undelete Files on Linux Systems.md b/sources/tech/20141203 Undelete Files on Linux Systems.md new file mode 100644 index 0000000000..d0fa7f6a98 --- /dev/null +++ b/sources/tech/20141203 Undelete Files on Linux Systems.md @@ -0,0 +1,118 @@ +Undelete Files on Linux Systems +================================================================================ +Often times, a computer user will delete a needed file accidentally and not have an easy way to regain or recreate the file. Thankfully, files can be undeleted. When a user deletes a file, it is not gone, only hidden for some time. Here is how it all works. On a filesystem, the system has what is called a file allocation list. This list keeps track of what files are where on the storage unit (hard-drive, MicroSD card, flash-drive, etc.). When a file is deleted, the filesystem will perform one of two tasks on the allocation table. The file's entry on the file allocation table marked as "free space" or the file's entry on the list is erased and then the space is marked as free. Now, if a file needs to be placed on the storage unit, the operating system will put the file in the space marked as empty. After the new file is written to the "empty space", the deleted file is now gone forever. When a deleted file is to be recovered, the user must not manipulate any files because if the "empty space" is used, then the file can never be retrieved. + +### How do undelete programs work? ### + +The majority of filesystems only mark the space as empty. With these filesystems, the undelete program looks at the file allocation list and copies the deleted file to another storage unit. If the files were copied to the same storage unit, then the user could lose other deleted files that are needed. + +Rarely do filesystems erase the allocation table entry. If a filesystem does, this is how an undelete program undeletes the file. The program searches the storage unit for file headers. All files have a specific string of code that is at the very beginning of the file. This is called a magic number. For example, the magic number of a compiled JAVA class is the hex number "CAFEBABE". So, an undelete program would find "CAFEBABE" and copy that file to another storage unit. Some undelete programs can look for a specific file type. The user may want a PDF, so the program searches for the hex magic number "25504446" which is the ASCII code for "%PDF". Other undelete programs search for all magic numbers. Then, the user can select which deleted files to recover. + +If a part of the file has been written over, then the whole file will be corrupted. The file can usually be recovered, but the contents will be useless. For instance, recovering a corrupted JPEG file will be pointless because the image viewer will not be able to generate an image from the file. So, the user has the file, but the file is useless. + +### Device Locations: ### + +Before we continue, here is some information that will aid in directing the undelete utilities to the correct storage unit. All devices are in the /dev/ folder. The name of each device (not the name that the admin gave each partition or device) that is given by the system follows a predictable scheme. The second partition on the first SATA hard-drive would be sda2. The first letter indicates the storage type, in this case SATA, but an "s" could also mean SCSI, FireWire, or USB. The second letter "d" means disk. The third letter indicates the device number, so an "a" would be the first SATA and a "b" would be the second. The number displays the partition. To name the whole device with all partitions type the letters without the number. For this example that would be sda. Other possible letters "h" as the first letter. This means PATA hard-drive (IDE). As some examples of this scheme, a user has a computer with one SATA hard-drive (sda). The drive has four partitions - sda1, sda2, sda3, and sda4. The user deletes the third one, but sda4 remains sda4 until sda4 is reformatted. The user then plugs in a usb memory card (sdb) with one partition - sdb1. The user then adds a IDE hard-drive with one partition - hda1. Next, the user adds a SCSI hard-drive - sdc1. Then, the user removes the USB memory card (sdb). Now, the SCSI remains sdc, but if the SCSI is removed and added back, it will be sdb. Even though other storage device existed, the IDE drive will have the "a" because it is the first IDE drive. IDE devices are numbered separately from SCSI, SATA, FireWire, and USB devices. + +### Recovery: ### + +Each undelete program has different abilities, features, and support for various filesystems. Below are some instructions for using TestDisk to recover files on a set of filesystems. + +**FAT16, FAT32, exFAT (FAT64), NTFS, and ext2/3/4:** + +TestDisk is an open-source, free program that works on Linux, *BSD, SunOS, Mac OS X, DOS, and Windows. TestDisk can be found here: [http://www.cgsecurity.org/wiki/TestDisk][1]. TestDisk can also be installed by typing "sudo apt-get install testdisk". TestDisk has many abilities, but this article is concerned with undeleting files. + +Open TestDisk in a terminal using root privileges by typing “sudo testdisk”. + +Now, the TestDisk command-line application will execute. The terminal appearance will change. TestDisk asks the user if it can keep logs. This is entirely up to the user. If the user is recovering files from the system storage, then do not keep a log. The choices are "Create", "Append", and "No Log". If the user wants a log, it is kept in that user's home folder. + +![](http://www.linux.org/attachments/screen1-jpg.342/) + +In the following screen, the storage devices are listed using the /dev/* method. For my system, the system's storage unit is /dev/sda. This means that my storage unit is a SATA hard-drive (sd) and it is the first hard-drive (a). The size of each storage unit is displayed in Gigabytes. Use the up and down arrows to select a storage device and hit enter. + +![](http://www.linux.org/attachments/screen2-jpg.343/) + +The next screen displays a list of partition table (also called partition map) types. Just as there is the file allocation table for files, there is a table for the partitions. Partitions are dividers on a storage device. For instance, on almost all Linux systems there is at least two partitions - EXT3/4 and Swap. Each partition table will be briefly described. TestDisk does not support all partition tables, so this is not a complete list. + +![](http://www.linux.org/attachments/screen3-jpg.344/) + +- **Intel** - This partition table is very common on Windows systems and many Linux systems. This table is also know as MBR. +- **EFI GPT** - This is usually used with Linux systems. This partition map is most recommended for Linux because the concept of logical/extended partitions does not apply to GPT (GUID Partition Table) tables. This means that a Linux user can multiboot many forms of Linux with one Linux OS on each partition. There are other advantages to using GPT, but that is beyond this article. +- **Humax** - Humax maps are used with device made by the South Korean company Humax. +- **Mac** - The Apple Partition Map (APM) is used by Apple devices. +- **None** - Some devices do not have a partition table. For instance, many Subor game consoles do not use a partition map. If a user tried to undelete a file on these devices thinking that the partition map was one of the other choices, the user will be confused by the fact that TestDisk does not find any filesystem or files. +- **Sun** - The Sun partition table is used by Sun systems. +- **Xbox** - The Xbox uses the Xbox partition map for its storage devices. + +If a user selects "Xbox" even though their system uses GPT, TestDisk will not be able to find a partition or filesystem. If it does, then it will guess incorrectly. (The image below displays the output when the incorrect partition type) + +![](http://www.linux.org/attachments/xbox-jpg.350/) + +Once the user picks the correct choice for their device, on the next screen, select "Advanced". + +![](http://www.linux.org/attachments/screen4-jpg.345/) + +Now, the user should see a list of all of their filesystems/partitions on the storage unit. If the user had chosen the wrong partition map, then here is where they will know if they made the incorrect selection. If there are no errors, highlight the partition that contains the deleted file by placing the text-based cursor on it. Use the left and right arrows to highlight "List" on the bottom of the terminal. Now, hit enter. + +![](http://www.linux.org/attachments/screen5-jpg.346/) + +A new screen is displayed with a list of files and folders. The whitish files are current files that are not deleted. The red files have been deleted. On the far right column is the files' names. The next column over to the left is the creation date of the file. One column over to the left again is the files' sizes in bytes. To the far left is a column with dashes, "d"s, "r"s, "w"s, and "x"s. These are the file permissions. A "d" indicates that the item is a directory. The rest of the permission syntax is irrelevant to this article. The item on the top of the file list titled "." means the current directory. The second object titled ".." means go up one directory, so a user can move up a directory by selecting this line. For an example, I will go into the directory "Xaiml_Dataset". The folder is nearly full of deleted files. I will undelete "computers.xaiml" by pressing "c" on the keyboard. I am now asked to select a destination directory. Of course, I will put it on another partition. I am in my home folder, and I press "c". It does not matter what folder is highlighted. The current folder is the destination directory. Now, I am back to the list of files. At the top of the screen is a message that says "Copy Done!". In my home folder is a folder called "Xaiml_Dataset", and inside is the Xaiml file. If I press "c" on more deleted files, they will be placed in the new folder without a****g me for a destination. + +![](http://www.linux.org/attachments/screen6-jpg.347/) + +![](http://www.linux.org/attachments/screen7-jpg.348/) + +![](http://www.linux.org/attachments/screen8-jpg.349/) + +When finished press "q" repeatedly until the normal terminal is seen. The folder "Xaiml_Dataset" can only be accessed by the root. To fix this, use root privileges to change the folder permissions and the contained files. After that, the files have been recovered and accessible to the user. + +### ReiserFS: ### + +To undelete a file from a ReiserFS filesystem, make a backup of all of the files on the partition because this method can cause the file to be lost if something goes wrong. Next, execute the following command where DEVICE is the device in the form sda2. Some files will be put in the lost+found directory and other will remain where they were before deletion. + + reiserfsck --rebuild-tree --scan-whole-partition /dev/DEVICE + +### Recover Deleted File that is Open in a Program: ### + +Assume a user accidentally deletes a file that a program has open. The file of the hard-drive was deleted, but the program is using a copy of the file that is on the RAM. Thankfully, there are two easy solutions. + +If the program has save capabilities like a text editor, the user can resave the file. Thus, the file editor will write the file to the hard-drive. + +Assume that this is an MP3 file in a music player. The music player cannot save the MP3 file. This task requires a little more time than the previous situation. Unfortunately, this method does not work on all systems and applications. To begin, type the following command. + + lsof -c smplayer | grep mp3 + +This command LiSts all of the Open Files used by Smplayer. This list is piped (given) to grep which searches for mp3. The output looks like the following. + + smplayer 10037 collier mp3 169r 8,1 676376 1704294 /usr/bin/smplayer + +Now, type the following command to recover the file directly from the RAM (on Linux systems, /proc/ is the RAM) and copy it to a folder of choice. The "cp" is the copy command. The 10037 number comes from the process number given in the output. The 169 is the file descriptor shown in the output. The "~/Music/" is the destination directory. Lastly, "music.mp3" is the file name that the user wants for the file. + + cp /proc/10037/fd/169 ~/Music/music.mp3 + +### Real Deletion: ### + +To make for sure that a file can never be recovered, use a command that "wipes" the hard-drive. Wiping the hard-drive means writing meaningless data to the disk. For example, many wiping programs write zeros, random letters, or random data to the hard-drive. No space is taken up or lost. The wiping program just overwrites the "empty space". If the storage unit is ever full of files with no free space remaining, then all of the previously deleted files will be gone. + +The purpose of wiping hard-drives is to make sure that private data is never seen. For illustration, a company may order new computers. The manager decides to sell the old computers. However, there is concern that the new owners may view company secrets or customer information like credit card numbers and addresses. Thankfully, a computer technician in the company can wipe the hard-drives before selling the old computers. + +To install secure-delete, a wiping program, type "sudo apt-get install secure-delete". This installs a set of four commands that make sure that deleted files are never recovered. + +- srm - permanently delete a file. Usage: srm -f ./secret_file.txt +- sfill - wipe the free space. Usage: sfill -f /mount/point/of/partition +- sswap - wipe swap space. Usage: sswap -f /dev/SWAP_DEVICE + +If computers were to truly delete a file selected for deletion, then more time would be required to perform the task. It is quick and easy to mark some space as free, but to make the file gone forever requires time. Wiping a storage unit, for instance, takes a few hours to complete (depending on storage size). Overall, the current system works well because even when a user empties the recycle bin, they still have another chance to change their mind. + +-------------------------------------------------------------------------------- + +via: http://www.linux.org/threads/undelete-files-on-linux-systems.4316/ + +作者:[DevynCJohnson][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.linux.org/members/devyncjohnson.4843/ +[1]:http://www.cgsecurity.org/wiki/TestDisk \ No newline at end of file From 08635e022f0999478a30a3923c5888d5d7f67891 Mon Sep 17 00:00:00 2001 From: forsil Date: Wed, 3 Dec 2014 16:43:22 +0800 Subject: [PATCH 053/158] forsil transliating ... --- sources/tech/20141203 Undelete Files on Linux Systems.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20141203 Undelete Files on Linux Systems.md b/sources/tech/20141203 Undelete Files on Linux Systems.md index d0fa7f6a98..4c81d5a7b2 100644 --- a/sources/tech/20141203 Undelete Files on Linux Systems.md +++ b/sources/tech/20141203 Undelete Files on Linux Systems.md @@ -1,3 +1,5 @@ +forsil translating ... + Undelete Files on Linux Systems ================================================================================ Often times, a computer user will delete a needed file accidentally and not have an easy way to regain or recreate the file. Thankfully, files can be undeleted. When a user deletes a file, it is not gone, only hidden for some time. Here is how it all works. On a filesystem, the system has what is called a file allocation list. This list keeps track of what files are where on the storage unit (hard-drive, MicroSD card, flash-drive, etc.). When a file is deleted, the filesystem will perform one of two tasks on the allocation table. The file's entry on the file allocation table marked as "free space" or the file's entry on the list is erased and then the space is marked as free. Now, if a file needs to be placed on the storage unit, the operating system will put the file in the space marked as empty. After the new file is written to the "empty space", the deleted file is now gone forever. When a deleted file is to be recovered, the user must not manipulate any files because if the "empty space" is used, then the file can never be retrieved. From 5590da98619fc2754dc9bc54cb9a462a5df0d48f Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Wed, 3 Dec 2014 17:32:21 +0800 Subject: [PATCH 054/158] ignore .DS_Store --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5786eaea13..7b56441580 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ members.md *.html *.bak +.DS_Store From 914ae202b7e207116e7d4edd4783b51cb40b909f Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Wed, 3 Dec 2014 17:38:55 +0800 Subject: [PATCH 055/158] Translating by Stevearzh --- .../20141127 Five Magnificent Linux Music Streaming Clients.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md b/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md index 35668c76ff..39103cd0df 100644 --- a/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md +++ b/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md @@ -1,3 +1,4 @@ +[Translating by Stevearzh] Five Magnificent Linux Music Streaming Clients ================================================================================ Digital streams almost totally command my music listening these days. Over the years I have amassed a large collection of CDs at considerable expense; most of them now sit neglected gathering dust. Almost all music streaming services fall short of the audio quality of CDs, but their popularity has more to do with sheer convenience than high-fidelity sound reproduction. Music streaming has not only been to the detriment of CD sales; digital downloads have also experienced a slowing down of sales. This is only set to continue. Audiophiles may be tempted to embrace music streaming given that there are now services such as Tidal which offers high fidelity music streaming, 25 million tracks encoded with the FLAC format streamed at 1,411kbps. From 9756548568a382f36db1cd9991c64bc2a3109881 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Wed, 3 Dec 2014 17:55:57 +0800 Subject: [PATCH 056/158] Translating by ZTinoZ --- ...10 SCP Commands to Transfer Files or Folders in Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index c88e97661c..1f24bb757c 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -5,13 +5,13 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ![](http://www.tecmint.com/wp-content/uploads/2013/10/SCP-Commands.png) -The below command will read as “**copy source_file_name**” into “**destination_folder**” at “**destination_host**” using “**username account**”. +以下命令可以解读为:用“**username account**”“**复制 source file name**”到“**destination host**”上的“**destination folder**”里。 -#### Basic syntax of SCP #### +#### SCP命令的基本语法 #### scp source_file_name username@destination_host:destination_folder -There are much parameters in **SCP** command that you can use. Here are the parameters that may useful on daily basis usage. +**SCP**命令有很多参数供你使用,这里指的是每次都会用到的参数。 ### Provide the detail information of SCP process using -v parameter ### From f9b557d2f785d0fd4eba7b6b52650977438f9a69 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 3 Dec 2014 21:30:08 +0800 Subject: [PATCH 057/158] PUB:20141119 When Microsoft Went A-Courting @GOLinux --- ...20141119 When Microsoft Went A-Courting.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) rename {translated/talk => published}/20141119 When Microsoft Went A-Courting.md (74%) diff --git a/translated/talk/20141119 When Microsoft Went A-Courting.md b/published/20141119 When Microsoft Went A-Courting.md similarity index 74% rename from translated/talk/20141119 When Microsoft Went A-Courting.md rename to published/20141119 When Microsoft Went A-Courting.md index df64dbb661..e200ca07f2 100644 --- a/translated/talk/20141119 When Microsoft Went A-Courting.md +++ b/published/20141119 When Microsoft Went A-Courting.md @@ -2,21 +2,21 @@ ================================================================================ ![](http://www.linuxinsider.com/ai/769827/microsoft-linux-open-source.jpg) -**开源.Net“这与Linux无关——它与SaaS相关,也和一位并不偏执和狂热的90后CEO相关,”SoylentNews博主hairyfeet道,“纳德拉很明智,而且意识到了编程语言的价值不在于专利或OS排他性,而在于服务和对语言的支持……越多的平台使用该语言,它就会越好。”** +**开源.Net,“这与Linux无关——它与SaaS相关,也和一位并不偏执和狂热的90后CEO相关,”SoylentNews博主hairyfeet道,“纳德拉很明智,而且意识到了编程语言的价值不在于专利或OS排他性,而在于服务和对语言的支持……越多的平台使用该语言,它就会越好。”** -如果自由和开源软件迷们在过去的几天里感到有些许困惑的话,他们也许可能会被原谅的,头昏、头痛以及头晕也会显得司空见惯了。 +如果自由和开源软件迷们在过去的那些日子里感到有些许困惑的话,这也许是可以理解的,即便是头昏、头痛以及头晕也算是常见的。 你或许会问,这又是什么新的病症? -好吧,Linux女孩很高兴告诉你,它不是什么病症。那个,然而它并不意味着它很容易治愈。 +好吧,Linux女孩很高兴告诉你,它不是什么病症。不过,然而它并不意味着它很容易治愈。 原因无他,而是微软开源.Net并让它可以在Linux或Mac OS上运行的消息。 -是的,你没听错:史蒂夫·鲍尔默曾经可能[称Linux为“癌症”][1],但今天雷蒙德有个新发现,曾经不被包容的[对Linux的“爱”][2]! +是的,你没听错:史蒂夫·鲍尔默曾经可能[称Linux为“癌症”][1],但今天雷蒙德(微软总部,代称微软)有个新发现,曾经不被包容的,但是却转头[“爱”上了Linux][2]! -它让微软表现出新的奇怪方式——它也驱使FOSS迷们聚拢到博客圈的破败的Broken Windows Lounge,数量更是空前。 +它让微软看起来很奇怪——它也驱使FOSS迷们聚拢到博客圈的破败的Broken Windows Lounge,而去的人的数量更是空前的。 -龙舌兰可以赋予它全部的意义么?这是现在众多调查的问题之一。 +一杯龙舌兰可以让你不再头疼么?这是现在众多探究的问题之一。 ### ‘繁荣的机遇’ ### @@ -24,9 +24,9 @@ ![](http://www.linuxinsider.com/images/article_images/linuxgirl_bg_pinkswirl_150x245.jpg) -“我们生活的世界中,即使没有大的商业公司支持,新的开源编程语言也很兴旺,而关闭的开源编程语言也仅仅在大的商业公司的帮助下摆脱了困境,”特拉弗斯说,“例如,Bing闭源杀死了REBOL 2.x。” +“我们生活的世界中,即使没有大的商业公司支持,新的开源编程语言也很兴旺,而闭源的编程语言仅能在大的商业公司的帮助下得到支持,”特拉弗斯说,“例如,Bing闭源杀死了REBOL 2.x。” -“这项运动很明显酝酿已久——一家像微软这样庞大的公司没有突然开源这种复杂的东西——而我想,在某种程度上,微软一定看到了Sun开源OpenJDK时的不祥之兆了。”他暗示道。 +“这项运动很明显酝酿已久——一家像微软这样庞大的公司不会有‘突然开源’这种复杂的东西——而我想,在某种程度上,微软一定看到了Sun开源OpenJDK时的一些前兆了。”他暗示道。 同时,“这也为诸如C#和F#这样的语言提供了比当前市场更为兴盛的机会,”特拉弗斯说。 @@ -40,7 +40,7 @@ 此外,微软不会作出任何保证,保证.Net常年开源,他指出。 -“这意味着微软可以退出,并让开发出来的应用程序成为跨平台的Windows专有软件,”他警告道,“我不会相信微软的承诺,我会翘首期盼微软他们的突然而无可避免的背叛。” +“这意味着微软可以退出,并让开发出来的应用程序成为跨平台的Windows专有软件,”他警告道,“我不会相信微软的承诺,我会翘首期盼微软他们的突然而必然的背叛。” ### ‘留心不怀好意的礼物’ ### @@ -48,7 +48,7 @@ “他们来得太晚了,”埃伯索尔说,“Java已经先下手为强了,当.Net还是Windows/Microsoft专有产品时,Java已经遍布四处了。试着让人采用,希望好运吧。” -此外,“我只相信它被打上GPL烙印来保护代码创建者,”他补充道,“一个脆弱的MIT许可证任何时候都是逆天而行的。” +此外,“如果它打上GPL烙印来保护代码创建者的话我才会相信它,”他补充道,“一个脆弱的MIT许可证任何时候都是逆天而行的。” 无论如何,“在该公司产生的对FLOSS社区的全部的敌意下,他们会过河拆桥,”埃伯索尔总结道,“底线是:送礼的希腊人也很可畏——仔细留心希腊人不怀好意的礼物……” @@ -66,7 +66,7 @@ “在我的最后一份职业中,大多数的程序员想要Eclipse,而不是Visual Studio,即使客户端软件是Windows专用的。用Windows做测试的开发者们迁移到Linux的数量在缓慢增长。”麦克回忆道。 -“很要有人想被锁进一个平台中,因此更多的精神占有率正在从单一平台语言中逃离,”他补充道,“微软现在必须在适应与灭亡中作出选择。” +“很要有人想被固定在一个平台中,因此单一平台的语言的份额会越来越少,”他补充道,“微软现在必须在适应与灭亡中作出选择。” ### 这里没有温暖的毛球 ### @@ -84,7 +84,7 @@ 总得来说,一切都很明了,那就是“微软帝国正在摇摇欲坠,”Google+博主贡萨洛·维拉斯科 C说。 -“我不知道,或者不关心他们为什么会说谎,说他们热爱Linux,”他补充道,“我只希望GNU/Linux社区变得比现今更聪明些(咳嗽,Systemd,咳嗽),拒绝微软.Net和其它产生影响的东西。GNU/Linux必须只用FLOSS工具。” +“我不知道,或者不关心他们为什么会说谎,说他们热爱Linux,”他补充道,“我只希望GNU/Linux社区变得比现今更聪明些(咳,Systemd,咳咳),拒绝微软.Net和其它产生影响的东西。GNU/Linux必须只用FLOSS工具。” -------------------------------------------------------------------------------- @@ -92,7 +92,7 @@ via: http://www.linuxinsider.com/story/When-Microsoft-Went-A-Courting-81374.html 作者:[Katherine Noyes][a] 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From b8fbf78801c91f75c470398e01c61624e8877a5d Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 3 Dec 2014 21:52:07 +0800 Subject: [PATCH 058/158] PUB:20140910 How to create a cloud-based encrypted file system on Linux @felixonmars --- ...o create a cloud-based encrypted file system on Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20140910 How to create a cloud-based encrypted file system on Linux.md (97%) diff --git a/translated/tech/20140910 How to create a cloud-based encrypted file system on Linux.md b/published/20140910 How to create a cloud-based encrypted file system on Linux.md similarity index 97% rename from translated/tech/20140910 How to create a cloud-based encrypted file system on Linux.md rename to published/20140910 How to create a cloud-based encrypted file system on Linux.md index 0cc76306ca..7c147bb7c0 100644 --- a/translated/tech/20140910 How to create a cloud-based encrypted file system on Linux.md +++ b/published/20140910 How to create a cloud-based encrypted file system on Linux.md @@ -1,6 +1,6 @@ -如何在 Linux 系统中创建一个云端的加密文件系统 +如何在 Linux 系统中创建一个云端加密文件系统 ================================================================================ -[Amazon S3][1] 和 [Google Cloud Storage][2] 之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采用,这些提供商为他们的产品基于明确的 API 和 SDK 培养了一个良好的开发者生态系统。而基于云的文件系统便是这些活跃的开发者社区中的典型产品,已经有了好几个开源的实现。 +[Amazon S3][1] 和 [Google Cloud Storage][2] 之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采用,这些提供商为他们的产品通过明确的 API 和 SDK 培养了一个良好的开发者生态系统。而基于云的文件系统便是这些活跃的开发者社区中的典型产品,已经有了好几个开源的实现。 [S3QL][3] 便是最流行的开源云端文件系统之一。它是一个基于 FUSE 的文件系统,提供了好几个商业或开源的云存储后端,比如 Amazon S3、Google Cloud Storage、Rackspace CloudFiles,还有 OpenStack。作为一个功能完整的文件系统,S3QL 拥有不少强大的功能:最大 2T 的文件大小、压缩、UNIX 属性、加密、基于写入时复制的快照、不可变树、重复数据删除,以及软、硬链接支持等等。写入 S3QL 文件系统任何数据都将首先被本地压缩、加密,之后才会传输到云后端。当你试图从 S3QL 文件系统中取出内容的时候,如果它们不在本地缓存中,相应的对象会从云端下载回来,然后再即时地解密、解压缩。 @@ -142,7 +142,7 @@ via: http://xmodulo.com/2014/09/create-cloud-based-encrypted-file-system-linux.h 作者:[Dan Nanni][a] 译者:[felixonmars](https://github.com/felixonmars) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 61086fad22dc6edb024c5e4a71e7fd51f9f26e97 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 3 Dec 2014 21:59:06 +0800 Subject: [PATCH 059/158] PUB:20141022 Linux FAQs with Answers--How to fix sshd error--could not load host key @GOLinux --- ...ith Answers--How to fix sshd error--could not load host key.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20141022 Linux FAQs with Answers--How to fix sshd error--could not load host key.md (100%) diff --git a/translated/tech/20141022 Linux FAQs with Answers--How to fix sshd error--could not load host key.md b/published/20141022 Linux FAQs with Answers--How to fix sshd error--could not load host key.md similarity index 100% rename from translated/tech/20141022 Linux FAQs with Answers--How to fix sshd error--could not load host key.md rename to published/20141022 Linux FAQs with Answers--How to fix sshd error--could not load host key.md From 4a987f333ecc03fd57260d8c024bc9e27430fe7f Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 3 Dec 2014 22:17:31 +0800 Subject: [PATCH 060/158] PUB:20141023 What is a good command-line calculator on Linux @JonathanKang --- ...a good command-line calculator on Linux.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) rename {translated/tech => published}/20141023 What is a good command-line calculator on Linux.md (69%) diff --git a/translated/tech/20141023 What is a good command-line calculator on Linux.md b/published/20141023 What is a good command-line calculator on Linux.md similarity index 69% rename from translated/tech/20141023 What is a good command-line calculator on Linux.md rename to published/20141023 What is a good command-line calculator on Linux.md index e86cb16ebd..267549b251 100644 --- a/translated/tech/20141023 What is a good command-line calculator on Linux.md +++ b/published/20141023 What is a good command-line calculator on Linux.md @@ -1,6 +1,6 @@ 怎么样称得上是Linux下优秀的命令行计算器 ================================================================================ -每个现代的Linux桌面发行版都预装着一个带有图形界面的计算器程序。不过如果你的工作区中全是命令行窗口,那么你一定会在其中的一个命令行窗口中处理一些数字相关的问题。或许你在寻找一款基于命令行的计算器程序。如果是这样的话,[GNU bc][1](“basic calculator”的缩写)会是你不二的选择。当然Linux下又很多基于命令行的计算器应用,我认为GNU bc是功能最强大和最有用的。 +每个现代的Linux桌面发行版都预装着一个带有图形界面的计算器程序。不过如果你的工作区中全是命令行窗口,那么你一定会在其中的一个命令行窗口中处理一些数字相关的问题。或许你在寻找一款基于命令行的计算器程序。如果是这样的话,[GNU bc][1](“basic calculator”的缩写)会是你不二的选择。当然Linux下有很多基于命令行的计算器应用,我认为GNU bc是功能最强大和最有用的。 在GNU时代之前,bc实际上是一个著名的精密计算语言。它的诞生要追溯到70年代的Unix时期了。最初bc作为一个语法和C语言相似的编程语言而著名。随着时间的改变,最开始的bc演化成POSIX bc,最后变成了今天的GNU bc。 @@ -8,19 +8,19 @@ 现在的GNU bc是早期bc经过若干次改进和功能增强的结果。目前它被所有的主流GNU/Linux发行版所收纳。GNU bc支持高精度数字和多种数值类型(例如二进制、十进制、十六进制)的输入输出。 -如果你对C语言很熟悉的话,你会发现bc使用了和C语言一样或相似的算术操作符。受支持的操作符包括算术运算符(+,-,*,/,%,++,--)、比较运算符(<,>,==,!=,<=,>=)、逻辑运算符(!,&&,||)、位运算符(&,|,^,~,<<,>>)和复合赋值运算符(+=,-=,*=,/=,%=,&=,|=,^=,&&=,||=,<<=,>>=)。bc内置了很多有用的函数,像是平方根、正弦、余弦、反正弦、自然对数、指数等。 +如果你对C语言很熟悉的话,你会发现bc使用了和C语言一样或相似的算术操作符。所支持的操作符包括算术运算符(+, -, *, /, %, ++, --)、比较运算符(<, >, ==, !=, <=, >=)、逻辑运算符(!, &&, ||)、位运算符(&, |, ^, ~, <<, >>)和复合赋值运算符(+=, -=, *=, /=, %=, &=, |=, ^=, &&=, ||=, <<=, >>=)。bc内置了很多有用的函数,像是平方根、正弦、余弦、反正弦、自然对数、指数等。 ### 如何使用GNU bc ### -作为一个基于命令行的计算器,GNU bc的使用是没有限制的。在本文中,我会向大家介绍bc命令的几个常用的特性。如果你想要更加详细的指导,你可以查阅[官方指南][2]。 +作为一个基于命令行的计算器,GNU bc的使用没有限制。在本文中,我会向大家介绍bc命令的几个常用的特性。如果你想要更加详细的指导,你可以查阅[官方指南][2]。 -如果你没有一个预先写好的bc脚本,那么你需要在交互模式下运行bc。在这种模式下,你输入的以回车结束的任何声明或者表达式会被立刻计算出结果。你需要输入以下命令来进入bc的交互界面。如果向退出bc,你可以输入'quit'并且按回车。 +如果你没有一个预先写好的bc脚本,那么你可以在交互模式下运行bc。在这种模式下,你输入的以回车结束的任何声明或者表达式会被立刻计算出结果。你需要输入以下命令来进入bc的交互界面。如果想退出bc,你可以输入'quit'并且按回车。 $ bc ![](https://farm4.staticflickr.com/3939/15403325480_d0db97d427_z.jpg) -本文下面展示的例子应该在bc交互界面中输入。 +本文下面展示的例子请在bc交互界面中输入。 ### 输入表达式 ### @@ -28,15 +28,15 @@ ![](https://farm6.staticflickr.com/5604/15403325460_b004b3f8da_o.png) -在一个bc的交互界面中,存在没有个数限制的命令历史记录。使用上方向键来查看之前输入的命令。如果你想限制历史记录保存的命令数量,你可以将一个名为history的特殊变量设置成你希望的数值。该变量默认为-1,也就是“历史记录数量没有限制”。 +在一个bc的交互界面中,保存着没有个数限制的命令历史记录。使用上方向键来查看之前输入的命令。如果你想限制历史记录保存的命令数量,你可以将一个名为history的特殊变量设置成你希望的数值。该变量默认为-1,也就是“历史记录数量没有限制”。 ### 输入输出进制切换 ### -经常会发生的是,你输入一个表达式并且想使用二进制或者十六进制来显示结果。bc允许你在输入输出数字的进制间转换。输入和输出的数系基分别存储在ibase和obase变量中,默认值为10,有效的数值是2到16(或者环境变量BC_BASE_MAX的值).你只需要更改ibase和obase的值就可以在不同进制之间转换了。下面是一个求两个十六进制/二进制数和的例子: +经常会发生的是,你输入一个表达式并且想使用二进制或者十六进制来显示结果。bc允许你在输入输出数字的进制间转换。输入和输出的数系基分别存储在ibase和obase变量中,默认值为10,有效的数值是2到16(或者环境变量BC_BASE_MAX的值)。你只需要更改ibase和obase的值就可以在不同进制之间转换了。下面是一个求两个十六进制/二进制数和的例子: ![](https://farm6.staticflickr.com/5604/15402320019_f01325f199_z.jpg) -需要注意的是,我有意地将obase=16放到了ibase=16前面,反过来则是不可以的。这个是因为如果我先输入ibase=16,那么随后输入的obase=16中的16会被认为是16进制的数字,也就是十进制的22。当然这个不是我们所期望的。 +需要注意的是,我有意地将obase=16放到了ibase=16前面,**反过来则是不可以的**。这个是因为如果我先输入ibase=16,那么随后输入的obase=16中的16会被认为是16进制的数字,也就是十进制的22。当然这个不是我们所期望的。 ### 调整精度 ### @@ -76,7 +76,7 @@ X的指数对数: e(X) -### Other goodies as a language ### +### 当做语言来用 ### 作为一个计算语言,GNU bc支持简单的声明(变量赋值、中断、返回等)、复合语句(if、while、for loop等)和自定义函数。在这里我不会涉及到这些特性的细节,不过你可以通过[官方指南][2]来学习如何使用这些特性。下面是一个简单的函数示例: @@ -98,7 +98,7 @@ X的指数对数: ![](https://farm4.staticflickr.com/3943/15565252976_f50f453c7f_z.jpg) -总结以下,GNU bc是一款强大并且通用的基于命令行的计算器应用,因此它绝对不会让你失望。它预装在所有的现代Linux发行版中,bc可以让你不用离开命令行就可以进行高效的数学计算。所以,GNU bc一定会是你的最爱。 +总结一下,GNU bc是一款强大并且通用的基于命令行的计算器应用,它绝对不会让你失望。它预装在所有的现代Linux发行版中,bc可以让你不用离开命令行就可以进行高效的数学计算。所以,GNU bc一定会是你的最爱。 -------------------------------------------------------------------------------- @@ -106,7 +106,7 @@ via: http://xmodulo.com/command-line-calculator-linux.html 作者:[Dan Nanni][a] 译者:[JonathanKang](https://github.com/JonathanKang) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 70e2996b27decb5ef91bf76d5404fd5ac8877099 Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 4 Dec 2014 10:12:50 +0800 Subject: [PATCH 061/158] PUB:20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples @geekpi --- ...ts or Network Connections with Examples.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) rename {translated/tech => published}/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md (57%) diff --git a/translated/tech/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md b/published/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md similarity index 57% rename from translated/tech/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md rename to published/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md index a5a8841d6b..271e1595d3 100644 --- a/translated/tech/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md +++ b/published/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md @@ -1,24 +1,25 @@ -Linux中的鉴别套接字/网络的ss工具示例 +在Linux中的使用 ss 命令检查套接字/网络连接 ================================================================================ -ss是iproute2包的一部分(控制TCP/IP网络和流量的工具)。iproute2目标是替代先前用于配置网络接口,路由表和管理ARP表的标准Unix网络工具套装(通常称之为“net-tools”)。ss工具用于导出套接字统计,它可以显示与netstat类似的信息,且可以显示更多的TCP和状态信息。它也应该更加快因为它工作与内核空间。ss的操作和netstat很像所以这让它可以很容易就可以取代。 +ss是iproute2包的一部分(控制TCP/IP网络和流量的工具)。iproute2的目标是替代先前用于配置网络接口、路由表和管理ARP表的标准Unix网络工具套装(通常称之为“net-tools”)。ss工具用于导出套接字统计,它可以显示与netstat类似的信息,且可以显示更多的TCP和状态信息。因为它直接从内核空间获取信息,所以会更快。ss的操作和netstat很像,所以这让它可以很容易就可以取代。 ### 使用和常见选项 ### -ss和netstat很像,默认他会显示已经建立连接的开放的非监听TCP套接字列表。并且你可以用下面的选项过滤输出: +ss和netstat很像,默认它会显示已经建立连接的开放的非监听TCP套接字列表。并且你可以用下面的选项过滤输出: -- **-n** - 尝试解析服务名。 -- **-r** - 尝试解析数字地址/端口。 +- **-n** - 不要尝试解析服务名。 +- **-r** - 尝试解析数字的地址/端口。 - **-a** - 显示所有套接字。 - **-l** - 显示监听套接字。 -- **-p** - 显示进程人使用的套接字。 -- **-s** - 打印统计 +- **-p** - 显示使用该套接字的进程。 +- **-s** - 打印统计数据 - **-t** - 只显示TCP套接字。 - **-u** - 只显示UDP套接字。 - **-d** - 只显示DCCP套接字 -- **-w** - 只显示原始套接字。 +- **-w** - 只显示RAW套接字。 - **-x** - 只显示Unix域套接字 -- **-f FAMILY** - 显示FAMILY套接字的类型。目前支持下面这些家族:unix、inet、inet6、link、netlink。 -- **-A QUERY** - 导出套接字列表,通过逗号分隔。可以识别下面的标识符:all、inet、tcp、udp、raw、unix、packet、netlink、unix_dgram、unix_stream、packet_raw、packet_dgram。 +- **-f FAMILY** - 显示FAMILY套接字的类型。目前支持下面这些族:unix、inet、inet6、link、netlink。 +- **-A QUERY** - 指定要列出的套接字列表,通过逗号分隔。可以识别下面的标识符:all、inet、tcp、udp、raw、unix、packet、netlink、unix_dgram、unix_stream、packet_raw、packet_dgram。 +- **-o STATUS** - 列出指定状态的套接字 ### ss 命令示例 ### @@ -34,13 +35,13 @@ ss和netstat很像,默认他会显示已经建立连接的开放的非监听TC ![ss tnap6](http://blog.linoxide.com/wp-content/uploads/2014/09/ss-tnap6.jpg) -**3.** 跟上面的行为一样,你只需用n代替t就会显示所有开放的UDP端口。 +**3.** 跟上面的行为一样,你只需用u代替t就会显示所有开放的UDP端口。 - # ss -tnap + # ss -unap ![ss unap](http://blog.linoxide.com/wp-content/uploads/2014/09/ss-unap.jpg) -**4.** 你可以使用-s标志来打印不同的有用的统计: +**4.** 你可以使用-s标志来打印各种有用的统计数据: # ss -s @@ -58,7 +59,7 @@ via: http://linoxide.com/linux-command/ss-sockets-network-connection/ 作者:[Adrian Dinu][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 037ed20977f9d4fe782d922ea041dc8e52fb1b63 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 4 Dec 2014 16:52:32 +0800 Subject: [PATCH 062/158] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to convert a text file to PDF format on Linux.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/translated/tech/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md b/translated/tech/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md index 4562a624a1..bd40848f5c 100644 --- a/translated/tech/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md +++ b/translated/tech/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md @@ -1,9 +1,8 @@ -Linux FAQs with Answers--How to convert a text file to PDF format on Linux -Linux 有问必答 --如何在Linux上将文本文件转换成PDF格式 +Linux 有问必答:在Linux上如何将文本文件转换成PDF格式 ================================================================================ -> **提问**: 我想要将一个纯文本文件转换成PDF文档。是否有一个简单的方法在Linux命令行下将文本文件转换成PDF文件? +> **提问**: 我想要将一个纯文本文件转换成PDF文档。在Linux命令行下是否有一个简单的方法将文本文件转换成PDF文件? -当你有一打文本文件要维护的时候,把它们转换成PDF文档有一些好处。比如,PDF对打印更友好因为PDF文档有预定义布局。除此之外,还可以减少文档被意外修改的风险。 +当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些。比如,PDF更适合打印,因为PDF文档有预定义布局。除此之外,还可以减少文档被意外修改的风险。 要将文本文件转换成PDF格式,你要按照下面的两步。 @@ -27,7 +26,7 @@ Linux 有问必答 --如何在Linux上将文本文件转换成PDF格式 准备工作完成之后,按照下面的两步从文本文件生成一个PDF文件 -首先,将文本文件使用enscript命令行工具转换成postscript格式。 +首先,使用enscript命令行工具将文本文件转换成postscript格式。 $ enscript -p output.ps input.txt @@ -40,6 +39,6 @@ Linux 有问必答 --如何在Linux上将文本文件转换成PDF格式 via: http://ask.xmodulo.com/convert-text-to-pdf-linux.html 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 \ No newline at end of file +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From c7d3faffccb7fcb4a5b7d4a99f5c3b439eff5486 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 4 Dec 2014 16:59:55 +0800 Subject: [PATCH 063/158] =?UTF-8?q?=E5=B7=B2=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Answers--How to convert a text file to PDF format on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md (100%) diff --git a/translated/tech/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md b/published/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md similarity index 100% rename from translated/tech/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md rename to published/20141118 Linux FAQs with Answers--How to convert a text file to PDF format on Linux.md From aa0a75d014c43cc32b48cf8816abde743afa3249 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 4 Dec 2014 17:40:56 +0800 Subject: [PATCH 064/158] =?UTF-8?q?20141204-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r Linux Returns With New Stable Release.md | 64 +++++++++++++++ ...-Free Video Calling and Powerful WebIDE.md | 61 +++++++++++++++ ... Linux Distro Releases in November 2014.md | 78 +++++++++++++++++++ ...c Unicorn T-Shirts Now Available to Buy.md | 34 ++++++++ ... Track of Multiple Time Zones in Ubuntu.md | 63 +++++++++++++++ 5 files changed, 300 insertions(+) create mode 100644 sources/news/20141204 After an 18 Month Gap, Opera for Linux Returns With New Stable Release.md create mode 100644 sources/news/20141204 Firefox 34 Arrives with Plugin-Free Video Calling and Powerful WebIDE.md create mode 100644 sources/news/20141204 From Mint to Trisquel--The Top Linux Distro Releases in November 2014.md create mode 100644 sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md create mode 100644 sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md diff --git a/sources/news/20141204 After an 18 Month Gap, Opera for Linux Returns With New Stable Release.md b/sources/news/20141204 After an 18 Month Gap, Opera for Linux Returns With New Stable Release.md new file mode 100644 index 0000000000..3050a8d878 --- /dev/null +++ b/sources/news/20141204 After an 18 Month Gap, Opera for Linux Returns With New Stable Release.md @@ -0,0 +1,64 @@ +After an 18 Month Gap, Opera for Linux Returns With New Stable Release +================================================================================ +**The first stable release of Opera for Linux in more than 18 months is now available for download.** + +![Hello again, Opera!](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/iopera.jpg) + +Hello again, Opera! + +Opera for Computers for Linux 26 (no really, that’s its name) features a complete top-to-bottom overhaul, new features, and better performance thanks to its Aura and Blink underpinnings (yes, it’s no longer based on the proprietary Presto web engine). + +#### Features #### + +The browser [wiggled its toes in tux-friendly waters back in June with the launch of a developer preview][1], but if you last tried Opera when it looked like this, you’ll want to grab some smelling salts: things have changed. + +注:youtube 视频,发布时可换成链接地址 + + +Alongside an impressive new look and blazing fast, standards-compliant rendering engine come many new and improved features. + +- **Discover** — Shows articles from around the web in a range of categories +- **Speed Dial** — Supports interactive widgets, folders, and themes +- **Tab Peek** — Preview the content of an open tab without switching back to it +- **Opera Turbo** — Data-saving mode ideal for patchy connections +- **Rich bookmarking** — including new sharing functionality +- **Add-ons** — compatible with Chrome extensions, too +- **Support for HiDPI displays on Linux** + +### Download Opera for Linux 26 ### + +Opera say those running Opera 12.6 on a 64-bit version of Ubuntu still supported by Canonical will automatically receive this new update through the Ubuntu Software Center. + +But in all honesty I’m not sure anyone is in that boat! So, helpfully, a Debian installer can be downloaded from the Opera website. This will also add the Opera repository to your Software Sources to enable you to receive future updates in a timely fashion. + +- [Download Opera for Computers for Linux 26][2] + +Feel free to kit your new browser out with our nifty Opera Add-On, too: + +- [Install OMG! Ubuntu! Opera Extension][3] + +#### Important Notice about Linux Support #### + +**Opera for Linux is 64-bit only**. The company say this decision was made based on ‘what most Linux desktop users have installed’. While annoying it is part of a larger overall trend away from 32-bit software, with Opera for Mac also being 64-bit exclusive, too. + +In another case of “spending limited resources wisely”, this release is only being officially supported on Ubuntu (and ‘buntu-based derivatives, including Linux Mint). + +Users on other distributions, from Arch to openSUSE, can still install Opera for Linux but will need to [use a (fairly simple) workaround][4] or hunt down an unofficial repository. + +**If you give it a spin let us know what you make of it in the comments below.** + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/new-opera-for-linux-goes-stable-download-now + +作者:[Joey-Elijah Sneddon][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:http://www.omgubuntu.co.uk/2014/06/opera-linux-chromium-download-released +[2]:http://opera.com/computer/linux +[3]:https://addons.opera.com/en/extensions/details/omg-ubuntu-for-opera/?display=en +[4]:https://gist.github.com/ruario/99522c94838d0680633c#file-manual-install-of-opera-md \ No newline at end of file diff --git a/sources/news/20141204 Firefox 34 Arrives with Plugin-Free Video Calling and Powerful WebIDE.md b/sources/news/20141204 Firefox 34 Arrives with Plugin-Free Video Calling and Powerful WebIDE.md new file mode 100644 index 0000000000..2f0f44b951 --- /dev/null +++ b/sources/news/20141204 Firefox 34 Arrives with Plugin-Free Video Calling and Powerful WebIDE.md @@ -0,0 +1,61 @@ +Firefox 34 Arrives with Plugin-Free Video Calling and Powerful WebIDE +================================================================================ +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/firefox-banner.jpg) + +**It’s been a busy few months for Mozilla, what with agreeing to a deal to switch its default search provider to Yahoo!, launching a custom version of its browser packed full of developer goodies, and launching Firefox OS handsets in new territories.** + +Today, Mozilla has released Firefox 34 for Windows, Mac and Linux desktops, the first stable release since last month’s security n’ bug fix update. + +### Headline Feature ### + +Despite the rapid release cycle Mozilla once again manages to deliver some great new features. + +Making its first appearance in a stable release is **Firefox Hello**, Mozilla’s WebRTC feature. + +Though not enabled for all (you can manually turn it on via about:config), the feature bring plugin-free video and voice calls to the browser. No Skype, no add-ons, no hassle. You simple click the Firefox Hello icon, send your share link to the recipient to initiate a connection (assuming they’re also using a WebRTC-enabled browser, like Google Chrome or Opera). + +![The ‘Hello Firefox’ Popup](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/hello-firefox.jpg) + +The ‘Hello Firefox’ Popup + +Signing in with a Firefox account will give you more features, including a contacts book with one-click calling (no need to share links). + +#### Other Changes #### + +Version 34 also makes it easier to **switch themes** (formerly known as ‘personas’), with live previews and a switcher menu now available on the **Customising canvas**: + +![Ad-hoc theme switching](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/firefox-theme-switcher.jpg) + +Ad-hoc theme switching + +The first major search engine change arrives in this release, with Yandex shipping as default for Belarusian, Kazakh, and Russian locales. Yahoo! will be enabled for US users in the near future. But remember: [this does not affect the version of Firefox provided in Ubuntu][1]. + +US users get secure **HTTPS** Wikipedia searching from the search box: + +![Secure Wikipedia Searches for English US Users](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/firefox-https-search-for-wikipedia.jpg) + +Secure Wikipedia Searches for English US Users + +In addition to improved HTML5 support (largely around WebCrypto features) a [**new WebIDE tool**][2] ships in this release, and is packed full of great tools for developers. + +From Android connectivity and an in-app editor to support for deploying and testing apps in a Firefox OS simulator. If you haven’t tried Firefox OS in a while, v2.2 (unstable) has plenty to play with including edge swiping, new home screen arranging features, and some new APIs. + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/firefox-webide.jpg) + +### Download Firefox 34 ### + +Canonical will roll out Firefox 34 to users of Ubuntu 12.04, 14.04 and 14.10 in the next 24 hours or so, so keep an eye out. If you’re super impatient the release can also be downloaded from Mozilla servers directly. + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/firefox-34-changes-include-hello-html5-webide + +作者:[Joey-Elijah Sneddon ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:http://www.omgubuntu.co.uk/2014/11/firefox-set-yahoo-default-search-engine-ubuntu-not-affected +[2]:https://developer.mozilla.org/en-US/docs/Tools/WebIDE \ No newline at end of file diff --git a/sources/news/20141204 From Mint to Trisquel--The Top Linux Distro Releases in November 2014.md b/sources/news/20141204 From Mint to Trisquel--The Top Linux Distro Releases in November 2014.md new file mode 100644 index 0000000000..055c690ee3 --- /dev/null +++ b/sources/news/20141204 From Mint to Trisquel--The Top Linux Distro Releases in November 2014.md @@ -0,0 +1,78 @@ +From Mint to Trisquel: The Top Linux Distro Releases in November 2014 +================================================================================ +**November wasn’t heavy on new Linux distribution releases, but still had more than enough to keep distro-hoppers bouncing from download server to ISO mirror and back again.** + +From the free software ethic of **Trisquel** to the nostalgic glow of **Ubuntu MATE**, let’s take a look at the major Linux distribution releases made in November 2014. + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/linux-mint-17.jpg) + +### Linux Mint 17.1 ### + +Linux Mint 17.1 ‘Rebecca’ is the big hitter on this list, going stable just in time to make it. + +Based on Ubuntu 14.04 and using Linux kernel 3.13, the update also comes loaded with the **latest [Cinnamon 2.4][1] desktop environment, a customisable version of the Nemo file manager**, and improvements to the Update Manager to make package upgrades safer, saner and swifter. + +Other changes see the ‘**Background**’, ‘**Login**’ and ‘**Theme**’ settings panes redesigned, and **‘Privacy’ and ‘Notification’ sections** added. The default **system font has been switched to Noto Sans**, while fans of customisation will enjoy new colors added to the Mint-X theme package. + +Linux Mint 17.1 delivers a set of solid, well thought out changes and performance improvements, important for an LTS release supported until 2019. + +More information and those all important downloads can be found on the official project website. + +- [Visit the Linux Mint Website][2] + +### Ubuntu Mate 14.04 LTS ### + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/ubuntu-mate-lts.jpg) + +It may have [arrived after the release of Ubuntu MATE 14.10][3] (**timey-wimey**), but as the first Long Term Support release of the flavor Ubuntu MATE 14.04 was welcomed with warm arms, especially by those who love to bask in the green-hued glow of GNOME 2 nostalgia. + +Packed with security updates, MATE 1.8.1, and new software included out of the box, Ubuntu MATE 14.04 LTS is a notable update with plenty to tempt those on the newer (but older) 14.10 release. + +For full hardware requirements, support information and download links, head on over to the official project website. + +- [Download Ubuntu MATE 14.04 LTS][4] + +### Trisquel 7.0 ### + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/trisquel-7-300x224.jpg) + +The [latest stable release of Trisquel][5], an Ubuntu-based distribution endorsed by the Free Software Foundation (FSF), arrived in the middle of November — and was met by **a lot** of interest. + +The free (as in freedom) distribution is built on Ubuntu 14.04 LTS but ships without any of the proprietary bits and pieces. It’s a “pure” Linux experience that may require some workarounds, but serves to flag up the areas where more attention is needed in FOSS hardware support and app alternatives. + +The Libre Linux 3.13 Kernel, GNOME 3.12 ‘Flashback’ desktop and the Firefox-based Abrowser 33 are among the changes to be found in Trisquel 7. + +- [Download Trisquel 7][6] + +### Other Notable Releases ### + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/opensuse-desktop-kde.jpg) + +Outside of the Ubuntu-based bubble November 2014 saw releases of other popular Linux distributions, including beta milestones of Mageia 5 and Fedora 21, and a new stable release of Scientific Linux 6.6. + +Joining them is openSUSE 13.2 (stable) — the first release to follow a change in the way openSUSE development takes place, the first to adopt the new openSUSE design guidelines and the first to ship with a streamlined (if still unwieldy) installer. + +The release has been getting great reviews from the geek press, who gave particular praise for the GNOME 3.14 implementation. + +Coming from Ubuntu, where “everything just works”, the cultural and technical gulf can be daunting at first. But if you have some free time, like the color green and relish a challenge, the official openSUSE 13.2 [release announcement][7] should be your starting point. + +**Have you tried any of these releases above? Let us know what you made of them in the space down below .** + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/11/linux-distro-releases-round-november-2014 + +作者:[Joey-Elijah Sneddon][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:http://www.omgubuntu.co.uk/2014/11/install-cinnamon-2-4-ubuntu-14-04-lts +[2]:http://www.linuxmint.com/download.php +[3]:http://www.omgubuntu.co.uk/2014/11/ubuntu-mate-14-04-download-released +[4]:https://ubuntu-mate.org/longterm/ +[5]:http://www.omgubuntu.co.uk/2014/11/download-trisquel-7-0-kernel-3-13 +[6]:https://trisquel.info/en/download +[7]:https://news.opensuse.org/2014/11/04/opensuse-13-2-green-light-to-freedom/ \ No newline at end of file diff --git a/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md b/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md new file mode 100644 index 0000000000..f0dc970fd2 --- /dev/null +++ b/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md @@ -0,0 +1,34 @@ +Official Ubuntu 14.10 ‘Utopic Unicorn’ T-Shirts Now Available to Buy +================================================================================ +![ubuntu-tshirt-runner](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/ubuntu-tshirt-runner.jpg) + +**For a while it looked like an official mascot t-shirt to accompany the release of Ubuntu 14.10 would be as rare as the Unicorn fronting it. But, today, the Canonical Store was finally furnished with the fan-favourite merch item.** + +The shirt is available to buy in either ‘dusk blue’ (men’s fit) or ‘hot pink’ (women’s fit), but aesthetic and form aside the design is the same. Each shirt is emblazoned with the custom origami ‘Utopic Unicorn’ emblem designed by Canonical. On the reverse of each shirt is the Ubuntu logotype and the words “Utopic Unicorn 14.10“, helping you promote the OS from the back as well as the front — I like it! + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/unicorn-t-shirt.jpg) + +Available in small to XX-Large for men’s, and women’s sizes spanning 8-10 through 14-16, each t-shirt is priced at £11 in the UK, $17.45 in the US and €13.42 in Europe. A little higher than previous years and, as ever, minus postage/shipping and packaging. + +- [Buy Men’s Ubuntu 14.10 T-Shirt][1] + +- [Buy Women’s Ubuntu 14.10 T-Shirt][2] + +Mascot t-shirts have been a staple of each Ubuntu release since as far back as version 8.04 Hardy Heron though they typically see release prior to the OS itself. + +If you’re not a fan of this particular release you’ll find a limited number of older mascot-matched merchandise still available to buy and at a reduced price. So if you’d rather strut your stuff with a Salamander, promote a Pangolin or look tahr-iffic in a Trusty design, be sure to check out [the Sale section][3]. + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/last-ubuntu-14-10-unicorn-t-shirts-now-available + +作者:[Joey-Elijah Sneddon][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:http://shop.canonical.com/product_info.php?products_id=1153 +[2]:http://shop.canonical.com/product_info.php?products_id=1159 +[3]:http://shop.canonical.com/index.php?cPath=29 \ No newline at end of file diff --git a/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md b/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md new file mode 100644 index 0000000000..575332ad50 --- /dev/null +++ b/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md @@ -0,0 +1,63 @@ +The Easy Way to Keep Track of Multiple Time Zones in Ubuntu +================================================================================ +![date-time](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/date-time.jpg) + +**Whether I’m making sure that a tweet about a Chromebook sale in Australia hits those down under when awake or scheduling a Skype call with *Sam Tran*, the ‘developer’ half of Ohso, I work with multiple time zones in mind.** + +And therein lies a problem. If you know me you’ll know that I have the memory capacity of a goldfish running Windows Vista (i.e., not very good). I can barely recall what I got up to yesterday, much less remember the time differential between my door and the foot of Golden Gate bridge! + +To help, I use widgets and menu items to keep me in sync. I move across multiple operating systems in the space of a regular working day, mobile and desktop, but only one lets me set up ‘world clocks’ the quickest and easiest. + +**And it happens to be the one whose name is above the door.** + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/timezones-300x180.jpg) + +### Add World Clocks to Ubuntu Date/Time Applet ### + +The default date-time indicator in Unity comes with supports for adding and viewing multiple time zones. No add-ons, no extra packages required. + +1. Click on the clock applet and select the ‘**Time & Date Settings**’ entry +1. In the ‘**Clock**’ tab, check the box next to ‘**Time in Other Locations**’ +1. Click the ‘**Choose Locations**‘ button +1. Tap ‘**+**’ and enter the name of the location + +#### Other Desktop Environments #### + +The default clock applet in **KDE Plasma** has a similar feature and flow: + +1. Right-click on the digital clock widget and select ‘**Digital Clock Settings**’ +1. Click the ‘**Time Zones**’ section +1. Enter the name of a city in the search field +1. Click ‘**Ok**’ + +The extensible nature of **GNOME Shell** sees a slew of World Clock options available to fill the gap left by its default time ticker, with ‘[multi clock][1]’ being my personal favourite. The same goes again for **Cinnamon**, whose ‘panel applet’ repository has ample choices, like the super slick “**World Clock Calendar**” . + +![World Clock Calendar in Cinnamon 2.4](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/cinnamon-applet.jpg) + +World Clock Calendar in Cinnamon 2.4 + +**XFCE** and **LXDE** aren’t quite as generous, with the only out-of-the-box “workarounds” being **multiple clocks** added to the panel, each manually configured to a given locale. Both do support ‘indicator applets’, so if you’re not dependent on Unity you can install/add the standalone date/time indicator. + +**Budgie** is a little too young to make corner case demands of, while Pantheon I haven’t tried — I’ll let you fill me in on that score in the comments. + +#### Desktop Apps, Widgets & Conky Themes #### + +Of course, panel applets are just one way to keep tabs of the time in other countries’ multiple time zones. If you’re not fussed about panel access there are various **desktop apps** available, many of which work cross-distro and/or cross-platform. + +**GNOME Clocks** is one such app and is available to install straight from the Ubuntu Software Center in 14.04 LTS+. **Conky** is a potential alternative (though I haven’t yet found a pre-made theme designed for the purpose) and lightweight Chrome Apps like [Calendar Clock][2] will work anywhere Chrome does, free of the browser. + +**Do you keep tabs on time zones? If so, what app, method or widget do you use to stay on top? ** + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/add-time-zones-world-clock-ubuntu + +作者:[Joey-Elijah Sneddon][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:https://extensions.gnome.org/extension/605/multiclock/ +[2]:http://www.omgchrome.com/calendar-clock-chrome-app/ \ No newline at end of file From 15a0b00dd6acd188d9469bc1f4640ae2b204cd40 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 4 Dec 2014 17:50:50 +0800 Subject: [PATCH 065/158] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ke Raspberry Pi Boot In To GUI By Default.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/translated/tech/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md b/translated/tech/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md index 098e626e87..bb7a4042bd 100644 --- a/translated/tech/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md +++ b/translated/tech/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md @@ -1,14 +1,14 @@ -如何让树莓派默认以图形界面启动 +如何让树莓派默认启动进入图形界面 ================================================================================ ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/raspberry_pi_gui.jpg) 我买树莓派已经有一段时间了,但是实话说我几乎还没有用它做过什么事情。自从我的Dell超级本送到Dell服务中心后(已经有数星期了),我再次开始使用树莓派作为替代。 -我之前已经写过一篇[如何在Ubuntu中在SD卡上安装Raspbian系统][1]。我也重装了一次树莓派。第一次启动的时候我漏掉了一件事情就是设置图形界面。这样当我再次启动树莓派的时候,我直接进入了命令行。我该接下来如何运行Respbian图形界面呢? +我之前已经写过一篇[在Ubuntu中如何在SD卡上安装Raspbian系统][1]。我也重装了一次树莓派。第一次启动的时候我漏掉了一件事情就是设置图形界面。这样当我再次启动树莓派的时候,我直接进入了命令行。我该接下来如何运行Respbian图形界面呢? ### 设置Raspbian图形启动 ### -入Raspbian系统的命令行界面,不用失望,因为很容易设置树莓派以图形界面启动。让我们看看该如何做。 +当你第一次安装Raspbian系统时,确实有一些选项需要你来配置,由于匆忙,我没有注意到这些,只是快速完成屏幕上的选项。如果你遇到了和我一样的情况,最终只是进入到了Raspbian操作系统的命令行界面,不要失望,因为设置树莓派以图形界面启动很容易。让我们看看该如何操作。 ### 第一步: ### @@ -24,14 +24,13 @@ #### 第三步: #### -在这个配置界面下, 寻找**Enable Boot to Desktop/Scratch**这个选项。用箭头、tab和/或者回车键的组合来选中它(我忘记该使用哪一个了)。 +在这个配置界面下, 寻找**Enable Boot to Desktop/Scratch**这个选项。用箭头、tab和/或者回车键的组合来选中它(我忘记使用的是哪些了)。 ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup.jpg) #### 第四步: #### -下一屏中,选择**Desktop Login as user ‘Pi’ at the graphical desktop. -** +下一屏中,选择** Desktop Login as user ‘Pi’ at the graphical desktop. ** ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup_1.jpg) @@ -45,7 +44,7 @@ ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/raspbian-welcome-screen-gui.jpeg) -我希望这边教程能够帮助你设置你的树莓派默认以图形界面启动。欢迎在评论区留下你的问题和建议。 +我希望这个教程能够帮助设置你的树莓派默认启动进入图形界面。欢迎在评论区留下你的问题和建议。 -------------------------------------------------------------------------------- @@ -53,9 +52,9 @@ via: http://itsfoss.com/raspberry-pi-gui-boot/ 作者:[Abhishek][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://itsfoss.com/author/Abhishek/ -[1]:http://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/ \ No newline at end of file +[1]:http://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/ From 70ca70d0cb470f3872ff2d439613a0736792b17c Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Thu, 4 Dec 2014 17:53:39 +0800 Subject: [PATCH 066/158] Translating by ZTinoZ --- ...mands to Transfer Files or Folders in Linux.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 1f24bb757c..1d2ca00369 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,7 +1,6 @@ Linux的十条SCP传输命令 ================================================================================ -Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。Built-in with 在**SSH**命令中内置了一种叫 -**SCP**的命令,用来在服务器之间安全传输文件。 +Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。在**SSH**命令中内置了一种叫**SCP**的命令,用来在服务器之间安全传输文件。 ![](http://www.tecmint.com/wp-content/uploads/2013/10/SCP-Commands.png) @@ -13,13 +12,13 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 **SCP**命令有很多参数供你使用,这里指的是每次都会用到的参数。 -### Provide the detail information of SCP process using -v parameter ### +### 用-v参数来提供SCP进程的详细信息 ### -Basic **SCP** command without parameter will copy the files in background. User will see nothing unless the process is done or some error appears. You can use “**-v**” parameter to print debug information into the screen. It can help you debugging connection, authentication and configuration problems. +不带参数的基本**SCP**命令会在后台复制文件,除非操作完成或者有错误出现,否则用户在界面上是看不到任何提示信息的。你可以用“**-v**”参数来在屏幕上打印出调试信息,这能帮助你调试连接、认证和配置的一些问题。 pungki@mint ~/Documents $ scp -v Label.pdf mrarianto@202.x.x.x:. -#### Sample Output #### +#### 部分输出 #### Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -t . OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012 @@ -47,7 +46,7 @@ The “**-p**” parameter will help you on this. An estimated time and the conn pungki@mint ~/Documents $ scp -p Label.pdf mrarianto@202.x.x.x:. -#### Sample Output #### +#### 部分输出 #### mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 126.6KB/s 00:29 @@ -60,7 +59,7 @@ Take a look of these commands. It is using a single file of **93 Mb**. pungki@mint ~/Documents $ scp -pv messages.log mrarianto@202.x.x.x:. -#### Sample Output #### +#### 部分输出 #### Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t . OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012 @@ -88,7 +87,7 @@ Copying file without “**-C**” parameter will result **1661.3** second. Yo ma pungki@mint ~/Documents $ scp -Cpv messages.log mrarianto@202.x.x.x:. -#### Sample Output #### +#### 部分输出 #### Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t . OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012 From c5477e1bee70871f024221f351a14c3673cc8325 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 4 Dec 2014 18:08:35 +0800 Subject: [PATCH 067/158] =?UTF-8?q?=E5=B7=B2=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20141119 How To Make Raspberry Pi Boot In To GUI By Default.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md (100%) diff --git a/translated/tech/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md b/published/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md similarity index 100% rename from translated/tech/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md rename to published/20141119 How To Make Raspberry Pi Boot In To GUI By Default.md From 62bc5546f318f0f48caab1ce347994dff03881c7 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 4 Dec 2014 18:11:07 +0800 Subject: [PATCH 068/158] =?UTF-8?q?20141204-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ders' Choice Awards 2014--Linux Journal.md | 537 ++++++++++++++++++ 1 file changed, 537 insertions(+) create mode 100644 sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md diff --git a/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md b/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md new file mode 100644 index 0000000000..b68509ee00 --- /dev/null +++ b/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md @@ -0,0 +1,537 @@ +Readers' Choice Awards 2014--Linux Journal +================================================================================ +It's time for another Readers' Choice issue of Linux Journal! The format last year was well received, so we've followed suit making your voices heard loud again. I couldn't help but add some commentary in a few places, but for the most part, we just reported results. Please enjoy this year's Readers' Choice Awards! + +We'd like to make Readers' Choice Awards even better next year. Please send ideas for new categories and any comments or feedback via [http://www.linuxjournal.com/contact][1]. + +Please see the December 2014 issue of Linux Journal for the complete list of winners. + +### Best Linux Distribution ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f1.jpg) + +Although this year the Debian/Ubuntu-based distros took the lion's share of the votes, the "Best Linux Distribution" category is a bit like "Best Kind of Pizza"—even the bottom of the list is still pizza. It's hard to go wrong with Linux, and the wide variety of votes only proves how many different choices exist in our wonderful Open Source world. + +- Ubuntu 16.5% +- Debian 16.4% +- Linux Mint 11% +- Arch Linux 8.5% +- Fedora 8.3% +- CentOS 6% +- openSUSE 5.3% +- Kubuntu 4.1% +- Gentoo 2.9% +- Slackware 2.7% +- Xubuntu 2.5% +- Other 2.3% +- Red Hat Enterprise Linux 1.6% +- NixOS 1.4% +- elementary OS 1.3% +- Lubuntu 1.2% +- CrunchBang 1% +- Mageia .7% +- LXLE .4% +- Tails .4% +- Android-x86 .3% +- Bodhi Linux .3% +- Chakra .3% +- Kali Linux .3% +- PCLinuxOS .3% +- SolydK .3% +- Mandriva .1% +- Oracle Linux .1% + +### Best Mobile Linux OS ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f2.jpg) + +Android is such a dominant force in the mobile world, we decided to allow Android variants to be counted separately. So although the underlying system on some of these are indeed Android, it seems far more informative this way. + +- Stock Android 37.1% +- Sailfish OS 27.6% +- CyanogenMod 20.2% +- Other 3% +- Ubuntu Phone 3% +- Amazon Fire OS 1.5% +- Ubuntu for Android 1.4% +- Replicant .8% +- Tizen .8% + +### Best Linux Smartphone Manufacturer ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f3.jpg) + +- Samsung 29% +- Jolla 26.7% +- Nexus 16.5% +- Other 7.1%* +- HTC 7% +- LG 5.3% +- Sony 3.7% +- Nokia 1.8% +- Huawei 1.4% +- GeeksPhone 1% +- Amazon .6% + +*Under "Other", Motorola got many write-ins, followed by OnePlus. + +### Best Linux Tablet ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f4.jpg) + +- Google Nexus 7 35.3% +- Google Nexus 10 14.8% +- Samsung Galaxy Tab 14% +- Samsung Galaxy Note 9.8% +- ASUS Transformer Pad 8.4% +- Other 6.4% +- Kindle Fire HD 4.7% +- ASUS MeMO Pad 2% +- Dell Venue 1.6% +- Acer Iconia One 1.4% +- Samsung Galaxy Note Edge .9% +- Ekoore Python S3 .7% + +### Best Other Linux-Based Gadget (not including smartphones or tablets) ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f5.jpg) + +We are a Raspberry Pi-loving bunch, that's for sure! But really, who can blame us? With the new B+ model, the already awesome RPi is getting sleeker and more useful. I'm no fortune teller, but I suspect I know next year's winner already. + +- Raspberry Pi 71.4% +- BeagleBone Black 8.1% +- Other 4.3%* +- Lego Mindstorms Ev3 3.7% +- Moto 360 3.4% +- Cubieboard 1.7% +- Parrot A.R Drone 1.7% +- Samsung Gear S 1.4% +- Yamaha Motif XF8 1.1% +- Nvidia Jetson-K1 Development System .8% +- Cloudsto EVO Ubuntu Linux Mini PC .5% +- VoCore Open Hardware Computer .5% +- LG G Watch .4% +- RaZberry .4% +- VolksPC .4% +- IFC6410 Pico-ITX Board .2% +- JetBox 5300 .1% + +*Under "Other", the most popular write-ins were Odroid and CuBox. + +### Best Laptop Vendor ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/lenovo.jpg) + +This category used to be a rating of which vendors worked the best with Linux, but thankfully, now most laptops work fairly well. So, we truly get to see the cream rise to the top and focus on things other than "it works with Linux". It's awesome living in the future. + +- Lenovo 32% +- ASUS 19.3% +- Dell 18.5% +- System76 10.6% +- Other 7.9%* +- Acer 4.5% +- ThinkPenguin 1.9% +- LinuxCertified 1.8% +- ZaReason 1.6% +- EmperorLinux 1.5% +- CyberPower .3% +- Eurocom .1% + +*Under "Other", the most popular write-ins were (in this order) Apple running Linux, HP, Toshiba and Samsung. + +### Best Content Management System ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f6.jpg) + +- WordPress 34.7% +- Drupal 25.3% +- Joomla! 11.1% +- MediaWiki 10.5% +- Other 10%* +- Alfresco 4.3% +- WebGUI 1.3% +- ikiwiki 1.1% +- eZ publish .7% +- Wolf CMS .4% +- Elgg .3% +- Blosxom .2% + +*Under "Other", the most popular write-ins were (in this order) DokuWiki, Plone, Django and Typo3. + +### Best Linux-Friendly Web Hosting Company ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/question.jpg) + +When it comes to Web hosting, it's hard to find a company that isn't Linux-friendly these days. In fact, finding a hosting provider running Windows is more of a challenge. As is obvious by our winner ("Other"), the options are amazing. Perhaps a "Worst Web Hosting" category would be more useful! + +- Other 22.8%* +- Amazon 22.5% +- Rackspace 13.1% +- Linode 10.4% +- GoDaddy.com 6.5% +- OVH 5.6% +- DreamHost 5.4% +- 1&1 4.8% +- LAMP Host 2.9% +- Hurricane Electric 2.6% +- Liquid Web .6% +- RimuHosting .6% +- Host Media .5% +- Savvis .5% +- Blacknight Solutions .4% +- Netfirms .4% +- Prgmr .4% + +*Under "Other", the most write-ins went to (in this order) Digital Ocean (by a landslide), followed by Hetzner, BlueHost and WebFaction. + +### Best Web Browser ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f7.jpg) + +Firefox takes the gold this year by a significant margin. Even if you combine Chrome and Chromium, Firefox still takes the top spot. There was a time when we worried that the faithful Firefox would fade away, but thankfully, it's remained strong and continues to be a fast, viable, compatible browser. + +- Firefox 53.8% +- Chrome 26.9% +- Chromium 8.1% +- Iceweasel 4% +- Opera 3% +- Other 2% +- SeaMonkey .8% +- rekonq .5% +- dwb .4% +- QupZill .4% +- Dillo .2% + +### Best E-mail Client ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f8.jpg) + +If I didn't know firsthand how many hard-core geeks live among us, I might accuse Kyle Rankin of voting fraud. His beloved Mutt e-mail client doesn't take top spot, but for a program without any graphical interface, third place is impressive! + +- Mozilla Thunderbird 44.4% +- Gmail 24.7% +- Mutt 6.8% +- Evolution 5.5% +- KMail 5.3% +- Other 3.2% +- Claws Mail 2.2% +- Zimbra 2% +- Alpine 1.8% +- Geary 1.7% +- SeaMonkey 1% +- Opera Mail .9% +- Sylpheed .4% + +### Best Audio Editing Tool ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f9.jpg) + +- Audacity 69.1% +- FFmpeg 10.8% +- VLC 9.7% +- Ardour 4.9% +- Other 1.9% +- SoX 1.3% +- Mixxx 1.1% +- LMMS .7% +- Format Junkie .5% + +### Best Audio Player ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f10.jpg) + +We figured VLC would take top spot in the video player category (see below), but it was a bit of a surprise to see how many folks prefer it as an audio player as well. Perhaps it's become the one-stop shop for media playback. Either way, we're thrilled to see VLC on the top. + +- VLC 25.2% +- Amarok 15.3% +- Rhythmbox 10.4% +- Clementine 8.6% +- MPlayer 6.1% +- Spotify 5.9% +- Audacious 5.5% +- Banshee 4.6% +- Other 4%* +- XBMC 3.1% +- foobar2000 3% +- Xmms 2.4% +- DeaDBeeF 1.2% +- MOC .9% +- cmus .8% +- Ncmpcpp .8% +- Guayadeque .6% +- Mixxx .4% +- MPC-HC .4% +- Subsonic .4% +- Nightingale .3% +- Decibel Audio Player .2% + +*Under "Other", Quod Libet had the most write-ins. + +### Best Video Player ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f10_0.jpg) + +- VLC 64.7% +- MPlayer 14.5% +- XBMC 6.4% +- Totem 2.7% +- Other 2.7%* +- Plex 2% +- Kaffeine 1.9% +- mpv 1.6% +- MythTV 1.6% +- Amarok 1.4% +- Xmms .3% +- Daum Potplayer .2% +- Clementine .1% + +*Under "Other", most write-ins were for SMPlayer. + +### Best Video Editor ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f10_1.jpg) + +This is another testament to the geek factor when it comes to our readers. We didn't specify "non-linear editor", so by a transcoding technicality, VLC eked out a win in the video editing category. Well played, VLC, well played. + +- VLC 17.5% +- Kdenlive 16.4% +- Blender 15.1% +- Avidemux 13.2% +- OpenShot 13.2% +- Cinelerra 7.5% +- PiTiVi 4.9% +- LightWorks 4.8% +- Other 4.7% +- LiVES 1.4% +- Shotcut .6% +- Jahshaka .4% +- Flowblade .4% + +### Best Cloud-Based File Storage ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f11.jpg) + +In a category that used to have few options, Dropbox still takes top spot, but the margin is closing. It's hard to argue against Dropbox's convenience and stability, but hosting your own data on ownCloud gives it quite a boost into the second-place spot. + +- Dropbox 30.5% +- ownCloud 23.6% +- Google Drive 16% +- rsync 8.3% +- Other 7.5%* +- Amazon S3 6.6% +- SpiderOak 4.4% +- Box 1.8% +- Copy 1% +- AjaXplorer .3% + +*Under "Other", the most write-ins went to Younited and MEGA. Many also said things like "no cloud is the best choice/my files stay on my storage/local only". + +### Best Linux Game ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/CIVILIZATION-V-FRONT-OF-BOX.jpg) + +I rarely play games, so every year I look forward to this category to find the most popular options for those few times I do. I'm personally tickled to see NetHack so high on the list, especially considering the opposition. There's just something about wandering around random tunnels that appeals to the old-school DnD player in all of us. + +- Civilization 5 26.5% +- Other 23.5%* +- Team Fortress 2 8.7% +- NetHack 8.4% +- X-Plane 10 7.1% +- Dota 6.1% +- Bastion 5.4% +- Scorched 3D 3.7% +- Destiny 3.6% +- Ultima IV 1.9% +- FreeCol 1.8% +- Kpat 1.4% +- FreeOrion 1.1% +- Ryzom .9% + +*Under "Other", the most write-ins were (in this order) Minecraft, 0 A.D., Frozen Bubble, Battle for Wesnoth, Portal and Counter Strike. + +### Best Virtualization Solution ### + +I think the relationship with Vagrant has helped Oracle's VirtualBox significantly in popularity. Yes, Vagrant works with other virtualization platforms, but since it so seamlessly integrates with VirtualBox, I think it gets quite a boost. Virtualization is such an efficient and reliable way to implement systems, bare-metal solutions are almost a thing of the past! + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/Virtualbox_logo_0.jpg) + +- Oracle VM VirtualBox 33.4% +- VMware 22.3% +- KVM 21.1% +- XEN 5.7% +- QEMU 5.3% +- OpenStack 4.9% +- Other 4.2%* +- OpenVZ 1.7% +- Linux-VServer 1.3% +- Symantec Workspace Virtualization .1% + +*Under "Other", the most write-ins went to Docker, ProxMox and LXC, in that order. + +### Best Monitoring Application ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/Nagios-Core-4.0.8.png) + +- Nagios 27.1% +- Wireshark 20.7% +- htop 12.3% +- Zabbix 10.5% +- Other 8.6%* +- Zenoss 6.2% +- Munin 3.4% +- PC Monitor 2.8% +- New Relic 1.9% +- Opsview 1.2% +- SaltStack 1% +- NTM (Network Traffic Monitor) .7% +- xosview .7% +- Manage Engine .5% +- FlowViewer .3% +- Circonus .2% +- SysPeek .2% + +*Under "Other", most write-ins went to Icinga and OpenNMS. + +### Best DevOps Configuration Management Tool ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/Git-Logo-2Color.jpg) + +It was interesting to see Git take top spot in this category, because although it certainly would work to use standard version control on configuration files, I always assumed it would be used alongside tools like Chef or Puppet. If nothing else, the DevOps movement has taught crusty old system administrators like myself to treat configuration files like code. Version control is incredible, and it seems as though most readers agree. + +- Git 39.4% +- Puppet 17.2% +- Ansible 8.9% +- cron jobs 8.8% +- Subversion 7.6% +- Chef 5% +- SaltStack 5.4% +- Other 4.6%* +- CFEngine 3% + +*Under "Other", most write-ins went to NixOps. + +### Best Programming Language ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f13.jpg) + +- Python 30.2% +- C++ 17.8% +- C 16.7% +- Perl 7.1% +- Java 6.9% +- Other 4.6% +- Ruby 4.3% +- Go 2.4% +- JavaScript 2.4% +- QML 2.2% +- Fortran 1.4% +- Haskell 1.4% +- Lisp 1.2% +- Erlang .6% +- Rust .6% +- D .4% +- Hack .1% + +*Under "Other", most write-ins went to Scala, PHP and Clojure (in that order). + +### Best Scripting Language ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f13_0.jpg) + +Python is incredibly powerful, and it appears to be a favorite in both the scripting and programming categories. As someone who knows Bash and a little PHP, I think it's clear what I need to focus on as I delve into the world of development. Meaningful whitespace, here I come! + +- Python 37.1% +- Bash/Shell scripts 27% +- Perl 11.8% +- PHP 8.4% +- JavaScript 6.7% +- Ruby 4.9% +- Other 2.1% +- Lua 2% + +### Best New Linux/Open-Source Product/Project ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/11781f14.jpg) + +Docker is clearly our winner here, and rightly so—what a game-changing technology. It's nice to see Jolla/Sailfish get some love as well. We love Android, but having a choice is a vital part of who we are as Open Source advocates. + +- Docker 28% +- Jolla and Sailfish OS 19% +- LibreOffice 7% +- ownCloud 5% +- Steam 5% +- Zenoss Control Center 5% +- Raspberry Pi 4% +- Git 4% +- Apache Cordova/OpenOffice/Spark/Tika 3% +- Ansible 2% +- Elementary OS 2% +- OpenStack 2% +- Zabbix 2% +- CoreOS 2% +- Firefox OS 2% +- KDE Connect 1% +- NixOS and NixOps 1% +- Open Media Vault 1% + +### Coolest Thing You've Ever Done with Linux ### + +![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/slideshow-400/tux_cruise.png) + +This is my favorite new category for the Readers' Choice Awards. Imagine attending a Linux conference and asking everyone the coolest thing they've done with Linux. That's basically what happened here! We've listed a handful of our favorites, but for the entire list, check out: [http://www.linuxjournal.com/rc2014/coolest][2]. + +Note: the most common answers were "use it"; "rescue data/photos/whatever off broken Windows machines"; "convert friends/family/businesses to Linux"; "learn"; "teach"; "get a job"; "home automation"; and "build a home media server". The following list is of our favorite more-specific and unique answers, not the most common ones. + +- Building my procmail pre-spam spam filter back in the mid-late 1990s. +- 450-node compute cluster. +- 7.1 channel preamp with integrated mopidy music player. +- A robot running Linux (for the Eurobot annual competition). +- Accidentally printing on the wrong continent. +- Adding an audio channel to a video while also syncing it. +- Analyzed NASA satellite data with self-written code. +- Annoyed the cat remotely. +- Automated my entire lighting setup in my house to respond to voice and my mobile apps. +- Automatic window plant irrigation system. +- Bathroom radio. +- Brewing beer. +- Built an application that runs on the International Space Station. +- Built a system for real-time toll collection for a major toll highway system. +- Built our own smartphone. +- Built Web-based home alarm system on Raspberry Pi. +- Cluster of Raspberry Pis to crack encrypted office documents. +- Controlled my Parrot drone. +- Controlled the comms for 186 Wind turbines. +- Controlling my Meade Telescope with Stellarium under Linux. +- Converted my old VHS family videos, using a laptop more than ten years old. +- Created a mesh network in the subarctic. +- Created an ocean environmental sensor buoy with radio data transmitter. +- Discovered new planets. +- Fixed a jabber server in Denver, USA, while in a hotel lobby in Amman, Jordan. +- Got Linus' autograph on a Red Hat 5.0 CD. +- Hacked my coffee machine to send me a text message when the coffee is ready. +- Introduced my daughter to Lego Mindstorm EV3. +- Monitor the temp and humidity of my wine cellar and open the doors when too hot or humid. +- Replaced the controller in my hot tub with a Raspberry Pi. +- Scripted opening and closing of a co-worker's CD tray every 15 seconds for four days. +- Used an LFS system to move ACH transfers for a national gas company. +- Flushed my toilet from another city. +- Remote chicken door. +- Web-based sprinkler controller for 16 stations on a Raspberry PI (also control the pool and yard lights). +- Chaining SSH tunnels together to get from work to home via three hops due to restrictive network settings. +- Built a system that monitors a renewable energy installation with two fixed solar arrays, a two axis sun tracking solar array and a wind turbine. Production and weather data are displayed on a Web site in real time. +- Back in the days of modems, I had my computer call up my girlfriend every morning, so she would wake up and go to work. +- Used a Wii controller, through Bluetooth with my Linux computer as an Infrared Camera, to detect the movement of my daughter's Fisher Price Sit and Spin Pony, and to control a video game. + +-------------------------------------------------------------------------------- + +via: http://www.linuxjournal.com/rc2014 + +作者:[Shawn Powers][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.linuxjournal.com/users/shawn-powers +[1]:http://www.linuxjournal.com/contact +[2]:http://www.linuxjournal.com/rc2014/coolest \ No newline at end of file From b5bb90f1388949e4e46118854656b7b9bd8119d3 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 4 Dec 2014 18:46:36 +0800 Subject: [PATCH 069/158] =?UTF-8?q?20141204-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... To Delete Oracle 11g Database Manually.md | 51 +++++++++++ ...atabase In Oracle 11 Without Using DBCA.md | 84 +++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 sources/tech/20141204 How To Delete Oracle 11g Database Manually.md create mode 100644 sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md diff --git a/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md b/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md new file mode 100644 index 0000000000..7a6203f1d0 --- /dev/null +++ b/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md @@ -0,0 +1,51 @@ +How To Delete Oracle 11g Database Manually ? +================================================================================ +The following steps shows how to manually delete a database within Oracle 11g, running in an Linux environment. + +I have Centos 6 system with Oralce 11G installed. + +Use SQL*Plus or your favorite SQL command line tool to log in to the target database; log in as **sysdba** + +Type the following commands to get the path to various files: + + select name from v$datafile; + select member from v$logfile; + select name from v$controlfile; + select name from v$tempfile; + +**Shut down the database within SQL*Plus, and then exit out of SQL*Plus** + + sqlplus " / as sysdba' + +---------- + + shutdown immediate; + quit; + +**Stop the listener service by issuing the following command in the terminal prompt:** + +From Oralce Linux account do: + + lsnrctl stop + +Recall the file paths found earlier; use them as a check list as you delete each one of those files. Reminder: did you back up your database yet? When ready, go ahead delete your data files, redo log files, control files, and temp files. + +- Go to the **$ORACLE_HOME/network/admin** directory and delete the **tnsnames.ora** and **listener.ora** files; +- Go to the **$ORACLE_HOME/dbs** directory and delete the **init[db_name].ora**, **orapw[db_name]**, and **spfile[db_name].ora** files; +- Go to the **$ORACLE_HOME/admin/[db_name]/pfile** directory and delete the **init[db_name].ora** file; +- Go to the **$ORACLE_HOME/admin/[db_name]/adump** directory and delete all files in that directory; +- Edit the file **/etc/oratab** by removing the line that starts with your database name. + +Done. + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/manually-delete-oracle-11g-database/ + +作者:[M.el Khamlichi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/pirat9/ \ No newline at end of file diff --git a/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md b/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md new file mode 100644 index 0000000000..3420955f28 --- /dev/null +++ b/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md @@ -0,0 +1,84 @@ +How To Drop Database In Oracle 11 Without Using DBCA +================================================================================ +In this small tutorial, I want to show you how to drop the database without using the GUI tool DBCA + +#### 1- Export database SID if not yet Already defined #### + + export ORACLE_SID=database + +#### 2- Connect as sysdba #### + + [oracle@Oracle11 ~]$ sqlplus / as sysdba + +---------- + + SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 1 17:38:02 2014 + +---------- + + Copyright (c) 1982, 2009, Oracle. All rights reserved. + +---------- + + Connected to an idle instance. + +#### 3- Start The database #### + + SQL> startup + ORACLE instance started. + Total System Global Area 3340451840 bytes + Fixed Size 2217952 bytes + Variable Size 1828718624 bytes + Database Buffers 1493172224 bytes + Redo Buffers 16343040 bytes + Database mounted. + Database opened. + +#### 4- Shutdown the database #### + + SQL> shutdown immediate; + Database closed. + Database dismounted. + ORACLE instance shut down. + +#### 5- Start in Exclusive mode #### + + SQL> startup mount exclusive restrict + ORACLE instance started. + +---------- + + Total System Global Area 3340451840 bytes + Fixed Size 2217952 bytes + Variable Size 1828718624 bytes + Database Buffers 1493172224 bytes + Redo Buffers 16343040 bytes + Database mounted. + +#### 6- Drop the database #### + + SQL> drop database; + +---------- + + Database dropped. + +---------- + + Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production + With the Partitioning, OLAP, Data Mining and Real Application Testing options +SQL> + +Cheers! + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/drop-database-oracle-11-without-using-dcba/ + +作者:[M.el Khamlichi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/pirat9/ \ No newline at end of file From 813e4c0d00af882368e17522776c3d1c6978b09e Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 4 Dec 2014 19:03:12 +0800 Subject: [PATCH 070/158] =?UTF-8?q?20141204-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20141204 CoreOS breaks with Docker.md | 48 +++++++++++ ...ms From The Terminal In Background Mode.md | 86 +++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 sources/talk/20141204 CoreOS breaks with Docker.md create mode 100644 sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md diff --git a/sources/talk/20141204 CoreOS breaks with Docker.md b/sources/talk/20141204 CoreOS breaks with Docker.md new file mode 100644 index 0000000000..40b09f6121 --- /dev/null +++ b/sources/talk/20141204 CoreOS breaks with Docker.md @@ -0,0 +1,48 @@ +CoreOS breaks with Docker +================================================================================ +> Summary: CoreOS, a new enterprise Linux company and a Docker partner, is now proposing its own alternative to Docker's container technology. + +[Docker][1] exploded out of nowhere in 2014 to make container technology white hot in cloud and datacenter technical circles. Even [Microsoft joined its open-source virtualization revolution][2]. Now, however, early Docker supporter [CoreOS][3], a new large-scale Linux distributor vendor, is turning its back on it and developing its own container technology: [Rocket][4]. + +![](http://cdn-static.zdnet.com/i/r/story/70/00/036331/coreos-200x77.jpg?hash=MTAvMJZ3MJ&upscale=1) + +While [CoreOS][5] is relatively unknown outside of Linux circles and Silicon Valley, it's seen by those in the know as an up and coming Linux distribution for datacenters and clouds. It's not an insignificant company crying foul, because [Docker's take on virtualization has proven to be so popular][6]. Indeed, CoreOS currently requires Docker to work well, and Brandon Philips, CoreOS' co-founder and CTO, has been a top Docker contributor and was serving on the Docker governance board. + +So, why is CoreOS breaking with Docker? First, because "We believe strongly in the Unix philosophy: Tools should be independently useful, but have clean integration points." However, it also said that "Docker now is building tools for launching cloud servers, systems for clustering, and a wide range of functions: Building images, running images, uploading, downloading, and eventually even overlay networking, all compiled into one monolithic binary running primarily as root on your server." + +In short, instead of Docker being a Unix-style, simple reusable component, CoreOS sees Docker becoming a platform. And CoreOS has no interest in that. + +Instead, with Rocket, they propose going back to the [original Docker proposal][7] for what a container should be. + +CoreOS spells out that Rocket will be: + +- **Composable**: All tools for downloading, installing, and running containers should be well integrated, but independent and composable. +- **Secure**: Isolation should be pluggable, and the crypto primitives for strong trust, image auditing, and application identity should exist from day one. +- **Image distribution**: Discovery of container images should be simple and facilitate a federated namespace and distributed retrieval. This opens the possibility of alternative protocols, such as BitTorrent, and deployments to private environments without the requirement of a registry. +- **Open**: The format and runtime should be well specified and developed by a community. We want independent implementations of tools to be able to run the same container consistently. + +To do this, CoreOS is not forking Docker. Alex Polvi, CoreOS' CEO, wrote, "From a security and composability perspective, the Docker process model — where everything runs through a central daemon — is fundamentally flawed. To 'fix' Docker would essentially mean a rewrite of the project, while inheriting all the baggage of the existing implementation." + +CoreOS already has an [alpha version of Rocket on GitHub][8], but it's still open to other ideas on how to build a Docker alternative. At the same time, however, CoreOS states that it won't be leaving Docker behind. "We will continue to make sure CoreOS is the best place to run Docker ... [and] expect Docker to continue to be fully integrated with CoreOS as it is today." + +While I can understand CoreOS' concerns, I find it hard to imagine that its attempt to come up with a successful alternative to Docker will come to anything. Docker certainly isn't perfect, but in a matter of mere months, it gathered support from almost everyone in the enterprise operating system business. The only way I can see CoreOS' Rocket launching successfully will be if Docker falls flat on its face, and I just don't see that happening. + +-------------------------------------------------------------------------------- + +via: http://www.zdnet.com/coreos-breaks-with-docker-7000036331/#ftag=RSS06bb67b + +作者:[Steven J. Vaughan-Nichols][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.zdnet.com/meet-the-team/us/steven-j-vaughan-nichols/ +[1]:https://www.docker.com/ +[2]:http://www.zdnet.com/docker-container-support-coming-to-microsofts-next-windows-server-release-7000034708 +[3]:https://coreos.com/ +[4]:https://coreos.com/blog/rocket +[5]:http://www.zdnet.com/coreos-linux-for-the-cloud-and-the-datacenter-7000031137/ +[6]:http://www.zdnet.com/what-is-docker-and-why-is-it-so-darn-popular-7000032269/ +[7]:https://github.com/docker/docker/commit/0db56e6c519b19ec16c6fbd12e3cee7dfa6018c5 +[8]:https://github.com/coreos/rocket \ No newline at end of file diff --git a/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md b/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md new file mode 100644 index 0000000000..6ab48a5930 --- /dev/null +++ b/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md @@ -0,0 +1,86 @@ +How To Run Linux Programs From The Terminal In Background Mode +================================================================================ +![Linux Terminal Window.](http://0.tqn.com/y/linux/1/W/r/G/1/terminal.JPG) + +Linux Terminal Window. + +This is a short but useful guide to show how to run Linux applications from the terminal whilst allowing the terminal to retain control. + +There are various ways of opening a terminal window in Linux and it largely depends on your choice of distribution and the desktop environment. + +Using Ubuntu you can open a terminal by using the CTRL + ALT + T key combination. You can also open a terminal window by pressing the super key (Windows Key), on the keyboard, to [bring up the Dash][1] and search for "TERM". Clicking on the "Term" icon will open a terminal window. + +For other desktop environments such as XFCE, KDE, LXDE, Cinnamon and MATE you will find the terminal within the menu. Some distributions will have a terminal icon in a dock or as a launcher on a panel. + +You can generally start an application from the terminal by simply entering the name of the program. For instance you can start Firefox by typing "firefox". + +The benefit of running an application from the terminal is that you can include additional options. + +For instance if you type the following a new Firefox browser window will open and the default search engine will be used to search for the term between quotes: + + firefox -search "Linux.About.Com" + +You will notice that if you run Firefox, the application will open and the control will be returned to the terminal which means you can continue working within the terminal. + +Generally if you run an application from within the terminal, the application will open and you won't regain control of the terminal until the application is closed. This is because you opened the program in the foreground. + +To be able to open a program in the Linux terminal and return control to the terminal you need to open the application as a background process, + +In order to open a program as a background process simply add the ampersand (&) symbol to the command as shown below: + + libreoffice & + +An application might not run just by providing the program's name in the terminal. If the program doesn't reside in one of the folders set within the PATH variable then you will need to specify the whole path name in order to run the program. + + /path/to/yourprogram & + +If you aren't sure where a program resides within the Linux folder structure use the find or [locate][2] command to find the application. + +The syntax for finding a file is as follows: + + find /path/to/start/from -name programname + +For instance if you wanted to find the location of Firefox use the following command: + + find / -name firefox + +The output will whizz past quite quickly and so you will want to pipe the output to either [less][3] or [more][4] as follows: + + find / -name firefox | more + + find / -name firefox | less + +The find command will return a number of permission denied errors for folders that you don't have permissions to search. + +You can alway provide the [sudo command to elevate your permissions][5]. If sudo isn't installed you will need to switch to a user that has permissions. + + sudo find / -name firefox | more + +If you know that the file you are looking for is within the folder structure in which you are currently located then you can replace the forward slash with a period as follows: + + sudo find . -name firefox | more + +You may or may not need the elevated permissions provided by sudo. If you are looking for something within your home folder structure then it won't be required. + +Some applications require elevated permissions to run and you may get a lack of permissions error unless you use either a user with adequate permissions or elevate those permissions using sudo. + +Here is a neat trick. If you run an application and it requires elevated permissions to run, type the following: + + sudo !! + +-------------------------------------------------------------------------------- + +via: http://linux.about.com/od/commands/fl/How-To-Run-Linux-Programs-From-The-Terminal-In-Background-Mode.htm + +作者:[Gary Newell][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://linux.about.com/bio/Gary-Newell-132058.htm +[1]:http://linux.about.com/od/howtos/fl/Learn-Ubuntu-The-Unity-Dash.htm +[2]:http://linux.about.com/od/commands/l/blcmdl1_locate.htm +[3]:http://linux.about.com/library/cmd/blcmdl1_less.htm +[4]:http://linux.about.com/library/cmd/blcmdl1_more.htm +[5]:http://linux.about.com/od/commands/l/blcmdl8_sudo.htm \ No newline at end of file From 34d4475dede86febccf67af697c5ef6769b5b5f5 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 4 Dec 2014 19:14:11 +0800 Subject: [PATCH 071/158] =?UTF-8?q?20141204-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20141204 Linux Namespaces.md | 237 ++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 sources/tech/20141204 Linux Namespaces.md diff --git a/sources/tech/20141204 Linux Namespaces.md b/sources/tech/20141204 Linux Namespaces.md new file mode 100644 index 0000000000..9bc489b8cb --- /dev/null +++ b/sources/tech/20141204 Linux Namespaces.md @@ -0,0 +1,237 @@ +Linux Namespaces +================================================================================ +### Background ### + +Starting from kernel 2.6.24, Linux supports 6 different types of namespaces. Namespaces are useful in creating processes that are more isolated from the rest of the system, without needing to use full low level virtualization technology. + +- **CLONE_NEWIPC**: IPC Namespaces: SystemV IPC and POSIX Message Queues can be isolated. +- **CLONE_NEWPID**: PID Namespaces: PIDs are isolated, meaning that a virtual PID inside of the namespace can conflict with a PID outside of the namespace. PIDs inside the namespace will be mapped to other PIDs outside of the namespace. The first PID inside the namespace will be '1' which outside of the namespace is assigned to init +- **CLONE_NEWNET**: Network Namespaces: Networking (/proc/net, IPs, interfaces and routes) are isolated. Services can be run on the same ports within namespaces, and "duplicate" virtual interfaces can be created. +- **CLONE_NEWNS**: Mount Namespaces. We have the ability to isolate mount points as they appear to processes. Using mount namespaces, we can achieve similar functionality to chroot() however with improved security. +- **CLONE_NEWUTS**: UTS Namespaces. This namespaces primary purpose is to isolate the hostname and NIS name. +- **CLONE_NEWUSER**: User Namespaces. Here, user and group IDs are different inside and outside of namespaces and can be duplicated. + +Let's look first at the structure of a C program, required to demonstrate process namespaces. The following has been tested on Debian 6 and 7. First, we need to allocate a page of memory on the stack, and set a pointer to the end of that memory page. We use **alloca** to allocate stack memory rather than malloc which would allocate memory on the heap. + + void *mem = alloca(sysconf(_SC_PAGESIZE)) + sysconf(_SC_PAGESIZE); + +Next, we use **clone** to create a child process, passing the location of our child stack 'mem', as well as the required flags to specify a new namespace. We specify 'callee' as the function to execute within the child space: + + mypid = clone(callee, mem, SIGCHLD | CLONE_NEWIPC | CLONE_NEWPID | CLONE_NEWNS | CLONE_FILES, NULL); + +After calling **clone** we then wait for the child process to finish, before terminating the parent. If not, the parent execution flow will continue and terminate immediately after, clearing up the child with it: + + while (waitpid(mypid, &r, 0) < 0 && errno == EINTR) + { + continue; + } + +Lastly, we'll return to the shell with the exit code of the child: + + if (WIFEXITED(r)) + { + return WEXITSTATUS(r); + } + return EXIT_FAILURE; + +Now, let's look at the **callee** function: + + static int callee() + { + int ret; + mount("proc", "/proc", "proc", 0, ""); + setgid(u); + setgroups(0, NULL); + setuid(u); + ret = execl("/bin/bash", "/bin/bash", NULL); + return ret; + } + +Here, we mount a **/proc** filesystem, and then set the uid (User ID) and gid (Group ID) to the value of 'u' before spawning the **/bin/bash** shell. [LXC][1] is an OS level virtualization tool utilizing cgroups and namespaces for resource isolation. Let's put it all together, setting 'u' to 65534 which is user "nobody" and group "nogroup" on Debian: + + #define _GNU_SOURCE + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + static int callee(); + const int u = 65534; + int main(int argc, char *argv[]) + { + int r; + pid_t mypid; + void *mem = alloca(sysconf(_SC_PAGESIZE)) + sysconf(_SC_PAGESIZE); + mypid = clone(callee, mem, SIGCHLD | CLONE_NEWIPC | CLONE_NEWPID | CLONE_NEWNS | CLONE_FILES, NULL); + while (waitpid(mypid, &r, 0) < 0 && errno == EINTR) + { + continue; + } + if (WIFEXITED(r)) + { + return WEXITSTATUS(r); + } + return EXIT_FAILURE; + } + static int callee() + { + int ret; + mount("proc", "/proc", "proc", 0, ""); + setgid(u); + setgroups(0, NULL); + setuid(u); + ret = execl("/bin/bash", "/bin/bash", NULL); + return ret; + } + +To execute the code produces the following: + + root@w:~/pen/tmp# gcc -O -o ns.c -Wall -Werror -ansi -c89 ns.c + root@w:~/pen/tmp# ./ns + nobody@w:~/pen/tmp$ id + uid=65534(nobody) gid=65534(nogroup) + nobody@w:~/pen/tmp$ ps auxw + USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND + nobody 1 0.0 0.0 4620 1816 pts/1 S 21:21 0:00 /bin/bash + nobody 5 0.0 0.0 2784 1064 pts/1 R+ 21:21 0:00 ps auxw + nobody@w:~/pen/tmp$ + +Notice that the UID and GID are set to that of nobody and nogroup. Specifically notice that the full ps output shows only two running processes and that their PIDs are 1 and 5 respectively. Now, let's move on to using ip netns to work with network namespaces. First, let's confirm that no namespaces exist currently: + + root@w:~# ip netns list + Object "netns" is unknown, try "ip help". + +In this case, either ip needs an upgrade, or the kernel does. Assuming you have a kernel newer than 2.6.24, it's most likely **ip**. After upgrading, **ip netns list** should by default return nothing. Let's add a new namespace called 'ns1': + + root@w:~# ip netns add ns1 + root@w:~# ip netns list + ns1 + +First, let's list the current interfaces: + + root@w:~# ip link list + 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 1000 + link/ether 00:0c:29:65:25:9e brd ff:ff:ff:ff:ff:ff + +Now to create a new virtual interface, and add it to our new namespace. Virtual interfaces are created in pairs, and are linked to each other - imagine a virtual crossover cable: + + root@w:~# ip link add veth0 type veth peer name veth1 + root@w:~# ip link list + 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 1000 + link/ether 00:0c:29:65:25:9e brd ff:ff:ff:ff:ff:ff + 3: veth1: mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 + link/ether d2:e9:52:18:19:ab brd ff:ff:ff:ff:ff:ff + 4: veth0: mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 + link/ether f2:f7:5e:e2:22:ac brd ff:ff:ff:ff:ff:ff + +**ifconfig** -a will also now show the addition of both veth0 and veth1. + +Great, now to assign our new interfaces to the namespace. Note that ip **netns exec** is used to execute commands within the namespace: + + root@w:~# ip link set veth1 netns ns1 + root@w:~# ip netns exec ns1 ip link list + 1: lo: mtu 65536 qdisc noop state DOWN mode DEFAULT + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 3: veth1: mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 + link/ether d2:e9:52:18:19:ab brd ff:ff:ff:ff:ff:ff + +**ifconfig** -a will now only show veth0, as veth1 is in the ns1 namespace. + +Should we want to delete veth0/veth1: + + ip netns exec ns1 ip link del veth1 + +We can now assign IP address 192.168.5.5/24 to veth0 on our host: + + ifconfig veth0 192.168.5.5/24 + +And assign veth1 192.168.5.10/24 within ns1: + + ip netns exec ns1 ifconfig veth1 192.168.5.10/24 up + +To execute ip addr **list** on both our host and within our namespace: + + root@w:~# ip addr list + 1: lo: mtu 65536 qdisc noqueue state UNKNOWN + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever + 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 + link/ether 00:0c:29:65:25:9e brd ff:ff:ff:ff:ff:ff + inet 192.168.3.122/24 brd 192.168.3.255 scope global eth0 + inet6 fe80::20c:29ff:fe65:259e/64 scope link + valid_lft forever preferred_lft forever + 6: veth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 + link/ether 86:b2:c7:bd:c9:11 brd ff:ff:ff:ff:ff:ff + inet 192.168.5.5/24 brd 192.168.5.255 scope global veth0 + inet6 fe80::84b2:c7ff:febd:c911/64 scope link + valid_lft forever preferred_lft forever + root@w:~# ip netns exec ns1 ip addr list + 1: lo: mtu 65536 qdisc noop state DOWN + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 5: veth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000 + link/ether 12:bd:b6:76:a6:eb brd ff:ff:ff:ff:ff:ff + inet 192.168.5.10/24 brd 192.168.5.255 scope global veth1 + inet6 fe80::10bd:b6ff:fe76:a6eb/64 scope link + valid_lft forever preferred_lft forever + +To view routing tables inside and outside of the namespace: + + root@w:~# ip route list + default via 192.168.3.1 dev eth0 proto static + 192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.122 + 192.168.5.0/24 dev veth0 proto kernel scope link src 192.168.5.5 + root@w:~# ip netns exec ns1 ip route list + 192.168.5.0/24 dev veth1 proto kernel scope link src 192.168.5.10 + +Lastly, to connect our physical and virtual interfaces, we'll require a bridge. Let's bridge eth0 and veth0 on the host, and then use DHCP to gain an IP within the ns1 namespace: + + root@w:~# brctl addbr br0 + root@w:~# brctl addif br0 eth0 + root@w:~# brctl addif br0 veth0 + root@w:~# ifconfig eth0 0.0.0.0 + root@w:~# ifconfig veth0 0.0.0.0 + root@w:~# dhclient br0 + root@w:~# ip addr list br0 + 7: br0: mtu 1500 qdisc noqueue state UP + link/ether 00:0c:29:65:25:9e brd ff:ff:ff:ff:ff:ff + inet 192.168.3.122/24 brd 192.168.3.255 scope global br0 + inet6 fe80::20c:29ff:fe65:259e/64 scope link + valid_lft forever preferred_lft forever + +br0 has been assigned an IP of 192.168.3.122/24. Now for the namespace: + + root@w:~# ip netns exec ns1 dhclient veth1 + root@w:~# ip netns exec ns1 ip addr list + 1: lo: mtu 65536 qdisc noop state DOWN + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 5: veth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000 + link/ether 12:bd:b6:76:a6:eb brd ff:ff:ff:ff:ff:ff + inet 192.168.3.248/24 brd 192.168.3.255 scope global veth1 + inet6 fe80::10bd:b6ff:fe76:a6eb/64 scope link + valid_lft forever preferred_lft forever + +Excellent! veth1 has been assigned 192.168.3.248/24 + +-------------------------------------------------------------------------------- + +via: http://www.howtoforge.com/linux-namespaces + +作者:[aziods][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.howtoforge.com/forums/private.php?do=newpm&u=138952 +[1]:http://en.wikipedia.org/wiki/LXC \ No newline at end of file From 2bcf9868369fb5fa3bd7956429203513afd0fd3d Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 4 Dec 2014 19:27:19 +0800 Subject: [PATCH 072/158] =?UTF-8?q?20141204-6=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Gameplay--Try these 13 Roguelike games.md | 404 ++++++++++++++++++ 1 file changed, 404 insertions(+) create mode 100644 sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md diff --git a/sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md b/sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md new file mode 100644 index 0000000000..14ce0991d0 --- /dev/null +++ b/sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md @@ -0,0 +1,404 @@ +Intense Gameplay? Try these 13 Roguelike games +================================================================================ +Roguelike is a sub-genre of role-playing games. It literally means "a game like Rogue". Rogue is a dungeon crawling video game first released in 1980, standing out for being fiendishly addictive. Its goal was to retrieve the Amulet of Yendor, hidden deep in the 26th level, and ascend back to the top. + +There is no exact definition of a roguelike, but this type of game typically has the following characteristics: + +- High fantasy narrative background +- Procedural level generation. Most of the game world is generated by the game for every new gameplay session. This is meant to encourage replayability +- Turn-based dungeon exploration and combat +- Tile-based graphics that are randomly generated +- Random conflict outcomes +- Permanent death death works realistically, once you're gone, you're gone +- High difficulty + +This article compiles a good selection of roguelike games available for Linux. If you enjoy intense, addictive gameplay, try these 13 games. Don't be put off by the primitive graphics, you'll soon forget the visuals once you get immersed. All of them are available to download without charge, and almost all are released under an open source license. + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/DungeonCrawlStoneSoup.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-Dungeon1.png) + +Dungeon Crawl Stone Soup is an open-source, single-player, role-playing roguelike game of exploration and treasure-hunting in dungeons filled with dangerous and unfriendly monsters in a quest to rescue the mystifyingly fabulous Orb of Zot. + +Dungeon Crawl Stone Soup is a continuation of Linley's Dungeon Crawl. It is openly developed and invites participation from the Crawl community. + +Dungeon Crawl has superb, deep tactical gameplay, innovative magic and religion systems, and a grand variety of monsters to fight. Crawl is also one of the hardest roguelikes to beat. When you finally beat the game and write your victory post on rec.games.roguelike.misc, you know you have achieved something. + +Features include: + +- Well-rounded, deep tactically rich roguelike +- Hand-drawn maps +- Numerous portal vaults +- Slick interface +- Innovative magic and religion systems +- Wide range of Gods, Characters, Items, and Smart Monsters + +- Website: [crawl.develz.org][1] +- Developer: Stone Soup devteam +- License: Crawl General Public License +- Version Number: 0.15.2 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/DwarfFortress.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-DwarfFortress.png) + +Dwarf Fortress is a single-player fantasy game, similar to NetHack. You can control a dwarven outpost or an adventurer in a randomly generated, persistent world. + +The game features three modes of play (Dwarf Fortress, Adventurer and Legends modes), a distinct, randomly-generated world (complete with terrain, wildlife and legends), gruesome combat mechanics and vicious schools of carp. + +Features include: + + +- The world persists as long as you like, over many games, recording historical events and tracking changes +- Command your dwarves as they search for wealth in the mountain + - Craft treasures and furniture from many materials and improve these objects with precious metals, jewels and more + - Defend yourself against attacks from hostile civilizations, the wilderness and the depths + - Support the nobility as they make demands of your populace + - Keep your dwarves happy and read their thoughts as they work and relax + - Z coordinate allows you to dig out fortresses with multiple levels. Build towers or conquer the depths + - Build floodgates to divert water for farming or to drown your adversaries +- Play an adventurer and explore, quest for glory or seek vengeance + - Meet adversaries from previous games + - Recruit people in towns to come with you on your journey + - Explore without cumbersome plot restrictions + - Seamlessly wander the world -up to 197376 x 197376 squares total -or travel more rapidly on the region map + - Accept quests from the town and civilization leaders + - Retire and meet your old characters. Bring them along on an adventure with a new character or reactivate them and play directly + - Z coordinate allows you to move seamlessly between dungeon levels and scale structures fighting adversaries above and below +- The combat model uses skills, body parts, wrestling, charging and dodging between squares, bleeding, pain, nausea, and much more +- A dynamic weather model tracks wind, humidity and air masses to create fronts, clouds, rain storms and blizzards +- Over two hundred rock and mineral types are incorporated into the world, placed in their proper geological environments +- Add new creatures, weapons, plants, metals and other objects via modifiable text files +- Extended ASCII character set rendered in 16 colors (including black) as well as 8 background colors (including black) + +- Website: [www.bay12games.com/dwarves/][2] +- Developer: Tarn Adams +- License: Freeware +- Version Number: 0.40.19 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/ADOM.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-ADOM.png) + +Ancient Domains of Mystery (ADOM) is a rogue-like game which has been in development since 1994. + +It is a single-user game featuring the exploration of a dungeon complex. You control a fictional character described by race, class, attributes, skills, and equipment. This fictional character is trying to achieve a specific goal (see below) and succeed in a difficult quest. To fulfill the quest, you have to explore previously undiscovered tunnels and dungeons, fight hideous monsters, uncover long forgotten secrets, and find treasures of all kind. + +During the game, you explore dungeon levels which are randomly generated each game. You might also encounter certain special levels, which present a particular challenge or are built around a certain theme. + +Features include: + +- Huge game world with hundreds of locations such as towns, randomized dungeons, elemental temples, graveyards, ancient ruins, towers and other secrets +- Loads of races (dwarves, drakelings, mist elves, hurthlings, orcs, trolls, ratlings and many others) and even more classes (fighters, elementalists, assassins, chaos knights, duelists and much more) allowing for infinite play styles +- Hundreds of monsters and items, many with enhanced random features +- A corruption system forcing you to balance lust for power with fear of damnation +- Spells, prayers, mindcraft, alchemy, crafting and more +- Dozens of quests and branching story lines +- Numerous wildly different endings that might alter reality itself + +- Website: [www.adom.de][3] +- Developer: Thomas Biskup +- License: Postcardware +- Version Number: 1.20 Prelease 20 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/ToME.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-ToME.png) + +Tales of Maj’Eyal (ToME) is a free, open source roguelike RPG, featuring tactical turn-based combat and advanced character building. It is written as a module that runs in T-Engine 4.0. + +This is the Age of Ascendancy, after over ten thousand years of strife, pain and chaos the known world is at last at relative peace. The Spellblaze last effects are now tamed, the land slowly heals itself and the civilisations rebuild themselves after the Age of Pyre. + +Features include: + +- Suitable for gamers without any rogueline experience +- Supports both graphical tiles and ASCII mode +- Over 40 abilities available on some characters +- Talent system +- Combat engine +- Online persistent stat/achievement tracking +- IRC chat client +- Expandable and moddable +- Atmospheric music +- Unlock new races, classes, starting points, playmodes and features + +- Website: [te4.org][4] +- Developer: ToME Development Team +- License: GNU GPL v3.0 +- Version Number: 1.2.5 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/CataclysmDarkDaysAhead1.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Cataclysm.png) + +Cataclysm is an open source post-apocalyptic roguelike, set in the countryside of fictional New England after a devastating plague of monsters and zombies. It is a continuation of Whale's original Cataclysm, which expands it with numerous new creatures, buildings, gameplay mechanics and many other features. + +While some have described it as a "zombie game", there's far more to Cataclysm than that. Struggle to survive in a harsh, persistent, procedurally generated world. Scavenge the remnants of a dead civilization for for food, equipment, or, if you're lucky, a vehicle with a full tank of gas to get you the hell out of Dodge. Fight to defeat or escape from a wide variety of powerful monstrosities, from zombies to giant insects to killer robots and things far stranger and deadlier, and against the others like yourself, that want what you have... + +Cataclysm is very different from most roguelikes in many ways. Rather than being set in a vertical, linear dungeon, it is set in an unbounded, 3D world. This means that exploration plays a much bigger role than in most roguelikes, and the game is much less linear. As the map is so huge, it is actually completely persistant between games. If you die, and start a new character, your new game will be set in the same game world as your last. Like in many roguelikes, you will be able to loot the dead bodies of previous characters; unlike most roguelikes, you will also be able to retrace their steps completely, and any dramatic changes made to the world will persist into your next game. + +Features include: + + +- Detailed character creation, with a plethora of traits to choose +- Defense mode, a coffeebreak mode with fast-paced combat +- Bionics; Similar to the magic system in many games +- Mutations, both positive and negative +- Unbounded, fully randomized world map that is persistent between characters +- Item crafting + - New recipes may be acquired by honing your knowledge through practice or learning from books +- Realistic fire, smoke, and other dynamic map effects +- A day/night cycle with the need to sleep. Use caffeine to stay awake longer if you must but be aware this is not healthy +- Over 300 item types, including a multitude of real-world guns, drugs, and tools + - Many drugs are addictive, and will require continuous use to avoid withdrawal effects. +- Ability to board doors and windows, construct traps and fortify your home base to prevent a rude awakening by a zombie +- Ability to construct your own wooden constructions, including walls and a roof +- Ability to drive around in vehicles found in the post-apocalyptic landscape + - These can be modified to your needs, or you could even build one from scratch +- A temperature system, being too cold or too hot is quite hazardous +- Preliminary tile support +- WorldGen options, and versatile editing methods +- +- Website: [en.cataclysmdda.com][5] +- Authors: Kevin Granade and others +- License: Creative Commons Attribution-ShareAlike 3.0 Unported License +- Version Number: 0.B + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/GoblinHack1.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-GoblinHack.png) + +Goblin Hack is an open source roguelike OpenGL-based smooth-scrolling ASCII graphics game. The game is inspired by the likes of NetHack, but faster with fewer keys. + +Goblin Hack has a simple interface that appears to appeal to players of all ages, and fires their imagination in today's world of over-rendered games. + +Players can choose one of several classes before being thrown into the first floor of a randomized, ongoing dungeon. + +Features include: + +- Impressive graphics (compared with many other roguelike games) +- Simple interface +- Choose one of several classes before being thrown into the first floor of a randomized, ongoing dungeon +- Manually save the game + +- Website: [goblinhack.sourceforge.net][6], [github.com/goblinhack/goblinhack][7] +- Authors: Neil McGill +- License: GNU GPL v2 +- Version Number: 1.19 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/SLASH%27EM.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-SlashEM.png) + +Super Lotsa Added Stuff Hack - Extended Magic (SLASH'EM) is a role-playing game where you control a single character. SLASH'EM is a variant of NetHack. It also has an interface and gameplay similar to Rogue, ADOM, Anghand and NetHack. You control the actions through the keyboard and view the world from an overhead perspective. + +The problem: The Amulet of Yendor has been stolen. Not only that but it appears that the Wizard of Yendor (not a nice person), who took the amulet, is hiding in the Dungeons of Doom (not a friendly place). + +Features include: + +- Offers extra features, monsters, and items +- Novel features inlude the Monk class and Sokoban levels +- The main dungeon is much larger than in NetHack + +- Website: [www.slashem.org][8] +- Developer: The Slash'EM development team +- License: MIT License, NetHack General Public License +- Version Number: 0.0.7E7F3 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/NetHack.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-NetHack.jpg) + +NetHack is a wonderfully silly, yet quite addictive Dungeons and Dragons-style adventure game. The "net" element references that its development has been coordinated through the Internet. The "hack" element refers to a genre of role-playing games known as hack and slash for their focus on combat. + +In NetHack you play the part of a fierce fighter, wizard, or any of many other classes, fighting your way down to retrieve the Amulet of Yendor (try saying THAT one backwards!) for your god. On the way, you might encounter a quantum mechanic or two, or perhaps a microscopic space fleet, or -- if you're REALLY lucky -- the Ravenous Bugblatter Beast of Traal. + +Features include: + +- 45-50 levels, most of which are randomly generated +- Variety of items: weapons, armour, scrolls, potions, rings, gems, and an assortment of tools such as keys and lamps +- Blessings and curses +- Permadeath: expired characters cannot be revived without having made backup copies of the actual save files +- Interfaces: + - Console + - Graphical, using X, Qt toolkit or GNOME libraries + +- Website: [www.nethack.org][9] +- Developer: The NetHack DevTeam +- License: NetHack General Public License +- Version Number: 3.4.3 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/AsciiSector.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-AsciiSector.png) + +Ascii Sector is a free space combat/exploration/trading game which is based on the classic computer game Wing Commander: Privateer released by Origin Systems in 1993. + +In Ascii Sector, you start with a simple spaceship and can then accept missions or trade goods to earn enough money to upgrade your ship or buy a new one. You can engage in deadly fights both in space, on the ground and on board spaceships, and using the Ascii Sector scripting language, you can create your own quests for the game or have fun with other players' quests. + +Features include: + +- Uses the ANSI character set for the graphics +- Real depth to the gameplay +- Offers a wide variety of bases, missions, commodities and ships +- Ships include: Broadsword, Centurion, Demon, Dralthi, Drayman, Galaxy, Gladius, Gothri, Kamekh, Nexus, Orion, Paradign, Stileto, Talon, Tarsus, and Ulysses +- Four quadrants: Alizarin, Crimson, Mauve, and Viridian +- Downloadable quests +- Scripting of quests +- Ascii Sector quest language, create your own stories in the Ascii Sector universe +- NPCs on planets can be attacked and robbed +- Persistent fleets that can move around, change control of systems, engage enemy fleets, head back for repairs and rebuilds +- Ships whose systems have been disabled can be boarded +- Download high quality music files + +- Website: [www.asciisector.net][10] +- Developer: Christian Knudsen +- License: Freeware +- Version Number: 0.7.1.4 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/Angband.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Angband.png) + +Angband is a free, single-player graphical dungeon exploration game that uses ASCII characters where you take the role of an adventurer, exploring a deep dungeon, fighting monsters, and acquiring the best weaponry you can, in preparation for a final battle with Morgoth, the Lord of Darkness. It has been in development since the 1990s. + +Angband is along the lines of Rogue and NetHack. It is derived from the games Moria and Umoria, which were in turn based on Rogue. It is often described as a "roguelike" game because the look and feel of the game is still quite similar to Rogue. Many of these new creatures and objects are drawn from the writings of J.R.R Tolkien, although some of the monsters come straight from classical mythology, Dungeons & Dragons, Rolemaster, or the minds of the orginal Angband coders. + +Features include: + +- 100 level dungeon +- New levels are randomly generated +- Choose to be a human, half-elf, elf, hobbit, gnome, dwarf, half-orc, half-troll, dunadan, high-elf, or kobold +- Artifacts +- Spellcasting +- Monsters +- Monster pits +- Monster nests + +- Website: [rephial.org][11] +- Developer: Angband Development Team +- License: GNU GPL v2 +- Version Number: 3.5.0 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/UnNetHack1.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-UnNetHack.png) + +UnNetHack is a fork of NetHack. NetHack was first released in 1987, and is considered by many gamers to be one of the best gaming experiences the computing world offers. + +Features include: + + +- Adds a number of enhancements to NetHack such as additional monsters, more levels, a few new objects, additional dangers, more challenging gameplay, and most importantly more entertainment than vanilla NetHack +- Tutorial to help new players get started + +- Website: [sourceforge.net/apps/trac/unnethack][12] +- Authors: Patric Mueller +- License: Nethack General Public License +- Version Number: 5.1.0 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/HydraSlayer.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-HydraSlayer.png) + +Hydra Slayer is an open source Roguelike game focused on slaying Hydras. It is inspired by Greek mythology, Dungeon Crawl, MathRL seven day roguelike, and some mathematical puzzles about brave heroes slaying many headed beasts. + +Features include: + +- Unique gameplay mechanics +- A theme which mixes Greek mythology and mathematics +- Traditional roguelike ASCII graphics, or tiles/3D display +- 5 player character races with very distinct tactics, strengths and weaknesses +- 28 enemy types: + - 10 basic types of elemental hydras (each of them has two special variations) + - 8 types of special enemies + - Harmless mushrooms for strategic advantage +- 28 types of equipment (not counting material and size/power variations) +- 15 weapon materials +- 18 types of non-equipment items +- 3 game geometries to choose +- 8 level topologies (including the Mobius strip and Klein bottle) +- 11 level generators +- 2 endings + +- Website: [www.roguetemple.com/z/hydra][13] +- Developer: Zeno Rogue +- License: GNU GPL v2 +- Version Number: 16.1 + +---------- + +![](http://www.linuxlinks.com/portal/content2/png/Brogue1.png) + +![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Brogue.png) + +Brogue is an open source Roguelike game for Mac OS X, Windows, Linux, iOS and Android. + +Brogue is a direct descendant of Rogue, a dungeon crawling video game first developed by Michael Toy and Glenn Wichman around 1980. Unlike other popular modern roguelikes, Brogue favors simplicity over complexity, while trying to ensure that the interactions between components are interesting and varied. + +The goal of the game is to travel to the 26th subterranean floor of the dungeon, retrieve the Amulet of Yendor and return with it to the surface. For the truly skillful who desire further challenge, depths below 26 contain three lumenstones each, items which confer an increased score upon victory. + +Brogue is a challenging game, but still great fun to play. Try not to be disheartened by the difficulty of the game; with some application, Brogue will become very addictive. + +Features include: + +- Favors simplicity over complexity +- User-friendly features +- Compared with Rogue, Brogue has a more sophisticated level generation +- XP and levelling system removed +- Traps, protecting items +- Additional monster types and magical items + +- Website: [sites.google.com/site/broguegame][14] +- Authors: Brian Walker +- License: GNU Affero GPL +- Version Number: 1.7.3 + +-------------------------------------------------------------------------------- + +via: http://www.linuxlinks.com/article/201412031524381/RoguelikeGames.html + +作者:Frazer Kline +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://crawl.develz.org/ +[2]:http://www.bay12games.com/dwarves/index.html +[3]:http://www.adom.de/ +[4]:http://te4.org/ +[5]:http://en.cataclysmdda.com/ +[6]:http://goblinhack.sourceforge.net/ +[7]:https://github.com/goblinhack/goblinhack +[8]:http://www.slashem.org/ +[9]:http://www.nethack.org/ +[10]:http://www.asciisector.net/ +[11]:http://rephial.org/ +[12]:http://sourceforge.net/apps/trac/unnethack/ +[13]:http://www.roguetemple.com/z/hydra/ +[14]:https://sites.google.com/site/broguegame/ \ No newline at end of file From ad454b0a5d6d1a1eba170d9ad187baa3499618f8 Mon Sep 17 00:00:00 2001 From: Vic___ Date: Thu, 4 Dec 2014 20:33:22 +0800 Subject: [PATCH 073/158] =?UTF-8?q?=E6=8A=A2=E5=9C=B0=E4=B8=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04 How To Drop Database In Oracle 11 Without Using DBCA.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md b/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md index 3420955f28..0959fec604 100644 --- a/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md +++ b/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md @@ -1,3 +1,5 @@ + Vic020 + How To Drop Database In Oracle 11 Without Using DBCA ================================================================================ In this small tutorial, I want to show you how to drop the database without using the GUI tool DBCA @@ -81,4 +83,4 @@ via: http://www.unixmen.com/drop-database-oracle-11-without-using-dcba/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[a]:http://www.unixmen.com/author/pirat9/ \ No newline at end of file +[a]:http://www.unixmen.com/author/pirat9/ From d78f21521459eb18ddd03d0be8abdea912d030b4 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Thu, 4 Dec 2014 22:18:48 +0800 Subject: [PATCH 074/158] translating --- .../20141204 How To Delete Oracle 11g Database Manually.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md b/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md index 7a6203f1d0..610529cb9c 100644 --- a/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md +++ b/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md @@ -1,3 +1,5 @@ +Translating---------geekpi + How To Delete Oracle 11g Database Manually ? ================================================================================ The following steps shows how to manually delete a database within Oracle 11g, running in an Linux environment. @@ -48,4 +50,4 @@ via: http://www.unixmen.com/manually-delete-oracle-11g-database/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[a]:http://www.unixmen.com/author/pirat9/ \ No newline at end of file +[a]:http://www.unixmen.com/author/pirat9/ From 63cb892335c04c296f0ed28237da2357122ea5a5 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Thu, 4 Dec 2014 22:31:50 +0800 Subject: [PATCH 075/158] translated --- ... To Delete Oracle 11g Database Manually.md | 53 ------------------- ... To Delete Oracle 11g Database Manually.md | 51 ++++++++++++++++++ 2 files changed, 51 insertions(+), 53 deletions(-) delete mode 100644 sources/tech/20141204 How To Delete Oracle 11g Database Manually.md create mode 100644 translated/tech/20141204 How To Delete Oracle 11g Database Manually.md diff --git a/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md b/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md deleted file mode 100644 index 610529cb9c..0000000000 --- a/sources/tech/20141204 How To Delete Oracle 11g Database Manually.md +++ /dev/null @@ -1,53 +0,0 @@ -Translating---------geekpi - -How To Delete Oracle 11g Database Manually ? -================================================================================ -The following steps shows how to manually delete a database within Oracle 11g, running in an Linux environment. - -I have Centos 6 system with Oralce 11G installed. - -Use SQL*Plus or your favorite SQL command line tool to log in to the target database; log in as **sysdba** - -Type the following commands to get the path to various files: - - select name from v$datafile; - select member from v$logfile; - select name from v$controlfile; - select name from v$tempfile; - -**Shut down the database within SQL*Plus, and then exit out of SQL*Plus** - - sqlplus " / as sysdba' - ----------- - - shutdown immediate; - quit; - -**Stop the listener service by issuing the following command in the terminal prompt:** - -From Oralce Linux account do: - - lsnrctl stop - -Recall the file paths found earlier; use them as a check list as you delete each one of those files. Reminder: did you back up your database yet? When ready, go ahead delete your data files, redo log files, control files, and temp files. - -- Go to the **$ORACLE_HOME/network/admin** directory and delete the **tnsnames.ora** and **listener.ora** files; -- Go to the **$ORACLE_HOME/dbs** directory and delete the **init[db_name].ora**, **orapw[db_name]**, and **spfile[db_name].ora** files; -- Go to the **$ORACLE_HOME/admin/[db_name]/pfile** directory and delete the **init[db_name].ora** file; -- Go to the **$ORACLE_HOME/admin/[db_name]/adump** directory and delete all files in that directory; -- Edit the file **/etc/oratab** by removing the line that starts with your database name. - -Done. - --------------------------------------------------------------------------------- - -via: http://www.unixmen.com/manually-delete-oracle-11g-database/ - -作者:[M.el Khamlichi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.unixmen.com/author/pirat9/ diff --git a/translated/tech/20141204 How To Delete Oracle 11g Database Manually.md b/translated/tech/20141204 How To Delete Oracle 11g Database Manually.md new file mode 100644 index 0000000000..dd272cdba9 --- /dev/null +++ b/translated/tech/20141204 How To Delete Oracle 11g Database Manually.md @@ -0,0 +1,51 @@ +如何手动删除Oracle 11g数?据库 +================================================================================ +下面的步骤会家你如何在Linux环境下手动删除Oracle 11g数据库。 + +我在Centos 6上安装了Oralce 11G数据库。 + +使用SQL*Plus或者其他你喜欢的命令行工具登录数据库,登录用户是**sysdba** + +输入下面的命令的到不同文件的路径: + + select name from v$datafile; + select member from v$logfile; + select name from v$controlfile; + select name from v$tempfile; + +**在SQL*Plus中关闭数据库,接着退出SQL*Plus** + + sqlplus " / as sysdba' + +---------- + + shutdown immediate; + quit; + +**在命令行中输入下面的命令停止监听服务:** + +在Oralce Linux账户中: + + lsnrctl stop + +回忆一下之前的文件路径;在删除这些文件的时候作为一个检查项。记住:你备份了数据库了么?当准备好之后,就删除你的数据文件吧,同样还有你的日志文件、控制文件和临时文件。 + +- 进入 **$ORACLE_HOME/network/admin** 目录并删除 **tnsnames.ora** 和 **listener.ora** 文件; +- 进入 **$ORACLE_HOME/dbs** 目录并删除 **init[db_name].ora**、 **orapw[db_name]**和 **spfile[db_name].ora** 文件; +- 进入 **$ORACLE_HOME/admin/[db_name]/pfile** 目录并删除 **init[db_name].ora** 文件; +- 进入 **$ORACLE_HOME/admin/[db_name]/adump** 目录并删除所有文件; +- 编辑**/etc/oratab** 并移除以你数据库名字开头的行. + +这样就好了。 + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/manually-delete-oracle-11g-database/ + +作者:[M.el Khamlichi][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/pirat9/ From 38909dfa5db9c08e5d272677bf62ee42e94b80d1 Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 4 Dec 2014 23:30:09 +0800 Subject: [PATCH 076/158] PUB:20141021 How to create and use Python CGI scripts @su-kaiyao --- .../20141021 How to create and use Python CGI scripts.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename {translated/tech => published}/20141021 How to create and use Python CGI scripts.md (92%) diff --git a/translated/tech/20141021 How to create and use Python CGI scripts.md b/published/20141021 How to create and use Python CGI scripts.md similarity index 92% rename from translated/tech/20141021 How to create and use Python CGI scripts.md rename to published/20141021 How to create and use Python CGI scripts.md index 1604366d16..e3d36ea9c4 100644 --- a/translated/tech/20141021 How to create and use Python CGI scripts.md +++ b/published/20141021 How to create and use Python CGI scripts.md @@ -46,7 +46,7 @@ $ python -V $ python --version -如果你的Python CGI脚本要用来处理用户输入的数据(从一个web输入表单),然后你将需要导入Python cgi模块。这个模块可以处理用户通过web输入表单输入的数据。你可以在你的脚本中通过下面的语句导入该脚本: +如果你的Python CGI脚本要用来处理用户输入的数据(从一个web输入表单),那么你将需要导入Python cgi模块。这个模块可以处理用户通过web输入表单输入的数据。你可以在你的脚本中通过下面的语句导入该脚本: import cgi @@ -110,7 +110,7 @@ -当"Submit"按钮点击,/var/www/cgi-bin/myscript-2.py脚本将被执行(通过action参数指定)。/var/www//html/page2.html显示在web浏览器中的图片如下所示(注意,三个输入域已经被填写了): +当"Submit"按钮点击,/var/www/cgi-bin/myscript-2.py脚本将被执行(通过action参数指定)。/var/www//html/page2.html显示在web浏览器中的图片如下所示(注意,三个输入域已经被填写好了): ![](https://farm4.staticflickr.com/3935/14932853603_ffc3bd330e_z.jpg) @@ -131,7 +131,7 @@ print "

" print "" -正如前面提到,import cgi语句需要用来确保能够处理用户通过web输入表单输入的数据。web输入表单被封装在一个表单对象中,叫做cgi.FieldStorage对象。一旦开始,"Content-Type: text/html"是必需的,因为web服务器需要知道接受自CGI脚本的输出格式。用户输入的数据在包含form["firstName"].value,form["lastName"].value, and form["position"].value的语句中被接受。那些中括号中的名称和**/var/www/html/page2.html**文本输入域中定义的名称参数一致。 +正如前面提到,import cgi语句用来确保能够处理用户通过web输入表单输入的数据。web输入表单被封装在一个表单对象中,叫做cgi.FieldStorage对象。一旦开始输出,"Content-Type: text/html"是必需的,因为web服务器需要知道接受自CGI脚本的输出格式。用户输入的数据在包含form["firstName"].value,form["lastName"].value,和 form["position"].value的语句中可以得到。那些中括号中的名称和**/var/www/html/page2.html**文本输入域中定义的名称参数一致。 当网页上的"Submit"按钮被点击,下面的网页将被返回。 @@ -149,7 +149,7 @@ via: http://xmodulo.com/create-use-python-cgi-scripts.html 作者:[Joshua Reed][a] 译者:[su-kaiyao](https://github.com/su-kaiyao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 3f9ed17fd20d5761d5b8af0be4289df99454ae1b Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 4 Dec 2014 23:52:45 +0800 Subject: [PATCH 077/158] PUB:20141017 How to verify the authenticity and integrity of a downloaded file on Linux @geekpi --- ...integrity of a downloaded file on Linux.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) rename {translated/tech => published}/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md (82%) diff --git a/translated/tech/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md b/published/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md similarity index 82% rename from translated/tech/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md rename to published/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md index 5f228dbbef..4fa81ee1ad 100644 --- a/translated/tech/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md +++ b/published/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md @@ -1,19 +1,19 @@ -如何在Linux上验证下载文件的可靠性和完整性 +使用 GnuPG 加密签名来验证下载文件的可靠性和完整性 ================================================================================ 当你从网上下载一个文件后(比如:安装程序、ISO镜像或者一个压缩包),文件可能在不同的情况下发生了损坏,比如:由于线路传输错误、中断的下载、存储硬件错误、文件系统错误等等。除了这些错误,文件还可能在下载前或者下载中的攻击而被有意地篡改了。比如,一个攻破证书颁发机构的攻击者可以实施一个MITM攻击(中间人攻击),欺骗你从HTTPS网站上下载隐藏恶意软件的文件。 -要保护你自己免受这些问题的困扰,建议你验证你从网上下载的文件的可靠性和完整性。特别是你下载了一个非常敏感的文件的时候)(比如:操作系统镜像、二进制应用程序、可执行安装包等等),盲目地相信下载的文件不是一个好习惯。 +要保护你自己免受这些问题的困扰,建议你去验证从网上下载的文件的可靠性和完整性。特别是你下载了一个非常敏感的文件的时候)(比如:操作系统镜像、二进制应用程序、可执行安装包等等),盲目地相信下载的文件不是一个好习惯。 一个快速和简单地验证下载文件的完整性的方法是使用不同的校验工具(比如:md5sum、sha356sum、cksum)来计算和比较校验码(比如:MD5、SHA、CRC)。然而,然而校验容易受到[碰撞攻击][1],而且同样不能用于验证文件的可靠性(比如:拥有者)。 -integrity by using GnuPG (GNU Privacy Guard). + 如果你想要同时验证下载文件的可靠性(拥有者)和完整性(内容),你需要依赖于加密签名。本教程中,我会描述如何使用GnuPG(GNU Privacy Guard)来检查文件的可靠性和完整性。 -本例中我会验证一个从https://onionshare.org上下载的磁盘镜像。这个网站中,发行商会提供他们的公钥,还有它用于密钥验证的指纹。 +本例中我会验证一个从 https://onionshare.org 上下载的磁盘镜像。这个网站中,发行商会提供他们的公钥,还有它用于密钥验证的指纹。 ![](https://farm4.staticflickr.com/3933/15360287249_1bc4380a67_z.jpg) -至于下载的文件,发行上也会提供它相关的PGP签名。 +至于下载的文件,发行商也会提供它相关的PGP签名。 ![](https://farm6.staticflickr.com/5597/15360894527_e12bedce63_z.jpg) @@ -35,7 +35,7 @@ integrity by using GnuPG (GNU Privacy Guard). ![](https://farm6.staticflickr.com/5612/15360848908_ae171c485e_z.jpg) -在生成中间,你会被要求提供你的姓名和email,还有保护你私钥的密码。你同样也可以在键对要过期的时候选择(默认不会过期)。依赖于你选择的key的大小(在1024和4096位之间),key生成会花上几分钟或者更多,这由于它要求收集来自你桌面活动的大量的随机数据。(比如键盘输入、鼠标移动、磁盘访问等等)。 +在生成键对期间,你会被要求提供你的姓名和email,还有保护你私钥的密码。你同样也可以选择键对何时过期(默认不会过期)。依赖于你选择的key的大小(在1024和4096位之间),key生成会花上几分钟或者更多,同时它要求收集来自你桌面活动的大量的随机数据。(比如键盘输入、鼠标移动、磁盘访问等等,所以这个时候随便动动鼠标键盘什么的)。 一旦key生成完毕后,公钥和私钥会存储在~/.gnupg目录。 @@ -45,7 +45,7 @@ integrity by using GnuPG (GNU Privacy Guard). 验证下载文件的第一步是与任何提供文件下载的人建立信任。出于此,我们下载了这个文件的公钥,并且验证公钥的拥有者是否是他或者她自称的。 -在下载玩文件拥有者的公钥后: +在下载完文件拥有者的公钥后: $ wget https://onionshare.org/signing-key.asc @@ -55,7 +55,7 @@ integrity by using GnuPG (GNU Privacy Guard). ![](https://farm6.staticflickr.com/5613/15360894397_48fec1ef05_z.jpg) -一旦拥有者的共要导入后,他会像下面那样打印出一个key ID(比如:"EBA34B1C")。记住这个key ID。 +一旦拥有者的公钥导入后,他会像下面那样打印出一个key ID(比如:"EBA34B1C")。记住这个key ID。 现在,运行下面的命令检查导入的公钥的指纹: @@ -65,7 +65,7 @@ integrity by using GnuPG (GNU Privacy Guard). 你会看到key的指纹字符串。把这个和网站上显示的指纹做对比。如果匹配,你可以选择信任这个文件拥有者的公钥。 -一旦你决定相信这个公钥,你可以通过编辑key来标记它: +一旦你决定相信这个公钥,你可以通过编辑key来设置信任级别: $ gpg --edit-key EBA34B1C @@ -83,7 +83,7 @@ integrity by using GnuPG (GNU Privacy Guard). 要注意的是不需要这样明确地给一个公钥指派信任,通过key的导入隐式地信任往往就够了。 -给一个key隐式地分配给“完全”的信任就是任何其他由这个完全信任签名的key X都会被认为是对你有效的。通常上,key验证依赖于一个复杂的机制称之为“[信任网][2]” +给一个key隐式地分配给“完全”的信任就是任何其他由这个完全信任签名的key X都会被认为是对你有效的。通常上,key验证依赖于一个称之为“[信任网][2]”的复杂机制。 回到教程,现在让我们检查导入的key列表。 @@ -97,7 +97,7 @@ integrity by using GnuPG (GNU Privacy Guard). 一旦你建立了与文件拥有者和他的/她的公钥之间的信任关系,我们需要验证你从拥有者那边下载的文件的可靠性和完整性了。 -本例中,文件拥有者分别公布了一个文件和它相关的PGP签名(.asc)。签名的角色就是认证并且在文件中加入一个时间戳 +本例中,文件拥有者分别公布了一个文件和它相关的PGP签名(.asc)。签名所起的作用就是认证(文件)并且在其中加入一个时间戳。 一个典型的签名(*.asc)看上去像这样。 @@ -139,7 +139,7 @@ via: http://xmodulo.com/verify-authenticity-integrity-downloaded-file.html 作者:[Dan Nanni][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 6d6730077c769d13c2cb6e02bb8355ac93500e75 Mon Sep 17 00:00:00 2001 From: bazz2 Date: Fri, 5 Dec 2014 08:06:33 +0800 Subject: [PATCH 078/158] [translating]Linux Namespaces --- sources/tech/20141204 Linux Namespaces.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141204 Linux Namespaces.md b/sources/tech/20141204 Linux Namespaces.md index 9bc489b8cb..6424d8f6a4 100644 --- a/sources/tech/20141204 Linux Namespaces.md +++ b/sources/tech/20141204 Linux Namespaces.md @@ -1,3 +1,4 @@ +[bazz2222222222] Linux Namespaces ================================================================================ ### Background ### @@ -234,4 +235,4 @@ via: http://www.howtoforge.com/linux-namespaces 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.howtoforge.com/forums/private.php?do=newpm&u=138952 -[1]:http://en.wikipedia.org/wiki/LXC \ No newline at end of file +[1]:http://en.wikipedia.org/wiki/LXC From a5ca2419279dfad8e36fc29bae5c41b9f415e241 Mon Sep 17 00:00:00 2001 From: joeren Date: Fri, 5 Dec 2014 09:02:52 +0800 Subject: [PATCH 079/158] Update 20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md --- ... Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md b/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md index 575332ad50..dd1f7b2991 100644 --- a/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md +++ b/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md @@ -1,3 +1,4 @@ +Translating by GOLinux! The Easy Way to Keep Track of Multiple Time Zones in Ubuntu ================================================================================ ![date-time](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/date-time.jpg) @@ -60,4 +61,4 @@ via: http://www.omgubuntu.co.uk/2014/12/add-time-zones-world-clock-ubuntu [a]:https://plus.google.com/117485690627814051450/?rel=author [1]:https://extensions.gnome.org/extension/605/multiclock/ -[2]:http://www.omgchrome.com/calendar-clock-chrome-app/ \ No newline at end of file +[2]:http://www.omgchrome.com/calendar-clock-chrome-app/ From 6e5d25a194f525ef306cf6edf4bb1f9128249b4b Mon Sep 17 00:00:00 2001 From: GOLinux Date: Fri, 5 Dec 2014 10:47:29 +0800 Subject: [PATCH 080/158] [Translated] 20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md --- ... Track of Multiple Time Zones in Ubuntu.md | 64 ------------------- ... Track of Multiple Time Zones in Ubuntu.md | 63 ++++++++++++++++++ 2 files changed, 63 insertions(+), 64 deletions(-) delete mode 100644 sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md create mode 100644 translated/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md diff --git a/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md b/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md deleted file mode 100644 index dd1f7b2991..0000000000 --- a/sources/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md +++ /dev/null @@ -1,64 +0,0 @@ -Translating by GOLinux! -The Easy Way to Keep Track of Multiple Time Zones in Ubuntu -================================================================================ -![date-time](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/date-time.jpg) - -**Whether I’m making sure that a tweet about a Chromebook sale in Australia hits those down under when awake or scheduling a Skype call with *Sam Tran*, the ‘developer’ half of Ohso, I work with multiple time zones in mind.** - -And therein lies a problem. If you know me you’ll know that I have the memory capacity of a goldfish running Windows Vista (i.e., not very good). I can barely recall what I got up to yesterday, much less remember the time differential between my door and the foot of Golden Gate bridge! - -To help, I use widgets and menu items to keep me in sync. I move across multiple operating systems in the space of a regular working day, mobile and desktop, but only one lets me set up ‘world clocks’ the quickest and easiest. - -**And it happens to be the one whose name is above the door.** - -![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/timezones-300x180.jpg) - -### Add World Clocks to Ubuntu Date/Time Applet ### - -The default date-time indicator in Unity comes with supports for adding and viewing multiple time zones. No add-ons, no extra packages required. - -1. Click on the clock applet and select the ‘**Time & Date Settings**’ entry -1. In the ‘**Clock**’ tab, check the box next to ‘**Time in Other Locations**’ -1. Click the ‘**Choose Locations**‘ button -1. Tap ‘**+**’ and enter the name of the location - -#### Other Desktop Environments #### - -The default clock applet in **KDE Plasma** has a similar feature and flow: - -1. Right-click on the digital clock widget and select ‘**Digital Clock Settings**’ -1. Click the ‘**Time Zones**’ section -1. Enter the name of a city in the search field -1. Click ‘**Ok**’ - -The extensible nature of **GNOME Shell** sees a slew of World Clock options available to fill the gap left by its default time ticker, with ‘[multi clock][1]’ being my personal favourite. The same goes again for **Cinnamon**, whose ‘panel applet’ repository has ample choices, like the super slick “**World Clock Calendar**” . - -![World Clock Calendar in Cinnamon 2.4](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/cinnamon-applet.jpg) - -World Clock Calendar in Cinnamon 2.4 - -**XFCE** and **LXDE** aren’t quite as generous, with the only out-of-the-box “workarounds” being **multiple clocks** added to the panel, each manually configured to a given locale. Both do support ‘indicator applets’, so if you’re not dependent on Unity you can install/add the standalone date/time indicator. - -**Budgie** is a little too young to make corner case demands of, while Pantheon I haven’t tried — I’ll let you fill me in on that score in the comments. - -#### Desktop Apps, Widgets & Conky Themes #### - -Of course, panel applets are just one way to keep tabs of the time in other countries’ multiple time zones. If you’re not fussed about panel access there are various **desktop apps** available, many of which work cross-distro and/or cross-platform. - -**GNOME Clocks** is one such app and is available to install straight from the Ubuntu Software Center in 14.04 LTS+. **Conky** is a potential alternative (though I haven’t yet found a pre-made theme designed for the purpose) and lightweight Chrome Apps like [Calendar Clock][2] will work anywhere Chrome does, free of the browser. - -**Do you keep tabs on time zones? If so, what app, method or widget do you use to stay on top? ** - --------------------------------------------------------------------------------- - -via: http://www.omgubuntu.co.uk/2014/12/add-time-zones-world-clock-ubuntu - -作者:[Joey-Elijah Sneddon][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:https://plus.google.com/117485690627814051450/?rel=author -[1]:https://extensions.gnome.org/extension/605/multiclock/ -[2]:http://www.omgchrome.com/calendar-clock-chrome-app/ diff --git a/translated/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md b/translated/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md new file mode 100644 index 0000000000..273d949490 --- /dev/null +++ b/translated/tech/20141204 The Easy Way to Keep Track of Multiple Time Zones in Ubuntu.md @@ -0,0 +1,63 @@ +Ubuntu中跟踪多个时区的简捷方法 +================================================================================ +![date-time](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/date-time.jpg) + +**我是否要确保在我醒来时或者安排与*山姆陈*,Ohso的半个开发商,进行Skype通话时,澳大利亚一个关于Chromebook销售的推特已经售罄,我大脑同时在多个时区下工作。** + +那里头有个问题,如果你认识我,你会知道我的脑容量也就那么丁点,跟金鱼差不多,里头却塞着像Windows Vista这样一个臃肿货(也就是,不是很好)。我几乎记不得昨天之前的事情,更记不得我的门和金门大桥脚之间的时间差! + +作为臂助,我使用一些小部件和菜单项来让我保持同步。在我常规工作日的空间里,我在多个操作系统间游弋,涵盖移动系统和桌面系统,但只有一个让我最快速便捷地设置“世界时钟”。 + +**而它刚好是那个名字放在门上方的东西。** + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/timezones-300x180.jpg) + +### 添加世界时钟到Ubuntu日期/时间小应用 ### + +Unity中默认的日期-时间指示器提供了添加并查看多个时区的支持,不需要附加组件,不需要额外的包。 + +1. 点击时钟小应用,然后uxuanze‘**时间和日期设置**’条目 +1. 在‘**时钟**’标签中,选中‘**其它位置的时间**’选框 +1. 点击‘**选择位置**’按钮 +1. 点击‘**+**’,然后输入位置名称那个 + +#### 其它桌面环境 #### + +**KDE Plasma**中默认的时钟小应用有类似的功能,其它功能如下: + +1. 在数字时钟小部件上右击,然后选择‘**数字时钟设置**’ +1. 点击‘**时区**’项 +1. 在搜索区输入城市名 +1. 点击‘**确定**’ + +**GNOME Shell**的可扩展特性可以看到有许多世界时钟选项可用,可以用它的默认时间表填补左边的空白,我个人喜欢‘[多个时钟][1]’。对于**Cinnamon**桌面而言也是一样的,它的‘面板小部件’仓库有丰富的可选部件,如超级顺滑的“**世界时钟日历**”。 + +![World Clock Calendar in Cinnamon 2.4](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/cinnamon-applet.jpg) + +Cinnamon 2.4中的世界时钟日历 + +**XFCE**和**LXDE**就不那么慷慨了,除了自带的“工作区”作为**多个时钟**添加到面板外,每个都需要手动配置以指定位置。两个都支持‘指示器小部件’,所以,如果你没有依赖于Unity,你可以安装/添加单独的日期/时间指示器。 + +**Budgie**还刚初出茅庐,不足以胜任角落里的需求,因为Pantheon我还没试过——希望你们通过评论来让我知道得更多。 + +#### Desktop Apps, Widgets & Conky Themes桌面应用、不见和Conky主题 #### + +当然,面板小部件只是收纳其它国家多个时区的一种方式。如果你不满意通过面板去访问,那里还有各种各样的**桌面应用**可供使用,其中许多都可以跨版本,甚至跨平台使用。 + +**GNOME时钟**就是这样一个应用,在Ubuntu 14.04 LTS及其后续版本中,你可以通过Ubuntu软件中心直接安装。**Conky**是一个很有潜力的备选(尽管我还没发现有哪个预制主题为此目的设计),而其它像[日历时钟][2]这样轻量级的Chrome应用可以在任何安装有Chrome这个免费浏览器的地方工作。 + +**你也关注时区吗?如果是,你使用什么应用、采用什么方法或者小部件让它显示在顶层呢?** + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/add-time-zones-world-clock-ubuntu + +作者:[Joey-Elijah Sneddon][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:https://extensions.gnome.org/extension/605/multiclock/ +[2]:http://www.omgchrome.com/calendar-clock-chrome-app/ From 5f026b35fd9dd9562339d08d70c02caddfe86f9a Mon Sep 17 00:00:00 2001 From: DeadFire Date: Fri, 5 Dec 2014 19:12:16 +0800 Subject: [PATCH 081/158] =?UTF-8?q?20141205-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eam Develops Rocket, Breaks with Docker.md | 49 +++++++ ...ion Elevates Drill to Top-Level Project.md | 57 ++++++++ ...Commands to Check Memory Usage in Linux.md | 129 ++++++++++++++++++ 3 files changed, 235 insertions(+) create mode 100644 sources/talk/20141205 CoreOS Team Develops Rocket, Breaks with Docker.md create mode 100644 sources/talk/20141205 Interview--Apache Software Foundation Elevates Drill to Top-Level Project.md create mode 100644 sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md diff --git a/sources/talk/20141205 CoreOS Team Develops Rocket, Breaks with Docker.md b/sources/talk/20141205 CoreOS Team Develops Rocket, Breaks with Docker.md new file mode 100644 index 0000000000..ebb7d1133f --- /dev/null +++ b/sources/talk/20141205 CoreOS Team Develops Rocket, Breaks with Docker.md @@ -0,0 +1,49 @@ +CoreOS Team Develops Rocket, Breaks with Docker +================================================================================ +![](https://farm8.staticflickr.com/7297/12199695124_53d5323167_t.jpg) + +[Docker][1] has easily emerged as one of the top open source stories of the year, and has helped many organizations [benefit from container technology][2]. As we’ve reported, even Google is [working closely][3] with it, and Microsoft is as well. + +However, the folks behind CoreOS, a very popular Linux flavor for use in cloud deployments, are developing their own container technology, [dubbed Rocket][4], which will actually compete with Docker. Here are the details. + +Rocket is a new container runtime, designed for composability, security, and speed, according to the CoreOS team. The group has released a [prototype version on GitHub][5] to begin getting community feedback. + +“When Docker was first introduced to us in early 2013, the idea of a “standard container” was striking and immediately attractive: a simple component, a composable unit, that could be used in a variety of systems. The Docker repository [included a manifesto][6] of what a standard container should be. This was a rally cry to the industry, and we quickly followed. We thought Docker would become a simple unit that we can all agree on.” + +“Unfortunately, a simple re-usable component is not how things are playing out. Docker now is building tools for launching cloud servers, systems for clustering, and a wide range of functions: building images, running images, uploading, downloading, and eventually even overlay networking, all compiled into one monolithic binary running primarily as root on your server. The standard container manifesto [was removed][7]. We should stop talking about Docker containers, and start talking about the Docker Platform.” + +“We still believe in the original premise of containers that Docker introduced, so we are doing something about it. Rocket is a command line tool, rkt, for running App Containers. An ‘App Container’ is the specification of an image format, container runtime, and a discovery mechanism.” + +There is a specification coming for App Container Images (ACI). Anyone can [Read about and contribute to the ACI draft][8]. + +The Register also [notes this interesting aspect][9] of Rocket: + +“Significantly, all of CoreOS's tools for working with App Container will be integrated, yet independent from one another. Rocket can run as a standalone tool on any flavor of Linux, not just CoreOS.” + +In a [blog post][10], Docker CEO Ben Golub voiced disagreement with CoreOS's move, and he writes: + +“There are technical or philosophical differences, which appears to be the case with the recent announcement regarding Rocket. We hope to address some of the technical arguments posed by the Rocket project in a subsequent post.” + +It sounds like a standards skirmish is going to come of all this, but, as is often the case with standards confrontations, users may benefit from the competition. + +-------------------------------------------------------------------------------- + +via: http://ostatic.com/blog/coreos-team-develops-rocket-breaks-with-docker + +作者:[Sam Dean][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://ostatic.com/member/samdean +[1]:https://www.docker.com/ +[2]:http://ostatic.com/blog/linux-containers-with-docker +[3]:http://ostatic.com/blog/google-sets-sights-squarely-on-docker-with-new-container-engine +[4]:https://coreos.com/blog/rocket/ +[5]:https://github.com/coreos/rocket +[6]:https://github.com/docker/docker/commit/0db56e6c519b19ec16c6fbd12e3cee7dfa6018c5 +[7]:https://github.com/docker/docker/commit/eed00a4afd1e8e8e35f8ca640c94d9c9e9babaf7 +[8]:https://github.com/coreos/rocket/blob/master/app-container/SPEC.md#app-container-image +[9]:http://www.theregister.co.uk/2014/12/01/coreos_rocket_announcement/ +[10]:http://blog.docker.com/2014/12/initial-thoughts-on-the-rocket-announcement/ \ No newline at end of file diff --git a/sources/talk/20141205 Interview--Apache Software Foundation Elevates Drill to Top-Level Project.md b/sources/talk/20141205 Interview--Apache Software Foundation Elevates Drill to Top-Level Project.md new file mode 100644 index 0000000000..de8351b070 --- /dev/null +++ b/sources/talk/20141205 Interview--Apache Software Foundation Elevates Drill to Top-Level Project.md @@ -0,0 +1,57 @@ +Interview: Apache Software Foundation Elevates Drill to Top-Level Project +================================================================================ +![](http://i1311.photobucket.com/albums/s669/webworkerdaily/tomer_zps5e1225aa.png) + +The Apache Software Foundation (ASF) has [announced][1] that [Apache Drill][2] has graduated from the Apache Incubator to become a Top-Level Project (TLP). + +Apache Drill is billed as the world's first schema-free SQL query engine that delivers real-time insights by removing the constraint of building and maintaining schemas before data can be analyzed. + +Drill enables rapid application development on Apache Hadoop and also allows enterprise BI analysts to access Hadoop in a self-service fashion. OStatic caught up with Tomer Shiran (shown here), a member of the Drill Project Management Committee, to get his thoughts. Here they are in an interview. + +**Can you provide a brief overview of what Drill is and what kinds of users it can make a difference for?** + +Drill is the world's first distributed, schema-free SQL engine. Analysts and developers can use Drill to interactively explore data in Hadoop and other NoSQL databases, such as HBase and MongoDB. There's no need to explicitly define and maintain schemas, as Drill can automatically leverage the structure that's embedded in the data. + +This enables self-service data exploration, which is not possible with traditional data warehouses or SQL-on-Hadoop solutions like Hive and Impala, in which DBAs must manage schemas and transform the data before it can be analyzed. + +**What level of community involvement with Drill already exists?** + +Drill is an Apache project, so it's not owned by any vendor. Developers in the community can contribute to Drill. MapR currently employs the largest number of contributors, but we're seeing an increasing number of contributions from other companies, and that trend has been accelerating in recent months. + +For example, the MongoDB storage plugin (enabling queries on MongoDB) was contributed by developers at Intuit. + +**Hadoop has a lot of momentum on the Big Data front. How can Drill help organizations leveraging Hadoop?** + +Drill is the ideal interactive SQL engine for Hadoop. One of the main reasons organizations choose Hadoop is due to its flexibility and agility. Unlike traditional databases, getting data into Hadoop is easy, and users can load data in any shape or size on their own. Early attempts at SQL on Hadoop (eg, Hive, Impala) force schemas to be created and maintained even for self-describing data like JSON, Parquet and HBase tables. + +These systems also require data to be transformed before it can be queried. Drill is the only SQL engine for Hadoop that doesn't force schemas to be defined before data can be queried, and doesn't require any data transformations. In other words, Drill maintains the flexibility and agility paradigms that made Hadoop popular, thus making it the natural technology for data exploration and BI on Hadoop. + +**What does Drill's status as a top-level project at Apache mean for its development and future?** + +Drill's graduation to a top-level project is an indication that Drill has established a strong community of users and developers. Graduation is a decision made by the Apache Software Foundation (ASF) board, and it provides confidence to Drill's potential users and contributors that the project has a strong foundation. From a governance standpoint, a top-level project has its own board (also known as PMC). The PMC Chair (Jacques Nadeau) is a VP at Apache. + +**How do you think Drill will evolve over the next several years?** + +Drill has a large and growing community of contributors. Drill 1.0 will be out in Q1'15. We'll see many new features over the next several years. Here are a just a few examples of initiatives that are currently under way: + +Drill currently supports HDFS, HBase and MongoDB. Additional data sources are being added, including Cassandra and RDBMS (all JDBC-enabled databases, including Oracle and MySQL). A single query can incorporate/join data from different sources. In the next year, Drill will become the standard SQL engine for modern datastores (which are all schema-free in nature): Hadoop, NoSQL databases - HBase/MongoDB/Cassandra, and search - Elasticsearch/Solr. + +A single enterprise or cloud provider will be able to serve multiple groups/departments/organizations, each having its own workloads and SLA requirements. For example, in Drill 1.0 will support user impersonation, meaning that a query can only access the data that the user is authorized to access, and this will work with all supported data sources (Hadoop, HBase, MongoDB, etc.) + +Drill will support not only SELECT and CREATE TABLE ... AS SELECT (CTAS) queries, but also INSERT/UPDATE/DELETE, enabling Drill to be used for operational applications (in addition to data exploration and analytics). Drill will also support the ultra-low latency and high concurrency required for such use cases. + +Full TPC-DS support. Unlike other SQL-on-Hadoop technologies, Drill is designed to support the ANSI SQL standard as opposed to a SQL-like language. This provides better support for BI and other tools. Drill will be able to run TPC-DS, unmodified, in 2015. + +-------------------------------------------------------------------------------- + +via: http://ostatic.com/blog/interview-apache-software-foundation-elevates-drill-to-top-level-project + +作者:[Sam Dean][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://ostatic.com/member/samdean +[1]:https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces66 +[2]:http://drill.apache.org/ \ No newline at end of file diff --git a/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md b/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md new file mode 100644 index 0000000000..a5be8bac2c --- /dev/null +++ b/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md @@ -0,0 +1,129 @@ +10 ‘free’ Commands to Check Memory Usage in Linux +================================================================================ +**Linux** is one of the most popular open source operating system and comes with huge set of commands. The most important and single way of determining the total available space of the **physical memory** and **swap memory** is by using “**free**” command. + +The Linux “**free**” command gives information about total used and available space of **physical memory** and **swap memory** with **buffers** used by kernel in **Linux/Unix** like operating systems. + +![10 Linux Free Command Examples](http://www.tecmint.com/wp-content/uploads/2012/09/Linux-Free-commands.png) + +This article provides some useful examples of “**free**” commands with options, that might be useful for you to better utilize memory that you have. + +### 1. Display System Memory ### + +Free command used to check the used and available space of **physical memory** and **swap memory** in **KB**. See the command in action below. + + # free + + total used free shared buffers cached + Mem: 1021628 912548 109080 0 120368 655548 + -/+ buffers/cache: 136632 884996 + Swap: 4194296 0 4194296 + +### 2. Display Memory in Bytes ### + +Free command with option **-b**, display the size of memory in **Bytes**. + + # free -b + + total used free shared buffers cached + Mem: 1046147072 934420480 111726592 0 123256832 671281152 + -/+ buffers/cache: 139882496 906264576 + Swap: 4294959104 0 4294959104 + +### 3. Display Memory in Kilo Bytes ### + +Free command with option **-k**, display the size of memory in (KB) **Kilobytes**. + + # free -k + + total used free shared buffers cached + Mem: 1021628 912520 109108 0 120368 655548 + -/+ buffers/cache: 136604 885024 + Swap: 4194296 0 4194296 + +### 4. Display Memory in Megabytes ### + +To see the size of the memory in **(MB) Megabytes** use option as **-m**. + + # free -m + + total used free shared buffers cached + Mem: 997 891 106 0 117 640 + -/+ buffers/cache: 133 864 + Swap: 4095 0 4095 + +### 5. Display Memory in Gigabytes ### + +Using **-g** option with free command, would display the size of the memory in **GB(Gigabytes)**. + + # free -g + total used free shared buffers cached + Mem: 0 0 0 0 0 0 + -/+ buffers/cache: 0 0 + Swap: 3 0 3 + +### 6. Display Total Line ### + +Free command with -t option, will list the total line at the end. + + # free -t + + total used free shared buffers cached + Mem: 1021628 912520 109108 0 120368 655548 + -/+ buffers/cache: 136604 885024 + Swap: 4194296 0 4194296 + Total: 5215924 912520 4303404 + +### 7. Disable Display of Buffer Adjusted Line ### + +By default the free command display “**buffer adjusted**” line, to disable this line use option as -o. + + # free -o + + total used free shared buffers cached + Mem: 1021628 912520 109108 0 120368 655548 + Swap: 4194296 0 4194296 + +### 8. Dispaly Memory Status for Regular Intervals ### + +The -s option with number, used to update free command at regular intervals. For example, the below command will update free command every 5 seconds. + + # free -s 5 + + total used free shared buffers cached + Mem: 1021628 912368 109260 0 120368 655548 + -/+ buffers/cache: 136452 885176 + Swap: 4194296 0 4194296 + +### 9. Show Low and High Memory Statistics ### + +The -l switch displays detailed high and low memory size statistics. + + # free -l + + total used free shared buffers cached + Mem: 1021628 912368 109260 0 120368 655548 + Low: 890036 789064 100972 + High: 131592 123304 8288 + -/+ buffers/cache: 136452 885176 + Swap: 4194296 0 4194296 + +### 10. Check Free Version ### + +The -V option, display free command version information. + + # free -V + + procps version 3.2.8 + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/check-memory-usage-in-linux/ + +作者:[Ravi Saive][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.tecmint.com/author/admin/ \ No newline at end of file From e4f3b848e87ff381bd4f4721fd240a6ca3836aa2 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Fri, 5 Dec 2014 19:40:19 +0800 Subject: [PATCH 082/158] =?UTF-8?q?20141205-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t for a Great Black Friday Monitor Deal.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/news/20141205 Linus Torvalds Thanks Microsoft for a Great Black Friday Monitor Deal.md diff --git a/sources/news/20141205 Linus Torvalds Thanks Microsoft for a Great Black Friday Monitor Deal.md b/sources/news/20141205 Linus Torvalds Thanks Microsoft for a Great Black Friday Monitor Deal.md new file mode 100644 index 0000000000..82875e8ea2 --- /dev/null +++ b/sources/news/20141205 Linus Torvalds Thanks Microsoft for a Great Black Friday Monitor Deal.md @@ -0,0 +1,38 @@ +Linus Torvalds Thanks Microsoft for a Great Black Friday Monitor Deal +================================================================================ +![Linus Torvalds](http://i1-news.softpedia-static.com/images/news2/Linus-Torvalds-Thanks-Microsoft-for-a-Great-Black-Friday-Monitor-Deal-466599-2.jpg) + +> The creator of the Linux kernel now has a UHD display + +**Linus Torvalds is the creator of the Linux Kernel, he advocated for years against Microsoft's practices and he often talked about Windows. These are just some of the reasons why it's funny to see him thank Microsoft, even if it's probably done sarcastically.** + +The rhetoric regarding the Linux vs. Windows subject has subsided a great deal in the last few years. There have been some issues with UEFI and other similar problems, but for the most part things have quieted down. + +There is no one left at the Redmond campus to call Linux a cancer and no one is making fun of Windows for crashing all the time. In fact, there has been some sort of reconciliation between the two sides, which seems to benefit everyone. + +It's not like Microsoft is ready to adopt the Linux kernel for their operating system, but the new management of the company talks about Linux as a friend, especially in the cloud. + +They can no longer ignore it, even if they want to. The same happened with Linus Torvalds who hasn't said anything bad about Microsoft and Windows for a long time, and that is a good thing. + +### Linus Torvalds saying "thanks" to Microsoft is not something you see every day ### + +The creator of the Linux kernel talked about a great Black Friday deal he got from the Microsoft store, for a UHD monitor. He shared this piece of info on Google+ and some of the users also found it amusing to read that he's giving sincere thanks to Microsoft for their great deal. + +"Whee. Just installed a new monitor. 3840x2160 resolution - it's the Dell 28" UHD panel - for $299 (€241) thanks to Microsoft's black Friday deal. Thanks MS! Ok, I have to admit that it's not actually a great panel: very clear color shifts off-center, 30Hz refresh etc. But still - I'm a nut for resolution, and at $299 (€241) I decided that this will carry me over until better panels start showing up at good prices," wrote Linus on [Google+][1]. + +In the meantime, he is also working on the latest kernel branch, 3.18, which will probably be released sometime at the end of this week. It's not clear how things will evolve after that, especially given the fact that the holidays are approaching fast, and devs might be a little sluggish when it comes to pushing patches and new features for the next 3.19 branch. + + + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/Linus-Torvalds-Thanks-Microsoft-for-a-Great-Black-Friday-Monitor-Deal-466599.shtml + +作者:[Silviu Stahie][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/silviu-stahie +[1]:https://plus.google.com/+LinusTorvalds/posts/4MwQKZhGkEr \ No newline at end of file From 65df647065b6983726e953f19d7b44add841d734 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Fri, 5 Dec 2014 19:54:15 +0800 Subject: [PATCH 083/158] =?UTF-8?q?20141205-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...work Adapters Available In Ubuntu Linux.md | 100 ++++++++++++ ...otable Ubuntu USB Drive For Mac In OS X.md | 145 ++++++++++++++++++ 2 files changed, 245 insertions(+) create mode 100644 sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md create mode 100644 sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md diff --git a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md b/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md new file mode 100644 index 0000000000..c34e74fc02 --- /dev/null +++ b/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md @@ -0,0 +1,100 @@ +Find Out Network Adapters Available In Ubuntu Linux +================================================================================ +Wondering **which network adapters you are using in Ubuntu or any other Linux OS**? It is very easy to to find out the manufacturer of the network adapters in your computer in Linux. Open a terminal and use the following command: + + sudo lshw -C network + +If the above command doesn’t work with sudo, remove the super user privileges. Weird but helps. The output of the command reads like this: + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux.jpeg) + +> *-network +> +> description: Wireless interface +> +> product: BCM4360 802.11ac Wireless Network Adapter +> +> vendor: Broadcom Corporation +> +> physical id: 0 +> +> bus info: pci@0000:03:00.0 +> +> logical name: wlan0 +> +> version: 03 +> +> serial: 9c:f3:87:c1:5d:6a +> +> width: 64 bits +> +> clock: 33MHz +> +> capabilities: bus_master cap_list ethernet physical wireless +> +> configuration: broadcast=yes driver=wl0 driverversion=6.30.223.248 (r487574) ip=192.168.1.23 latency=0 multicast=yes wireless=IEEE 802.11abg +> +> resources: irq:18 memory:b0600000-b0607fff memory:b0400000-b05fffff + +As you can see, the wireless network adapter in my Macbook Air is BCM4360, a troublesome wireless adapter because of which often Ubuntu does not detect wireless networks. + +[lshw][1] command actually used to list hardware and hence the command is named lshw. With the option network, it filters the result for networking hardware only. + +### Alternate method to know the network adapter ### + +Alternatively, you can use lspci command that displays the information about PCI buses in the system. You should not need super user privileges to use this command. Just type the command in terminal: + + lspci + +The output of the command reads as: + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux_1.jpeg) + +> 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09) +> +> 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) +> +> 00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09) +> +> 00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04) +> +> 00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04) +> +> 00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04) +> +> 00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4) +> +> 00:1c.1 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 2 (rev e4) +> +> 00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4) +> +> 00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4) +> +> 00:1c.5 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 6 (rev e4) +> +> 00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04) +> +> 00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04) +> +> 02:00.0 Multimedia controller: Broadcom Corporation Device 1570 +> +> 03:00.0 Network controller: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03) +> +> 04:00.0 SATA controller: Marvell Technology Group Ltd. 88SS9183 PCIe SSD Controller (rev 14) + +These command gives you information about both wired and wireless network adapters. You might have noticed that there is no wired network adapter for my system in the output above. The reason is that I am using a Macbook Air and it does not have an Ethernet port. + +I hope this quick post helped you to find the network adapters in your Linux system. Any questions or suggestions are always welcomed. + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/find-network-adapter-ubuntu-linux/ + +作者:[Abhishek][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/Abhishek/ +[1]:http://linux.die.net/man/1/lshw \ No newline at end of file diff --git a/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md b/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md new file mode 100644 index 0000000000..5d88b04362 --- /dev/null +++ b/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md @@ -0,0 +1,145 @@ +How To Create A Bootable Ubuntu USB Drive For Mac In OS X +================================================================================ +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Create_bootable_Ubuntu_USB_Mac_OS_X.jpg) + +I bought a Macbook Air yesterday after Dell lost my laptop from their service centre last month. And among the first few things I did was to dual boot Mac OS X with Ubuntu Linux. I’ll cover up Linux installation on Macbook in later articles as first we need to learn **how to create a bootable Ubuntu USB drive for Mac in OS X**. + +While it is fairly easy to create a bootable USB in Ubuntu or in Windows, it is not the same story in Mac OS X. This is why the official Ubuntu guide suggest to use a disk rather than USB for live Ubuntu in Mac. Considering my Macbook Air neither has a CD drive nor do I possess a DVD, I preferred to create a live USB in Mac OS X. + +### Create a Bootable Ubuntu USB Drive in Mac OS X ### + +As I said earlier, creating a bootable USB in Mac OS X is a tricky procedure, be it for Ubuntu or any other bootable OS. But don’t worry, following all the steps carefully will have you going. Let’s see what you need to for a bootable USB: + +#### Step 1: Format the USB drive #### + +Apple is known for defining its own standards and no surprises that Mac OS X has its own file system type known as Mac OS Extended or [HFS Plus][1]. So the first thing you would need to do is to format your USB drive in Mac OS Extended format. + +To format the USB drive, plug in the USB key. Go to **Disk Utility** program from Launchpad (A rocket symboled icon in the bottom plank). + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Disk_Utility_Mac.jpg) + +- In Disk Utility, from the left hand pane, select the USB drive to format. +- Click the **Partition** tab in the right side pane. +- From the drop-down menu, select **1 Partition**. +- Name this drive anything you desire. +- Next, change the **Format to Mac OS Extended (Journaled)** + +The screenshot below should help you. + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Format_Usb_Mac_4.jpg) + +There is one last thing to do before we go with formatting the USB. Click the Options button in the right side pane and make sure that the partition scheme is **GUID Partition Table**. + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Format_Usb_Mac_2.jpg) + +When all is set to go, just hit the **Apply** button. It will give you a warning message about formatting the USB drive. Of course hit the Partition button to format the USB drive. + +#### Step 2: Download Ubuntu #### + +Of course, you need to download ISO image of Ubuntu desktop. Jump to [Ubuntu website to download your favorite Ubuntu desktop OS][2]. Since you are using a Macbook Air, I suggest you to download the 64 Bit version of whichever version you want. Ubuntu 14.04 is the latest LTS version, and this is what I would recommend to you. + +#### Step 3: Convert ISO to IMG #### + +The file you downloaded is in ISO format but we need it to be in IMG format. This can be easily done using [hdiutil][3] command tool. Open a terminal, either from Launchpad or from the Spotlight, and then use the following command to convert the ISO to IMG format: + + hdiutil convert -format UDRW -o ~/Path-to-IMG-file ~/Path-to-ISO-file + +Normally the downloaded file should be in ~/Downloads directory. So for me, the command is like this: + + hdiutil convert -format UDRW -o ~/Downloads/ubuntu-14.10-desktop-amd64 ~/Downloads/ubuntu-14.10-desktop-amd64.iso + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/ISO_to_IMG_Convert_Mac_OS_X.jpeg) + +You might notice that I did not put a IMG extension to the newly converted file. It is fine as the extension is symbolic and it is the file type that matters not the file name extension. Also, the converted file may have an additional .dmg extension added to it by Mac OS X. Don’t worry, it’s normal. + +#### Step 4: Get the device number for USB drive #### + +The next thing is to get the device number for the USB drive. Run the following command in terminal: + + diskutil list + +It will list all the ‘disks’ currently available in the system. You should be able to identify the USB disk by its size. To avoid confusion, I would suggest that you should have just one USB drive plugged in. In my case, the device number is 2 (for a USB of size 8 GB): /dev/disk2 + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Create_bootable_USB_Mac_OSX.jpeg) + +When you got the disk number, run the following command: + + diskutil unmountDisk /dev/diskN + +Where N is the device number for the USB you got previously. So, in my case, the above command becomes: + + diskutil unmountDisk /dev/disk2 + +The result should be: **Unmount of all volumes on disk2 was successful**. + +#### Step 5: Creating the bootable USB drive of Ubuntu in Mac OS X #### + +And finally we come to the final step of creating the bootable USB drive. We shall be using [dd command][4] which is a very powerful and must be used with caution. Therefore, do remember the correct device number of your USB drive or else you might end up corrupting Mac OS X. Use the following command in terminal: + + sudo dd if=/Path-to-IMG-DMG-file of=/dev/rdiskN bs=1m + +Here, we are using dd (copy and convert) to copy and convert input file (if) IMG to diskN. I hope you remember where you put the converted IMG file, in step 3. For me the command was like this: + + sudo dd if=~/Downloads/ubuntu-14.10-desktop-amd64.dmg of=/dev/rdisk2 bs=1m + +As we are running the above command with super user privileges (sudo), it will require you to enter the password. Similar to Linux, you won’t see any asterisks or something to indicate that you have entered some keyboard input, but that’s the way Unix terminal behaves. + +Even after you enter the password, **you won’t see any immediate output and that’s norma**l. It will take a few minutes for the process to complete. + +#### Step 6: Complete the bootable USB drive process #### + +Once the dd command finishes its process, you may see a dialogue box saying: **The disk you inserted was not readable by this computer**. + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Bootable_USB_3.png) + +Don’t panic. Everything is just fine. Just **don’t click either of Initialize, Ignore or Eject just now**. Go back to the terminal. You’ll see some information about the last completed process. For me it was: + +> 1109+1 records in +> 1109+1 records out +> 1162936320 bytes transferred in 77.611025 secs (14984164 bytes/sec) + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Create_bootable_USB_Mac_OSX_1.jpeg) + +Now, in the terminal use the following command to eject our USB disk: + + diskutil eject /dev/diskN + +N is of course the device number we have used previously which is 2 in my case: + + diskutil eject /dev/disk2 + +Once ejected, click on **Ignore** in the dialogue box that appeared previously. Now your bootable USB disk is ready. Remove it from the system. + +#### Step 7: Checking your newly created bootable USB disk #### + +Once you have completed the mammoth task of creating a live USB of USB in Mac OS X, it is time to test your efforts. + +- Plugin the bootable USB and reboot the system. +- At start up when the Apple tune starts up, press and hold option (or alt) key. +- This should present you with the available disks to boot in to. I presume you know what to do next. + +For me it showed tow EFI boot: + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Ubuntu_boot_USB_Mac_OSX_1.jpeg) + +I selected the first one and it took me straight to Grub screen: + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Ubuntu_boot_USB_Mac_OSX.jpeg) + +I hope this guide helped you to create a bootable USB disk of Ubuntu for Mac in OS X. We’ll see how to dual boot Ubuntu with OS X in next article. Stay tuned. + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/create-bootable-ubuntu-usb-drive-mac-os/ + +作者:[Abhishek][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/Abhishek/ +[1]:http://en.wikipedia.org/wiki/HFS_Plus +[2]:http://www.ubuntu.com/download/desktop +[3]:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html +[4]:http://en.wikipedia.org/wiki/Dd_%28Unix%29 \ No newline at end of file From f08ce4b7c1e61240332ea29a0918c3f8d8295fb6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 5 Dec 2014 09:40:03 -0500 Subject: [PATCH 084/158] translating --- ...205 Find Out Network Adapters Available In Ubuntu Linux.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md b/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md index c34e74fc02..2a6dfcaeb7 100644 --- a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md +++ b/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md @@ -1,3 +1,5 @@ +Translating----geekpi + Find Out Network Adapters Available In Ubuntu Linux ================================================================================ Wondering **which network adapters you are using in Ubuntu or any other Linux OS**? It is very easy to to find out the manufacturer of the network adapters in your computer in Linux. Open a terminal and use the following command: @@ -97,4 +99,4 @@ via: http://itsfoss.com/find-network-adapter-ubuntu-linux/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://itsfoss.com/author/Abhishek/ -[1]:http://linux.die.net/man/1/lshw \ No newline at end of file +[1]:http://linux.die.net/man/1/lshw From cc063420fe3107398e633f67f0182f2e925695a9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 5 Dec 2014 09:45:42 -0500 Subject: [PATCH 085/158] translated --- ...work Adapters Available In Ubuntu Linux.md | 102 ------------------ 1 file changed, 102 deletions(-) delete mode 100644 sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md diff --git a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md b/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md deleted file mode 100644 index 2a6dfcaeb7..0000000000 --- a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md +++ /dev/null @@ -1,102 +0,0 @@ -Translating----geekpi - -Find Out Network Adapters Available In Ubuntu Linux -================================================================================ -Wondering **which network adapters you are using in Ubuntu or any other Linux OS**? It is very easy to to find out the manufacturer of the network adapters in your computer in Linux. Open a terminal and use the following command: - - sudo lshw -C network - -If the above command doesn’t work with sudo, remove the super user privileges. Weird but helps. The output of the command reads like this: - -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux.jpeg) - -> *-network -> -> description: Wireless interface -> -> product: BCM4360 802.11ac Wireless Network Adapter -> -> vendor: Broadcom Corporation -> -> physical id: 0 -> -> bus info: pci@0000:03:00.0 -> -> logical name: wlan0 -> -> version: 03 -> -> serial: 9c:f3:87:c1:5d:6a -> -> width: 64 bits -> -> clock: 33MHz -> -> capabilities: bus_master cap_list ethernet physical wireless -> -> configuration: broadcast=yes driver=wl0 driverversion=6.30.223.248 (r487574) ip=192.168.1.23 latency=0 multicast=yes wireless=IEEE 802.11abg -> -> resources: irq:18 memory:b0600000-b0607fff memory:b0400000-b05fffff - -As you can see, the wireless network adapter in my Macbook Air is BCM4360, a troublesome wireless adapter because of which often Ubuntu does not detect wireless networks. - -[lshw][1] command actually used to list hardware and hence the command is named lshw. With the option network, it filters the result for networking hardware only. - -### Alternate method to know the network adapter ### - -Alternatively, you can use lspci command that displays the information about PCI buses in the system. You should not need super user privileges to use this command. Just type the command in terminal: - - lspci - -The output of the command reads as: - -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux_1.jpeg) - -> 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09) -> -> 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) -> -> 00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09) -> -> 00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04) -> -> 00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04) -> -> 00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04) -> -> 00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4) -> -> 00:1c.1 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 2 (rev e4) -> -> 00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4) -> -> 00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4) -> -> 00:1c.5 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 6 (rev e4) -> -> 00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04) -> -> 00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04) -> -> 02:00.0 Multimedia controller: Broadcom Corporation Device 1570 -> -> 03:00.0 Network controller: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03) -> -> 04:00.0 SATA controller: Marvell Technology Group Ltd. 88SS9183 PCIe SSD Controller (rev 14) - -These command gives you information about both wired and wireless network adapters. You might have noticed that there is no wired network adapter for my system in the output above. The reason is that I am using a Macbook Air and it does not have an Ethernet port. - -I hope this quick post helped you to find the network adapters in your Linux system. Any questions or suggestions are always welcomed. - --------------------------------------------------------------------------------- - -via: http://itsfoss.com/find-network-adapter-ubuntu-linux/ - -作者:[Abhishek][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/Abhishek/ -[1]:http://linux.die.net/man/1/lshw From 0c2eb305197a2adeaa7d51313f3af2024b32ec10 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 5 Dec 2014 09:49:22 -0500 Subject: [PATCH 086/158] translated --- ...work Adapters Available In Ubuntu Linux.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md diff --git a/translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md b/translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md new file mode 100644 index 0000000000..d20083a363 --- /dev/null +++ b/translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md @@ -0,0 +1,100 @@ +在Ubuntu上找出可用的网络适配器 +================================================================================ +想知道**在Linux中你正在使用的网卡是什么吗?** 在Linux中很容易就找出网卡的生产商。打开一个终端并输入下面的额命令: + + sudo lshw -C network + +如果上面的命令不能在sudo下使用,那就移除sudo。它的输出看上去有点奇怪但是很有用。 + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux.jpeg) + +> *-network +> +> description: Wireless interface +> +> product: BCM4360 802.11ac Wireless Network Adapter +> +> vendor: Broadcom Corporation +> +> physical id: 0 +> +> bus info: pci@0000:03:00.0 +> +> logical name: wlan0 +> +> version: 03 +> +> serial: 9c:f3:87:c1:5d:6a +> +> width: 64 bits +> +> clock: 33MHz +> +> capabilities: bus_master cap_list ethernet physical wireless +> +> configuration: broadcast=yes driver=wl0 driverversion=6.30.223.248 (r487574) ip=192.168.1.23 latency=0 multicast=yes wireless=IEEE 802.11abg +> +> resources: irq:18 memory:b0600000-b0607fff memory:b0400000-b05fffff + +如你所见,我Macbook Air上的无线网卡是BCM4360,这是一款在Ubuntu下面经常无法检测无线网络的很容易出问题的网卡。 + +[lshw][1] 命令实际上死用来列出硬件的,因此命令的名字是lshw。带上网络的选项后,就会只过滤出网络硬件了。 + +### 了解网卡的其他方法 ### + +另外你还可以使用lspci命令来显示PCI总线上的信息。你不应该用特权模式来运行这个命令。只需要在命令行下输入: + + lspci + +命令的输出看上去想这样: + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux_1.jpeg) + +> 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09) +> +> 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) +> +> 00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09) +> +> 00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04) +> +> 00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04) +> +> 00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04) +> +> 00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4) +> +> 00:1c.1 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 2 (rev e4) +> +> 00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4) +> +> 00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4) +> +> 00:1c.5 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 6 (rev e4) +> +> 00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04) +> +> 00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04) +> +> 02:00.0 Multimedia controller: Broadcom Corporation Device 1570 +> +> 03:00.0 Network controller: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03) +> +> 04:00.0 SATA controller: Marvell Technology Group Ltd. 88SS9183 PCIe SSD Controller (rev 14) + +这些命令会同时列出有线和无线的网卡。你应该注意到上面的输出中显示我的系统中没有有线网卡。因为我使用的是Macbook Air,他没有以太网端口 + +我希望这边文章可以帮助你找到你系统中的网卡。欢迎提出问题和建议。 + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/find-network-adapter-ubuntu-linux/ + +作者:[Abhishek][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/Abhishek/ +[1]:http://linux.die.net/man/1/lshw \ No newline at end of file From d98d2b5c2ffb579f4c87312eb71ae7b9bd24700d Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Fri, 5 Dec 2014 22:57:29 +0800 Subject: [PATCH 087/158] translated --- ...work Adapters Available In Ubuntu Linux.md | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) rename {sources => translated}/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md (63%) diff --git a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md b/translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md similarity index 63% rename from sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md rename to translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md index 2a6dfcaeb7..d20083a363 100644 --- a/sources/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md +++ b/translated/tech/20141205 Find Out Network Adapters Available In Ubuntu Linux.md @@ -1,12 +1,10 @@ -Translating----geekpi - -Find Out Network Adapters Available In Ubuntu Linux +在Ubuntu上找出可用的网络适配器 ================================================================================ -Wondering **which network adapters you are using in Ubuntu or any other Linux OS**? It is very easy to to find out the manufacturer of the network adapters in your computer in Linux. Open a terminal and use the following command: +想知道**在Linux中你正在使用的网卡是什么吗?** 在Linux中很容易就找出网卡的生产商。打开一个终端并输入下面的额命令: sudo lshw -C network -If the above command doesn’t work with sudo, remove the super user privileges. Weird but helps. The output of the command reads like this: +如果上面的命令不能在sudo下使用,那就移除sudo。它的输出看上去有点奇怪但是很有用。 ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux.jpeg) @@ -38,17 +36,17 @@ If the above command doesn’t work with sudo, remove the super user privileges. > > resources: irq:18 memory:b0600000-b0607fff memory:b0400000-b05fffff -As you can see, the wireless network adapter in my Macbook Air is BCM4360, a troublesome wireless adapter because of which often Ubuntu does not detect wireless networks. +如你所见,我Macbook Air上的无线网卡是BCM4360,这是一款在Ubuntu下面经常无法检测无线网络的很容易出问题的网卡。 -[lshw][1] command actually used to list hardware and hence the command is named lshw. With the option network, it filters the result for networking hardware only. +[lshw][1] 命令实际上死用来列出硬件的,因此命令的名字是lshw。带上网络的选项后,就会只过滤出网络硬件了。 -### Alternate method to know the network adapter ### +### 了解网卡的其他方法 ### -Alternatively, you can use lspci command that displays the information about PCI buses in the system. You should not need super user privileges to use this command. Just type the command in terminal: +另外你还可以使用lspci命令来显示PCI总线上的信息。你不应该用特权模式来运行这个命令。只需要在命令行下输入: lspci -The output of the command reads as: +命令的输出看上去想这样: ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/Network_Adapter_Linux_1.jpeg) @@ -84,19 +82,19 @@ The output of the command reads as: > > 04:00.0 SATA controller: Marvell Technology Group Ltd. 88SS9183 PCIe SSD Controller (rev 14) -These command gives you information about both wired and wireless network adapters. You might have noticed that there is no wired network adapter for my system in the output above. The reason is that I am using a Macbook Air and it does not have an Ethernet port. +这些命令会同时列出有线和无线的网卡。你应该注意到上面的输出中显示我的系统中没有有线网卡。因为我使用的是Macbook Air,他没有以太网端口 -I hope this quick post helped you to find the network adapters in your Linux system. Any questions or suggestions are always welcomed. +我希望这边文章可以帮助你找到你系统中的网卡。欢迎提出问题和建议。 -------------------------------------------------------------------------------- via: http://itsfoss.com/find-network-adapter-ubuntu-linux/ 作者:[Abhishek][a] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://itsfoss.com/author/Abhishek/ -[1]:http://linux.die.net/man/1/lshw +[1]:http://linux.die.net/man/1/lshw \ No newline at end of file From 8160d35495568a58f2e3d757ac2ecbb5236374c6 Mon Sep 17 00:00:00 2001 From: Vic___ Date: Fri, 5 Dec 2014 23:39:50 +0800 Subject: [PATCH 088/158] Translated --- ...atabase In Oracle 11 Without Using DBCA.md | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md b/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md index 0959fec604..03acaeff19 100644 --- a/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md +++ b/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md @@ -1,17 +1,18 @@ - Vic020 - -How To Drop Database In Oracle 11 Without Using DBCA +如何不使用DBCA在Oracle 11中删除数据库 ================================================================================ -In this small tutorial, I want to show you how to drop the database without using the GUI tool DBCA +本文简短的教程,将会向你展示如何不使用DBCA(数据库配置助手)在Oracle 11中删除数据 -#### 1- Export database SID if not yet Already defined #### +#### 1- 导入数据库的SID,如果没有定义的话 #### + 命令: export ORACLE_SID=database -#### 2- Connect as sysdba #### +#### 2- 以操作系统认证连接数据库 #### + 命令: [oracle@Oracle11 ~]$ sqlplus / as sysdba + 提示: ---------- SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 1 17:38:02 2014 @@ -24,9 +25,11 @@ In this small tutorial, I want to show you how to drop the database without usin Connected to an idle instance. -#### 3- Start The database #### +#### 3- 启动数据库实例 #### + 命令: SQL> startup + 提示: ORACLE instance started. Total System Global Area 3340451840 bytes Fixed Size 2217952 bytes @@ -36,16 +39,20 @@ In this small tutorial, I want to show you how to drop the database without usin Database mounted. Database opened. -#### 4- Shutdown the database #### +#### 4- 关闭数据库 #### + 命令: SQL> shutdown immediate; + 提示: Database closed. Database dismounted. ORACLE instance shut down. -#### 5- Start in Exclusive mode #### +#### 5- 启动独占模式 #### + 命令: SQL> startup mount exclusive restrict + 提示: ORACLE instance started. ---------- @@ -57,10 +64,12 @@ In this small tutorial, I want to show you how to drop the database without usin Redo Buffers 16343040 bytes Database mounted. -#### 6- Drop the database #### +#### 6- 删除数据库 #### + 命令: SQL> drop database; + 提示: ---------- Database dropped. @@ -71,14 +80,14 @@ In this small tutorial, I want to show you how to drop the database without usin With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> -Cheers! +完成! -------------------------------------------------------------------------------- via: http://www.unixmen.com/drop-database-oracle-11-without-using-dcba/ 作者:[M.el Khamlichi][a] -译者:[译者ID](https://github.com/译者ID) +译者:[VicYu/Vic020](http://vicyu.net/) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From d8a14e7733e99d7e58dcabdd735ce0dacdb726bd Mon Sep 17 00:00:00 2001 From: Vic___ Date: Fri, 5 Dec 2014 23:41:09 +0800 Subject: [PATCH 089/158] moved --- ...141204 How To Drop Database In Oracle 11 Without Using DBCA.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md (100%) diff --git a/sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md b/translated/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md similarity index 100% rename from sources/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md rename to translated/tech/20141204 How To Drop Database In Oracle 11 Without Using DBCA.md From 1e7168c4d96f933be8e59265153307decf0ebd58 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Fri, 5 Dec 2014 23:41:09 +0800 Subject: [PATCH 090/158] =?UTF-8?q?20141205-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e a syslog server with rsyslog on Linux.md | 154 +++++++++++ ...backup plan for Debian with backupninja.md | 247 ++++++++++++++++++ ...lotlib for scientific plotting on Linux.md | 152 +++++++++++ ...at is a good free control panel for VPS.md | 155 +++++++++++ 4 files changed, 708 insertions(+) create mode 100644 sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md create mode 100644 sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md create mode 100644 sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md create mode 100644 sources/tech/20141205 What is a good free control panel for VPS.md diff --git a/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md b/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md new file mode 100644 index 0000000000..276e5a05fa --- /dev/null +++ b/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md @@ -0,0 +1,154 @@ +How to configure a syslog server with rsyslog on Linux +================================================================================ +A syslog server represents a central log monitoring point on a network, to which all kinds of devices including Linux or Windows servers, routers, switches or any other hosts can send their logs over network. By setting up a syslog server, you can filter and consolidate logs from different hosts and devices into a single location, so that you can view and archive important log messages more easily. + +On most Linux distributions, **rsyslog** is the standard syslog daemon that comes pre-installed. Configured in a client/server architecture, **rsyslog** can play both roles; as a syslog server **rsyslog** can gather logs from other devices, and as a syslog client, **rsyslog** can transmit its internal logs to a remote syslog server. + +In this tutorial, we cover how to configure a centralized syslog server using **rsyslog** on Linux. Before we go into the details, it is instructive to go over syslog standard first. + +### Basic of Syslog Standard ### + +When logs are collected with syslog mechanism, three important things must be taken into consideration: + +- **Facility level**: what type of processes to monitor +- **Severity (priority) level**: what type of log messages to collect +- **Destination**: where to send or record log messages + +Let's take a look at how the configuration is defined in more detail. + +The facility levels define a way to categorize internal system processes. Some of the common standard facilities in Linux are: + +- **auth**: messages related to authentication (login) +- **cron**: messages related to scheduled processes or applications +- **daemon**: messages related to daemons (internal servers) +- **kernel**: messages related to the kernel +- **mail**: messages related to internal mail servers +- **syslog**: messages related to the syslog daemon itself +- **lpr**: messages related to print servers +- **local0 - local7**: messages defined by user (local7 is usually used by Cisco and Windows servers) + +The severity (priority) levels are standardized, and defined by using standard abbreviation and an assigned number with number 7 being the highest level of all. These levels are: + +- emerg: Emergency - 0 +- alert: Alerts - 1 +- crit: Critical - 2 +- err: Errors - 3 +- warn: Warnings - 4 +- notice: Notification - 5 +- info: Information - 6 +- debug: Debugging - 7 + +Finally, the destination statement enforces a syslog client to perform one of three following tasks: (1) save log messages on a local file, (2) route them to a remote syslog server over TCP/UDP, or (3) send them to stdout such as a console. + +In rsyslog, syslog configuration is structured based on the following schema. + + [facility-level].[severity-level] [destination] + +### Configure Rsyslog on Linux ### + +Now that we understand syslog, it's time to configure a Linux server as a central syslog server using rsyslog. We will also see how to configure a Windows based system as a syslog client to send internal logs to the syslog server. + +#### Step One: Initial System Requirements #### + +To set up a Linux host as a central log server, we need to create a separate /var partition, and allocate a large enough disk size or create a LVM special volume group. That way, the syslog server will be able to sustain the exponential growth of collected logs over time. + +#### Step Two: Enable Rsyslog Daemon #### + +rsyslog daemon comes pre-installed on modern Linux distributions, but is not enabled by default. To enable rsyslog daemon to receive external messages, edit its configuration file located in /etc/rsyslog.conf. + +Once the file is opened for editing, search and uncomment the below two lines by removing the # sign from the beginning of lines. + + $ModLoad imudp + $UDPServerRun 514 + +This will enable rsyslog daemon to receive log messages on UDP port 514. UDP is way faster than TCP, but does not provide reliability on data flow the same way as TCP does. If you need to reliable delivery, you can enable TCP by uncommenting the following lines. + + $ModLoad imtcp + $InputTCPServerRun 514 + +Note that both TCP and UDP can be set on the server simultaneously to listen on TCP/UDP connections. + +#### Step Three: Create a Template for Log Receipt #### + +In the next step we need to create a template for remote messages, and tell rsyslog daemon how to record messages received from other client machines. + +Open /etc/rsyslog.conf with a text editor, and append the following template before the GLOBAL DIRECTIVES block: + + $template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" * + *.* ?RemoteLogs + & ~ + +This template needs a little explanation. The $template RemoteLogs directive ("RemoteLogs" string can be changed to any other descriptive name) forces rsyslog daemon to write log messages to separate local log files in /var/log/, where log file names are defined based on the hostname of the remote sending machine as well as the remote application that generated the logs. The second line ("*.* ?RemoteLogs") implies that we apply RemoteLogs template to all received logs. + +The "& ~" sign represents a redirect rule, and is used to tell rsyslog daemon to stop processing log messages further, and not write them locally. If this redirection is not used, all the remote messages would be also written on local log files besides the log files described above, which means they would practically be written twice. Another consequence of using this rule is that the syslog server's own log messages would only be written to dedicated files named after machine's hostname. + +If you want, you can direct log messages with a specific facility or severity level to this new template using the following schema. + + [facility-level].[severity-level] ?RemoteLogs + +For example: + +Direct all internal authentication messages of all priority levels to RemoteLogs template: + + authpriv.* ?RemoteLogs + +Direct informational messages generated by all system processes, except mail, authentication and cron messages to RemoteLogs template: + + *.info,mail.none,authpriv.none,cron.none ?RemoteLogs + +If we want all received messages from remote clients written to a single file named after their IP address, you can use the following template. We assign a new name "IpTemplate" to this template. + + $template IpTemplate,"/var/log/%FROMHOST-IP%.log" + *.* ?IpTemplate + & ~ + +After we have enabled rsyslog daemon and edited its configuration file, we need to restart the daemon. + +On Debian, Ubuntu or CentOS/RHEL 6: + + $ sudo service rsyslog restart + +On Fedora or CentOS/RHEL 7: + + $ sudo systemctl restart rsyslog + +We can verify that rsyslog daemon is functional by using netstat command. + + $ sudo netstat -tulpn | grep rsyslog + +The output should look like the following in case rsyslog daemon listens on UDP port. + + udp 0 0 0.0.0.0:514 0.0.0.0:* 551/rsyslogd + udp6 0 0 :::514 :::* 551/rsyslogd + +If rsyslog daemon is set up to listen on TCP connections, the output should look like this. + + tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogd + tcp6 0 0 :::514 :::* LISTEN 1891/rsyslogd + +#### Send Windows Logs to a Remote Rsyslog Server #### + +To forward a Windows based client's log messages to our rsyslog server, we need a Windows syslog agent. While there are a multitude of syslog agents that can run on Windows, we can use [Datagram SyslogAgent][1], which is a freeware program. + +After downloading and installing the syslog agent, we need to configure it to run as a service. Specify the protocol though which it will send data, the IP address and port of a remote rsyslog server, and what type of event logs should be transmitted as follows. + +![](https://farm8.staticflickr.com/7509/15305930594_27b7f4440a_o.jpg) + +After we have set up all the configurations, we can start the service and watch the log files on the central rsyslog server using tailf command line utility. + +### Conclusion ### + +By creating a central rsyslog server that can collect log files of local or remote hosts, we can get a better idea on what is going on internally in their systems, and can debug their problems more easily should any of them become unresponsive or crash. + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/configure-syslog-server-linux.html + +作者:[Caezsar M][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/caezsar +[1]:http://www.syslogserver.com/download.html \ No newline at end of file diff --git a/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md b/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md new file mode 100644 index 0000000000..fcd7c04232 --- /dev/null +++ b/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md @@ -0,0 +1,247 @@ +How to create a custom backup plan for Debian with backupninja +================================================================================ +Backupninja is a powerful and highly-configurable backup tool for Debian based distributions. In the [previous tutorial][1], we explored how to install backupninja and how to set up two backup actions for the program to perform. However, we should note that those examples were only "the tip of the iceberg," so to speak. In this post we will discuss how to leverage custom handlers and helpers that allow this program to be customized in order to accomplish almost any backup need that you can think of. + +And believe me - that is not an overstatement, so let's begin. + +### A Quick Review of Backupninja ### + +One of backupninja's distinguishing features is the fact that you can just drop plain text configuration or action files in /etc/backup.d, and the program will take care of the rest. In addition, we can write custom scripts (aka "handlers") and place them in /usr/share/backupninja to handle each type of backup action. Furthermore, we can have these scripts be executed via ninjahelper's ncurses-based interactive menus (aka "helpers") to guide us to create the configuration files we mentioned earlier, minimizing the chances of human error. + +### Creating a Custom Handler and Helper ### + +Our goal in this case is to create a script to handle the backup of chosen home directories into a tarball with either **gzip** or **bzip2** compression, excluding music and video files. We will simply name this script home, and place it under /usr/backup/ninja. + +Although you could achieve the same objective with the default tar handler (refer to /usr/share/backupninja/tar and /usr/share/backupninja/tar.helper), we will use this approach to show how to create a useful handler script and ncurses-based helper from scratch. You can then decide how to apply the same principles depending on your specific needs. + +Note that since handlers are sourced from the main script, there is no need to start with #!/bin/bash at the top. + +Our proposed handler (/usr/share/backupninja/home) is as follows. It is heavily commented for clarification. The getconf function is used to read the backup action's configuration file. If you specify a value for a variable here, it will override the corresponding value present in the configuration file: + + # home handler script for backupninja + + # Every backup file will identify the host by its FQDN + getconf backupname + + # Directory to store backups + getconf backupdir + + # Default compression + getconf compress + + # Include /home directory + getconf includes + + # Exclude files with *.mp3 and *.mp4 extensions + getconf excludes + + # Default extension for the packaged backup file + getconf EXTENSION + + # Absolute path to date binary + getconf TAR `which tar` + + # Absolute path to date binary + getconf DATE `which date` + + # Chosen date format + DATEFORMAT="%Y-%m-%d" + + # If backupdir does not exist, exit with fatal error + if [ ! -d "$backupdir" ] + then + mkdir -p "$backupdir" || fatal "Can not make directory $backupdir" + fi + + # If backupdir is not writeable, exit with fatal error as well + if [ ! -w "$backupdir" ] + then + fatal "Directory $backupdir is not writable" + fi + + # Set the right tar option as per the chosen compression format + case $compress in + "gzip") + compress_option="-z" + EXTENSION="tar.gz" + ;; + "bzip") + compress_option="-j" + EXTENSION="tar.bz2" + ;; + "none") + compress_option="" + ;; + *) + warning "Unknown compress filter ($tar_compress)" + compress_option="" + EXTENSION="tar.gz" + ;; + esac + + # Exclude the following file types / directories + exclude_options="" + for i in $excludes + do + exclude_options="$exclude_options --exclude $i" + done + + # Debugging messages, performing backup + debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \ + -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \ + $includes + + # Redirect standard output to a file with .list extension + # and standard error to a file with .err extension + $TAR -c -p -v $compress_option $exclude_options \ + -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \ + $includes \ + > "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.list \ + 2> "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.err + + [ $? -ne 0 ] && fatal "Tar backup failed" + +Next, we will create our helper file (/usr/share/backupninja/home.helper) so that our handlers shows up as a menu in **ninjahelper**: + + # Backup action's description. Separate words with underscores. + HELPERS="$HELPERS home:backup_of_home_directories" + + home_wizard() { + home_title="Home action wizard" + + backupname=`hostname --fqdn` + + # Specify default value for the time when this backup actions is supposed to run + inputBox "$home_title" "When to run this action?" "everyday at 01" + [ $? = 1 ] && return + home_when_run="when = $REPLY" + + # Specify default value for backup file name + inputBox "$home_title" "\"Name\" of backups" "$backupname" + [ $? = 1 ] && return + home_backupname="backupname = $REPLY" + backupname="$REPLY" + + # Specify default directory to store the backups + inputBox "$home_title" "Directory where to store the backups" "/var/backups/home" + [ $? = 1 ] && return + home_backupdir="backupdir = $REPLY" + + # Specify default values for the radiobox + radioBox "$home_title" "Compression" \ + "none" "No compression" off \ + "gzip" "Compress with gzip" on \ + "bzip" "Compress with bzip" off + [ $? = 1 ] && return; + result="$REPLY" + home_compress="compress = $REPLY " + + REPLY= + while [ -z "$REPLY" ]; do + formBegin "$home_title: Includes" + formItem "Include:" /home/gacanepa + formDisplay + [ $? = 0 ] || return 1 + home_includes="includes = " + for i in $REPLY; do + [ -n "$i" ] && home_includes="$home_includes $i" + done + done + + REPLY= + while [ -z "$REPLY" ]; do + formBegin "$home_title: Excludes" + formItem "Exclude:" *.mp3 + formItem "Exclude:" *.mp4 + # Add as many “Exclude” text boxes as needed to specify other exclude options + formItem "Exclude:" + formItem "Exclude:" + formDisplay + [ $? = 0 ] || return 1 + home_excludes="excludes = " + for i in $REPLY; do + [ -n "$i" ] && home_excludes="$home_excludes $i" + done + done + + # Save the config + get_next_filename $configdirectory/10.home + cat > $next_filename <> /etc/apt/sources.list' + $ sudo apt-get update + $ sudo apt-get install ajenti + +#### Install Ajenti on Ubuntu #### + + $ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add - + $ sudo sh -c 'echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" >> /etc/apt/sources.list' + $ sudo apt-get update + $ sudo apt-get install ajenti + +#### Install Ajenti on CentOS/RHEL or Fedora #### + +On CentOS/RHEL, [configure][4] EPEL repository first, and then run the following. On Fedora, use the following commands directly. + + $ wget http://repo.ajenti.org/ajenti-repo-1.0-1.noarch.rpm + $ sudo rpm -ivh ajenti-repo-1.0-1.noarch.rpm + $ sudo yum install ajenti + +Next, configure the firewall. + +On Fedora or CentOS/RHEL 7: + + $ sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent + $ sudo firewall-cmd --reload + +On CentOS/RHEL 6: + + $ sudo iptables -I INPUT -p tcp -m tcp --dport 8000 -j ACCEPT + $ sudo service iptables save + +### Access Ajenti Web Interface ### + +Before accessing Ajenti's web interface, make sure to start ajenti service. + + $ sudo service ajenti restart + +Direct your web browser to https://:8000, and you will see the following Ajenti login interface. + +![](https://farm8.staticflickr.com/7512/15712738197_eeccd0f9dd_z.jpg) + +The default login credential is "root" for username and "admin" for password. Once you log in, you will see the initial Ajengi menu. + +![](https://farm8.staticflickr.com/7498/15897850312_d2ca46fa4b_z.jpg) + +Under "SOFTWARE" section in the left panel, you will see a list of installed services. When you install any new server software supported by Ajenti, the software will be automatically added to the list once you restart ajenti service. + + $ sudo service ajenti restart + +### VPS Management via Ajenti Web Interface ### + +Ajenti's web interface is extremely intuitive and easy to use. Here are a few examples of Ajenti functionality. + +#### Pluggable Architecture #### + +Ajenti comes with a number of application-specific plugins, which makes Ajenti highly extensible. When you install a new software on your VPS, a corresponding Ajenti plugin (if any) will be automatically enabled to manage the software. The "Plugins" menu will show what plugins are available/enabled, and which plugin is associated with what software. + +![](https://farm8.staticflickr.com/7501/15872690086_26d05ea570_z.jpg) + +#### Package Management #### + +Ajenti offers a web interface for installing and upgrading packages on VPS. + +![](https://farm9.staticflickr.com/8571/15896505171_daf8c2d9db_z.jpg) + +#### Firewall Configuration #### + +Ajenti allows you to manage firewall rules (iptables or CSF) in two ways. One is to use a user-friendly web panel interface, and the other is to edit raw firewall rules directly. + +![](https://farm8.staticflickr.com/7490/15276234634_a220f2a555_z.jpg) + +![](https://farm8.staticflickr.com/7499/15711196520_343d0668ff_z.jpg) + +#### Log Inspection #### + +You can browse system logs in /var/log via Ajenti's web interface. + +![](https://farm8.staticflickr.com/7529/15276234684_a5375c9b6d_z.jpg) + +#### Process Monitoring #### + +You can see a list of processes sorted by CPU or RAM usage, and can kill them as needed. + +![](https://farm8.staticflickr.com/7556/15711008948_ed359c284d_z.jpg) + +#### Terminal Access #### + +For low-level VPS access, Ajenti offers a web-based terminal interface where you can type Linux commands. You can open multiple terminal tabs within a web panel as shown below. + +![](https://farm8.staticflickr.com/7568/15896505251_8271ac16dd_z.jpg) + +#### Apache Web Server Administration #### + +You can edit Apache configuration file, and manage apache2 service. + +![](https://farm8.staticflickr.com/7572/15711009108_bb806d2dcd_z.jpg) + +#### MySQL/MariaDB Management #### + +You can access MySQL/MariaDB server and execute raw SQL commands on it. + +![](https://farm8.staticflickr.com/7580/15276234754_02375fd17b_z.jpg) + +#### Squid Configuration #### + +You can configure ACL, HTTP access rules, filtering ports for Squid proxy server. + +![](https://farm8.staticflickr.com/7568/15712738507_e2ef48b78f_z.jpg) + +#### Startup Service Management #### + +You can view, start, stop and restart installed services. + +![](https://farm8.staticflickr.com/7538/15898503935_1edf5c67ae_z.jpg) + +### Conclusion ### + +Ajenti is a convenient and easy-to-use web control panel for common server administration, with the possibility to add [custom plugins][5] that you can develop. However, remember that any good control panel does not obviate the need for you to learn what's happening behind the scene on your [VPS][6]. A control panel will become a real time saver only when you fully understand what you are doing, and be able to handle the consequence of your action without relying on the control panel. + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/free-control-panel-for-vps.html + +作者:[Dan Nanni][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:http://xmodulo.com/go/digitalocean +[2]:http://ajenti.org/ +[3]:http://ajenti.org/licensing +[4]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html +[5]:http://docs.ajenti.org/en/latest/dev/intro.html +[6]:http://xmodulo.com/go/digitalocean \ No newline at end of file From bae30fddc09374099f4b7069383c93a612c0a4b4 Mon Sep 17 00:00:00 2001 From: DoubleC <450760206@qq.com> Date: Sat, 6 Dec 2014 10:26:22 +0800 Subject: [PATCH 091/158] Update 20141205 How to create a custom backup plan for Debian with backupninja.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 申领文章 --- ... create a custom backup plan for Debian with backupninja.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md b/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md index fcd7c04232..a705c44b3b 100644 --- a/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md +++ b/sources/tech/20141205 How to create a custom backup plan for Debian with backupninja.md @@ -1,3 +1,4 @@ +SPccman translating How to create a custom backup plan for Debian with backupninja ================================================================================ Backupninja is a powerful and highly-configurable backup tool for Debian based distributions. In the [previous tutorial][1], we explored how to install backupninja and how to set up two backup actions for the program to perform. However, we should note that those examples were only "the tip of the iceberg," so to speak. In this post we will discuss how to leverage custom handlers and helpers that allow this program to be customized in order to accomplish almost any backup need that you can think of. @@ -244,4 +245,4 @@ via: http://xmodulo.com/create-custom-backup-plan-debian.html [a]:http://xmodulo.com/author/gabriel [1]:http://xmodulo.com/backup-debian-system-backupninja.html -[2]:http://xmodulo.com/backup-debian-system-backupninja.html \ No newline at end of file +[2]:http://xmodulo.com/backup-debian-system-backupninja.html From a5a76e14a91722e40d2b0f5d6cac9f3b5e56237a Mon Sep 17 00:00:00 2001 From: su-kaiyao <1250471161@qq.com> Date: Sat, 6 Dec 2014 12:50:01 +0800 Subject: [PATCH 092/158] su-kaiyao translating --- ...Run Linux Programs From The Terminal In Background Mode.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md b/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md index 6ab48a5930..92fc98f023 100644 --- a/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md +++ b/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md @@ -1,3 +1,5 @@ +[su-kaiyao] translating + How To Run Linux Programs From The Terminal In Background Mode ================================================================================ ![Linux Terminal Window.](http://0.tqn.com/y/linux/1/W/r/G/1/terminal.JPG) @@ -83,4 +85,4 @@ via: http://linux.about.com/od/commands/fl/How-To-Run-Linux-Programs-From-The-Te [2]:http://linux.about.com/od/commands/l/blcmdl1_locate.htm [3]:http://linux.about.com/library/cmd/blcmdl1_less.htm [4]:http://linux.about.com/library/cmd/blcmdl1_more.htm -[5]:http://linux.about.com/od/commands/l/blcmdl8_sudo.htm \ No newline at end of file +[5]:http://linux.about.com/od/commands/l/blcmdl8_sudo.htm From e69d01e26072b178d650290137202300aa250769 Mon Sep 17 00:00:00 2001 From: su-kaiyao <1250471161@qq.com> Date: Sat, 6 Dec 2014 21:54:40 +0800 Subject: [PATCH 093/158] su-kaiyao translated --- ...ms From The Terminal In Background Mode.md | 88 ------------------ ...ms From The Terminal In Background Mode.md | 89 +++++++++++++++++++ 2 files changed, 89 insertions(+), 88 deletions(-) delete mode 100644 sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md create mode 100644 translated/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md diff --git a/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md b/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md deleted file mode 100644 index 92fc98f023..0000000000 --- a/sources/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md +++ /dev/null @@ -1,88 +0,0 @@ -[su-kaiyao] translating - -How To Run Linux Programs From The Terminal In Background Mode -================================================================================ -![Linux Terminal Window.](http://0.tqn.com/y/linux/1/W/r/G/1/terminal.JPG) - -Linux Terminal Window. - -This is a short but useful guide to show how to run Linux applications from the terminal whilst allowing the terminal to retain control. - -There are various ways of opening a terminal window in Linux and it largely depends on your choice of distribution and the desktop environment. - -Using Ubuntu you can open a terminal by using the CTRL + ALT + T key combination. You can also open a terminal window by pressing the super key (Windows Key), on the keyboard, to [bring up the Dash][1] and search for "TERM". Clicking on the "Term" icon will open a terminal window. - -For other desktop environments such as XFCE, KDE, LXDE, Cinnamon and MATE you will find the terminal within the menu. Some distributions will have a terminal icon in a dock or as a launcher on a panel. - -You can generally start an application from the terminal by simply entering the name of the program. For instance you can start Firefox by typing "firefox". - -The benefit of running an application from the terminal is that you can include additional options. - -For instance if you type the following a new Firefox browser window will open and the default search engine will be used to search for the term between quotes: - - firefox -search "Linux.About.Com" - -You will notice that if you run Firefox, the application will open and the control will be returned to the terminal which means you can continue working within the terminal. - -Generally if you run an application from within the terminal, the application will open and you won't regain control of the terminal until the application is closed. This is because you opened the program in the foreground. - -To be able to open a program in the Linux terminal and return control to the terminal you need to open the application as a background process, - -In order to open a program as a background process simply add the ampersand (&) symbol to the command as shown below: - - libreoffice & - -An application might not run just by providing the program's name in the terminal. If the program doesn't reside in one of the folders set within the PATH variable then you will need to specify the whole path name in order to run the program. - - /path/to/yourprogram & - -If you aren't sure where a program resides within the Linux folder structure use the find or [locate][2] command to find the application. - -The syntax for finding a file is as follows: - - find /path/to/start/from -name programname - -For instance if you wanted to find the location of Firefox use the following command: - - find / -name firefox - -The output will whizz past quite quickly and so you will want to pipe the output to either [less][3] or [more][4] as follows: - - find / -name firefox | more - - find / -name firefox | less - -The find command will return a number of permission denied errors for folders that you don't have permissions to search. - -You can alway provide the [sudo command to elevate your permissions][5]. If sudo isn't installed you will need to switch to a user that has permissions. - - sudo find / -name firefox | more - -If you know that the file you are looking for is within the folder structure in which you are currently located then you can replace the forward slash with a period as follows: - - sudo find . -name firefox | more - -You may or may not need the elevated permissions provided by sudo. If you are looking for something within your home folder structure then it won't be required. - -Some applications require elevated permissions to run and you may get a lack of permissions error unless you use either a user with adequate permissions or elevate those permissions using sudo. - -Here is a neat trick. If you run an application and it requires elevated permissions to run, type the following: - - sudo !! - --------------------------------------------------------------------------------- - -via: http://linux.about.com/od/commands/fl/How-To-Run-Linux-Programs-From-The-Terminal-In-Background-Mode.htm - -作者:[Gary Newell][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://linux.about.com/bio/Gary-Newell-132058.htm -[1]:http://linux.about.com/od/howtos/fl/Learn-Ubuntu-The-Unity-Dash.htm -[2]:http://linux.about.com/od/commands/l/blcmdl1_locate.htm -[3]:http://linux.about.com/library/cmd/blcmdl1_less.htm -[4]:http://linux.about.com/library/cmd/blcmdl1_more.htm -[5]:http://linux.about.com/od/commands/l/blcmdl8_sudo.htm diff --git a/translated/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md b/translated/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md new file mode 100644 index 0000000000..a045e9f7fd --- /dev/null +++ b/translated/tech/20141204 How To Run Linux Programs From The Terminal In Background Mode.md @@ -0,0 +1,89 @@ +如何从终端以后台模式运行Linux程序 +=== + +![Linux Terminal Window.](http://0.tqn.com/y/linux/1/W/r/G/1/terminal.JPG) + +Linux终端窗口。 + +这是一个简短但是非常有用的教程:它向你展示从终端运行Linux应用程序的同时,如何保证终端仍然在控制之中。 + +在Linux中有许多方式可以打开一个终端,这主要取决于你分类的选择和桌面环境。 + +使用Ubuntu,你可以使用CTRL + ALT + T组合键打开一个终端。你也可以点击超级键(Windows键)打开一个终端窗口。在键盘上,[打开Ubuntu Dash][1],然后搜索"TERM"。点击"Term"图标将会打开一个终端窗口。 + +其他诸如XFCE, KDE, LXDE, Cinnamon和MATE的桌面环境,你将会在菜单中发现终端。还有一些分类会把终端图标放在入口处,或者在面板上放置终端启动器。 + +你可以在终端输入一个程序的名字来启动一个应用。举例,你可以通过输入"firefox"启动火狐浏览器。 + +从终端运行程序的好处是一可以包含额外的选项。 + +举个例子,如果你输入下面的命令,一个新的火狐浏览器将会打开,而且默认的搜索引擎将会搜索引用之间的术语: + + firefox -search "Linux.About.Com" + +你会发现,如果你运行火狐浏览器,应用程序将被打开,并且控制将会回到终端,这将意味着你可以继续在终端工作。 + +通常情况下,如果你通过终端运行一个程序,程序将被打开,并且直到那个程序关闭结束,你将不会重新获得终端的控制权。这是因为你是在前台打开程序的。 + +想要从终端运行一个程序,并且立即将终端的控制权返回给你,你需要以后台进程的方式打开程序。 + +为了以后台进程的方式打开一个程序,只需要添加符号(&)到命令中,如下面所示: + + libreoffice & + +在终端中仅仅提供程序的名字,应用程序可能运行不了。如果程序不存在于一个设置了路径变量的文件夹中,你需要指定完成的路径名来运行程序。 + + /path/to/yourprogram & + +如果你并不确定一个程序是否存在于Linux文件结构,使用find或者locate命令来查询应用程序。 + +找一个文件的语法如下: + + find /path/to/start/from -name programname + +举个例子,可以使用下面的命令寻找Firefox的位置: + + find / -name firefox + +输出会很快掠过,所以你可以以管道的方式控制输出的多少: + + find / -name firefox | more + + find / -name firefox | less + +find命令将会返回因权限拒绝而发生错误的文件夹数量,这些文件夹你没有权限去搜索。 + +你可以使用sudo命令提升你的权限。如果sudo没有安装,你需要切换到拥有权限的用户: + + sudo find / -name firefox | more + +如果你知道你想寻找的文件在你的当前文件夹结构中,你可以一个点代替先前的斜线,如下: + + sudo find . -name firefox | more + +你可能不需要sudo来提升权限。如果你在home文件夹结构中寻找文件,sudo就不需要。 + +一些应用程序需要提升用户权限来运行,你可能得到一个缺少权限的错误,除非你使用一个具有足够权限的用户,或者使用sudo提升你的权限。 + +下面是一个小花招。如果你运行一个程序,而且它需要提升权限来运行,输入下面命令: + + sudo !! + +--- + +via: http://linux.about.com/od/commands/fl/How-To-Run-Linux-Programs-From-T +he-Terminal-In-Background-Mode.htm + +作者:[Gary Newell][a] +译者:[su-kaiyao](https://github.com/su-kaiyao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中> +国](http://linux.cn/) 荣誉推出 + +[a]:http://linux.about.com/bio/Gary-Newell-132058.htm +[1]:http://linux.about.com/od/howtos/fl/Learn-Ubuntu-The-Unity-Dash.htm +[2]:http://linux.about.com/od/commands/l/blcmdl1_locate.htm +[3]:http://linux.about.com/library/cmd/blcmdl1_less.htm +[4]:http://linux.about.com/library/cmd/blcmdl1_more.htm +[5]:http://linux.about.com/od/commands/l/blcmdl8_sudo.htm From c8841c085193e40ed597c7afda073794d741d9de Mon Sep 17 00:00:00 2001 From: Jonathan Kang Date: Sun, 7 Dec 2014 10:04:48 +0800 Subject: [PATCH 094/158] Translated --- ...up My Weather Indicator in Ubuntu 14.10.md | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md b/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md index 0fac43ba93..37c497511c 100644 --- a/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md +++ b/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md @@ -1,69 +1,68 @@ -Translating by JonathanKang -How to Install and Setup ‘My Weather Indicator’ in Ubuntu 14.10 +在Ubuntu 14.10中如何安装和配置‘My Weather Indicator’ ================================================================================ ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/my-weather-indicator.jpg) -**There’s no drought of ways to be kept abreast of the weather on the Ubuntu desktop, with the Unity Dash and desktop apps like [Typhoon][1] all offering to help.** +**在Ubuntu桌面中不缺乏若干应用同时提供天气信息的方法,你可以使用Unity Dash和桌面应用,比如[Typhoon][1],来获得天气信息。** -But panel applets that offer quick glance condition and temperature stats, with a ream of detailed meteorological data never more than a quick click away, are by far the most popular weather utilities on Linux. +但是可以提供快速查询天气状况和温度数据,并且只需要一次鼠标点击而获得大量气象数据的面板插件,是到目前为止Linux平台下最受欢迎的天气应用。 -[My Weather Indicator][2] by Atareao is one of this breed, and arguably the best. +Atareao开发的[My Weather Indicator][2]就是这类应用中的一个,也可以说是最好的一个。 -It displays current temperature and conditions on the Unity panel, and has a menu stuffed full of stats, including ‘feels like’, cloudiness and sunrise/set times. In addition, there’s a desktop widget, multiple location support, a choice of backend data providers, and plenty of configuration options. +它在Unity面板上显示实时温度和天气状况,并且有一个包括体感温度、云量和日升日落时间等天气数据的菜单。除此之外,该应用还支持桌面小部件、多地区支持、天气数据提供方选择以及其他很多的配置选项。 -Sounds pretty comprehensive, right? Let’s walk through how to install and set it up on Ubuntu. +听起来很不错,是吧?那我们下面就来看看如何在Ubuntu上安装和配置它吧。 -### Install My Weather Indicator in Ubuntu ### +### 在Ubuntu上安装My Weather Indicator ### -My Weather Indicator is not available to install from the Ubuntu Software Center directly, but both a .deb installer and an officially maintained PPA (providing packages for both Ubuntu 14.04 LTS and 14.10) are provided by the developers. +My Weather Indicator无法从Ubuntu软件商店中直接获取。不过开发者为我们提供了.deb安装包和官方维护的PPA(为Ubuntu 14.04 LTS和14.10提供安装包)。 -- Download My Weather Indicator (.deb) +- 下载My Weather Indicator (.deb安装包) -To ensure you’re always kept up-to-date with the latest release I recommend adding the [Atareao PPA][3] to your Software Sources and installing from there. +为了确保你的应用最是最新版本,我建议将[Atareao PPA][3]添加到你的软件镜像源然后通过PPA来安装。 -How? **Open a new Terminal** window (Unity Dash > Terminal, or press Ctrl+Alt+T) and **enter the following two commands carefully**, entering your system password when prompted: +怎么做?**打开一个新的终端**窗口(Unity Dash > 终端,或者按Ctrl+Alt+T快捷键),然后**输入下面的两行命令**,期间你需要在提示处输入你的系统密码: sudo add-apt-repository ppa:atareao/atareao sudo apt-get update && sudo apt-get install my-weather-indicator -#### Setting Up My Weather Indicator #### +#### 配置My Weather Indicator #### -Regardless of how you install the tool, once you have you can launch it from the Unity Dash by searching for “weather”. +无论你是通过什么方法安装该应用,你都可以在Unity Dash中搜索“weather”并且点击该应用来打开它。 ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/weather-icon.jpg) -The first time you open the app the following Preferences window will open. From here you can search for a location manually or set it to auto-detect using geo-ip — the latter of which can sometimes be a little imprecise, but saves the need to faff. +首次打开应用时会出现下面的配置窗口。在这里你可以手动设置地区或者使用geo-ip来自动获取。或者有时可能会不够精确,不过它可以省去手动设置过程。 ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/Screen-Shot-2014-10-27-at-17.39.07.jpeg) -If you’re travelling (or in need of some small talk fodder) **you can monitor a second locale**, too. This is set up in the same way as the first but in the ‘Second Location’ tab. +如果你正在旅行(或者是出于聊天需要),**你可以添加一个第二地区**。这个设置和第一地区的设置相同,只不过是在“第二地区”的标签栏罢了。 -Checking the ‘**Show Widget**’ box in the “**Widget Options**” section adds a small forecast desklet to your desktop. There are a number of different skins included, so be sure to play around to find the one you like the most (note: widget changes are applied on clicking ‘Ok’). +在“**小部件设置**”区域勾选“**显示桌面小部件**”选项就会在你的桌面上添加一个小的天气小部件。小部件提供许多不同的皮肤,所以你一定要精心挑选你最喜欢的一个(注释:点击“确定”后对小部件的更改才会保存)。 ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/widgets.jpg) -My Weather Indicator uses [Open Weather Map][4] as its forecast backend by default, but other options can be selected from the ‘**Weather Services**’ pane (*require an API key to function): +My Weather Indicator使用[Open Weather Map][4]作为默认的天气数据提供方。不过你可以在‘**Weather Services**’面板中选择其他的数据提供方(有*标记的需要提供相关API key): - Open Weather Map - Yahoo! Weather - Weather Underground* - World Weather Online* -The ‘**Units**’ tab is where you can configure measurements for temperature, pressure, wind speed, etc. These are applied globally to all configured locations; you can’t have one location in Celsius and the other in Fahrenheit. +在‘**Units**’标签页中,你可以设置温度、压力、风速等数据的单位。这些设置适用于所有添加的地区,也就是说你不能在一个地区使用摄氏度,另一个地区使用华氏度。 ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/Screen-Shot-2014-10-27-at-17.38.54.jpeg) -Finally, in the ‘General Options‘ section you can set the refresh interval, set autostart preference, and choose from one of two panel icons. +最后,在‘General Options‘标签页,你可以设置数据更新间隔、设置开机自动运行选项以及从两个图标中选择一个作为面板图标。 -MWI not your thing? Why not try [the nerdy way to view weather forecasts on Linux][5]? +如果你不喜欢该应用,你可以尝试[Linux下查看天气数据的方法][5]。 -------------------------------------------------------------------------------- via: http://www.omgubuntu.co.uk/2014/10/install-weather-indicator-ubuntu-14-10 作者:[Joey-Elijah Sneddon][a] -译者:[译者ID](https://github.com/译者ID) +译者:[JonathanKang](https://github.com/JonathanKang) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From ce00a0c10ca71a593d87b8a6831445e7b92cc689 Mon Sep 17 00:00:00 2001 From: coloka Date: Sun, 7 Dec 2014 11:18:56 +0800 Subject: [PATCH 095/158] =?UTF-8?q?=E3=80=90=E7=BF=BB=E8=AF=91=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E3=80=9120141125=20Four=20ways=20Linux=20is=20headed?= =?UTF-8?q?=20for=20no-downtime=20kernel=20patching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... headed for no-downtime kernel patching.md | 56 ------------------- ... headed for no-downtime kernel patching.md | 54 ++++++++++++++++++ 2 files changed, 54 insertions(+), 56 deletions(-) delete mode 100644 sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md create mode 100644 translated/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md diff --git a/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md b/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md deleted file mode 100644 index 91f666319e..0000000000 --- a/sources/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md +++ /dev/null @@ -1,56 +0,0 @@ -翻译中 by coloka -Four ways Linux is headed for no-downtime kernel patching -================================================================================ -![Credit: Shutterstock](http://images.techhive.com/images/article/2014/10/patch_f-100526950-primary.idge.jpeg) -Credit: Shutterstock - -These technologies are competing to provide the best way to patch the Linux kernel without reboots or downtime - -Nobody loves a reboot, especially not if it involves a late-breaking patch for a kernel-level issue that has to be applied stat. - -To that end, three projects are in the works to provide a mechanism for upgrading the kernel in a running Linux instance without having to reboot anything. - -### Ksplice ### - -The first and original contender is Ksplice, courtesy of a company of the same name founded in 2008. The kernel being replaced does not have to be pre-modified; all it needs is a diff file listing the changes to be made to the kernel source. Ksplice, Inc. offered support for the (free) software as a paid service and supported most common Linux distributions used in production. - -All that changed in 2011, when [Oracle purchased the company][1], rolled the feature into its own Linux distribution, and kept updates for the technology to itself. As a result, other intrepid kernel hackers have been looking for ways to pick up where Ksplice left off, without having to pay the associated Oracle tax. - -### Kgraft ### - -In February 2014, Suse provided the exact solution needed: [Kgraft][2], its kernel-update technology released under a mixed GPLv2/GPLv3 license and not kept close as a proprietary creation. It's since been [submitted][3] as a possible inclusion to the mainline Linux kernel, although Suse has rolled a version of the technology into [Suse Linux Enterprise Server 12][4]. - -Kgraft works roughly like Ksplice by using a set of diffs to figure out what parts of the kernel to replace. But unlike Ksplice, Kgraft doesn't need to stop the kernel entirely to replace it. Any running functions can be directed to their old or new kernel-level counterparts until the patching process is finished. - -### Kpatch ### - -Red Hat came up with its own no-reboot kernel-patch mechanism, too. Also introduced earlier this year -- right after Suse's work in that vein, no less -- [Kpatch][5] works in roughly the same manner as Kgraft. - -The main difference, [as outlined][6] by Josh Poimboeuf of Red Hat, is that Kpatch doesn't redirect calls to old kernel functions. Rather, it waits until all function calls have stopped, then swaps in the new kernel. Red Hat's engineers consider this approach safer, with less code to maintain, albeit at the cost of more latency during the patch process. - -Like Kgraft, Kpatch has been submitted for consideration as a possible kernel inclusion and can be used with Linux kernels other than Red Hat's. The bad news is that Kpatch isn't yet considered production-ready by Red Hat. It's included as part of Red Hat Enterprise Linux 7, but only in the form of a technology preview. - -### ...or Kgraft + Kpatch? ### - -A fourth solution [proposed by Red Hat developer Seth Jennings][7] early in November 2014 is a mix of both the Kgraft and Kpatch approaches, using patches built for either one of those solutions. This new approach, Jennings explained, "consists of a live patching 'core' that provides an interface for other 'patch' kernel modules to register patches with the core." This way, the patching process -- specifically, how to deal with any running kernel functions -- can be handled in a more orderly fashion. - -The sheer newness of these proposals means it'll be a while before any of them are officially part of the Linux kernel, although Suse's chosen to move fast and made it a part of its latest enterprise offering. Let's see if Red Hat and Canonical choose to follow suit in the short run as well. - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2851028/linux/four-ways-linux-is-headed-for-no-downtime-kernel-patching.html - -作者:[Serdar Yegulalp][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/Serdar-Yegulalp/ -[1]:http://www.infoworld.com/article/2622437/open-source-software/oracle-buys-ksplice-for-linux--zero-downtime--tech.html -[2]:http://www.infoworld.com/article/2610749/linux/suse-open-sources-live-updater-for-linux-kernel.html -[3]:https://lwn.net/Articles/596854/ -[4]:http://www.infoworld.com/article/2838421/linux/suse-linux-enterprise-12-goes-light-on-docker-heavy-on-reliability.html -[5]:https://github.com/dynup/kpatch -[6]:https://lwn.net/Articles/597123/ -[7]:http://lkml.iu.edu/hypermail/linux/kernel/1411.0/04020.html \ No newline at end of file diff --git a/translated/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md b/translated/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md new file mode 100644 index 0000000000..7cf0618bb1 --- /dev/null +++ b/translated/talk/20141125 Four ways Linux is headed for no-downtime kernel patching.md @@ -0,0 +1,54 @@ +四招搞定Linux内核热补丁 +================================================================================ +![Credit: Shutterstock](http://images.techhive.com/images/article/2014/10/patch_f-100526950-primary.idge.jpeg) +Credit: Shutterstock + +多种技术在竞争成为实现inux内核热补丁的最优方案。 +没人喜欢重启机器,尤其是涉及到一个内核问题的最新补丁程序。 +为达到不重启的目的,目前有3个项目在朝这方面努力,将为大家提供对内核进行运行时打热补丁的机制,这样就可以做到完全不重启机器。 + +### Ksplice项目 ### + +首先要介绍的项目是Ksplice,它是热补丁技术的创始者,并于2008年建立了与项目同名的公司。Ksplice在替换新内核时,不需要预先修改;只需要一个diff文件,将内核的修改点列全即可。Ksplice公司免费提供软件,但技术支持是需要收费的,目前能够支持大部分常用的Linux发行版本。 + +但在2011年[Oracle收购了这家公司][1]后,情况发生了变化。 这项功能被合入到Oracle的Linux发行版本中,且只对Oralcle的版本提供技术更新。 这就导致,其他内核hacker们开始寻找替代Ksplice的方法,以避免缴纳Oracle税。 + +### Kgraft项目 ### + +2014年2月,Suse提供了一个很好的解决方案:[Kgraft][2],该技术以GPLv2/GPLv3混合许可证发布,且Suse不会将其作为一个专有的实现。Kgraft被[提交][3]到Linux内核主线,很有可能被内核主线采用。目前Suse已经把此技术集成到[Suse Linux Enterprise Server 12][4]。 + +Kgraft和Ksplice在工作原理上很相似,都是使用一组diff文件来计算内核中需要修改的部分。但与Ksplice不同的是,Kgraft在做替换时,不需要完全停止内核。 在打补丁时,正在运行的函数可以先使用老版本中对应的部分,当补丁打完后就可以切换新的版本。 + +### Kpatch项目 ### + +Red Hat也提出了他们的内核热补丁技术。同样是在今年年初 -- 与Suse在这方面的工作差不多 -- [Kpatch][5]的工作原理也和Kgraft相似。 + +主要的区别点在于,正如Red Hat的Josh Poimboeuf[总结][6]的那样,Kpatch不能将内核调用重定向到老版本。相反,它会等待所有函数调用都停止时,再切换到新内核。Red Hat的工程师认为这种方法更为安全,且更容易维护,缺点就是在打补丁的过程中会带来更大的延迟。 + +和Kgraft一样,Kpatch不仅仅能在Red Hat的发行版本上可以使用,同时也被提交到了内核主线,作为一个可能的候选。 坏消息是Red Hat还未将此技术集成到产品中。 它只是被合入到了Red Hat Enterprise Linux 7的技术预览版中。 + +### ...也许 Kgraft + Kpatch更合适? ### + +Red Hat的工程师Seth Jennings在2014年11月初,提出了[第四种解决方案][7]。将Kgraft和Kpatch结合起来, 补丁包用这两种方式都可以。在新的方法中,Jennings提出,“热补丁核心为其他内核模块提供了热补丁的注册机制”, 通过这种方法,打补丁的过程 -- 更准确的说,如何处理运行时内核调用 --可以被更加有序的进行。 + +这项新建议也意味着两个方案都还需要更长的时间,才能被linux内核正式采纳。尽管Suse步子迈得更快,并把Kgraft应用到了最新的enterprise版本中。让我们也关注一下Red Hat和Linux官方近期的动态。 + + +-------------------------------------------------------------------------------- + +via: http://www.infoworld.com/article/2851028/linux/four-ways-linux-is-headed-for-no-downtime-kernel-patching.html + +作者:[Serdar Yegulalp][a] +译者:[coloka](https://github.com/coloka) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.infoworld.com/author/Serdar-Yegulalp/ +[1]:http://www.infoworld.com/article/2622437/open-source-software/oracle-buys-ksplice-for-linux--zero-downtime--tech.html +[2]:http://www.infoworld.com/article/2610749/linux/suse-open-sources-live-updater-for-linux-kernel.html +[3]:https://lwn.net/Articles/596854/ +[4]:http://www.infoworld.com/article/2838421/linux/suse-linux-enterprise-12-goes-light-on-docker-heavy-on-reliability.html +[5]:https://github.com/dynup/kpatch +[6]:https://lwn.net/Articles/597123/ +[7]:http://lkml.iu.edu/hypermail/linux/kernel/1411.0/04020.html \ No newline at end of file From 938c6fb3946917506de88e748fc29c39163c9c5e Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Sun, 7 Dec 2014 16:39:04 +0800 Subject: [PATCH 096/158] translating --- ...Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md b/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md index f0dc970fd2..3892fb44dc 100644 --- a/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md +++ b/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md @@ -1,3 +1,5 @@ +Translating-----geekpi + Official Ubuntu 14.10 ‘Utopic Unicorn’ T-Shirts Now Available to Buy ================================================================================ ![ubuntu-tshirt-runner](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/ubuntu-tshirt-runner.jpg) From 9f0f5ca11070cc542619aa74b74f834c5a6d9116 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Sun, 7 Dec 2014 17:43:57 +0800 Subject: [PATCH 097/158] translated --- ...c Unicorn T-Shirts Now Available to Buy.md | 36 ------------------- ...c Unicorn T-Shirts Now Available to Buy.md | 34 ++++++++++++++++++ 2 files changed, 34 insertions(+), 36 deletions(-) delete mode 100644 sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md create mode 100644 translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md diff --git a/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md b/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md deleted file mode 100644 index 3892fb44dc..0000000000 --- a/sources/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md +++ /dev/null @@ -1,36 +0,0 @@ -Translating-----geekpi - -Official Ubuntu 14.10 ‘Utopic Unicorn’ T-Shirts Now Available to Buy -================================================================================ -![ubuntu-tshirt-runner](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/ubuntu-tshirt-runner.jpg) - -**For a while it looked like an official mascot t-shirt to accompany the release of Ubuntu 14.10 would be as rare as the Unicorn fronting it. But, today, the Canonical Store was finally furnished with the fan-favourite merch item.** - -The shirt is available to buy in either ‘dusk blue’ (men’s fit) or ‘hot pink’ (women’s fit), but aesthetic and form aside the design is the same. Each shirt is emblazoned with the custom origami ‘Utopic Unicorn’ emblem designed by Canonical. On the reverse of each shirt is the Ubuntu logotype and the words “Utopic Unicorn 14.10“, helping you promote the OS from the back as well as the front — I like it! - -![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/unicorn-t-shirt.jpg) - -Available in small to XX-Large for men’s, and women’s sizes spanning 8-10 through 14-16, each t-shirt is priced at £11 in the UK, $17.45 in the US and €13.42 in Europe. A little higher than previous years and, as ever, minus postage/shipping and packaging. - -- [Buy Men’s Ubuntu 14.10 T-Shirt][1] - -- [Buy Women’s Ubuntu 14.10 T-Shirt][2] - -Mascot t-shirts have been a staple of each Ubuntu release since as far back as version 8.04 Hardy Heron though they typically see release prior to the OS itself. - -If you’re not a fan of this particular release you’ll find a limited number of older mascot-matched merchandise still available to buy and at a reduced price. So if you’d rather strut your stuff with a Salamander, promote a Pangolin or look tahr-iffic in a Trusty design, be sure to check out [the Sale section][3]. - --------------------------------------------------------------------------------- - -via: http://www.omgubuntu.co.uk/2014/12/last-ubuntu-14-10-unicorn-t-shirts-now-available - -作者:[Joey-Elijah Sneddon][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:https://plus.google.com/117485690627814051450/?rel=author -[1]:http://shop.canonical.com/product_info.php?products_id=1153 -[2]:http://shop.canonical.com/product_info.php?products_id=1159 -[3]:http://shop.canonical.com/index.php?cPath=29 \ No newline at end of file diff --git a/translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md b/translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md new file mode 100644 index 0000000000..d0471912e1 --- /dev/null +++ b/translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md @@ -0,0 +1,34 @@ +官方的Ubuntu 14.10 ‘乌托邦的独角兽’ T恤现在可以购买了 +================================================================================ +![ubuntu-tshirt-runner](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/ubuntu-tshirt-runner.jpg) + +**有一段时间,一件看起来像官方吉祥物的T恤与Ubuntu 14.10 一起发布是很稀少的。但是,今天Canonical商店终于上架了粉丝喜欢的商品。** + +现在有两种T恤,一种是‘dusk blue’(男士版本)或者‘hot pink’(女士版本),但是审美与设计的形式是相同的。每种T恤印有由Canonical定制设计的折纸型的‘乌托邦的独角兽’。每件衬衫的背面是Ubuntu的标识以及含有“Utopic Unicorn 14.10“文字,从前到后帮你推广系统-我喜欢! + +![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/unicorn-t-shirt.jpg) + +男士的尺寸有从S到XXL, 女士的尺寸有8-10与14-16,每件T恤在英国的价格是£11,美国的价格是$17.45,欧洲的价格是$17.45。这个价格较往年高一点,与以往一样这是减去了运费和包装的费用。 + +- [购买男士的 Ubuntu 14.10 T恤][1] + +- [购买女士的 Ubuntu 14.10 T恤][2] + +吉祥物T恤已经成为自Ubuntu 8.04 Hardy Heron后每个Ubuntu发布的传统,虽然它一般在系统发布前发布。 + +如果你不是特定版本的粉丝,你会发现可以购买的老版本吉祥物商品的数量有限且降价出售。如果你想在你的衬衫上印一条蝾螈,推广穿山甲或者塔尔羊,可以在[出售页面][3]看看。 + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/last-ubuntu-14-10-unicorn-t-shirts-now-available + +作者:[Joey-Elijah Sneddon][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:http://shop.canonical.com/product_info.php?products_id=1153 +[2]:http://shop.canonical.com/product_info.php?products_id=1159 +[3]:http://shop.canonical.com/index.php?cPath=29 \ No newline at end of file From 20ccb6b22d9ec90faaaf62034e84222eab39ba81 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 7 Dec 2014 22:34:51 +0800 Subject: [PATCH 098/158] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0translated?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @JonathanKang --- ...w to Install and Setup My Weather Indicator in Ubuntu 14.10.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md (100%) diff --git a/sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md b/translated/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md similarity index 100% rename from sources/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md rename to translated/tech/20141029 How to Install and Setup My Weather Indicator in Ubuntu 14.10.md From 6ed2cc9fdb86bfb357873c681462ea8bff035806 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 7 Dec 2014 22:49:02 +0800 Subject: [PATCH 099/158] PUB:20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy @geekpi --- ...0 Utopic Unicorn T-Shirts Now Available to Buy.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename {translated/news => published}/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md (66%) diff --git a/translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md b/published/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md similarity index 66% rename from translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md rename to published/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md index d0471912e1..4f5c49949d 100644 --- a/translated/news/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md +++ b/published/20141204 Official Ubuntu 14.10 Utopic Unicorn T-Shirts Now Available to Buy.md @@ -1,20 +1,20 @@ -官方的Ubuntu 14.10 ‘乌托邦的独角兽’ T恤现在可以购买了 +Ubuntu 14.10 ‘乌托邦的独角兽’官方 T 恤开始发售 ================================================================================ ![ubuntu-tshirt-runner](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/ubuntu-tshirt-runner.jpg) -**有一段时间,一件看起来像官方吉祥物的T恤与Ubuntu 14.10 一起发布是很稀少的。但是,今天Canonical商店终于上架了粉丝喜欢的商品。** +**Ubuntu 14.10 发布以来,很少能见到随同发布的带有官方吉祥物的 T 恤。不过今天 Canonical 商店终于上架了这件粉丝喜欢的商品。** -现在有两种T恤,一种是‘dusk blue’(男士版本)或者‘hot pink’(女士版本),但是审美与设计的形式是相同的。每种T恤印有由Canonical定制设计的折纸型的‘乌托邦的独角兽’。每件衬衫的背面是Ubuntu的标识以及含有“Utopic Unicorn 14.10“文字,从前到后帮你推广系统-我喜欢! +现在有两种T恤,一种是‘dusk blue’(男士版本)或者‘hot pink’(女士版本),但是审美与设计的形式是相同的。每种T恤印有由Canonical定制设计的折纸型的‘乌托邦的独角兽’。每件衬衫的背面是Ubuntu的标识以及含有“Utopic Unicorn 14.10”文字,从前到后帮你推广系统-我喜欢! ![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/unicorn-t-shirt.jpg) -男士的尺寸有从S到XXL, 女士的尺寸有8-10与14-16,每件T恤在英国的价格是£11,美国的价格是$17.45,欧洲的价格是$17.45。这个价格较往年高一点,与以往一样这是减去了运费和包装的费用。 +男士的尺寸有从S到XXL, 女士的尺寸有8-10与14-16,每件T恤在英国的价格是£11,美国的价格是$17.45,欧洲的价格是$17.45。这个价格较往年高一点,与以往一样这是减去了运费和包装的费用。 - [购买男士的 Ubuntu 14.10 T恤][1] - [购买女士的 Ubuntu 14.10 T恤][2] -吉祥物T恤已经成为自Ubuntu 8.04 Hardy Heron后每个Ubuntu发布的传统,虽然它一般在系统发布前发布。 +吉祥物 T 恤已经成为自Ubuntu 8.04 Hardy Heron后每个Ubuntu版本发布的传统,虽然它一般在系统发布前发布。 如果你不是特定版本的粉丝,你会发现可以购买的老版本吉祥物商品的数量有限且降价出售。如果你想在你的衬衫上印一条蝾螈,推广穿山甲或者塔尔羊,可以在[出售页面][3]看看。 @@ -24,7 +24,7 @@ via: http://www.omgubuntu.co.uk/2014/12/last-ubuntu-14-10-unicorn-t-shirts-now-a 作者:[Joey-Elijah Sneddon][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From b6ea28565489965b2e92b233b48c2493f4200f12 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 7 Dec 2014 23:12:29 +0800 Subject: [PATCH 100/158] PUB:20140901 How to use on-screen virtual keyboard on Linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @forsil 翻译的不错。就是1、你没在文末写你的译者名称;2、请使用中文标点。 --- ...use on-screen virtual keyboard on Linux.md | 129 +++++++++++++++++ ...use on-screen virtual keyboard on Linux.md | 130 ------------------ 2 files changed, 129 insertions(+), 130 deletions(-) create mode 100644 published/20140901 How to use on-screen virtual keyboard on Linux.md delete mode 100644 translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md diff --git a/published/20140901 How to use on-screen virtual keyboard on Linux.md b/published/20140901 How to use on-screen virtual keyboard on Linux.md new file mode 100644 index 0000000000..9c9123d8d9 --- /dev/null +++ b/published/20140901 How to use on-screen virtual keyboard on Linux.md @@ -0,0 +1,129 @@ +如何在 Linux 中使用屏幕键盘 +================================================================================ + +屏幕键盘可以作为实体键盘输入的替代方案。在某些时候,屏幕键盘显得非常需要。 比如, 你的键盘刚好坏了;你的机器太多,没有足够的键盘;你的机器没有多余的接口来连接键盘;你是个残疾人,打字有困难;或者你正在组建基于触摸屏的信息服务站。 + +屏幕键盘也可以作为一种防范实体键盘记录器的保护手段,键盘记录器会悄悄记录按键来获取密码等敏感信息。一些网上银行页面实际上会强制你使用屏幕键盘来增强交易的安全性。 + +在 linux 中有几个可用的开源键盘软件, 比如 [GOK (Gnome 的屏幕键盘)][1],[kvkbd][2],[onboard][3],[Florence][4]。 + +我会在这个教程中集中讲解 Florence, 告诉你**如何用 Florence 设置一个屏幕键盘**。 Florence 有着布局方案灵活、输入法多样、自动隐藏等特性。作为教程的一部分,我也将会示范**如何只使用鼠标来操作 Ubuntu 桌面**。 + +### 在 Linux 中安装 Florence 屏幕键盘 ### + +幸运的是,Florence 存在于大多数 Linux 发行版的基础仓库中。 + +在 Debian,Ubuntu 或者 Linux Mint 中: + + $ sudo apt-get install florence + +在 Fedora,CentOS 或者 RHEL (CentOS/RHEL 需要[EPEL 仓库][5]) 中: + + $ sudo yum install florence + +在 Mandriva 或者 Mageia 中: + + $ sudo urpmi florence + +对于 Archlinux 用户,Florence 存在于 [AUR][6] 中。 + +### 配置和加载屏幕键盘 ### + +当你安装好 Florence 之后,你只需要简单的输入以下命令就能加载屏幕键盘: + + $ florence + +默认情况下,屏幕键盘总是在其他窗口的顶部,让你能够在任意活动的窗口上进行输入。 + +在键盘的左侧点击工具按键来改变 Florence 的默认配置。 + +![](https://farm4.staticflickr.com/3923/14873468448_216c794244_z.jpg) + +在 Florence 的 "样式 (style)" 菜单中,你能够自定义键盘样式,启用/取消声音效果。 + +![](https://farm6.staticflickr.com/5563/14873470478_de81aac39b_o.png) + +在“窗口 (window)”菜单中,你能够调整键盘背景透明度、按键不透明度,以及控制键盘比例、工具栏、尺寸和总是置顶等特性。如果你的桌面分辨率不是非常高,透明度调整就显得非常有用,因为屏幕键盘会挡住其他窗口。在这个例子中,我切换到透明键盘,并且设置不透明度为 50%。 + +![](https://farm6.staticflickr.com/5556/15060050245_1534127d1c_z.jpg) + +在“行为 (behaviour)”菜单中,你能够改变输入方法。Florence 支持几种不同的输入法: 鼠标 (mouse)、触摸屏 (touch screen)、计时器 (timer) 和漫步 (ramble)。鼠标输入是默认输入法。最后的两种输入法不需要按鼠标键。 计时器输入通过将指针滞留在按键上一定时间来触发按键。漫步输入的原理跟**计时器**输入差不多,但是经过训练和灵巧使用,能够比**计时器**输入更加迅速。 + +![](https://farm4.staticflickr.com/3843/14873384900_82baef4c22_o.png) + +在“布局 (layout)”菜单中,你能够改变键盘布局。比如,你能够扩展键盘布局来增加导航键,数字键和功能键。 + +![](https://farm6.staticflickr.com/5556/15057015461_e611b6ee25_z.jpg) + +### 只使用鼠标来操作 Ubuntu 桌面 + +我将示范如何将 Florence 集成到 Ubuntu 桌面中,然后我们不需要实体键盘就能够进入桌面。这个教程使用 LightDM (Ubuntu 的默认显示管理器) 来进入 Ubuntu,其他桌面环境也能设置类似的环境。 + +初始设置时需要实体键盘,但是一旦设置完成,你只需要一个鼠标,而不是键盘。 + +当你启动 Ubuntu 桌面时,启动程序最后会停在显示管理器 (或者登录管理器) 的欢迎界面。在这个界面上你需要输入你的登录信息。默认的情况下,Ubuntu 桌面会使用 LightDM 显示管理器和 Unity 欢迎界面。如果没有实体键盘, 你就不能在登录界面输入用户名和密码。 + +为了能够在登录界面加载屏幕键盘,安装配备了屏幕键盘支持的 GTK+ 欢迎界面。 + + $ sudo apt-get install lightdm-gtk-greeter + +然后用编辑器打开欢迎界面配置文件 (/etc/lightdm/lightdm-gtk-greeter.conf),指定 Florence 作为屏幕键盘来使用。如果你愿意,你也能够使用 Ubuntu 的默认屏幕键盘 onboard 来代替 Florence。 + + $ sudo vi /etc/lightdm/lightdm-gtk-greeter.conf + +---------- + + [greeter] + keyboard=florence --no-gnome --focus & + +![](https://farm6.staticflickr.com/5554/15056999361_180dc724b2_z.jpg) + +重启 Ubuntu 桌面,然后看看你是否能够在登录界面使用屏幕键盘。 + +启动之后当你看到 GTK+ 欢迎界面时, 点击右上角的人形符号。你会看到“使用屏幕键盘 (On Screen Keyboard)”菜单选项,如下: + +![](https://farm6.staticflickr.com/5554/14873314399_e48bd6eb84_z.jpg) + +点击这个选项,屏幕键盘就会在登录界面弹出。现在你应该能够用屏幕键盘来登录了。 + +![](https://farm6.staticflickr.com/5572/14873460568_02480cccb7_z.jpg) + +对于 GDM2/GDM3 用户怎么在 GDM2/GDM3 界面上使用屏幕键盘,Florence 官方网页提供了 [文档 (documentation)][7]。 + +Ubuntu 桌面完全无键盘化的最后一步是让屏幕键盘在登录后自动启动,这样我们在登录后能够不使用实体键盘就操作桌面,为了做到这一点,创建以下桌面文件: + + $ mkdir -p ~/.config/autostart + $ vi ~/.config/autostart/florence.desktop + +---------- + + [Desktop Entry] + Type=Application + Name=Virtual Keyboard + Comment=Auto-start virtual keyboard + Exec=florence --no-gnome + +这样可以让你在登录到桌面的时候就看到屏幕键盘。 + +![](https://farm4.staticflickr.com/3873/15037038376_f8359f3a65_z.jpg) + +希望这个教程对你有用。与你所看到的一样,Florence 是非常强大的屏幕键盘,可以用于不同目的。请和我分享你使用屏幕键盘的经验。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/2014/08/onscreen-virtual-keyboard-linux.html + +作者:[Dan Nanni][a] +译者:[forsil](https://github.com/forsil) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:https://developer.gnome.org/gok/ +[2]:http://homepage3.nifty.com/tsato/xvkbd/ +[3]:https://launchpad.net/onboard +[4]:http://florence.sourceforge.net/ +[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html +[6]:https://aur.archlinux.org/packages/florence/ +[7]:http://florence.sourceforge.net/english/how-to.html \ No newline at end of file diff --git a/translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md b/translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md deleted file mode 100644 index a745f6703c..0000000000 --- a/translated/tech/20140901 How to use on-screen virtual keyboard on Linux.md +++ /dev/null @@ -1,130 +0,0 @@ - -如何在 Linux 中使用屏幕键盘 -================================================================================ - -屏幕键盘可以作为实体键盘输入的替代方案. 在某些时候,屏幕键盘显得非常需要. 比如, 你的键盘刚好坏了; 你的机器太多, 没有足够的键盘; 你的机器没有多余的接口来连接键盘; 你是个残疾人, 打字有困难; 或者你正在组建基于触摸屏的信息服务站. - -屏幕键盘也可以作为一种针对实体键盘背后记录按键来获取密码等敏感信息的情况的保护手段. 一些网上银行页面实际上会强制你使用屏幕键盘来增强交易的安全性. - -在linux 中有几个可用的开源键盘软件, 比如 [GOK (Gnome 的屏幕键盘)][1], [kvkbd][2], [onboard][3], [Florence][4]. - -我会在这个教程中集中讲解 Florence, 告诉你 ** 如何用 Florence 配置屏幕键盘 **. Florence 有着布局方案灵活, 输入法多样, 自动隐藏等特性. 作为教程的一部分, 我也将会示范 ** 如何只使用鼠标来操作 Ubuntu 桌面 **. - -### 在 Linux 中安装 Florence 屏幕键盘 ### - -幸运的是, Florence 存在于大多数 Linux 发行版的基础仓库中. - -在 Debian, Ubuntu 或者 Linux Mint 中: - - $ sudo apt-get install florence - -在 Fedora, CentOS 或者 RHEL (CentOS/RHEL 需要 [EPEL 仓库][5]) 中: - - $ sudo yum install florence - -在 Mandriva 或者 Mageia 中: - - $ sudo urpmi florence - -对于 Archlinux 用户, Florence 存在于 [AUR][6] 中. - -### 配置和加载屏幕键盘 ### - -当你安装好 Florence 之后, 你只需要简单的输入以下命令就能加载屏幕键盘: - - $ florence - -默认情况下, 屏幕键盘总是在其他窗口的顶部, 让你能够在任意活动窗口上进行输入. - -在键盘的左侧点击工具按键来改变 Florence 的默认配置. - -![](https://farm4.staticflickr.com/3923/14873468448_216c794244_z.jpg) - -在 Florence 的 "样式 (style)" 菜单中, 你能够自定义键盘样式, 启用/取消声音效果. - -![](https://farm6.staticflickr.com/5563/14873470478_de81aac39b_o.png) - -在 "窗口 (window)" 菜单中, 你能够调整键盘背景透明度, 按键不透明度, 以及控制键盘比例, 工具栏, 大小和总是置顶等特性. 如果你的分辨率不是非常高, 透明度调整就显得非常有用. 因为屏幕键盘会挡住其他窗口. 在这个例子中, 我切换到透明键盘, 并且设置不透明度为 50%. - -![](https://farm6.staticflickr.com/5556/15060050245_1534127d1c_z.jpg) - -在 "行为 (behaviour)" 菜单中, 你能够改变输入方法. Florence 支持几种不同的输入法: 鼠标 (mouse), 触摸屏 (touch screen), 计时器 (timer) 和漫步 (ramble). 鼠标输入是默认输入法. 最后的两种输入法不需要按键. 计时器输入通过将指针滞留在按键上一定时间来触发按键. 漫步输入的原理跟 ** 计时器 ** 输入差不多, 但是经过训练和灵巧使用, 能够比 ** 计时器 ** 输入更加迅速. - -![](https://farm4.staticflickr.com/3843/14873384900_82baef4c22_o.png) - -在 "布局 (layout)" 菜单中, 你能够改变键盘布局. 比如, 你能够扩展键盘布局来增加导航键, 数字键和功能键. - -![](https://farm6.staticflickr.com/5556/15057015461_e611b6ee25_z.jpg) - -### 只使用鼠标来操作 Ubuntu 桌面 - -我将示范如何将 Florence 集成到 Ubuntu 桌面中, 然后我们不需要实体键盘就能够进入桌面. 这个教程使用 LightDM (Ubuntu 的默认显示管理器) 来进入 Ubuntu, 而类似的环境也能够设置为其他桌面环境. - -初始设置需要实体键盘, 但是一旦设置完成, 你只需要一个鼠标, 而不是键盘. - -当你启动 Ubuntu 桌面时, 启动程序最后会停在显示管理器 (或者登录管理器) 的问候界面. 在这个界面上你需要输入你的登录信息. 默认的情况下, Ubuntu 桌面会使用 LightDM 显示管理器和 Unity 问候界面. 如果没有实体键盘, 你就不能在登录界面输入用户名和密码. - -为了能够在登录界面加载屏幕键盘, 安装配备了屏幕键盘支持的 GTK+ 问候界面. - - $ sudo apt-get install lightdm-gtk-greeter - -然后用编辑器打开问候界面配置文件 (/etc/lightdm/lightdm-gtk-greeter.conf), 指定 Florence 作为屏幕键盘来使用. 你也能够使用 Ubuntu 的默认屏幕键盘 onboard 来代替 Florence. - - $ sudo vi /etc/lightdm/lightdm-gtk-greeter.conf - ----------- - - [greeter] - keyboard=florence --no-gnome --focus & - -![](https://farm6.staticflickr.com/5554/15056999361_180dc724b2_z.jpg) - -重启 Ubuntu 桌面, 然后检查你是否能够在登录界面使用屏幕键盘. - -启动之后当你看到 GTK+ 问候登录界面时, 点击右上角的人形符号. 你会看到 "使用屏幕键盘 (On Screen Keyboard)" 菜单选项, 如下 - -![](https://farm6.staticflickr.com/5554/14873314399_e48bd6eb84_z.jpg) - -点击这个选项, 屏幕键盘就会在登录界面弹出. 现在你应该能够用屏幕键盘来登录了. - -![](https://farm6.staticflickr.com/5572/14873460568_02480cccb7_z.jpg) - -对于 GDM2/GDM3 用户怎么在 GDM2/GDM3 界面上使用屏幕键盘, Florence 官方网页提供了 [文档 (documentation)][7]. - -Ubuntu 桌面完全少键盘化的最后一步是让屏幕键盘在登录后自动启动, 然后我们在登录后能够不使用实体键盘就操作桌面. 为了做到这一点, 创建以下桌面文件. - - $ mkdir -p ~/.config/autostart - $ vi ~/.config/autostart/florence.desktop - ----------- - - [Desktop Entry] - Type=Application - Name=Virtual Keyboard - Comment=Auto-start virtual keyboard - Exec=florence --no-gnome - -这样可以让你在登录到桌面的时候就看到屏幕键盘. - -![](https://farm4.staticflickr.com/3873/15037038376_f8359f3a65_z.jpg) - -希望这个教程对你有用. 与你所看到的一样, Florence 是非常强大的屏幕键盘, 可以用于不同目的. 让我知道你是否在任何情况下使用屏幕键盘. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/2014/08/onscreen-virtual-keyboard-linux.html - -作者:[Dan Nanni][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:https://developer.gnome.org/gok/ -[2]:http://homepage3.nifty.com/tsato/xvkbd/ -[3]:https://launchpad.net/onboard -[4]:http://florence.sourceforge.net/ -[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html -[6]:https://aur.archlinux.org/packages/florence/ -[7]:http://florence.sourceforge.net/english/how-to.html \ No newline at end of file From 2205ebbc7fe5322d963787e03992e2be49f9b620 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 7 Dec 2014 23:40:38 +0800 Subject: [PATCH 101/158] PUB:20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all @GOLinux --- ...s--How to fix ImportError--No module named scapy.all.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) rename {translated/tech => published}/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md (71%) diff --git a/translated/tech/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md b/published/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md similarity index 71% rename from translated/tech/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md rename to published/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md index 121a9deada..3f09b62947 100644 --- a/translated/tech/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md +++ b/published/20141125 Linux FAQs with Answers--How to fix ImportError--No module named scapy.all.md @@ -1,10 +1,11 @@ -Linux有问必答——如何修复“ImportError: No module named scapy.all” +Linux有问必答:如何修复“ImportError: No module named scapy.all” ================================================================================ > **问题**:当我运行一个Python应用程序时,出现了这个提示消息“ImportError: No module named scapy.all”。我怎样才能修复这个导入错误呢? -[Scapy][1]是一个用Python写的灵活包生成和嗅探程序。使用Scapy,你可以完成创建专有包,发送上线,从线上或转储文件中读取包,转换包等工作。使用Scapy的通用包处理能力,你可以很容易地完成像SYN扫描、TCP路由跟踪以及OS指纹打印之类的工作。你也可以通过导入,将Scapy整合到其它工具中。 +[Scapy][1]是一个用Python写的灵活的数据包生成及嗅探程序。使用Scapy,你可以完成创建任意数据包并发送到网络上、从网络上或转储文件中读取数据包、转换数据包等工作。使用Scapy的通用包处理能力,你可以很容易地完成像SYN扫描、TCP路由跟踪以及OS指纹检测之类的工作。你也可以通过导入,将Scapy整合到其它工具中。 该导入错误表明:你还没有在你的Linux系统上安装Scapy。下面介绍安装方法。 + ### 安装Scapy到Debian, Ubuntu或Linux Mint ### $ sudo apt-get install python-scapy @@ -30,7 +31,7 @@ Linux有问必答——如何修复“ImportError: No module named scapy.all” via: http://ask.xmodulo.com/importerror-no-module-named-scapy-all.html 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 36f58e07b0504b077e9d3a5e1f9e8068e4f65719 Mon Sep 17 00:00:00 2001 From: disylee Date: Mon, 8 Dec 2014 09:46:36 +0800 Subject: [PATCH 102/158] Update 20141203 Docker--Present and Future.md by disylee --- sources/talk/20141203 Docker--Present and Future.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/talk/20141203 Docker--Present and Future.md b/sources/talk/20141203 Docker--Present and Future.md index a3d101b56c..77283ba702 100644 --- a/sources/talk/20141203 Docker--Present and Future.md +++ b/sources/talk/20141203 Docker--Present and Future.md @@ -1,3 +1,4 @@ +disylee占个坑~ Docker: Present and Future ================================================================================ ### Docker - the story so far ### @@ -153,4 +154,4 @@ via: http://www.infoq.com/articles/docker-future [38]:https://coreos.com/ [39]:http://www.projectatomic.io/ [40]:https://github.com/coreos/fleet -[41]:https://github.com/coreos/etcd \ No newline at end of file +[41]:https://github.com/coreos/etcd From 40573bc7c61f4100059f12bb81fda55f993cb148 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Mon, 8 Dec 2014 11:23:55 +0800 Subject: [PATCH 103/158] =?UTF-8?q?20141208-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r Radar System from Windows XP to Linux.md | 47 +++++++++++++++++++ ...g Started With Ubuntu 14.04 (PDF Guide).md | 22 +++++++++ 2 files changed, 69 insertions(+) create mode 100644 sources/news/20141208 U.S. Marine Corps Wants to Change OS for Radar System from Windows XP to Linux.md create mode 100644 sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md diff --git a/sources/news/20141208 U.S. Marine Corps Wants to Change OS for Radar System from Windows XP to Linux.md b/sources/news/20141208 U.S. Marine Corps Wants to Change OS for Radar System from Windows XP to Linux.md new file mode 100644 index 0000000000..020e821df9 --- /dev/null +++ b/sources/news/20141208 U.S. Marine Corps Wants to Change OS for Radar System from Windows XP to Linux.md @@ -0,0 +1,47 @@ +U.S. Marine Corps Wants to Change OS for Radar System from Windows XP to Linux +================================================================================ +**A new radar system has been sent back for upgrade** + +![](http://i1-news.softpedia-static.com/images/news2/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756-2.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756-3.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756-4.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756-5.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756-6.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756-7.jpg) + +> When it comes to stability and performance, nothing can really beat Linux. This is why the U.S. Marine Corps leaders have decided to ask Northrop Grumman Corp. Electronic Systems to change the operating system of the newly delivered Ground/Air Task-Oriented Radar (G/ATOR) from Windows XP to Linux. + +The Ground/Air Task-Oriented Radar (G/ATOR) system has been in the works for many years and it's very likely that when the project was started, Windows XP could have been considered the logical choice. In the mean time, things changed. Microsoft has pulled the support for Windows XP and very few entities still use it. The operating system is either upgraded or replaced. In this case, Linux is the logical choice, especially since the replacement cost are probably much smaller than an eventual upgrade. + +It's interesting to note that the Ground/Air Task-Oriented Radar (G/ATOR) was just delivered to the U.S. Marine Corps, but the company that built it chose to keep that aging operating system. Someone must have noticed the fact that it was a poor decision and the chain of command was informed of the problems that might have appeared. + +### G/ATOR radar software will be Linux-based ### + +Unix systems, like BSD-based or Linux-based OSes, are usually found in critical areas and technologies that can't fail, under any circumstances. That's why most of the servers out there are running Linux servers, for example. Having a radar system with an operating systems that is very unlikely to crash seems to fit the bill perfectly. + +"Officials of the Marine Corps Systems Command at Quantico Marine Base, Va., announced a $10.2 million contract modification Wednesday to the Northrop Grumman Corp. Electronic Systems segment in Linthicum Heights, Md., to convert the Ground/Air Task-Oriented Radar (G/ATOR) operator command and control computer from Windows XP to Linux. The contract modification will incorporate a change order to switch the G/ATOR control computer from the Microsoft Windows XP operating system to a Defense Information Systems Agency (DISA)-compliant Linux operating system." + +'G/ATOR is an expeditionary, three-dimensional, short-to-medium-range multi-role radar system designed to detect low-observable targets with low radar cross sections such as rockets, artillery, mortars, cruise missiles, and UAVs," reads the entry on [militaryaerospace.com][1]. + +This piece of military technology, the Ground/Air Task-Oriented Radar (G/ATOR) was first contracted from the Northrop Grumman Corp. back in 2005, so it's easy to understand why the US Marines might want to hurry this up. No time frame has been proposed for the switch. + +视频链接:[http://youtu.be/H2ppl4x-eu8][2] + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/U-S-Marine-Corps-Want-to-Change-OS-for-Radar-System-from-Windows-XP-to-Linux-466756.shtml + +作者:[Silviu Stahie][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/silviu-stahie +[1]:http://www.militaryaerospace.com/articles/2014/12/gator-linux-software.html +[2]:http://youtu.be/H2ppl4x-eu8 \ No newline at end of file diff --git a/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md b/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md new file mode 100644 index 0000000000..117ca40b1b --- /dev/null +++ b/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md @@ -0,0 +1,22 @@ +Getting Started With Ubuntu 14.04 (PDF Guide) +================================================================================ +Become familiar with everyday tasks such as surfing the web, listening to music and scanning documents. + +Enjoy this comprehensive beginners guide for the Ubuntu operating system. With easy-to-follow instructions, this guide is suitable for all levels of experience. Discover the potential of your Ubuntu system without getting bogged down with technical details. + +- [**Getting Started With Ubuntu 14.04 (PDF Guide)**][1] + +![](http://img.tradepub.com/free/w_ubun06/images/w_ubun06c.gif) + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/getting-started-with-ubuntu-14-04-pdf-guide.html + +作者:[ruchi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]:http://ubuntugeek.tradepub.com/free/w_ubun06/ \ No newline at end of file From 98c3c3272466e00d1bfbc0270253d4ae55803890 Mon Sep 17 00:00:00 2001 From: su-kaiyao <1250471161@qq.com> Date: Mon, 8 Dec 2014 14:30:03 +0800 Subject: [PATCH 104/158] su-kaiyao translating --- ...0141205 10 free Commands to Check Memory Usage in Linux.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md b/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md index a5be8bac2c..510e4d571a 100644 --- a/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md +++ b/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md @@ -1,3 +1,5 @@ +[su-kaiyao]translating + 10 ‘free’ Commands to Check Memory Usage in Linux ================================================================================ **Linux** is one of the most popular open source operating system and comes with huge set of commands. The most important and single way of determining the total available space of the **physical memory** and **swap memory** is by using “**free**” command. @@ -126,4 +128,4 @@ via: http://www.tecmint.com/check-memory-usage-in-linux/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[a]:http://www.tecmint.com/author/admin/ \ No newline at end of file +[a]:http://www.tecmint.com/author/admin/ From 177246828d3701a6d12c014511e6dd716d867df2 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Mon, 8 Dec 2014 15:59:26 +0800 Subject: [PATCH 105/158] =?UTF-8?q?20141208-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Nathive--A libre software image editor.md | 32 ++++++ ...e and webserver) on Ubuntu 14.10 Server.md | 106 ++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 sources/share/20141208 Nathive--A libre software image editor.md create mode 100644 sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md diff --git a/sources/share/20141208 Nathive--A libre software image editor.md b/sources/share/20141208 Nathive--A libre software image editor.md new file mode 100644 index 0000000000..8252019790 --- /dev/null +++ b/sources/share/20141208 Nathive--A libre software image editor.md @@ -0,0 +1,32 @@ +Nathive – A libre software image editor +================================================================================ +Nathive is a libre software image editor, similar to Adobe Photoshop, Corel Photo-Paint or GIMP, but focused on usability, logic and providing a smooth learning curve for everyone. The project runs in the GNOME desktop environment and anyone is welcome to collaborate on it with code, translations or ideas. + +This project is in beta phase, so it is an incomplete work, unfit for the end user yet. Until now the development was focused in laying down the application core and create easy dev tools, so for now we will focus on create new plugins, because there are obvious lacks yet. + +The intention is to achieve a professional image editor progressively without giving up initial usability. Nathive is written from scratch in Python using GTK+, and is designed to be simple, lightweight, and easy to install and use. + +### Install Nathive on ubuntu ### + +You need to download .deb package from [here][1] .Once you have deb package you can double click to install + +### Screenshots ### + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/1.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/2.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/3.png) + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/nathive-a-libre-software-image-editor.html + +作者:[ruchi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]:http://www.nathive.org/download \ No newline at end of file diff --git a/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md b/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md new file mode 100644 index 0000000000..dfb08bab3d --- /dev/null +++ b/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md @@ -0,0 +1,106 @@ +Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server +================================================================================ +Jetty provides a Web server and javax.servlet container, plus support for SPDY, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available for commercial use and distribution. + +Jetty is used in a wide variety of projects and products, both in development and production. Jetty can be easily embedded in devices, tools, frameworks, application servers, and clusters. See the Jetty Powered page for more uses of Jetty. + +### Jetty Features ### + +- Full-featured and standards-based +- Open source and commercially usable +- Flexible and extensible +- Small footprint +- Embeddable +- Asynchronous +- Enterprise scalable +- Dual licensed under Apache and Eclipse + +### Install Jetty9 on ubuntu 14.10 server ### + +#### Prerequisites #### + +You need to install Java before installing jetty server using the following command + + sudo apt-get install openjdk-8-jdk + +This will install it to /usr/lib/jvm/java-8-openjdk-i386. A symlink java-1.8.0-openjdk-i386 is created in the directory /usr/lib/jvm/. A symlink is also created at /usr/bin/java + +Now you need to download Jetty9 from [here][1] after downloading you need to extract using the following command + + $tar -xvf jetty-distribution-9.2.5.v20141112.tar.gz + +This unpacks the jetty-distribution-9.2.5.v20141112 and you need to Move the archive to /opt/jetty using the following command + + $mv jetty-distribution-9.2.5.v20141112 /opt/jetty + +You need to Create jetty user and make it the owner of /opt/jetty directory + + sudo useradd jetty -U -s /bin/false + + sudo chown -R jetty:jetty /opt/jetty + +#### Jetty Startup Script #### + +Copy the Jetty script to run as a service using the following command + + $ cp /opt/jetty/bin/jetty.sh /etc/init.d/jetty + +Now you need to create jetty settings file with the following content + + sudo vi /etc/default/jetty + +Add the following lines + + JAVA_HOME=/usr/bin/java + JETTY_HOME=/opt/jetty + NO_START=0 + JETTY_ARGS=jetty.port=8085 + JETTY_HOST=0.0.0.0 + JETTY_USER=jetty + +Save and exit the file + +You need to start jetty service using the following command + + sudo service jetty start + +You should see output similar to the following + + Starting Jetty: OK Mon Nov 24 11:55:48 GMT 2014 + +If you see the following error + +#### ** ERROR: JETTY_HOME not set, you need to set it or install in a standard location #### + +You need to make sure you have correct jetty home path in /etc/default/jetty file i.e JETTY_HOME=/opt/jetty + +You can test the jetty using the following URL + +It should now be running on port 8085! Visit in your browser http://serverip:8085 and you should see a Jetty screen. + +#### Jetty Service checking #### + +Verify and check your configuration with the following command + + sudo service jetty check + +Jetty automatically start on reboot using the following command + + sudo update-rc.d jetty defaults + +Reboot the server and test if Jetty starts automatically. + +To check which port Jetty is running or whether there are any conflicts with other programs for that port, run netstat -tln + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/install-jetty-9-java-servlet-engine-and-webserver-on-ubuntu-14-10-server.html + +作者:[ruchi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]:http://download.eclipse.org/jetty/stable-9/dist/ \ No newline at end of file From 1903cc9b554b5726305861934bcb6698e34a7319 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Mon, 8 Dec 2014 16:19:15 +0800 Subject: [PATCH 106/158] =?UTF-8?q?20141208-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...an image from the command line on Linux.md | 44 +++++++++++++++++++ ...port internal error reporting on Ubuntu.md | 42 ++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md create mode 100644 sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md b/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md new file mode 100644 index 0000000000..74732384d8 --- /dev/null +++ b/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md @@ -0,0 +1,44 @@ +Linux FAQs with Answers--How to crop an image from the command line on Linux +================================================================================ +> **Question**: I would like to get rid of white margins of an image file. Is there an easy way to crop an image file from the command line on Linux? + +When it comes to converting or editing images files on Linux, ImageMagick is undoubtedly one of the best known all-in-one image software. It boasts of a suite of command-line tools to display, convert, or manipulate more than 200 types of raster or vector image files, all from the command line. ImageMagick can be used for a variety of image editing tasks, such as converting file format, adding special effects, adding text, and transforming (resize, rotate, flip, crop) images. + +If you want to crop an image to trim its margins, you can use two command-line utilities that come with ImageMagick. If you haven't installed ImageMagick, follow [this guideline][1] to install it. + +In this tutorial, let's crop the following PNG image. We want to get rid of the right and bottom margins of the image, so that the chart will be centered. + +![](https://farm8.staticflickr.com/7562/15688242319_ed19aca3a2_z.jpg) + +First, identify the dimension (width and height) of the image file. You can use identify command for that. + + $ identify chart.png + +---------- + + chart.png PNG 1500x1000 1500x1000+0+0 8-bit DirectClass 31.7KB 0.000u 0:00.000 + +As shown above, the input image is 1500x1000px. + +Next, determine two things for image cropping: (1) the position at which the cropped image will start, and (2) the size of the cropped rectangle. + +In this example, let's assume that the cropped image starts at top left corner, more specifically at x=20px and y=10px, and that the size of a cropped image will be 1200x700px. + +The utility used to crop an image is convert. With "-crop" option, the convert command cuts out a rectangular region of an input image. + + $ convert chart.png -crop 1200x700+20+10 chart-cropped.png + +Given the input image chart.png, the convert command will store the cropped image as chart-cropped.png. + +![](https://farm8.staticflickr.com/7527/15872271461_401276e072_z.jpg) + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/crop-image-command-line-linux.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://ask.xmodulo.com/install-imagemagick-linux.html \ No newline at end of file diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md b/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md new file mode 100644 index 0000000000..11120fff9a --- /dev/null +++ b/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md @@ -0,0 +1,42 @@ +Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu +================================================================================ +> **Question**: On Ubuntu desktop, I often encounter a popup window, alerting that Ubuntu has experienced an internal error, and asking me to send an error report. This is bothering me as it keeps popping up for every application crash. How can I turn off the error reporting feature? + +Ubuntu desktop comes with Apport pre-installed, which is a system that catches applications crashes, unhandled exceptions or any non-crash application bugs, and automatically generates a crash report for debugging purposes. When an application crash or bug is detected, Apport alerts user of the event by showing a popup window and asking the user to submit a crash report. You will see messages like the following. + +- "Sorry, the application XXXX has closed unexpectedly." +- "Sorry, Ubuntu XX.XX has experienced an internal error." +- "System program problem detected." + +![](https://farm9.staticflickr.com/8635/15688551119_708b23b12a_z.jpg) + +If application crashes are recurring, frequent error reporting alerts can be disturbing. Or you may be worried that Apport can collect and upload any sensitive information of your Ubuntu system. Whatever the reason is, you may want to disable Apport's error reporting feature. + +### Disable Apport Error Reporting Temporarily ### + +If you want to disable Apport temporarily, use this command: + + $ sudo service apport stop + +Note that Apport will be enabled back after you boot your Ubuntu system. + +### Disable Apport Error Reporting Permanently ### + +To turn off Apport permanently, edit /etc/default/apport with a text editor, and change the content to the following. + + enabled=0 + +Now if you reboot your Ubuntu system, Apport will automatically be disabled. + +If you think you will never use Apport, another method is to simply remove it altogether. + + $ sudo apt-get purge apport + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/disable-apport-internal-error-reporting-ubuntu.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 \ No newline at end of file From 88a89be1346aee4188575b1c9fff28063c5ca8be Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Mon, 8 Dec 2014 18:00:37 +0800 Subject: [PATCH 107/158] Translating by ZTinoZ --- ...ands to Transfer Files or Folders in Linux.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 1d2ca00369..96a1948d97 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -4,7 +4,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ![](http://www.tecmint.com/wp-content/uploads/2013/10/SCP-Commands.png) -以下命令可以解读为:用“**username account**”“**复制 source file name**”到“**destination host**”上的“**destination folder**”里。 +以下命令可以解读为:用“**username account**”“**拷贝 source file name**”到“**destination host**”上的“**destination folder**”里。 #### SCP命令的基本语法 #### @@ -14,7 +14,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ### 用-v参数来提供SCP进程的详细信息 ### -不带参数的基本**SCP**命令会在后台复制文件,除非操作完成或者有错误出现,否则用户在界面上是看不到任何提示信息的。你可以用“**-v**”参数来在屏幕上打印出调试信息,这能帮助你调试连接、认证和配置的一些问题。 +不带参数的基本**SCP**命令会在后台拷贝文件,除非操作完成或者有错误出现,否则用户在界面上是看不到任何提示信息的。你可以用“**-v**”参数来在屏幕上打印出调试信息,这能帮助你调试连接、认证和配置的一些问题。 pungki@mint ~/Documents $ scp -v Label.pdf mrarianto@202.x.x.x:. @@ -40,9 +40,9 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 Bytes per second: sent 57766.4, received 46.0 debug1: Exit status 0 -### Provide modification times, access times, and modes from original files ### +### 从源文件获取修改时间、访问时间和模式 ### -The “**-p**” parameter will help you on this. An estimated time and the connection speed will appear on the screen. +“**-p**”参数会帮到把预计的时间和连接速度会显示在屏幕上。 pungki@mint ~/Documents $ scp -p Label.pdf mrarianto@202.x.x.x:. @@ -51,11 +51,11 @@ The “**-p**” parameter will help you on this. An estimated time and the conn mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 126.6KB/s 00:29 -### Make file transfer faster using -C parameter ### +### 用-C参数来让文件传输更快 ### -One of parameter that can faster your file transfer is “**-C**” parameter. The “**-C**” parameter will compress your files on the go. The unique thing is the compression is only happen in the network. When the file is arrived to the destination server, it will returning into the original size as before the compression happen. +有一个参数能让传输文件更快,就是“**-C**”参数,它的作用是不停压缩所传输的文件。它特别之处在于压缩是在网络中进行,当文件传到目标服务器时,它会变回压缩之前的原始大小。 -Take a look of these commands. It is using a single file of **93 Mb**. +来看看这些命令,我们使用一个**93 Mb**的单一文件来做例子。 pungki@mint ~/Documents $ scp -pv messages.log mrarianto@202.x.x.x:. @@ -83,7 +83,7 @@ Take a look of these commands. It is using a single file of **93 Mb**. Bytes per second: sent 58758.4, received 15.6 debug1: Exit status 0 -Copying file without “**-C**” parameter will result **1661.3** second. Yo may compare the result to the command below which using “**-C**” parameter. +不用“**-C**”参数来拷贝文件,结果用了**1661.3**秒,你可以比较下用了“**-C**”参数之后的结果。 pungki@mint ~/Documents $ scp -Cpv messages.log mrarianto@202.x.x.x:. From 091fef52aa3b9da7055c5ccf2e15eb8b49aee6e7 Mon Sep 17 00:00:00 2001 From: Vic___ Date: Mon, 8 Dec 2014 18:38:06 +0800 Subject: [PATCH 108/158] =?UTF-8?q?=E6=8A=A2=E5=9C=B0=E4=B8=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow to disable Apport internal error reporting on Ubuntu.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md b/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md index 11120fff9a..eda537fd6e 100644 --- a/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md +++ b/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md @@ -1,3 +1,5 @@ + Vic020 + Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu ================================================================================ > **Question**: On Ubuntu desktop, I often encounter a popup window, alerting that Ubuntu has experienced an internal error, and asking me to send an error report. This is bothering me as it keeps popping up for every application crash. How can I turn off the error reporting feature? @@ -39,4 +41,4 @@ via: http://ask.xmodulo.com/disable-apport-internal-error-reporting-ubuntu.html 译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 \ No newline at end of file +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From aebf3406d683699672b214e45244a54613b8c577 Mon Sep 17 00:00:00 2001 From: coloka Date: Mon, 8 Dec 2014 23:13:05 +0800 Subject: [PATCH 109/158] =?UTF-8?q?=E3=80=90translating=E3=80=91How=20to?= =?UTF-8?q?=20configure=20a=20syslog=20server=20with=20rsyslog=20on=20Linu?= =?UTF-8?q?x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...05 How to configure a syslog server with rsyslog on Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md b/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md index 276e5a05fa..e55c028ecd 100644 --- a/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md +++ b/sources/tech/20141205 How to configure a syslog server with rsyslog on Linux.md @@ -1,3 +1,5 @@ +translating by coloka... + How to configure a syslog server with rsyslog on Linux ================================================================================ A syslog server represents a central log monitoring point on a network, to which all kinds of devices including Linux or Windows servers, routers, switches or any other hosts can send their logs over network. By setting up a syslog server, you can filter and consolidate logs from different hosts and devices into a single location, so that you can view and archive important log messages more easily. From dcd75324b12cf1a1c3d73ae99463e35f9d4e01b4 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 8 Dec 2014 23:41:49 +0800 Subject: [PATCH 110/158] PUB:20141030 How to run SQL queries against Apache log files on Linux @ThomazL --- ...eries against Apache log files on Linux.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) rename {translated/tech => published}/20141030 How to run SQL queries against Apache log files on Linux.md (67%) diff --git a/translated/tech/20141030 How to run SQL queries against Apache log files on Linux.md b/published/20141030 How to run SQL queries against Apache log files on Linux.md similarity index 67% rename from translated/tech/20141030 How to run SQL queries against Apache log files on Linux.md rename to published/20141030 How to run SQL queries against Apache log files on Linux.md index 7b6cf358b3..e83202c48f 100644 --- a/translated/tech/20141030 How to run SQL queries against Apache log files on Linux.md +++ b/published/20141030 How to run SQL queries against Apache log files on Linux.md @@ -1,32 +1,32 @@ -如何在 Linux 上针对 Apache 日志文件运行 SQL 查询语句 +如何在 Linux 上用 SQL 语句来查询 Apache 日志 ================================================ -Linux 有一个显著的特点,在正常情况下,你可以通过分析系统日志来了解你的系统中发生了什么,或正在发生什么。的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源。我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志。 +Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么。的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源。我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志。 -我们会通过另类的途径分析 Apache access 日志,我们使用的工具是 [asql][1]。asql 是一个开源的工具,它能够允许使用者针对日志运行 SQL 查询,从而通过更加友好的格式展现相同的信息。 +这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 [asql][1]。asql 是一个开源的工具,它能够允许使用者使用 SQL 语句来查询日志,从而通过更加友好的格式展现相同的信息。 ### Apache 日志背景知识 ### Apache 有两种日志: - **Access log**:存放在路径 /var/log/apache2/access.log (Debian) 或者 /var/log/httpd/access_log (Red Hat)。Access Log 记录所有 Apache web server 执行的请求。 -- **Error log**:存放在路径 /var/log/apache2/error.log (Debian) 或者 /var/log/httpd/error_log (Red Hat)。Error log 记录所有 Apache web server 报告的错误以及错误的情况。Error 情况包括(不限于)403(Forbidden,通常在有效请求丢失访问许可时被报告),404(Not found,在请求资源不存在时被报告)。 +- **Error log**:存放在路径 /var/log/apache2/error.log (Debian) 或者 /var/log/httpd/error_log (Red Hat)。Error log 记录所有 Apache web server 报告的错误以及错误的情况。Error 情况包括(不限于)403(Forbidden,通常在请求被拒绝访问时被报告),404(Not found,在请求资源不存在时被报告)。 -虽然管理员可以通过配置 Apache 的配置文件来自定义 Apache access log 的罗嗦程度,在这篇文章中,我们会使用默认的配置,如下: +虽然管理员可以通过配置 Apache 的配置文件来自定义 Apache access log 的详细程度,不过在这篇文章中,我们会使用默认的配置,如下: - Remote IP - Request date - Request type - Response code - Requested resource - Remote browser (may also include operating system) + 远程 IP - 请求时间 - 请求类型 - 响应代码 - 请求的 URL - 远程的浏览器信息 (也许包含操作系统信息) 因此一个典型的 Apache 日志条目就是下面这个样子: 192.168.0.101 - - [22/Aug/2014:12:03:36 -0300] "GET /icons/unknown.gif HTTP/1.1" 200 519 "http://192.168.0.10/test/projects/read_json/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0" -但是 Apache error log 又是怎么样的呢?因为 error log 条目主要记录 access log 中特殊的请求(你可以自定义),你可以通过 access log 来获得关于错误情况的更多信息(example 5 有更多细节)。 +但是 Apache error log 又是怎么样的呢?因为 error log 条目主要记录 access log 中特殊的请求(你可以自定义),所以你可以通过 access log 来获得关于错误情况的更多信息(example 5 有更多细节)。 -话在前头, access log 是系统级别的日志文件。要分析 virtual hosts 的日志文件,你需要检查它们相应的配置文件(e.g. 在 /etc/apache2/sites-available/[virtual host name] 里(Debian))。 +此外要提前说明的, access log 是系统级别的日志文件。要分析虚拟主机的日志文件,你需要检查它们相应的配置文件(例如: 在 /etc/apache2/sites-available/[virtual host name] 里(Debian))。 ### 在 Linux 上安装 asql ### -asql 由 Perl 编写,而且需求以下两个 Perl module:SQLite 的 DBI 驱动以及 GNU readline. +asql 由 Perl 编写,而且需求以下两个 Perl 模块:SQLite 的 DBI 驱动以及 GNU readline。 ### 在 Debian, Ubuntu 以及其衍生发行版上安装 asql ### @@ -46,7 +46,7 @@ asql 由 Perl 编写,而且需求以下两个 Perl module:SQLite 的 DBI 驱 ### asql 是如何工作的? ### -从上面代码中的依赖中你就可以看出来,asql 转换未结构化的明文 Apache 日志成结构化的 SQLite 数据库信息。生成的 SQLite 数据库接受正常的 SQL 查询语句。数据库可以通过当前以及曾经的日志文件生成,其中包括压缩转换过的日志文件,类似 access.log.X.gz 或者 access_log.old。 +从上面代码中的依赖中你就可以看出来,asql 转换未结构化的明文 Apache 日志为结构化的 SQLite 数据库信息。生成的 SQLite 数据库可以接受正常的 SQL 查询语句。数据库可以通过当前以及之前的日志文件生成,其中也包括压缩转换过的日志文件,类似 access.log.X.gz 或者 access_log.old。 首先,从命令行启动 asql: @@ -62,7 +62,7 @@ asql 由 Perl 编写,而且需求以下两个 Perl module:SQLite 的 DBI 驱 首先在 asql 中加载所有的 access 日志: - asql > load + asql > load 比如在 Debian 下: @@ -72,7 +72,7 @@ asql 由 Perl 编写,而且需求以下两个 Perl module:SQLite 的 DBI 驱 asql > load /var/log/httpd/access_log* -当 asql 完成对 access 日志的加载后,我们就可以开始数据库查询了。注意一下,加载后生成的数据库是 "temporary" 的,意思就是数据库会在你退出 asql 的时候被清除。如果你想要保留数据库,你必须先将其保存为一个文件。我们会在后面介绍如何这么做(参考 example 3 和 4)。 +当 asql 完成对 access 日志的加载后,我们就可以开始数据库查询了。注意一下,加载后生成的数据库是 "temporary" (临时)的,意思就是数据库会在你退出 asql 的时候被清除。如果你想要保留数据库,你必须先将其保存为一个文件。我们会在后面介绍如何这么做(参考 example 3 和 4)。 ![](https://farm8.staticflickr.com/7489/15044293173_f21e38692b_o.png) @@ -80,7 +80,7 @@ asql 由 Perl 编写,而且需求以下两个 Perl module:SQLite 的 DBI 驱 ![](https://farm4.staticflickr.com/3955/15664433685_465e8f47bd_o.png) -名为 .asql 的隐藏文件,保存于用户的 home 目录下,记录用户在 asql shell 中输入的命令历史。因此你可以使用方向键浏览历史命令,按下 ENTER 来重复执行之前的命令。 +一个名为 .asql 的隐藏文件,保存于用户的 home 目录下,记录用户在 asql shell 中输入的命令历史。因此你可以使用方向键浏览命令历史,按下 ENTER 来重复执行之前的命令。 ### asql 上的示例 SQL 查询 ### @@ -106,7 +106,7 @@ asql 由 Perl 编写,而且需求以下两个 Perl module:SQLite 的 DBI 驱 这样做可以避免使用 load 命令对日志的语法分析所占用的处理时间。 -**Example 4**:在重新启动 asql 后载入数据库。 +**Example 4**:在重新进入 asql 后载入数据库。 restore [filename] @@ -135,7 +135,7 @@ via: http://xmodulo.com/sql-queries-apache-log-files-linux.html 作者:[Gabriel Cánepa][a] 译者:[ThomazL](https://github.com/ThomazL) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 907ab34aecda3f52bf0dc63ba9ab517b3928f337 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 9 Dec 2014 00:16:58 +0800 Subject: [PATCH 111/158] PUB:20141004 Practical Lessons in Peer Code Review @johnhoow --- ...4 Practical Lessons in Peer Code Review.md | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) rename {translated/tech => published}/20141004 Practical Lessons in Peer Code Review.md (73%) diff --git a/translated/tech/20141004 Practical Lessons in Peer Code Review.md b/published/20141004 Practical Lessons in Peer Code Review.md similarity index 73% rename from translated/tech/20141004 Practical Lessons in Peer Code Review.md rename to published/20141004 Practical Lessons in Peer Code Review.md index 421c10cb00..62aed439ef 100644 --- a/translated/tech/20141004 Practical Lessons in Peer Code Review.md +++ b/published/20141004 Practical Lessons in Peer Code Review.md @@ -1,61 +1,64 @@ -# Peer Code Review的实战经验 # - -(译者:Code Review中文可以翻译成代码复查,一般由开发待review的代码的成员以外的团队成员来进行这样的工作。由于是专业术语,没有将Code review用中文代替。) +# 同等代码审查(Peer Code Review)实战经验 # 我有时候会听到我们的团队成员这样议论: "项目的Code review 只是浪费时间。" + "我没有时间做Code review。" -"我的发布时间延迟了,因为我的同时还没有完成我代码的Code review。" -"你相信我的同事居然要求我对我的代码做修改吗?请跟他们说代码中的一些联系会被打断如果在我原来代码的基础之上做修改的话。" + +"我的发布时间延迟了,因为我的同事还没有完成我代码的Code review。" + +"你相信我的同事居然要求我对我的代码做修改吗?请跟他们说代码中的一些联系会被打断——如果在我原来代码的基础之上做修改的话。" + +(LCTT 译注:Code Review中文可以翻译成代码复查,一般由开发待review的代码的成员以外的团队成员来进行这样的工作。由于是专业术语,没有将Code review用中文代替。) ### 为什么要做Code review? ### -每个专业软件开发者都有一个重要的目标:持续的提高它们的工作质量。即使你团队中都是一些优秀的程序员,你依然不能将你自己与一个有能力的自由职业者区分开来,除非你从团队的角度来工作。Code review是团队工作的一个重要的方面。尤其是: +每个专业软件开发者都有一个重要的目标:持续的提高他们的工作质量。即使你团队中都是一些优秀的程序员,但是你依然不能将你自己与一个有能力的自由职业者区分开来,除非你从团队的角度来工作。Code review是团队工作的一个重要的方面。尤其是: 代码复查者(reviewer)能从他们的角度来发现问题并且提出更好的解决方案。 确保至少你团队的另一个其他成员熟悉你的代码,通过给新员工看有经验的开发者的代码能够某种程度上提高他们的水平。 -公开code reviewer和reviewee的想法和经验能够促进团队间的知识的分享。 +公开reviewer和被复查者的想法和经验能够促进团队间的知识的分享。 能够鼓励开发者将他们的工作进行的更彻底,因为他们知道他们的代码将被其他的人阅读。 ### 在review的过程中的注意点 ### -但是,由于Code review的时间有限,上面所说的目标未必能全部达到。就算只是想要打一个补丁,都要确保意图是正确的。如果只是将变量名改成骆驼拼写法(camelCase),不算是code review。在开发过程中进行结对编程是有益处的,它能够使两个人得到公平的锻炼。你能够在code review上花许多时间,并且仍然能够比在结对编程中使用更少的时间。 +但是,由于Code review的时间有限,上面所说的目标未必能全部达到。就算只是想要打一个补丁,都要确保意图是正确的。如果只是将变量名改成骆驼拼写法(camelCase),那不算是code review。在开发过程中进行结对编程是有益处的,它能够使两个人得到公平的锻炼。你能够在code review上花许多时间,并且仍然能够比在结对编程中使用更少的时间。 我的感受是,在项目开发的过程中,25%的时间应该花费在code review上。也就是说,如果开发者用两天的时间来开发一个东西,那么复查者应该使用至少四个小时来审查。 -当然,只要你的review结果准确的话,具体花了多少时间就显得不是那么的重要。重要的是,你能够理解你看的那些代码。这里的理解并不是指你看懂了这些代码书写的语法,而是你要知道这段代码在整个庞大的应用程序,组件或者库中起着什么样的作用。如果你不理解每一行代码的作用,那么换句话说,你的code review就是没有价值的。这就是为什么好的code review不能很快完成的原因。需要时间来探讨各种各样的代码路径,让它们触发一个特定的函数,来确保第三方的API得到了正确的使用(包括一些边缘测试)。 +当然,只要你的review结果准确的话,具体花了多少时间就显得不是那么的重要。重要的是,你能够理解你看的那些代码。这里的理解并不是指你看懂了这些代码书写的语法,而是你要知道这段代码在整个庞大的应用程序、组件或者库中起着什么样的作用。如果你不理解每一行代码的作用,那么换句话说,你的code review就是没有价值的。这就是为什么好的code review不能很快完成的原因。需要时间来探讨各种各样的代码路径,让它们触发一个特定的函数,来确保第三方的API得到了正确的使用(包括一些边缘测试)。 为了查阅你所审查的代码的缺陷或者是其他问题,你应该确保: -所有有必要的测试都已经被包含进去。 +- 所有必要的测试都已经被包含进去。 -合理的设计文档已经被编写。 +- 合理的设计文档已经被编写。 再熟练的开发者也不是每次都会记得在他们对代码改动的时候把测试程序和文档更新上去。来自reviewer的一个提醒能够使得测试用例和开发文档不会一直忘了更新。 ### 避免code review负担太大 ### -如果你的团队没有强制性的code review,当你的code review记录停留在无法管理的节点上时会很危险。如果你已经两周没有进行code review了,你可以花几天的时间来跟上项目的进度。这意味着你自己的开发工作会被阻断,当你想要处理之前遗留下来的code review的时候。这也会使得你很难再确保code review的质量,因为合理的code review需要长期认真的努力。最终会很难持续几天都保持这样的状态。 +如果你的团队没有强制性的code review,当你的code review记录停留在无法管理的节点上时会很危险。如果你已经两周没有进行code review了,你可以花几天的时间来跟上项目的进度。这意味着你自己的开发工作会被阻断,当你想要处理之前遗留下来的code review的时候。这也会使得你很难再确保code review的质量,因为合理的code review需要长期认真的努力,最终会很难持续几天都保持这样的状态。 由于这个原因,开发者应当每天都完成他们的review任务。一种好办法就是将code review作为你每天的第一件事。在你开始自己的开发工作之前完成所有的code review工作,能够使你从头到尾都集中注意力。有些人可能更喜欢在午休前或午休后或者在傍晚下班前做review。无论你在哪个时间做,都要将code review看作你的工作之一并且不能分心,你要避免: -没有足够的时间来处理你的review任务。 +- 没有足够的时间来处理你的review任务。 -由于你的code review工作没有做完导致版本的推迟发布。 +- 由于你的code review工作没有做完导致版本的推迟发布。 -提交不在相关的review由于代码在你review期间已经改动太大。 +- 提交不再相关的review,由于代码在你review期间已经改动太大。 -因为你要在最后一分钟完成他们一直于review质量太差。 +- 因为你要在最后一分钟完成他们,以至于review质量太差。 ### 书写易于review的代码 ### -有时候review没有按时完成并不都是因为代码审查者(reviewer)。如果我的同事使用一周时间在一个大工程中添加了一些乱七八糟的代码,且他们提交的补丁实在是太难以阅读。在一段中有太多的东西要浏览。这样会让人难以理解它的作用,自然会拖慢review的进度。 +有时候review没有按时完成并不都是因为reviewer。如果我的同事使用一周时间在一个大工程中添加了一些乱七八糟的代码,且他们提交的补丁实在是太难以阅读。在一段代码中有太多的东西要浏览。这样会让人难以理解它的作用,自然会拖慢review的进度。 -为什么将你的工作划分成一些易于管理的片段很重要有很多原因。我们使用scrum方法论(一种软件开发过程方法),因此对我们来说一个合理的单元就是一个story。通过努力将我们的工作使用story组织起来并且只是将review提交到我们正在工作的story上,这样,我们写的代码就会更加易于review。你们的可以使用其他的软件开发方法,但是目的是一样的。 +为什么将你的工作划分成一些易于管理的片段很重要有很多原因。我们使用scrum方法论(一种软件开发过程方法),因此对我们来说一个合理的单元就是一个story。通过努力将我们的工作使用story组织起来,并且只是将review提交到我们正在工作的story上,这样,我们写的代码就会更加易于review。你们也可以使用其他的软件开发方法,但是目的是一样的。 书写易于review的代码还有其他先决条件。如果要做一些复杂的架构决策,应该让reviewer事先知道并参与讨论。这会让他们之后review你们的代码更加容易,因为他们知道你们正在试图实现什么功能并且知道你们打算如何来实现。这也避免了开发者需要在reviewer提了一个不同的或者更好的解决方案后大片的重写代码。 @@ -63,7 +66,7 @@ 如果你在你的补丁中包含的第三方的代码,记得单独的提交它。当jQuery的9000行代码被插入到了项目代码的中间,毫无疑问会造成难以阅读。 -创建易读的review代码的另一个非常重要的措施是添加相应的注释代码。这就要求你事先自己做一下review并且在一些你认为会帮助reviewer进行review的地方加上相应的注释。我发现加上注释相对与你来说往往只需要很短的时间(通常是几分钟),但是对于review来说会节约很多的时间。当然,代码注释还有其他相似的好处,应该在合理的地方使用,但往往对code review来说更重要。事实上,有研究表明,开发者在重读并注释他们代码的过程中,通常会发现很多问题。 +创建易读的review代码的另一个非常重要的措施是添加相应的注释代码。这就要求你事先自己做一下review并且在一些你认为会帮助reviewer进行review的地方加上相应的注释。我发现加上注释相对于你来说往往只需要很短的时间(通常是几分钟),但是对于review来说会节约很多的时间。当然,代码注释还有其他相似的好处,应该在合理的地方使用,但往往对code review来说更重要。事实上,有研究表明,开发者在重读并注释他们代码的过程中,通常会发现很多问题。 ### 代码大范围重构的情况 ### @@ -77,16 +80,17 @@ 你的团队中都是一些有能力的专家,在一些案例中,完全有可能因为对一个具体编码问题的意见的不同而产生争论。作为一个开发者,应该保持一个开发的头脑并且时刻准备着妥协,当你的reviewer更想要另一种解决方法时。不要对你的代码持有专有的态度,也不要自己持有审查的意见。因为有人会觉得你应该将一些重复的代码写入一个能够复用的函数中去,这并不意味着这是你的问题。 -作为一个reviewer,要灵活。在提出修改建议之前,考虑你的建议是否真的更好或者只是无关紧要。如果你把力气和注意力花在那些原来的代码会明确需要改进的地方会更加成功。你应该说"它或许者的考虑..."或者"一些人建议..."而不是”我的宠物都能写一个比这个更加有效的排序方法"。 +作为一个reviewer,要灵活。在提出修改建议之前,考虑你的建议是否真的更好或者只是无关紧要。如果你把力气和注意力花在那些原来的代码会明确需要改进的地方会更加成功。你应该说"它或许值得考虑..."或者"一些人建议..."而不是”我的宠物都能写一个比这个更加有效的排序方法"。 -如果你真的决定不了,那就询问另一个你和你的reviewee都尊敬的开发者来听一下你意见并给出建议。 +如果你真的决定不了,那就询问另一个你及你所审查的人都尊敬的开发者来听一下你意见并给出建议。 -------------------------------------------------------------------------------- via: http://blog.salsitasoft.com/practical-lessons-in-peer-code-review/ -作者:[Matt][a] + +作者:Matt 译者:[john](https://github.com/johnhoow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 4843057c838360371f90af236009f568b5b0b3a7 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Tue, 9 Dec 2014 12:00:26 +0800 Subject: [PATCH 112/158] Translating by ZTinoZ --- ...mmands to Transfer Files or Folders in Linux.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 96a1948d97..0c67bdef57 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,4 +1,4 @@ -Linux的十条SCP传输命令 +n Linux的十条SCP传输命令 ================================================================================ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。在**SSH**命令中内置了一种叫**SCP**的命令,用来在服务器之间安全传输文件。 @@ -119,22 +119,22 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09 debug1: compress incoming: raw data 7885, compressed 3821, factor 0.48 -As you can see, when you are using compression, transfer process is done in **162.5** second. It is **10** times faster than not using “**-C**” parameter. If you are copying a lot files across the network, “**-C**” parameter would help you to decrease the total time you need. +看到了吧,压缩了文件之后,传输过程在**162.5**秒内就完成了,速度是不用“**-C**”参数的10倍。如果你要通过网络拷贝很多份文件,那么“**-C**”参数能帮你节省掉很多时间。 -The thing that we should notice that compression method will not work on any files. When the source file is already compressed, you will not find any improvement there. Files such as **.zip**, **.rar**, **pictures**, and **.iso** files will not affected by “**-C**” parameter. +有一点我们需要注意,这个压缩的方法不是适用于所有文件。当源文件已经被压缩过了,那就没办法再压缩了。诸如那些像**.zip**,**.rar**,**pictures**和**.iso**的文件,用“**-C**”参数就无效。 -### Select another cipher to encrypt files ### +### 选择其它加密算法来加密文件 ### -By default **SCP** using “**AES-128**” to encrypt files. If you want to change to another cipher to encrypt it, you can use “**-c**” parameter. Take a look of this command. +**SCP**默认是用“**AES-128**”加密算法来加密文件的。如果你想要改用其它加密算法来加密文件,你可以用“**-c**”参数。我们来瞧瞧。 pungki@mint ~/Documents $ scp -c 3des Label.pdf mrarianto@202.x.x.x:. mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 282.5KB/s 00:13 -Above command tell **SCP** to use **3des algorithm** to encrypt file. Please be careful that this parameter using “**-c**” not “**-C**“. +上述命令是告诉**SCP**用**3des algorithm**来加密文件。要注意这个参数是“**-c**”而不是“**-C**“。 -### Limiting bandwidth usage ### +### 限制带宽使用 ### Another parameter that may useful is “**-l**” parameter. The “**-l**” parameter will limit the bandwidth to use. It will be useful if you do an automation script to copy a lot of file, but you don’t want the bandwidth is drained by the **SCP** process. From e04ad3b1081977c7a32ee10ef949ed620e0df19e Mon Sep 17 00:00:00 2001 From: yupmoon Date: Tue, 9 Dec 2014 18:07:09 +0800 Subject: [PATCH 113/158] yupmoon translating --- ...20141120 5 Best Open Source Web Browser Security Apps.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md b/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md index 6dc3451eb9..b819bfed2b 100644 --- a/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md +++ b/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md @@ -1,3 +1,7 @@ +[yupmoon translating] + + + 5 Best Open Source Web Browser Security Apps ================================================================================ The Web browser acts as the gateway for myriad online services these days. Computer security problems are far from solved, and technology advances provide new ways for malware to infect our devices and enter our business networks. For example, smartphones and tablets offer fresh new fields for malware—and its malicious cousin, "[malvertising][1]"—to exploit. @@ -83,4 +87,4 @@ via: http://www.smallbusinesscomputing.com/biztools/5-best-open-source-web-brows [5]:https://www.eff.org/Https-everywhere [6]:http://socialfixer.com/ [7]:https://www.eff.org/privacybadger -[8]:https://disconnect.me/ \ No newline at end of file +[8]:https://disconnect.me/ From 521ad3dc3dec085e6b52d893b87b995523c312a8 Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Tue, 9 Dec 2014 22:07:02 +0800 Subject: [PATCH 114/158] Translated by Stevearzh --- ...gnificent Linux Music Streaming Clients.md | 197 --------------- ...gnificent Linux Music Streaming Clients.md | 229 ++++++++++++++++++ 2 files changed, 229 insertions(+), 197 deletions(-) delete mode 100644 sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md create mode 100644 translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md diff --git a/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md b/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md deleted file mode 100644 index 39103cd0df..0000000000 --- a/sources/share/20141127 Five Magnificent Linux Music Streaming Clients.md +++ /dev/null @@ -1,197 +0,0 @@ -[Translating by Stevearzh] -Five Magnificent Linux Music Streaming Clients -================================================================================ -Digital streams almost totally command my music listening these days. Over the years I have amassed a large collection of CDs at considerable expense; most of them now sit neglected gathering dust. Almost all music streaming services fall short of the audio quality of CDs, but their popularity has more to do with sheer convenience than high-fidelity sound reproduction. Music streaming has not only been to the detriment of CD sales; digital downloads have also experienced a slowing down of sales. This is only set to continue. Audiophiles may be tempted to embrace music streaming given that there are now services such as Tidal which offers high fidelity music streaming, 25 million tracks encoded with the FLAC format streamed at 1,411kbps. - -CDs are not going away though. Music streaming services do experience issues with record labels and artists who are unhappy with the amount of return they receive from letting their music be hosted on the service. This is still in flux; we have seen this year Led Zeppelin, Pink Floyd, Metallica sign up to streaming services, but there are still some notable omissions such as the Beatles, Radiohead and AC/DC who refuse to allow fans to stream their music. Even where a record label or singer has given permission to allow streaming services to access their work, an artist's back catalog can be pulled at a moment's notice. This month, Taylor Swift’s entire catalog of music was pulled from Spotify's streaming service at the pop singer’s request. Some people will still prefer to "possess" their collection, but it's looking like an increasingly old fashioned way to enjoy music. - -The Linux platform has matured into a good way of listening to streaming music services. There are clients available for most of the music streaming services; I hope TIDAL will support Linux on the desktop in due course, and not rely on a web player. All of the applications featured in this article are excellent. An honorable mention should be given to Amarok, pianobar, and Tomahawk. - -![Spotify](http://www.linuxlinks.com/portal/content2/png/Spotify.png) - -![Spotify in action](http://www.linuxlinks.com/portal/content/reviews/Audio/Screenshot-Spotify-Streaming.png) - -Spotify is a proprietary peer-to-peer music streaming service that allows users to listen to tracks or albums on demand. The service describes itself as "A world of music. Instant, simple and free". Spotify uses 96kbps streaming on mobile, 160kbps on desktop and 320kbps for "Premium subscribers" - all encoded in the Ogg Vorbis format. Spotify is free for those who choose to live with adverts, or at a reasonable monthly charge without them. - -Spotify is a fantastic service, offering access to a huge library of music covering all different types of music such as pop, alternative, classical, techno, and rock. It is a great way of dipping into new music. The service has the support of major labels including Sony BMG, EMI, Universal, and Warner Music, as well as independent labels and distribution networks like Labrador Records, The Orchard, Alligator Records, Merlin, CD Baby, INgrooves as well as classical music labels such as Chandos, Naxos, EMI Classic, Warner Classics, Denon Essentials and many more. The breadth of music is continuing to expand at a phenomenal pace. - -Spotify does not officially support Linux at the moment. However, they have developed a preview build of Spotify for Linux, which works well. As its a preview release, this version is still unsupported. - -Spotify is available in Andorra, Argentina, Australia, Austria, Belgium, Bulgaria, Colombia, Cyprus, Denmark, Estonia, Finland, France, Germany, Greece, Hong Kong, Iceland, Ireland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malaysia, Malta, Mexico, Monaco, Netherlands, New Zealand, Norway, the Philippines, Poland, Portugal, Spain, Singapore, Sweden, Switzerland, Taiwan, Turkey, the United Kingdom, the United States, Uruguay, and a few others. - -**Features include:** - -- A well designed interface makes navigation effortless -- Create and edit playlists -- Discover new music -- Share music and playlists -- Radio feature -- Top Lists -- Additional functionality with large variety of apps - -- Website: [www.spotify.com/uk/download/previews][1] -- Developer: Spotify -- License: Proprietary -- Version Number: Preview - ----------- - -![Pithos](http://www.linuxlinks.com/portal/content2/png/Pithos.png) - -![Pithos in action](http://www.linuxlinks.com/portal/content/reviews/Audio/Screenshot-Pithos-streaming.png) - -Pithos is an open source native Pandora Radio client for Linux. It offers a lightweight alternative to the official Pandora.com web client. The graphical user interface integrates with desktop features such as media keys, notifications, and the sound menu. - -The Pandora music service is only intended to be used by US IP addresses. However, users located outside the US can use Pandora with a VPN. - -**Features include: ** - -- Play / Pause / Next Song -- Switching stations -- Remembers your user name and password -- Bookmarking of songs and artists -- Cover Art -- Thumbs Up / Thumbs Down / Tired of this song -- Notification popup with song info -- Launching pandora.com song info page and station page -- Reconnecting when pandora session times out -- Editing QuickMix -- Creating stations -- Media Key support -- Proxy support -- Last.fm scrobbling support -- Volume control -- Plugins including Screensaver pause -- Two DBUS APIs: MPRIS and Pithos - -- Website: [pithos.github.io][2] -- Developer: Kevin Mehall -- License: GNU GPL v3 -- Version Number: 1.0.0 - ----------- - -![Clementine](http://www.linuxlinks.com/portal/content2/png/Clementine.png) - -![Clementine in action](http://www.linuxlinks.com/portal/content/reviews/Audio/Screenshot-Clementine-Streaming.png) - -Clementine is a cross-platform, lightweight, modern music player and library organiser based on Amarok. Clementine focuses on a fast and easy-to-use interface for searching and playing your music. - -It is inspired by Amarok 1.4, focusing on a fast and easy-to-use interface for searching and playing your music. - -Features include: - -- Search and play your local music library -- Listen to internet radio from Last.fm and SomaFM -- Tabbed playlists, import and export M3U, XSPF, PLS and ASX -- Create smart playlists and dynamic playlists -- Load M3U and XSPF playlists -- Undo and redo in the playlist -- Edit tags on MP3 and OGG files, organise your music -- Download missing album cover art from Last.fm -- Podcast support with integration with gpodder.net -- Graphical equalizer -- Cross-platform works on Windows, Mac OS X and Linux -- Native desktop notifications on Linux (libnotify) and Mac OS X (Growl) -- Fetch missing tags from MusicBrainz -- Attractive on screen display -- Queue manager -- Supports MPRIS on Linux, or remote control using the command-line -- Supports indexing and playing music from Google Drive -- Support for Soundcloud -- Support for jazzradio.com -- Support for Moodbar -- Visualizations from projectM -- Copy music to your iPod, iPhone, MTP or mass-storage USB player -- Remote control -- Transcode music into MP3, Ogg Vorbis, Ogg Speex, FLAC or AAC - -- Website: [www.clementine-player.org][3] -- Developer: David Sansome, John Maguire -- License: GNU GPL v3 -- Version Number: 1.2 - ----------- - -![Nuvola Player](http://www.linuxlinks.com/portal/content2/png/NuvolaPlayer.png) - -![Nuvola Player in action](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-NuvolaPlayer-Streaming.png) - -Nuvola Player is a free and open source project that offers cloud music integration for your desktop (system tray, Ubuntu sound menu, dock menu and notifications). - -To use all of the streaming services, you need Flash and HTML5 audio support. Some web-based streaming services can utilize HTML5 Audio technology for music playback instead of the Flash plugin. Nuvola Player requires GStreamer with MP3 decoder plugin to provide HTML5 Audio support. - -**Supported Services:** - -- Amazon Cloud Player integrated with the MP3 store and allows users to store their music on Amazon Cloud Drive, and play that music from any supported web browsers -- Bandcamp an online music store, as well as a platform for artist promotion, that caters mainly to independent artists -- Deezer a French web-based music streaming service. It allows users to listen to music on various devices online or offline. It currently has 18 million licensed tracks, over 30,000 radio channels and 22 million users (1.5 million subscribers) -- 8tracks a website that fuses elements of internet radio and social networking revolving around the concept of streaming user-curated playlists consisting of at least 8 tracks -- Google Play Music a digital content service from Google which includes an online store for music, movies, books, and Android apps and games, as well as a cloud media player that supports uploading a user's own music and buying music at Google Play Store -- Grooveshark an international online music search engine, music streaming service and music recommendation web software application, allowing users to search for, stream, and upload music that can be played immediately or added to a playlist -- Grooveshark Mobile the HTML5-based mobile version of Grooveshark which does not require Flash -- Hype Machine an amalgamation of Pandora Radio and Pitchfork Media. It aggregates the most recently posted songs from a selection of music blogs (about 1,500) and lists them on the website's main page -- Jango a free online music streaming service that allows users to create and share custom radio stations -- Logitech Media Server the open source media server for Logitech Squeezebox devices. It supports plug-ins and multiple only services like Deezer or Spotify -- Pandora an automated music recommendation service and "custodian" of the Music Genome Project available only in the United States -- Rdio an ad-free music subscription service -- Spotify a commercial music streaming service providing digital rights management-restricted content from record labels -- This is My Jam a place to put your favorite song of the moment & hear great music, handpicked every day by friends - -**Features include:** - -- Multimedia keys -- Shows desktop notifications -- Integrates with various sound menus, applets and launchers and more -- Last FM and Libre FM scrobbling -- Lyrics fetching -- Support for Amazon Music Prime streaming - -- Website: [tiliado.eu/nuvolaplayer][4] -- Developer: Jiří Janoušek and service maintainers -- License: 2-Clause BSD license -- Version Number: 2.4.3 - ----------- - -![Atraci](http://www.linuxlinks.com/portal/content2/png/Atraci-2.png) - -![Atraci in action](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-Atraci.png) - -Atraci is a multi-platform open source streaming application that lets users listen to more than 60 million songs. It is still in an early stage of development, so the application is not the most feature laden. - -Atraci use iTunes, Last.fm and SoundCloud to display song information - cover, title, artist. Atraci searches the best match for this song on YouTube and streams the highest quality video stream. - -**Features include: ** - -- No advertisements, no sign up required -- Intuitive user interface -- Smart matching search for any song, artist name or album. Atraci checks it against online listings to show correct title, album artwork, track lists and so on, with listed options being the highest quality video streams -- Album and artist autosuggestions -- Sort results by 'default', 'artist' or ‘track’ -- View results in 'grid' or 'list' layouts -- Accompanying video can be made full screen -- Create playlists with shuffle and repeat options -- In-app volume slider, track scrubber and album artwork -- History of recently played tracks - -- Website: [atraci.github.io/Atraci-website][5] -- Developer: The Atraci Team -- License: The MIT License -- Version Number: 0.7.0 - --------------------------------------------------------------------------------- - -via: http://www.linuxlinks.com/article/20141116052055674/MusicStreaming.html - -作者:Frazer Kline -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:https://www.spotify.com/uk/download/previews/ -[2]:http://pithos.github.io/ -[3]:https://www.clementine-player.org/ -[4]:https://tiliado.eu/nuvolaplayer/ -[5]:http://atraci.github.io/Atraci-website/ \ No newline at end of file diff --git a/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md b/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md new file mode 100644 index 0000000000..a66547ee62 --- /dev/null +++ b/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md @@ -0,0 +1,229 @@ +Linux 下五款出色的流媒体客户端 +================================================================================ +数字流媒体这几天几乎占据了我音乐收听的全部时间。近年来我为了收藏 CD 花费了数量可观的费用;但它们中的大部分现在正静静地躺在满是灰尘的角落里。基本上所有的音乐流媒体服务所提供的的音质都不如 CD 的,但它们受欢迎的原因很大程度上在于其便捷性,而非高度保真的音质再现。音乐流媒体不仅造成了 CD 销量的大幅减少;也使数字音乐的下载开始缓慢下滑。这种趋势还会继续下去。音乐发烧友现在或许也想要拥抱音乐流媒体服务了,某些音乐流媒体服务商如 Tidal 提供了无损的音乐流媒体服务,其中包含了 25 万首比特率为 1411kbps 的 FLAC 格式的音乐。 + +尽管 CD 暂时不会消失,但音乐流媒体服务商却无法协调和那些不满从音乐托管服务中收取的租金的唱片公司及音乐家之间的问题。这一切仍然处于变化之中;我们看到了今年 Led Zeppelin, Pink Floyd, Metallica 签名支持流媒体服务,但仍然有部分知名的老牌乐队如 Beatles, Radiohead 以及 AC/DC 拒绝将自己的作品放到流媒体上供粉丝收听。即使当某个唱片公司或者音乐家已经授权给流媒体服务商访问自己的作品,但只要音乐家发表声明就可以在第一时间将其作品从流媒体服务下架。本月(2014 年 11 月),Taylor Swift 请求将她的所有音乐作品从 Spotify 的流媒体服务下架。有些人还是更偏向于“拥有”他们的音乐,但这看起来像是一种快要过时了的欣赏音乐的方式。 + +使用 Linux 平台来收听流媒体音乐服务的方法已经逐渐成熟。在 Linux 平台下,你可以找到许多客户端,通过它们你可以使用大部分的音乐流媒体服务;我希望 TIDAL 能在今后合适的时候发行 Linux 桌面客户端,而不是仅仅依赖 web 播放器。本文精选的这些应用都是非常出色的。另外 Amarok,pianobar 还有 Tomahawk 也表现得很不错。 + +![Spotify](http://www.linuxlinks.com/portal/content2/png/Spotify.png) + +![Spotify 播放界面](http://www.linuxlinks.com/portal/content/reviews/Audio/Screenshot-Spotify-Streaming.png) + +Spotify 是一种专有的 P2P 音乐流媒体服务,允许用户收听点播曲目或专辑。Spotify 将自己描述为“音乐圣殿。快捷、简易、免费的服务”。Spotify 分别为普通的移动端和桌面端用户提供了 96kbps 和 160kbps 比特率的流媒体服务,并且为高级用户提供了 Ogg Vorbis 格式的 320kbps 比特率的流媒体服务。Spotify 为普通用户提供了免费但是有广告的服务,以及无广告的订阅账户服务。 + +Spotify 是很奇妙的服务,向用户们提供了涵盖各种类型的数量众多的音乐,如:流行乐、另类摇滚、古典乐、铁克诺电音、摇滚乐等。这是发现新音乐的好方法。Spotify 得到了包括 Sony BMG,EMI,Universal 以及 Warner Music 在内的主流唱片公司,以及 Labrador Records,The Orchard,Alligator Records,Merlin,CD Baby,INgrooves 等独立唱片唱片公司和分销网络,甚至 Chandos,Naxos,EMI Classic,Warner Classics,Denon Essentials 这些古典唱片公司的支持,还有更多的公司在这里就不一一列举了。 +Spotify 的音乐涵盖范围还在继续以惊人的步伐扩张着。 + +Spotify 现在并没有发行官方版的 Linux 客户端。不过,开发团队已经推出了针对 Linux 的客户端预览版,并且表现得还不错。因为仍然是预览版,所以没有得到官方的支持。 + +Spotify 流媒体服务现已支持以下地区/国家:安道尔,阿根廷,澳大利亚,奥地利,比利时,保加利亚,哥伦比亚,塞浦路斯,丹麦,爱沙尼亚,芬兰,法国,德国,希腊,香港,冰岛,爱尔兰,意大利,拉脱维亚,列支敦士登,立陶宛,卢森堡,马来西亚,马耳他,墨西哥,摩纳哥,荷兰,新西兰,挪威,菲律宾,波兰,葡萄牙,西班牙,新加坡,瑞典,瑞士,台湾,土耳其,英国,美国,乌拉圭等。 + +**特色包括:** + +- 精心设计的界面,导航时非常方便 +- 创建和编辑播放列表 +- 发现新的音乐 +- 共享音乐及播放列表 +- 电台功能 +- 最受欢迎的的列表 +- 额外功能及种类繁多的应用 + +- 网址:[www.spotify.com/uk/download/previews][1] +- 开发者:Spotify +- 许可证:专有许可证 +- 当前版本:预览版 + +---------- + +![Pithos](http://www.linuxlinks.com/portal/content2/png/Pithos.png) + +![Pithos 播放界面](http://www.linuxlinks.com/portal/content/reviews/Audio/Screenshot-Pithos-streaming.png) + +Pithons 是一款开源的的本地 Pandora 电台 Linux 客户端。它提供了一个轻量级的界面以替代 Pandora.com 的 web 客户端。其图形用户界面上集成了多媒体快捷键、通知中心以及声音菜单。 + +Pandora 音乐服务只能通过美国的 IP 地址使用。不过,非美国用户可以通过 VPN 连接来使用 Pandora。 + +**特色包括:** + +- 播放/暂停/下一首 +- 切换电台 +- 记住用户名和密码 +- 给喜欢的音乐和艺术家添加书签 +- 获取封面 +- 喜欢/讨厌/不再播放这首音乐 +- 在通知中心中弹出歌曲信息 +- 跳转到 pandora.com 歌曲信息页面/电台页面 +- 超时后重连 pandora +- QuickMix 编辑 +- 创建电台 +- 多媒体按键 +- 代理连接 +- Last.fm 歌曲记录 +- 音量控制 +- 屏保暂停等插件 +- DBUS 接口:MPRIS 和 Pithos + +- 网址:[pithos.github.io][2] +- 开发者:Kevin Mehall +- 许可证:GNU GPL v3 +- 当前版本:1.0.0 + +---------- + +![Clementine](http://www.linuxlinks.com/portal/content2/png/Clementine.png) + +![Clementine 播放界面](http://www.linuxlinks.com/portal/content/reviews/Audio/Screenshot-Clementine-Streaming.png) + +Clementine 基于 Amarok 开发,是一款跨平台的轻量级现代化音乐播放器和媒体库管理工具。Clementine 致力于打造快捷简易的界面,使你可以轻松搜索和播放音乐。 + +Clementine 在 Amarok 1.4 的基础上开发。 + +**特色包括:** +- 检索、播放本地音乐库 +- 从 Last.fm 和 SomaFM 收听互联网电台 +- 标签式播放列表,支持导入导出 M3U,XSPF,PLS 及 ASX 格式的播放列表 +- 创建智能播放列表和动态播放列表 +- 载入 M3U 和 XSPF 播放列表 +- 对播放列表的撤销和重做 +- 编辑 MP3 和 OGG 文件的信息,管理媒体库 +- 从 Last.fm 下载缺失的专辑封面 +- 集成 gpodder.net 播客 +- 图形化均衡器 +- 支持 Windows,Mac OS X 及 Linux +- 支持 Linux(libnotify)及 Mac OS X(Growl)本地桌面通知中心 +- 从 MusicBrainz 获取缺失的信息 +- 炫彩屏幕显示 +- 队列管理 +- 支持 Linux 下的 MPRIS,以及命令行远程控制 +- 支持索引和播放 Google Drive 中的音乐 +- 支持 Soundcloud +- 支持 jazzradio.com +- 支持 Moodbar +- 基于 projectM 的可视化技术 +- 拷贝音乐至 iPod,iPhone,MTP 或者 大容量 USB 设备 +- 远程控制 +- 转码音乐至 MP3,Ogg Vorbis,Ogg Speex,FLAC 以及 AAC + +- 网址:[www.clementine-player.org][3] +- 开发者:David Sansome,John Maguire +- 许可证:GNU GPL v3 +- 当前版本:1.2 + +---------- + +![Nuvola Player](http://www.linuxlinks.com/portal/content2/png/NuvolaPlayer.png) + +![Nuvola Player 播放界面](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-NuvolaPlayer-Streaming.png) + +Nuvola Player 是一个免费的开源项目,能够整合云端音乐到你的桌面中(支持托盘图标、Ubuntu 声音菜单、dock 菜单以及通知中心)。 + +为了使用全部的流媒体服务,你需要安装 Flash 和 HTML5 的音频支持。某些基于 Web 的流媒体服务可以使用 HTML5 的音频技术播放音乐,而非使用 Flash 插件。Nuvola Player 需要 GStreamr 和 MP3 解码器插件来提供 HTML5 音频支持。 + +**支持的流媒体服务:** + +- 集成了 MP3 商店的亚马逊云播放器,允许用户在亚马逊云端驱动器中存储他们的音乐,并且在任何支持的浏览器上播放音乐 +- Bandcamp,是一家在线音乐商店,也是艺人宣传平台,主要适于独立艺术家 +- Deezer,一家法国的基于 Web 的音乐流媒体服务商。Deezer 允许用户在多台设备上在线或者离线播放音乐,现在拥有 1800 万的曲目,超过 30000 的电台以及 2200 万的用户(150 万订阅用户) +- 8tracks,是一家融合了互联网电台和社交元素的网站,坚持至少 8 个曲目的为用户量身定制的流媒体播放列表 +- Google Play,谷歌运营的一家数字服务商店,其经营项目包括音乐、电影、书籍,以及 Android 应用和游戏,其云端播放器支持播放用户自己上传的音乐和在 Google Play 里购买的音乐 +- Grooveshark,提供了国际化在线音乐搜索引擎、音乐流媒体服务以及音乐推荐服务,允许用户进行搜索、使用流媒体以及上传音乐,并且能把这些音乐进行立即播放或者添加到一个播放列表中 +- Grooveshark Mobile,基于 HTML5 的 Grooveshark 移动版,不需要 Flash 插件的支持 +- Hype Machine,Pandora Radio 和 Pitchfork Media 的融合产物。它从音乐博客上精选了最近发布的歌曲(约 1500 首),并在网站主页上列出了这些歌曲的信息 +- Jango,一款免费的在线音乐流媒体服务,允许用户创建和分享自己创建的电台 +- Logitech Media Server,是 Logitech Squeezebox devices 的开源流媒体服务。支持许多插件以及如 Deezer 和 Spotify 等其他流媒体服务 +- Pandora,智能化音乐推荐服务以及音乐基因组计划“托管人”,服务仅针对美国地区 +- Rdio,有广告的音乐订阅服务 +- Spotify,商业化流媒体服务,提供来自唱片公司的被严格限制的数字版权内容 +- This is My Jam,你可以存放某一刻你非常喜欢的音乐,并且每天都可以收听由朋友们精挑细选的音乐 + +**特色包括:** + +- 多媒体快捷键 +- 显示桌面通知 +- 集成了众多声音菜单、小程序以及启动器,甚至更多 +- Last FM 以及 Libre FM 歌曲记录 +- 获取歌词 +- 支持 Amazon Music Prime streaming + +- 网址:[tiliado.eu/nuvolaplayer][4] +- 开发者:Jiří Janoušek and service maintainers +- 许可证:2-Clause BSD license +- 当前版本:2.4.3 + +---------- + +![Atraci](http://www.linuxlinks.com/portal/content2/png/Atraci-2.png) + +![Atraci 播放界面](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-Atraci.png) + +Atraci 是一款多平台的开源流媒体应用,允许用户收听超过 6000 万首音乐。Atraci 仍然处于基础开发阶段,所以很多功能暂时还未完善。 + +Atraci 使用 iTunes,Last.fm 以及 SoundCLoud 显示歌曲信息 —— 专辑封面、歌曲名称以及艺术家。Atraci 在 YouTube 上搜索最匹配这首音乐信息的视频,并使用其中质量最高的。 + +**特色包括:** + +- 无广告、无需注册 +- 直观的用户界面 +- 智能匹配搜索任何音乐、艺术家或者专辑。Atraci 会在线校对其信息,以显示正确的歌曲名称、专辑封面以及音轨等等,同时列出最高质量的视频流媒体 +- 自动修正所属专辑与艺术家 +- 通过默认方式、艺术家姓名或者曲目名称对结果排序 +- 以网格或列表模式查询结果 +- 检索视频可以全屏模式观看 +- 以随机或重复模式创建播放列表 +- 应用程序内的音量调整滑块、音轨调节以及专辑封面 +- 播放历史 + +- 网址:[atraci.github.io/Atraci-website][5] +- 开发者:The Atraci Team +- 许可证:The MIT License +- 当前版本:0.7.0 + +-------------------------------------------------------------------------------- + +via: http://www.linuxlinks.com/article/20141116052055674/MusicStreaming.html + +作者:Frazer Kline +译者:[Stevearzh](https://github.com/Stevearzh) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:https://www.spotify.com/uk/download/previews/ +[2]:http://pithos.github.io/ +[3]:https://www.clementine-player.org/ +[4]:https://tiliado.eu/nuvolaplayer/ +[5]:http://atraci.github.io/Atraci-website/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From ab0ed58ba8c9b84023ef0eb508cc5bef3c9263e7 Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Tue, 9 Dec 2014 22:10:32 +0800 Subject: [PATCH 115/158] Translated by Stevearzh --- ...gnificent Linux Music Streaming Clients.md | 35 +------------------ 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md b/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md index a66547ee62..526905c329 100644 --- a/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md +++ b/translated/share/20141127 Five Magnificent Linux Music Streaming Clients.md @@ -193,37 +193,4 @@ via: http://www.linuxlinks.com/article/20141116052055674/MusicStreaming.html [2]:http://pithos.github.io/ [3]:https://www.clementine-player.org/ [4]:https://tiliado.eu/nuvolaplayer/ -[5]:http://atraci.github.io/Atraci-website/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +[5]:http://atraci.github.io/Atraci-website/ \ No newline at end of file From 48d8eb34244fbc3b4cc0ca9e2de720e66eb51775 Mon Sep 17 00:00:00 2001 From: yupmoon Date: Tue, 9 Dec 2014 22:52:30 +0800 Subject: [PATCH 116/158] translated --- ...t Open Source Web Browser Security Apps.md | 90 ------------------- ...t Open Source Web Browser Security Apps.md | 86 ++++++++++++++++++ 2 files changed, 86 insertions(+), 90 deletions(-) delete mode 100644 sources/share/20141120 5 Best Open Source Web Browser Security Apps.md create mode 100644 translated/share/20141120 5 Best Open Source Web Browser Security Apps.md diff --git a/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md b/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md deleted file mode 100644 index b819bfed2b..0000000000 --- a/sources/share/20141120 5 Best Open Source Web Browser Security Apps.md +++ /dev/null @@ -1,90 +0,0 @@ -[yupmoon translating] - - - -5 Best Open Source Web Browser Security Apps -================================================================================ -The Web browser acts as the gateway for myriad online services these days. Computer security problems are far from solved, and technology advances provide new ways for malware to infect our devices and enter our business networks. For example, smartphones and tablets offer fresh new fields for malware—and its malicious cousin, "[malvertising][1]"—to exploit. - -Malvertising, or malicious advertising, injects malware into legitimate ads and ad networks. Granted, you could argue that there's a thin line between "legitimate" ads and ad networks and not-legitimate ads and ad networks. But don’t get distracted. Privacy and security are inextricably linked, and protecting your privacy is part of protecting your security. - -Firefox, Chrome, and Opera are the best Web browsers; they offer the best performance, the most compatibility, and the best security. These five open source security apps install in your Web browser, and they protect you from a variety of threats. - -### Protect Your Privacy: Open Source Web Browser Security Apps ### - -#### 1. [AdBlock][2] #### - -Ad networks are wonderful malware vectors. A single ad network serves thousands of sites, so compromising one ad network equals many thousands of compromised machines. AdBlock, and its derivatives—[AdBlock Plus][2], [AdBlock Pro][3], and [AdBlock Edge][4]—are all great tools for blocking ads, which has the added benefit of making cluttery annoying ads-infested sites more usable. - -Of course there is a downside: harming sites that depend on ad revenues. All of them have one-click whitelists, so you can selectively turn off ad-blocking on sites that you want to support. (Really, my dear Webmeisters, if you don't want your site visitors blocking your ads then don't be obnoxious.) - -![](http://www.smallbusinesscomputing.com/imagesvr_ce/5731/fig-1-easylist_1.jpg) - -Figure 1: Selecting additional filters for your Ad Blocker. - -Ad blockers do more than block ads; they also block Web-tracking bugs and malicious domains. To turn on additional filter lists, click on your ad blocker icon > click **Preferences**, and go to the **Filter Subscriptions** tab. Click the **Add Filter Subscription** button, and then add **Easy Privacy + EasyList**. The Malware Domains filter is a good one to include as well; it blocks domains that are known to host malware and spyware. Adblock works with Firefox, Chrome, Opera, Safari, Internet Explorer, and Android. - -#### 2. [HTTPS Everywhere][5] #### - -HTTPS Everywhere browser extension ensures that you will never accidentally connect to a Web site with HTTP when HTTPS is available. HTTPS means your connection is encrypted with SSL (secure sockets layer), which is a commonly-used protocol for encrypting Web and email connections. HTTPS Everywhere is available for Firefox, Chrome, and Opera. - -When you install HTTPS Everywhere, it asks if you want to enable the SSL Observatory. Say yes, as it offers additional protections against man-in-the-middle and bogus SSL certificate attacks. HTTPS Everywhere works with Firefox, Chrome, Opera, Android. - -#### 3. [Social Fixer][6] #### - -Social Fixer tames Facebook. It gives you mighty powers to filter your news feed so that you see what you want to see, creates tabbed feeds organized by topic, hides whatever you don't want to see, displays pictures full-sized on mouse-over, disables the Theater view of images, and lots more. - -It's not really designed to be a security tool, but Social Fixer offers two important security features: - -- It anonymizes Facebook pages for screenshots by replacing profile pictures with generic icons, and it changes usernames to fake names -- It reliably blocks Facebook games, which are notorious sources of trouble - -![](http://www.smallbusinesscomputing.com/imagesvr_ce/2858/fig-2-socialfixer_1.jpg) - -Figure 2: Anonymizing a Facebook screen with Social Fixer. - -#### 4. [Privacy Badger][7] #### - -The Electronic Frontier Foundation's Privacy Badger is a superb tracker-and spy-ads blocker. These days Web pages are composed of content from multiple sources: ad servers, comments servers, content farms, image farms, third-party login servers, and gosh knows what-all. - -AdBlock is good at blocking this junk, but Privacy Badger is better. It doesn't rely on filter lists, which have to be maintained by humans somewhere, but rather algorithms and policy methods, and you can easily override it if it blocks something in error. Privacy Badger works with Firefox and Chrome. - -![](http://www.smallbusinesscomputing.com/imagesvr_ce/9256/fig-3-privacybadger_1.jpg) - -Figure 3: Privacy Badger blocks tracking sites. - -Privacy Badger should just work. Click on its icon to see what it's blocking on any site you're visiting. Try it on Huffingtonpost.com, one of the champions of stuffing the maximum number of third-party components into each and every page (Figure 3). - -The sliders tell the status of each site: red means that site is completely blocked, so it can't set cookies or serve up any content to you. Yellow indicates a third-party domain that appears to be trying to track you, but it is on Privacy Badger's whitelist of allowed domains. Green is for a third-party domain that is not yet classified as a tracker, but this could change as you visit **multiple** sites and Privacy Badger observes its behavior. - -You can set the sliders yourself according to your preference; for example, on one site I visited Privacy Badger blocked bazaarvoice.com, which some shopping sites use to host their customer reviews. - -#### 5. [Disconnect][8] #### - -Disconnect is another anti-tracker and anti-cookie tool with a great feature set. It runs on Firefox, Chrome, Internet Explorer, and Safari, and offers special iOS and Android versions. Not only does it foil trackers, it also secures your wireless transmissions (Wi-fi, 3G, and 4G) with its own virtual private network, protecting you from wiretapping and malvertising. It protects you from widgetjacking, which is a technique used by attackers to gain access to your sites that require logins. With widgetjacking they don't even need your password; they use stolen cookies. - -Disconnect also provides a safe search feature that lets you use your favorite search engines while blocking their snoopy data-mining habits. - -Just assume that everyone on the Web is out to get you. It's all abstract and behind the scenes, and not obvious like someone bashing a window to get into your house. But the threats are numerous and real, and you have to take precautions to protect yourself. - -Carla Schroder is the author of The Book of Audacity, Linux Cookbook, Linux Networking Cookbook,and hundreds of Linux how-to articles. She's the former managing editor of Linux Planet and Linux Today. - --------------------------------------------------------------------------------- - -via: http://www.smallbusinesscomputing.com/biztools/5-best-open-source-web-browser-security-apps.html - -作者:[Carla Schroder][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.smallbusinesscomputing.com/author/Carla-Schroder-6080.html -[1]:http://www.webopedia.com/TERM/M/malvertising.html -[2]:https://getadblock.com/ -[3]:https://chrome.google.com/webstore/detail/adblock-pro/ocifcklkibdehekfnmflempfgjhbedch?hl=en-US -[4]:https://addons.mozilla.org/en-us/firefox/addon/adblock-edge/ -[5]:https://www.eff.org/Https-everywhere -[6]:http://socialfixer.com/ -[7]:https://www.eff.org/privacybadger -[8]:https://disconnect.me/ diff --git a/translated/share/20141120 5 Best Open Source Web Browser Security Apps.md b/translated/share/20141120 5 Best Open Source Web Browser Security Apps.md new file mode 100644 index 0000000000..088f58f5a9 --- /dev/null +++ b/translated/share/20141120 5 Best Open Source Web Browser Security Apps.md @@ -0,0 +1,86 @@ +5大最佳开源的浏览器安全应用 +================================================================================ +浏览器是现在各种在线服务的入口。电脑安全问题迄今仍未得到解决,技术进步为恶意软件提供了新的途径,感染我们的设备,入侵商业网络。例如,智能手机与平板为恶意软件--及其同伙“[恶意广告][1]”--带来一片全新天地,它们在其中腾挪作乱。 + +恶意广告在合法广告与合法网络中注入恶意软件。当然你可能会认为“合法”广告与网络与非法广告与网络之间仅有一线之隔。但是请不要偏题哦。隐私与安全天生就是一对兄弟,保护隐私也就是保护你的安全。 + +Firefox, Chrome, 以及 Opera当仁不让属最棒的浏览器:性能最佳、兼容性最好、以及安全性最优。以下五个开源安全应用安装于浏览器后会助你抵御种种威胁。 + +### 保护隐私: 开源浏览器安全应用 ### + +#### 1. [AdBlock][2] #### + +广告网络为恶意软件提供了肥沃的土壤。一个广告网络可以覆盖数千站点,因此攻陷一个广告网络就相当于攻陷数千台机器。AdBlock及其衍生品—[AdBlock Plus][2], [AdBlock Pro][3], 与 [AdBlock Edge][4]--都是屏蔽广告的优秀工具,可以让那些充斥烦人广告的网站重新还你一片清静。 + +当然,凡事都有两面性:上述做法损害了依靠广告收入的站点的利益。这些工具一键式白名单功能,对于那些你希望支持的网站,你可以通过白名单功能关闭这些网站的广告屏蔽。(真的,我亲爱的站长们,如果你不希望网站访问者屏蔽你的广告,那么就适可而止,不要让人反感。) + +![](http://www.smallbusinesscomputing.com/imagesvr_ce/5731/fig-1-easylist_1.jpg) + +图1:在Ad Blocker中添加其它过滤规则。 + +Ad Blocker们不仅能屏蔽广告;它们还能屏蔽网站跟踪爬虫与恶意域名。要打开额外过滤规则,点击ad blocker图标 > 点击**首选项**,转至**过滤规则订阅**标签。点击按纽**添加订阅过滤规则**,然后加入**Easy Privacy + EasyList**规则。加入恶意域名过滤也是个不错的选择;它会屏蔽那些供恶意软件与间谍软件寄生的域名。Adblock可在Firefox, Chrome, Opera, Safari, IE, 以及Android平台下工作。 + +#### 2. [HTTPS Everywhere][5] #### + +浏览器扩展HTTPS Everywhere可确保在网站HTTPS可用的时候,总是以HTTPS方式连接到站点。HTTPS意味着你的连接是以SSL(安全套接层)方式加密的,SSL协议通常用于加密网站与电子邮件连接。HTTPS Everywhere可在Firefox, Chrome, 及Opera下使用。 + +安装了HTTPS Everywhere之后,它会询问你是否希望启用SSL检测程序。点击是,因为SSL检测程序会提供额外保护,防止中间人攻击与虚假SSL证书攻击。HTTPS Everywhere可在Firefox, Chrome, Opera, Safari, IE, 以及Android平台下工作。 + +#### 3. [Social Fixer][6] #### + +Social Fixer驯服Facebook。它给了你一把尚方宝剑,你可以用它过滤“动态汇总”,从而只看到你想看的动态、生成按主题分类的标签动态、隐藏不想查看的动态、鼠标悬停图片时显示完整尺寸的图片、禁止影院方式浏览图像,还有其它更多功能。 + +Social Fixer本身不是安全工具,但它具有两个重要的安全特性: + +- 它可以将Facebook网页截图中你的个人资料头像以通用图标代替,并以虚假名字替代你的用户名,从而起到匿名作用。 +- 它可以很可靠地屏蔽Facebook游戏,而Facebook游戏正是尽人皆知的麻烦制造者。 + +![](http://www.smallbusinesscomputing.com/imagesvr_ce/2858/fig-2-socialfixer_1.jpg) + +图2: 使用Social Fixer匿名化Facebook网面。 + +#### 4. [Privacy Badger][7] #### + +电子前线基金会出品的Privacy Badger是一款优秀的反跟踪与反间谍广告的拦截工具。现在的网页内容来源可谓五花八门:广告服务器、评论服务器、图片工场、第三方登陆服务器,以及其它种种不一而足。 + +AdBlock也能拦截这些乌七八糟的东西,不过Privacy Badger在此方面更胜一筹。Privacy Badger依靠算法与策略方法而非过滤规则,这样如果拦截出错的话,可以轻易重写,而过滤规则需要专人维护。Privacy Badger在Firefox与Chrome下均可工作。 + +![](http://www.smallbusinesscomputing.com/imagesvr_ce/9256/fig-3-privacybadger_1.jpg) + +图3: Privacy Badger拦截跟踪站点。 + +Privacy Badger装好后就能使用了。点击图标,看看它对你浏览的网页都拦截了哪些东西。你可以试试访问Huffingtonpost.com,这是一家不在每一个页面塞满第三方组件誓不罢休的网站(图3)。 + +滑块显示每个站点的状态:红色表示该站点被彻底拦截,不能设置cookies(缓冲数据),或者向你提供任何内容。黄色意味着第三方域名正试图跟踪,但是它列于Privacy Badger的允许域名的白名单之中。绿色表示第三方目前还未归入跟踪者之列,但是在你访问**若干**网站之后,Privacy Badger会观察其行为,并决定是否将其归为跟踪者。 + +你也可以根据你的偏好来设置滑块;例如,在我访问的某个网站,我用Privacy Badger拦截了bazaarvoice.com,一些购物网站使用这家站点来托管他们的客户评论。 + +#### 5. [Disconnect][8] #### + +Disconnect是另外一款反跟踪反cookie工具,拥有众多功能。它可在Firefox, Chrome, IE, Safari下工作,并且为iOS与Android平台打造了特殊的版本。Disconnect不但能反跟踪,而且它使用自己的虚拟专用网络(VPN),防止窃听与恶意广告,使你的无线传输(Wi-fi, 3G, 4G)更安全。它可以防止部件劫持,而部件劫持是攻击者用于在需要登陆的网站获得访问权限的技术。通过部件劫持,攻击者无需密码,而只要使用窃取的cookies,就能获得网站访问权限。 + +Disconnect还有安全搜索功能,可以阻止搜索引擎爱挖数据的癖好,你可以安心无虞地使用你中意的搜索引擎。 + +想象一下,网页上所有东西都腾空而出,奔你而去。当然这一切都是抽象的且在幕后悄然发生,不象有人正在猛击窗户试图进入你家那么明显罢了。但是,威胁倒是实实在在的,而且数不胜数,所以你必须采取预防措施,来保护自己。 + +Carla Schroder著有The Book of Audacity, Linux Cookbook, Linux Networking Cookbook等书,并撰写了上百篇Linux指南文章。她曾担任Linux Planet与Linux Today网站总编。 + +-------------------------------------------------------------------------------- + +via: http://www.smallbusinesscomputing.com/biztools/5-best-open-source-web-browser-security-apps.html + +作者:[Carla Schroder][a] +译者:[译者ID](https://github.com/yupmoon) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.smallbusinesscomputing.com/author/Carla-Schroder-6080.html +[1]:http://www.webopedia.com/TERM/M/malvertising.html +[2]:https://getadblock.com/ +[3]:https://chrome.google.com/webstore/detail/adblock-pro/ocifcklkibdehekfnmflempfgjhbedch?hl=en-US +[4]:https://addons.mozilla.org/en-us/firefox/addon/adblock-edge/ +[5]:https://www.eff.org/Https-everywhere +[6]:http://socialfixer.com/ +[7]:https://www.eff.org/privacybadger +[8]:https://disconnect.me/ From 0559d9835646fd7e9c41b6c3ad68468428d17487 Mon Sep 17 00:00:00 2001 From: joeren Date: Wed, 10 Dec 2014 08:37:42 +0800 Subject: [PATCH 117/158] Update 20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md --- ...ers--How to crop an image from the command line on Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md b/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md index 74732384d8..1ec7d0a491 100644 --- a/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md +++ b/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md @@ -1,3 +1,4 @@ +Translating by GOLinux! Linux FAQs with Answers--How to crop an image from the command line on Linux ================================================================================ > **Question**: I would like to get rid of white margins of an image file. Is there an easy way to crop an image file from the command line on Linux? @@ -41,4 +42,4 @@ via: http://ask.xmodulo.com/crop-image-command-line-linux.html 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 -[1]:http://ask.xmodulo.com/install-imagemagick-linux.html \ No newline at end of file +[1]:http://ask.xmodulo.com/install-imagemagick-linux.html From 5389dfc5aad3a6bb9d0ab00b15145ad818f77f23 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Wed, 10 Dec 2014 09:04:38 +0800 Subject: [PATCH 118/158] [Translated] 20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md --- ...an image from the command line on Linux.md | 45 ------------------- ...an image from the command line on Linux.md | 44 ++++++++++++++++++ 2 files changed, 44 insertions(+), 45 deletions(-) delete mode 100644 sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md create mode 100644 translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md b/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md deleted file mode 100644 index 1ec7d0a491..0000000000 --- a/sources/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md +++ /dev/null @@ -1,45 +0,0 @@ -Translating by GOLinux! -Linux FAQs with Answers--How to crop an image from the command line on Linux -================================================================================ -> **Question**: I would like to get rid of white margins of an image file. Is there an easy way to crop an image file from the command line on Linux? - -When it comes to converting or editing images files on Linux, ImageMagick is undoubtedly one of the best known all-in-one image software. It boasts of a suite of command-line tools to display, convert, or manipulate more than 200 types of raster or vector image files, all from the command line. ImageMagick can be used for a variety of image editing tasks, such as converting file format, adding special effects, adding text, and transforming (resize, rotate, flip, crop) images. - -If you want to crop an image to trim its margins, you can use two command-line utilities that come with ImageMagick. If you haven't installed ImageMagick, follow [this guideline][1] to install it. - -In this tutorial, let's crop the following PNG image. We want to get rid of the right and bottom margins of the image, so that the chart will be centered. - -![](https://farm8.staticflickr.com/7562/15688242319_ed19aca3a2_z.jpg) - -First, identify the dimension (width and height) of the image file. You can use identify command for that. - - $ identify chart.png - ----------- - - chart.png PNG 1500x1000 1500x1000+0+0 8-bit DirectClass 31.7KB 0.000u 0:00.000 - -As shown above, the input image is 1500x1000px. - -Next, determine two things for image cropping: (1) the position at which the cropped image will start, and (2) the size of the cropped rectangle. - -In this example, let's assume that the cropped image starts at top left corner, more specifically at x=20px and y=10px, and that the size of a cropped image will be 1200x700px. - -The utility used to crop an image is convert. With "-crop" option, the convert command cuts out a rectangular region of an input image. - - $ convert chart.png -crop 1200x700+20+10 chart-cropped.png - -Given the input image chart.png, the convert command will store the cropped image as chart-cropped.png. - -![](https://farm8.staticflickr.com/7527/15872271461_401276e072_z.jpg) - --------------------------------------------------------------------------------- - -via: http://ask.xmodulo.com/crop-image-command-line-linux.html - -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://ask.xmodulo.com/install-imagemagick-linux.html diff --git a/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md b/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md new file mode 100644 index 0000000000..d7683d12f3 --- /dev/null +++ b/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md @@ -0,0 +1,44 @@ +Linux有问必答——如何在Linux命令行中剪裁图像 +================================================================================ +> **问题**:我想要去除图像文件中的白色空白,有没有什么便捷的方法能在Linux命令行中对图像文件进行剪裁? + +当涉及到在Linux中转换或编辑图像文件时,ImageMagick毫无疑问是最为熟知的一体化软件之一。它包含了一整套命令行工具,用以显示、转换,或复制超过200中类型的光栅或矢量图像文件,所有这一切都在命令行下完成。ImageMagick可以用于多样化的图像编辑工作,如转换文件格式,添加特殊效果,添加文本,以及改变图像(调整大小、旋转、翻转、剪裁)。 + +如果你想要剪裁映像以剪除空白,你可以使用ImageMagick自带的两个命令行工具。如果你还没有安装ImageMagick,请遵循[本指南][1]来安装。 + +在本教程中,让我们来剪裁以下PNG图像。我们想要去除图像右边和底部的空白,以便让图标居中。 + +![](https://farm8.staticflickr.com/7562/15688242319_ed19aca3a2_z.jpg) + +首先,鉴定图像文件的尺寸(宽度和高度)。你可以使用identity命令来完成此事。 + + $ identify chart.png + +---------- + + chart.png PNG 1500x1000 1500x1000+0+0 8-bit DirectClass 31.7KB 0.000u 0:00.000 + +就像上面显示的那样,输入的图像是1500x1000px。 + +接下来,确定图像剪裁要做的两件事:(1)剪裁图像开始的位置,和(2)剪裁矩形区域的大小。 + +在本例中,让我们假定图像剪裁从左上角开始,更精确点是在x=20px和y=10px,那样的话,剪裁后的图像尺寸为1200x700px。 + +用于剪裁图像的工具是convert。使用“-crop”选项后,convert命令会在输入图像中剪裁出一个矩形区域。 + + $ convert chart.png -crop 1200x700+20+10 chart-cropped.png + +指定输入图像为chart.png,convert命令会将剪裁后的图像存储为chart-cropped.png。 + +![](https://farm8.staticflickr.com/7527/15872271461_401276e072_z.jpg) + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/crop-image-command-line-linux.html + +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://ask.xmodulo.com/install-imagemagick-linux.html From b4133cfddc22f8e3cb91389a2340432ffca7e98a Mon Sep 17 00:00:00 2001 From: joeren Date: Wed, 10 Dec 2014 09:07:31 +0800 Subject: [PATCH 119/158] Update 20141208 Nathive--A libre software image editor.md --- .../share/20141208 Nathive--A libre software image editor.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/share/20141208 Nathive--A libre software image editor.md b/sources/share/20141208 Nathive--A libre software image editor.md index 8252019790..93134f50ea 100644 --- a/sources/share/20141208 Nathive--A libre software image editor.md +++ b/sources/share/20141208 Nathive--A libre software image editor.md @@ -1,3 +1,4 @@ +Translating by GOLinux! Nathive – A libre software image editor ================================================================================ Nathive is a libre software image editor, similar to Adobe Photoshop, Corel Photo-Paint or GIMP, but focused on usability, logic and providing a smooth learning curve for everyone. The project runs in the GNOME desktop environment and anyone is welcome to collaborate on it with code, translations or ideas. @@ -29,4 +30,4 @@ via: http://www.ubuntugeek.com/nathive-a-libre-software-image-editor.html 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://www.nathive.org/download \ No newline at end of file +[1]:http://www.nathive.org/download From dc4b3340b2f9efeee2a42d9ecc9bfb7458c6cb8c Mon Sep 17 00:00:00 2001 From: joeren Date: Wed, 10 Dec 2014 09:08:32 +0800 Subject: [PATCH 120/158] Update 20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md --- .../20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md b/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md index 117ca40b1b..8b926b34e4 100644 --- a/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md +++ b/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md @@ -1,3 +1,4 @@ +Translating by GOLinux! Getting Started With Ubuntu 14.04 (PDF Guide) ================================================================================ Become familiar with everyday tasks such as surfing the web, listening to music and scanning documents. @@ -19,4 +20,4 @@ via: http://www.ubuntugeek.com/getting-started-with-ubuntu-14-04-pdf-guide.html 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://ubuntugeek.tradepub.com/free/w_ubun06/ \ No newline at end of file +[1]:http://ubuntugeek.tradepub.com/free/w_ubun06/ From 27d61e5795d1ba68c8dfcfab28711c9b414f3f79 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Wed, 10 Dec 2014 10:03:43 +0800 Subject: [PATCH 121/158] [Translated] Two --- ... Nathive--A libre software image editor.md | 33 ------------------- ...g Started With Ubuntu 14.04 (PDF Guide).md | 11 +++---- ... Nathive--A libre software image editor.md | 32 ++++++++++++++++++ 3 files changed, 37 insertions(+), 39 deletions(-) delete mode 100644 sources/share/20141208 Nathive--A libre software image editor.md rename {sources => translated}/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md (52%) create mode 100644 translated/share/20141208 Nathive--A libre software image editor.md diff --git a/sources/share/20141208 Nathive--A libre software image editor.md b/sources/share/20141208 Nathive--A libre software image editor.md deleted file mode 100644 index 93134f50ea..0000000000 --- a/sources/share/20141208 Nathive--A libre software image editor.md +++ /dev/null @@ -1,33 +0,0 @@ -Translating by GOLinux! -Nathive – A libre software image editor -================================================================================ -Nathive is a libre software image editor, similar to Adobe Photoshop, Corel Photo-Paint or GIMP, but focused on usability, logic and providing a smooth learning curve for everyone. The project runs in the GNOME desktop environment and anyone is welcome to collaborate on it with code, translations or ideas. - -This project is in beta phase, so it is an incomplete work, unfit for the end user yet. Until now the development was focused in laying down the application core and create easy dev tools, so for now we will focus on create new plugins, because there are obvious lacks yet. - -The intention is to achieve a professional image editor progressively without giving up initial usability. Nathive is written from scratch in Python using GTK+, and is designed to be simple, lightweight, and easy to install and use. - -### Install Nathive on ubuntu ### - -You need to download .deb package from [here][1] .Once you have deb package you can double click to install - -### Screenshots ### - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/1.png) - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/2.png) - -![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/3.png) - --------------------------------------------------------------------------------- - -via: http://www.ubuntugeek.com/nathive-a-libre-software-image-editor.html - -作者:[ruchi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://www.nathive.org/download diff --git a/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md b/translated/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md similarity index 52% rename from sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md rename to translated/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md index 8b926b34e4..2488e72f24 100644 --- a/sources/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md +++ b/translated/share/20141208 Getting Started With Ubuntu 14.04 (PDF Guide).md @@ -1,11 +1,10 @@ -Translating by GOLinux! -Getting Started With Ubuntu 14.04 (PDF Guide) +开始使用Ubuntu 14.04(PDF指南) ================================================================================ -Become familiar with everyday tasks such as surfing the web, listening to music and scanning documents. +开始熟悉每天的任务,像上网冲浪,听听音乐,还有扫描文档之类。 -Enjoy this comprehensive beginners guide for the Ubuntu operating system. With easy-to-follow instructions, this guide is suitable for all levels of experience. Discover the potential of your Ubuntu system without getting bogged down with technical details. +好好享受这份全面而综合的Ubuntu操作系统初学者指南吧。本教程适用于任何经验等级的人,跟着傻瓜式的指令一步一步操作吧。好好探索Ubuntu系统的潜力吧,你不会因为技术细节而陷入困境。 -- [**Getting Started With Ubuntu 14.04 (PDF Guide)**][1] +- [**开始使用Ubuntu 14.04 (PDF指南)**][1] ![](http://img.tradepub.com/free/w_ubun06/images/w_ubun06c.gif) @@ -14,7 +13,7 @@ Enjoy this comprehensive beginners guide for the Ubuntu operating system. With e via: http://www.ubuntugeek.com/getting-started-with-ubuntu-14-04-pdf-guide.html 作者:[ruchi][a] -译者:[译者ID](https://github.com/译者ID) +译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/translated/share/20141208 Nathive--A libre software image editor.md b/translated/share/20141208 Nathive--A libre software image editor.md new file mode 100644 index 0000000000..07e731432f --- /dev/null +++ b/translated/share/20141208 Nathive--A libre software image editor.md @@ -0,0 +1,32 @@ +Nathive——libre软件图像编辑器 +================================================================================ +Nathive是一个libre软件图像编辑器,和Adobe Photoshop、Corel Photo-Paint或GIMP类似,但是侧重于可用性、逻辑,并为每个人提供平滑的学习曲线。该项目在GNOME桌面环境中运行,并欢迎每个人在代码、翻译或想法等方面合作。 + +该项目尚处于beta阶段,所以它还是个未完成得工作,还不适用于终端用户。直到现在,开发始终专注于积淀应用的核心功能和创建便捷的开发工具。所以,目前我们将集中于创建新的插件,因为很明显在这方面还很缺乏。 + +其目的在于在不放弃最初的可用性的情况下,逐步将该软件打造成一个专业的额图像编辑器。Nathive由基于GTK+的Python脚本写成的,它设计为简洁、轻量,而且易于安装和使用。 + +### ubuntu上安装Nathive ### + +你需要从[这里][1]下载.deb包,然后双击来安装。 + +### 屏幕截图 ### + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/1.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/2.png) + +![](http://www.ubuntugeek.com/wp-content/uploads/2014/12/3.png) + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/nathive-a-libre-software-image-editor.html + +作者:[ruchi][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]:http://www.nathive.org/download From 4bf101114ef54100a1a0e15b6449bbcc022a3bda Mon Sep 17 00:00:00 2001 From: yupmoon Date: Wed, 10 Dec 2014 11:15:05 +0800 Subject: [PATCH 122/158] yupmoon translating --- .../20141204 Readers' Choice Awards 2014--Linux Journal.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md b/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md index b68509ee00..57c9418fb1 100644 --- a/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md +++ b/sources/news/20141204 Readers' Choice Awards 2014--Linux Journal.md @@ -1,3 +1,6 @@ +translating by yupmoon + + Readers' Choice Awards 2014--Linux Journal ================================================================================ It's time for another Readers' Choice issue of Linux Journal! The format last year was well received, so we've followed suit making your voices heard loud again. I couldn't help but add some commentary in a few places, but for the most part, we just reported results. Please enjoy this year's Readers' Choice Awards! @@ -534,4 +537,4 @@ via: http://www.linuxjournal.com/rc2014 [a]:http://www.linuxjournal.com/users/shawn-powers [1]:http://www.linuxjournal.com/contact -[2]:http://www.linuxjournal.com/rc2014/coolest \ No newline at end of file +[2]:http://www.linuxjournal.com/rc2014/coolest From 0c763de017fb1843829ba82a967f9fdbb879bf6e Mon Sep 17 00:00:00 2001 From: DeadFire Date: Wed, 10 Dec 2014 16:16:48 +0800 Subject: [PATCH 123/158] =?UTF-8?q?20141210-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...log client for remote logging on CentOS.md | 102 +++++++ ...backup plan for Debian with backupninja.md | 248 ++++++++++++++++++ ...Evernote from the command line on Linux.md | 149 +++++++++++ 3 files changed, 499 insertions(+) create mode 100644 sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md create mode 100644 sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md create mode 100644 sources/tech/20141210 How to use Evernote from the command line on Linux.md diff --git a/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md b/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md new file mode 100644 index 0000000000..4e9817b7f3 --- /dev/null +++ b/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md @@ -0,0 +1,102 @@ +How to configure rsyslog client for remote logging on CentOS +================================================================================ +**rsyslog** is an open source utility widely used on Linux systems to forward or receive log messages via TCP/UDP protocols. rsyslog daemon can be configured in two scenarios. Configured as a log collector server, rsyslog daemon can gather log data from all other hosts in the network, which are configured to send their internal logs to the server. In another role, rsyslog daemon can be configured as a client which filters and sends internal log messages to either a local folder (e.g. /var/log) or a remote rsyslog server based on routing facility. + +Assuming that you already have a rsyslog server [up and running][1] on your network, this guide will show you how to set up a CentOS system to route its internal log messages to a remote rsyslog server. This will greatly improve your system's disk usage, especially if you don't have a separate large partition dedicated for /var directory. + +### Step One: Install Rsyslog Daemon ### + +On CentOS 6 and 7, rsyslog daemon comes preinstalled. To verify that rsyslog is installed on your CentOS system, issue the following command: + + # rpm -qa | grep rsyslog + # rsyslogd -v + +![](https://farm8.staticflickr.com/7502/15988316295_ac2e07e7f3_z.jpg) + +If for some reason rsyslog daemon is missing on your system, issue the following command to install it: + + # yum install rsyslog + +### Step Two: Configure Rsyslog Daemon as a Client ### + +The next step is to transform your CentOS machine into a rsyslog client which sends all of its internal log messages to the central remote log server. + +To do so, open the main rsyslog configuration file located in /etc path with your favorite text editor: + + # nano /etc/rsyslog.conf + +After the file is opened for editing, you need to add the following statement at the bottom of the file. Replace the IP address with your remote rsyslog server's IP address. + + *.* @192.168.1.25:514 + +The above statement tells rsyslog daemon to route every log message from every facility on the system to the remote rsyslog server (192.168.1.25) on UDP port 514. + +If for some reasons you need a more reliable protocol like TCP, and the rsyslog server is configured to listen for TCP connections, you must add an extra @ character in front of the remote host's IP address as in the below excerpt: + + *.* @@192.168.1.25:514 + +Note that you can also replace the IP address of the rsyslog server with its DNS name (FQDN). + +If you want to forward log messages from a specific facility only, let's say kernel facility, then you can use the following statement in your rsyslog configuration file. + + kern.* @192.168.1.25:514 + +Once you have modified the configuration, you need to restart the daemon to activate the change: + +**On CentOS 7:** + + # systemctl restart rsyslog.service + +**On CentOS 6:** + + # service rsyslog restart + +In another scenario, let's assume that you have installed an application named "foobar" on your machine, which generates logs to /var/log/foobar.log file. Now you want to direct only its logs to a remote rsyslog server. This can be achieved by loading imfile module in the rsyslog configuration as follows. + +First load the imfile module. This must be done just once. + + module(load="imfile" PollingInterval="5") + +Then specify the path to the log file that the imfile module should monitor: + + input(type="imfile" + File="/var/log/foobar.log" + Tag="foobar" + Severity="error" + Facility="local7") + +Finally, direct local7 facility to the remote rsyslog server: + + local7.* @192.168.1.25:514 + +Don't forget to restart rsyslog daemon. + +### Step Three: Enable Rsyslog Daemon to Auto-start ### + +To automatically start rsyslog client after every system reboot, run the following command to enable it system-wide: + +**On CentOS 7:** + + # systemctl enable rsyslog.service + +**On CentOS 6:** + + # chkconfig rsyslog on + +### Summary ### + +In this tutorial I demonstrated how to turn a CentOS system into rsyslog client to force it to send its log messages to a remote rsyslog server. Here I assume that the connection between a rsyslog client and rsyslog server is secure (e.g., within corporate network protected by a firewall). Under any circumstances do not configure a rsyslog client to forward log messages over insecure networks or, especially, over the Internet as the syslog protocol is a clear-text protocol. For secure transmission, consider encrypting syslog messages using [TLS/SSL][2]. + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/configure-rsyslog-client-centos.html + +作者:[Caezsar M][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/caezsar +[1]:http://xmodulo.com/configure-syslog-server-linux.html +[2]:http://www.rsyslog.com/doc/rsyslog_tls.html \ No newline at end of file diff --git a/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md b/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md new file mode 100644 index 0000000000..cfe50df9d7 --- /dev/null +++ b/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md @@ -0,0 +1,248 @@ +How to create a custom backup plan for Debian with backupninja +================================================================================ +Backupninja is a powerful and highly-configurable backup tool for Debian based distributions. In the [previous tutorial][1], we explored how to install backupninja and how to set up two backup actions for the program to perform. However, we should note that those examples were only "the tip of the iceberg," so to speak. In this post we will discuss how to leverage custom handlers and helpers that allow this program to be customized in order to accomplish almost any backup need that you can think of. + +And believe me - that is not an overstatement, so let's begin. + +### A Quick Review of Backupninja ### + +One of backupninja's distinguishing features is the fact that you can just drop plain text configuration or action files in /etc/backup.d, and the program will take care of the rest. In addition, we can write custom scripts (aka "handlers") and place them in /usr/share/backupninja to handle each type of backup action. Furthermore, we can have these scripts be executed via ninjahelper's ncurses-based interactive menus (aka "helpers") to guide us to create the configuration files we mentioned earlier, minimizing the chances of human error. + +### Creating a Custom Handler and Helper ### + +Our goal in this case is to create a script to handle the backup of chosen home directories into a tarball with either gzip or bzip2 compression, excluding music and video files. We will simply name this script home, and place it under /usr/backup/ninja. + +Although you could achieve the same objective with the default tar handler (refer to /usr/share/backupninja/tar and /usr/share/backupninja/tar.helper), we will use this approach to show how to create a useful handler script and ncurses-based helper from scratch. You can then decide how to apply the same principles depending on your specific needs. + +Note that since handlers are sourced from the main script, there is no need to start with #!/bin/bash at the top. + +Our proposed handler (/usr/share/backupninja/home) is as follows. It is heavily commented for clarification. The getconf function is used to read the backup action's configuration file. If you specify a value for a variable here, it will override the corresponding value present in the configuration file: + + # home handler script for backupninja + + # Every backup file will identify the host by its FQDN + getconf backupname + + # Directory to store backups + getconf backupdir + + # Default compression + getconf compress + + # Include /home directory + getconf includes + + # Exclude files with *.mp3 and *.mp4 extensions + getconf excludes + + # Default extension for the packaged backup file + getconf EXTENSION + + # Absolute path to date binary + getconf TAR `which tar` + + # Absolute path to date binary + getconf DATE `which date` + + # Chosen date format + DATEFORMAT="%Y-%m-%d" + + # If backupdir does not exist, exit with fatal error + if [ ! -d "$backupdir" ] + then + mkdir -p "$backupdir" || fatal "Can not make directory $backupdir" + fi + + # If backupdir is not writeable, exit with fatal error as well + if [ ! -w "$backupdir" ] + then + fatal "Directory $backupdir is not writable" + fi + + # Set the right tar option as per the chosen compression format + case $compress in + "gzip") + compress_option="-z" + EXTENSION="tar.gz" + ;; + "bzip") + compress_option="-j" + EXTENSION="tar.bz2" + ;; + "none") + compress_option="" + ;; + *) + warning "Unknown compress filter ($tar_compress)" + compress_option="" + EXTENSION="tar.gz" + ;; + esac + + # Exclude the following file types / directories + exclude_options="" + for i in $excludes + do + exclude_options="$exclude_options --exclude $i" + done + + # Debugging messages, performing backup + debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \ + -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \ + $includes + + # Redirect standard output to a file with .list extension + # and standard error to a file with .err extension + $TAR -c -p -v $compress_option $exclude_options \ + -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \ + $includes \ + > "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.list \ + 2> "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.err + + [ $? -ne 0 ] && fatal "Tar backup failed" + +Next, we will create our helper file (/usr/share/backupninja/home.helper) so that our handlers shows up as a menu in ninjahelper: + + # Backup action's description. Separate words with underscores. + HELPERS="$HELPERS home:backup_of_home_directories" + + home_wizard() { + home_title="Home action wizard" + + backupname=`hostname --fqdn` + + # Specify default value for the time when this backup actions is supposed to run + inputBox "$home_title" "When to run this action?" "everyday at 01" + [ $? = 1 ] && return + home_when_run="when = $REPLY" + + # Specify default value for backup file name + inputBox "$home_title" "\"Name\" of backups" "$backupname" + [ $? = 1 ] && return + home_backupname="backupname = $REPLY" + backupname="$REPLY" + + # Specify default directory to store the backups + inputBox "$home_title" "Directory where to store the backups" "/var/backups/home" + [ $? = 1 ] && return + home_backupdir="backupdir = $REPLY" + + # Specify default values for the radiobox + radioBox "$home_title" "Compression" \ + "none" "No compression" off \ + "gzip" "Compress with gzip" on \ + "bzip" "Compress with bzip" off + [ $? = 1 ] && return; + result="$REPLY" + home_compress="compress = $REPLY " + + REPLY= + while [ -z "$REPLY" ]; do + formBegin "$home_title: Includes" + formItem "Include:" /home/gacanepa + formDisplay + [ $? = 0 ] || return 1 + home_includes="includes = " + for i in $REPLY; do + [ -n "$i" ] && home_includes="$home_includes $i" + done + done + + REPLY= + while [ -z "$REPLY" ]; do + formBegin "$home_title: Excludes" + formItem "Exclude:" *.mp3 + formItem "Exclude:" *.mp4 + # Add as many “Exclude” text boxes as needed to specify other exclude options + formItem "Exclude:" + formItem "Exclude:" + formDisplay + [ $? = 0 ] || return 1 + home_excludes="excludes = " + for i in $REPLY; do + [ -n "$i" ] && home_excludes="$home_excludes $i" + done + done + + # Save the config + get_next_filename $configdirectory/10.home + cat > $next_filename < Date: Wed, 10 Dec 2014 20:07:20 +0800 Subject: [PATCH 124/158] Translating by ZTinoZ --- ...119 10 SCP Commands to Transfer Files or Folders in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 0c67bdef57..94a082a1f6 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -136,7 +136,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ### 限制带宽使用 ### -Another parameter that may useful is “**-l**” parameter. The “**-l**” parameter will limit the bandwidth to use. It will be useful if you do an automation script to copy a lot of file, but you don’t want the bandwidth is drained by the **SCP** process. +还有一个很有用的参数是“**-l**”参数,它能限制使用带宽。It will be useful if you do an automation script to copy a lot of file, but you don’t want the bandwidth is drained by the **SCP** process. pungki@mint ~/Documents $ scp -l 400 Label.pdf mrarianto@202.x.x.x:. From e2dd61786bc8237e8258434a73882576ffabb903 Mon Sep 17 00:00:00 2001 From: su-kaiyao <1250471161@qq.com> Date: Wed, 10 Dec 2014 20:50:34 +0800 Subject: [PATCH 125/158] su-kaiyao translated --- ...Commands to Check Memory Usage in Linux.md | 131 ---------------- ...Commands to Check Memory Usage in Linux.md | 147 ++++++++++++++++++ 2 files changed, 147 insertions(+), 131 deletions(-) delete mode 100644 sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md create mode 100644 translated/tech/20141205 10 free Commands to Check Memory Usage in Linux.md diff --git a/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md b/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md deleted file mode 100644 index 510e4d571a..0000000000 --- a/sources/tech/20141205 10 free Commands to Check Memory Usage in Linux.md +++ /dev/null @@ -1,131 +0,0 @@ -[su-kaiyao]translating - -10 ‘free’ Commands to Check Memory Usage in Linux -================================================================================ -**Linux** is one of the most popular open source operating system and comes with huge set of commands. The most important and single way of determining the total available space of the **physical memory** and **swap memory** is by using “**free**” command. - -The Linux “**free**” command gives information about total used and available space of **physical memory** and **swap memory** with **buffers** used by kernel in **Linux/Unix** like operating systems. - -![10 Linux Free Command Examples](http://www.tecmint.com/wp-content/uploads/2012/09/Linux-Free-commands.png) - -This article provides some useful examples of “**free**” commands with options, that might be useful for you to better utilize memory that you have. - -### 1. Display System Memory ### - -Free command used to check the used and available space of **physical memory** and **swap memory** in **KB**. See the command in action below. - - # free - - total used free shared buffers cached - Mem: 1021628 912548 109080 0 120368 655548 - -/+ buffers/cache: 136632 884996 - Swap: 4194296 0 4194296 - -### 2. Display Memory in Bytes ### - -Free command with option **-b**, display the size of memory in **Bytes**. - - # free -b - - total used free shared buffers cached - Mem: 1046147072 934420480 111726592 0 123256832 671281152 - -/+ buffers/cache: 139882496 906264576 - Swap: 4294959104 0 4294959104 - -### 3. Display Memory in Kilo Bytes ### - -Free command with option **-k**, display the size of memory in (KB) **Kilobytes**. - - # free -k - - total used free shared buffers cached - Mem: 1021628 912520 109108 0 120368 655548 - -/+ buffers/cache: 136604 885024 - Swap: 4194296 0 4194296 - -### 4. Display Memory in Megabytes ### - -To see the size of the memory in **(MB) Megabytes** use option as **-m**. - - # free -m - - total used free shared buffers cached - Mem: 997 891 106 0 117 640 - -/+ buffers/cache: 133 864 - Swap: 4095 0 4095 - -### 5. Display Memory in Gigabytes ### - -Using **-g** option with free command, would display the size of the memory in **GB(Gigabytes)**. - - # free -g - total used free shared buffers cached - Mem: 0 0 0 0 0 0 - -/+ buffers/cache: 0 0 - Swap: 3 0 3 - -### 6. Display Total Line ### - -Free command with -t option, will list the total line at the end. - - # free -t - - total used free shared buffers cached - Mem: 1021628 912520 109108 0 120368 655548 - -/+ buffers/cache: 136604 885024 - Swap: 4194296 0 4194296 - Total: 5215924 912520 4303404 - -### 7. Disable Display of Buffer Adjusted Line ### - -By default the free command display “**buffer adjusted**” line, to disable this line use option as -o. - - # free -o - - total used free shared buffers cached - Mem: 1021628 912520 109108 0 120368 655548 - Swap: 4194296 0 4194296 - -### 8. Dispaly Memory Status for Regular Intervals ### - -The -s option with number, used to update free command at regular intervals. For example, the below command will update free command every 5 seconds. - - # free -s 5 - - total used free shared buffers cached - Mem: 1021628 912368 109260 0 120368 655548 - -/+ buffers/cache: 136452 885176 - Swap: 4194296 0 4194296 - -### 9. Show Low and High Memory Statistics ### - -The -l switch displays detailed high and low memory size statistics. - - # free -l - - total used free shared buffers cached - Mem: 1021628 912368 109260 0 120368 655548 - Low: 890036 789064 100972 - High: 131592 123304 8288 - -/+ buffers/cache: 136452 885176 - Swap: 4194296 0 4194296 - -### 10. Check Free Version ### - -The -V option, display free command version information. - - # free -V - - procps version 3.2.8 - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/check-memory-usage-in-linux/ - -作者:[Ravi Saive][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.tecmint.com/author/admin/ diff --git a/translated/tech/20141205 10 free Commands to Check Memory Usage in Linux.md b/translated/tech/20141205 10 free Commands to Check Memory Usage in Linux.md new file mode 100644 index 0000000000..fe56c55f93 --- /dev/null +++ b/translated/tech/20141205 10 free Commands to Check Memory Usage in Linux.md @@ -0,0 +1,147 @@ +10个检测Linux内存使用情况的‘free’命令 +=== + +**Linux**是最有名的开源操作系统之一,它拥有着极其巨大的指令集。确定**物理内存**和**交换内存**所有可用空间的最重要,也是唯一的方法是使用“**free**”命令。 + +Linux “**free**”命令通过给出**Linux/Unix**操作系统中内核已使用的**buffers**情况,来提供**物理内存**和**交换内存**的总使用量和可用量。 + +![10 Linux Free Command Examples](http://www.tecmint.com/wp-content/uploads/2012/09/Linux-Free-commands.png) + +这篇文章提供一些带有参数选项的“**free**”命令,这些命令对于你更好地利用你的内存会有帮助。 + +### 1. 显示你的系统内存 ### + +free命令用于检测**物理内存**和**交换内存**已使用量和可用量(单位为**KB**)。下面演示命令的使用情况。 + + # free + + total used free shared buffers cach +ed + Mem: 1021628 912548 109080 0 120368 6555 +48 + -/+ buffers/cache: 136632 884996 + Swap: 4194296 0 4194296 + +### 2. 以字节为单位显示内存 ### + +加上**-b**参数的free命令,以**字节**为单位显示内存的大小。 + + # free -b + + total used free shared buffers cach +ed + Mem: 1046147072 934420480 111726592 0 123256832 6712811 +52 + -/+ buffers/cache: 139882496 906264576 + Swap: 4294959104 0 4294959104 + +### 3. 以千字节为单位显示内存 ### + +加上**-k**参数的free命令,以(KB)**千字节**为单位显示内存大小。 + + # free -k + + total used free shared buffers cach +ed + Mem: 1021628 912520 109108 0 120368 655548 + -/+ buffers/cache: 136604 885024 + Swap: 4194296 0 4194296 + +### 4. 以兆字节为单位显示内存 ### + +想以**(兆字节)**显示内存大小,使用**-m**参数。 + + # free -m + + total used free shared buffers cach +ed + Mem: 997 891 106 0 117 6 +40 + -/+ buffers/cache: 133 864 + Swap: 4095 0 4095 + +### 5. 以千兆字节为单位显示内存 ### + +使用**-g**为参数,将会以**GB(千兆字节)**为单位显示内存大小。 + + # free -g + total used free shared buffers cached + Mem: 0 0 0 0 0 + 0 + -/+ buffers/cache: 0 0 + Swap: 3 0 3 + +### 6. 显示总计行 ### + +加上-t选项,将会在屏幕最后列出总计一行。 + + # free -t + + total used free shared buffers cache +d + Mem: 1021628 912520 109108 0 120368 6555 +48 + -/+ buffers/cache: 136604 885024 + Swap: 4194296 0 4194296 + Total: 5215924 912520 4303404 + +### 7. 关闭显示缓冲区调整一行 ### + +默认情况下,free命令是显示“**缓冲区调整**”一行的,为了关闭显示,可以加上-o参数。 + + # free -o + + total used free shared buffers cache +d + Mem: 1021628 912520 109108 0 120368 6555 +48 + Swap: 4194296 0 4194296 + +### 8. 定期时间间隔更新内存状态 ### + +-s选项加上一个整数,用来在定期时间间隔内更新free命令。举个例子,下面的命令将会在每5秒更新一个free命令。 + + # free -s 5 + + total used free shared buffers cach +ed + Mem: 1021628 912368 109260 0 120368 6555 +48 + -/+ buffers/cache: 136452 885176 + Swap: 4194296 0 4194296 + +### 9. 显示底和高内存统计信息 ### + +-l选项显示了具体的高和低内存的使用统计情况。 + + # free -l + + total used free shared buffers cach +ed + Mem: 1021628 912368 109260 0 120368 6555 +48 + Low: 890036 789064 100972 + High: 131592 123304 8288 + -/+ buffers/cache: 136452 885176 + Swap: 4194296 0 4194296 + +### 10. 检查free命令版本 ### + +-V选项,显示free命令版本信息。 + + # free -V + + procps version 3.2.8 + +--- + +via: http://www.tecmint.com/check-memory-usage-in-linux/ + +作者:[Ravi Saive][a] +译者:[su-kaiyao](https://github.com/su-kaiyao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中> +国](http://linux.cn/) 荣誉推出 + +[a]:http://www.tecmint.com/author/admin/ From 128de94826ac7b5cd05da48f9ca6708e7bf33515 Mon Sep 17 00:00:00 2001 From: joeren Date: Thu, 11 Dec 2014 08:43:05 +0800 Subject: [PATCH 126/158] Update 20141210 How to configure rsyslog client for remote logging on CentOS.md --- ...to configure rsyslog client for remote logging on CentOS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md b/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md index 4e9817b7f3..06268a635b 100644 --- a/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md +++ b/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md @@ -1,3 +1,4 @@ +Translating by GOLinux! How to configure rsyslog client for remote logging on CentOS ================================================================================ **rsyslog** is an open source utility widely used on Linux systems to forward or receive log messages via TCP/UDP protocols. rsyslog daemon can be configured in two scenarios. Configured as a log collector server, rsyslog daemon can gather log data from all other hosts in the network, which are configured to send their internal logs to the server. In another role, rsyslog daemon can be configured as a client which filters and sends internal log messages to either a local folder (e.g. /var/log) or a remote rsyslog server based on routing facility. @@ -99,4 +100,4 @@ via: http://xmodulo.com/configure-rsyslog-client-centos.html [a]:http://xmodulo.com/author/caezsar [1]:http://xmodulo.com/configure-syslog-server-linux.html -[2]:http://www.rsyslog.com/doc/rsyslog_tls.html \ No newline at end of file +[2]:http://www.rsyslog.com/doc/rsyslog_tls.html From 9ff2c39e16a4771c89c12d17c45de652aefeb1c8 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Thu, 11 Dec 2014 09:25:54 +0800 Subject: [PATCH 127/158] [Translated] 20141210 How to configure rsyslog client for remote logging on CentOS.md --- ...log client for remote logging on CentOS.md | 103 ------------------ ...log client for remote logging on CentOS.md | 103 ++++++++++++++++++ 2 files changed, 103 insertions(+), 103 deletions(-) delete mode 100644 sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md create mode 100644 translated/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md diff --git a/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md b/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md deleted file mode 100644 index 06268a635b..0000000000 --- a/sources/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md +++ /dev/null @@ -1,103 +0,0 @@ -Translating by GOLinux! -How to configure rsyslog client for remote logging on CentOS -================================================================================ -**rsyslog** is an open source utility widely used on Linux systems to forward or receive log messages via TCP/UDP protocols. rsyslog daemon can be configured in two scenarios. Configured as a log collector server, rsyslog daemon can gather log data from all other hosts in the network, which are configured to send their internal logs to the server. In another role, rsyslog daemon can be configured as a client which filters and sends internal log messages to either a local folder (e.g. /var/log) or a remote rsyslog server based on routing facility. - -Assuming that you already have a rsyslog server [up and running][1] on your network, this guide will show you how to set up a CentOS system to route its internal log messages to a remote rsyslog server. This will greatly improve your system's disk usage, especially if you don't have a separate large partition dedicated for /var directory. - -### Step One: Install Rsyslog Daemon ### - -On CentOS 6 and 7, rsyslog daemon comes preinstalled. To verify that rsyslog is installed on your CentOS system, issue the following command: - - # rpm -qa | grep rsyslog - # rsyslogd -v - -![](https://farm8.staticflickr.com/7502/15988316295_ac2e07e7f3_z.jpg) - -If for some reason rsyslog daemon is missing on your system, issue the following command to install it: - - # yum install rsyslog - -### Step Two: Configure Rsyslog Daemon as a Client ### - -The next step is to transform your CentOS machine into a rsyslog client which sends all of its internal log messages to the central remote log server. - -To do so, open the main rsyslog configuration file located in /etc path with your favorite text editor: - - # nano /etc/rsyslog.conf - -After the file is opened for editing, you need to add the following statement at the bottom of the file. Replace the IP address with your remote rsyslog server's IP address. - - *.* @192.168.1.25:514 - -The above statement tells rsyslog daemon to route every log message from every facility on the system to the remote rsyslog server (192.168.1.25) on UDP port 514. - -If for some reasons you need a more reliable protocol like TCP, and the rsyslog server is configured to listen for TCP connections, you must add an extra @ character in front of the remote host's IP address as in the below excerpt: - - *.* @@192.168.1.25:514 - -Note that you can also replace the IP address of the rsyslog server with its DNS name (FQDN). - -If you want to forward log messages from a specific facility only, let's say kernel facility, then you can use the following statement in your rsyslog configuration file. - - kern.* @192.168.1.25:514 - -Once you have modified the configuration, you need to restart the daemon to activate the change: - -**On CentOS 7:** - - # systemctl restart rsyslog.service - -**On CentOS 6:** - - # service rsyslog restart - -In another scenario, let's assume that you have installed an application named "foobar" on your machine, which generates logs to /var/log/foobar.log file. Now you want to direct only its logs to a remote rsyslog server. This can be achieved by loading imfile module in the rsyslog configuration as follows. - -First load the imfile module. This must be done just once. - - module(load="imfile" PollingInterval="5") - -Then specify the path to the log file that the imfile module should monitor: - - input(type="imfile" - File="/var/log/foobar.log" - Tag="foobar" - Severity="error" - Facility="local7") - -Finally, direct local7 facility to the remote rsyslog server: - - local7.* @192.168.1.25:514 - -Don't forget to restart rsyslog daemon. - -### Step Three: Enable Rsyslog Daemon to Auto-start ### - -To automatically start rsyslog client after every system reboot, run the following command to enable it system-wide: - -**On CentOS 7:** - - # systemctl enable rsyslog.service - -**On CentOS 6:** - - # chkconfig rsyslog on - -### Summary ### - -In this tutorial I demonstrated how to turn a CentOS system into rsyslog client to force it to send its log messages to a remote rsyslog server. Here I assume that the connection between a rsyslog client and rsyslog server is secure (e.g., within corporate network protected by a firewall). Under any circumstances do not configure a rsyslog client to forward log messages over insecure networks or, especially, over the Internet as the syslog protocol is a clear-text protocol. For secure transmission, consider encrypting syslog messages using [TLS/SSL][2]. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/configure-rsyslog-client-centos.html - -作者:[Caezsar M][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/caezsar -[1]:http://xmodulo.com/configure-syslog-server-linux.html -[2]:http://www.rsyslog.com/doc/rsyslog_tls.html diff --git a/translated/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md b/translated/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md new file mode 100644 index 0000000000..08f4c00822 --- /dev/null +++ b/translated/tech/20141210 How to configure rsyslog client for remote logging on CentOS.md @@ -0,0 +1,103 @@ +CentOS上配置rsyslog客户端用以远程记录日志 +================================================================================ +**rsyslog**是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置称两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集所有其它主机上的日志数据,这些主机已经将日志配置为发送到服务器。rsyslog的另外一个角色,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件夹(如/var/log)或一台可以路由到的远程rsyslog服务器上。 + +假定你的网络中已经有一台rsyslog服务器[已经起来并且处于运行中][1],本指南将为你展示如何来设置CentOS系统将其内部日志消息路由到一台远程rsyslog服务器上。这将大大改善你的系统磁盘空间的使用,尤其是你还没有一个独立的用于/var目录的大分区。 + +### 步骤一: 安装Rsyslog守护进程 ### + +在CentOS 6和7上,rsyslog守护进程已经预先安装了。要验证rsyslog是否已经安装到你的CentOS系统上,请执行如下命令: + + # rpm -qa | grep rsyslog + # rsyslogd -v + +![](https://farm8.staticflickr.com/7502/15988316295_ac2e07e7f3_z.jpg) + +如果处于某种原因,rsyslog守护进程没有出现在你的系统中,请使用以下命令来安装: + + # yum install rsyslog + +### 步骤二: 配置Rsyslog守护进程为客户端 ### + +接下来的步骤,是要将你的CentOS机器转变成rsyslog客户端,将其所有内部日志消息发送到远程中央日志服务器上。 + +要实现该功能,请使用你喜爱的文本编辑器打开位于/etc路径下的rsyslog主配置文件: + + # nano /etc/rsyslog.conf + +开启文件用于编辑后,你需要添加以下声明到文件底部。将IP地址替换为你的远程rsyslog服务器的IP地址。 + + *.* @192.168.1.25:514 + +上面的声明告诉rsyslog守护进程,将系统上各个设备的各种日志消息路由到远程rsyslog服务器(192.168.1.25)的UDP端口514。 + +如果出于某种原因,你需要更为可靠的协议,如TCP,而rsyslog服务器也被配置为监听TCP连接,你必须在远程主机的IP地址前添加一个额外的@字符,像下面这样: + + *.* @@192.168.1.25:514 + +注意,你也可以将rsyslog服务器的IP地址替换成它的DNS名称(FQDN)。 + +如果你只想要转发指定设备的日志消息,比如说内核设备,那么你可以在rsyslog配置文件中使用以下声明。 + + kern.* @192.168.1.25:514 + +修改配置文件后,你需要重启进程以激活修改: + +**CentOS 7:** + + # systemctl restart rsyslog.service + +**CentOS 6:** + + # service rsyslog restart + +在另外一种环境中,让我们假定你已经在机器上安装了一个名为“foobar”的应用程序,它会在/var/log下生成foobar.log日志文件。现在,你只想要将它的日志定向到rsyslog服务器,这可以通过像下面这样在rsyslog配置文件中加载imfile模块来实现。 + +首先,加载imfile模块,这必须只做一次。 + + module(load="imfile" PollingInterval="5") + +然后,指定日志文件的路径以便imfile模块可以检测到: + + input(type="imfile" + File="/var/log/foobar.log" + Tag="foobar" + Severity="error" + Facility="local7") + +最后,定向local7设备到远程rsyslog服务器: + + local7.* @192.168.1.25:514 + +别忘了重启rsyslog进程哦! + +### 步骤三: 让Rsyslog进程自动启动 ### + +To automatically start rsyslog client after every system reboot, run the following command to enable it system-wide: +要让rsyslog客户端在每次系统重启后自动启动,请运行以下命令来在系统范围启用: + +**CentOS 7:** + + # systemctl enable rsyslog.service + +**CentOS 6:** + + # chkconfig rsyslog on + +### 小结 ### + +在本教程中,我演示了如何将CentOS系统转变成rsyslog客户端以强制它发送日志消息到远程rsyslog服务器。这里我假定rsyslog客户端和服务器之间的连接是安全的(如,在有防火墙保护的公司网络中)。不管在任何情况下,都不要配置rsyslog客户端将日志消息通过不安全的网络转发,或者,特别是通过互联网转发,因为syslog协议是一个明文协议。要进行安全传输,可以考虑使用[TLS/SSL][2]来加密日志消息。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/configure-rsyslog-client-centos.html + +作者:[Caezsar M][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/caezsar +[1]:http://xmodulo.com/configure-syslog-server-linux.html +[2]:http://www.rsyslog.com/doc/rsyslog_tls.html From d927d84e12f2841d10c6369ca94cfb91f3fcd330 Mon Sep 17 00:00:00 2001 From: Vic___ Date: Thu, 11 Dec 2014 15:12:16 +0800 Subject: [PATCH 128/158] Translated --- ...port internal error reporting on Ubuntu.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md b/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md index eda537fd6e..b69e4f7de1 100644 --- a/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md +++ b/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md @@ -1,36 +1,38 @@ - Vic020 - Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu +有问必答--如何禁止Ubuntu的Apport内部错误报告程序 ================================================================================ -> **Question**: On Ubuntu desktop, I often encounter a popup window, alerting that Ubuntu has experienced an internal error, and asking me to send an error report. This is bothering me as it keeps popping up for every application crash. How can I turn off the error reporting feature? +> **问题**:在桌面版Ubuntu中,我经常遇到一些弹窗窗口,警告我Ubuntu发生了内部错误,问我要不要发送错误报告。每次软件崩溃都要烦扰我,我如何才能关掉这个错误报告功能呢? -Ubuntu desktop comes with Apport pre-installed, which is a system that catches applications crashes, unhandled exceptions or any non-crash application bugs, and automatically generates a crash report for debugging purposes. When an application crash or bug is detected, Apport alerts user of the event by showing a popup window and asking the user to submit a crash report. You will see messages like the following. +Ubuntu桌面版预安装了Apport,它是一个错误收集系统,会收集软件崩溃、未处理异常和其他,包括程序bug,并为调试目的生成崩溃报告。当一个应用程序崩溃或者出现Bug时候,Apport就会通过弹窗警告用户并且询问用户是否提交崩溃报告。你也许也看到过下面的消息。 - "Sorry, the application XXXX has closed unexpectedly." +- "对不起,应用程序XXXX意外关闭了" - "Sorry, Ubuntu XX.XX has experienced an internal error." +- "对不起,Ubuntu XX.XX 经历了一个内部错误" - "System program problem detected." +- "系统程序问题发现" ![](https://farm9.staticflickr.com/8635/15688551119_708b23b12a_z.jpg) -If application crashes are recurring, frequent error reporting alerts can be disturbing. Or you may be worried that Apport can collect and upload any sensitive information of your Ubuntu system. Whatever the reason is, you may want to disable Apport's error reporting feature. +也许因为应用一直崩溃,频繁的错误报告会使人心烦。也许你担心Apport会收集和上传你的Ubuntu系统的敏感信息。无论什么原因,你需要关掉Apport的错误报告功能。 -### Disable Apport Error Reporting Temporarily ### +### 临时关闭Apport错误报告 ### -If you want to disable Apport temporarily, use this command: +如果你想要临时关闭Apport,使用下列命令 $ sudo service apport stop -Note that Apport will be enabled back after you boot your Ubuntu system. +注意重启Ubuntu系统Apport会继续开启 -### Disable Apport Error Reporting Permanently ### +### 永久关闭Apport错误报告 ### -To turn off Apport permanently, edit /etc/default/apport with a text editor, and change the content to the following. +为了永久关闭Apport,编辑/etc/default/apport,修改下列参数 enabled=0 -Now if you reboot your Ubuntu system, Apport will automatically be disabled. +重启你的Ubuntu系统,Apport将会自动关闭 -If you think you will never use Apport, another method is to simply remove it altogether. +如果你再也不会用Apport,有一种简单的方法完全移除它 $ sudo apt-get purge apport @@ -38,7 +40,7 @@ If you think you will never use Apport, another method is to simply remove it al via: http://ask.xmodulo.com/disable-apport-internal-error-reporting-ubuntu.html -译者:[译者ID](https://github.com/译者ID) +译者:[VicYu/Vic020](http://www.vicyu.net/) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From f0baa4539e8d9ce0de8f264e003da4a18c45b63b Mon Sep 17 00:00:00 2001 From: Vic___ Date: Thu, 11 Dec 2014 15:12:51 +0800 Subject: [PATCH 129/158] Moved --- ...s--How to disable Apport internal error reporting on Ubuntu.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md (100%) diff --git a/sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md b/translated/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md similarity index 100% rename from sources/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md rename to translated/tech/20141208 Linux FAQs with Answers--How to disable Apport internal error reporting on Ubuntu.md From 073e360542163476b08c856c0b5dad2e320ac8b7 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 11 Dec 2014 16:45:37 +0800 Subject: [PATCH 130/158] =?UTF-8?q?20141211-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e a syslog server with rsyslog on Linux.md | 158 ++++++++++++++++++ ...lotlib for scientific plotting on Linux.md | 152 +++++++++++++++++ 2 files changed, 310 insertions(+) create mode 100644 sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md create mode 100644 sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md diff --git a/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md b/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md new file mode 100644 index 0000000000..dfa11897de --- /dev/null +++ b/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md @@ -0,0 +1,158 @@ +How to configure a syslog server with rsyslog on Linux +================================================================================ +A syslog server represents a central log monitoring point on a network, to which all kinds of devices including Linux or Windows servers, routers, switches or any other hosts can send their logs over network. By setting up a syslog server, you can filter and consolidate logs from different hosts and devices into a single location, so that you can view and archive important log messages more easily. + +On most Linux distributions, rsyslog is the standard syslog daemon that comes pre-installed. Configured in a client/server architecture, rsyslog can play both roles; as a syslog server rsyslog can gather logs from other devices, and as a [syslog client][1], rsyslog can transmit its internal logs to a remote syslog server. + +In this tutorial, we cover how to configure a centralized syslog server using rsyslog on Linux. Before we go into the details, it is instructive to go over syslog standard first. + +### Basic of Syslog Standard ### + +When logs are collected with syslog mechanism, three important things must be taken into consideration: + +- **Facility level**: what type of processes to monitor +- **Severity (priority) level**: what type of log messages to collect +- **Destination**: where to send or record log messages + +Let's take a look at how the configuration is defined in more detail. + +The facility levels define a way to categorize internal system processes. Some of the common standard facilities in Linux are: + +- **auth**: messages related to authentication (login) +- **cron**: messages related to scheduled processes or applications +- **daemon**: messages related to daemons (internal servers) +- **kernel**: messages related to the kernel +- **mail**: messages related to internal mail servers +- **syslog**: messages related to the syslog daemon itself +- **lpr**: messages related to print servers +- **local0 - local7**: messages defined by user (local7 is usually used by Cisco and Windows servers) + +The severity (priority) levels are standardized, and defined by using standard abbreviation and an assigned number with number 7 being the highest level of all. These levels are: + +- **emerg**: Emergency - 0 +- **alert**: Alerts - 1 +- **crit**: Critical - 2 +- **err**: Errors - 3 +- **warn**: Warnings - 4 +- **notice**: Notification - 5 +- **info**: Information - 6 +- **debug**: Debugging - 7 + +Finally, the destination statement enforces a syslog client to perform one of three following tasks: (1) save log messages on a local file, (2) route them to a remote syslog server over TCP/UDP, or (3) send them to stdout such as a console. + +In rsyslog, syslog configuration is structured based on the following schema. + + [facility-level].[severity-level] [destination] + +### Configure Rsyslog on Linux ### + +Now that we understand syslog, it's time to configure a Linux server as a central syslog server using rsyslog. We will also see how to configure a Windows based system as a syslog client to send internal logs to the syslog server. + +#### Step One: Initial System Requirements #### + +To set up a Linux host as a central log server, we need to create a separate /var partition, and allocate a large enough disk size or create a LVM special volume group. That way, the syslog server will be able to sustain the exponential growth of collected logs over time. + +#### Step Two: Enable Rsyslog Daemon #### + +rsyslog daemon comes pre-installed on modern Linux distributions, but is not enabled by default. To enable rsyslog daemon to receive external messages, edit its configuration file located in /etc/rsyslog.conf. + +Once the file is opened for editing, search and uncomment the below two lines by removing the # sign from the beginning of lines. + + $ModLoad imudp + $UDPServerRun 514 + +This will enable rsyslog daemon to receive log messages on UDP port 514. UDP is way faster than TCP, but does not provide reliability on data flow the same way as TCP does. If you need to reliable delivery, you can enable TCP by uncommenting the following lines. + + $ModLoad imtcp + $InputTCPServerRun 514 + +Note that both TCP and UDP can be set on the server simultaneously to listen on TCP/UDP connections. + +#### Step Three: Create a Template for Log Receipt #### + +In the next step we need to create a template for remote messages, and tell rsyslog daemon how to record messages received from other client machines. + +Open /etc/rsyslog.conf with a text editor, and append the following template before the GLOBAL DIRECTIVES block: + + $template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" * + *.* ?RemoteLogs + & ~ + +This template needs a little explanation. The $template RemoteLogs directive ("RemoteLogs" string can be changed to any other descriptive name) forces rsyslog daemon to write log messages to separate local log files in /var/log/, where log file names are defined based on the hostname of the remote sending machine as well as the remote application that generated the logs. The second line ("*.* ?RemoteLogs") implies that we apply RemoteLogs template to all received logs. + +The "& ~" sign represents a redirect rule, and is used to tell rsyslog daemon to stop processing log messages further, and not write them locally. If this redirection is not used, all the remote messages would be also written on local log files besides the log files described above, which means they would practically be written twice. Another consequence of using this rule is that the syslog server's own log messages would only be written to dedicated files named after machine's hostname. + +If you want, you can direct log messages with a specific facility or severity level to this new template using the following schema. + + [facility-level].[severity-level] ?RemoteLogs + +For example: + +Direct all internal authentication messages of all priority levels to RemoteLogs template: + + authpriv.* ?RemoteLogs + +Direct informational messages generated by all system processes, except mail, authentication and cron messages to RemoteLogs template: + + *.info,mail.none,authpriv.none,cron.none ?RemoteLogs + +If we want all received messages from remote clients written to a single file named after their IP address, you can use the following template. We assign a new name "IpTemplate" to this template. + + $template IpTemplate,"/var/log/%FROMHOST-IP%.log" + *.* ?IpTemplate + & ~ + +After we have enabled rsyslog daemon and edited its configuration file, we need to restart the daemon. + +**On Debian, Ubuntu or CentOS/RHEL 6:** + + $ sudo service rsyslog restart + +**On Fedora or CentOS/RHEL 7:** + + $ sudo systemctl restart rsyslog + +We can verify that rsyslog daemon is functional by using netstat command. + + $ sudo netstat -tulpn | grep rsyslog + +The output should look like the following in case rsyslog daemon listens on UDP port. + + udp 0 0 0.0.0.0:514 0.0.0.0:* 551/rsyslogd + udp6 0 0 :::514 :::* 551/rsyslogd + +If rsyslog daemon is set up to listen on TCP connections, the output should look like this. + + tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogd + tcp6 0 0 :::514 :::* LISTEN 1891/rsyslogd + +### Send Windows Logs to a Remote Rsyslog Server ### + +To forward a Windows based client's log messages to our rsyslog server, we need a Windows syslog agent. While there are a multitude of syslog agents that can run on Windows, we can use [Datagram SyslogAgent][2], which is a freeware program. + +After downloading and installing the syslog agent, we need to configure it to run as a service. Specify the protocol though which it will send data, the IP address and port of a remote rsyslog server, and what type of event logs should be transmitted as follows. + +![](https://farm8.staticflickr.com/7509/15305930594_27b7f4440a_o.jpg) + +After we have set up all the configurations, we can start the service and watch the log files on the central rsyslog server using tailf command line utility. + +### Conclusion ### + +By creating a central rsyslog server that can collect log files of local or remote hosts, we can get a better idea on what is going on internally in their systems, and can debug their problems more easily should any of them become unresponsive or crash. For information about setting up a syslog client, refer to this [guideline][3]. + + + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/configure-syslog-server-linux.html + +作者:[Caezsar M][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/caezsar +[1]:http://xmodulo.com/configure-rsyslog-client-centos.html +[2]:http://www.syslogserver.com/download.html +[3]:http://xmodulo.com/configure-rsyslog-client-centos.html \ No newline at end of file diff --git a/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md b/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md new file mode 100644 index 0000000000..33073ae711 --- /dev/null +++ b/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md @@ -0,0 +1,152 @@ +How to use matplotlib for scientific plotting on Linux +================================================================================ +If you want an efficient, automatable solution for producing high-quality scientific plots in Linux, then consider using matplotlib. Matplotlib is a Python-based open-source scientific plotting package with a license based on the Python Software Foundation license. The extensive documentation and examples, integration with Python and the NumPy scientific computing package, and automation capability are just a few reasons why this package is a solid choice for scientific plotting in a Linux environment. This tutorial will provide several example plots created with matplotlib. + +### Features ### + +- Numerous plot types (bar, box, contour, histogram, scatter, line plots...) +- Python-based syntax +- Integration with the NumPy scientific computing package +- Source data can be Python lists, Python tuples, or NumPy arrays +- Customizable plot format (axes scales, tick positions, tick labels...) +- Customizable text (font, size, position...) +- TeX formatting (equations, symbols, Greek characters...) +- Compatible with IPython (allows interactive plotting from a Python shell) +- Automation - use Python loops to iteratively create plots +- Save plots to image files (png, pdf, ps, eps, and svg format) + +The Python-based syntax of matplotlib serves as the foundation for many of its features and enables an efficient workflow. There are many scientific plotting packages that can produce quality plots, but do they allow you to do it directly from within your Python code? On top of that, do they allow you to create automated routines for iterative creation of plots that can be saved as image files? Matplotlib allows you to accomplish all of these tasks. You can now look forward to saving time that would have otherwise been spent manually creating multiple plots. + +### Installation ### + +Installation of Python and the NumPy package is a prerequisite for use of matplotlib. Instructions for installing NumPy can be found [here][1]. + +To install matplotlib in Debian or Ubuntu, run the following command: + + $ sudo apt-get install python-matplotlib + +To install matplotlib in Fedora or CentOS/RHEL, run the following command: + + $ sudo yum install python-matplotlib + +### Matplotlib Examples ### + +This tutorial will provide several plotting examples that demonstrate how to use matplotlib: + +- Scatter and line plot +- Histogram plot +- Pie chart + +In these examples we will use Python scripts to execute matplotlib commands. Note that the numpy and matplotlib modules must be imported from within the scripts via the import command. np is specified as a reference to the numpy module and plt is specified as a reference to the matplotlib.pyplot namespace: + + import numpy as np + import matplotlib.pyplot as plt + +### Example 1: Scatter and Line Plot ### + +The first script, script1.py completes the following tasks: + +- Creates three data sets (xData, yData1, and yData2) +- Creates a new figure (assigned number 1) with a width and height of 8 inches and 6 inches, respectively +- Sets the plot title, x-axis label, and y-axis label (all with font size of 14) +- Plots the first data set, yData1, as a function of the xData dataset as a dotted blue line with circular markers and a label of "y1 data" +- Plots the second data set, yData2, as a function of the xData dataset as a solid red line with no markers and a label of "y2 data". +- Positions the legend in the upper left-hand corner of the plot +- Saves the figure as a PNG file + +Contents of script1.py: + + import numpy as np + import matplotlib.pyplot as plt + + xData = np.arange(0, 10, 1) + yData1 = xData.__pow__(2.0) + yData2 = np.arange(15, 61, 5) + plt.figure(num=1, figsize=(8, 6)) + plt.title('Plot 1', size=14) + plt.xlabel('x-axis', size=14) + plt.ylabel('y-axis', size=14) + plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data') + plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data') + plt.legend(loc='upper left') + plt.savefig('images/plot1.png', format='png') + +The resulting plot is shown below: + +![](https://farm8.staticflickr.com/7529/15927002365_f5ae11cf02_z.jpg) + +### Example 2: Histogram Plot ### + +The second script, script2.py completes the following tasks: + +- Creates a data set containing 1000 random samples from a Normal distribution +- Creates a new figure (assigned number 1) with a width and height of 8 inches and 6 inches, respectively +- Sets the plot title, x-axis label, and y-axis label (all with font size of 14) +- Plots the data set, samples, as a histogram with 40 bins and an upper and lower bound of -10 and 10, respectively +- Adds text to the plot and uses TeX formatting to display the Greek letters mu and sigma (font size of 16) +- Saves the figure as a PNG file + +Contents of script2.py: + + import numpy as np + import matplotlib.pyplot as plt + + mu = 0.0 + sigma = 2.0 + samples = np.random.normal(loc=mu, scale=sigma, size=1000) + plt.figure(num=1, figsize=(8, 6)) + plt.title('Plot 2', size=14) + plt.xlabel('value', size=14) + plt.ylabel('counts', size=14) + plt.hist(samples, bins=40, range=(-10, 10)) + plt.text(-9, 100, r'$\mu$ = 0.0, $\sigma$ = 2.0', size=16) + plt.savefig('images/plot2.png', format='png') + +The resulting plot is shown below: + +![](https://farm8.staticflickr.com/7531/15304765024_1cc271b6e0_z.jpg) + +### Example 3: Pie Chart ### + +The third script, script3.py completes the following tasks: + +- Creates data set containing five integers +- Creates a new figure (assigned number 1) with a width and height of 6 inches and 6 inches, respectively +- Adds an axes to the figure with an aspect ratio of 1 +- Sets the plot title (font size of 14) +- Plots the data set, data, as a pie chart with labels included +- Saves the figure as a PNG file + +Contents of script3.py: + + import numpy as np + import matplotlib.pyplot as plt + + data = [33, 25, 20, 12, 10] + plt.figure(num=1, figsize=(6, 6)) + plt.axes(aspect=1) + plt.title('Plot 3', size=14) + plt.pie(data, labels=('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5')) + plt.savefig('images/plot3.png', format='png') + +The resulting plot is shown below: + +![](https://farm8.staticflickr.com/7504/15926356092_7c3e5217aa_z.jpg) + +### Summary ### + +This tutorial provides several examples of plots that can be created with the matplotlib scientific plotting package. Matplotlib is a great solution for scientific plotting in a Linux environment given its natural integration with Python and NumPy, its ability to be automated, and its production of a wide variety of customizable high quality plots. Documentation and examples for the matplotlib package can be found [here][2]. + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/matplotlib-scientific-plotting-linux.html + +作者:[Joshua Reed][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/joshua +[1]:http://xmodulo.com/numpy-scientific-computing-linux.html +[2]:http://matplotlib.org/ \ No newline at end of file From ffafaea7f9a912f16416270c72b7cb664965362e Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 11 Dec 2014 16:52:08 +0800 Subject: [PATCH 131/158] =?UTF-8?q?20141211-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rnel 3.18 Released, This Is What' s New.md | 53 +++++++++++++ ...s Linux. No, It' s Not The Tuxpocalypse.md | 74 +++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md create mode 100644 sources/news/20141211 Yes, This Trojan Infects Linux. No, It' s Not The Tuxpocalypse.md diff --git a/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md b/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md new file mode 100644 index 0000000000..f8b1f41ce4 --- /dev/null +++ b/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md @@ -0,0 +1,53 @@ +Linux Kernel 3.18 Released, This Is What’s New +================================================================================ +![](http://www.omgubuntu.co.uk/wp-content/uploads/2011/07/Tux-psd3894.jpg) + +TuxlogoA new month means a new stable release of the Linux Kernel and today Linus Torvalds has obliged, [announcing the immediate availability of Linux 3.18][1]. + +Posted on the Linux Kernel Mailing List, Torvalds explains that while a few niggling issues persist in 3.17 for a small number of users, there was ‘**absolutely no point in having everybody else twiddling their thumbs when a couple of people are actively trying to bisect an older issue**’. + +### What’s New In Linux 3.18? ### + +The Linux 3.18 kernel is amped up with some of the latest improvements in hardware support, power efficiency, bug fixes and reliability. + +As ever, these span the breadth of comprehension, going from bamboozling — e.g., multi buffer operations for cryptographic layers — to the air-punchingly understandable, like support for the Razer Sabertooth gamepad. + +We’ve compiling some of the notable changes made in this release below. It’s far, far, far from being exhaustive, and cherry picks the more relatable. + +- Nouveau (free Nvidia GPU driver) now supports basic DisplayPort audio +- Support for the Razer Sabertooth gamepad, maps it as Xbox 360 controller +- Xilinx USB2 peripherals +- Touchscreen support for Microchip AR1021 i2c, PenMount 6000 touch +- Audio codecs: Cirrus Logic CS35L32, Everest ES8328and Freescale ES8328 +- Audio support: Generic Freescale sound cards, Analog Devices SSM4567 audio amplifier +- Various filesystem improvements, including Btrfs and F2FS +- DCTCP congestion control algorithm now supported +- JIT compilation of eBPF programs on 64-bit builds +- “Tinification” patches to help developers compile leaner, smaller kernels + +#### Installing Linux 3.18 on Ubuntu #### + +Although classed as stable and bringing numerous new changes to the table, don’t feel in a rush to try and upgrade your own OS to it anytime soon. Unless you’re adept at handling the sort of monitor-smashing, CPU-charring, rage-inducing issues that arise from swapping out the engine in your OS motor, you shouldn’t. + +If you insist, you’ll find source packages available at the kernel.org website. + +- [Download the Linux Kernel Source Packages][2] + +A mainline kernel archive is maintained by Canonical to provide builds of newer Linux kernels for use by Ubuntu developers. But, and you really should note this, these are not intended for end users, despite what you may read elsewhere. With no guarantee or support, use at your own risk. + +- [Visit the Ubuntu Kernel Mainline Archive][3] + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/linux-kernel-3-18-released-whats-new + +作者:[Joey-Elijah Sneddon][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:https://lkml.org/lkml/2014/12/7/202 +[2]:https://www.kernel.org/pub/linux/kernel/v3.x/ +[3]:http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D \ No newline at end of file diff --git a/sources/news/20141211 Yes, This Trojan Infects Linux. No, It' s Not The Tuxpocalypse.md b/sources/news/20141211 Yes, This Trojan Infects Linux. No, It' s Not The Tuxpocalypse.md new file mode 100644 index 0000000000..179335d027 --- /dev/null +++ b/sources/news/20141211 Yes, This Trojan Infects Linux. No, It' s Not The Tuxpocalypse.md @@ -0,0 +1,74 @@ +Yes, This Trojan Infects Linux. No, It’s Not The Tuxpocalypse +================================================================================ +![Is something watching you?](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/spyware.jpg) + +Is something watching you? + +Grab a crate of canned food, start digging a deep underground bunker and prepare to settle into a world that will never be the same again: [a powerful trojan has been uncovered on Linux][1]. + +Yes, the hitherto impregnable fortress of computing nirvana has been compromised in a way that has left security experts a touch perturbed. + +Unplug your PC, disinfect your keyboard and buy a cat (no more YouTube ). The Tuxpocalypse is upon us. We’ve reached the end of days. + +Right? RIGHT? Nah, not quite. + +### A Terrifying Anomalous Thing! ### + +Let me set off by saying that **I am not underplaying the severity of this threat (known by the nickname ‘Turla’)** nor, for the avoidance of doubt, am I suggesting that we as Linux users shouldn’t be concerned by the implications. + +The discovery of a silent trojan infecting Linux systems is terrifying. The fact it was tasked with sucking up and sending off all sorts of sensitive information is horrific. And to learn it’s been doing this for at least four years and doesn’t require root privileges? My seat is wet. I’m sorry. + +But — and along with hyphens and typos, there’s always a ‘but’ on this site — the panic currently sweeping desktop Linux fans, Mexican wave style, is a little out of context. + +Vulnerability may be a new feeling for some of us, yet let’s keep it in check: Linux remains an inherently secure operating system for desktop users. One clever workaround does not negate that and shouldn’t send you scurrying offline. + +### State Sponsored, Targeting Governments ### + +![Is a penguin snake a ‘Penguake’ or a ‘Snaguin’?](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/penguin-snakle-by-icao-292x300.jpg) + +Is a penguin snake a ‘Penguake’ or a ‘Snaguin’? + +‘Turla’ is a complex APT (Advanced Persistent Threat) that has (thus far) targeted government, embassy and pharmaceutical companies’ systems for around four years using a method based on [14 year old code, no less][2]. + +On Windows, where the superhero security researchers at Symantec and Kaspersky Lab first sighted the slimy snake, Turla and components of it were found to have **infected hundreds (100s) of PCs across 45 countries**, many through unpatched zero-day exploits. + +*Nice one Microsoft.* + +Further diligence by Kaspersky Lab has now uncovered that parts of the same trojan have also been active on Linux for some time. + +The Trojan doesn’t require elevated privileges and can “intercept incoming packets and run incoming commands on the system”, but it’s not yet clear how deep its tentacles reach or how many Linux systems are infected, nor is the full extent of its capabilities known. + +“Turla” (and its children) are presumed to be nation-state sponsored due to its choice of targets. US and UK readers shouldn’t assume it’s “*them*“, either. Our own governments are just as happy to play in the mud, too. + +#### Perspective and Responsibility #### + +As terrible a breach as this discovery is emotionally, technically and ethically it remains far, far, far away from being an indication that we’re entering a new “free for all” era of viruses and malware aimed at the desktop. + +**Turla is not a user-focused “i wantZ ur CredIt carD” virus** bundled inside a faux software download. It’s a complex, finessed and adaptable threat with specific targets in mind (ergo grander ambitions than collecting a bunch of fruity tube dot com passwords, sorry ego!). + +Kaspersky Lab explains: + +> “The Linux Turla module is a C/C++ executable statically linked against multiple libraries, greatly increasing its file size. It was stripped of symbol information, more likely intended to increase analysis effort than to decrease file size. Its functionality includes hidden network communications, arbitrary remote command execution, and remote management. Much of its code is based on public sources.” + +Regardless of impact or infection rate its precedes will still raise big, big questions that clever, clever people will now spend time addressing, analysing and (importantly) solving. + +IANACSE (I am not a computer security expert) but IAFOA (I am a fan of acronyms), and AFAICT (as far as I can tell) this news should be viewed as as a cautionary PSA or FYI than the kind of OMGGTFO that some sites are painting it as. + +Until more details are known none of us should panic. Let’s continue to practice safe computing. Avoid downloading/running scripts, apps, or binaries from untrusted sites or PPAs, and don’t venture into dodgy dark parts of the web. + +If you remain super concerned you can check out the [Kaspersky blog][1] for details on how to check that you’re not infected. + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/government-spying-turla-linux-trojan-found + +作者:[Joey-Elijah Sneddon][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:https://securelist.com/blog/research/67962/the-penquin-turla-2/ +[2]:https://twitter.com/joernchen/status/542060412188262400 +[3]:https://securelist.com/blog/research/67962/the-penquin-turla-2/ \ No newline at end of file From 8db52bfc8a70111f084f5d490b5d19cff70fd914 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 11 Dec 2014 17:03:50 +0800 Subject: [PATCH 132/158] =?UTF-8?q?20141211-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tion infects Linux systems with malware.md | 35 ++++ ...ind Chroot DNS Server on CentOS 7.0 VPS.md | 197 ++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 sources/news/20141211 Turla espionage operation infects Linux systems with malware.md create mode 100644 sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md diff --git a/sources/news/20141211 Turla espionage operation infects Linux systems with malware.md b/sources/news/20141211 Turla espionage operation infects Linux systems with malware.md new file mode 100644 index 0000000000..f99ca88606 --- /dev/null +++ b/sources/news/20141211 Turla espionage operation infects Linux systems with malware.md @@ -0,0 +1,35 @@ +Turla espionage operation infects Linux systems with malware +================================================================================ +![](http://images.techhive.com/images/article/2014/12/open-source-linux-100533457-primary.idge.jpg) + +> A newly identified Linux backdoor program is tied to the Turla cyberespionage campaign, researchers from Kaspersky Lab said + +A newly discovered malware program designed to infect Linux systems is tied to a sophisticated cyberespionage operation of Russian origin dubbed Epic Turla, security researchers found. + +The Turla campaign, also known as Snake or Uroburos, [was originally uncovered in February][1], but goes back several years. The massive operation infected computers at government organizations, embassies, military installations, education and research institutions and pharmaceutical companies in over 45 countries. + +The newly identified Turla component for Linux was uploaded recently to a multi-engine antivirus scanning service and was described by security researchers from antivirus vendor Kaspersky Lab as "a previously unknown piece of a larger puzzle." + +"So far, every single Turla sample we've encountered was designed for the Microsoft Windows family, 32 and 64 bit operating systems," the Kaspersky researchers said Monday in a [blog post][2]. "The newly discovered Turla sample is unusual in the fact that it's the first Turla sample targeting the Linux operating system that we have discovered." + +The Turla Linux malware is based on an open-source backdoor program called cd00r developed in 2000. It allows attackers to execute arbitrary commands on a compromised system, but doesn't require elevated privileges or root access to function and listens to commands received via hidden TCP/UDP packets, making it stealthy. + +"It can't be discovered via netstat, a commonly used administrative tool," said the Kaspersky researchers, who are still analyzing the malware's functionality. + +"We suspect that this component was running for years at a victim site, but do not have concrete data to support that statement just yet," they said. + +Since their blog post Monday, the Kaspersky researchers also found a second Turla Linux component that appears to be a separate malware program. + +-------------------------------------------------------------------------------- + +via: http://www.computerworld.com/article/2857129/turla-espionage-operation-infects-linux-systems-with-malware.html + +作者:[Lucian Constantin][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.computerworld.com/author/Lucian-Constantin/ +[1]:http://news.techworld.com/security/3505688/invisible-russian-cyberweapon-stalked-us-and-ukraine-since-2005-new-research-reveals/ +[2]:https://securelist.com/blog/research/67962/the-penquin-turla-2/ \ No newline at end of file diff --git a/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md b/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md new file mode 100644 index 0000000000..4f159b7379 --- /dev/null +++ b/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md @@ -0,0 +1,197 @@ +How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS +================================================================================ +BIND (Berkeley Internet Name Daemon) also known as NAMED is the most widely used DNS server in the internet. This tutorial will descibes how we can run BIND in a chroot jail, the process is simply unable to see any part of the filesystem outside the jail. For example, in this post, i will setting up BIND to run chrooted to the directory /var/named/chroot/. Well, to BIND, the contents of this directory will appear to be /, the root directory. A “jail” is a software mechanism for limiting the ability of a process to access resources outside a very limited area, and it’s purposely to enhance the security. Bind Chroot DNS server was by default configured to /var/named/chroot. You may follow this complete steps to implement Bind Chroot DNS Server on CentOS 7.0 virtual private server (VPS). + +1. Install Bind Chroot DNS server : + + [root@centos7 ~]# yum install bind-chroot bind -y + +2. Copy all bind related files to prepare bind chrooted environments : + + [root@centos7 ~]# cp -R /usr/share/doc/bind-*/sample/var/named/* /var/named/chroot/var/named/ + +3. Create bind related files into chrooted directory : + + [root@centos7 ~]# touch /var/named/chroot/var/named/data/cache_dump.db + [root@centos7 ~]# touch /var/named/chroot/var/named/data/named_stats.txt + [root@centos7 ~]# touch /var/named/chroot/var/named/data/named_mem_stats.txt + [root@centos7 ~]# touch /var/named/chroot/var/named/data/named.run + [root@centos7 ~]# mkdir /var/named/chroot/var/named/dynamic + [root@centos7 ~]# touch /var/named/chroot/var/named/dynamic/managed-keys.bind + +4. Bind lock file should be writeable, therefore set the permission to make it writable as below : + + [root@centos7 ~]# chmod -R 777 /var/named/chroot/var/named/data + [root@centos7 ~]# chmod -R 777 /var/named/chroot/var/named/dynamic + +5. Copy /etc/named.conf chrooted bind config folder : + + [root@centos7 ~]# cp -p /etc/named.conf /var/named/chroot/etc/named.conf + +6.Configure main bind configuration in /etc/named.conf. Append the example.local zone information to the file : + + [root@centos7 ~]# vi /var/named/chroot/etc/named.conf + +Create forward and reverse zone into named.conf: + + .. + .. + zone "example.local" { + type master; + file "example.local.zone"; + }; + + zone "0.168.192.in-addr.arpa" IN { + type master; + file "192.168.0.zone"; + }; + .. + .. + +Full named.conf configuration : + + // + // named.conf + // + // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS + // server as a caching only nameserver (as a localhost DNS resolver only). + // + // See /usr/share/doc/bind*/sample/ for example named configuration files. + // + + options { + listen-on port 53 { any; }; + listen-on-v6 port 53 { ::1; }; + directory "/var/named"; + dump-file "/var/named/data/cache_dump.db"; + statistics-file "/var/named/data/named_stats.txt"; + memstatistics-file "/var/named/data/named_mem_stats.txt"; + allow-query { any; }; + + /* + - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. + - If you are building a RECURSIVE (caching) DNS server, you need to enable + recursion. + - If your recursive DNS server has a public IP address, you MUST enable access + control to limit queries to your legitimate users. Failing to do so will + cause your server to become part of large scale DNS amplification + attacks. Implementing BCP38 within your network would greatly + reduce such attack surface + */ + recursion yes; + + dnssec-enable yes; + dnssec-validation yes; + dnssec-lookaside auto; + + /* Path to ISC DLV key */ + bindkeys-file "/etc/named.iscdlv.key"; + + managed-keys-directory "/var/named/dynamic"; + + pid-file "/run/named/named.pid"; + session-keyfile "/run/named/session.key"; + }; + + logging { + channel default_debug { + file "data/named.run"; + severity dynamic; + }; + }; + + zone "." IN { + type hint; + file "named.ca"; + }; + + zone "example.local" { + type master; + file "example.local.zone"; + }; + + zone "0.168.192.in-addr.arpa" IN { + type master; + file "192.168.0.zone"; + }; + + include "/etc/named.rfc1912.zones"; + include "/etc/named.root.key"; + +7. Create Forward and Reverse zone files for domain example.local. + +a) Create Forward Zone : + + [root@centos7 ~]# vi /var/named/chroot/var/named/example.local.zone + +Add the following and save : + + ; + ; Addresses and other host information. + ; + $TTL 86400 + @ IN SOA example.local. hostmaster.example.local. ( + 2014101901 ; Serial + 43200 ; Refresh + 3600 ; Retry + 3600000 ; Expire + 2592000 ) ; Minimum + + ; Define the nameservers and the mail servers + + IN NS ns1.example.local. + IN NS ns2.example.local. + IN A 192.168.0.70 + IN MX 10 mx.example.local. + + centos7 IN A 192.168.0.70 + mx IN A 192.168.0.50 + ns1 IN A 192.168.0.70 + ns2 IN A 192.168.0.80 + +b) Create Reverse Zone : + + [root@centos7 ~]# vi /var/named/chroot/var/named/192.168.0.zone + +---------- + + ; + ; Addresses and other host information. + ; + $TTL 86400 + @ IN SOA example.local. hostmaster.example.local. ( + 2014101901 ; Serial + 43200 ; Refresh + 3600 ; Retry + 3600000 ; Expire + 2592000 ) ; Minimum + + 0.168.192.in-addr.arpa. IN NS centos7.example.local. + + 70.0.168.192.in-addr.arpa. IN PTR mx.example.local. + 70.0.168.192.in-addr.arpa. IN PTR ns1.example.local. + 80.0.168.192.in-addr.arpa. IN PTR ns2.example.local. + +8. Stop and disable named service. Start and enable bind-chroot service at boot : + + [root@centos7 ~]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on + [root@centos7 ~]# systemctl stop named + [root@centos7 ~]# systemctl disable named + [root@centos7 ~]# systemctl start named-chroot + [root@centos7 ~]# systemctl enable named-chroot + ln -s '/usr/lib/systemd/system/named-chroot.service' '/etc/systemd/system/multi-user.target.wants/named-chroot.service' + +As always if you need any help you can reach us on twitter @ehowstuff or drop us a comment below. [Jumping through archives page to read more articles..][1] + +-------------------------------------------------------------------------------- + +via: http://www.ehowstuff.com/how-to-setup-bind-chroot-dns-server-on-centos-7-0-vps/ + +作者:[skytech][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ehowstuff.com/author/mhstar/ +[1]:http://www.ehowstuff.com/archives/ \ No newline at end of file From dd2676ef2beadca89353d654e1261aeaf167b064 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 11 Dec 2014 17:14:19 +0800 Subject: [PATCH 133/158] =?UTF-8?q?20141211-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/share/20141211 NetHack.md | 103 ++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 sources/share/20141211 NetHack.md diff --git a/sources/share/20141211 NetHack.md b/sources/share/20141211 NetHack.md new file mode 100644 index 0000000000..84ff2f3dd2 --- /dev/null +++ b/sources/share/20141211 NetHack.md @@ -0,0 +1,103 @@ +NetHack +================================================================================ +## The best game of all time? ## + +**It’s tremendously addictive. It takes a lifetime to master. And people play it for decades without completing it. Welcome to the strange world of NetHack…** + +Believe it or not, it’s possible to be terrified by the sight of the letter D. Or ecstatic about the sight of a % character. (And the less said about ^, the better.) But before you assume we’ve gone totally loopy and close the tab, bear with us for a moment: those characters represent dragons, food rations and traps respectively. Welcome to NetHack, where your imagination needs to play a big role in the gameplay. + +You see, NetHack is a text-mode game: it just uses the standard terminal character set to portray the player, enemies, items and surroundings. Graphical versions of the game exist, but NetHack purists tend to avoid them, and what’s the point of a game if you can’t play it when you’re SSHed into your revived Amiga 3000 running NetBSD? In some ways, NetHack is a lot like Vi – it has been ported to nigh-on every operating system in existence, and its requirements are absolutely minimal. + +Now, given that it looks like utter pants when compared to modern games, what makes NetHack so appealing? Well, this dungeon exploring masterpiece is incredibly rich and detailed. There are so many items to discover, spells to cast, monsters to fight and tricks to learn – and the dungeons are generated randomly. There’s so much to explore, and no two games are ever the same. People play NetHack for years and decades without complete it, still discovering new secrets each time. + +Here we’ll show you how NetHack came about, give you a guided tour of the dungeons, and show you some tricks. Note: by reading this feature, you agree to not sue us when you become addicted to NetHack and your real-life productivity is obliterated. + +![The NetHack interface](http://www.linuxvoice.com/wp-content/uploads/2014/12/nh_annotated.png) + +The NetHack interface + +### Possibly the oldest still-developed game ### + +Despite its name, NetHack isn’t an online game. It’s based on an earlier dungeon-exploring romp called Hack, which in turn was a descendant of an 1980 game called Rogue. NetHack’s first release arrived in 1987, and although no new features have been added since version 3.4.3 in 2003, various patches, add-ons and spin-offs are still doing the rounds on the web. This makes it arguably the oldest game that’s still being hacked on and played by a sizeable group of people. Go to [www.reddit.com/r/nethack][1] to see what we mean – long-time NetHack players are still discussing new strategies, discoveries and tricks. Occasionally you’ll see gleeful messages from old timers who have finally, after many years, completed the game. + +But how do you complete it? Well, NetHack is set in a large and deep dungeon. You start at the top – level 1 – and your goal is to keep going down until you find a hugely valuable item called the Amulet of Yendor. This is typically in level 20 or lower, but it can vary. As you traverse through and down the dungeon, you’ll meet all manner of monsters, traps and human characters; some will try to kill you, some will stay out of your way, and some…. well, you don’t know until you get close to them. + +> There’s so much to learn, and many items only work best when combined with others. + +What makes NetHack so compelling is the vast range of items crammed into the game. Weapons, armour, spell books, rings, gems – there’s so much to learn, and many items only work best when combined with others. Monsters often drop useful items when you kill them, although some items can have very negative effects if you don’t use them correctly. You’ll find shops in the dungeon that are packed with potentially useful bits of kit, but don’t expect the shopkeeper to give you great descriptions. You’ve got to learn from experience. Some items aren’t much use at all, and the game is packed with humour – you can even throw a cream pie in your own face. + +But before you even set foot in the dungeon, NetHack asks you what kind of player you want to be. You can take your journey as a knight, a monk, a wizard or even a humble tourist, amongst many other player types. They all have their own strengths and weaknesses, and NetHack addicts love to try completing the game with the weaker types. You know, to show off to other players. + +> ## Spoilers don’t spoil the fun ## + +> In NetHack parlance, “spoilers” provide information on monsters, items, weapons and armour. It’s technically possible to complete the game without using them, but very few players ever achieve this, as the game is monumentally complex. Consequently it’s not regarded as bad form to use spoilers – but it’s still more fun to try to work things out yourself first, and only consult the spoilers when you really need them. + +> A great source is [www.statslab.cam.ac.uk/~eva/nethack/spoilerlist.html][2] which separates spoilers into categories. For things that happen randomly in the game, such as the effects from drinking from fountains, it gives you the odds of a certain thing happening. + +### Your first dungeon crawl ### + +NetHack is available for almost every major OS and Linux distribution in the world, so you should be able to grab it with “apt-get install nethack” or “yum install nethack” or whatever is appropriate for your distro. Then run it in a terminal window by just typing “nethack”. The game will ask if it should pick a player type for you – but as a newcomer, it’s best if you choose one of the tougher characters first. So hit “n” and then hit “v” to choose the Valkyrie type, and “d” to be a dwarf. + +Then NetHack will give you some plot blurb, explaining that your god seeks the Amulet of Yendor, so your goal is to retrieve it and present it to him. Hit space when you’re done reading the text (and any other time you see “–More–” on the screen). And here we go – you’re in the dungeon! + +As described earlier, your character is represented by a @ sign. You can see the walls of a room around you, and the dot characters depict empty space in the room. First of all, get used to the movement keys: h, j, k and l. (Yes, it’s just like Vim, as covered in issue 3 of Linux Voice!) These move you left, down, up and right respectively. You can also move diagonally with y, u, b and n. So walk around the room until you get used to the controls. + +NetHack is turn-based, so if you’re not moving or performing an action, the game stays still. This lets youplan your moves in advance. You will see a “d” or “f” character moving around the room as well: this is your pet dog or cat, which (normally) won’t harm you and can assist you in killing monsters. Pets can be annoying though – they occasionally eat foot rations and tasty corpses before you get to them. + +![Hit “i” to bring up an inventory of your currently carried items](http://www.linuxvoice.com/wp-content/uploads/2014/12/nh_inventory.png) + +Hit “i” to bring up an inventory of your currently carried items + +### What’s behind the door? ### + +Now, let’s go out of the room. There will be gaps around the edge, and possibly “+” signs. That “+” is a closed door, so go up to it and hit “o” to open. You will be asked for a direction, so if the door is to the left of you, press “h”. (And if the door is stuck, try opening it a few times.) You’ll then end up in a corridor, marked by “#” symbols, so walk around it until you find another room. + +On your travels you’ll see various items. Some, such as money (denoted by a “$” symbol) are picked up automatically; for other items, you have to press the comma key whilst standing on them. If there are multiple items, you’ll be given a menu, so press the appropriate keys shown in the menu and then Enter to choose what you want. At any time you can hit “i” to bring up your inventory list – see the screenshot. + +What happens if you see a monster? At these early stages of the game, the monsters you’re likely to come across will be represented by “d”, “x” and “:” characters. To attack, simply walk into them. The game will tell you if your attacks are successful using the messages along the top – and also how the monster is responding. These early monsters are simple to kill, so you shouldn’t have any trouble defeating them, but keep an eye on your HP in the status line at the bottom. + +> Early monsters are simple to kill, but keep an eye on your HP. + +If a monster leaves behind a corpse (“%”), you can hit comma to take it and then press “e” to eat it. (Whenever you’re prompted to choose an item, you can press its corresponding key from the inventory list, or “?” to bring up a mini list.) Warning! Some corpses are poisonous, and these are things you’ll learn on your travels. + +If you’re exploring a corridor and appear to come to a dead end, you can hit “s” to search until you find a door. This can take ages, however, so you can speed things up a bit: type “10” and then “s” and you will perform 10 searches in a row. This takes up 10 moves in game time, however, so if you’re hungry you could get close to starvation! + +Common items you’ll find in the top levels of the dungeon are “{” (fountains) and “!” (potions). For the former, you can stand on it and hit q to “quaff” from it – the effects can vary from useful to deadly. For potions, pick them up and then use “q” to drink them. If you find a shop, you can pick up items and then hit “p” to pay before leaving. Use “d” to drop something. + +![Souped-up versions of NetHack with fancy graphics are available, such as Falcon’s Eye](http://www.linuxvoice.com/wp-content/uploads/2014/12/falcon.jpg) + +Souped-up versions of NetHack with fancy graphics are available, such as Falcon’s Eye + +> ## Stupid ways to die ## + +> A popular acronym amongst NetHack players is “YASD” – Yet Another Stupid Death. It describes a situation where the player buys the farm due to his/her own silliness or lack of concentration. We’ve had many of these, but our favourite goes as follows: + +> We were browsing a shop, inspecting items, when a snake suddenly jumped out from behind a potion. After killing the snake, a message popped up saying that we were getting hungry, so we opted to eat the snake’s corpse. Bad idea! This made us blind, so we couldn’t see other characters or items in the shop. We tried to get to the exit, but instead bumped into the shopkeeper and accidentally attacked him. This made him furious; he started firing magic missiles at us. We just about managed to get into the corridor outside the shop, but died from the onslaught. + +> If you come to any equally silly ends, let us know on our forums. And don’t worry – nobody will judge you. Dying like this is all part of growing up in the NetHack world. + +### Equip yourself ### + +On your travels, and especially after you kill monsters, you’ll find weapons and armour. Again, use comma to pick these up, and then “w” (lowercase) to wield a weapon or “W” (uppercase) to wear a piece of armour. You can use “T” to remove armour and “t” to throw weapons – often handy if you’re in a very sticky situation. + +Sometimes it’s useful to examine things from a distance before getting close to them. Hit “;” (semicolon) and “Pick an object” will appear at the top of the screen. Use the movement keys until your view lands on the thing you want to inspect, and then hit “:” (colon). A description will appear at the top. + +As your goal is to go further down the dungeon until you find the Amulet of Yendor, keep an eye out for “<” and “>” signs. These are stairs up and down respectively, and you can use the same keys to climb them. Note! Make sure your pet is standing in an adjacent square if you want it to follow you into the next level. If you need a break, use “S” (capital s) to save, and type #quit to exit. Next time you run NetHack, your game will be resumed. + +We won’t spoil what’s ahead, as many of the dungeon levels have amazing designs, characters and secrets. So we’ll leave you with three tips: if you come across an item that completely baffles you, try searching for it on the NetHack wiki at [http://nethack.wikia.com][3]. You’ll also find an excellent (albeit very long) guidebook at [www.nethack.org/v343/Guidebook.html][4]. Happy exploring! + +-------------------------------------------------------------------------------- + +via: http://www.linuxvoice.com/nethack/ + +作者:[Mike Saunders][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.linuxvoice.com/author/mike/ +[1]:http://www.reddit.com/r/nethack +[2]:http://www.statslab.cam.ac.uk/~eva/nethack/spoilerlist.html +[3]:http://nethack.wikia.com/ +[4]:http://www.nethack.org/v343/Guidebook.html \ No newline at end of file From 123fc31871aba93608d7b7e4c98d5cabdb8fdbd5 Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 11 Dec 2014 17:28:44 +0800 Subject: [PATCH 134/158] =?UTF-8?q?20141211-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y Have Infected Linux Systems For Years.md | 42 +++++++++++++++++ ...1211 Was 2014 The Year of Linux Desktop.md | 45 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 sources/news/20141211 Apparently This Trojan Virus May Have Infected Linux Systems For Years.md create mode 100644 sources/talk/20141211 Was 2014 The Year of Linux Desktop.md diff --git a/sources/news/20141211 Apparently This Trojan Virus May Have Infected Linux Systems For Years.md b/sources/news/20141211 Apparently This Trojan Virus May Have Infected Linux Systems For Years.md new file mode 100644 index 0000000000..969979362c --- /dev/null +++ b/sources/news/20141211 Apparently This Trojan Virus May Have Infected Linux Systems For Years.md @@ -0,0 +1,42 @@ +Apparently This Trojan Virus May Have Infected Linux Systems For Years +================================================================================ +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/12/trojan-word-cloud.jpg) + +One of the first few argument in [why should you switch to Linux][1] is that Linux is secure and virus free. It is widely perceived by most of the Linux users that Linux is immune to viruses, which is true to an extent but not entirely. + +Like any other OS, Linux too is not immune to malware, trojan, rootkit, virus etc. There have been several [famous Linux viruses][2]. But if you compare those to that of Windows, the number is infinitesimal. So, why am I talking about Linux viruses today then? Because a new trojan has been detected in market which might be impacting Linux systems. + +### Turla infects Linux systems as well ### + +Few months back a sophisticated cyber espionage program, nicknamed [Turla][3], was detected. It was supposed to be originated in Russia, allegedly with Russian government backing. The spyware program was targeting government organizations in Europe and the United States for four years. + +In a recent report, researchers at [Kaspersky][4] has found that Turla was not only affecting Windows system but also Linux operating system. Kaspersky researchers have termed it the ‘missing piece of Turla puzzle’. As per the report: + +> “This newly found Turla component supports Linux for broader system support at victim sites. The attack tool takes us further into the set alongside the Snake rootkit and components first associated with this actor a couple years ago. We suspect that this component was running for years at a victim site, but do not have concrete data to support that statement just yet.” + +### What is this Linux module of Turla and how dangerous it is? ### + +Going by the Kaspersky report, + +> The Linux Turla module is a C/C++ executable statically linked against multiple libraries, greatly increasing its file size. It was stripped of symbol information, more likely intended to increase analysis effort than to decrease file size. Its functionality includes hidden network communications, arbitrary remote command execution, and remote management. Much of its code is based on public sources. + +Report also mentions that this trojan doesn’t require elevated privileges (read root) while running arbitrary remote commands and it cannot be discovered by commonly used administrative tools. Personally, I doubt their claims. + +So, as a Linux desktop user, should you be scared? In my opinion, it is too early to go in to panic mode as we experienced with [ShellShock Linux bug][5]. Turla was originally intended for government organization, not common users. Let’s wait and watch for more concrete news. I’ll keep on updating this article. Till then enjoy Linux. + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/apparently-trojan-virus-infected-linux-systems-years/ + +作者:[Abhishek][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/Abhishek/ +[1]:http://itsfoss.com/reasons-switch-linux-windows-xp/ +[2]:http://www.unixmen.com/meet-linux-viruses/ +[3]:http://www.reuters.com/article/2014/03/07/us-russia-cyberespionage-insight-idUSBREA260YI20140307 +[4]:https://securelist.com/blog/research/67962/the-penquin-turla-2/ +[5]:http://itsfoss.com/linux-shellshock-check-fix/ \ No newline at end of file diff --git a/sources/talk/20141211 Was 2014 The Year of Linux Desktop.md b/sources/talk/20141211 Was 2014 The Year of Linux Desktop.md new file mode 100644 index 0000000000..d8dc37ab8f --- /dev/null +++ b/sources/talk/20141211 Was 2014 The Year of Linux Desktop.md @@ -0,0 +1,45 @@ +Was 2014 "The Year of Linux Desktop"? +================================================================================ +> The Linux desktop is finally hitting all the right notes + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-2.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-3.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-4.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-5.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-6.jpg) + +**Linux has seen a lot of changes during 2014 and many users are saying that this was finally the year that really showed some real progress, but has it been enough to call it "the year of Linux desktop"?** + +This particular phrase, "the year of Linux desktop," has been recited like a mantra in the past couple of years and it's basically trying to mark all the progress registered until now in a way that makes sense. This kind of stuff hasn't happened so far and there is no precedent for the kind of growth we're witnessing, so it's easy to understand why Linux users might look at it from this perspective. + +Most software and hardware domains don't usually go through this kind of fast progress and things happen at a slower pace, but things have been wild even for people who have a better insight into the industry. It's hard, if not impossible, to pinpoint a certain moment or a certain event, but Linux development exploded and changed exponentially in the course of just a couple of years. + +### Year of the Linux desktop is an uncertain term ### + +There is no single authority which can decree that the year of the Linux desktop has arrived or that it has passed. We can only try to deduce it from what we've seen until now and it's actually up to the users. Some are more conservative and not too many things have changed for them, and others are more progressive and they just can't get enough. It really depends on what your outlook is. + +The spark that seems to have put everything in motion appears to be the launch of Steam for Linux, although we've seen some important movement of the Linux gaming scene before that became a reality. In any case, Valve is probably the catalyst of the resurgence of what we're seeing today. + +The Linux desktop has been in a kind of slow evolution in the past decade and nothing really changed. There have been a lot of innovations for sure, but the market share has remained almost the same. No matter how cool the desktop became or how many features Linux had well before anyone else, things have remained largely the same, and that includes the participation of companies making proprietary software. They largely ignored Linux. + +Now, more companies have shown interest in the Linux platform in the past year than they did in the last 10. Maybe it's a natural evolution and Valve had nothing to do with it, but Linux has finally reached a level where it can be used and understood by regular users, not just people fascinated by open source. + +The drivers are better, game studios are porting games now on a regular basis, applications and middleware that we never thought we would see on Linux have started to show up, the Linux kernel development has an incredible pace, the installation process for most of the major distros is usually trivial, and all of these are just the tip of the iceberg. + +So, when someone asks you if 2014 was the year of the Linux desktop, you can say yes. The Linux desktop totally ruled in 2014. + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/Was-2014-The-Year-of-Linux-Desktop-467036.shtml + +作者:[Silviu Stahie ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/silviu-stahie \ No newline at end of file From a8dd5da95d05adf2c5be221e0d90d8a26274c919 Mon Sep 17 00:00:00 2001 From: DoubleC <450760206@qq.com> Date: Thu, 11 Dec 2014 17:33:48 +0800 Subject: [PATCH 135/158] =?UTF-8?q?=E6=96=87=E7=AB=A0=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 文章重复,我之前领了,还没翻完。 --- ... create a custom backup plan for Debian with backupninja.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md b/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md index cfe50df9d7..71b7e58e26 100644 --- a/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md +++ b/sources/tech/20141210 How to create a custom backup plan for Debian with backupninja.md @@ -1,3 +1,4 @@ +文章重复 How to create a custom backup plan for Debian with backupninja ================================================================================ Backupninja is a powerful and highly-configurable backup tool for Debian based distributions. In the [previous tutorial][1], we explored how to install backupninja and how to set up two backup actions for the program to perform. However, we should note that those examples were only "the tip of the iceberg," so to speak. In this post we will discuss how to leverage custom handlers and helpers that allow this program to be customized in order to accomplish almost any backup need that you can think of. @@ -245,4 +246,4 @@ via: http://xmodulo.com/create-custom-backup-plan-debian.html [a]:http://xmodulo.com/author/gabriel [1]:http://xmodulo.com/backup-debian-system-backupninja.html -[2]:http://xmodulo.com/backup-debian-system-backupninja.html \ No newline at end of file +[2]:http://xmodulo.com/backup-debian-system-backupninja.html From 0bceb3dac69ce61188e0e5c26b59646d0c5fd580 Mon Sep 17 00:00:00 2001 From: DoubleC <450760206@qq.com> Date: Thu, 11 Dec 2014 17:39:39 +0800 Subject: [PATCH 136/158] translating apply artical --- ...11 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md b/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md index 4f159b7379..02cde70e74 100644 --- a/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md +++ b/sources/tech/20141211 How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS.md @@ -1,3 +1,4 @@ +spccman translating How to Setup Bind Chroot DNS Server on CentOS 7.0 VPS ================================================================================ BIND (Berkeley Internet Name Daemon) also known as NAMED is the most widely used DNS server in the internet. This tutorial will descibes how we can run BIND in a chroot jail, the process is simply unable to see any part of the filesystem outside the jail. For example, in this post, i will setting up BIND to run chrooted to the directory /var/named/chroot/. Well, to BIND, the contents of this directory will appear to be /, the root directory. A “jail” is a software mechanism for limiting the ability of a process to access resources outside a very limited area, and it’s purposely to enhance the security. Bind Chroot DNS server was by default configured to /var/named/chroot. You may follow this complete steps to implement Bind Chroot DNS Server on CentOS 7.0 virtual private server (VPS). @@ -194,4 +195,4 @@ via: http://www.ehowstuff.com/how-to-setup-bind-chroot-dns-server-on-centos-7-0- 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.ehowstuff.com/author/mhstar/ -[1]:http://www.ehowstuff.com/archives/ \ No newline at end of file +[1]:http://www.ehowstuff.com/archives/ From 762cfef575fb3bb58459145c896ece565b28432b Mon Sep 17 00:00:00 2001 From: DeadFire Date: Thu, 11 Dec 2014 17:43:58 +0800 Subject: [PATCH 137/158] =?UTF-8?q?20141211-6=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20141211 Open source all over the world.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sources/talk/20141211 Open source all over the world.md diff --git a/sources/talk/20141211 Open source all over the world.md b/sources/talk/20141211 Open source all over the world.md new file mode 100644 index 0000000000..869010c022 --- /dev/null +++ b/sources/talk/20141211 Open source all over the world.md @@ -0,0 +1,148 @@ +Open source all over the world +================================================================================ +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BUS_OpenSourceExperience_520x292_cm.png) + +Image by : opensource.com + +After a full day at the annual meeting of the Opensource.com [Community Moderators][1], it was time for the the last item on the agenda which simply said "Special Guest: TBD." [Jason Hibbets][2], project lead and community manager for [Opensource.com][3], stood up and began explaining, "In case it wasn't going to happen, I didn't want to say who it was. Months ago I asked for any dates he'd be in town. I got two, and picked one. This was one day out of three weeks that Jim was in town." + +The moderators, in town from all over the world for the [All Things Open conference][4], stirred at the table. Their chairs squeaked and snuck a few inches edgewise. + +"We're going to get a half hour to hear from him and take a couple questions," said Jason. + +The door opened, and as if it had been waiting for him the whole time, the only vacant seat at the head of the table was soon occupied by a tall fellow. + +"How is everyone doing?" said the man. No suit, just a button down shirt and slacks. + +The next tallest man in the room, [Jeff Mackanic][5], senior director of Global Awareness at Red Hat, explained that the majority of the Community Moderator team was present today. He asked everyone to quickly introduce themselves. + +"[Jen Wike Huger][6]. Content Manager for Opensource.com. Happy to have everyone here." + +"[Nicole][7]. Vice president of education at [ByWater Solutions][8]. We do FOSS for libraries. I travel and teach people how to use software." + +"[Robin][9]. I've been participating in the Moderator program since 2013. I do lots of stuff for OSDC and work in the [City of the Hague][10], maintaining their [website][11]." + +"[Marcus Hanwell][12]. Originally from England, I'm now at [Kitware][13]. I'm the technology lead on FOSS science software. I work with national labs and use things like [Titan][14] Z doing [GPU programming][15]. I've worked with [Gentoo][16] and [KDE][17]. Most of all, I'm passionate about joining FOSS and open science." + +"[Phil Shapiro][18]. I administrate 28 Linux work stations at a small library in D.C. I consider these folks my coworkers and colleagues. And it's wonderful to know that we can all feed into the energy and share ideas. My main interests are how FOSS intersects with dignity, and enhancing dignity." + +"[Joshua Holm][19]. I spend most of my time staring at system updates and helping people search for jobs on the Internet." + +"[Mel Chernoff][20]: I work here at Red Hat, primarily on the [government][21] channel with [Jason Hibbets][22] and [Mark Bohannon][23]." + +"[Scott Nesbitt][24]: I write for many things, but have been using FOSS for long time. I'm a 'mere mortal' just trying to be more productive, not a sysadmin or programmer. I help people meld FOSS into their business and personal lives." + +"[Luis Ibanez][25]: I just joined [Google]26], but I'm interested in DIY and FOSS." + +"[Remy DeCausemaker][27]: Resident Hackademic at the [RIT MAGIC Center][28] and Adjunct Professor for the [Department of Interactive Games and Media][29]. Been writing for Opensource.com for about four years now." + +"You teach courses for the [new FOSS Minor then][30]," said Jim. "Very cool." + +"[Jason Baker][31]. I'm a Red Hat cloud expert, mostly doing work around [OpenStack][32]." + +"[Mark Bohannan][33]. I'm with Red Hat Global Public Policy, and I work out of Washington. Like Mel, I spend a good deal of time writing for, or finding folks from, the legal and government channels. I've found an excellent outlet to discuss positive things happening in government." + +"[Jason Hibbets][34]. I organize the organized chaos here." + +The room has a good chuckle. + +"I organize this chaos too, you could say," says the brownish-red haired fellow with a gleaming white smile. The laughs grow then quieten. Breaths become baited. + +I sat to his left and had a moment to look up from transcribing to glance up. I noticed the hint of a smile behind the knowing eyes of a man who has led the company since January 2008, [Jim Whitehurst][35], president and CEO of Red Hat. + +"I have one of the greatest jobs on Earth," began Whitehurst, as he leaned back, crossed his legs, and put his arms behind his head. "I get to lead Red Hat, travel around the world and see what goes on. In my seven years here, the amazing thing about FOSS, and, broadly open innovation, is that it has left the fringe. And now, I would argue, IT is in the same place that FOSS was in its early days. We are seeing FOSS going from an alternative to driving innovation. Our customers are seeing it, too. They're using FOSS not because it is cheaper, but because it provides them with control and innovative solutions. It's a global phenomenon, too. For instance, I was just in India, and discovered that, for them, there were two reasons for embracing of open source: one, access to innovation, and two, the market is somewhat different and wanting full control.” + +"The [Bombay Stock Exchange][36] wants to own all the source and control it. That is not something you would have heard five years ago in a stock exchange, anywhere. Back then, the early knock on FOSS was that it was creating free copies of things that already existed.' If you look today, virtually everything in big data is happening in FOSS. Almost any new framework, language, and methodology, including mobile (though excluding devices), are all happening first in open source.” + +"This is because users have reached size and scale. It's not just Red Hat—it's [Google][37], [Amazon][38], [Facebook][39], and others, they want to solve their own problems, and do it the open source way. And forget licensing—open source is much more than that. We've built a vehicle, and a set of norms. Things like [Hadoop][40], [Cassandra][41], and other tools. Fact is, open source drives innovation. For example, Hadoop was in production before any vendor realized there was a problem of that scale that needed to be solved. They actually have the wherewithal to solve their own problems, and the social tech and principles to do that. "Open source is now the default technology for many categories. This is especially true as the world moves more and more to content importance, such as [3D printing][42] and other physical products that take information content and apply it.” + +"We have this cool thing in one area, source code, but it is limited. But there are still many opportunities in different industries. We must ask ourselves, 'What can open source do for education, government, and legal? What are the parallels? And what can other areas learn with us?'" + +"There's also the matter of content. Content is now free, and we can invest in more free content, sure. But we need free content that has a business model built around it. That is something that more people should care about. If you believe open innovation is better, then we need more models." + +"Education worries me with its fixation on 'content' rather than 'communities.' For example, everywhere I go, I hear university presidents say, 'Wait, education is going to be free?!' The fact that FOSS is free for downstream is great, but the upstream is really powerful. Distributing free courses is great, but we need communities to iterate and make it better. That is something that a lot of different people are doing, and Opensource.com is a place to share what is going on in this space. The question is not so much 'How do we take content?' as it is 'How do you build and distribute it? How do you make sure it is a living thing that gets better, and can morph for different areas?'" + +"But the potential to change the world is limitless, and it's amazing how much progress we've already made. Six years ago we were obsessed about defining a mission statement. We started by saying, 'We are the leader,' but that was the wrong word, because it implied control. Active participant didn't quite get it either... [Máirín Duffy][43] came up with the word [catalyst][44]. And so, we became Red Hat, the company that creates environments to agitate action and catalyze direction.” + +"Opensource.com is a catalyst in other areas, and that is what Opensource.com is about. I hope you see yourselves this way, too. The quality of content then, when we started, versus now, is incredible. You can see it getting better every quarter. Thank you for investing your time. Thank you for being catalysts. This is a chance for us all to make the world a better place. And I'd love to hear from you." + +I stole a glimpse of everyone at the table: more than a few people had tears in their eyes. + +Then, Whitehurst revisits the open education topic of conversation again. "Taking it to an extreme, let's say you have a course about the book [Ulysses][45]. Here, you can explore how to crowdsource a model and get people to work together within the course. Well, it's the same with a piece of code: people work together, and the code itself gets better over time." + +At this point, I get to have my say. Words like fundamental and possibly irreconcilable came up when discussing the differences between FOSS and academic communities. + +**Remy**: "Retraction is career death." Releasing data or code with your paper could be devastating if you make a mistake. School has always been about avoiding failure and divining 'right answers'. Copying is cheating. Wheels are recreated from scratch ritualistically. In FOSS, you work to fail fastest, but in academia, you invite invalidation." + +**Nicole**: "There are a lot of egos in academia. You need a release manager." + +**Marcus**: "To collaborate, you have to show the bits you don't understand, and that happens behind closed doors. The reward model is all about what you can take credit for. We need to change the reward model. Publish as much as you can. We release eventually, but we want to release early." + +**Luis**: "Make teamwork and sharing a priority. And Red Hat can say that to them more." + +**Jim**: "Is there an active role that companies can play in that?" + +[Phil Shapiro][46]: "I'm interested in tipping points in FOSS. It drives me nuts that the Fed hasn't switched to [LibreOffice][47]. We're not spending tax dollars on software, and certainly shouldn't be spending on word processing or Microsoft Office." + +**Jim**: "We have advocated for that. A lot. Can we do more? That's a valid question. Primarily, we've made progress in the places we have products. We have a solid franchise in government. We are larger per IT spend there than the private sector. Banks and telcos are further along than the government. We've done better in Europe, and I think they have less lobbying dollars at work there, than here. This next generation of computing is almost like a 'do-over'. We are making great progress elsewhere, but it is concerning." + +Suddenly, the door to the room opened. Jim turned and nodded towards his executive assistant standing in the doorway; it was time for his next meeting. He uncrossed his legs, leaned forward, and stood. He thanked everyone again for their work and dedication, smiled, and was out the door... leaving us all a bit more inspired. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/14/12/jim-whitehurst-inspiration-open-source + +作者:[Remy][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/remyd +[1]:http://opensource.com/community-moderator-program +[2]:https://twitter.com/jhibbets +[3]:http://opensource.com/ +[4]:http://allthingsopen.org/ +[5]:http://opensource.com/users/mackanic +[6]:https://twitter.com/JenWike +[7]:http://opensource.com/users/nengard +[8]:http://bywatersolutions.com/ +[9]:http://opensource.com/life/13/7/community-spotlight-robin-muilwijk +[10]:https://en.wikipedia.org/wiki/The_Hague +[11]:http://www.denhaag.nl/en.htm +[12]:https://twitter.com/mhanwell +[13]:http://www.kitware.com/ +[14]:http://www.nvidia.com/gtx-700-graphics-cards/gtx-titan-z/ +[15]:https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units +[16]:https://www.gentoo.org/ +[17]:http://kde.org/ +[18]:https://twitter.com/philshapiro +[19]:http://opensource.com/community/13/9/contributor-spotlight-joshua-holm +[20]:http://opensource.com/users/melanie +[21]:http://opensource.com/government +[22]:https://twitter.com/jhibbets +[23]:https://twitter.com/markbotech +[24]:http://scottnesbitt.me/ +[25]:http://opensource.com/users/luis-ibanez +[26]:http://google.com/ +[27]:http://twitter.com/remy_d +[28]:http://foss.rit.edu/ +[29]:http://igm.rit.edu/ +[30]:http://www.rit.edu/news/story.php?id=50590 +[31]:https://twitter.com/jehb +[32]:http://openstack.org/ +[33]:https://twitter.com/markbotech +[34]:https://twitter.com/jhibbets +[35]:http://www.redhat.com/en/about/company/management/james-whitehurst +[36]:http://www.bseindia.com/ +[37]:http://google.com/ +[38]:https://mail.corp.redhat.com/service/home/%7E/Amazon +[39]:https://mail.corp.redhat.com/service/home/%7E/Facebook +[40]:https://hadoop.apache.org/ +[41]:https://cassandra.apache.org/ +[42]:https://en.wikipedia.org/wiki/3D_printing +[43]:https://twitter.com/mairin +[44]:http://jobs.redhat.com/life-at-red-hat/our-culture/ +[45]:http://www.gutenberg.org/ebooks/4300 +[46]:https://twitter.com/philshapiro +[47]:http://libreoffice.org/ \ No newline at end of file From e7c71dd8ef8839f6ecea6a0bbdea01023828e06d Mon Sep 17 00:00:00 2001 From: ideas4u Date: Thu, 11 Dec 2014 17:59:17 +0800 Subject: [PATCH 138/158] Update 20141211 How to use matplotlib for scientific plotting on Linux.md --- ...1 How to use matplotlib for scientific plotting on Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md b/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md index 33073ae711..bf9ac1462c 100644 --- a/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md +++ b/sources/tech/20141211 How to use matplotlib for scientific plotting on Linux.md @@ -1,3 +1,4 @@ +ideas4u Translating.. How to use matplotlib for scientific plotting on Linux ================================================================================ If you want an efficient, automatable solution for producing high-quality scientific plots in Linux, then consider using matplotlib. Matplotlib is a Python-based open-source scientific plotting package with a license based on the Python Software Foundation license. The extensive documentation and examples, integration with Python and the NumPy scientific computing package, and automation capability are just a few reasons why this package is a solid choice for scientific plotting in a Linux environment. This tutorial will provide several example plots created with matplotlib. @@ -149,4 +150,4 @@ via: http://xmodulo.com/matplotlib-scientific-plotting-linux.html [a]:http://xmodulo.com/author/joshua [1]:http://xmodulo.com/numpy-scientific-computing-linux.html -[2]:http://matplotlib.org/ \ No newline at end of file +[2]:http://matplotlib.org/ From f17bb612a0be28921313a4a63e9dda67134138fc Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 11 Dec 2014 20:52:46 +0800 Subject: [PATCH 139/158] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20141208 Nathive--A libre software image editor.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translated/share/20141208 Nathive--A libre software image editor.md b/translated/share/20141208 Nathive--A libre software image editor.md index 07e731432f..62ea6332df 100644 --- a/translated/share/20141208 Nathive--A libre software image editor.md +++ b/translated/share/20141208 Nathive--A libre software image editor.md @@ -1,12 +1,12 @@ Nathive——libre软件图像编辑器 ================================================================================ -Nathive是一个libre软件图像编辑器,和Adobe Photoshop、Corel Photo-Paint或GIMP类似,但是侧重于可用性、逻辑,并为每个人提供平滑的学习曲线。该项目在GNOME桌面环境中运行,并欢迎每个人在代码、翻译或想法等方面合作。 +Nathive是一个libre软件图像编辑器,类似于 Adobe Photoshop、Corel Photo-Paint 或 GIMP,但是侧重于适用性和逻辑性,并为每个用户提供平滑的学习曲线。该项目在 GNOME 桌面环境中运行,并欢迎每个人参与到合作中,分享代码、翻译或想法等方面。 -该项目尚处于beta阶段,所以它还是个未完成得工作,还不适用于终端用户。直到现在,开发始终专注于积淀应用的核心功能和创建便捷的开发工具。所以,目前我们将集中于创建新的插件,因为很明显在这方面还很缺乏。 +该项目尚处于测试阶段,所以它还是个未完成的工作,还不适用于终端用户。直到现在,开发始终专注于积淀应用的核心功能和创建便捷的开发工具。所以,目前我们将致力于创建新的插件,因为很明显在这方面还很缺乏。 -其目的在于在不放弃最初的可用性的情况下,逐步将该软件打造成一个专业的额图像编辑器。Nathive由基于GTK+的Python脚本写成的,它设计为简洁、轻量,而且易于安装和使用。 +其目的是在不放弃最初的可用性的情况下,逐步将该软件打造成一个专业的图像编辑器。Nathive由基于GTK+的Python脚本写成的,它设计为简洁、轻量,而且易于安装和使用。 -### ubuntu上安装Nathive ### +### 在 ubuntu 上安装Nathive ### 你需要从[这里][1]下载.deb包,然后双击来安装。 @@ -24,7 +24,7 @@ via: http://www.ubuntugeek.com/nathive-a-libre-software-image-editor.html 作者:[ruchi][a] 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 3ad2ea5e505e6cfbba527ebb558461be3acff51e Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 11 Dec 2014 20:57:06 +0800 Subject: [PATCH 140/158] =?UTF-8?q?=E5=B7=B2=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20141208 Nathive--A libre software image editor.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/share => published}/20141208 Nathive--A libre software image editor.md (100%) diff --git a/translated/share/20141208 Nathive--A libre software image editor.md b/published/20141208 Nathive--A libre software image editor.md similarity index 100% rename from translated/share/20141208 Nathive--A libre software image editor.md rename to published/20141208 Nathive--A libre software image editor.md From d98dd820a1e7926e289e643df11cb356adcb01d2 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Thu, 11 Dec 2014 21:01:27 +0800 Subject: [PATCH 141/158] Translating by ZTinoZ --- ...10 SCP Commands to Transfer Files or Folders in Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index 94a082a1f6..a295c7cc45 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -136,18 +136,18 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ### 限制带宽使用 ### -还有一个很有用的参数是“**-l**”参数,它能限制使用带宽。It will be useful if you do an automation script to copy a lot of file, but you don’t want the bandwidth is drained by the **SCP** process. +还有一个很有用的参数是“**-l**”参数,它能限制使用带宽。如果你为了拷贝很多文件而去执行了一份自动化脚本又不希望带宽被**SCP**进程耗尽,那这个参数会非常管用。 pungki@mint ~/Documents $ scp -l 400 Label.pdf mrarianto@202.x.x.x:. mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 50.3KB/s 01:13 -The **400** value behind “**-l**” parameter is mean that we limit the bandwidth for **SCP** process only **50 KB/sec**. One thing to remember that bandwidth is specified in **Kilobits/sec** (**kbps**). It is mean that **8 bits** equal with **1 byte**. +在“**-l**”参数后面的这个**400**值意思是我们给**SCP**进程限制了带宽为**50 KB/秒**。有一点要记住,带宽是以**千比特/秒** (**kbps**)表示的,**8 比特**等于**1 字节**。 While **SCP** counts in **Kilobyte/sec** (**KB/s**). So if you want to limit your bandwidth for **SCP** maximum only **50 KB/s**, you need to set it into **50 x 8 = 400**. -### Specify specific port to use with SCP ### +### 指定端口 ### Usually **SCP** is using port **22** as a default port. But for security reason, you may change the port into another port. For example, we are using port **2249**. Then the command should be like this. From c6883a43a02b6614078d33b3573e708b922abdfd Mon Sep 17 00:00:00 2001 From: Stevearzh Date: Thu, 11 Dec 2014 23:27:34 +0800 Subject: [PATCH 142/158] Translating by Stevearzh --- sources/share/20141211 NetHack.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/share/20141211 NetHack.md b/sources/share/20141211 NetHack.md index 84ff2f3dd2..5f435b931d 100644 --- a/sources/share/20141211 NetHack.md +++ b/sources/share/20141211 NetHack.md @@ -1,3 +1,4 @@ +[Translating by Stevearzh] NetHack ================================================================================ ## The best game of all time? ## From 323481080d169c6d6cec55e01e2f7247300136e1 Mon Sep 17 00:00:00 2001 From: joeren Date: Fri, 12 Dec 2014 10:17:14 +0800 Subject: [PATCH 143/158] Update 20141211 How to configure a syslog server with rsyslog on Linux.md --- ...1 How to configure a syslog server with rsyslog on Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md b/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md index dfa11897de..046820eb6d 100644 --- a/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md +++ b/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md @@ -1,3 +1,4 @@ +和1205的那篇重复! How to configure a syslog server with rsyslog on Linux ================================================================================ A syslog server represents a central log monitoring point on a network, to which all kinds of devices including Linux or Windows servers, routers, switches or any other hosts can send their logs over network. By setting up a syslog server, you can filter and consolidate logs from different hosts and devices into a single location, so that you can view and archive important log messages more easily. @@ -155,4 +156,4 @@ via: http://xmodulo.com/configure-syslog-server-linux.html [a]:http://xmodulo.com/author/caezsar [1]:http://xmodulo.com/configure-rsyslog-client-centos.html [2]:http://www.syslogserver.com/download.html -[3]:http://xmodulo.com/configure-rsyslog-client-centos.html \ No newline at end of file +[3]:http://xmodulo.com/configure-rsyslog-client-centos.html From ddaf9d4c1ee0e5061e0e5a2705c1f1bf5b9f8dc0 Mon Sep 17 00:00:00 2001 From: joeren Date: Fri, 12 Dec 2014 10:18:37 +0800 Subject: [PATCH 144/158] Update 20141205 How to use matplotlib for scientific plotting on Linux.md --- ...5 How to use matplotlib for scientific plotting on Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md b/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md index bad79e4e89..3807e4a2fe 100644 --- a/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md +++ b/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md @@ -1,3 +1,4 @@ +和1211的重复! How to use matplotlib for scientific plotting on Linux ================================================================================ If you want an efficient, automatable solution for producing high-quality scientific plots in Linux, then consider using matplotlib. Matplotlib is a Python-based open-source scientific plotting package with a license based on the Python Software Foundation license. The extensive documentation and examples, integration with Python and the NumPy scientific computing package, and automation capability are just a few reasons why this package is a solid choice for scientific plotting in a Linux environment. This tutorial will provide several example plots created with matplotlib. @@ -149,4 +150,4 @@ via: http://xmodulo.com/matplotlib-scientific-plotting-linux.html [a]:http://xmodulo.com/author/joshua [1]:http://xmodulo.com/numpy-scientific-computing-linux.html -[2]:http://matplotlib.org/ \ No newline at end of file +[2]:http://matplotlib.org/ From 99bb0fc98f8dd0ae540fed760c2cccfbfefa4703 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Fri, 12 Dec 2014 10:23:21 +0800 Subject: [PATCH 145/158] Delete duplicated files --- ...lotlib for scientific plotting on Linux.md | 153 ----------------- ...e a syslog server with rsyslog on Linux.md | 159 ------------------ 2 files changed, 312 deletions(-) delete mode 100644 sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md delete mode 100644 sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md diff --git a/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md b/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md deleted file mode 100644 index 3807e4a2fe..0000000000 --- a/sources/tech/20141205 How to use matplotlib for scientific plotting on Linux.md +++ /dev/null @@ -1,153 +0,0 @@ -和1211的重复! -How to use matplotlib for scientific plotting on Linux -================================================================================ -If you want an efficient, automatable solution for producing high-quality scientific plots in Linux, then consider using matplotlib. Matplotlib is a Python-based open-source scientific plotting package with a license based on the Python Software Foundation license. The extensive documentation and examples, integration with Python and the NumPy scientific computing package, and automation capability are just a few reasons why this package is a solid choice for scientific plotting in a Linux environment. This tutorial will provide several example plots created with matplotlib. - -### Features ### - -- Numerous plot types (bar, box, contour, histogram, scatter, line plots...) -- Python-based syntax -- Integration with the NumPy scientific computing package -- Source data can be Python lists, Python tuples, or NumPy arrays -- Customizable plot format (axes scales, tick positions, tick labels...) -- Customizable text (font, size, position...) -- TeX formatting (equations, symbols, Greek characters...) -- Compatible with IPython (allows interactive plotting from a Python shell) -- Automation use Python loops to iteratively create plots -- Save plots to image files (png, pdf, ps, eps, and svg format) - -The Python-based syntax of matplotlib serves as the foundation for many of its features and enables an efficient workflow. There are many scientific plotting packages that can produce quality plots, but do they allow you to do it directly from within your Python code? On top of that, do they allow you to create automated routines for iterative creation of plots that can be saved as image files? Matplotlib allows you to accomplish all of these tasks. You can now look forward to saving time that would have otherwise been spent manually creating multiple plots. - -### Installation ### - -Installation of Python and the NumPy package is a prerequisite for use of matplotlib. Instructions for installing NumPy can be found [here][1]. - -To install matplotlib in Debian or Ubuntu, run the following command: - - $ sudo apt-get install python-matplotlib - -To install matplotlib in Fedora or CentOS/RHEL, run the following command: - - $ sudo yum install python-matplotlib - -### Matplotlib Examples ### - -This tutorial will provide several plotting examples that demonstrate how to use matplotlib: - -- Scatter and line plot -- Histogram plot -- Pie chart - -In these examples we will use Python scripts to execute matplotlib commands. Note that the numpy and matplotlib modules must be imported from within the scripts via the import command. np is specified as a reference to the numpy module and plt is specified as a reference to the matplotlib.pyplot namespace: - - import numpy as np - import matplotlib.pyplot as plt - -### Example 1: Scatter and Line Plot ### - -The first script, **script1.py** completes the following tasks: - -- Creates three data sets (xData, yData1, and yData2) -- Creates a new figure (assigned number 1) with a width and height of 8 inches and 6 inches, respectively -- Sets the plot title, x-axis label, and y-axis label (all with font size of 14) -- Plots the first data set, yData1, as a function of the xData dataset as a dotted blue line with circular markers and a label of "y1 data" -- Plots the second data set, yData2, as a function of the xData dataset as a solid red line with no markers and a label of "y2 data". -- Positions the legend in the upper left-hand corner of the plot -- Saves the figure as a PNG file - -Contents of **script1.py**: - - import numpy as np - import matplotlib.pyplot as plt - - xData = np.arange(0, 10, 1) - yData1 = xData.__pow__(2.0) - yData2 = np.arange(15, 61, 5) - plt.figure(num=1, figsize=(8, 6)) - plt.title('Plot 1', size=14) - plt.xlabel('x-axis', size=14) - plt.ylabel('y-axis', size=14) - plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data') - plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data') - plt.legend(loc='upper left') - plt.savefig('images/plot1.png', format='png') - -The resulting plot is shown below: - -![](https://farm8.staticflickr.com/7529/15927002365_f5ae11cf02_z.jpg) - -### Example 2: Histogram Plot ### - -The second script, **script2.py** completes the following tasks: - -- Creates a data set containing 1000 random samples from a Normal distribution -- Creates a new figure (assigned number 1) with a width and height of 8 inches and 6 inches, respectively -- Sets the plot title, x-axis label, and y-axis label (all with font size of 14) -- Plots the data set, samples, as a histogram with 40 bins and an upper and lower bound of -10 and 10, respectively -- Adds text to the plot and uses TeX formatting to display the Greek letters mu and sigma (font size of 16) -- Saves the figure as a PNG file - -Contents of **script2.py**: - - import numpy as np - import matplotlib.pyplot as plt - - mu = 0.0 - sigma = 2.0 - samples = np.random.normal(loc=mu, scale=sigma, size=1000) - plt.figure(num=1, figsize=(8, 6)) - plt.title('Plot 2', size=14) - plt.xlabel('value', size=14) - plt.ylabel('counts', size=14) - plt.hist(samples, bins=40, range=(-10, 10)) - plt.text(-9, 100, r'$\mu$ = 0.0, $\sigma$ = 2.0', size=16) - plt.savefig('images/plot2.png', format='png') - -The resulting plot is shown below: - -![](https://farm8.staticflickr.com/7531/15304765024_1cc271b6e0_z.jpg) - -### Example 3: Pie Chart ### - -The third script, **script3.py** completes the following tasks: - -- Creates data set containing five integers -- Creates a new figure (assigned number 1) with a width and height of 6 inches and 6 inches, respectively -- Adds an axes to the figure with an aspect ratio of 1 -- Sets the plot title (font size of 14) -- Plots the data set, data, as a pie chart with labels included -- Saves the figure as a PNG file - -Contents of **script3.py**: - - import numpy as np - import matplotlib.pyplot as plt - - data = [33, 25, 20, 12, 10] - plt.figure(num=1, figsize=(6, 6)) - plt.axes(aspect=1) - plt.title('Plot 3', size=14) - plt.pie(data, labels=('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5')) - plt.savefig('images/plot3.png', format='png') - -The resulting plot is shown below: - -![](https://farm8.staticflickr.com/7504/15926356092_7c3e5217aa_z.jpg) - -### Summary ### - -This tutorial provides several examples of plots that can be created with the matplotlib scientific plotting package. Matplotlib is a great solution for scientific plotting in a Linux environment given its natural integration with Python and NumPy, its ability to be automated, and its production of a wide variety of customizable high quality plots. Documentation and examples for the matplotlib package can be found [here][2]. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/matplotlib-scientific-plotting-linux.html - -作者:[Joshua Reed][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/joshua -[1]:http://xmodulo.com/numpy-scientific-computing-linux.html -[2]:http://matplotlib.org/ diff --git a/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md b/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md deleted file mode 100644 index 046820eb6d..0000000000 --- a/sources/tech/20141211 How to configure a syslog server with rsyslog on Linux.md +++ /dev/null @@ -1,159 +0,0 @@ -和1205的那篇重复! -How to configure a syslog server with rsyslog on Linux -================================================================================ -A syslog server represents a central log monitoring point on a network, to which all kinds of devices including Linux or Windows servers, routers, switches or any other hosts can send their logs over network. By setting up a syslog server, you can filter and consolidate logs from different hosts and devices into a single location, so that you can view and archive important log messages more easily. - -On most Linux distributions, rsyslog is the standard syslog daemon that comes pre-installed. Configured in a client/server architecture, rsyslog can play both roles; as a syslog server rsyslog can gather logs from other devices, and as a [syslog client][1], rsyslog can transmit its internal logs to a remote syslog server. - -In this tutorial, we cover how to configure a centralized syslog server using rsyslog on Linux. Before we go into the details, it is instructive to go over syslog standard first. - -### Basic of Syslog Standard ### - -When logs are collected with syslog mechanism, three important things must be taken into consideration: - -- **Facility level**: what type of processes to monitor -- **Severity (priority) level**: what type of log messages to collect -- **Destination**: where to send or record log messages - -Let's take a look at how the configuration is defined in more detail. - -The facility levels define a way to categorize internal system processes. Some of the common standard facilities in Linux are: - -- **auth**: messages related to authentication (login) -- **cron**: messages related to scheduled processes or applications -- **daemon**: messages related to daemons (internal servers) -- **kernel**: messages related to the kernel -- **mail**: messages related to internal mail servers -- **syslog**: messages related to the syslog daemon itself -- **lpr**: messages related to print servers -- **local0 - local7**: messages defined by user (local7 is usually used by Cisco and Windows servers) - -The severity (priority) levels are standardized, and defined by using standard abbreviation and an assigned number with number 7 being the highest level of all. These levels are: - -- **emerg**: Emergency - 0 -- **alert**: Alerts - 1 -- **crit**: Critical - 2 -- **err**: Errors - 3 -- **warn**: Warnings - 4 -- **notice**: Notification - 5 -- **info**: Information - 6 -- **debug**: Debugging - 7 - -Finally, the destination statement enforces a syslog client to perform one of three following tasks: (1) save log messages on a local file, (2) route them to a remote syslog server over TCP/UDP, or (3) send them to stdout such as a console. - -In rsyslog, syslog configuration is structured based on the following schema. - - [facility-level].[severity-level] [destination] - -### Configure Rsyslog on Linux ### - -Now that we understand syslog, it's time to configure a Linux server as a central syslog server using rsyslog. We will also see how to configure a Windows based system as a syslog client to send internal logs to the syslog server. - -#### Step One: Initial System Requirements #### - -To set up a Linux host as a central log server, we need to create a separate /var partition, and allocate a large enough disk size or create a LVM special volume group. That way, the syslog server will be able to sustain the exponential growth of collected logs over time. - -#### Step Two: Enable Rsyslog Daemon #### - -rsyslog daemon comes pre-installed on modern Linux distributions, but is not enabled by default. To enable rsyslog daemon to receive external messages, edit its configuration file located in /etc/rsyslog.conf. - -Once the file is opened for editing, search and uncomment the below two lines by removing the # sign from the beginning of lines. - - $ModLoad imudp - $UDPServerRun 514 - -This will enable rsyslog daemon to receive log messages on UDP port 514. UDP is way faster than TCP, but does not provide reliability on data flow the same way as TCP does. If you need to reliable delivery, you can enable TCP by uncommenting the following lines. - - $ModLoad imtcp - $InputTCPServerRun 514 - -Note that both TCP and UDP can be set on the server simultaneously to listen on TCP/UDP connections. - -#### Step Three: Create a Template for Log Receipt #### - -In the next step we need to create a template for remote messages, and tell rsyslog daemon how to record messages received from other client machines. - -Open /etc/rsyslog.conf with a text editor, and append the following template before the GLOBAL DIRECTIVES block: - - $template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" * - *.* ?RemoteLogs - & ~ - -This template needs a little explanation. The $template RemoteLogs directive ("RemoteLogs" string can be changed to any other descriptive name) forces rsyslog daemon to write log messages to separate local log files in /var/log/, where log file names are defined based on the hostname of the remote sending machine as well as the remote application that generated the logs. The second line ("*.* ?RemoteLogs") implies that we apply RemoteLogs template to all received logs. - -The "& ~" sign represents a redirect rule, and is used to tell rsyslog daemon to stop processing log messages further, and not write them locally. If this redirection is not used, all the remote messages would be also written on local log files besides the log files described above, which means they would practically be written twice. Another consequence of using this rule is that the syslog server's own log messages would only be written to dedicated files named after machine's hostname. - -If you want, you can direct log messages with a specific facility or severity level to this new template using the following schema. - - [facility-level].[severity-level] ?RemoteLogs - -For example: - -Direct all internal authentication messages of all priority levels to RemoteLogs template: - - authpriv.* ?RemoteLogs - -Direct informational messages generated by all system processes, except mail, authentication and cron messages to RemoteLogs template: - - *.info,mail.none,authpriv.none,cron.none ?RemoteLogs - -If we want all received messages from remote clients written to a single file named after their IP address, you can use the following template. We assign a new name "IpTemplate" to this template. - - $template IpTemplate,"/var/log/%FROMHOST-IP%.log" - *.* ?IpTemplate - & ~ - -After we have enabled rsyslog daemon and edited its configuration file, we need to restart the daemon. - -**On Debian, Ubuntu or CentOS/RHEL 6:** - - $ sudo service rsyslog restart - -**On Fedora or CentOS/RHEL 7:** - - $ sudo systemctl restart rsyslog - -We can verify that rsyslog daemon is functional by using netstat command. - - $ sudo netstat -tulpn | grep rsyslog - -The output should look like the following in case rsyslog daemon listens on UDP port. - - udp 0 0 0.0.0.0:514 0.0.0.0:* 551/rsyslogd - udp6 0 0 :::514 :::* 551/rsyslogd - -If rsyslog daemon is set up to listen on TCP connections, the output should look like this. - - tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogd - tcp6 0 0 :::514 :::* LISTEN 1891/rsyslogd - -### Send Windows Logs to a Remote Rsyslog Server ### - -To forward a Windows based client's log messages to our rsyslog server, we need a Windows syslog agent. While there are a multitude of syslog agents that can run on Windows, we can use [Datagram SyslogAgent][2], which is a freeware program. - -After downloading and installing the syslog agent, we need to configure it to run as a service. Specify the protocol though which it will send data, the IP address and port of a remote rsyslog server, and what type of event logs should be transmitted as follows. - -![](https://farm8.staticflickr.com/7509/15305930594_27b7f4440a_o.jpg) - -After we have set up all the configurations, we can start the service and watch the log files on the central rsyslog server using tailf command line utility. - -### Conclusion ### - -By creating a central rsyslog server that can collect log files of local or remote hosts, we can get a better idea on what is going on internally in their systems, and can debug their problems more easily should any of them become unresponsive or crash. For information about setting up a syslog client, refer to this [guideline][3]. - - - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/configure-syslog-server-linux.html - -作者:[Caezsar M][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/caezsar -[1]:http://xmodulo.com/configure-rsyslog-client-centos.html -[2]:http://www.syslogserver.com/download.html -[3]:http://xmodulo.com/configure-rsyslog-client-centos.html From 489d3b5224247f8373ae4beffaf02bb8e12d007d Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Fri, 12 Dec 2014 11:01:08 +0800 Subject: [PATCH 146/158] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to crop an image from the command line on Linux.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md b/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md index d7683d12f3..e153739775 100644 --- a/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md +++ b/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md @@ -4,13 +4,13 @@ Linux有问必答——如何在Linux命令行中剪裁图像 当涉及到在Linux中转换或编辑图像文件时,ImageMagick毫无疑问是最为熟知的一体化软件之一。它包含了一整套命令行工具,用以显示、转换,或复制超过200中类型的光栅或矢量图像文件,所有这一切都在命令行下完成。ImageMagick可以用于多样化的图像编辑工作,如转换文件格式,添加特殊效果,添加文本,以及改变图像(调整大小、旋转、翻转、剪裁)。 -如果你想要剪裁映像以剪除空白,你可以使用ImageMagick自带的两个命令行工具。如果你还没有安装ImageMagick,请遵循[本指南][1]来安装。 +如果你想要剪裁映像以去除空白,你可以使用ImageMagick自带的两个命令行工具。如果你还没有安装ImageMagick,请参照[本指南][1]来安装。 -在本教程中,让我们来剪裁以下PNG图像。我们想要去除图像右边和底部的空白,以便让图标居中。 +在本教程中,让我们来剪裁以下PNG图像。我们想要去除图像右边和底部的边缘,以便让图标居中。 ![](https://farm8.staticflickr.com/7562/15688242319_ed19aca3a2_z.jpg) -首先,鉴定图像文件的尺寸(宽度和高度)。你可以使用identity命令来完成此事。 +首先,鉴定图像文件的尺寸(宽度和高度)。你可以使用identity命令来完成。 $ identify chart.png @@ -20,9 +20,9 @@ Linux有问必答——如何在Linux命令行中剪裁图像 就像上面显示的那样,输入的图像是1500x1000px。 -接下来,确定图像剪裁要做的两件事:(1)剪裁图像开始的位置,和(2)剪裁矩形区域的大小。 +接下来,确定图像剪裁要做的两件事:(1)剪裁图像开始的位置(2)剪裁矩形区域的大小。 -在本例中,让我们假定图像剪裁从左上角开始,更精确点是在x=20px和y=10px,那样的话,剪裁后的图像尺寸为1200x700px。 +在本实例中,让我们假定图像剪裁从左上角开始,更精确点是在x=20px和y=10px,那样的话,剪裁后的图像尺寸为1200x700px。 用于剪裁图像的工具是convert。使用“-crop”选项后,convert命令会在输入图像中剪裁出一个矩形区域。 From d902163264553da73b36788bc7d405974e0f065c Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Fri, 12 Dec 2014 11:03:58 +0800 Subject: [PATCH 147/158] =?UTF-8?q?=E5=B7=B2=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...wers--How to crop an image from the command line on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {translated/tech => published}/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md (97%) diff --git a/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md b/published/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md similarity index 97% rename from translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md rename to published/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md index e153739775..6d98704a99 100644 --- a/translated/tech/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md +++ b/published/20141208 Linux FAQs with Answers--How to crop an image from the command line on Linux.md @@ -37,7 +37,7 @@ Linux有问必答——如何在Linux命令行中剪裁图像 via: http://ask.xmodulo.com/crop-image-command-line-linux.html 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From b875372fe0c1dcb282883738d820f2a69ac06a66 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Fri, 12 Dec 2014 21:18:12 +0800 Subject: [PATCH 148/158] =?UTF-8?q?[Translating]=20Linux=20Kernel=203.18?= =?UTF-8?q?=20Released,=20This=20Is=20What=E2=80=99s=20New?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20141211 Linux Kernel 3.18 Released, This Is What' s New.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md b/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md index f8b1f41ce4..49b9f093c1 100644 --- a/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md +++ b/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md @@ -1,3 +1,5 @@ +Translating-----------geekpi + Linux Kernel 3.18 Released, This Is What’s New ================================================================================ ![](http://www.omgubuntu.co.uk/wp-content/uploads/2011/07/Tux-psd3894.jpg) From 434de3b52a29302875c41912bf7487baaadb2dc5 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Fri, 12 Dec 2014 22:12:44 +0800 Subject: [PATCH 149/158] =?UTF-8?q?[Translated]=20Linux=20Kernel=203.18=20?= =?UTF-8?q?Released,=20This=20Is=20What=E2=80=99s=20New?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rnel 3.18 Released, This Is What' s New.md | 55 ------------------- ...rnel 3.18 Released, This Is What' s New.md | 54 ++++++++++++++++++ 2 files changed, 54 insertions(+), 55 deletions(-) delete mode 100644 sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md create mode 100644 translated/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md diff --git a/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md b/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md deleted file mode 100644 index 49b9f093c1..0000000000 --- a/sources/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md +++ /dev/null @@ -1,55 +0,0 @@ -Translating-----------geekpi - -Linux Kernel 3.18 Released, This Is What’s New -================================================================================ -![](http://www.omgubuntu.co.uk/wp-content/uploads/2011/07/Tux-psd3894.jpg) - -TuxlogoA new month means a new stable release of the Linux Kernel and today Linus Torvalds has obliged, [announcing the immediate availability of Linux 3.18][1]. - -Posted on the Linux Kernel Mailing List, Torvalds explains that while a few niggling issues persist in 3.17 for a small number of users, there was ‘**absolutely no point in having everybody else twiddling their thumbs when a couple of people are actively trying to bisect an older issue**’. - -### What’s New In Linux 3.18? ### - -The Linux 3.18 kernel is amped up with some of the latest improvements in hardware support, power efficiency, bug fixes and reliability. - -As ever, these span the breadth of comprehension, going from bamboozling — e.g., multi buffer operations for cryptographic layers — to the air-punchingly understandable, like support for the Razer Sabertooth gamepad. - -We’ve compiling some of the notable changes made in this release below. It’s far, far, far from being exhaustive, and cherry picks the more relatable. - -- Nouveau (free Nvidia GPU driver) now supports basic DisplayPort audio -- Support for the Razer Sabertooth gamepad, maps it as Xbox 360 controller -- Xilinx USB2 peripherals -- Touchscreen support for Microchip AR1021 i2c, PenMount 6000 touch -- Audio codecs: Cirrus Logic CS35L32, Everest ES8328and Freescale ES8328 -- Audio support: Generic Freescale sound cards, Analog Devices SSM4567 audio amplifier -- Various filesystem improvements, including Btrfs and F2FS -- DCTCP congestion control algorithm now supported -- JIT compilation of eBPF programs on 64-bit builds -- “Tinification” patches to help developers compile leaner, smaller kernels - -#### Installing Linux 3.18 on Ubuntu #### - -Although classed as stable and bringing numerous new changes to the table, don’t feel in a rush to try and upgrade your own OS to it anytime soon. Unless you’re adept at handling the sort of monitor-smashing, CPU-charring, rage-inducing issues that arise from swapping out the engine in your OS motor, you shouldn’t. - -If you insist, you’ll find source packages available at the kernel.org website. - -- [Download the Linux Kernel Source Packages][2] - -A mainline kernel archive is maintained by Canonical to provide builds of newer Linux kernels for use by Ubuntu developers. But, and you really should note this, these are not intended for end users, despite what you may read elsewhere. With no guarantee or support, use at your own risk. - -- [Visit the Ubuntu Kernel Mainline Archive][3] - --------------------------------------------------------------------------------- - -via: http://www.omgubuntu.co.uk/2014/12/linux-kernel-3-18-released-whats-new - -作者:[Joey-Elijah Sneddon][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:https://plus.google.com/117485690627814051450/?rel=author -[1]:https://lkml.org/lkml/2014/12/7/202 -[2]:https://www.kernel.org/pub/linux/kernel/v3.x/ -[3]:http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D \ No newline at end of file diff --git a/translated/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md b/translated/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md new file mode 100644 index 0000000000..497c825154 --- /dev/null +++ b/translated/news/20141211 Linux Kernel 3.18 Released, This Is What' s New.md @@ -0,0 +1,54 @@ +、Linux 3.18 内核发布了,下面的是更新的内容 +================================================================================ +![](http://www.omgubuntu.co.uk/wp-content/uploads/2011/07/Tux-psd3894.jpg) + +新的一月意味着新的稳定版Linux内核的发布,今天Linus Torvalds[宣布Linux 3.18 很快就会发布了][1]。 + +Torvalds在Linux内核邮件列表中解释到,由于在3.17中还存在几个令一小部分用户烦心的问题,‘**绝不可以在一些人积极解决老问题时其他人无所事事。**’ + +### Linux 3.18中有什么新的? ### + +Linux 3.18内核主要致力于硬件支持、电源效率、bug修复和可靠性。 + +如往常一样,这些内容跨越很大,容易让人迷惑 。比如:加密层多重缓冲操作 - 到气冲感知, 就像对雷蛇游戏手柄的支持。 + +下面我们收集了这个版本的重要的改变。这远远不是所有的,只是选取了一些更相关的内容。 + + +- Nouveau (免费 Nvidia GPU 驱动) 现在支持基础 DisplayPort 音频 +- 对雷蛇游戏手柄的支持,用在Xbox 360上 +- Xilinx USB2 外设 +- 对Microchip AR1021 i2c、PenMount 6000 touch的触摸屏支持。 +- 音频编码: Cirrus Logic CS35L32、 Everest ES8328and Freescale ES8328 +- 音频支持: 通用飞思卡尔声卡, A模拟SSM4567音频放大器 +- 不同的文件系统提升, 包括 Btrfs 和 F2FS +- 现在支持了DCTCP拥塞控制算法 +- JIT 编译64位 eBPF程序 +- “Tinification” 帮助开发人员编译更精简更小的内核 + +#### 在Ubuntu上安装 Linux 3.18 #### + +虽然声称是稳定版并带来了大量的更新,但不要马上急着升级你的系统。除非你擅长处理监控异常,CPU过热、和其他各种系统报出的异常。 + +如果你坚持更新,你可以在kernel.org网站上找到源码包。 + +- [下载Linux内核源码包][2] + +有一个由Canonical维护的最新Linux内核归档。尽管你可能在其他地方看到过,但是,请注意,这不是针对终端用户的。没有任何保证与支持,你自己承担风险。 + +- [访问Ubuntu内核主线归档][3] + +-------------------------------------------------------------------------------- + +via: http://www.omgubuntu.co.uk/2014/12/linux-kernel-3-18-released-whats-new + +作者:[Joey-Elijah Sneddon][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:https://plus.google.com/117485690627814051450/?rel=author +[1]:https://lkml.org/lkml/2014/12/7/202 +[2]:https://www.kernel.org/pub/linux/kernel/v3.x/ +[3]:http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D \ No newline at end of file From 473785ad1920b82d97a2716dea5287dc72962991 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Sat, 13 Dec 2014 12:01:57 +0800 Subject: [PATCH 150/158] [Translating] How to use Evernote from the command line on Linux --- ...141210 How to use Evernote from the command line on Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20141210 How to use Evernote from the command line on Linux.md b/sources/tech/20141210 How to use Evernote from the command line on Linux.md index 4394d45cff..b6ccffc25f 100644 --- a/sources/tech/20141210 How to use Evernote from the command line on Linux.md +++ b/sources/tech/20141210 How to use Evernote from the command line on Linux.md @@ -1,3 +1,5 @@ +Translating--------geekpi + How to use Evernote from the command line on Linux ================================================================================ This week let's continue our journey into the depth of the Linux command line to manage and organize information. After managing [your personal expenses][1] from the command line, I propose you to manage your notes from the command line, in particular, when your notes are stored in Evernote. In case you have never heard about it, [Evernote][2] specializes in a user-friendly online service for note-taking with cloud synchronization across multiple devices. Besides offering fancy web-based APIs, Evernote has released Evernote clients for Windows, Mac, [Android][3] and iOS. However, there is, up to today, no official Linux client available. Hopefully, among the plethora of unofficial Linux programs, one emerges and attracts all the command line warriors that we are: [Geeknote][4] From 7aeeb75205813f2e8739ef4c2e0e9662b425aa94 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Sat, 13 Dec 2014 13:01:07 +0800 Subject: [PATCH 151/158] [Translated] How to use Evernote from the command line on Linux.md --- ...Evernote from the command line on Linux.md | 151 ------------------ ...Evernote from the command line on Linux.md | 151 ++++++++++++++++++ 2 files changed, 151 insertions(+), 151 deletions(-) delete mode 100644 sources/tech/20141210 How to use Evernote from the command line on Linux.md create mode 100644 translated/tech/20141210 How to use Evernote from the command line on Linux.md diff --git a/sources/tech/20141210 How to use Evernote from the command line on Linux.md b/sources/tech/20141210 How to use Evernote from the command line on Linux.md deleted file mode 100644 index b6ccffc25f..0000000000 --- a/sources/tech/20141210 How to use Evernote from the command line on Linux.md +++ /dev/null @@ -1,151 +0,0 @@ -Translating--------geekpi - -How to use Evernote from the command line on Linux -================================================================================ -This week let's continue our journey into the depth of the Linux command line to manage and organize information. After managing [your personal expenses][1] from the command line, I propose you to manage your notes from the command line, in particular, when your notes are stored in Evernote. In case you have never heard about it, [Evernote][2] specializes in a user-friendly online service for note-taking with cloud synchronization across multiple devices. Besides offering fancy web-based APIs, Evernote has released Evernote clients for Windows, Mac, [Android][3] and iOS. However, there is, up to today, no official Linux client available. Hopefully, among the plethora of unofficial Linux programs, one emerges and attracts all the command line warriors that we are: [Geeknote][4] - -### Installation of Geeknote ### - -Geeknote is developed in Python. So before trying anything, make sure that you have Python (version 2.7 preferably) and git installed. - -#### Debian, Ubuntu and Linux Mint #### - - $ sudo apt-get install python2.7 git python-setuptools - $ git clone git://github.com/VitaliyRodnenko/geeknote.git - $ cd geeknote - $ sudo python2.7 setup.py install - -#### Fedora or CentOS/RHEL #### - - $ sudo yum install git - $ git clone git://github.com/VitaliyRodnenko/geeknote.git - $ cd geeknote - $ sudo python setup.py install - -#### Arch Linux #### - -For Arch Linux users, just use the package from the [AUR][5]. - -### Basic Usage of Geeknote ### - -Once you installed Geeknote, you should link Geeknote with your Evernote account with: - - $ geeknote login - -Then enter your email address, your password, and your two-factor authentication code. If you do not have the latter, just ignore it and press ENTER. - -![](https://farm8.staticflickr.com/7525/15761947888_7bc71bf216_o.jpg) - -Obviously you need an Evernote account to do all of this, so go register first. - -Once you are all set and ready, you can start playing around, creating new notes and editing them. - -But first, you should set your favorite text editor with: - - $ geeknote settings --editor vim - -Then, the general syntax to create a new note is: - - $ geeknote create --title [title of the new note] (--content [content] --tags [comma-separated tags] --notebook [comma-separated notebooks]) - -In the above, only the title field is required, which corresponds to the title of the new note. The other flags serve to add additional metadata for the note: add some tag(s) as relevant keywords for your note, and specify in which notebook(s) to place the note. Also, if your title or content contain spaces, don't forget to place them in quotation marks. - -For example: - - $ geeknote create --title "My note" --content "This is a test note" --tags "finance, business, important" --notebook "Family" - -Naturally, the next step is to edit your notes. The syntax is very similar: - - $ geeknote edit --note [title of the note to edit] (--title [new title] --tags [new tags] --notebook [new notebooks]) - -Note that the optional parameters such as title, tags, and notebook, serve to modify the metadata of the note. For example, you can rename a note with: - - $ geeknote edit --note [old title] --title [new title] - -Now that the basis of creating and editing is done, the more advanced features are search and deletion. You can search through your notes with the syntax: - - $ geeknote find --search [text-to-search] --tags [comma-separated tags] --notebook [comma-separated notebooks] --date [date-or-date-range] --content-search - -By default, the above command will search notes by their titles. With "--content-search" option, it will search notes by their content. - -For example: - - $ geeknote find --search "*restaurant" --notebooks "Family" --date 31.03.2014-31.08.2014 - -Show all the notes with a specific title by running: - - $ geeknote show [title] - -![](https://farm8.staticflickr.com/7538/15327089024_32867cded6_o.jpg) - -My favorite trick though is probably to use: - - $ geeknote show "*" - -which will display all your notes and allow you to chose one in particular. - -And remove a note with: - - $ geeknote remove --note [title] - -Be careful as this is a real removal. It will delete the note from your cloud storage. - -Finally, there are a lot of options to manage tags and notebooks. I think that the most useful one is probably to display the list of notebooks. - - $ geeknote notebook-list - -![](https://farm8.staticflickr.com/7472/15762063420_43e3ee17da_o.jpg) - -From there, everything is pretty similar. As you can guess, listing all your tags is via: - - $ geeknote tag-list - -Creating a notebook is done via: - - $ geeknote notebook-create --title [notebook title] - -While creating a tag is: - - $ geeknote tag-create --title [tag title] - -Once you get the hang of it, the syntax is really coherent and clear, which is very appreciable. - -If you still want more, don't forget to go checkout the [official documentation][6]. - -### Bonus ### - -As a bonus, Geeknote comes with the utility gnsync, which allows for file synchronization between your Evernote account and your local computer. However, I find its syntax a bit dry: - - $ gnsync --path [where to sync] (--mask [what kind of file to sync] --format [in which format] --logpath [where to write the log] --notebook [which notebook to use]) - -What all of this means is the following. - - -- **--path /home/adrien/Documents/notes/**: location of note files to synchronize with Evernote. -- **--mask "*.txt"**: synchronize only plain text files. By default, gnsync will try to sync every file. -- **--format markdown**: whether you want them as plain or markdown format (the default is plain). -- **--logpath /home/adrien/gnsync.log**: where to write the log for synchronization. In case it goes wrong, gnsync will write logging information there. -- **--notebook "Family"**: in which notebook to synchronize note files. Note that if you leave it empty, a new notebook named after your synced folder will be created. - -To conclude, Geeknote is a fancy little command-line client for Evernote. I personally don't use Evernote that much, but it remains pretty nice and useful. The command line aspect makes it both geeky and easy to combine with a shell script of some sort. Also, there exists a fork program of Geeknote on Git, named [geeknote-improved-git][7] in Archlinux AUR, which pretends to have a few more features and a more active development than the other branch. From what I could see, it is really worth taking a look at. - -What do you think of Geeknote? Is it something you would consider using? Or would you rather stick to the traditional applications? Let us know in the comments. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/evernote-command-line-linux.html - -作者:[Adrien Brochard][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/adrien -[1]:http://xmodulo.com/manage-personal-expenses-command-line.html -[2]:https://evernote.com/ -[3]:http://xmodulo.com/go/android_tutorial -[4]:http://www.geeknote.me/ -[5]:https://aur.archlinux.org/packages/geeknote-git/ -[6]:http://www.geeknote.me/documentation/ -[7]:https://aur.archlinux.org/packages/geeknote-improved-git/ \ No newline at end of file diff --git a/translated/tech/20141210 How to use Evernote from the command line on Linux.md b/translated/tech/20141210 How to use Evernote from the command line on Linux.md new file mode 100644 index 0000000000..a243e67fc4 --- /dev/null +++ b/translated/tech/20141210 How to use Evernote from the command line on Linux.md @@ -0,0 +1,151 @@ +如何在Linux的命令行中使用Evernote +================================================================================ +这周让我们继续什么学习如个使用Linux命令行管理和组织信息。在命令行中管理[你的个人花费][1]后,我建议你在命令行中管理你的笔记,特别地是,当你笔记放在Evernote中时。为防止你从来没有听说过,[Evernote][2]专门有一个用户有好的在线服务用来在不同的设备间同步笔记。除了提供花哨的基于Web的API,Evernote还发布了在Windows、Mac、[Android][3]和iOS上的客户端。然而至今还没有官方的Linux客户端可用。老实说在众多的非官方Linux程序中,一个程序一出现就吸引了所有的命令行爱好者:[Geeknote][4] + +### Geeknote 的安装 ### + +Geeknote使用Python开发的。因此,在开始之前请确保你已经安装了Python(最好是2.7的版本)和git。 + +#### 在 Debian、 Ubuntu 和 Linux Mint 中 #### + + $ sudo apt-get install python2.7 git python-setuptools + $ git clone git://github.com/VitaliyRodnenko/geeknote.git + $ cd geeknote + $ sudo python2.7 setup.py install + +#### 在 Fedora 或者 CentOS/RHEL 中 #### + + $ sudo yum install git + $ git clone git://github.com/VitaliyRodnenko/geeknote.git + $ cd geeknote + $ sudo python setup.py install + +#### 在 Arch Linux 中 #### + +对于ArchLinux用户,只需要使用[AUR][5]中的包。 + +### Geeknote 的基本使用 ### + +一旦你安装玩Geeknote后,你应该将Geeknote与你的Evernote账号关联: + + $ geeknote login + +接着输入你的emial地址、密码、和你的二步验证码。如果你没有后者,忽略它并按下回车。 + +![](https://farm8.staticflickr.com/7525/15761947888_7bc71bf216_o.jpg) + +很明显,你需要一个Evernote账号来完成这些,因此先去注册。 + +一旦完成这一切之后,你就可以开始了,创建新的笔记并编辑它们。 + +但是首先,你需要设置你最喜欢的文本编辑器: + + $ geeknote settings --editor vim + +接着,常规创建一条新笔记的语法是: + + $ geeknote create --title [title of the new note] (--content [content] --tags [comma-separated tags] --notebook [comma-separated notebooks]) + +上面的命令中,只有‘title’是必须的,它会与一条新笔记的标题相关联。其他的标注可以为笔记添加额外的元数据:添加标签来与你的笔记关联、指定放在那个笔记本里。同样,如果你的标题或者内容还有空格,不要忘记将它们放在引号中。 + + +比如: + + $ geeknote create --title "My note" --content "This is a test note" --tags "finance, business, important" --notebook "Family" + +通常上,下一步就是编辑你的笔记。语法很相似: + + $ geeknote edit --note [title of the note to edit] (--title [new title] --tags [new tags] --notebook [new notebooks]) + +注意可选的参数如标题、标签和笔记本,用来修改笔记的元数据。比如,你可以用下面的命令重命名笔记: + + $ geeknote edit --note [old title] --title [new title] + +现在基本的创建和编辑已经完成了,更高级的特性是搜索和删除。你可以下面的语法搜索你的笔记: + + $ geeknote find --search [text-to-search] --tags [comma-separated tags] --notebook [comma-separated notebooks] --date [date-or-date-range] --content-search + +默认上,上面的命令会通过标题搜索笔记。 用"--content-search"选项,就可以搜索它们的内容。 + +比如: + + $ geeknote find --search "*restaurant" --notebooks "Family" --date 31.03.2014-31.08.2014 + +显示制定标题的笔记: + + $ geeknote show [title] + +![](https://farm8.staticflickr.com/7538/15327089024_32867cded6_o.jpg) + +我最喜欢使用的一个技巧是使用: + + $ geeknote show "*" + +这会显示所有的笔记并允许你在这中选择一个。 + +删除一条笔记: + + $ geeknote remove --note [title] + +小心这是真正的删除。它会从云存储中删除这条笔记。 + +最后有很多的选项来管理标签和笔记本。我想最有用的是显示笔记本列表。 + + $ geeknote notebook-list + +![](https://farm8.staticflickr.com/7472/15762063420_43e3ee17da_o.jpg) + +下面的非常相像。你可以猜到,可以用下面的命令列出所有的标签: + + $ geeknote tag-list + +创建一个笔记本: + + $ geeknote notebook-create --title [notebook title] + +创建一个标签: + + $ geeknote tag-create --title [tag title] + +一旦你了解了窍门,很明显语法是非常连贯且明确的。 + +如果你想要了解更多,不要忘记查看[官方文档][6]。 + +### 福利 ### + +As a bonus, Geeknote comes with the utility gnsync, which allows for file synchronization between your Evernote account and your local computer. However, I find its syntax a bit dry: +福利的是,Geeknote自带的gnsync工具可以让你在Evernote和本地计算机之间同步。然而,我发现它的语法有点枯燥: + + $ gnsync --path [where to sync] (--mask [what kind of file to sync] --format [in which format] --logpath [where to write the log] --notebook [which notebook to use]) + +下面是这些的意义。 + + +- **--path /home/adrien/Documents/notes/**: 与Evernote同步笔记的位置。 +- **--mask "*.txt"**: 只同步纯文本文件。默认上,gnsync会尝试同步所有文件。 +- **--format markdown**: 你希望它们是纯文本或者markdown格式(默认是纯文本)。 +- **--logpath /home/adrien/gnsync.log**: 同步日志的位置。为防出错,gnsync会在那里写入日志信息。 +- **--notebook "Family"**: 同步哪个笔记本中的笔记。如果你那里留空,程序会创建一个以你同步文件夹命令的笔记本。 + +总结来说,Geeknote是一款花哨的Evernote的命令行客户端。我个人不常使用Evernote,但它仍然很漂亮和有用。命令行一方面让它变得很极客且很容易与shell脚本结合。同样,还有Git上fork出来的Geeknote,在ArchLinux AUR上称为[geeknote-improved-git][7],貌似它有更多的特性和比其他分支更积极的开发。但在我看来,还很值得再看看。 + +你认为Geeknote怎么样? 有什么你想用的么?或者你更喜欢使用传统的程序?在评论区中让我们知道。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/evernote-command-line-linux.html + +作者:[Adrien Brochard][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/adrien +[1]:http://xmodulo.com/manage-personal-expenses-command-line.html +[2]:https://evernote.com/ +[3]:http://xmodulo.com/go/android_tutorial +[4]:http://www.geeknote.me/ +[5]:https://aur.archlinux.org/packages/geeknote-git/ +[6]:http://www.geeknote.me/documentation/ +[7]:https://aur.archlinux.org/packages/geeknote-improved-git/ \ No newline at end of file From 317927958edbe926639647895d400240254ded0b Mon Sep 17 00:00:00 2001 From: runningwater Date: Sat, 13 Dec 2014 20:02:23 +0800 Subject: [PATCH 152/158] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=AD=20by=20runn?= =?UTF-8?q?ingwater?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow To Create A Bootable Ubuntu USB Drive For Mac In OS X.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md b/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md index 5d88b04362..7bbc03c408 100644 --- a/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md +++ b/sources/tech/20141205 How To Create A Bootable Ubuntu USB Drive For Mac In OS X.md @@ -1,3 +1,4 @@ +(translating by runningwater) How To Create A Bootable Ubuntu USB Drive For Mac In OS X ================================================================================ ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Create_bootable_Ubuntu_USB_Mac_OS_X.jpg) @@ -133,7 +134,7 @@ I hope this guide helped you to create a bootable USB disk of Ubuntu for Mac in via: http://itsfoss.com/create-bootable-ubuntu-usb-drive-mac-os/ 作者:[Abhishek][a] -译者:[译者ID](https://github.com/译者ID) +译者:[runningwater](https://github.com/runningwater) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 3de7f543e2d4f3284e16fae6f137956811648be2 Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Sun, 14 Dec 2014 13:15:40 +0800 Subject: [PATCH 153/158] [Translating] What is a good free control panel for VPS.md --- .../tech/20141205 What is a good free control panel for VPS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/tech/20141205 What is a good free control panel for VPS.md b/sources/tech/20141205 What is a good free control panel for VPS.md index e5ec6fc50c..7eb4e21db6 100644 --- a/sources/tech/20141205 What is a good free control panel for VPS.md +++ b/sources/tech/20141205 What is a good free control panel for VPS.md @@ -1,3 +1,6 @@ +Translating----geekpi + + What is a good free control panel for VPS ================================================================================ Anyone with a reasonable level of Linux skills knows that no control panel can beat the plain-old command line interface for managing a [virtual private server][1] (VPS). One can still argue that there is a place for a good server control panel though, due to the streamlined interface for getting routine administration tasks done easily with a few mouse clicks. From 553b97ac39432d37ddf721607d6a2d726df4e61b Mon Sep 17 00:00:00 2001 From: zhengsihua Date: Sun, 14 Dec 2014 14:18:08 +0800 Subject: [PATCH 154/158] [Translated] What is a good free control panel for VPS.md --- ...at is a good free control panel for VPS.md | 158 ------------------ ...at is a good free control panel for VPS.md | 155 +++++++++++++++++ 2 files changed, 155 insertions(+), 158 deletions(-) delete mode 100644 sources/tech/20141205 What is a good free control panel for VPS.md create mode 100644 translated/tech/20141205 What is a good free control panel for VPS.md diff --git a/sources/tech/20141205 What is a good free control panel for VPS.md b/sources/tech/20141205 What is a good free control panel for VPS.md deleted file mode 100644 index 7eb4e21db6..0000000000 --- a/sources/tech/20141205 What is a good free control panel for VPS.md +++ /dev/null @@ -1,158 +0,0 @@ -Translating----geekpi - - -What is a good free control panel for VPS -================================================================================ -Anyone with a reasonable level of Linux skills knows that no control panel can beat the plain-old command line interface for managing a [virtual private server][1] (VPS). One can still argue that there is a place for a good server control panel though, due to the streamlined interface for getting routine administration tasks done easily with a few mouse clicks. - -As far as control panels are concerned, even with the feature-rich commercial control panels with all the bells and whistles, there are viable free open-source alternatives which can be as powerful and versatile. Standing out among them is [Ajenti][2] server administration panel. - -Ajenti allows you to easily configure a variety of common server programs such as Apache/nginx, Samba, BIND, Squid, MySQL, cron, firewall, and so on, making it a great time saver for administering common VPS instances. For production environments, Ajenti also offers add-ons and platform support for virtual web hosting management and custom web UI development. - -Ajenti comes with a [dual license][3]; It is free to use (AGPLv3) for your personal servers, a company's internal hardware boxes, or educational institutions. However, if you are a hosting company or a hardware vendor, you need to purchase a commercial license to use Ajenti as part of commercial offerings. - -### Install Ajenti on Linux ### - -For easy of installation, Ajenti offers its own repository for major Linux distros. All it takes to install Ajenti on Linux is to configure a target repository and install it with a default package manager. - -Upon installation, a RSA private key and certificate will be automatically generated for SSL, and Ajenti will listen on HTTPS port 8000 for secure web access. If you are using firewall, you need to allow TCP/8000 port in the firewall. For security, it is a good idea to block access to port 8000 by default, and add only selected few IP addresses to the white list. - -#### Install Ajenti on Debian #### - - $ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add - - $ sudo sh -c 'echo "deb http://repo.ajenti.org/debian main main debian" >> /etc/apt/sources.list' - $ sudo apt-get update - $ sudo apt-get install ajenti - -#### Install Ajenti on Ubuntu #### - - $ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add - - $ sudo sh -c 'echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" >> /etc/apt/sources.list' - $ sudo apt-get update - $ sudo apt-get install ajenti - -#### Install Ajenti on CentOS/RHEL or Fedora #### - -On CentOS/RHEL, [configure][4] EPEL repository first, and then run the following. On Fedora, use the following commands directly. - - $ wget http://repo.ajenti.org/ajenti-repo-1.0-1.noarch.rpm - $ sudo rpm -ivh ajenti-repo-1.0-1.noarch.rpm - $ sudo yum install ajenti - -Next, configure the firewall. - -On Fedora or CentOS/RHEL 7: - - $ sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent - $ sudo firewall-cmd --reload - -On CentOS/RHEL 6: - - $ sudo iptables -I INPUT -p tcp -m tcp --dport 8000 -j ACCEPT - $ sudo service iptables save - -### Access Ajenti Web Interface ### - -Before accessing Ajenti's web interface, make sure to start ajenti service. - - $ sudo service ajenti restart - -Direct your web browser to https://:8000, and you will see the following Ajenti login interface. - -![](https://farm8.staticflickr.com/7512/15712738197_eeccd0f9dd_z.jpg) - -The default login credential is "root" for username and "admin" for password. Once you log in, you will see the initial Ajengi menu. - -![](https://farm8.staticflickr.com/7498/15897850312_d2ca46fa4b_z.jpg) - -Under "SOFTWARE" section in the left panel, you will see a list of installed services. When you install any new server software supported by Ajenti, the software will be automatically added to the list once you restart ajenti service. - - $ sudo service ajenti restart - -### VPS Management via Ajenti Web Interface ### - -Ajenti's web interface is extremely intuitive and easy to use. Here are a few examples of Ajenti functionality. - -#### Pluggable Architecture #### - -Ajenti comes with a number of application-specific plugins, which makes Ajenti highly extensible. When you install a new software on your VPS, a corresponding Ajenti plugin (if any) will be automatically enabled to manage the software. The "Plugins" menu will show what plugins are available/enabled, and which plugin is associated with what software. - -![](https://farm8.staticflickr.com/7501/15872690086_26d05ea570_z.jpg) - -#### Package Management #### - -Ajenti offers a web interface for installing and upgrading packages on VPS. - -![](https://farm9.staticflickr.com/8571/15896505171_daf8c2d9db_z.jpg) - -#### Firewall Configuration #### - -Ajenti allows you to manage firewall rules (iptables or CSF) in two ways. One is to use a user-friendly web panel interface, and the other is to edit raw firewall rules directly. - -![](https://farm8.staticflickr.com/7490/15276234634_a220f2a555_z.jpg) - -![](https://farm8.staticflickr.com/7499/15711196520_343d0668ff_z.jpg) - -#### Log Inspection #### - -You can browse system logs in /var/log via Ajenti's web interface. - -![](https://farm8.staticflickr.com/7529/15276234684_a5375c9b6d_z.jpg) - -#### Process Monitoring #### - -You can see a list of processes sorted by CPU or RAM usage, and can kill them as needed. - -![](https://farm8.staticflickr.com/7556/15711008948_ed359c284d_z.jpg) - -#### Terminal Access #### - -For low-level VPS access, Ajenti offers a web-based terminal interface where you can type Linux commands. You can open multiple terminal tabs within a web panel as shown below. - -![](https://farm8.staticflickr.com/7568/15896505251_8271ac16dd_z.jpg) - -#### Apache Web Server Administration #### - -You can edit Apache configuration file, and manage apache2 service. - -![](https://farm8.staticflickr.com/7572/15711009108_bb806d2dcd_z.jpg) - -#### MySQL/MariaDB Management #### - -You can access MySQL/MariaDB server and execute raw SQL commands on it. - -![](https://farm8.staticflickr.com/7580/15276234754_02375fd17b_z.jpg) - -#### Squid Configuration #### - -You can configure ACL, HTTP access rules, filtering ports for Squid proxy server. - -![](https://farm8.staticflickr.com/7568/15712738507_e2ef48b78f_z.jpg) - -#### Startup Service Management #### - -You can view, start, stop and restart installed services. - -![](https://farm8.staticflickr.com/7538/15898503935_1edf5c67ae_z.jpg) - -### Conclusion ### - -Ajenti is a convenient and easy-to-use web control panel for common server administration, with the possibility to add [custom plugins][5] that you can develop. However, remember that any good control panel does not obviate the need for you to learn what's happening behind the scene on your [VPS][6]. A control panel will become a real time saver only when you fully understand what you are doing, and be able to handle the consequence of your action without relying on the control panel. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/free-control-panel-for-vps.html - -作者:[Dan Nanni][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:http://xmodulo.com/go/digitalocean -[2]:http://ajenti.org/ -[3]:http://ajenti.org/licensing -[4]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html -[5]:http://docs.ajenti.org/en/latest/dev/intro.html -[6]:http://xmodulo.com/go/digitalocean \ No newline at end of file diff --git a/translated/tech/20141205 What is a good free control panel for VPS.md b/translated/tech/20141205 What is a good free control panel for VPS.md new file mode 100644 index 0000000000..b9c3f3fafd --- /dev/null +++ b/translated/tech/20141205 What is a good free control panel for VPS.md @@ -0,0 +1,155 @@ +VPS上好的控制面板是什么 +================================================================================ +任何有经验的Linux人员都认为没有一款控制面板可以打败纯命令行界面来管理[虚拟主机][1](VPS)。也有人争论有一款好的面板的一席之地,因为流线型的界面让常规管理操作可以通过点几下鼠标就可以完成。 + +至于控制面板,有共恩那个强大的充满警铃和汽笛的商业控制面板,也有不同免费的但也强大多功能的免费开源面板替代。这之中杰出的代表是[Ajenti][2]控制面板。 + +Ajenti可以让你很简单地配置不同的通用服务程序,如Apache/nginx、Samba、BIND、Squid、MySQL、cron、防火墙等等,对管理通用VPS实例可以节省大量的时间。对于生产环境,Ajenti同样提供了插件和平台来支持虚拟web主机管理和自定义web UI开发。 + +Ajenti有[双重授权][3];一个是个人、企业内部或者教育用途免费使用的AGPLv3。然而,如果你是一家托管企业或者硬件提供商,那么你需要购买商业授权来使用Ajenti作为商业供应。 + +### 在Linux上安装Ajenti ### + +为了简化安装,Ajenti为主流Linux发行版提供了自己的仓库。安装Ajenti要做的就是配置目标仓库,并用默认包管理器来安装。 + +安装前,一个RSA密钥和证书会生成用于SSL,Ajenti会见在8000端口监听HTTPS的web请求。如果你正在使用防火墙,你需要在防火墙中允许8000端口。为了安全,最好默认禁止8000端口的访问,并添加少数IP地址到白名单中。 + +#### 在Debian上安装Ajenti #### + + $ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add - + $ sudo sh -c 'echo "deb http://repo.ajenti.org/debian main main debian" >> /etc/apt/sources.list' + $ sudo apt-get update + $ sudo apt-get install ajenti + +#### 在Ubuntu上安装Ajenti #### + + $ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add - + $ sudo sh -c 'echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" >> /etc/apt/sources.list' + $ sudo apt-get update + $ sudo apt-get install ajenti + +#### 在 CentOS/RHEL或者Fedora上安装Ajenti #### + +在CentOS/RHEL上,首先[配置][4]EPEL仓库,接着运行下面的命令。在Fedora上,直接使用下面的命令。 + + $ wget http://repo.ajenti.org/ajenti-repo-1.0-1.noarch.rpm + $ sudo rpm -ivh ajenti-repo-1.0-1.noarch.rpm + $ sudo yum install ajenti + +接着配置防火墙。 + +在Fedora或者CentOS/RHEL 7上: + + $ sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent + $ sudo firewall-cmd --reload + +在CentOS/RHEL 6上: + + $ sudo iptables -I INPUT -p tcp -m tcp --dport 8000 -j ACCEPT + $ sudo service iptables save + +### 访问Ajenti web界面 ### + +在访问Ajenti的web界面前,先确保启动了ajenti服务。 + + $ sudo service ajenti restart + +直接在浏览器中输入https://:8000,你就会看到下面的Ajenti的登录界面。 + +![](https://farm8.staticflickr.com/7512/15712738197_eeccd0f9dd_z.jpg) + +默认的登录凭证是用户名“root”,密码“admin”。当你登录后,你会看到初始化的Ajenti菜单。 + +![](https://farm8.staticflickr.com/7498/15897850312_d2ca46fa4b_z.jpg) + +在左边面板的"SOFTWARE"选项下,你会看接一列安装的服务。当你安装了任何Ajenti支持的服务端程序时,软件会在重启ajenti服务后被自动加入列表。 + + $ sudo service ajenti restart + +### 通过Ajenti web界面管理VPS ### + +Ajenti的web界面非常直观且易使用。下面是Ajenti功能的几个例子。 + +#### 可插入结构 #### + +Ajenti有许多特定应用的插件,这让AJenti可高度扩展化。当你在VPS上安装一款新软件时。相关的AJenti插件(如果有的话)会自动启用来管理软件。“Plugins”菜单会展示可用/启用的插件,以及和它们关联的软件。 + +![](https://farm8.staticflickr.com/7501/15872690086_26d05ea570_z.jpg) + +#### 包管理 #### + +Ajenti提供了一个web界面来安装和升级VPS上的包。 + +![](https://farm9.staticflickr.com/8571/15896505171_daf8c2d9db_z.jpg) + +#### 防火墙配置 #### + +Ajenti允许你用两种方法管理防火墙规则(iptables或者CSF)。一种是使用用户友好的web面板,另一种是直接编辑原生的防火墙规则。 + +![](https://farm8.staticflickr.com/7490/15276234634_a220f2a555_z.jpg) + +![](https://farm8.staticflickr.com/7499/15711196520_343d0668ff_z.jpg) + +#### 日志检查 #### + +你可以在Ajenti的web界面中浏览位于/var/log下的系统日志。 + +![](https://farm8.staticflickr.com/7529/15276234684_a5375c9b6d_z.jpg) + +#### 进程监控 #### + +你可以u看见按照CPU和内存使用率排序的进程列表,按需可以结束它们。 + +![](https://farm8.staticflickr.com/7556/15711008948_ed359c284d_z.jpg) + +#### 终端访问 #### + +对于底层VPS访问,Ajenti提供了基于web的终端界面,你在这可以输入Linux命令。你也可以像下面那样在一个面板中打开多个终端。 + +![](https://farm8.staticflickr.com/7568/15896505251_8271ac16dd_z.jpg) + +#### Apache Web服务管理 #### + +你可以编辑Apache配额文件,并管理apche2服务。 + +![](https://farm8.staticflickr.com/7572/15711009108_bb806d2dcd_z.jpg) + +#### MySQL/MariaDB 管理 #### + +你可以访问MySQL/MariaDB服务并直接在上面执行原生SQL命令。 + +![](https://farm8.staticflickr.com/7580/15276234754_02375fd17b_z.jpg) + +#### Squid 配置 #### + +你可以配置Squid代理服务器的ACL、HTTP访问规则,过滤端口。 + +![](https://farm8.staticflickr.com/7568/15712738507_e2ef48b78f_z.jpg) + +#### 启动服务管理 #### + +你可以浏览、启动、停止、重启安装的服务。 + +![](https://farm8.staticflickr.com/7538/15898503935_1edf5c67ae_z.jpg) + +### 总结 ### + +Ajenti是一款易于使用的服务器管理控制面板,可以加入你开发的[自定义插件][5]。然而,记住任何好的控制面板都不会排除你学习面板后[VPS][6]上发生的情况的需求。一款面板会在你完全了解你正在做的事情的时候成会一款真正节省时间的利器,并且不依赖于控制面版来处理你行动的结果。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/free-control-panel-for-vps.html + +作者:[Dan Nanni][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:http://xmodulo.com/go/digitalocean +[2]:http://ajenti.org/ +[3]:http://ajenti.org/licensing +[4]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html +[5]:http://docs.ajenti.org/en/latest/dev/intro.html +[6]:http://xmodulo.com/go/digitalocean \ No newline at end of file From 5f03ba9eaaef6c51b42cb22cd72f606709c6bf80 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 14 Dec 2014 19:24:23 +0800 Subject: [PATCH 155/158] PUB:20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux @KayGuoWhu --- ...and fault tolerant disk I or O on Linux.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) rename {translated/tech => published}/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md (66%) diff --git a/translated/tech/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md b/published/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md similarity index 66% rename from translated/tech/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md rename to published/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md index d53d0a7a53..44dc70eca7 100644 --- a/translated/tech/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md +++ b/published/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md @@ -1,6 +1,7 @@ -在Linux上组成RAID 10阵列以实现高性能和高容错性的磁盘I/O +如何在Linux上构建 RAID 10阵列 ================================================================================ -RAID 10阵列 (又名RAID 1+0 或先镜像后分区)通过结合RAID 0 (读写操作并行在多个磁盘上同时执行)和RAID 1 (数据被完全相同地写入到两个或更多的磁盘)两者的特点实现高性能和高容错性的磁盘I/O。 + +RAID 10阵列(又名RAID 1+0 或先镜像后分区)通过结合RAID 0 (读写操作在多个磁盘上同时并行执行)和RAID 1(数据被完全相同地写入到两个或更多的磁盘)两者的特点实现高性能和高容错性的磁盘I/O。 这篇文章会指导你如何使用五块相同的8GB磁盘来组成一个软件RAID 10阵列。因为组成一个RAID 10阵列至少需要4块磁盘(比如,两个镜像各有一对分区组合),而且需要添加一块额外的备用磁盘以防某块主要的磁盘出错。本文也会分享一些工具,在稍后用来分析RAID阵列的性能。 @@ -12,15 +13,15 @@ RAID 10阵列 (又名RAID 1+0 或先镜像后分区)通过结合RAID 0 (读写 ![](https://farm4.staticflickr.com/3844/15179003008_e48806b3ef_o.png) -上图中的文件由A、B、C、D、E和F六种块组成,每一个RAID 1镜像对(如镜像1和2)在两个磁盘上复制相同的块。因为需要这样配置,写操作性能会因为每个块需要写入两次而下降,每个磁盘各一次;而读操作与从单块磁盘中读取相比并未发生改变。不过这种配置的好处是除非一个镜像中有超过一块的磁盘故障,否则都能保持冗余以维持正常的磁盘I/O操作。 +上图中的文件由A、B、C、D、E和F六种块组成,每一个RAID 1镜像对(如镜像1和2)在两个磁盘上复制相同的块。在这样的配置下,写操作性能会因为每个块需要写入两次而下降,每个磁盘各一次;而读操作与从单块磁盘中读取相比并未发生改变。不过这种配置的好处是除非一个镜像中有超过一块的磁盘故障,否则都能保持冗余以维持正常的磁盘I/O操作。 RAID 0的分区通过将数据划分到不同的块,然后执行同时将块A写入镜像1、将块B写入镜像2(以此类推)的并行操作以提高整体的读写性能。在另一方面,没有任何一个镜像包含构成主存的数据片的全部信息。这就意味着如果其中一个镜像故障,那么整个RAID 0组件将无法正常工作,数据将遭受不可恢复的损失。 ### 建立RAID 10阵列 ### -有两种建立RAID 10阵列的可行方案:复杂法(一步完成)和嵌套法(先创建两个或更多的RAID 1阵列,然后使用它们组成RAID 0)。本文会关注复杂法创建RAID 10阵列,因为这种方法能够使用偶数或奇数个磁盘去创建阵列,而且能以单个RAID设备的形式被管理,而嵌套法则恰恰相反(只允许偶数个磁盘,必须以嵌套设备的形式被管理,即分开管理RAID 1和RAID 0)。 +有两种建立RAID 10阵列的可行方案:复杂法(一步完成)和嵌套法(先创建两个或更多的RAID 1阵列,然后使用它们组成RAID 0)。本文会讲述复杂法创建RAID 10阵列的过程,因为这种方法能够使用偶数或奇数个磁盘去创建阵列,而且能以单个RAID设备的形式被管理,而嵌套法则恰恰相反(只允许偶数个磁盘,必须以嵌套设备的形式被管理,即分开管理RAID 1和RAID 0)。 -假设你的机器已经安装mdadm,并运行着相应的守护进程,细节参见[这篇文章][1]。也假设每个磁盘上已经划分出一个主分区sd[bcdef]1。使用命令 +假设你的机器已经安装mdadm,并运行着相应的守护进程,细节参见[这篇文章][1]。也假设每个磁盘上已经划分出一个主分区sd[bcdef]1 (LCTT 译注:共计五块磁盘,这里是从sdb - sdf)。使用命令: ls -l /dev | grep sd[bcdef] @@ -28,7 +29,7 @@ RAID 0的分区通过将数据划分到不同的块,然后执行同时将块A ![](https://farm3.staticflickr.com/2944/15365276992_db79cac82a.jpg) -然后使用下面的命令创建一个RAID 10阵列: +然后使用下面的命令创建一个RAID 10阵列(LCTT 译注:使用了四块磁盘 bcde 创建): # mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde]1 --spare-devices=1 /dev/sdf1 @@ -46,29 +47,29 @@ RAID 0的分区通过将数据划分到不同的块,然后执行同时将块A 1. **Used Dev Space**表示阵列所使用的每一块磁盘的容量。 -2. **Array Size**表示阵列的整体大小。RAID 10阵列的大小通过(N*C)/M计算,其中N是活跃磁盘的数目,C是活跃磁盘的总容量,M是每一个镜像中磁盘的数目。在本文的情形下,这个值等于(4*8GiB)/2 = 16GiB。 +2. **Array Size**表示阵列的整体大小。RAID 10阵列的大小通过(N\*C)/M计算,其中N是活跃磁盘的数目,C是每个活跃磁盘的容量,M是每一个镜像中磁盘的数目。在本文的情形下,这个值等于(4*8GiB)/2 = 16GiB。 3. **Layout**是整个数据布局的详细信息。可能的布局数值如下所示。 ---------- -- **n**(默认选项):代表就近拷贝。一个数据块的多个拷贝在不同磁盘里有相同的偏移量。这种布局提供和RAID 0阵列相似的读写性能。 +- **n**(默认选项):代表就近(near)拷贝。一个数据块的多个拷贝在不同磁盘里有相同的偏移量。这种布局提供和RAID 0阵列相似的读写性能。 ![](https://farm3.staticflickr.com/2941/15365413092_0aa41505c2_o.png) -- **o**代表偏移量拷贝。不是复制一个分区里的块,所有的分区都被复制,但会被循环打乱,所以同一个分区中复制的块会出现在不同的磁盘。因此,一个块的后续拷贝会出现在下一个磁盘中,一个块接着一个块。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加--layout=o2选项。 +- **o**代表偏移量(offset)拷贝。块并不是在条带里面复制的,而是整个条带一起复制,但是循环会打乱,所以同一个分区中复制的块会出现在不同的磁盘。因此,一个块的后续拷贝会出现在下一个磁盘中,一个块接着一个块。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加--layout=o2选项。 ![](https://farm3.staticflickr.com/2944/15178897580_6ef923a1cb_o.png) -- **f**代表远端拷贝(多个拷贝在不同的磁盘中具有不同的偏移量)。这种布局提供更好的读性能但带来更差的写性能。因此,对于读远远多于写的系统来说是最好的选择。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加--layout=f2。 +- **f**代表远端(far)拷贝(多个拷贝在不同的磁盘中具有不同的偏移量)。这种布局提供更好的读性能但带来更差的写性能。因此,对于读远远多于写的系统来说是最好的选择。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加--layout=f2。 ![](https://farm3.staticflickr.com/2948/15179140458_4a803bb194_o.png) 跟在布局选项**n**、**f**和**o**后面的数字代表所需的每一个数据块的副本数目。默认值是2,但可以是2到阵列中磁盘数目之间的某个值。提供足够的副本数目可以最小化单个磁盘上的I/O影响。 -4. **Chunk Size**,以[Linux RAID wiki][2]为准,是写入磁盘的最小数据单元。最佳的chunk大小取决于I/O操作的速率和相关的文件大小。对于大量的写操作,通过设置相对较大的chunks可以得到更低的开销,但对于主要存储小文件的阵列来说更小的chunk性能更好。为了给RAID 10指定一个chunk大小,在创建阵列的命令中添加**--chunk=desired_chunk_size**。 +4. **Chunk Size**,参考[Linux RAID wiki][2]的说明,是写入磁盘的最小数据单元。最佳的chunk大小取决于I/O操作的速率和相关的文件大小。对于大量的写操作,通过设置相对较大的chunk可以得到更低的开销,但对于主要存储小文件的阵列来说更小的chunk性能更好。为了给RAID 10指定一个chunk大小,在创建阵列的命令中添加**--chunk=desired_chunk_size**。 -不幸的是,并没有设置一个大小就能适合全局的策略用来提高性能,但可以参考下面的一些方案。 +不幸的是,并没有设置一个大小就能适合全局的策略来提高性能,但可以参考下面的一些方案。 - 文件系统:就整体而言,[XFS][3]据说是最好的,当然EXT4也是不错的选择。 - 最佳布局:远端布局能提高读性能,但会降低写性能。 @@ -127,7 +128,7 @@ via: http://xmodulo.com/setup-raid10-linux.html 作者:[Gabriel Cánepa][a] 译者:[KayGuoWhu](https://github.com/KayGuoWhu) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 174a778200dd9ddd22e964ad016096f054fde705 Mon Sep 17 00:00:00 2001 From: ZTinoZ Date: Mon, 15 Dec 2014 20:50:20 +0800 Subject: [PATCH 156/158] Finish the translation by ZTinoZ --- ...s to Transfer Files or Folders in Linux.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) rename {sources => translated}/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md (72%) diff --git a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/translated/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md similarity index 72% rename from sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md rename to translated/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index a295c7cc45..ab84c499d8 100644 --- a/sources/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/translated/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,4 +1,4 @@ -n Linux的十条SCP传输命令 +Linux的十条SCP传输命令 ================================================================================ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。在**SSH**命令中内置了一种叫**SCP**的命令,用来在服务器之间安全传输文件。 @@ -145,22 +145,22 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 在“**-l**”参数后面的这个**400**值意思是我们给**SCP**进程限制了带宽为**50 KB/秒**。有一点要记住,带宽是以**千比特/秒** (**kbps**)表示的,**8 比特**等于**1 字节**。 -While **SCP** counts in **Kilobyte/sec** (**KB/s**). So if you want to limit your bandwidth for **SCP** maximum only **50 KB/s**, you need to set it into **50 x 8 = 400**. +因为**SCP**是用**千字节/秒** (**KB/s**)计算的,所以如果你想要限制**SCP**的最大带宽只有**50 KB/s**,你就需要设置成**50 x 8 = 400**。 ### 指定端口 ### -Usually **SCP** is using port **22** as a default port. But for security reason, you may change the port into another port. For example, we are using port **2249**. Then the command should be like this. +通常**SCP**是把**22**作为默认端口。但是为了安全起见,你可以改成其它端口。比如说,我们想用**2249**端口,命令如下所示。 pungki@mint ~/Documents $ scp -P 2249 Label.pdf mrarianto@202.x.x.x:. mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 262.3KB/s 00:14 -Make sure that it use capital “**P**” not “**p**“, since “**p**” is already used for preserved times and modes. +确认一下写的是大写字母“**P**”而不是“**p**“,因为“**p**”已经被用来保留源文件的修改时间和模式。 -### Copy files inside directory recursively ### +### 递归拷贝文件和文件夹 ### -Sometimes we need to copy directory and all **files** / **directories** inside it. It will be better if we can do it in **1** command. **SCP** support that scenario using “**-r**” parameter. +有时我们需要拷贝文件夹及其内部的所有**文件** / **文件夹**,我们如果能用一条命令解决问题那就更好了。**SCP**用“**-r**”参数就能做到。 pungki@mint ~/Documents $ scp -r documents mrarianto@202.x.x.x:. @@ -168,50 +168,50 @@ Sometimes we need to copy directory and all **files** / **directories** inside i Label.pdf 100% 3672KB 282.5KB/s 00:13 scp.txt 100% 10KB 9.8KB/s 00:00 -When the copy process is done, at the destination server you will found a directory named “**documents**” with all it’s files. The folder “**documents**” is automatically created. +拷贝完成后,你会在目标服务器中找到一个名为“**documents**”的文件夹,其中就是所拷贝的所有文件。“**documents**”是系统自动创建的文件夹。 -### Disable progress meter and warning / diagnostic message ### +### 禁用进度条和警告/诊断信息 ### -If you choose not to see progress meter and warning / diagnostic messages from SCP, you may disable it using “**-q**” parameter. Here’s the example. +如果你不想从SCP中看到进度条和警告/诊断信息,你可以用“**-q**”参数来禁用它们,举例如下。 pungki@mint ~/Documents $ scp -q Label.pdf mrarianto@202.x.x.x:. mrarianto@202.x.x.x's password: pungki@mint ~/Documents $ -As you can see, after the you enter the password, there is no any information about SCP process. After the process is complete, you will be see a prompt again. +正如你所看到的,在你输入密码之后,没有任何关于SCP进度的消息反馈。进度完成后,你也看不到任何提示。 -### Copy files using SCP through Proxy ### +### 用SCP通过代理来拷贝文件 ### -Proxy server is usually used in office environment. Natively, SCP is not proxy configured. When your environment using proxy, you have to “tell” SCP to communicate with the proxy. +代理服务器经常用于办公环境,SCP自然是没有经过代理方面的配置的。当你的环境正在使用代理,那么你就必须要“告诉”SCP与代理关联起来。 -Here’s the scenario. The proxy address is **10.0.96.6** and the proxy port is **8080**. The proxy also implemented user authentication. First, you need to create “**~/.ssh/config**” file. Second you put this command inside it. +场景如下:代理的地址是**10.0.96.6**,端口是8080。该代理还实现了用户认证功能。首先,你需要创建一个“**~/.ssh/config**”文件,其次把以下命令输入进该文件。 ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %h %p ~/.ssh/proxyauth -Then you need to create file “**~/.ssh/proxyauth**” which contain. +接着你需要创建一个同样包括以下命令的“**~/.ssh/proxyauth**”文件。 myusername:mypassword -After that you can do SCP transparently as usual. +然后你就可以像往常一样使用SCP了。 -Please notice that corkscrew is might not installed yet on your system. On my Linux Mint, I need to install it first, using standard Linux Mint installation procedure. +请注意corkscrew可能还没有安装在你的系统中。在我的Linux Mint中,我需要首先先用标准Linux Mint安装程序来安装它。 $ apt-get install corkscrew -For other yum based systems, users can install corkscrew using the following yum command. +对于其它的一些基于yum安装的系统,用户能用以下的命令来安装corkscrew。 # yum install corkscrew -Another thing that since “**~/.ssh/proxyauth**” file contain your “**username**” and “**password**” in clear-text format, please make sure that the file can be accessed by you only. +还有一点就是因为“**~/.ssh/proxyauth**”文件中以明文的格式包含了你的“**用户名**”和“**密码**”,所以请确保该文件只能你来查看。 -### Select different ssh_config file ### +### 选择不同的ssh_config文件 ### -For mobile user who often switch between company network and public network, it will be suffer to always change settings in SCP. It is better if we can put a different **ssh_config** file to match our needs. +对于经常在公司网络和公共网络之间切换的移动用户来说,一直改变SCP的设置显然是很痛苦的。如果我们能放一个不同的**ssh_config**文件来匹配我们的需求那就很好了。 -#### Here’s a sample scenario #### +#### 以下是一个简单的场景 #### -Proxy is used in company network but not in public network and you are regularly switch network. +代理是被用来在公司网络但不是公共网络并且你会定期切换网络时候使用的。 pungki@mint ~/Documents $ scp -F /home/pungki/proxy_ssh_config Label.pdf @@ -219,18 +219,18 @@ Proxy is used in company network but not in public network and you are regularly mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 282.5KB/s 00:13 -By default “**ssh_config**” file per user will be placed in “**~/.ssh/config**“. Creating a specific “**ssh_config**” file with proxy compatible, will make you easier to switch between networks. +默认情况下每个用户会把“**ssh_config**”文件放在“**~/.ssh/config**“路径下。用兼容的代理创建一个特定的“**ssh_config**”文件,能让你切换网络时更加方便容易。 -When you are on company network, you can use “**-F**” parameter. When you are on public network, you can skip “**-F**” parameter. +当你处于公司网络时,你可以用“**-F**”参数,当你处于公共网络时,你可以忽略掉“**-F**”参数。 -That’s all about **SCP**. You can see **man pages** of **SCP** for more detail. Please feel free to leave comments and suggestions. +以上就是关于**SCP**的全部内容了,你可以查看**SCP**的**man页面**来获取更多内容,请随意留下您的评论及建议。 -------------------------------------------------------------------------------- via: http://www.tecmint.com/scp-commands-examples/ 作者:[Pungki Arianto][a] -译者:[译者ID](https://github.com/译者ID) +译者:[ZTinoZ](https://github.com/ZTinoZ) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From d9ae8c1739e941fd0ffa83fa136ab3e3d50ff7f5 Mon Sep 17 00:00:00 2001 From: joeren Date: Tue, 16 Dec 2014 08:14:24 +0800 Subject: [PATCH 157/158] Update 20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md --- ...ava servlet engine and webserver) on Ubuntu 14.10 Server.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md b/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md index dfb08bab3d..9672a645c8 100644 --- a/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md +++ b/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md @@ -1,3 +1,4 @@ +Translating by GOLinux! Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server ================================================================================ Jetty provides a Web server and javax.servlet container, plus support for SPDY, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available for commercial use and distribution. @@ -103,4 +104,4 @@ via: http://www.ubuntugeek.com/install-jetty-9-java-servlet-engine-and-webserver 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://download.eclipse.org/jetty/stable-9/dist/ \ No newline at end of file +[1]:http://download.eclipse.org/jetty/stable-9/dist/ From fda2d2ad7fd05262b6a4d1a63d7c54842bf6dd10 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Tue, 16 Dec 2014 08:42:14 +0800 Subject: [PATCH 158/158] [Translated] 20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md --- ...e and webserver) on Ubuntu 14.10 Server.md | 107 ------------------ ...e and webserver) on Ubuntu 14.10 Server.md | 104 +++++++++++++++++ 2 files changed, 104 insertions(+), 107 deletions(-) delete mode 100644 sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md create mode 100644 translated/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md diff --git a/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md b/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md deleted file mode 100644 index 9672a645c8..0000000000 --- a/sources/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md +++ /dev/null @@ -1,107 +0,0 @@ -Translating by GOLinux! -Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server -================================================================================ -Jetty provides a Web server and javax.servlet container, plus support for SPDY, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available for commercial use and distribution. - -Jetty is used in a wide variety of projects and products, both in development and production. Jetty can be easily embedded in devices, tools, frameworks, application servers, and clusters. See the Jetty Powered page for more uses of Jetty. - -### Jetty Features ### - -- Full-featured and standards-based -- Open source and commercially usable -- Flexible and extensible -- Small footprint -- Embeddable -- Asynchronous -- Enterprise scalable -- Dual licensed under Apache and Eclipse - -### Install Jetty9 on ubuntu 14.10 server ### - -#### Prerequisites #### - -You need to install Java before installing jetty server using the following command - - sudo apt-get install openjdk-8-jdk - -This will install it to /usr/lib/jvm/java-8-openjdk-i386. A symlink java-1.8.0-openjdk-i386 is created in the directory /usr/lib/jvm/. A symlink is also created at /usr/bin/java - -Now you need to download Jetty9 from [here][1] after downloading you need to extract using the following command - - $tar -xvf jetty-distribution-9.2.5.v20141112.tar.gz - -This unpacks the jetty-distribution-9.2.5.v20141112 and you need to Move the archive to /opt/jetty using the following command - - $mv jetty-distribution-9.2.5.v20141112 /opt/jetty - -You need to Create jetty user and make it the owner of /opt/jetty directory - - sudo useradd jetty -U -s /bin/false - - sudo chown -R jetty:jetty /opt/jetty - -#### Jetty Startup Script #### - -Copy the Jetty script to run as a service using the following command - - $ cp /opt/jetty/bin/jetty.sh /etc/init.d/jetty - -Now you need to create jetty settings file with the following content - - sudo vi /etc/default/jetty - -Add the following lines - - JAVA_HOME=/usr/bin/java - JETTY_HOME=/opt/jetty - NO_START=0 - JETTY_ARGS=jetty.port=8085 - JETTY_HOST=0.0.0.0 - JETTY_USER=jetty - -Save and exit the file - -You need to start jetty service using the following command - - sudo service jetty start - -You should see output similar to the following - - Starting Jetty: OK Mon Nov 24 11:55:48 GMT 2014 - -If you see the following error - -#### ** ERROR: JETTY_HOME not set, you need to set it or install in a standard location #### - -You need to make sure you have correct jetty home path in /etc/default/jetty file i.e JETTY_HOME=/opt/jetty - -You can test the jetty using the following URL - -It should now be running on port 8085! Visit in your browser http://serverip:8085 and you should see a Jetty screen. - -#### Jetty Service checking #### - -Verify and check your configuration with the following command - - sudo service jetty check - -Jetty automatically start on reboot using the following command - - sudo update-rc.d jetty defaults - -Reboot the server and test if Jetty starts automatically. - -To check which port Jetty is running or whether there are any conflicts with other programs for that port, run netstat -tln - --------------------------------------------------------------------------------- - -via: http://www.ubuntugeek.com/install-jetty-9-java-servlet-engine-and-webserver-on-ubuntu-14-10-server.html - -作者:[ruchi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://www.ubuntugeek.com/author/ubuntufix -[1]:http://download.eclipse.org/jetty/stable-9/dist/ diff --git a/translated/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md b/translated/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md new file mode 100644 index 0000000000..f9d13170de --- /dev/null +++ b/translated/tech/20141208 Install Jetty 9 (Java servlet engine and webserver) on Ubuntu 14.10 Server.md @@ -0,0 +1,104 @@ +Ubuntu 14.10 Server上安装Jetty 9(Java服务引擎和Web服务器) +================================================================================ +Jetty提供了一个Web服务器和javax.servlet容器,为SPDY、WebSocket、OSGi、JMX、JNDI、JAAS以及许多其它集成套件添加了支持。这些组件都是开源的,也可用于商业用途和分发。 + +Jetty被广泛用于多种项目和产品,都可以在开发环境和生产环境中使用。Jetty可以很容易地嵌入到设备、工具、框架、应用服务器以及集群中。更多用途可参见Jetty网页。 + +### Jetty特性 ### + +- 全功能并基于标准 +- 开源与商用两可 +- 灵活和可扩展 +- 小足迹 +- 可嵌入 +- 异步 +- 企业弹性扩展 +- Apache和Eclipse双重许可 + +### ubuntu 14.10 server上安装Jetty 9 ### + +#### 先决条件 #### + +在安装Jetty服务器前,您需要通过以下命令安装Java + + sudo apt-get install openjdk-8-jdk + +Java将会安装到/usr/lib/jvm/java-8-openjdk-i386,同时在该目录下会创建一个名为java-8-openjdk-i386的符号链接,在/usr/bin/java下也会相应创建符号链接。 + +现在你需要从[这里][1]下载Jetty9,在下载完成后,你需要使用以下命令来解压缩 + + $tar -xvf jetty-distribution-9.2.5.v20141112.tar.gz + +该操作会将它解压到jetty-distribution-9.2.5.v20141112,而你需要使用以下命令将归档文件移动到/opt/jetty + + $mv jetty-distribution-9.2.5.v20141112 /opt/jetty + +你需要创建jetty用户,并将其设置成/opt/jetty目录的属主 + + sudo useradd jetty -U -s /bin/false + + sudo chown -R jetty:jetty /opt/jetty + + +使用以下命令拷贝Jetty脚本到启动目录,以便让它作为一个服务来运行 + + $ cp /opt/jetty/bin/jetty.sh /etc/init.d/jetty + +现在,你需要使用以下内容来创建Jetty设置文件 + + sudo vi /etc/default/jetty + +添加以下行 + + JAVA_HOME=/usr/bin/java + JETTY_HOME=/opt/jetty + NO_START=0 + JETTY_ARGS=jetty.port=8085 + JETTY_HOST=0.0.0.0 + JETTY_USER=jetty + +保存并退出该文件 + +你需要使用以下命令来启动Jetty服务 + + sudo service jetty start + +你应该看到和下面类似的输出 + + Starting Jetty: OK Mon Nov 24 11:55:48 GMT 2014 + +如果你看到了下面的错误 + +#### ** ERROR: JETTY_HOME not set, you need to set it or install in a standard location #### + +你需要确保在/etc/default/jetty文件中设置了正确的Jetty家目录路径, +你可以使用以下URL来测试jetty + +Jetty现在应该运行在8085端口,打开浏览器并访问http://serverip:8085,你应该可以看到Jetty屏幕。 + +#### Jetty服务检查 #### + +使用以下命令来验证并检查配置 + + sudo service jetty check + +使用以下命令来让Jetty开重启后自动启动 + + sudo update-rc.d jetty defaults + +重启服务器并测试Jetty是否自动启动。 + +要检查Jetty运行在哪个端口上,或者该端口是否与其它程序冲突,可以运行netstat -tln + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/install-jetty-9-java-servlet-engine-and-webserver-on-ubuntu-14-10-server.html + +作者:[ruchi][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]:http://download.eclipse.org/jetty/stable-9/dist/