Merge pull request #1 from LCTT/master

Update the repository
This commit is contained in:
ZTinoZ 2015-03-26 09:10:49 +08:00
commit 76d8efef08
74 changed files with 4903 additions and 1534 deletions

View File

@ -1,10 +1,11 @@
如何使用fail2ban来保护SSH服务器避免暴力破解攻击。
如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击
================
对于SSH服务的常见的攻击就是暴力破解攻击--远程攻击者通过不同的密码来进行无限地登录尝试。当然SSH存在参数来防备密码验证以及可用的验证机制例如[公钥验证][1]或者[双重验证][2],来解决这类攻击. 将不同的验证方法的优劣处先放在一边,先考虑一下强制密码验证的情形.你是如何保护你的SSH服务器免遭暴力破解攻击的呢?
[fail2ban][3]是linux上的一个著名的入侵保护的开源框架它会监控多个系统的日志文件例如/var/log/auth.log 或者 /var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御活动。实际上fail2ban在防御对SSH服务器的暴力密码破解上非常有用。
对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试。当然SSH可以设置使用非密码验证验证方式来对抗这种攻击例如[公钥验证][1]或者[双重验证][2]。将不同的验证方法的优劣处先放在一边,如果我们必须使用密码验证方式怎么办?你是如何保护你的 SSH 服务器免遭暴力破解攻击的呢?
在该指导教程中,我会演示**如何安装并配置fail2ban来保护SSH服务器避免来自远程IP地址的暴力攻击**
[fail2ban][3] 是 Linux 上的一个著名的入侵保护的开源框架,它会监控多个系统的日志文件(例如:/var/log/auth.log 或者 /var/log/secure并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上fail2ban 在防御对SSH服务器的暴力密码破解上非常有用。
在这篇指导教程中,我会演示**如何安装并配置 fail2ban 来保护 SSH 服务器以避免来自远程IP地址的暴力攻击**。
###在linux上安装Fail2ban
@ -16,15 +17,15 @@
$ sudo yum install fail2ban
在ubuntu,Debian或 Linux Mint上安装fail2ban:
在ubuntuDebian 或 Linux Mint上安装fail2ban
$ sudo apt-get install fail2ban
### 为SSH服务器配置Fail2ban
现在你已经准备好了通过配置fail2ban来加强你的SSH服务器。你需要编辑其配置文件/etc/fail2ban/jail.conf。 在配置文件的“DEFAULT[默认]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定的服务器你可以定义任何特定服务键入来覆载默认的参数配置例如SSHApache等
现在你已经准备好了通过配置 fail2ban 来加强你的SSH服务器。你需要编辑其配置文件 /etc/fail2ban/jail.conf。 在配置文件的“[DEFAULT]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定服务的配置部分你可以为每个服务例如SSHApache等设置特定的配置来覆盖默认的参数配置
特定服务监狱区(在[DEFAULT默认]区后面的地方),你需要定义[ssh-iptables]区这里用来定义SSH相关的监狱配置。禁止真正的IP地址是通过iptables完成的。
针对服务的监狱区(在[DEFAULT]区后面的地方),你需要定义一个[ssh-iptables]区这里用来定义SSH相关的监狱配置。真正的禁止IP地址的操作是通过iptables完成的。
下面是一个包含“ssh-iptables”监狱配置的/etc/fail2ban/jail.conf的文件样例。当然根据你的需要你也可以指定其他的应用监狱。
@ -32,17 +33,17 @@
```
[DEFAULT]
# a space delimited list of IP addresses, CIDR prefixes, or DNS hostnames
# to bypass fail2ban protection
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24
# number of seconds during which a client host is blocked
# 客户端主机被禁止的时长(秒)
bantime = 86400
# number of failures before a client host is blocked
# 客户端主机被禁止前允许失败的次数
maxretry = 5
# number of seconds within which "maxentry" failures result in banning
# 查找失败次数的时长(秒)
findtime = 600
mta = sendmail
@ -52,17 +53,17 @@ enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
# for Debian-based distros
# Debian 系的发行版
logpath = /var/log/auth.log
# for Red Hat-based distros
# Red Hat 系的发行版
logpath = /var/log/secure
# ssh-specific max-retry threshold
# ssh 服务的最大尝试次数
maxretry = 3
```
根据上述配置fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址1。一旦被禁这个IP地址将会保持在24小时内被持续阻塞。这个事件会通过sendemail发送到一个接收邮件地址进行通知。
根据上述配置fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁这个IP地址将会在24小时内一直被禁止访问 SSH 服务。这个事件也会通过sendemail发送邮件通知。
一旦配置文件准备就按照以下方式重启fail2ban服务。
一旦配置文件准备就按照以下方式重启fail2ban服务。
在 Debian, Ubuntu 或 CentOS/RHEL 6:
@ -72,14 +73,14 @@ maxretry = 3
$ sudo systemctl restart fail2ban
为了验证fail2ban成功运行使用参数'ping'来运行fail2ban-client 命令。 如果fail2ban服务正常运行你可以看到“pong)”作为响应。
为了验证fail2ban成功运行使用参数'ping'来运行fail2ban-client 命令。 如果fail2ban服务正常运行你可以看到“pong)”作为响应。
$ sudo fail2ban-client ping
Server replied: pong
### 测试fail2ban 保护SSH免遭暴力破解攻击
### 测试 fail2ban 保护SSH免遭暴力破解攻击
为了测试fail2ban是否能正常工作尝试通过使用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击。与此同时监控/var/log/fail2ban.log--该文件记录在fail2ban中发生的任何敏感事件。
为了测试fail2ban是否能正常工作尝试通过使用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击。与此同时监控 /var/log/fail2ban.log该文件记录在fail2ban中发生的任何敏感事件。
$ sudo tail -f /var/log/fail2ban.log
@ -88,6 +89,7 @@ maxretry = 3
根据上述的日志文件Fail2ban通过检测IP地址的多次失败登录尝试禁止了一个IP地址192.168.1.8。
###检查fail2ban状态并解禁被锁住的IP地址
由于fail2ban的“ssh-iptables”监狱使用iptables来阻塞问题IP地址你可以通过以下方式来检测当前iptables来验证禁止规则。
$ sudo iptables --list -n
@ -110,9 +112,10 @@ RETURN all -- 0.0.0.0/0 0.0.0.0/0
```
如果你想要从fail2ban中解锁某个IP地址你可以使用iptables命令
$ sudo iptables -D fail2ban-SSH -s 192.168.1.8 -j DROP
当然你可以使用上述的iptables命令手动地检验和管理fail2ban的IP阻塞列表但实际上有一个适当的方法就是使用fail2ban-client命令行工具。这个命令不仅允许你对"ssh-iptables"监狱进行管理,也可以通过一个标准的命令行接口对其他任何的fail2ban监狱类型
当然你可以使用上述的iptables命令手动地检验和管理fail2ban的IP阻塞列表但实际上有一个适当的方法就是使用fail2ban-client命令行工具。这个命令不仅允许你对"ssh-iptables"监狱进行管理,同时也是一个标准的命令行接口可以管理其他类型的fail2ban监狱
为了检验fail2ban状态会显示出当前活动的监狱列表
@ -132,8 +135,9 @@ RETURN all -- 0.0.0.0/0 0.0.0.0/0
![](https://farm8.staticflickr.com/7465/16065915571_b215a8b344_b.jpg)
注意如果你停止了Fail2ban,那么所有的IP地址都会被解锁。当你重启Fail2ban,它会从/etc/log/secure(或 /var/log/auth.log)中找到异常的IP地址列表如果这些异常对象的流逝时间仍然在禁止时间内那么Fail2ban会重新将这些IP地址禁止。
### Set Fail2ban to Auto-start on Boot
注意如果你停止了Fail2ban 服务那么所有的IP地址都会被解锁。当你重启 Fail2ban它会从/etc/log/secure(或 /var/log/auth.log)中找到异常的IP地址列表如果这些异常地址的发生时间仍然在禁止时间内那么Fail2ban会重新将这些IP地址禁止。
### 设置 Fail2ban 自动启动
一旦你成功地测试了fail2ban之后最后一个步骤就是在你的服务器上让其在开机时自动启动。在基于Debian的发行版中fail2ban已经默认让自动启动生效。在基于Red-Hat的发行版中按照下面的方式让自动启动生效。
@ -147,14 +151,15 @@ RETURN all -- 0.0.0.0/0 0.0.0.0/0
### 总结
在该教程中我演示了如何安装并配置fail2ban来保护一个SSH服务器。当然fail2ban可以缓解暴力密码攻击但是请注意这并不能保护SSH服务器避免来自复杂分布的暴力破解组织这些攻击者通过使用成千上万个机器控制的IP地址来绕过fail2ban的防御机制。
在该教程中我演示了如何安装并配置fail2ban来保护一个SSH服务器。当然fail2ban可以缓解暴力密码攻击但是请注意这并不能保护SSH服务器避免来自复杂的分布式暴力破解组织这些攻击者通过使用成千上万个机器控制的IP地址来绕过fail2ban的防御机制。
-----------
via: http://linoxide.com/tools/linux-compress-decompress-tools/
via: http://xmodulo.com/how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban.html
作者:[Dan Nanni][a]
译者:[theo-l](https://github.com/theo-l)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
@ -162,4 +167,4 @@ via: http://linoxide.com/tools/linux-compress-decompress-tools/
[1]:http://xmodulo.com/how-to-force-ssh-login-via-public-key-authentication.html
[2]:http://xmodulo.com/two-factor-authentication-ssh-login-linux.html
[3]:http://www.fail2ban.org/
[4]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
[4]:http://linux.cn/article-2324-1.html

View File

@ -1,16 +1,16 @@
如何配置fail2ban来保护Apache服务器
如何配置 fail2ban 来保护 Apache 服务器
================================================================================
生产环境中的Apache服务器可能会受到不同的攻击。攻击者或许试图通过暴力攻击或者执行恶意脚本来获取未经授权或者禁止访问的目录。一些恶意爬虫或许会扫描你网站下的任意安全漏洞或者手机email地址或者web表格来发送垃圾邮件。
生产环境中的 Apache 服务器可能会受到不同的攻击。攻击者或许试图通过暴力攻击或者执行恶意脚本来获取未经授权或者禁止访问的目录。一些恶意爬虫或许会扫描你网站下的各种安全漏洞或者通过收集email地址和web表单来发送垃圾邮件。
Apache服务器具有综合的日志功能来捕捉不同表明是攻击的异常事件。然而它还不能系统地解析具体的apache日志并迅速地反应到潜在的攻击(比如,禁止/解禁IP地址。这时候`fail2ban`可以解救这一切,解放了系统管理员的工作。
Apache服务器具有全面的日志功能可以捕捉到各种攻击所反映的异常事件。然而它还不能系统地解析具体的apache 日志并迅速地对潜在的攻击进行反应(比如,禁止/解禁IP地址。这时候`fail2ban`可以解救这一切,解放了系统管理员的工作。
`fail2ban`是一款入侵防御工具,可以基于系统日志检测不同的工具并且可以自动采取保护措施比如:通过`iptables`禁止ip、阻止/etc/hosts.deny中的连接、或者通过邮件通知事件。fail2ban具有一系列预定义的“监狱”它使用特定程序日志过滤器来检测通常的攻击。你也可以编写自定义的规则来检测来自任意程序的攻击。
`fail2ban`是一款入侵防御工具,可以基于系统日志检测不同的工具并且可以自动采取保护措施比如:通过`iptables`禁止ip、通过 /etc/hosts.deny 阻止连接、或者通过邮件发送通知。fail2ban具有一系列预定义的“监狱”它使用特定程序日志过滤器来检测通常的攻击。你也可以编写自定义的规则来检测来自任意程序的攻击。
在本教程中我会演示如何配置fail2ban来保护你的apache服务器。我假设你已经安装了apache和fail2ban。对于安装请参考[另外一篇教程][1]。
### 什么是 Fail2ban 监狱 ###
让我们更深入地了解fail2ban监狱。监狱定义了具体的应用策略它会为指定的程序触发一个保护措施。fail2ban在/etc/fail2ban/jail.conf 下为一些流行程序如Apache、Dovecot、Lighttpd、MySQL、Postfix、[SSH][2]等预定义了一些监狱。每个依赖于特定的程序日志过滤器(在/etc/fail2ban/fileter.d 下面来检测通常的攻击。让我看一个例子监狱SSH监狱。
让我们更深入地了解 fail2ban 监狱。监狱定义了具体的应用策略它会为指定的程序触发一个保护措施。fail2ban在 /etc/fail2ban/jail.conf 下为一些流行程序如Apache、Dovecot、Lighttpd、MySQL、Postfix、[SSH][2] 等预定义了一些监狱。每个监狱都通过特定的程序日志过滤器(在/etc/fail2ban/fileter.d 下面来检测通常的攻击。让我看一个例子监狱SSH监狱。
[ssh]
enabled = true
@ -24,15 +24,15 @@ SSH监狱的配置定义了这些参数
- **[ssh]** 方括号内是监狱的名字。
- **enabled**:是否启用监狱
- **port** 端口的数字 (或者数字对应的名称).
- **filter** 检测攻击的检测规则
- **logpath** 检测的日志文件
- **maxretry** 禁止前失败的最大数
- **banaction** 禁止操作
- **port** 端口号(或者对应的服务名称)
- **filter** 检测攻击的日志解析规则
- **logpath** 检测的日志文件
- **maxretry** 最大失败次
- **banaction** 所进行的禁止操作
定义配置文件中的任意参数都会覆盖相应的默认配置`fail2ban-wide` 中的参数。相反,任意缺少的参数都会使用定义在[DEFAULT]字段的值。
定义在监狱配置中的任意参数都会覆盖`fail2ban-wide` 中相应的默认配置参数。相反,任何缺少的参数都会使用定义在[DEFAULT] 字段的默认值。
预定义日志过滤器都必须在/etc/fail2ban/filter.d可以采取的操作在/etc/fail2ban/action.d。
预定义的日志过滤器都放在/etc/fail2ban/filter.d而可以采取的禁止操作放在 /etc/fail2ban/action.d。
![](https://farm8.staticflickr.com/7538/16076581722_cbca3c1307_b.jpg)
@ -40,7 +40,7 @@ SSH监狱的配置定义了这些参数
### 启用预定义的apache监狱 ###
`fail2ban`的默认安装为Apache服务提供了一些预定义监狱以及过滤器。我要启用这些内建的Apache监狱。由于Debian和红买配置的稍微不同我会分别它们的配置文件。
`fail2ban`的默认安装为Apache服务提供了一些预定义监狱和过滤器。我要启用这些内建的Apache监狱。由于Debian和RedHat配置的稍微不同我会分别提供它们的配置文件。
#### 在Debian 或者 Ubuntu启用Apache监狱 ####
@ -50,7 +50,7 @@ SSH监狱的配置定义了这些参数
----------
# detect password authentication failures
# 检测密码认证失败
[apache]
enabled = true
port = http,https
@ -58,7 +58,7 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/apache*/*error.log
maxretry = 6
# detect potential search for exploits and php vulnerabilities
# 检测漏洞和 PHP 脆弱性扫描
[apache-noscript]
enabled = true
port = http,https
@ -66,7 +66,7 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/apache*/*error.log
maxretry = 6
# detect Apache overflow attempts
# 检测 Apache 溢出攻击
[apache-overflows]
enabled = true
port = http,https
@ -74,7 +74,7 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/apache*/*error.log
maxretry = 2
# detect failures to find a home directory on a server
# 检测在服务器寻找主目录的尝试
[apache-nohome]
enabled = true
port = http,https
@ -100,7 +100,7 @@ SSH监狱的配置定义了这些参数
----------
# detect password authentication failures
# 检测密码认证失败
[apache]
enabled = true
port = http,https
@ -108,7 +108,7 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/httpd/*error_log
maxretry = 6
# detect spammer robots crawling email addresses
# 检测抓取邮件地址的爬虫
[apache-badbots]
enabled = true
port = http,https
@ -117,7 +117,7 @@ SSH监狱的配置定义了这些参数
bantime = 172800
maxretry = 1
# detect potential search for exploits and php <a href="http://xmodulo.com/recommend/penetrationbook" style="" target="_blank" rel="nofollow" >vulnerabilities</a>
# 检测漏洞和 PHP 脆弱性扫描
[apache-noscript]
enabled = true
port = http,https
@ -125,7 +125,7 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/httpd/*error_log
maxretry = 6
# detect Apache overflow attempts
# 检测 Apache 溢出攻击
[apache-overflows]
enabled = true
port = http,https
@ -133,7 +133,7 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/httpd/*error_log
maxretry = 2
# detect failures to find a home directory on a server
# 检测在服务器寻找主目录的尝试
[apache-nohome]
enabled = true
port = http,https
@ -141,9 +141,9 @@ SSH监狱的配置定义了这些参数
logpath = /var/log/httpd/*error_log
maxretry = 2
# detect failures to execute non-existing scripts that
# are associated with several popular web services
# e.g. webmail, phpMyAdmin, WordPress
# 检测执行不存在的脚本的企图
# 这些都是流行的网站服务程序
# webmail phpMyAdminWordPress
port = http,https
filter = apache-botsearch
logpath = /var/log/httpd/*error_log
@ -175,7 +175,7 @@ SSH监狱的配置定义了这些参数
![](https://farm8.staticflickr.com/7572/15891521967_5c6cbc5f8f_c.jpg)
你也可以手动禁止或者解禁IP地址
你也可以手动禁止或者解禁IP地址
要用制定监狱禁止IP
@ -187,7 +187,7 @@ SSH监狱的配置定义了这些参数
### 总结 ###
本篇教程解释了fail2ban监狱如何工作以及如何使用内置的监狱来保护Apache服务器。依赖于你的环境以及要保护的web服务器类型你或许要适配已存在的监狱或者编写自定义监狱和日志过滤器。查看outfail2ban的[官方Github页面][3]来获取最新的监狱和过滤器示例。
本篇教程解释了fail2ban监狱如何工作以及如何使用内置的监狱来保护Apache服务器。依赖于你的环境以及要保护的web服务器类型你或许要调整已有的监狱或者编写自定义监狱和日志过滤器。查看outfail2ban的[官方Github页面][3]来获取最新的监狱和过滤器示例。
你有在生产环境中使用fail2ban么分享一下你的经验吧。
@ -197,11 +197,11 @@ via: http://xmodulo.com/configure-fail2ban-apache-http-server.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/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://xmodulo.com/how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban.html
[2]:http://xmodulo.com/how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban.html
[1]:http://linux.cn/article-5067-1.html
[2]:http://linux.cn/article-5067-1.html
[3]:https://github.com/fail2ban/fail2ban

View File

@ -0,0 +1,110 @@
使用Nemiver调试器来调试 C/C++ 程序
================================================================================
如果你读过我写的[使用GDB命令行调试器调试C/C++程序][1]你就会明白一个调试器对一段C/C++程序来说有多么的重要和有用。然而如果一个像GDB这样的命令行对你而言听起来更像一个问题而不是一个解决方案的话那么你也许会对Nemiver更感兴趣。[Nemiver][2] 是一款基于 GTK+ 的用于C/C++程序的图形化的独立调试器它以GDB作为其后端。最令人赞赏的是其速度和稳定性Nemiver是一个非常可靠具备许多优点的调试工具。
### Nemiver的安装 ###
基于Debian发行版它的安装时非常直接简单如下
$ sudo apt-get install nemiver
在Arch Linux中安装如下
$ sudo pacman -S nemiver
在Fedora中安装如下
$ sudo yum install nemiver
如果你选择自己编译,[GNOME 网站][3]上有最新源码包。
最令人欣慰的是它能够很好地与GNOME环境像结合。
### Nemiver的基本用法 ###
启动Nemiver的命令
$ nemiver
你也可以通过执行一下命令来启动:
$ nemiver [需要调试的可执行程序的路径]
注意,如果在调试模式下编译程序(在 GCC 中使用 -g 选项)将会对 nemiver 更有帮助。
还有一个优点是Nemiver的加载很快所以你马上就可以看到主屏幕的默认布局。
![](https://farm9.staticflickr.com/8679/15535277554_d320f6692c_c.jpg)
默认情况下,断点通常位于主函数的第一行。这样就可以空出时间让你去认识调试器的基本功能:
![](https://farm9.staticflickr.com/8669/16131832596_bc68ae18a8_o.jpg)
- 执行到下一行 按键是F6
- 执行到函数内部即停止F7
- 执行到函数外部即停止Shift+F7
不过我个人喜欢“Run to cursor运行至光标所在行该选项使你的程序准确的运行至你光标所在行它的默认按键是F11。
断点是很容易使用的。最快捷的方式是在一行代码上按下F8来设置一个断点。但是Nemiver在“Debug”菜单下也有一个更复杂的菜单它允许你在一个特定的函数某一行二进制文件中的位置或者类似异常、分支或者exec的事件上设置断点。
![](https://farm8.staticflickr.com/7579/16157622315_d680a63896_z.jpg)
你也可以通过追踪来查看一个变量。在“Debug”中你可以用一个表达式的名字来检查它的值然后也可以通过将其添加到列表中以方便访问。这可能是最有用的一个功能虽然我从未有兴趣将鼠标悬停在一个变量来获取它的值。值得注意的是虽然鼠标悬停可以取到值如果想要让它更好地工作Nemiver是可以看到结构并给出所有成员的变量的赋值。
![](https://farm8.staticflickr.com/7465/15970310470_7ed020c613.jpg)
谈到方便地访问信息我也非常欣赏这个程序的布局。默认情况下代码在上半部分功能区标签在下半部分。这可以让你访问终端的输出、上下文追踪器、断点列表、注册器地址、内存映射和变量控制。但是请注意在“Edit”-“Preferences”-“Layout”下你可以选择不同的布局包括一个可以修改的动态布局。
![](https://farm9.staticflickr.com/8606/15971551549_00e4cdd32e_c.jpg)
![](https://farm8.staticflickr.com/7525/15535277594_026fef17c1_z.jpg)
自然当你设置了全部断点观察点和布局您可以在“File”菜单下很方便地保存该会话以便你下次打开时恢复。
### Nemiver的高级用法 ###
到目前为止我们讨论的都是Nemiver的基本特征例如你马上开始调试一个简单的程序需要了解什么。如果你有更高的需求特别是对于一些更加复杂的程序你应该会对接下来提到的这些特征更感兴趣。
#### 调试一个正在运行的进程 ####
Nemiver允许你驳接到一个正在运行的进程进行调试。在“File”菜单你可以筛选出正在运行的进程并驳接到某个进程。
![](https://farm9.staticflickr.com/8593/16155720571_00e4cdd32e_z.jpg)
#### 通过TCP连接远程调试一个程序 ####
Nemiver支持远程调试你可以在一台远程机器上设置一个轻量级调试服务器然后你在另外一台机器上启动 nemiver 去调试运行在调试服务器上的程序。如果出于某些原因,你不能在远程机器上很好地驾驭 Nemiver或者GDB那么远程调试对于你来说将非常有用。在“File”菜单下指定二进制文件、共享库位置、远程地址和端口。
![](https://farm8.staticflickr.com/7469/16131832746_c47dee4ef1.jpg)
#### 使用你的GDB二进制程序进行调试 ####
如果你的Nemiver是自行编译的你可以在“Edit编辑”-“Preferences首选项”-“Debug调试”下给GDB指定一个新的位置。如果你想在Nemiver下使用定制版本的GDB那么这个选项对你来说是非常实用的。
#### 跟随一个子进程或者父进程 ####
当你的程序分支时Nemiver是可以设置为跟随子进程或者父进程的。想激活这个功能请到“Debugger”下面的“Preferences首选项”。
![](https://farm8.staticflickr.com/7512/16131832716_5724ff434c_z.jpg)
总而言之Nemiver大概是我最喜欢的不在IDE里面的调试程序。在我看来它甚至可以击败GDB它和命令行程序一样深深吸引了我。所以如果你从未使用过的话我会强烈推荐你使用。我十分感谢它背后的开发团队给了我这么一个可靠、稳定的程序。
你对Nemiver有什么见解你是否也考虑它作为独立的调试工具或者仍然坚持使用IDE让我们在评论中探讨吧。
--------------------------------------------------------------------------------
via: http://xmodulo.com/debug-program-nemiver-debugger.html
作者:[Adrien Brochard][a]
译者:[disylee](https://github.com/disylee)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/adrien
[1]:http://linux.cn/article-4302-1.html
[2]:https://wiki.gnome.org/Apps/Nemiver
[3]:https://download.gnome.org/sources/nemiver/0.9/
[4]:http://xmodulo.com/recommend/linuxclibook

View File

@ -1,12 +1,12 @@
如何在 Linux 上使用 BackupPC 来设置一个跨平台的备份服务器
如何在 Linux 上使用 BackupPC 来设跨平台的备份服务器
================================================================================
为了防止你不能分辨这篇教程和我先前关于[backupninja][1] 和 [backup-manager][2] 的帖子,=== 我是一个积极的备份迷。当提到备份,我宁愿备份的太多而不希望备份不足,因为如果我们有需要的话,你将会感激你花费了时间和精力来你的重要数据生成额外的拷贝。
也许你没有从我先前关于 [backupninja][1] 和 [backup-manager][2] 的两篇文章中发现,我是一个超级备“粉”。当提到备份,我宁愿备份的太多而不希望备份不足,因为如果我们有需要的话,你将会感激你为重要数据生成额外的拷贝所付出的时间和精力
在这篇帖子中,我将向你介绍 [BackupPC][3],一个跨平台的备份服务器软件,它可以通过网络为 LinuxWindows 和 MacOS 等系统上的客户端主机拉取备份。BackupPC 添加了一系列的特点使得管理备份变为一件快乐的事。
在这篇文章中,我将向你介绍 [BackupPC][3],一个跨平台的备份服务器软件,它可以通过网络为 LinuxWindows 和 MacOS 等系统上的客户端主机拉取备份。BackupPC 添加了一系列的特点使得管理备份变为一件快乐的事。
### BackupPC 的特点 ###
BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收集和管理其他远程客户端主机上的备份。通过使用它的 Web 界面,你可以检查日志和配置文件、为其他远程主机启动/取消/安排备份任务以及可视化备份任务的当前状态。你也可以非常容易地浏览归档的文件以及从备份的归档中恢复个人文件或整个作业。为了恢复单一的个人文件,你可以直接通过 Web 界面来下载任何先前备份的文件。若如这还不够,针对客户端主机,没有特别的客户端软件需要安装。在 Windows 客户端上, 本机 SMB 协议将被使用,而对于 *nix 客户端,你将使用 `rsync` 或 通过 SSH, RSH 或 NFS 来使用 `tar`
BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收集和管理其他远程客户端主机上的备份。通过使用它的 Web 界面,你可以检查日志和配置文件、为其他远程主机启动/取消/安排备份任务以及可视化备份任务的当前状态。你也可以非常容易地浏览归档的文件以及从备份的归档中恢复单个文件或整个备份。要恢复单个文件,你可以直接通过 Web 界面来下载任何先前备份的文件。不仅如此,客户端主机并不需要安装特别的客户端软件。在 Windows 客户端上, 使用的是原生的 SMB 协议,而对于 *nix 客户端,你将使用 `rsync` 或 通过 SSH, RSH 或 NFS 来使用 `tar`
### 安装 BackupPC ###
@ -20,13 +20,13 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
# yum install BackupPC
同往常一样,这两种包管理系统都会自动地对依赖问题进行解决。另外,作为安装过程中的一部分,你可能会被要求去配置或重新配置用于图形用户界面的 Web 服务器。下面的截图来自于 Debian 系统:
同往常一样,这两种包管理系统都会自动解决依赖问题。另外,作为安装过程中的一部分,你可能需要新配置或修改配置用于图形用户界面的 Web 服务器。下面的截图来自于 Debian 系统:
![](https://farm8.staticflickr.com/7573/16163781711_6218b620ef_c.jpg)
通过空格键来确定你的选择,然后使用 tab 键移动到 Ok 选项并敲回车键。
接着类似于下面的截屏将会呈现在你眼前,通知你一个用来管理 BackupPC 的名为 backuppc的管理员用户以及相应的密码(这个密码可以在以后被更改,如果你希望的话)已经被创建。这里需要注意的是:同样名为 backuppc的一个 HTTP 账户和一个常规的 Linux 账户将会被创建,它们使用同一个密码。需要前者的目的是来访问受保护的 BackupPC 的 Web 界面,而后者则是为了通过 SSH 来使用 `rsync` 来执行备份任务。
接着类似于下面的截屏将会呈现在你眼前,通知你创建了一个用来管理 BackupPC 的名为 backuppc的管理员用户以及相应的密码(如果你需要,这个密码以后可以更改)。这里需要注意的是:这里创建了同样名为 backuppc的 HTTP 账户和常规的 Linux 账户,它们使用相同的密码。需要前者的目的是来访问受保护的 BackupPC 的 Web 界面,而后者则是为了通过 SSH 来使用 `rsync` 来执行备份任务。
![](https://farm8.staticflickr.com/7579/15979622809_25e734658d_c.jpg)
@ -42,7 +42,7 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
### 启动 BackupPC 并设置备份 ###
首先,打开一个浏览器窗口并指向 http://<server's FQDN or IP address>/backuppc/ 。当弹出提示框时,输入先前向你提供的默认 HTTP 用户凭据(注:即用户名 backuppc 和相应的默认密码)。假如认证成功,你就会被带入到 Web 界面的主页:
首先,打开一个浏览器窗口并指向 http://\<服务器名称或 IP 地址>/backuppc/ 。当弹出提示框时,输入先前向你创建的默认 HTTP 用户凭据(注:即用户名 backuppc 和相应的默认密码)。假如认证成功,你就会被带入到 Web 界面的主页:
![](https://farm9.staticflickr.com/8601/15543330314_f6fdaa235e_z.jpg)
@ -51,9 +51,9 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
- Host #1: CentOS 7 [IP 192.168.0.17]
- Host #2: Windows 7 [IP 192.168.0.103]
我们将通过 SSH 使用 `rsync`来备份 CentOS 主机,使用 SMB 来备份 Windows 主机。在执行备份之前,我们需要向我们的 CentOS 主机设置 [基于密码认证][7](注:这里我不知如何翻译,根据链接,感觉是无需密码来连接主机)以及在我们的 Windows 主机中设置一个共享目录。
我们将通过 SSH 使用 `rsync`来备份 CentOS 主机,使用 SMB 来备份 Windows 主机。在执行备份之前,我们需要向我们的 CentOS 主机设置 [基于密钥认证][7] 以及在我们的 Windows 主机中设置一个共享目录。
下面是关于如何为一个远程 CentOS 主机设置 key-based authentication 的指导。我们创建 backuppc 用户的 RSA 密钥对,并向 CentOS 主机上的 root 账户传递它的公共密钥
下面是关于如何为一个远程 CentOS 主机设置基于密钥认证的指导。我们创建 backuppc 用户的 RSA 密钥对,并将其公钥传输给 CentOS 主机上的 root 账户
# usermod -s /bin/bash backuppc
# su - backuppc
@ -64,13 +64,13 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
![](https://farm8.staticflickr.com/7496/16164929932_8fc817125d_b.jpg)
你需要一个远程的 CentOS 主机的 root 权限来在该主机中的文件系统中发放写权限,以防要恢复的备份文件或目录的所有者为 root 账户。
你需要一个远程的 CentOS 主机的 root 权限,以获得在该主机中的文件系统中写权限,以防要恢复的备份文件或目录的所有者为 root 账户。
一旦 CentOS 和 Windows 主机都准备完毕,使用 Web 界面将它们添加到 BackupPC
![](https://farm9.staticflickr.com/8586/15979622709_76c2dcf68c_z.jpg)
下一步的内容由更改每个主机的备份设置组成
下一步更改每个主机的备份设置:
![](https://farm8.staticflickr.com/7461/16163781611_765c147f9f_z.jpg)
@ -88,7 +88,7 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
![](https://farm8.staticflickr.com/7536/15978247428_458c023f4c.jpg)
在任何时候,你都可以通过点击如上图展示的每个主机的备份主页来查看备份任务的状态。假如因为某些原因备份失败,在主机菜单中将会出现一个指向包含错误信息的网页的链接。当一个备份任务被成功地完成,一个被命名为主机名或 IP 地址的目录将会在服务器的 /var/lib/backuppc/pc 目录下被创建
在任何时候,你都可以通过点击如上图展示的每个主机的备份主页来查看备份任务的状态。假如因为某些原因备份失败,在主机菜单中将会出现一个指向包含错误信息的网页的链接。当一个备份任务成功完成后,在服务器的 /var/lib/backuppc/pc 目录下会创建一个命名为主机名或 IP 地址的目录
![](https://farm8.staticflickr.com/7549/16165680115_196ee42a49_z.jpg)
@ -96,7 +96,7 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
### 恢复备份 ###
为了浏览已经保存过的文件。进入每个主机的主菜单下的 “浏览备份”选项,你可以一目了然地看到目录和文件,并选择那些你想恢复的文件。另外,你还可以通过点击文件来使用默认程序打开文件或右击文件并选择“另存为”来下载该文件到你正在工作的机器上:
要浏览这些保存的文件,进入每个主机的主菜单下的 “浏览备份”选项,你可以一目了然地看到目录和文件,并选择那些你想恢复的文件。另外,你还可以通过点击文件来使用默认程序打开文件或右击文件并选择“另存为”来下载该文件到你当前的机器上:
![](https://farm8.staticflickr.com/7506/16165680105_bd5883e0da_c.jpg)
@ -113,21 +113,22 @@ BackupPC 自带有一个健壮的 Web 界面,允许你以集中的方式来收
有句俗话说,"越简单,越好",而这正是 BackupPC 所提供的东西。在 BackupPC 中,你将不仅找到了一个备份工具,而且还找到了一个无需任何客户端应用来在几个不同的操作系统中管理你的备份的方法。我相信这就有足够的理由让你去尝试一下。
欢迎使用下面的评论框来留下你的评论和问题,假如你有的话。我总是乐于听取读者想说的话!
--------------------------------------------------------------------------------
via: http://xmodulo.com/backuppc-cross-platform-backup-server-linux.html
作者:[Gabriel Cánepa][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/gabriel
[1]:http://xmodulo.com/backup-debian-system-backupninja.html
[2]:http://xmodulo.com/linux-backup-manager.html
[1]:http://linux.cn/article-5096-1.html
[2]:http://linux.cn/article-4586-1.html
[3]:http://backuppc.sourceforge.net/
[4]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
[5]:http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html
[4]:http://linux.cn/article-2324-1.html
[5]:http://linux.cn/article-3889-1.html
[6]:http://xmodulo.com/recommend/linuxguide
[7]:http://xmodulo.com/how-to-enable-ssh-login-without.html

View File

@ -1,4 +1,4 @@
如何在Ubuntu 14.04 LTS安装网络爬虫工具
如何在Ubuntu 14.04 LTS安装网络爬虫工具Scrapy
================================================================================
这是一款提取网站数据的开源工具。Scrapy框架用Python开发而成它使抓取工作又快又简单且可扩展。我们已经在virtual box中创建一台虚拟机VM并且在上面安装了Ubuntu 14.04 LTS。
@ -6,13 +6,13 @@
Scrapy依赖于Python、开发库和pip。Python最新的版本已经在Ubuntu上预装了。因此我们在安装Scrapy之前只需安装pip和python开发库就可以了。
pip是作为python包索引器easy_install的替代品用于安装和管理Python包。pip包的安装可见图 1。
pip是作为python包索引器easy_install的替代品用于安装和管理Python包。pip包的安装可见图 1。
sudo apt-get install python-pip
![Fig:1 Pip installation](http://blog.linoxide.com/wp-content/uploads/2014/11/f1.png)
图:1 pip安装
*图:1 pip安装*
我们必须要用下面的命令安装python开发库。如果包没有安装那么就会在安装scrapy框架的时候报关于python.h头文件的错误。
@ -20,42 +20,41 @@ pip是作为python包索引器easy_install的替代品。用于安装和管理Py
![Fig:2 Python Developer Libraries](http://blog.linoxide.com/wp-content/uploads/2014/11/f2.png)
图:2 Python 开发库
*图:2 Python 开发库*
scrapy框架即可从deb包安装也可以从源码安装。然而在图3中我们已经用pipPython 包管理器安装了deb包了。
scrapy框架既可从deb包安装也可以从源码安装。在图3中我们用pipPython 包管理器安装了deb包了。
sudo pip install scrapy
![Fig:3 Scrapy Installation](http://blog.linoxide.com/wp-content/uploads/2014/11/f3.png)
图:3 Scrapy 安装
*图:3 Scrapy 安装*
图4中scrapy的成功安装需要一些时间。
![Fig:4 Successful installation of Scrapy Framework](http://blog.linoxide.com/wp-content/uploads/2014/11/f4.png)
图:4 成功安装Scrapy框架
*图:4 成功安装Scrapy框架*
### 使用scrapy框架提取数据 ###
**(基础教程)**
####基础教程####
我们将用scrapy从fatwallet.com上提取店名(提供卡的店。首先我们使用下面的命令新建一个scrapy项目“store name” 见图5。
我们将用scrapy从fatwallet.com上提取商店名称(卖卡的店。首先我们使用下面的命令新建一个scrapy项目“store name” 见图5。
$sudo scrapy startproject store_name
![Fig:5 Creation of new project in Scrapy Framework](http://blog.linoxide.com/wp-content/uploads/2014/11/f5.png)
图:5 Scrapy框架新建项目
*图:5 Scrapy框架新建项目*
Above command creates a directory with title “store_name” at current path. This main directory of the project contains files/folders which are shown in the following Figure 6.
上面的命令在当前路径创建了一个“store_name”的目录。项目主目录下包含的文件/文件夹见图6。
$sudo ls lR store_name
![Fig:6 Contents of store_name project.](http://blog.linoxide.com/wp-content/uploads/2014/11/f6.png)
图:6 store_name项目的内容
*图:6 store_name项目的内容*
每个文件/文件夹的概要如下:
@ -66,13 +65,13 @@ Above command creates a directory with title “store_name” at current path. T
- store_name/settings.py 是项目的配置文件
- store_name/spiders/ 包含了用于爬取的蜘蛛
由于我们要从fatwallet.com上如提取店名因此我们如下修改文件。
由于我们要从fatwallet.com上如提取店名因此我们如下修改文件LCTT 译注:这里没说明是哪个文件,译者认为应该是 items.py
import scrapy
class StoreNameItem(scrapy.Item):
name = scrapy.Field() # extract the names of Cards store
name = scrapy.Field() # 取出卡片商店的名称
之后我们要在项目的store_name/spiders/文件夹下写一个新的蜘蛛。蜘蛛是一个python类它包含了下面几个必须的属性
@ -80,7 +79,7 @@ Above command creates a directory with title “store_name” at current path. T
2. 爬取起点url (start_urls)
3. 包含了从响应中提取需要内容相应的正则表达式的解析方法。解析方法对爬虫而言很重要。
我们在store_name/spiders/目录下创建了“store_name.py”爬虫并添加如下的代码来从fatwallet.com上提取点名。爬虫的输出到文件(**StoreName.txt**见图7。
我们在store_name/spiders/目录下创建了“store_name.py”爬虫并添加如下的代码来从fatwallet.com上提取店名。爬虫的输出写到文件(**StoreName.txt**见图7。
from scrapy.selector import Selector
from scrapy.spider import BaseSpider
@ -113,7 +112,7 @@ Above command creates a directory with title “store_name” at current path. T
![Fig:7 Output of the Spider code .](http://blog.linoxide.com/wp-content/uploads/2014/11/f7.png)
图:7 爬虫的输出
*图:7 爬虫的输出*
*注意: 本教程的目的仅用于理解scrapy框架*
@ -123,7 +122,7 @@ via: http://linoxide.com/ubuntu-how-to/scrapy-install-ubuntu/
作者:[nido][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/) 荣誉推出

View File

@ -2,13 +2,13 @@
================================================================================
**Git**是一款注重速度、数据完整性、分布式支持和非线性工作流的分布式版本控制工具。Git最初由Linus Torvalds在2005年为Linux内核开发而设计如今已经成为被广泛接受的版本控制系统。
和其他大多数分布式版本控制系统比起来,不像大多数客户端-服务端的系统每个Git工作目录是一个完整的仓库带有完整的历史记录和完整的版本跟踪能力不需要依赖网络或者中心服务器。像Linux内核一样Git意识在GPLv2许可证下的免费软件。
和其他大多数分布式版本控制系统比起来,不像大多数客户端-服务端的系统每个Git工作目录是一个完整的仓库带有完整的历史记录和完整的版本跟踪能力不需要依赖网络或者中心服务器。像Linux内核一样Git也是在GPLv2许可证下分发的自由软件。
本篇教程我会演示如何安装gitlit服务器。gitlit的最新稳定版是1.6.2。[Gitblit][1]是一款开源、纯Java开发的用于管理浏览和服务的[Git][2]仓库。它被设计成一款为希望托管中心仓库的小工作组服务的工具。
本篇教程我会演示如何安装 gitlit 服务器。gitlit的最新稳定版是1.6.2。[Gitblit][1]是一款开源、纯Java开发的用于管理、浏览和提供[Git][2]仓库服务的软件。它被设计成一款为希望托管中心仓库的小工作组服务的工具。
mkdir -p /opt/gitblit; cd /opt/gitblit; wget http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.tar.gz
### 列出目录: ###
### 列出解压后目录内容 ###
root@vps124229 [/opt/gitblit]# ls
./ docs/ gitblit-stop.sh* LICENSE service-ubuntu.sh*
@ -21,7 +21,7 @@
### 启动gitlit服务 ###
### 通过service命令 ###
**通过service命令**
root@vps124229 [/opt/gitblit]# cp service-centos.sh /etc/init.d/gitblit
root@vps124229 [/opt/gitblit]# chkconfig --add gitblit
@ -29,7 +29,7 @@
Starting gitblit server
.
### 手动启动: ###
**手动启动:**
root@vps124229 [/opt/gitblit]# java -jar gitblit.jar --baseFolder data
2015-01-10 09:16:53 [INFO ] *****************************************************************
@ -108,15 +108,15 @@
打开浏览器,依据你的配置进入**http://localhost:8080** 或者 **https://localhost:8443**。 输入默认的管理员授权:**admin / admin** 并点击**Login** 按钮
![snapshot2](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/snapshot2.png)
![snapshot2](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/snapshot2.png)
### 添加用户: ###
![snapshot1](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/snapshot1.png)
![snapshot1](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/snapshot1.png)
添加仓库:
###添加仓库:###
![snapshot3](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/snapshot3.png)
![snapshot3](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/snapshot3.png)
### 用命令行创建新的仓库: ###
@ -140,7 +140,7 @@ via: http://www.unixmen.com/install-gitblit-ubuntu-fedora-centos/
作者:[M.el Khamlichi][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/) 荣誉推出

View File

@ -1,24 +1,24 @@
Linux上有哪些比较好的C/C++ IDE
Linux 上的最佳 C/C++ IDE
================================================================================
"一个真正的程序员是不用IDE译者注集成开发环境他们都是用带着某某插件的文本编辑器来写代码。"我们总能在某些地方听到此类观点。然而尽管越来越多的人同意这样的观点但是一个IDE仍然非常有用它设置简单使用起来也很方便因此没有更好办法能像这样来编写一个项目了。所以鉴于这点在这里我想给大家列一份在linux平台上比较好的C/C++ IDE清单。为什么特地说C/C++呢因为C语言是我最喜欢的编程语言而且我们总要找个切入点来开始。另外要注意的是通常有很多种编写C代码的方法所以为了消减清单的篇幅我只选择了"真正好用的IDE"而不是诸如Gedit或Vim这种注入[插件][1]的文本编辑器。并不是说这些编辑器在任何情况下都不好,只是如果我将文本编辑器包含进去那这份清单就将永无止境了。
"一个真正的程序员是不用IDE译者注集成开发环境他们都是用带着某某插件的文本编辑器来写代码。"我们总能在某些地方听到此类观点。然而尽管越来越多的人同意这样的观点但是一个IDE仍然非常有用它设置简单使用起来也很方便因此不能比这样更合适编写一个项目了。所以鉴于这点在这里我想给大家列一份在Linux平台上比较好的C/C++ IDE清单。为什么特地说C/C++呢因为C语言是我最喜欢的编程语言而且我们总要找个切入点来开始。另外要注意的是通常有很多种编写C代码的方法所以为了消减清单的篇幅我只选择了"真正好用的IDE"而不是诸如Gedit或Vim这种注入[插件][1]的文本编辑器。并不是说这些编辑器不好,只是如果我将文本编辑器包含进去那这份清单就将永无止境了。
### 1. Code::Blocks ###
![](https://farm8.staticflickr.com/7520/16089880989_10173db27b_c.jpg)
用我个人的最爱来开篇,[Code::Blocks][2]是一款简单快速的专有C/C++ IDE。就像任何一款强大的IDE一样, 它集成了语法高亮、书签功能、自动补全功能、项目管理和一个调试器。它闪耀的地方在于它简单的插件系统里面添加了不可缺少的工具像Valgrind和CppCheck还有不太重要的比如像俄罗斯方块这样的小游戏。但是我特别喜欢它的理由是它连贯方便的快捷键设定和大量的却感受不到受压迫的选项设置。
用我个人的最爱来开篇,[Code::Blocks][2]是一款简单快速的专有C/C++ IDE。就像任何一款强大的IDE一样, 它集成了语法高亮、书签功能、自动补全功能、项目管理和一个调试器。它最闪亮的地方在于它简单的插件系统里面添加了不可缺少的工具像Valgrind和CppCheck还有不太重要的比如像俄罗斯方块这样的小游戏。但是我特别喜欢它的理由是它连贯方便的快捷键设定和大量的却感受不到拥挤的选项设置。
### 2. Eclipse ###
![](https://farm8.staticflickr.com/7522/16276001255_66235a0a69_c.jpg)
我知道我只说"真正好用的IDE"而不是带着插件的文本编辑器,但是,[Eclipse][3]的确是一款"真正好用的IDE"只是Eclipse需要一些[plugin][4]或经过一些改装来编写C程序所以严格来说我无法反驳我自己。而且做一份IDE清单不提到Eclipse这个“巨人”是不可能的事情。无论喜欢它与否Eclipse仍然是一款强大的Java编程工具。这里要感谢[CDT 项目][5]让Eclipse编写C程序变得可能。你同样可以体验到Eclipse的强大功能包括它的一些传统功能特点比如自动补全、代码大纲、代码生成器和先进的重构功能。照我话说它的不足之处在于它不如Code::Blocks那么轻量级它仍然很臃肿要花费很多时间去载入。但是如果你的电脑可以驾驭它或者你是个忠实的Eclipse粉那么它一定是你的不二选择。
我知道我只说"真正好用的IDE"而不是带着插件的文本编辑器,但是,[Eclipse][3]的确是一款"真正好用的IDE"只是Eclipse需要一些[插件][4]或经过一些改装来编写C程序所以严格来说我无法反驳我自己。而且做一份IDE清单不提到Eclipse这个“巨人”是不可能的事情。无论喜欢它与否Eclipse仍然是一款强大的Java编程工具。这里要感谢[CDT 项目][5]让Eclipse编写C程序变得可能。你同样可以体验到Eclipse的强大功能包括它的一些传统功能特点比如自动补全、代码大纲、代码生成器和先进的重构功能。照我话说它的不足之处在于它不如Code::Blocks那么轻量级它仍然很臃肿要花费很多时间去载入。但是如果你的电脑可以驾驭它或者你是个忠实的Eclipse粉那么它一定是你的不二选择。
### 3. Geany ###
![](https://farm9.staticflickr.com/8573/16088461968_c6a6c9e49a_c.jpg)
牺牲了很多特色功能但是增加了很多灵活性,[Geany][6]就是这样一款与Eclipse对立的软件。但是对于它所缺乏的地方比如说没有调试器, Geany用一些漂亮小巧的特色功能弥补了它们:一个可以做笔记的区域、基于模板创作、代码大纲、自定义快捷键和插件管理。相比于现在的IDEGeany仍然是一款作用广泛的文本编辑器然而因为它的功能亮点和它的界面设计所以我把它放在这份列表里。
牺牲了很多特色功能但是增加了很多灵活性,[Geany][6]就是这样一款与Eclipse对立的软件。但是对于它所缺乏的地方比如说没有调试器, Geany用一些漂亮小巧的特色功能弥补了它们一个可以做笔记的区域、基于模板创作、代码大纲、自定义快捷键和插件管理。相比于现在的IDEGeany仍然是一款作用广泛的文本编辑器然而因为它的功能亮点和它的界面设计所以我把它放在这份列表里。
### 4. MonoDevelop ###
@ -30,19 +30,19 @@ Linux上有哪些比较好的C/C++ IDE
![](https://farm8.staticflickr.com/7514/16088462018_7ee6e5b433_c.jpg)
它身上有着强烈的“GNOME感”[Anjuta][8]的外观很具争议。我倾向于把它看作是带着调试器的Geany升级版但是它的界面实际上要复杂得多。我确实很享受能在项目、文件夹和代码大纲视图之间来回切换的标签系统我本想用诸如更多的快捷方法来移动文件然而这是一个很好的提供了显著编译功能和构建选项的工具它能够支持哪些很有特点的需求。
它身上有着强烈的“GNOME即视感”,[Anjuta][8]的外观很具争议。我倾向于把它看作是带着调试器的Geany升级版但是它的界面实际上要复杂得多。我确实很享受能在项目、文件夹和代码大纲视图之间来回切换的标签系统我本想用诸如更多的快捷方法来移动文件然而这是一个很好的提供了显著编译功能和构建选项的工具它能够支持哪些很有特点的需求。
### 6. Komodo Edit ###
![](https://farm8.staticflickr.com/7502/16088462028_81d1114c84_c.jpg)
我不是非常熟悉[Komodo Edit][9],但是在试用了一段时间之后,我被它很多很多的优点给惊喜到了。首先,基于标签的导航功能有很强的可预见性。其次它奇特的代码大纲让我想到了Sublime Text。此外它的宏系统和文件比较器使得Komodo Edit非常实用。它的插件库让它几乎是完美的说“几乎”是因为在其它IDE里我的确找不到能与之相媲美的快捷方法了。而且我们能享受到更多特别的C/C++工具这往往是普通IDE的不足之处。然而Komodo Edit就能做到。
我不是非常熟悉[Komodo Edit][9]但是在试用了一段时间之后我被它很多很多的优点给惊喜到了。首先基于标签的导航功能有很强的可预见性。其次它奇特的代码大纲让我想到了Sublime Text。此外它的宏系统和文件比较器使得Komodo Edit非常实用。它的插件库让它几乎是完美的说“几乎”是因为在其它IDE里我的确找不到能与之相媲美的快捷方法了。而且我们能享受到更多特别的C/C++工具这往往是普通IDE的不足之处。然而Komodo Edit就能做到。
### 7. NetBeans ###
![](https://farm8.staticflickr.com/7569/16089881229_98beb0fce3_c.jpg)
就好像Eclipse一样这又是一款不得不提的“巨人级”软件。拥有的功能包括通过标签进行导航、项目管理、代码大纲、更改历史追踪和大量工具[NetBeans][10]可能是最完整的IDE了我能用半页来列出它所有让人震惊的特色功能。但是这同时也很容易地向你透露了它的主要缺点它太臃肿了。比起它的强大我更喜欢基于插件的软件因为我觉得不太会有人为了一个同样的项目同时需要Git和Mercurial相结合来工作我是不是很疯狂但是如果你有耐心去掌握它所有的选项那你差不多无论到哪里都是IDE大师了。
就好像Eclipse一样这又是一款不得不提的“巨人级”软件。拥有的功能包括通过标签进行导航、项目管理、代码大纲、更改历史追踪和大量工具[NetBeans][10]可能是最完整的IDE了我能用半页来列出它所有让人震惊的特色功能。但是这同时也很容易地向你透露了它的主要缺点它太臃肿了。比起它的强大我更喜欢基于插件的软件因为我觉得不太会有人为了一个同样的项目同时需要Git和Mercurial相结合来工作我是不是很疯狂但是如果你有耐心去掌握它所有的选项那你差不多无论到哪里都是IDE大师了。
### 8. KDevelop ###
@ -56,7 +56,7 @@ Linux上有哪些比较好的C/C++ IDE
留在最后的不代表是最差的,[CodeLite][12]展现给你一种传统的编程规则却仍然能让你从它身上那特有的感觉上有所收获即使它的界面一开始的确让我想到了Code::Blocks和Anjuta只是不包括大量的插件库。无论你想要比较文件、插入一条版权块、定义缩略语或者用Git来工作总有一款插件适合你。如果我不得不挑点毛病我想说它缺乏一些符合我口味的导航快捷键但这是真的。
最后我希望这份清单能让你给自己最喜欢的语言探索到更多新的IDE。虽然Code::Blocks仍然是我的最爱不过它有一些很强大的对手。当然我们也可以远离Linux上的IDE用文本编辑器去编写C/C++代码。所以如果你有什么其它的建议想法在评论中让我们获悉。或者如果你想要我再说说关于一些其它语言的IDE也可以评论里提出。
最后我希望这份清单能让你给自己最喜欢的语言探索到更多新的IDE。虽然Code::Blocks仍然是我的最爱不过它有一些很强大的对手。当然我们也可以远离Linux上的IDE,而用文本编辑器去编写C/C++代码。所以如果你有什么其它的建议想法在评论中让我们获悉。或者如果你想要我再说说关于一些其它语言的IDE也可以评论里提出。
--------------------------------------------------------------------------------
@ -64,7 +64,7 @@ via: http://xmodulo.com/good-ide-for-c-cpp-linux.html
作者:[Adrien Brochard][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/) 荣誉推出

View File

@ -1,6 +1,6 @@
20个Unix命令技巧 - 第一部分
20个 Unix/Linux 命令技巧(一)
================================================================================
让我们用**这些Unix命令技巧**开启新的一年,提高在终端下的生产力。我已经找了很久了,现在就与你们分享。
让我们用**这些Unix/Linux命令技巧**开启新的一年,提高在终端下的生产力。我已经找了很久了,现在就与你们分享。
![](http://s0.cyberciti.org/uploads/cms/2015/01/unix-command-line-tricks.001.jpg)
@ -9,16 +9,15 @@
我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃我担心这是由于巨大的磁盘IO造成的要删除这个大文件输入
> /path/to/file.log
# or use the following syntax
# 或使用如下格式
: > /path/to/file.log
# finally delete it
# 然后删除它
rm /path/to/file.log
### 如何缓存终端输出? ###
尝试使用script命令行工具来为你的终端输出创建typescript。
### 如何记录终端输出? ###
试试使用script命令行工具来为你的终端输出创建输出记录。
script my.terminal.sessio
@ -28,7 +27,7 @@
date
sudo service foo stop
要退出结束script绘画),输入*exit* 或者 *logout* 或者按下 *control-D*
要退出结束script会话),输入 *exit* 或者 *logout* 或者按下 *control-D*
exit
@ -38,11 +37,10 @@
less my.terminal.session
cat my.terminal.session
### 还原删除的 /tmp 文件夹 ###
### 还原删除的 /tmp 文件夹 ###
我在文章[Linux和Unix shell我犯了一些错误][1]。我意外地删除了/tmp文件夹。要还原它我需要这么做
mkdir /tmp
chmod 1777 /tmp
chown root:root /tmp
@ -50,11 +48,11 @@
### 锁定一个文件夹 ###
为了我的数据隐私,我想要锁定我文件服务器下的/downloads文件夹。因此我运行
为了我的数据隐私,我想要锁定我文件服务器下的/downloads文件夹。因此我运行
chmod 0000 /downloads
root用户仍旧可以访问但是ls和cd命令还不可用。要还原它用:
root用户仍旧可以访问而ls和cd命令则不工作。要还原它用:
chmod 0755 /downloads
@ -66,40 +64,40 @@ root用户仍旧可以访问但是ls和cd命令还不可用。要还原它用
或者在退出vim之前使用:X 命令来加密你的文件vim会提示你输入一个密码。
### 清除屏幕上的输出 ###
### 清除屏幕上的乱码 ###
只要输入:
reset
### 成为人类 ###
### 易读格式 ###
传递*-h*或者*-H*和其他选项选项给GNU或者BSD工具来获取像ls、df、du等命令以人类可读的格式输出:
传递*-h*或者*-H*和其他选项选项给GNU或者BSD工具来获取像ls、df、du等命令以读的格式输出:
ls -lh
# 以人类可读的格式 (比如: 1K 234M 2G)
# 以读的格式 (比如: 1K 234M 2G)
df -h
df -k
# 已字节输出如: KB, MB, or GB
# 以字节、KB、MB 或 GB 输出:
free -b
free -k
free -m
free -g
# 以人类可读的格式打印 (比如 1K 234M 2G)
# 以易读的格式输出 (比如 1K 234M 2G)
du -h
# 以人类可读的格式获取系统perms
# 以易读的格式显示文件系统权限
stat -c %A /boot
# 比较人类可读的数字
# 比较读的数字
sort -h -a file
# 在Linux上以人类可读的形式显示cpu信息
# 在Linux上以读的形式显示cpu信息
lscpu
lscpu -e
lscpu -e=cpu,node
# 以人类可读的形式显示每个文件的大小
# 以读的形式显示每个文件的大小
tree -h
tree -h /boot
### 在Linux系统中显示已知用户信息 ###
### 在Linux系统中显示已知用户信息 ###
只要输入:
@ -143,7 +141,7 @@ root用户仍旧可以访问但是ls和cd命令还不可用。要还原它用
### 我如何删除意外在当前文件夹下解压的文件? ###
我意外在/var/www/html/而不是/home/projects/www/current下解压了一个tarball。它混乱了/var/www/html下的文件。最简单修复这个问题的方法是:
我意外在/var/www/html/而不是/home/projects/www/current下解压了一个tarball。它搞乱了/var/www/html下的文件你甚至不知道哪些是误解压出来的。最简单修复这个问题的方法是:
cd /var/www/html/
/bin/rm -f "$(tar ztf /path/to/file.tar.gz)"
@ -166,7 +164,7 @@ root用户仍旧可以访问但是ls和cd命令还不可用。要还原它用
## 以root用户运行最后运行的命令
sudo !!
!!会运行最近使用的命令。要运行最近运行的“foo”命令
!!会运行最近使用的命令。要运行最近运行的“foo”开头命令:
!foo
# 以root用户运行上一次以“service”开头的命令
@ -180,12 +178,11 @@ root用户仍旧可以访问但是ls和cd命令还不可用。要还原它用
# 测试 nginx.conf
/sbin/nginx -t -c /etc/nginx/nginx.conf
# 测试完 "/sbin/nginx -t -c /etc/nginx/nginx.conf"你可以用vi编辑了
# 测试完 "/sbin/nginx -t -c /etc/nginx/nginx.conf"你可以用vi再次编辑这个文件
sudo vi !$
### 在你要离开的时候留下一个提醒 ###
### 在终端上提醒你必须得走了 ###
If you need a reminder to leave your terminal, type the following command:
如果你需要提醒离开你的终端,输入下面的命令:
leave +hhmm
@ -200,26 +197,26 @@ If you need a reminder to leave your terminal, type the following command:
cd -
需要快速地回到家目录?输入:
需要快速地回到你的家目录?输入:
cd
变量*CDPATH*定义了含有这个目录的搜索目录路径:
变量*CDPATH*定义了目录的搜索路径:
export CDPATH=/var/www:/nas10
现在不用输入cd */var/www/html/ ,我可以直接输入下面的命令进入/var/www/html
现在不用输入cd */var/www/html/ 这样长了,我可以直接输入下面的命令进入 /var/www/html
cd html
### 编辑一个用less浏览的文件 ###
### 在less浏览时编辑文件 ###
要编辑一个用less浏览的文件按下v。你就可以用变量$EDITOR下的编辑器来编辑了:
要编辑一个正在用less浏览的文件可以按下v。你就可以用变量$EDITOR所指定的编辑器来编辑了:
less *.c
less foo.html
## 下v编辑文件 ##
## 退出编辑器你可以继续用less浏览了 ##
## 下v键来编辑文件 ##
## 退出编辑器你可以继续用less浏览了 ##
### 列出你系统中的所有文件和目录 ###
@ -237,14 +234,14 @@ If you need a reminder to leave your terminal, type the following command:
# 列出 $HOME 中所有的文件
find $HOME -type f -ls | less
### 用一条命令构造命令树 ###
### 用一条命令构造目录树 ###
你可以用mkdir加上-p选项一次创建目录树
你可以用mkdir加上-p选项一次创建一颗目录树:
mkdir -p /jail/{dev,bin,sbin,etc,usr,lib,lib64}
ls -l /jail/
### 复制文件到多个目录中 ###
### 将文件复制到多个目录中 ###
不必运行:
@ -260,16 +257,16 @@ If you need a reminder to leave your terminal, type the following command:
### 快速找出两个目录的不同 ###
diff命令会按行比较文件。它也可以比较两个目录
diff命令会按行比较文件。但是它也可以比较两个目录:
ls -l /tmp/r
ls -l /tmp/s
# Compare two folders using diff ##
# 使用 diff 比较两个文件夹
diff /tmp/r/ /tmp/s/
[![Fig. : Finding differences between folders](http://s0.cyberciti.org/uploads/cms/2015/01/differences-between-folders.jpg)][3]
图片: 找出目录之间的不同
*图片: 找出目录之间的不同*
### 文本格式化 ###
@ -281,13 +278,13 @@ diff命令会按行比较文件。它也可以比较两个目录
fmt -s file.txt
### 看见输出并写入到一个文件中 ###
### 可以看见输出并将其写入到一个文件中 ###
如下使用tee命令在屏幕上看见输出并同样写入到日志文件my.log中
mycoolapp arg1 arg2 input.file | tee my.log
tee可以保证你同时在屏幕上看到mycoolapp的输出和写入文件
tee可以保证你同时在屏幕上看到mycoolapp的输出并写入文件  my.log
--------------------------------------------------------------------------------
@ -295,7 +292,7 @@ via: http://www.cyberciti.biz/open-source/command-line-hacks/20-unix-command-lin
作者:[nixCraft][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/) 荣誉推出

View File

@ -1,42 +1,42 @@
在短短几个小时里拿回自己数据的隐私和控制权:为自己和朋友们搭建私有云
权威指南:构建个人私有云,拿回你的数据隐私的控制权!
================================================================================
8年里40'000多次搜索这是我的Google搜索历史。你的呢可以在[这里][1]自己找一下有经过这么长时间积累下来的这么多数据点Google已经能非常精确的推测你对什么感兴趣曾经的想法担忧过的事情以及从你第一次获得Google帐号后这些年里所有这些的变化。
8年里40000多次搜索这是我的Google搜索历史。你的呢可以在[这里][1]自己找一下有经过这么长时间积累下来的这么多数据点Google已经能非常精确的推测你对什么感兴趣、曾经的想法、担忧过的事情以及从你第一次获得Google帐号后这些年里所有这些的变化
### 很多非常私人的信息不受自己控制地存储在世界范围内的服务器上 ###
## 很多非常私人的信息不受自己控制地存储在世界范围内的服务器上 ##
比如说你也像我一样从2006年到2013年都是Gmail用户意味着你收到了30'000+的电子邮件以及在这7年里写了差不多5000封电子邮件。这些发送或收到的电子邮件里有很多是非常私人的私人到你甚至不希望自己的家人或好友系统地查看。也许你还写过一些草稿邮件因为最后一分钟改变主意而从没发出去。但是尽管你从未发出去这些邮件仍然保存在服务器上的某个地方。结论是说Google服务器比你最亲密的朋友或家人都更了解你的个人生活一点也不过分。
比如说你也像我一样从2006年到2013年都是Gmail用户意味着你收到了30000封以上的电子邮件以及在这7年里写了差不多5000封电子邮件。这些发送或收到的电子邮件里有很多是非常私人的私人到你甚至不希望自己的家人或好友可以系统地查看。也许你还写过一些草稿邮件因为最后一分钟改变主意而从没发出去。但是尽管你从未发出去这些邮件仍然保存在服务器上的某个地方。结论是说Google服务器比你最亲密的朋友或家人都更了解你的个人生活一点也不过分。
从统计数据来看,可以很安全地赌你拥有一部智能手机。如果不使用联系人应用的话手机将基本没法用而它默认会将你的联系人信息保存到Google服务器上的Google联系人里。所以现在Google不仅知道了你的电子邮件还有了你的离线联系人你喜欢打给谁,谁来过电话,你发过短信给谁以及发了些什么。你也不需要听我的片面之词可以自己检查一下看看你开放给类似Google Play服务的一些应用的权限用来读取来电信息以及收到的短信。你是否还会用到手机里自带的日历应用除非你在设置日程的时候明确地去掉那么Google将精确地知道你将要做什么一天里的每个时段,每一天,每一年。用iPhone代替Android手机也是一样的只是Apple会代替Google来掌握你的往来邮件联系人和日程计划。
从统计数据来看,我可以很保险地打赌你拥有一部智能手机。如果不使用联系人应用的话手机将基本没法用而它默认会将你的联系人信息保存到Google服务器上的Google联系人里。所以现在Google不仅知道了你的电子邮件还有了你的离线联系人你喜欢打给谁、谁来过电话、你发过短信给谁以及发了些什么。你也不需要听我的片面之词可以自己检查一下看看你开放给类似Google Play服务的一些应用的权限用来读取来电信息以及收到的短信。你是否还会用到手机里自带的日历应用除非你在设置日程的时候明确地去掉同步那么Google将精确地知道你将要做什么一天里的每个时段、每一天、每一年。用iPhone代替Android手机也是一样的只是Apple会代替Google来掌握你的往来邮件联系人和日程计划。
你是否还会非常小心地同步自己的联系人信息在你朋友同事或家人换工作或换服务商的时候更新他们的电子邮件地址和手机号这给Google提供了一副你社交网络的非常精确的,最新的图片。还有你非常喜欢手机的GPS功能经常配合Google地图使用。这意味着Google不仅能从日程里知道你在干什么还知道你在哪儿住在哪儿在哪儿工作。然后再关联用户之间的GPS位置信息GOogle还能知道你现在可能正在和哪些人来往。
你是否还会非常小心地同步自己的联系人信息在你朋友同事或家人换工作或换服务商的时候更新他们的电子邮件地址和手机号这给Google提供了一副你的社交网络的非常精确的、最新的描绘。还有你非常喜欢手机的GPS功能经常配合Google地图使用。这意味着Google不仅能从日程里知道你在干什么还知道你在哪儿、住在哪儿、在哪儿工作。然后再关联用户之间的GPS位置信息Google还能知道你现在可能正在和哪些人来往。
### 这种泄漏自己私人信息的日常爱好会以一种甚至没人能够预测的方式影响你的生活 ###
## 这种泄漏自己私人信息的日常爱好会以一种甚至没人能够预测的方式影响你的生活 ##
总结一下如果你是一个普通的因特网用户Google拥有过去差不多10年里你最新的,深度的信息,关于你的兴趣,忧虑,热情,疑问。它还收集了一些你很私人的信息(电子邮件,短信),精确到小时的你的日常活动和位置,一副你社交网络的高品质图片。关于你的如此私密的数据,很可能已经超越了你最亲密的朋友,家人或爱人对你的了解。
总结一下如果你是一个普通的因特网用户Google拥有过去差不多10年里你最新的、深度的信息,关于你的兴趣、忧虑、热情、疑问。它还收集了一些你很私人的信息(电子邮件、短信),精确到小时的你的日常活动和位置,一副你社交网络的高精度的描绘。关于你的如此私密的数据,很可能已经超越了你最亲密的朋友,家人或爱人对你的了解。
不敢想象把这些深度的个人信息交给完全陌生的人就好像把这些信息拷到一个U盘里然后随便放到某个咖啡厅的桌上留张纸条说“Olivier Martin的个人数据请随便”。谁知道什么人会拿到它以及用来干嘛然而我们毫不犹豫地把自己的主要信息交给那些对我们的数据很感兴趣的IT公司的陌生人这是他们制造面包的材料以及[世界级的数据分析专家][2]手里,也许只是因为我们在点击那个绿色的'接受'按钮时根本没有想这么多。
有这么多的高质量信息这么多年里Google可能会比你希望自我了解的更了解你自己尼玛回想我过去的数字生活我已经不记得5年前发出的邮件里的一半了。我很高兴能重新发现早在2005年对马克思主义的兴趣以及第二年加入了[ATTAC][3]一个致力于通过征收金融交易税来限制投机和改善社会公平的组织。天知道为什么我竟然在2007年这么喜欢跳舞。这些都是无关紧要的信息你不要指望我能爆出什么猛料,不会吧?;-)。但是,连接起这些高质量数据点,关于你生活的方方面面(做什么,什么时候,和谁一起,在哪里,...并跨越这么长时间间隔应该能推测出你的未来状态。比如说根据一个17岁女孩的购物习惯超市甚至可以在他父亲听说之前断定这个女孩怀孕了[真实故事][4]。谁知道通过像Google所掌握的这些远远超出购物习惯的高质量数据能做些什么连接起这些点也许有人能预测你未来几年里口味或政治观点的变化。如今,[你从未听过的公司声称拥有你500项数据点][5],包括宗教信仰性取向和政治观点。提到政治如果说你决定今后10年内进入政坛会怎么样你的生活会改变你的观点也一样甚至你有时候会有所遗忘但是Google不会。那你会不会担心你的对手会接触一些可以从Google访问你数据的人并会从你过去这些年里积累的个人数据深渊里挖出一些猛料呢[就像最近Sony被黑][6]一样多久以后会轮到Google或Facebook以致让你的个人信息最终永远暴露
有这么多的高质量信息这么多年里Google可能会比你希望自我了解的更了解你自己尼玛回想我过去的数字生活5年前发出的邮件里有一半我已经不记得了。我很高兴能重新发现早在2005年对xxx主义的兴趣以及第二年加入了[ATTAC][3]一个致力于通过征收金融交易税来限制投机和改善社会公平的组织。天知道为什么我竟然在2007年这么喜欢跳舞。这些都是无关紧要的信息你不指望我能爆出什么猛料,是吧?;-)。但是,连接起这些高质量数据点,关于你生活的方方面面(做什么、什么时候、和谁一起、在哪里,...并跨越这么长时间间隔应该能推测出你的未来状态。比如说根据一个17岁女孩的购物习惯超市甚至可以在他父亲听说之前断定这个女孩怀孕了这是一个[真实故事][4]。谁知道通过像Google所掌握的这些远远超出购物习惯的高质量数据能做些什么连接起这些点也许有人能预测你未来几年里口味或观点的变化。如今[你从未听过的公司声称拥有你500项数据点][5],包括宗教信仰性取向和政治观点。提到政治如果说你决定今后10年内进入政坛会怎么样你的生活会改变你的观点也一样甚至你有时候会有所遗忘但是Google不会。那你会不会担心你的对手会接触一些可以从Google访问你数据的人并会从你过去这些年里积累的个人数据深渊里挖出一些猛料呢[就像最近Sony被黑][6]一样多久以后会轮到Google或Facebook以致让你的个人信息最终永远暴露
我们大多数人把自己的个人数据托付给这些公司的一个原因就是它们提供免费服务。但是真的免费吗一般的Google帐号的价值根据评估方式不同会有些差别你花在写邮件上的时间占到[1000美元/年][7],你的帐号对于广告产业的价值差不多在[220美元/年][8]到[500美元/年][9]之间。所以这些服务并不是真的免费:会通过广告和我们的数据在未来的一些未知使用来间接付费。
我写的最多的是Google这是因为这是我托付个人数字信息的以及目前我所知道做的最好的公司。但是我也提到过Apple或Facebook。这些公司通过它们在设计工程和我们(曾经)喜欢每天使用的服务方面的神奇进步实实在在地改变了世界。但是这并不是说我们应该把所有我们最私人的个人数据堆积到它们的服务器上并把我们的数字生活托付给它们:潜在的危害实在太大了。
我写的最多的是Google这是因为这是我托付个人数字信息的以及目前我所知道做的最好的公司。但是我也提到过Apple或Facebook。这些公司通过它们在设计工程和我们(曾经)喜欢每天使用的服务方面的神奇进步实实在在地改变了世界。但是这并不是说我们应该把所有我们最私人的个人数据堆积到它们的服务器上并把我们的数字生活托付给它们:潜在的危害实在太大了。
### 只要5小时拿回自己以及关心的人的隐私权 ###
## 只要5小时拿回自己以及关心的人的隐私权 ##
并不是一定要这样做。你可以生活在21世纪拿着智能手机每天都用电子邮件和GPS却仍然可以保留自己的隐私。你所需要的就是拿回自己个人数据的控制权邮件、日程、联系人、文件等等。[Prism-Break.org][10]网站上列出了一些能帮你掌握个人数据命运的软件。除此以外,控制自己个人数据的最安全和最有效的方式是架设自己的服务器并搭建自己的云。不过你也许只是没有时间或精力去研究具体该怎么做以及如何让它能流畅工作。
但是事实并不是一定必须这样的。你可以生活在21世纪拿着智能手机每天都用电子邮件和GPS却仍然可以保留自己的隐私。你所需要的就是拿回自己个人数据的控制权邮件、日程、联系人、文件等等。[Prism-Break.org][10]网站上列出了一些能帮你掌握个人数据命运的软件。除此以外,控制自己个人数据的最安全和最有效的方式是架设自己的服务器并搭建自己的云。不过你也许只是没有时间或精力去研究具体该怎么做以及如何让它能流畅工作。
这也是这篇文章的意义所在。仅仅5个小时内我们将配置出一台服务器来支撑你的邮件、联系人、日程表和各种文件为你、你的朋友和你的家人。这个服务器将设计成一个个人数据中心或云所以你能时刻保留它的完整控制。数据将自动在你的台式机/笔记本、手机和平板之间同步。从根本上来说,**我们将建立一个系统来代替Gmail、Google文件/Dropbox、Google联系人、Google日历和Picasa**。
为自己做这件事情已经是迈出很大一步了。但是你个人信息的很大一部分将仍然泄漏出去并保存到硅谷的一些主机上只是因为和你日常来往的太多人在用Gmail和使用智能手机所以最好是带上你一些比较亲近的人加入这次探险。
为自己做这件事情已经是迈出很大一步了。但是你个人信息的很大一部分将仍然泄漏出去并保存到硅谷的一些主机上只是因为和你日常来往的太多人在用Gmail和使用智能手机所以最好是带上你一些比较亲近的人加入这次探险。
我们将构建的系统能够
我们将构建的系统能够
- **支持任意数目的域名和用户**。这样就能轻易地和你的家人朋友共享这台服务器,所以他们也能掌控自己的个人数据,并且还能和你一起分摊服务费用。和你一起共享服务器的人可以使用他们自己的域名或者共享你的。
- **允许你从任意网络发送和接收电子邮件**,需要成功登录服务器之后。这样,你可以通过任意的邮件地址,任意设备(台式机、手机、平板),任意网络(家里、公司、公共网络、...)来发送电子邮件。
- **允许你从任意网络发送和接收电子邮件**,需要成功登录服务器之后。这样,你可以通过任意的邮件地址、任意设备(台式机、手机、平板)、任意网络(家里、公司、公共网络、...)来发送电子邮件。
- **在发送和接收邮件的时候加密网络数据**,这样,你不信任的人不能钓出你的密码,也不能看到你的私人邮件。
- **提供最先进的反垃圾邮件技术**,结合了已知垃圾邮件黑名单,自动灰名单,和自适应垃圾邮件过滤。如果邮件被误判了只需要简单地把它拖入或拖出垃圾目录就可以重新配置垃圾邮件过滤器。而且,服务器还会为基于社区的反垃圾邮件努力做出贡献。
- **一段时间里只需要几分钟的维护**基本上只是安装安全更新和简单地检查一下服务器日志。添加一个新的邮件地址只需要在数据库中插入一条记录。除此之外你可以忘记它的存在过自己的生活。我在14个月之前搭建了本文描述的这个系统从那以后就一直顺利运行。所以我完全把它给忘了直到我最近觉得随便按下手机上的检查邮件会导致电子一路跑到冰岛我放置服务器的地方再回来的想法有点好笑才想起来。
- **提供最先进的反垃圾邮件技术**,结合了已知垃圾邮件黑名单、自动灰名单、和自适应垃圾邮件过滤。如果邮件被误判了只需要简单地把它拖入或拖出垃圾目录就可以重新调校垃圾邮件过滤器。而且,服务器还会为基于社区的反垃圾邮件努力做出贡献。
- **一段时间里只需要几分钟的维护**基本上只是安装安全更新和简单地检查一下服务器日志。添加一个新的邮件地址只需要在数据库中插入一条记录。除此之外你可以忘记它的存在过自己的生活。我在14个月之前搭建了本文描述的这个系统从那以后就一直顺利运行。所以我完全把它给忘了直到我最近觉得随便按下手机上的检查邮件会导致电子信号一路跑到冰岛(我放置服务器的地方)再回来的想法有点好笑才想起来。
要完成这篇文章里的工作你需要一点基本的技术能力。如果你知道SMTP和IMAP的区别什么是DNS以及对TCP/IP有基本了解的话就够了。你还将需要一点基本的Unix知识在命令行下和文件一起工作基本的系统管理。然后你需要花总共5小时时间来搭建。
@ -49,7 +49,7 @@
- [使用Owncloud提供日历联系人文件服务并配置webmail][15]
- [在云上同步你的设备][16]
### 这篇文章是受之前工作的启发并以之为基础 ###
## 这篇文章是受之前工作的启发并以之为基础 ##
本文很大程度参考了两篇文章,由[Xavier Claude][17]和[Drew Crawford][18]写的关于架设私有邮件服务器的介绍。
@ -62,13 +62,13 @@
- 我增加了webmail。
- 我增加了设定云服务器的部分,不仅能收发邮件还能管理文件,地址本/联系人(邮件地址,电话号码,生日,等等等),日程表和图片,供所有设备访问使用。
### 申请一个虚拟私人服务器,一个域名,并把它们配置好 ###
## 申请一个虚拟私人服务器,一个域名,并把它们配置好 ##
让我们从设置基础设施开始:我们的虚拟私人主机和我们的域名。
我用过[1984.is][19]和[Linode][20]提供的虚拟私人主机VPS体验非常好。在本文中我们将使用**Debian Wheezy**这个在1984和Linode都提供了已经做好的映像文件可以直接布置到你的VPS上。我喜欢1984是因为它的服务器在冰岛也是唯一使用可再生能源地热和水力发电的地方目前还没有影响过气候变化不像[大多数美国数据中心目前大多数依赖于烧煤的火力发电站][21]。而且,他们注重[民权,透明,自由][22]以及[免费软件][23]。
最好是在服务器上创建一个文件用来保存后面要用到的各种密码(用户账号,邮件账号,云帐号,数据库帐号)。当然最好是加密一下(可以用[GnuPG][24]),这样就算用来设定服务器的电脑被偷了或被入侵了,你的服务器就不会那么容易被攻击。
最好是在服务器上创建一个文件用来保存后面要用到的各种密码(用户账号、邮件账号、云帐号、数据库帐号)。当然最好是加密一下(可以用[GnuPG][24]),这样就算用来设定服务器的电脑被偷了或被入侵了,你的服务器就不会那么容易被攻击。
关于注册域名,我已经使用[grandi][25]的服务超过10年了也很满意。在本文中我们将开辟一个叫**jhausse.net**的域名。然后在上面增加一个叫**cloud.jhausse.net**的二级域名并绑定MX纪录。在完成之后设置比较短的纪录生存时间TTL比如300秒这样你在设置服务器的时候可以修改你的域并很快测试到结果。
@ -78,7 +78,7 @@
adduser roudy
然后,在文件**/etc/ssh/sshd_config**中设置
然后,在文件**/etc/ssh/sshd\_config**中设置
PermitRootLogin no
@ -90,7 +90,7 @@
cloud
然后编辑ssh服务的公钥文件**/etc/ssh/ssh_host_rsa_key.pub, /etc/ssh/ssh_host_dsa_key.pub, /etc/ssh/ssh_host_ecdsa_key.pub**,这样文件末尾可以反映你的主机名,比如**root@cloud**。然后重启系统保证主机名在系统的每个需要它的角落都生效了。
然后编辑ssh服务的公钥文件**/etc/ssh/ssh\_host\_rsa\_key.pub, /etc/ssh/ssh\_host\_dsa\_key.pub, /etc/ssh/ssh\_host\_ecdsa\_key.pub**,这样文件末尾可以反映你的主机名,比如**root@cloud**。然后重启系统保证主机名在系统的每个需要它的角落都生效了。
reboot
@ -103,15 +103,15 @@
apt-get autoremove
apt-get install vim
我喜欢使用vim远程编辑配置文件。打开自动语法高亮会很有帮助。添加下面这一行到**~/.vimrc**文件中。
我喜欢使用vim远程编辑配置文件。打开vim 的自动语法高亮会很有帮助。添加下面这一行到**~/.vimrc**文件中。
syn on
### 设置postfix和dovecot来收发电子邮件 ###
## 设置postfix和dovecot来收发电子邮件 ##
apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-mysql mysql-server dovecot-lmtpd postgrey
在[Postfix][27]的配置菜单里,选择**因特网站点**,把系统邮件名设为**jhausse.net**。
在[Postfix][27]的配置菜单里,选择`Internet Site`,设置这个系统的邮件名称为**jhausse.net**。
现在开始添加一个数据库用于保存主机上管理的域名列表,和每个域名下的用户列表(同时也包括他们各自的密码),以及邮件别名列表(用于从一个地址往另一个地址转发邮件)。
@ -142,14 +142,14 @@
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我们将承载**jhausse.net**域名。如果还需要加入其他域名,也没问题。我们也会为每个域名设置一个邮件管理地址,转寄给**roudy@jhausse.net**。
这里我们为**jhausse.net**域名提供邮件服务。如果还需要加入其他域名,也没问题。我们也会为每个域名设置一个邮件管理地址postmaster,转寄给**roudy@jhausse.net**。
mysql> INSERT INTO virtual_domains (`name`) VALUES ('jhausse.net');
mysql> INSERT INTO virtual_domains (`name`) VALUES ('otherdomain.net');
mysql> INSERT INTO virtual_aliases (`domain_id`, `source`, `destination`) VALUES ('1', 'postmaster', 'roudy@jhausse.net');
mysql> INSERT INTO virtual_aliases (`domain_id`, `source`, `destination`) VALUES ('2', 'postmaster', 'roudy@jhausse.net');
现在已经添加了一个本地邮件账号**roudy@jhausse.net**。首先,为它生成一个哈希密码:
现在已经添加了一个本地邮件账号**roudy@jhausse.net**。首先,为它生成一个密码的哈希串
doveadm pw -s SHA512-CRYPT
@ -157,7 +157,7 @@
mysql> INSERT INTO `mailserver`.`virtual_users` (`domain_id`, `password`, `email`) VALUES ('1', '$6$YOURPASSWORDHASH', 'roudy@jhausse.net');
现在我们的域名别名和用户列表都设置好了然后开始设置postfixSMTP服务器用来发送邮件。把文件**/etc/postfix/main.cf**替换为下面的内容:
现在我们的域名别名和用户列表都设置好了然后开始设置postfix这是一个SMTP服务器用来发送邮件。把文件**/etc/postfix/main.cf**替换为下面的内容:
myhostname = cloud.jhausse.net
myorigin = /etc/mailname
@ -239,7 +239,7 @@
如果一切都正常配置了的话头两个查询应该输出1第3个查询应该输出**roudy@jhausse.net**,而最后一个应该什么都不输出。
现在让我们设置一下dovecot一个IMAP服务程序用来在我们的设备上从服务器获取收件箱里的邮件)。编辑文件**/etc/dovecot/dovecot.conf**设置以下参数:
现在让我们设置一下dovecot一个IMAP服务程序用来在我们的设备上从服务器获取收的邮件)。编辑文件**/etc/dovecot/dovecot.conf**设置以下参数:
# Enable installed protocol
# !include_try /usr/share/dovecot/protocols.d/*.protocol
@ -253,7 +253,7 @@
[...]
first_valid_uid = 0
这样邮件将被保存到目录/var/mail/domainname/username下。注意下这几个选项散布在配置文件的不同位置有时已经在那里写好了我们只需要取消注释。文件里的其他设定选项可以维持原样。在本文后面还有很多文件需要用同样的方式更新设置。在文件**/etc/dovecot/conf.d/10-auth.conf**里,设置以下参数:
这样邮件将被保存到目录 /var/mail/domainname/username 下。注意下这几个选项散布在配置文件的不同位置,有时已经在那里写好了:我们只需要取消注释即可。文件里的其他设定选项,可以维持原样。在本文后面还有很多文件需要用同样的方式更新设置。在文件**/etc/dovecot/conf.d/10-auth.conf**里,设置以下参数:
disable_plaintext_auth = yes
auth_mechanisms = plain
@ -366,9 +366,10 @@
在服务器上,尝试发送邮件给本地用户:
telnet localhost 25
EHLO cloud.jhausse.net
MAIL FROM:youremail@domain.com
rcpt to:roudy@jhausse.net
RCPT TO:roudy@jhausse.net
data
Subject: Hallo!
@ -397,18 +398,18 @@
554 5.7.1 <bob@gmail.com>: Relay access denied
这个没问题如果服务器能接受这封邮件那意味着我们架设的postfix是一个对全世界所有垃圾邮件都开放的中继将完全没法使用。除了'Relay access denied'消息,你也可能会收到这样的响应:
这个没问题:如果服务器能接受这封邮件而不是返回如上的拒绝消息那意味着我们架设的postfix是一个对全世界所有垃圾邮件都开放的中继将完全没法使用。除了'Relay access denied'消息,你也可能会收到这样的响应:
554 5.7.1 Service unavailable; Client host [87.68.61.119] blocked using zen.spamhaus.org; http://www.spamhaus.org/query/bl?ip=87.68.61.119
意思是你正尝试从一个被标记成垃圾邮件发送者的IP地址连接服务器。我在通过普通的因特网服务提供商ISP连接服务器时曾收到过这样的消息。要解决这个问题可以试着从另一个主机发起连接比如另外一个你可以SSH登录的主机。另外一种方式是你可以修改postfix的**main.cf**配置文件不要使用Spamhous的RBL重启postfix服务然后再检查上面的测试是否正常。不管用哪种方式最重要的是你要确定一个能工作的因为我们后面马上要测试其他功能。如果你选择了重新配置postfix不使用RBL别忘了在完成本文后重新开启RBL并重启postfix以避免收到一些不必要的垃圾邮件。
意思是你正尝试从一个被标记成垃圾邮件发送者的IP地址连接服务器。我在通过普通的因特网服务提供商ISP连接服务器时曾收到过这样的消息。要解决这个问题可以试着从另一个主机发起连接比如另外一个你可以SSH登录的主机。另外一种方式是你可以修改postfix的**main.cf**配置文件不要使用Spamhous的RBL重启postfix服务然后再检查上面的测试是否正常。不管用哪种方式最重要的是你要确定一个能工作的因为我们后面马上要测试其他功能。如果你选择了重新配置postfix不使用RBL别忘了在完成本文后重新开启RBL并重启postfix以避免收到一些不必要的垃圾邮件。LCTT 译者注:在国内可以使用 CASA 的 RBLcblplus.anti-spam.org.cn参见http://www.anti-spam.org.cn/ 。)
现在我们试一下往SMTP端口25发送一封有效的邮件这是一般正常的邮件服务器用来彼此对话的方式
openssl s_client -connect cloud.jhausse.net:25 -starttls smtp
EHLO cloud.jhausse.net
MAIL FROM:youremail@domain.com
rcpt to:roudy@jhausse.net
RCPT TO:roudy@jhausse.net
服务器应该有这样的响应
@ -425,7 +426,7 @@
4 UID fetch 1:1 (UID RFC822.SIZE FLAGS BODY.PEEK[])
5 LOGOUT
这里你应该把mypassword替换为你自己为这个邮件账号设定的密码。如果能正常工作基本上我们已经拥有一个能接收邮件的邮件服务器了通过它我们可以在各种设备PC/笔记本,平板,手机,...上收取邮件了。但是我们不能把邮件给它发送出去除非我们自己从服务器发送。现在我们将让postfix为我们转发邮件但是这个只有成功登录才可以这是为了保证邮件是由服务器上的某个有效帐号发出来的。要做到这个我们要打开一个特殊的全程SSL连接的SASL鉴权的邮件提交服务。在文件**/etc/postfix/master.cf**里设置下面的参数:
这里,你应该把*mypassword*替换为你自己为这个邮件账号设定的密码。如果能正常工作基本上我们已经拥有一个能接收邮件的邮件服务器了通过它我们可以在各种设备PC/笔记本、平板、手机...上收取邮件了。但是我们不能把邮件给它发送出去除非我们自己从服务器发送。现在我们将让postfix为我们转发邮件但是这个只有成功登录才可以这是为了保证邮件是由服务器上的某个有效帐号发出来的。要做到这个我们要打开一个特殊的全程SSL连接的SASL鉴权的邮件提交服务。在文件**/etc/postfix/master.cf**里设置下面的参数:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
@ -437,7 +438,7 @@
-o smtpd_sasl_security_options=noanonymous
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_non_fqdn_recipient,reject_unauth_destination
然后重启postfix服务
然后重启postfix服务
service postfix reload
@ -446,7 +447,7 @@
openssl s_client -connect cloud.jhausse.net:587 -starttls smtp
EHLO cloud.jhausse.net
注意一下服务器建议的'250-AUTH PLAIN'功能在从端口25连接的时候不会生效
注意一下服务器建议的'250-AUTH PLAIN'功能在从端口25连接的时候不会出现
MAIL FROM:asdf@jkl.net
rcpt to:bob@gmail.com
@ -494,13 +495,13 @@
PS不要忘记再次[试试通过端口25往自己架设的服务器上的帐号发送邮件][29]来验证你已经没有被postgrey阻挡了。
### 阻止垃圾邮件进入你的收件箱 ###
## 阻止垃圾邮件进入你的收件箱 ##
为了过滤垃圾邮件我们已经使用了实时黑名单RBLs和灰名单postgrey。现在我们将增加自适应垃圾邮件过滤来让我们的垃圾邮件过滤能力提高一个等级。这意味着我们将为我们的邮件服务器增加人工智能这样它就能从经验中学习哪些件是垃圾哪些不是。我们将使用[dspam][30]来实现这个功能。
为了过滤垃圾邮件我们已经使用了实时黑名单RBL和灰名单postgrey。现在我们将增加自适应垃圾邮件过滤来让我们的垃圾邮件过滤能力提高一个等级。这意味着我们将为我们的邮件服务器增加人工智能这样它就能从经验中学习哪些件是垃圾哪些不是。我们将使用[dspam][30]来实现这个功能。
apt-get install dspam dovecot-antispam postfix-pcre dovecot-sieve
dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误分类了之后让dovecot重新更新垃圾邮件过滤器。基本上我们所需要做的就只是把邮件放进或拿出垃圾箱。dovecot-antispam将负责调用dspam来更新过滤器。至于postfix-pcre和dovecot-sieve我们将分别用它们来把接收的邮件递给垃圾邮件过滤器以及自动把垃圾邮件放入用户的垃圾箱。
dovecot-antispam是一个安装包可以在我们发现有邮件被dspam误分类了之后让dovecot重新更新垃圾邮件过滤器。基本上我们所需要做的就只是把邮件放进或拿出垃圾箱。dovecot-antispam将负责调用dspam来更新过滤器。至于postfix-pcre和dovecot-sieve我们将分别用它们来把接收的邮件递给垃圾邮件过滤器以及自动把垃圾邮件放入用户的垃圾箱。
在配置文件**/etc/dspam/dspam.conf**里,为以下参数设置相应的值:
@ -535,7 +536,7 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
dovecot unix - n n - - pipe
flags=DRhu user=mail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
现在我们将告诉postfix通过dspam来过滤所有提交给服务器端口25一般的SMTP通信的新邮件除非该邮件是从服务器本身发出permit_mynetworks。注意下我们通过SASL鉴权提交给postfix的邮件不会通过dspam过滤因为我们在前面部分里为这种方式设定了独立的提交服务。编辑文件**/etc/postfix/main.cf**将选项**smtpd_client_restrictions**改为如下内容:
现在我们将告诉postfix通过dspam来过滤所有提交给服务器端口25一般的SMTP通信的新邮件除非该邮件是从服务器本身发出permit\_mynetworks。注意下我们通过SASL鉴权提交给postfix的邮件不会通过dspam过滤因为我们在前面部分里为这种方式设定了独立的提交服务。编辑文件**/etc/postfix/main.cf**将选项**smtpd\_client\_restrictions**改为如下内容:
smtpd_client_restrictions = permit_mynetworks, reject_rbl_client zen.spamhaus.org, check_policy_service inet:127.0.0.1:10023, check_client_access pcre:/etc/postfix/dspam_filter_access
@ -544,11 +545,11 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
# For DSPAM, only scan one mail at a time
dspam_destination_recipient_limit = 1
现在我们需要指定我们定义的过滤器。基本上我们将告诉postfix把所有邮件/./通过unix套接字发给dspam。创建一个新文件**/etc/postfix/dspam_filter_access**并把下面一行写进去:
现在我们需要指定我们定义的过滤器。基本上我们将告诉postfix把所有邮件如下用 /./ 代表通过unix套接字发给dspam。创建一个新文件**/etc/postfix/dspam\_filter\_access**并把下面一行写进去:
/./ FILTER dspam:unix:/run/dspam/dspam.sock
这是postfix部分的配置。现在让我们为dovecot设置垃圾过滤。在文件**/etc/dovecot/conf.d/20-imap.conf**里,修改**imap mail_plugin**插件参数为下面的方式:
这是postfix部分的配置。现在让我们为dovecot设置垃圾过滤。在文件**/etc/dovecot/conf.d/20-imap.conf**里,修改**imap mail\_plugin**插件参数为下面的方式:
mail_plugins = $mail_plugins antispam
@ -581,7 +582,7 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
sieve_default = /etc/dovecot/default.sieve
什么是sieve以及为什么我们需要为所有用户设置一个默认脚本sieve可以在IMAP服务器上为我们自动处理任务。在我们的例子里我们想让所有被确定为垃圾的邮件会被移到垃圾箱而不是收件箱里。我们希望这是服务器上所有用户的默认行为;这是为什么我们把这个脚本设为默认脚本。现在让我们来创建这个脚本,建立一个新文件**/etc/dovecot/default.sieve**并写入以下内容:
什么是sieve以及为什么我们需要为所有用户设置一个默认脚本sieve可以在IMAP服务器上为我们自动处理任务。在我们的例子里我们想让所有被确定为垃圾的邮件移到垃圾箱而不是收件箱里。我们希望这是服务器上所有用户的默认行为这是为什么我们把这个脚本设为默认脚本。现在让我们来创建这个脚本建立一个新文件**/etc/dovecot/default.sieve**并写入以下内容:
require ["regex", "fileinto", "imap4flags"];
# Catch mail tagged as Spam, except Spam retrained and delivered to the mailbox
@ -603,7 +604,7 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
chmod 0640 default.sieve
chmod 0750 default.svbin
最后我们需要修改dspam要读取的两个postfix配置文件的权限
最后我们需要修改dspam要读取的两个postfix配置文件的权限
chmod 0644 /etc/postfix/dynamicmaps.cf /etc/postfix/main.cf
@ -669,21 +670,21 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
很好!你现在已经为你服务器上的用户配置好自适应垃圾邮件过滤。当然,每个用户将需要在开始的几周里培训过滤器。要标记一则信息为垃圾,只需要在你的任意设备(电脑,平板,手机)上将它移动到叫“垃圾箱”或“废纸篓”的目录里。否则它将被标记为有用。
### 确保你发出的邮件能通过垃圾邮件过滤器 ###
## 确保你发出的邮件能通过垃圾邮件过滤器 ##
这个部分我们的目标是让我们的邮件服务器能尽量干净地出现在世界上,并让垃圾邮件发送者们更难以我们的名义发邮件。作为附加效果,这也有助于让我们的邮件能通过其他邮件服务器的垃圾邮件过滤器。
#### 发送者策略框架 ####
### 发送者策略框架SPF ###
发送者策略框架SPF是你添加到自己服务器区域里的一份记录声明了整个因特网上哪些邮件服务器能以你的域名发邮件。设置非常简单使用[microsoft.com][31]上的SPF向导来生成你的SPF记录然后作为一个TXT记录添加到自己的服务器区域里。看上去像这样
jhausse.net. 300 IN TXT v=spf1 mx mx:cloud.jhausse.net -all
#### 反向PTR ####
### 反向PTR ###
我们[之前][32]在本文里讨论过这个问题建议你为自己的服务器正确地设置反向DNS这样对服务器IP地址的反向查询能返回你服务器的实际名字。
#### OpenDKIM ####
### OpenDKIM ###
当我们激活[OpenDKIM][33]后postfix会用密钥为每封发出去的邮件签名。然后我们将把这个密钥存储在DNS域中。这样的话世界上任意一个邮件服务器都能够检验邮件是否真的是我们发出的或是由垃圾邮件发送者伪造的。让我们先安装opendkim
@ -710,7 +711,7 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
UMask 022
UserID opendkim:opendkim
我们还需要几个额外的文件,保存在目录**/etc/opendkim**里:
我们还需要几个额外的文件,保存在目录**/etc/opendkim**里:
mkdir -pv /etc/opendkim/
cd /etc/opendkim/
@ -740,7 +741,7 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
cat mail.txt
然后把它作为一个TXT记录添加到区域文件里应该是这样的
然后把它作为一个TXT记录添加到区域文件里应该是类似这样的
mail._domainkey.cloud1984.net. 300 IN TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqG...
@ -751,30 +752,30 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
然后重启相关服务
然后重启相关服务
service postfix reload
service opendkim restart
现在让我们测试一下能找到我们的OpenDKIM公钥并和私钥匹配
现在让我们测试一下是否能找到我们的OpenDKIM公钥并和私钥匹配
opendkim-testkey -d jhausse.net -s mail -k mail.private -vvv
这个应该返回
这个应该返回
opendkim-testkey: key OK
这个你可能需要等一会直到域名服务器重新加载该区域对于Linode每15分钟会更新一次。你可以用**dig**来检查区域是否已经重新加载。
如果这个没问题让我们测试一下其他服务器能验证我们的OpenDKIM签名和SPF记录。要做这个我们可以用[Brandon Checkett的邮件测试][34]。发送一封邮件到[Brandon的网页][34]上提供的测试地址,我们可以在服务器上运行下面的命令
如果这个没问题让我们测试一下其他服务器能验证我们的OpenDKIM签名和SPF记录。要做这个我们可以用[Brandon Checkett的邮件测试系统][34]。发送一封邮件到[Brandon的网页][34]上提供的测试地址,我们可以在服务器上运行下面的命令
mail -s CloudCheck ihAdmTBmUH@www.brandonchecketts.com
在Brandon的网页上我们应该可以在'DKIM Signature'部分里看到**result = pass**的文字,以及在'SPF Information'部分看到**Result: pass**的文字。如果我们的邮件通过这个测试,只要不加-t开关重新生成OpenDKIM密钥上传新的密钥到区域文件里然后重新测试检查是否仍然可以通过这些测试。如果可以的话恭喜你已经在你的服务器上成功配置好OpenDKIM和SPF了
### 使用Owncloud提供日历联系人文件服务并通过Roundcube配置网页邮件 ###
## 使用Owncloud提供日历联系人文件服务并通过Roundcube配置网页邮件 ##
既然我们已经拥有了一流的邮件服务器,让我们再为它增加在云上保存通讯录,日程表和文件的能力。这些是[Owncloud][35]所提供的非常赞的服务。在这个弄好后,我们还会设置一个网页邮件,这样就算你没带任何电子设备出去旅行时,或者说在你的手机或笔记本没电的情况下,也可以检查邮件。
既然我们已经拥有了一流的邮件服务器,让我们再为它增加在云上保存通讯录,日程表和文件的能力。这些是[Owncloud][35]所提供的非常赞的服务。在这个弄好后,我们还会设置一个网页邮件,这样就算你没带任何电子设备出去旅行时,或者说在你的手机或笔记本没电的情况下,也可以通过网吧来检查邮件。
安装Owncloud非常直观而且在[这里][36]有非常好的介绍。在Debian系统里归根结底就是把owncloud的仓库添加到apt源里下载Owncloud的发行密钥并安装到apt钥匙链中然后通过apt-get安装Owncloud
@ -784,20 +785,20 @@ dovecot-antispam是一个安装包可以在我们发现有邮件被dspan误
apt-get update
apt-get install apache2 owncloud roundcube
在有提示的时候,选择**dbconfig**然后说你希望**roundcube**使用**mysql**。然后提供一下mysql的root密码并为roundcube的mysql用户设置一个漂亮的密码。然后按如下方式编辑roundcube的配置文件**/etc/roundcube/main.inc.php**这样登录roundcube默认会使用你的IMAP服务器
在有提示的时候,选择**dbconfig**并设置**roundcube**使用**mysql**。然后提供一下mysql的root密码并为roundcube的mysql用户设置一个漂亮的密码。然后按如下方式编辑roundcube的配置文件**/etc/roundcube/main.inc.php**这样登录roundcube默认会使用你的IMAP服务器
$rcmail_config['default_host'] = 'ssl://localhost';
$rcmail_config['default_port'] = 993;
现在我们来配置一下apache2网页服务器增加SSL支持这样我们可以和Owncloud和Roundcube对话时使用加密的方式传输我们的密码和数据。让我们打开Apache的ssl模块:
现在我们来配置一下apache2网页服务器增加SSL支持这样我们可以和Owncloud和Roundcube对话时使用加密的方式传输我们的密码和数据。让我们打开Apache的SSL模块:
a2enmod ssl
然后编辑文件**/etc/apache2/ports.conf**并设定以下参数:
NameVirtualHost *:80
Listen 80
ServerName www.jhausse.net
NameVirtualHost *:80
Listen 80
ServerName www.jhausse.net
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
@ -969,9 +970,9 @@ ServerName www.jhausse.net
a2ensite default default-ssl roundcube
service apache2 restart
关于网页邮件,可以通过网址**https://webmail.jhausse.net**来访问基本上能工作。之后使用邮箱全名例如roudy@jhausse.net和在本文一开始在邮件服务器数据库里设定的密码登录。第一次连接成功浏览器会警告说证书没有可靠机构的签名。这个没什么关系只要添加一个例外。
关于网页邮件,可以通过网址**https://webmail.jhausse.net**来访问基本上能工作。之后使用邮箱全名例如roudy@jhausse.net和在本文一开始在邮件服务器数据库里设定的密码登录。第一次连接成功浏览器会警告说证书没有可靠机构的签名。这个没什么关系只要添加一个例外即可
最后但很重要的是,我们将通过把以下内容你哦个写入**/etc/apache2/sites-available/owncloud**来为Owncloud创建一个虚拟主机。
最后但很重要的是,我们将通过把以下内容写入**/etc/apache2/sites-available/owncloud**来为Owncloud创建一个虚拟主机。
<IfModule mod_ssl.c>
<VirtualHost *:443>
@ -1040,33 +1041,33 @@ ServerName www.jhausse.net
就这些了现在你已经拥有自己的Google Drive日程表联系人Dropbox以及Gmail好好享受下新鲜恢复保护的隐私吧:-)
### 在云上同步你的设备 ###
## 在云上同步你的设备 ##
要同步你的邮件,你可以只是用你喜欢的邮件客户端Android或iOS自带的默认邮件应用[k9mail][37]或者电脑上的Thunderbird。或者你也可以使用我们设置好的网页邮件。
要同步你的邮件,你只需用你喜欢的邮件客户端即可Android或iOS自带的默认邮件应用[k9mail][37]或者电脑上的Thunderbird。或者你也可以使用我们设置好的网页邮件。
在Owncloud的文档里描述了如何与云端同步你的日程表和联系人。在Android系统中我用的是CalDAV-SyncCardDAV-Sync应用桥接了手机上Android自带日历以及联系人应用和Owncloud服务器。
对于文件有一个叫Owncloud的Android应用可以访问你手机上的文件然后自动把你拍的图片和视频上传到云中。在你的Mac/PC上访问云端文件也很容易在[Owncloud文档里有很好的描述][38]。
### 最后一点提示 ###
## 最后一点提示 ##
在上线后的前几个星期里,最好每天检查一下日志**/var/log/syslog**和**/var/log/mail.log**以保证一切都在顺利运行。在你邀请其他人(朋友,家人,等等)加入你的服务器之前这很重要。他们信任你能很好地架设个人服务器维护他们的数据,但是如果服务器突然崩溃会让他们很失望。
要添加另一个邮件用户,只要在数据库**mailserver**的**virtual_users**表中增加一行。
要添加另一个邮件用户,只要在数据库**mailserver**的**virtual\_users**表中增加一行。
要添加一个域名,只要在**virtual_domains**表中增加一行。然后更新**/etc/opendkim/SigningTable**为发出的邮件签名上传OpenDKIM密钥到服务器区域然后吃哦更年期OpenDKIM服务。
要添加一个域名,只要在**virtual_domains**表中增加一行。然后更新**/etc/opendkim/SigningTable**为发出的邮件签名上传OpenDKIM密钥到服务器区域然后重启OpenDKIM服务。
Owncloud有自己的用户数据库在用管理员帐号登录后可以修改。
最后万一在服务器临时崩溃的时候想办法找解决方案很重要。比如说在服务器恢复之前你的邮件应该送往哪儿一种方式是找个能帮你做备份MX的朋友同时你也可以当他的备份MX看下postfix的配置文件**main.cf**里**relay_domains**和**relay_recipient_maps**里的设定。与此类似如果你的服务器被破解然后一个坏蛋把你所有文件删了怎么办对于这个考虑增加一个常规备份系统就很重要了。Linode提供了备份选项。在1984.is里我用crontabs和scp做了一个基本但管用的自动备份系统。
最后万一在服务器临时崩溃的时候想办法找解决方案很重要。比如说在服务器恢复之前你的邮件应该送往哪儿一种方式是找个能帮你做备份MX的朋友同时你也可以当他的备份MX看下postfix的配置文件**main.cf**里**relay\_domains**和**relay\_recipient\_maps**里的设定。与此类似如果你的服务器被破解然后一个坏蛋把你所有文件删了怎么办对于这个考虑增加一个常规备份系统就很重要了。Linode提供了备份选项。在1984.is里我用crontabs和scp做了一个基本但管用的自动备份系统。
--------------------------------------------------------------------------------
via: https://www.howtoforge.com/tutorial/build-your-own-cloud-on-debian-wheezy/
作者:[Roudy Jhausse ][a]
作者:[Roudy Jhausse][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/) 荣誉推出

View File

@ -0,0 +1,41 @@
Ubuntu 15.04 终于可以让你将菜单设置为 ‘始终可见’
================================================================================
**如果你不喜欢 Unity 的全局菜单在你的鼠标离开后就淡出你的视野,在 Ubuntu 15.04 稍微做点工作就可以留住菜单。**
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/02/locally-integrated-menus-in-ubuntu.png)
最新的Ubuntu 15.04的Unity界面通过在“提议Proposed”通道提供了一个选项**使应用程序菜单在Ubuntu中始终可见**。
这是个不会淡出,也不会过段时间就消失的菜单。
最大的缺点是它目前只能通过`dconf`来控制,而不是常规的面向用户的选项设置。
我希望如果预计没有的话在之后的开发中能有一个设置这个特性的选项被加入到Ubuntu的【系统设置】>【外观】部分。
现在,如果你使用的是 Ubuntu 15.04并启用了“提议Proposed”的更新通道后你可以在dconf 的com>canonical>Unity>always show menus 中找到这个开关。
### 迟到总比没有要好? ###
开发者们计划在Ubuntu 14.04 LTS的下一个SRU中反向移植这个选项假设在测试阶段没有任何意外发生
本地集成菜单LIM在Ubuntu 14.04 LTS 中的首次亮相就赢得了赞誉,其被广泛认为在那些喜欢隐藏方式的与那些不喜欢必须使用鼠标和触摸板的人之间的最佳的折衷方案。
虽然在Unity方面本地集成菜单减少了不少批评不过默认的“淡入/淡出”行为总是还让人不爽。
在Ubuntu 过去的几个版本中已经能够看到他们在积极解决早期的用户体验中的几个痛点。经过了几年在TODO列表中[我们去年终于看到了本地集成菜单][1],以及通过[点击应用图标来实现Unity 启动器中应用的最小化及恢复的选项][2]。
一年以来我们终于看到了一个使应用程序菜单始终显示的选项,无论我们的鼠标在哪里。迟来总比没有好,对不对?
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2015/01/ubuntu-15-04-always-show-menu-bar-option
作者:[Joey-Elijah Sneddon][a]
译者:[JeffDing](https://github.com/JeffDing)
校对:[wxy](https://github.com/wxy)
本文由 [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/02/locally-integrated-menus-ubuntu-14-04
[2]:http://www.omgubuntu.co.uk/2014/03/minimize-click-launcher-option-ubuntu-14-04

View File

@ -1,7 +1,8 @@
Ubuntu With XFCE vs Xubuntu Linux
Ubuntu & XFCE vs Xubuntu
=========================================================
Ubuntu vs Xubuntu。Ubuntu拥有漂亮的桌面体验以及强大的应用程序。Xubuntu轻量、快速并且可定制哪个更适合你
Ubuntu拥有漂亮的桌面体验以及强大的应用程序。Xubuntu轻量、快速并且可定制哪个更适合你
---------------------------------------------------------
![](http://f.tqn.com/y/linux/1/W/T/J/1/ubuntudesktop.png)
@ -10,11 +11,11 @@ Ubuntu vs Xubuntu。Ubuntu拥有漂亮的桌面体验以及强大的应用程序
并且我同时也会在这篇文章中介绍Ubuntu用户如何获取基本的XFCE桌面以及如何安装完整的Xubuntu桌面。
[Ubuntu][1]以及[Xubuntu][2]是针对不同目的开发的操作系统为什么我会强调这一点是为了说明什么时候或者为什么你应该使用Ubuntu以及什么时候应该使用Xubuntu。
[Ubuntu][1]以及[Xubuntu][2]是针对不同目的开发的操作系统为什么我会强调这一点是为了说明什么时候或者为什么你应该使用UbuntuXubuntu。
比较这两个操作系统就像比较[劳斯莱斯][3]与[保时捷][4]。这两个都是很棒的车,但是如果把劳斯莱斯给一个赛车迷,他们也许会卖掉它买个其他的车,同样,如果把保时捷给舒格勋爵或者休·海夫纳这类人可能也不那么合适。
Ubuntu拥有一个适用性很强的桌面环境叫做Unity并且默认会安装一些很棒的Linux应用程序包括Rhythmbox以及[LibreOffic][5]。Ubuntu就像是劳斯莱斯。它为舒适而生并且尽可能的提供从A到B的最时髦的方法
Ubuntu拥有一个适用性很强的桌面环境叫做Unity并且默认会安装一些很棒的Linux应用程序包括Rhythmbox以及[LibreOffic][5]。Ubuntu就像是劳斯莱斯。它为舒适而生并且尽可能的提供满足需要的漂亮的解决方案
作为一个Ubuntu用户就像汽车里面的乘客。你在到达目的地的过程中就可以同时把事情搞定并且所有的事看起来都很漂亮并且很简单。
@ -92,7 +93,7 @@ Xubuntu就像一个改装过的跑车。你可以把它改装成任何你想要
接下来,我会使用命令行工具[apt-get][7]介绍在Ubuntu安装XFCE桌面的方法。
打开一个终端窗口在Unity环境你可以在[Dash][8]中搜索“TERM”或者使用组合键 CTRL+ALT+T。
打开一个终端窗口在Unity环境你可以在[Dash][8]中搜索“TERM”或者使用组合键 `CTRL+ALT+T`
安装XFCE桌面十分简单输入下列命令就可以了
@ -105,7 +106,7 @@ Xubuntu就像一个改装过的跑车。你可以把它改装成任何你想要
系统会显示一个消息,提示你是否使用默认的面板布局或者使用单独的面板。
[最新版本的Xubuntu][10]在顶部包含一个单独的面板,不过我更喜欢两个面板,顶部一个标准面板,底部一个常用程序的停靠面板。
[最新版本的Xubuntu][10]在顶部包含一个单独的面板,不过我更喜欢面板,顶部一个标准面板,底部一个常用程序的停靠面板。
需要注意的是XFCE桌面菜单系统和Xubuntu的菜单有些差异除非你安装[一个更好的菜单系统][11],设置两个面板或许是个更好的选择。
@ -117,7 +118,7 @@ Xubuntu就像一个改装过的跑车。你可以把它改装成任何你想要
如果你想全都使用Xubuntu的东西但是又不想按照那些介绍重新安装系统的话看看下面的东西。
通过搜索“TERM”或者组合键CTRL+ALT+T打开一个终端窗口。
通过搜索“TERM”或者组合键`CTRL+ALT+T`,打开一个终端窗口。
在终端输入如下命令:
@ -132,16 +133,17 @@ Xubuntu就像一个改装过的跑车。你可以把它改装成任何你想要
Xubuntu桌面就会显示出来啦。
这里会有一些差异。菜单仍然是XFCE菜单而不是Xubuntu菜单。某些图标也不会出现在顶部面板中。但是这些问题都不足以让我们花时间卸载Ubuntu然后重装Xubuntu。
这里会有一些差异。菜单仍然是XFCE菜单而不是Xubuntu菜单。某些图标也不会出现在顶部面板中。但是这些问题都不足以让我们花时间卸载Ubuntu然后重装Xubuntu。
下一篇文章中我会介绍如何自定义Xubuntu以及XFCE桌面。
-----
via : http://linux.about.com/od/dist/fl/Ubuntu-With-XFCE-vs-Xubuntu-Linux.htm
作者:[Gary Newell][a]
译者:[zhouj-sh](https://github.com/Zhouj-sh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,202 @@
在linux中如何通过nload来监控网络使用情况
================================================================================
nload 是一个 linux 自由软件工具通过提供两个简单的图形来帮助linux用户和系统管理员来实时监控网络流量以及宽带使用情况一个是进入流量一个是流出流量。
我真的很喜欢用**nload**来在屏幕上显示当前的下载速度、总的流入量和平均下载速度等信息。nload工具的报告图非常容易理解最重要的是这些信息真的非常有用。
在其使用手册上说到,在默认情况下它会监控所有网络设备。但是你可以轻松地指定你想要监控的设备,而且可以通过方向键在不同的网络设备之间进行转换。另外还有很多的选项可用,例如 -t选项以毫秒来设定刷新显示时间间隔默认时间间隔值是500毫秒-m选项用来同时显示多个设备在使用该选项时不会显示流量图-u选项用来设置显示流量数字的单位另外还有许多其他的选项将会在本教程中探索和练习。
### 如何将 nload安装到你的linux机器上 ###
**Ubuntu** 和 **Fedora** 用户可以从默认的软件仓库中容易地安装。
在Ubuntu上使用以下命令进行安装。
sudo apt-get install nload
在Fedora上使用以下命令进行安装。
sudo yum install nload
**CentOS**用户该怎么办呢? 只需要在你的机器上输入以下命令就可以安装成功。
sudo yum install nload
以下的命令会帮助你在OpenBSD系统中安装nload。
sudo pkg_add -i nload
在 linux 机器上的另外一个非常有效的安装软件的方式就是编译源代码下载并安装最新的版本意味着能够获得更好地性能、更酷的特性以及更少的bug。
### 如何通过源代码安装nload ###
在从源代码安装nload之前你需要首先下载源代码。 我通常使用wget工具来进行下载--该工具在许多linux机器上默认可用。该免费工具帮助用户以非交互式的方式从网络上下载文件并支持以下协议
- HTTP
- HTTPS
- FTP
通过以下命令来进入到**/tmp**目录中。
cd /tmp
然后在你的终端中输入以下命令就可以将最新版本的nload下载到你的linux机器上了。
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
如果你不喜欢使用wget工具也可以通过简单的一个鼠标点击轻松地从[官网][1]上下载其源代码。
由于该软件非常轻巧,其下载过程几乎在瞬间就会完成。接下来的步骤就是通过**tar**工具来将下载的源代码包进行解压。
tar归档工具可以用来从磁带或硬盘文档中存储或解压文件该工具有许多可用的选项但是我们只需要下面的几个选项来执行我们的操作。
1. **-x** 从归档中解压文件
1. **-v** 使用繁琐模式运行--用来显示详细信息
1. **-f** 用来指定归档文件
例如LCTT 译注tar 命令的参数前的“-”可以省略):
tar xvf example.tar
现在你学会了如何使用tar工具我可以非常肯定你知道了如何从命令行中解压这个.tar文档。
tar xvf nload-0.7.4.tar.gz
之后使用cd命令来进入到nload*目录中:
cd nload*
在我的系统上看起来是这样的:
oltjano@baby:/tmp/nload-0.7.4$
然后运行下面这个命令来为你的系统配置该软件包:
./configure
此时会有“一大波僵尸”会在你的屏幕上显示出来,下面的一个屏幕截图描述了它的样子。
![configuring packages for nload](http://blog.linoxide.com/wp-content/uploads/2015/01/nload1.png)
在上述命令完成之后通过下面的命令来编译nload。
make
![compiling nload](http://blog.linoxide.com/wp-content/uploads/2015/01/nload2.png)
好了,终于....通过以下命令可以将nload安装在你的机器上了。
sudo make install
![installing nload from source](http://blog.linoxide.com/wp-content/uploads/2015/01/nload3.png)
安装好nload之后就是让你学习如何使用它的时间了。
###如何使用nload###
我喜欢探索,所以在你的终端输入以下命令.
nload
看到了什么?
我得到了下面的结果。
![running nload](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.png)
如上述截图可以看到,我得到了以下信息:
#### 流入量####
**当前下载速度**
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.1.png)
**平均下载速度**
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.2.png)
**最小下载速度**
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.3.png)
**最大下载速度**
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.4.png)
**总的流入量按字节进行显示**
![](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.5.png)
#### 流出量 ####
类似的同样适用于流出量
#### 一些nload有用的选项####
使用选项
-u
用来设置显示流量单位。
下面的命令会帮助你使用MBit/s显示单元
nload -u m
下面的屏幕截图显示了上述命令的结果。
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload5.png)
尝试以下命令然后看看有什么结果。
nload -u g
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload6.png)
同时还有一个**-U**选项。根据手册描述,该选项基本上与-u选项类似只是用在合计数据。 我测试了这个命令,老实说,当你需要检查总的流入与流出量时非常有用。
nload -U G
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload7.png)
从上面的截图中可以看到,**nload -U G** 使用Gbyte来显示数据总量。
另外一个我喜欢使用的有用选项是 **-t**。 该选项用来设置刷新显示事件间隔单位为毫秒默认值为500毫秒。
我会通过下面的命令做一些小的实验。
nload -t 130
那么上述命令做了什么呢它将刷新显示时间间隔设置为130毫秒。 通常推荐不要将该时间间隔值设置为小于100毫秒因为nload在生成报告时计算错误。
另外的一个选项为 **-a** 在你想要设置计算平均值的时间窗口的秒数时使用默认该值为300秒。
那么当你想要监控指定的网络设备该如何呢? 非常容易, 像下面这样简单地指定设备或者列出想要监控的设备列表即可。
nload wlan0
![nload monitoring wlan0 on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload8.png)
下面的语法可帮助你监控指定的多个设备。
nload [options] device1 device2 devicen
例如使用下面的命令来监控eth0和eth1。
nload wlan0 eth0
如果不带选项来运行nload那么它会监控所有自动检测到的设备你可以通过左右方向键来显示其中的任何一个设备的信息。
--------------------------------------------------------------------------------
via: http://linoxide.com/monitoring-2/monitor-network-usage-nload/
作者:[Oltjano Terpollari][a]
译者:[theo-l](https://github.com/theo-l)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/oltjano/
[1]:http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz

View File

@ -1,8 +1,8 @@
Linux有问必答时间--如何查看Linux系统的CPU信息
Linux有问必答如何查看Linux系统的CPU信息
================================================================================
> **问题**: 我想要了解我的电脑关于CPU处理器的详细信息查看CPU信息比较有效地方法是什么
根据你的需要有各种各样的关于你的CPU处理器信息你需要了解比如CPU供应商名、模型名、时钟频率、套接字/内核的数量, L1/L2/L3缓存配置、可用的处理器能力(比如硬件虚拟化、AES, MMX, SSE)等等。在Linux中有许多命令行或基于GUI的工具就能来展示你的CPU硬件的相关具体信息。
根据你的需要有各种各样的关于你的CPU处理器信息你需要了解比如CPU供应商名、模型名、时钟频率、插槽/内核的数量, L1/L2/L3缓存配置、可用的处理器能力(比如硬件虚拟化、AES, MMX, SSE)等等。在Linux中有许多命令行或基于GUI的工具就能来展示你的CPU硬件的相关具体信息。
### 1. /proc/cpuinfo ###
@ -12,7 +12,7 @@ Linux有问必答时间--如何查看Linux系统的CPU信息
![](https://farm8.staticflickr.com/7572/15934711577_4136a8e0b9_c.jpg)
通过查看这个文件,你能[识别出][1]物理处理器数、每个CPU核心数、可用的CPU标志寄存器以及其它东西的数量。
通过查看这个文件,你能[识别出][1]物理处理器数(插槽)、每个CPU核心数、可用的CPU标志寄存器以及其它东西的数量。
### 2. cpufreq-info ###
@ -32,7 +32,7 @@ cpuid命令的功能就相当于一个专用的CPU信息工具它能通过使
### 4. dmidecode ###
dmidecode命令直接从BIOS的DMI译者注:桌面管理接口数据收集关于系统硬件的具体信息。CPU信息报告包括CPU供应商、版本、CPU标志寄存器、最大/最近的时钟速度、(所允许的)核心总数、L1/L2/L3缓存配置等等。
dmidecode命令直接从BIOS的DMI桌面管理接口数据收集关于系统硬件的具体信息。CPU信息报告包括CPU供应商、版本、CPU标志寄存器、最大/当前的时钟速度、(启用的)核心总数、L1/L2/L3缓存配置等等。
$ sudo dmidecode
@ -54,7 +54,7 @@ i7z是一个专供英特尔酷睿i3、i5和i7 CPU的实时CPU报告工具。它
![](https://farm8.staticflickr.com/7546/15534687744_1968dc2b18_c.jpg)
### 8. likwid-topology ###
### 8. likwid拓扑 ###
[likwid][3] (Like I Knew What I'm Doing) 是一个用来测量、配置并显示硬件相关特性的命令行收集工具。其中的likwid拓扑结构能显示CPU硬件(线程/缓存/NUMA)的拓扑结构信息,还能识别处理器家族(比如Intel Core 2, AMD Shanghai)。
@ -70,7 +70,7 @@ lscpu命令用一个更加用户友好的格式统计了 /etc/cpuinfo 的内容
### 10. lshw ###
**lshw**命令是一个综合性硬件查询工具。不同于其它工具lshw需要root特权才能运行因为它是在BIOS系统里查询DMI译者注:桌面管理接口信息。它能报告总核心数和可用核心数但是会遗漏掉一些信息比如L1/L2/L3缓存配置。GTK版本的lshw-gtk也是可用的。
**lshw**命令是一个综合性硬件查询工具。不同于其它工具lshw需要root特权才能运行因为它是在BIOS系统里查询DMI桌面管理接口信息。它能报告总核心数和可用核心数但是会遗漏掉一些信息比如L1/L2/L3缓存配置。GTK版本的lshw-gtk也是可用的。
$ sudo lshw -class processor
@ -78,7 +78,7 @@ lscpu命令用一个更加用户友好的格式统计了 /etc/cpuinfo 的内容
### 11. lstopo ###
lstopo命令 (包括 [hwloc][4] 包) 使由CPU、缓存、内存和I/O设备组成的拓扑结构可见。这个命令用来识别处理器结构和系统的NUMA拓扑结构。
lstopo命令 (包括在 [hwloc][4] 包中) 以可视化的方式组成 CPU、缓存、内存和I/O设备的拓扑结构。这个命令用来识别处理器结构和系统的NUMA拓扑结构。
$ lstopo
@ -86,7 +86,7 @@ lstopo命令 (包括 [hwloc][4] 包) 使由CPU、缓存、内存和I/O设备组
### 12. numactl ###
其被开发的起初是为了设置NUMA的时序安排和Linux处理器的内存布局策略numactl命令也能通过命令行来展示关于CPU硬件的NUMA拓扑结构信息。
最初其被开发的目的是为了设置NUMA的时序安排和Linux处理器的内存布局策略numactl命令也能通过命令行来展示关于CPU硬件的NUMA拓扑结构信息。
$ numactl --hardware
@ -94,7 +94,7 @@ lstopo命令 (包括 [hwloc][4] 包) 使由CPU、缓存、内存和I/O设备组
### 13. x86info ###
x86info是一个为了展示基于x86架构的CPU信息的命令行工具。信息报告包括CPU型号、线程/核心数、时钟速度、TLB译者注:传输后备缓冲器)缓存配置、支持的特征标志寄存器等等。
x86info是一个为了展示基于x86架构的CPU信息的命令行工具。信息报告包括CPU型号、线程/核心数、时钟速度、TLB传输后备缓冲器缓存配置、支持的特征标志寄存器等等。
$ x86info --all
@ -105,7 +105,7 @@ x86info是一个为了展示基于x86架构的CPU信息的命令行工具。信
via: http://ask.xmodulo.com/check-cpu-info-linux.html
译者:[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/) 荣誉推出

View File

@ -0,0 +1,56 @@
Linux 有问必答如何使用yum来下载RPM包而不进行安装
================================================================================
> **问题**:我想从Red Hat 的标准仓库中下载一个RPM包我能使用yum命令来下载一个RPM包但是不进行安装吗
yum是基于Red Hat的系统(如CentOS、Fedora、RHEl)上的默认包管理器。使用yum你可以安装或者更新一个RPM包并且他会自动解决包依赖关系。但是如果你只想将一个RPM包下载到你的系统上该怎么办呢? 例如你可能想要获取一些RPM包在以后使用或者将他们安装在另外的机器上。
这里说明了如何从yum仓库上下载一个RPM包。
### 方法一:yum###
yum命令本身就可以用来下载一个RPM包标准的yum命令提供了`--downloadonly(只下载)`的选项来达到这个目的。
$ sudo yum install --downloadonly <package-name>
默认情况下一个下载的RPM包会保存在下面的目录中:
/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下载包的来源仓库的名称(例如base、fedora、updates)
如果你想要将一个包下载到一个指定的目录(如/tmp)
$ sudo yum install --downloadonly --downloaddir=/tmp <package-name>
注意如果下载的包包含了任何没有满足的依赖关系yum将会把所有的依赖关系包下载但是都不会被安装。
另外一个重要的事情是在CentOS/RHEL 6或更早期的版本中你需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用`--downloadonly`命令选项:
$ sudo yum install yum-plugin-downloadonly
如果没有该插件你会在使用yum时得到以下错误
Command line error: no such option: --downloadonly
![](https://farm9.staticflickr.com/8627/15571201803_38390aae75_c.jpg)
### 方法二: Yumdownloader###
另外一个下载RPM包的方法就是通过一个专门的包下载工具--yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。
$ sudo yum install yum-utils
下载一个RPM包
$ sudo yumdownloader <package-name>
下载的包会被保存在当前目录中。你需要使用root权限因为yumdownloader会在下载过程中更新包索引文件。与yum命令不同的是任何依赖包不会被下载。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/yum-download-rpm-package.html
译者:[theo-l](https://github.com/theo-l)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,39 +1,38 @@
在linux中4个lvcreate命令例
4 lvcreate 常用命令
================================================================================
逻辑卷管理LVM是广泛使用的技术并拥有极其灵活磁盘管理方案。主要包含3个基础命令
a. 创建物理卷使用**pvcreate**
b. 创建卷组并给卷组增加分区**vgcreate**
c. 创建新的逻辑卷使用**lvcreate**
1. 创建物理卷使用**pvcreate**
2. 创建卷组并给卷组增加分区**vgcreate**
3. 创建新的逻辑卷使用**lvcreate**
![](http://www.ehowstuff.com/wp-content/uploads/2015/01/lvm-diagram1.jpg)
随后的例子着重在已经存在的卷组上使用**lvcreate**创建逻辑卷。**lvcreate**命令可以在来自自由物理扩展池的卷组分配逻辑扩展。通常,逻辑卷可以随意使用底层逻辑卷上的任意空间。修改逻辑卷将释放或重新分配物理卷空间。这些例子已经在CentOS 5, CentOS 6, CentOS 7, RHEL 5, RHEl 6 和 RHEL 7 版本中测试通过。
下列例子主要讲述在已经存在的卷组上使用**lvcreate**创建逻辑卷。**lvcreate**命令可以在卷组的可用物理扩展池中分配逻辑扩展。通常,逻辑卷可以随意使用底层逻辑卷上的任意空间。修改逻辑卷将释放或重新分配物理卷空间。这些例子已经在CentOS 5, CentOS 6, CentOS 7, RHEL 5, RHEl 6 和 RHEL 7 版本中测试通过。
### 4个lvcreate命令例子 ###
1. 在名为vg_newlvm卷组中创建15G大小的逻辑卷
1. 在名为vg_newlvm卷组中创建15G大小的逻辑卷
[root@centos7 ~]# lvcreate -L 15G vg_newlvm
[root@centos7 ~]# lvcreate -L 15G vg_newlvm
2. 在名为vg_newlvm中创建大小为2500MB的逻辑卷并命名centos7_newvol创建块设备/dev/vg_newlvm/centos7_newvol
2. 在名为vg_newlvm的卷组中创建大小为2500MB的逻辑卷并命名centos7_newvol这样就创建块设备/dev/vg_newlvm/centos7_newvol
[root@centos7 ~]# lvcreate -L 2500 -n centos7_newvol vg_newlvm
[root@centos7 ~]# lvcreate -L 2500 -n centos7_newvol vg_newlvm
3.可以使用**lvcreate**命令的参数-l能指定一些特别的逻辑卷扩展大小。也可以使用这个参数以卷组的大小百分比来扩展逻辑卷。这下列的命令创建了centos7_newvol卷组的50%大小的逻辑卷vg_newlvm:
3. 可以使用**lvcreate**命令的参数-l来指定逻辑卷扩展的大小。也可以使用这个参数以卷组的大小百分比来扩展逻辑卷。这下列的命令创建了centos7_newvol卷组的50%大小的逻辑卷vg_newlvm:
[root@centos7 ~]# lvcreate -l 50%VG -n centos7_newvol vg_newlvm
[root@centos7 ~]# lvcreate -l 50%VG -n centos7_newvol vg_newlvm
4. 使用卷组剩下的所有空间创建逻辑卷
[root@centos7 ~]# lvcreate --name centos7_newvol -l 100%FREE vg_newlvm
[root@centos7 ~]# lvcreate --name centos7_newvol -l 100%FREE vg_newlvm
更多帮助,使用**lvcreate**命令--help选项来查看
[root@centos7 ~]# lvcreate --help
----------
以下空号中是帮助字面翻译
lvcreate: Create a logical volume创建逻辑卷
@ -46,8 +45,8 @@ c. 创建新的逻辑卷使用**lvcreate**
[-C|--contiguous {y|n}]
[-d|--debug]
[-h|-?|--help]
[--ignoremonitoring](忽略监
[--monitor {y|n}](监
[--ignoremonitoring](忽略监
[--monitor {y|n}](监
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
[-k|--setactivationskip {y|n}]
[-K|--ignoreactivationskip]
@ -66,7 +65,7 @@ c. 创建新的逻辑卷使用**lvcreate**
[--discards {ignore|nopassdown|passdown}]
[--poolmetadatasize MetadataSize[bBsSkKmMgG]]]
[--poolmetadataspare {y|n}]
[--thinpool ThinPoolLogicalVolume{Name|Path}]精简池逻辑卷
[--thinpool ThinPoolLogicalVolume{Name|Path}] 精简池逻辑卷
[-t|--test]
[--type VolumeType](卷类型)
[-v|--verbose]
@ -75,18 +74,14 @@ c. 创建新的逻辑卷使用**lvcreate**
[--version]
VolumeGroupName [PhysicalVolumePath...]
lvcreate
{ {-s|--snapshot} OriginalLogicalVolume[Path] |
[-s|--snapshot] VolumeGroupName[Path] -V|--virtualsize VirtualSize}
{-T|--thin} VolumeGroupName[Path][/PoolLogicalVolume]
-V|--virtualsize VirtualSize}
--------------------------------------------------------------------------------
via: http://www.ehowstuff.com/4-lvcreate-command-examples-on-linux/
作者:[skytech][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
译者:[Vic020](https://github.com/Vic020)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,10 +1,10 @@
清理 Ubuntu 14.10,14.04,13.10 系统
如何清理你的 Ubuntu 14.10/14.04/13.10 系统
================================================================================
前面我们已经讨论了[如何清理 Ubuntu GNU/Linux 系统][1],这篇教程将在原有教程的基础上,增加对新的 Ubuntu 发行版本的支持,并介绍更多的工具。
假如你想清理你的 Ubuntu 主机,你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。
### 移除多余软件包 ###
## 移除多余软件包 ##
这又是一个内置功能,但这次我们不必使用新得立包管理软件(Synaptic Package Manager),而是在终端中达到目的。
@ -14,7 +14,7 @@
sudo apt-get autoclean
```
这便激活了包清除命令。这个命令所做的工作是: 自动清除那些当你安装或升级程序时系统所缓存的 `.deb` 包(即清除 `/var/cache/apt/archives` 目录,不过只清理过时的包)。如果需要使用 清除命令,只需在终端窗口中键入以下命令:
这便激活了包清除命令。这个命令所做的工作是: 自动清除那些当你安装或升级程序时系统所缓存的 `.deb` 包(即清除 `/var/cache/apt/archives` 目录,不过只清理过时的包)。如果需要使用清除命令,只需在终端窗口中键入以下命令:
```
sudo apt-get clean
@ -26,9 +26,9 @@ sudo apt-get clean
sudo apt-get autoremove
```
### 移除不需要的本地数据 ###
## 移除不需要的本地数据 ##
为达到此目的,我们需要安装 `localepurge` 软件,它将自动移除一些不需要的本地数据。这个软件是一个简单的脚本,它将从那些 不再需要的本地文件和本地联机手册( man pages ) 所占用的空间中回收磁盘空间。这个软件将在任何 apt 安装命令运行时 被自动激活。
为达到此目的,我们需要安装 `localepurge` 软件它将自动移除一些不需要的本地化数据LCTT 译注:即各种语言翻译)。这个软件是一个简单的脚本,它将从那些不再需要的本地文件和本地联机手册( man pages ) 所占用的空间中回收磁盘空间。这个软件将在任何 apt 安装命令运行时 被自动激活。
在 Ubuntu 中安装 `localepurge`
@ -36,7 +36,7 @@ sudo apt-get autoremove
sudo apt-get install localepurge
```
在通过 `apt-get install` 安装任意软件后, localepurge 将移除所有 不是使用你系统中所设定语言的 翻译文件和翻译的联机手册。
在通过 `apt-get install` 安装任意软件后, localepurge 将移除所有不是使用你系统中所设定语言的翻译文件和翻译的联机手册。
假如你想设置 `localepurge`,你需要编辑 `/ect/locale.nopurge` 文件。
@ -54,9 +54,9 @@ sudo apt-get install discus
> localepurge: Disk space freed in /usr/share/locale: 41860K
### 移除 孤包 ###
## 移除孤包 ##
假如你想移除孤包,你需要安装 `deborphan` 软件:
假如你想移除孤包,你需要安装 `deborphan` 软件:
在 Ubuntu 中安装 `deborphan` :
@ -72,11 +72,11 @@ sudo apt-get install deborphan
sudo deborphan | xargs sudo apt-get -y remove --purge
```
### 使用 GtkOrphan 来移除 孤包 ###
### 使用 GtkOrphan 来移除孤包 ###
`GtkOrphan` (一个针对 debian 系发行版本的 Perl/Gtk2 应用) 是一个分析 用户安装过程状态并查找孤立库文件的图形化工具, 它为 `deborphan` 提供了一个 GUI 前端,并具备移除软件包的功能。
`GtkOrphan` (一个针对 debian 系发行版本的 Perl/Gtk2 应用) 是一个分析用户安装过程状态并查找孤立库文件的图形化工具,它为 `deborphan` 提供了一个 GUI 前端,并具备移除软件包的功能。
### 在 Ubuntu 中安装 GtkOrphan ###
#### 在 Ubuntu 中安装 GtkOrphan ####
打开终端并运行如下命令:
@ -90,11 +90,11 @@ sudo apt-get install gtkorphan
### 使用 Wajig 移除孤包 ###
`Wajig`是 Debian 包管理系统中一个简单的软件包管理前端。它将 apt、apt-cache、 dpkg、 /etc/init.d 中的脚本等 通过一个单一命令集成在一起,它的设计初衷是 使用简单 和 为它所包含的函数提供丰富的文档。
`Wajig`是 Debian 包管理系统中一个简单的软件包管理前端。它将 apt、apt-cache、 dpkg、 /etc/init.d 中的脚本等 通过一个单一命令集成在一起,它的设计初衷是使用简单和为它的所有功能提供丰富的文档。
通过适当的 `sudo`配置,大多数(如果不是全部)的软件包安装和创建等任务可以通过 一个用户 shell 来完成。`Wajig` 也适用于一般的系统管理。另外,一个 Gnome GUI 命令 `gjig`也被囊括在这个软件包之中。
通过适当的 `sudo`配置,大多数(如果不是全部)的软件包安装和创建等任务可以通过一个用户 shell 来完成。`Wajig` 也适用于一般的系统管理。另外,一个 Gnome GUI 命令 `gjig`也被囊括在这个软件包之中。
### 在 Ubuntu 中安装 Wajig ###
#### 在 Ubuntu 中安装 Wajig ####
打开终端并运行如下命令:
@ -102,13 +102,13 @@ sudo apt-get install gtkorphan
sudo apt-get install wajig
```
### Debfoster --- 跟踪你在安装过程中的操作 ###
## Debfoster --- 跟踪你在安装过程中的操作 ##
debfoster 将会维护一个列有 被明确要安装的软件包的列表,但不包括那些作为某个软件的依赖而被安装的软件包。参数是完全可选的,你甚至可以使得 在 dpkg 和/或 apt-get 每次运行之后的每一秒内 激活 debfoster 。
debfoster 将会维护一个列有被明确要安装的软件包的列表,但不包括那些作为某个软件的依赖而被安装的软件包。参数是完全可选的,你甚至可以使得在 dpkg 和/或 apt-get 每次运行之后马上激活 debfoster 。
另外,你还可以在命令行中使用 debfoster 来安装或移除某些特定的软件包。那些后缀为 `---` 的软件包将会被移除,而没有后缀的软件包将会被安装。
假如一个新的软件包或 debfoster 注意到 作为某个软件包的依赖的软件包 是一个孤包,则 debfoster 将会询问你下一步如何操作。若你决定保留这个孤包, debfoster 将只会进行记录并继续安装过程;若你觉得这个软件包不足以引起你的兴趣,在 debfoster 询问这个问题后,它将移除这个软件包。进一步的,如果你的决定使得其他的软件包变为孤包,更多的提问将会接踵而来。
假如一个新的软件包或 debfoster 注意到作为某个软件包的依赖的软件包是一个孤包,则 debfoster 将会询问你下一步如何操作。若你决定保留这个孤包, debfoster 将只会进行记录并继续安装过程;若你觉得这个软件包不足以引起你的兴趣,在 debfoster 询问这个问题后,它将移除这个软件包。进一步的,如果你的决定使得其他的软件包变为孤包,更多的提问将会接踵而来。
### 在 Ubuntu 中安装 debfoster ###
@ -120,13 +120,13 @@ sudo apt-get install debfoster
### 使用 debfoster ###
为了创建一个 初始跟踪文件,可以使用如下命令:
为了创建一个初始跟踪文件,可以使用如下命令:
```
sudo debfoster -q
```
你总可以编辑 `/var/lib/debfoster/keepers` 文件,来定义那些 你想留在系统中的软件包。
你总可以编辑 `/var/lib/debfoster/keepers` 文件,来定义那些你想留在系统中的软件包。
为了编辑这个文件,可以键入:
@ -134,7 +134,7 @@ sudo debfoster -q
sudo vi /var/lib/debfoster/keepers
```
强制使 debfoster 去移除 所有没有被列在上面这个文件的软件包安装作为某些列在这个文件中的软件包的依赖, 它也会添加所有在这个列表中没有被安装的软件包。若要根据这个列表来执行相关操作,只需执行
强制使 debfoster 去移除所有没有被列在上面这个文件的软件包,或安装作为某些列在这个文件中的软件包的依赖,它也同时会添加所有在这个列表中没有被安装的软件包。若要根据这个列表来执行相关操作,只需执行
```
sudo debfoster -f
@ -146,9 +146,9 @@ sudo debfoster -f
sudo debfoster
```
### xdiskusage -- 查看你的硬盘空间都去哪儿了 ###
## xdiskusage -- 查看你的硬盘空间都去哪儿了 ##
图形化地展示磁盘使用情况的 du.xdiskusage 是一个用户友好型程序,它将为你展示你所有磁盘的使用情况。 它是在 Phillip C. Dykstra 所写的 “xdu” 程序的基础上设计的。一些改变使得它可以为你运行 “du”命令并显示磁盘的剩余空间并且假如你想清晰地了解你的磁盘空间都去哪儿了它还可以生成一个 PostScript 格式的名为 display.xdiskusage 的文件。
图形化地展示磁盘使用情况的 du。xdiskusage 是一个用户友好型的程序,它将为你展示你所有磁盘的使用情况。 它是在 Phillip C. Dykstra 所写的 “xdu” 程序的基础上设计的。做了一些修改以使得它可以为你运行 “du”命令并显示磁盘的剩余空间并且假如你想清晰地了解你的磁盘空间都去哪儿了它还可以生成一个 PostScript 格式的名为 display.xdiskusage 的文件。
### 在 Ubuntu 中安装 xdiskusage ###
@ -169,9 +169,9 @@ sudo xdiskusage
![](http://www.ubuntugeek.com/wp-content/uploads/2015/01/5.png)
### Bleachbit ###
## Bleachbit ##
BleachBit 能快速地释放磁盘空间并不知疲倦地保护你的隐私。它可以 释放缓存,删除 cookie清除 Internet 上网历史,粉碎临时文件,删除日志,丢弃你所不知道存在何处的垃圾。为 Linux 和 Windows 系统设计,它支持擦除清理数以千计的应用程序,如 Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari 等等。除了简单地删除文件BleachBit 还包括许多高级功能,诸如 粉碎文件以防止恢复,擦除磁盘空间 来隐藏被其他应用程序所删除文件的痕迹为火狐“除尘”使其速度更快等。比免费更好BleachBit 是一个开源软件。
BleachBit 能快速地释放磁盘空间并不知疲倦地保护你的隐私。它可以释放缓存,删除 cookie清除 Internet 上网历史,粉碎临时文件,删除日志,丢弃你所不知道存在何处的垃圾。为 Linux 和 Windows 系统设计,它支持擦除清理数以千计的应用程序,如 Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari 等等。除了简单地删除文件BleachBit 还包括许多高级功能诸如粉碎文件以防止恢复擦除磁盘空间来隐藏被其他应用程序所删除文件的痕迹为火狐“除尘”使其速度更快等。比免费更好BleachBit 是一个开源软件。
### 在 Ubuntu 中安装 Bleachbit ###
@ -195,10 +195,10 @@ via: http://www.ubuntugeek.com/cleaning-up-a-ubuntu-gnulinux-system-updated-with
作者:[ruchi][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.ubuntugeek.com/author/ubuntufix
[1]:http://www.ubuntugeek.com/cleaning-up-all-unnecessary-junk-files-in-ubuntu.html
[2]:http://www.ubuntugeek.com/www.ubuntugeek.com/install-ubuntu-tweak-on-ubuntu-14-10.html
[2]:http://linux.cn/article-3335-1.html

View File

@ -1,4 +1,4 @@
如何用slay杀掉指定用户的所有进程
slay干掉某个用户的所有进程
================================================================================
**slay** 是**Chris Ausbrooks**写的一款用于杀掉指定用户所有运行进程的命令行工具。slay对系统管理员而言在找出那些不应该运行进程的用户是很有用的。
@ -31,19 +31,19 @@ slay在大多数发行版中都有官方仓库。
~ sudo slay amitooo
slay: Done.
![](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/slay-amitoo-kpenee.png)
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/slay-amitoo-kpenee.png)
当slay运行完成后你应该就可以看到反馈了。
享受吧。
爽吧?!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/kill-processes-specific-user-slay/
作者:[ Enock Seth Nyamador][a]
作者:[Enock Seth Nyamador][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/) 荣誉推出

View File

@ -0,0 +1,107 @@
性能优化使用ramlog将日志文件转移到内存中
================================================================================
Ramlog 以系统守护进程的形式运行。在系统启动时它创建虚拟磁盘ramdisk将 /var/log 下的文件复制到虚拟磁盘中,同时把虚拟磁盘挂载为/var/log。然后所有的日志就会更新到虚拟磁盘上。而当 ramlog 重启或停止时,需要记录到硬盘上的日志就会保留在目录/var/log.hdd中。而关机的时候ramdisk上的日志文件会重新保存到硬盘上以确保日志一致性。Ramlog 2.x默认使用tmpfs文件系统同时也可以支持ramfs和内核ramdisk。使用rsync译注Linux数据镜像备份工具这个工具来同步日志。
注意如果突然断电或者内核崩溃kernel panic没有保存进硬盘的日志将会丢失。
如果你拥有够多的可用内存而又想把日志放进虚拟磁盘就安装ramlog吧。它是笔记本用户、带有UPS的系统或是直接在flash中运行的系统的优良选择可以节省日志的写入时间。
Ramlog的运行机制以及步骤如下
1. Ramlog 由第一个守护进程(这取决于你所安装过的其它守护进程)启动。
2. 然后创建目录/var/log.hdd并将其硬链至/var/log。
3. 如果使用的是tmpfs默认或者ramfs 文件系统,将其挂载到/var/log上。
4. 而如果使用的是内核ramdiskramdisk会在/dev/ram9中创建并将其挂载至/var/log。默认情况下ramlog会占用所有ramdisk的内存其大小由内核参数"ramdisk_size"指定。
5. 接着其它的守护进程被启动并在ramdisk中更新日志。Logrotate译注Linux日志轮替工具和 ramdisk 配合的也很好。
6. 重启默认一天一次ramlog时目录/var/log.hdd将借助rsync与/var/log保持同步。日志自动保存的频率可以通过cron译注Linux例行性工作调度来控制。默认情况下ramlog 的调度任务放置在目录/etc/cron.daily下。
7. 系统关机时ramlog在最后一个守护进程关闭之前关闭。
8. 在ramlog关闭期间/var/log.hdd中的文件将被同步至/var/log接着/var/log和/var/log.hdd都被卸载然后删除空目录/var/log.hdd。
**注意:- 此文仅面向高级用户**
### 在Ubuntu中安装Ramlog ###
首先需要用以下命令,从[这里][1]下载.deb安装包
wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb
下载ramlog\_2.0.0\_all.deb安装包完毕使用以下命令进行安装
sudo dpkg -i ramlog_2.0.0_all.deb
这一步会完成整个安装,现在你需要运行以下命令:
sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6 .
现在在更新sysklogd的初始化顺序使之能在ramlog停止运行前正确关闭
sudo update-rc.d -f sysklogd remove
sudo update-rc.d sysklogd start 10 2 3 4 5 . stop 90 0 1 6 .
然后重启系统:
sudo reboot
系统重启完毕,运行'ramlog getlogsize'来获取你当前的/var/log的空间大小。在此基础之上多分配40%的空间确保ramdisk有足够的空间这整个都将作为ramdisk的空间大小
编辑引导配置文件,如/etc/grub.conf,、/boot/grub/menu.lst 或/etc/lilo.conf译注具体哪个配置文件视不同引导加载程序而定给你的当前内核的新增选项 'ramdisk_size=xxx' 其中xxx是ramdisk的空间大小。
### 配置Ramlog ###
基于deb的系统中Ramlog的配置文件位于/etc/default/ramlog你可以在该配置文件中设置以下变量
RAMDISKTYPE=0
# 取值:
# 0 -- tmpfs (可被交换到交换分区) -- 默认
# 1 -- ramfs (旧内核不能设置最大空间大小,
# 不能被交换到交换分区,和 SELinux 不兼容)
# 2 -- 老式的内核 ramdisk
TMPFS_RAMFS_SIZE=
# 可以用于 tmpfs 或 ramfs 的最大内存大小
# 这个值可以是百分比或数值(单位是 Mb例如
# TMPFS_RAMFS_SIZE=40%
# TMPFS_RAMFS_SIZE=100m
# 该值为空表示 tmpfs/ramfs 的大小是全部内存的 50%
# 更多选项可以参考 man mount' 中的Mount options for tmpfs' 一节
# 补充在较新的内核中ramfs 支持大小限制,
# 虽然 man 中说没有这个挂载选项)
# 该选项仅用于 RAMDISKTYPE=0 或 1 时
KERNEL_RAMDISK_SIZE=MAX
#以 kb 为单位指定的内核 ramdisk 大小,或者使用 MAX 来使用整个 ramdisk。
#该选项仅用于 RAMDISKTYPE=2 时
LOGGING=1
# 0=关闭, 1=打开 。记录自身的日志到 /var/log/ramdisk
LOGNAME=ramlog
# 自身的日志文件名 (用于 LOGGING=1时
VERBOSE=1
# 0=关闭, 1=打开 (设置为 1时启动或停止失败时会调用 teststartstop 将细节
# 写到日志中)
### 在Ubuntu中卸载ramlog ###
打开终端运行以下命令:
sudo dpkg -P ramlog
注意如果ramlog卸载之前仍在运行需要重启系统完成整个卸载工作。
--------------------------------------------------------------------------------
via: http://www.ubuntugeek.com/improve-system-performance-by-moving-your-log-files-to-ram-using-ramlog.html
作者:[ruchi][a]
译者:[soooogreen](https://github.com/soooogreen)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.ubuntugeek.com/author/ubuntufix
[1]:http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

View File

@ -1,14 +1,14 @@
LinSSID - 一款Linux下的图形化Wi-Fi扫描器
LinSSID一款Linux下的图形化Wi-Fi扫描器
================================================================================
### 介绍 ###
如你所知**LinSSID** 是一款可以用于寻找可用无线网络的图形化软件。它完全开源用C++写成使用了Linux无线工具、Qt5、Qwt6.1,它在外观和功能上与**Inssider** MS Windows相近。
你可能知道**LinSSID** 是一款可以用于寻找可用无线网络的图形化软件。它完全开源用C++写成使用了Linux wireless tools、Qt5、Qwt6.1,它在外观和功能上与**Inssider** MS Windows 下的)相近。
### 安装 ###
你可以使用源码安装如果你使用的是基于DEB的系统比如Ubuntu和LinuxMint等等你也可以使用PPA安装。
你可用从[this link][1]这个链接下载并安装LinSSID。
你可用从[这个][1]下载并安装LinSSID。
这里我门将使用PPA来安装并测试这个软件。
@ -22,22 +22,21 @@ LinSSID - 一款Linux下的图形化Wi-Fi扫描器
安装完成之后你可以从菜单或者unity中启动。
将被要求输入管理员密码。
需要输入管理员密码。
![Password required for iwlist scan_001](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/Password-required-for-iwlist-scan_001.png)
![Password required for iwlist scan_001](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/Password-required-for-iwlist-scan_001.png)
这就是LinSSID的界面。
![LinSSID_002](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/LinSSID_002.png)
![LinSSID_002](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/LinSSID_002.png)
现在选择你想要连接无线网络的网卡比如这里是wlan0.点击Play按钮来搜寻wi-fi网络列表。
现在选择你想要连接无线网络的网卡比如这里是wlan0点击Play按钮来搜寻wi-fi网络列表。
几秒钟之后LinSSID就会显示wi-fi网络了。
![LinSSID_003](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/LinSSID_003.png)
如你在上面的截屏中所见LinSSID显示SSID名、MAC ID、通道、隐私、加密方式、信号和协议等等信息。当然你可以让LinSSID显示更多的选项比如安全、带宽等等。要显示这些进入**View**菜单并选择需要的选项。同样它显示了不同通道中的信号随着时间信号强度的变化。最后它可以工作在2.4Ghz和5Ghz通道上。
![LinSSID_003](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/LinSSID_003.png)
如你在上面的截屏中所见LinSSID显示SSID名、MAC ID、通道、隐私、加密方式、信号和协议等等信息。当然你可以让LinSSID显示更多的选项比如安全设置、带宽等等。要显示这些进入**View**菜单并选择需要的选项。同样它显示了不同的通道中的信号随着时间信号强度的变化。最后它可以工作在2.4Ghz和5Ghz通道上。
就是这样。希望这个工具对你有用。
@ -53,7 +52,7 @@ via: http://www.unixmen.com/linssid-graphical-wi-fi-scanner-linux/
作者:[SK][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/) 荣誉推出

View File

@ -0,0 +1,31 @@
Windows 10 VS Linux
================================================================================
![](https://farm4.staticflickr.com/3852/14863156322_e4edbae70e_t.jpg)
前阵子 Windows 10 好像占据了绝大部分头条甚至在一些Linux圈里也是一样。最具代表性的是 betanews.com 的 Brian Fagioli 说 Windows 10 已经为 Linux 桌面系统敲响了丧钟Microsoft 如今宣布将为忠实的 Windows 用户免费提供 Windows 10Steven J. Vaughan-Nichols 说这是一个最新的开源公司,然后 Matt Hartley 比较了 Windows 10 和 UbuntuJesse Smith 从 Linux 用户的视角对 Windows 10 做出评估。
**Windows 10**,在 Microsoft [声明][1]说将免费提供给 Windows 7 及以上用户,这件事成为如今大家闲聊的热门话题。在 Linuxland 这里也没有被忽视。betanews.com 的 Brian Fagioli一个自封的 Linux 粉丝,如今这样说,“ Windows 10 把门彻底关上了。Linux 桌面元年将永远不会到来,歇歇吧。”[Fagioli解释][2]说 Microsoft 倾听了用户的抱怨而且并不只是记录一下,还更好地解决了这些问题。他说 Linux 错失了由 Windows 8 不受欢迎以及巨大失败带来的机会。然后他总结,拜 Windows 10 所赐,处于边缘地带的我们只能接受一个“破碎的梦”。
不过,来自闻名的 Distrowatch.com 的 Jesse Smith 说 Microsoft 并没有提供一个很明显的下载方式,不过确实可行而且它也升级了。安装程序非常简单,除了分区功能很有限甚至有点吓人。在最终启动进入 Windows 10 后Smith说界面布局很“松散”没有 Win7 里被很多人讨厌的大量分散注意的元素开始菜单又回来了取消了欢迎屏幕。据Smith所说还有一个很类似 Ubuntu 和 Android 的新的包管理程序,不过需要 Microsoft 在线账户才可以使用。[Smith的总结][3]里有这样一条,“感觉 Windows 10 像是 Android 的早期 beta 版本,一个设计成时刻保持在线的消费者操作系统。而不像是一个我能用来完成工作的操作系统。”
**S**mith的[完整文章][4]里比较了 Windows 10 和 Linux 的大量细节,不过 Matt Hartley 发表了一份实在的 Windows 10 vs Linux 的报告。[他说][5]两者的安装程序都很直观和简单Windows 的双启动仍然没那么容易Windows 默认提供了加密而 Ubuntu 只提供了配置选项。在桌面方面 Hartley 说 Windows 10 “纠结地丢弃了它 Windows 8 的根。”他觉得 Windows 10 的 Windows 商店比 Ubuntu 的漂亮很多但是实在不喜欢通过“一切都是卡片”的方式来查看新安装的应用。Hartley这样总结“首先是它将为大量 Windows 用户提供免费升级。这意味着大大降低了进入和升级门槛。第二,看起来 Microsoft 这次真的在全力以赴地倾听他们的用户需求了。”
**S**teven J. Vaughan-Nichols 如今声称 Microsoft 是最新的开源公司;不仅因为它将发布 Windows 10 的免费升级,而且 Microsoft 正在从一个软件公司转型为一个软件服务公司。然后,据 Vaughan-Nichols 所说Microsoft 需要开源来完成这次转型。从Novell/SUSE开始他们已经致力于这一块儿好多年了。不仅如此他们也发布过开源软件不管什么目的。[Vaughan-Nichols总结][6]“很多人不这么认为但是Microsoft——就是Microsoft——已经成为一家开源公司。”
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/windows-10-versus-linux
作者:[Susan Linton][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://ostatic.com/member/susan-linton
[1]:https://news.google.com/news/section?q=microsoft+windows+10+free&ie=UTF-8&oe=UTF-8
[2]:http://betanews.com/2015/01/25/windows-10-is-the-final-nail-in-the-coffin-for-the-linux-desktop/
[3]:http://blowingupbits.com/2015/01/an-outsiders-perspective-on-windows-10-preview/
[4]:http://blowingupbits.com/2015/01/an-outsiders-perspective-on-windows-10-preview/
[5]:http://www.datamation.com/open-source/windows-vs-linux-the-2015-version-1.html
[6]:http://www.zdnet.com/article/microsoft-the-open-source-company/

View File

@ -1,14 +1,14 @@
如何用wifi-linux检测AP信号强度
================================================================================
作为一名python极客我喜欢在github上发现新的针对linux用户的python工具。今天我发现了一款用python写成的用于检测AP信号强度的工具。
作为一名python极客我喜欢在github上挖掘新的用于linux用户的python工具。今天我发现了一款用python写成的用于检测AP信号强度的工具wifi-linux
我已经在**wifi-linux**上实验了大约两个小时,并且它工作的很好但是我希望在不久的将来在作者那里看到一些单元测试,因为命令**plot**无法在我的电脑上工作,并且会导致一些问题。
### 什么是wifi-linux ###
根据github作者账号的官方的offical readme.md文件 wifi-linux是一个简单的收集你周围AP的RSSI信息的python脚本它还会画出RSSI活动图形。
根据github作者账号的官方的 readme.md文件 wifi-linux是一个简单的收集你周围AP的RSSI信息的python脚本它还会画出RSSI活动图形。
这同样可以用命令plot生成但是不幸的是这对我不可行。wifi-linux支持其他的命令比如**bp** 来加入一个断点,**print**会打印一些统计和**启动开关**。
作者说可以在该程序中可以使用plot命令绘制RSSI 活动图形但是不幸的是这对我不可行。wifi-linux支持其他的命令,比如**bp** 来加入一个断点,**print**会打印一些统计和**启动开关**。
wifi-linux程序有下面这些依赖
@ -19,15 +19,15 @@ wifi-linux程序有下面这些依赖
### 安装wifi-linux需要的包 ###
尝试使用python包管理工具pip安装python-dbus但是失败了因为pip会查找setup.py但是python-dbus中没有。因此下面的命令不工作。
我尝试使用python包管理工具pip安装python-dbus但是失败了因为pip会查找setup.py但是python-dbus中没有。因此下面的命令不工作。
pip install dbus-python
你可以试一下但是很有可能会在终端中下面的错误。
你可以试一下但是很有可能会在终端中出现下面的错误。
IOError: [Errno 2] No such file or directory: '/tmp/pip_build_oltjano/dbus-python/setup.py'
我该怎么解决这个问题呢很简单用下面命令中的系统包管理工具安装Python DBUS。
我该怎么解决这个问题呢?很简单,用下面命令中的系统包管理工具安装Python DBUS。
sudo apt-get install python-dbus
@ -69,7 +69,7 @@ wifi-linux程序有下面这些依赖
![the bp command in wifi-linux](http://blog.linoxide.com/wp-content/uploads/2015/01/wifi-linux2.png)
命令**print**可以用于显示你机器的状态。下面就是一个例子。
命令**print**可以用于在终端上显示你机器的状态。下面就是一个例子。
![the print command](http://blog.linoxide.com/wp-content/uploads/2015/01/wifi-linux3.png)
@ -79,7 +79,7 @@ via: http://linoxide.com/linux-how-to/monitor-access-point-signal-strength-wifi-
作者:[Oltjano Terpollari][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/) 荣誉推出

View File

@ -2,11 +2,11 @@
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Plasma_Ubuntu_1410.jpg)
[KDE][1] Plasma 5.2已经[发布][2]在本篇中我们将看到如何在Ubuntu 14.10 上安装KDE Plasma 5.2。
[KDE][1] Plasma 5.2已经[发布][2]一段时间了在本篇中我们将看到如何在Ubuntu 14.10 上安装KDE Plasma 5.2。
Ubuntu的默认桌面环境Unity很漂亮还有很多特性。但是如果你问任何有经验的Linux用户关于桌面自定义他的回答将是KDE。KDE在定制上是王者并且它得到流行大概是由于Ubuntu有官方的KDE版本也就是Kubuntu[3]。
Ubuntu的默认桌面环境Unity很漂亮还有很多特性但是如果你问任何有经验的Linux用户关于桌面定制能力他的回答将是KDE。KDE在定制上是王者并且它得到流行大概是由于Ubuntu有官方的KDE版本也就是Kubuntu[3]。
对于Ubuntu或者任何其他的Linux系统而言)的一个好消息是它没有绑定任何特定的桌面环境。你可以安装额外的桌面环境并且可以在不同的桌面环境间切换。早先我们已经了解了桌面环境的安装。
对于Ubuntu或者任何其他的Linux系统)而言的一个好消息是它们没有绑定在任何特定的桌面环境上,你可以安装额外的桌面环境并在不同的桌面环境间切换。早先我们已经了解如下的桌面环境的安装。
- [如何在Ubuntu 14.04中安装Mate桌面][4]
- [如何在Ubuntu 14.04中安装Cinnamon桌面][5]
@ -17,25 +17,24 @@ Ubuntu的默认桌面环境Unity很漂亮还有很多特性。但是如果你问
### 如何在Ubuntu 14.10 上安装KDE Plasma 5.2 ###
在Ubuntu 14.10上安装Plasma之前你要知道这会下载大概1GB的内容。因此在安装KDE之前要考虑速度和数据包。我们下载所使用的PPA是KDEs社区官方提供的。在终端中使用下面的命令:
在Ubuntu 14.10上安装Plasma之前你要知道这会下载大概1GB的内容。因此在安装KDE之前要考虑速度和数据存放空间。我们下载所使用的PPA是KDE社区官方提供的。在终端中使用下面的命令:
sudo apt-add-repository ppa:kubuntu-ppa/next-backports
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install kubuntu-plasma5-desktop plasma-workspace-wallpapers
During the installation, it will as you to choose the default display manager. I chose the default LightDM. Once installed, restart the system. At the login, click on the Ubuntu symbol beside the login field. In here, select Plasma.
在安装中我们要选择默认的显示管理器。我选择的是默认的LightDM。安装完成后重启系统。在登录时点击登录区域旁边的Ubuntu图标。这里选择Plasma。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Select_Plasma_KDE_Ubuntu.jpeg)
你现在就登录到KDE Plasma了。这里有一个KDE Plasma 5.2在Ubuntu 14.10下的截图
你现在就登录到KDE Plasma了。这里有一个KDE Plasma 5.2在Ubuntu 14.10下的截图
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/KDE_Plasma_Desktop.jpeg)
### 从Ubuntu卸载KDE Plasma ###
### 从Ubuntu卸载KDE Plasma ###
如果你想要还原更改使用下面的命令从Ubuntu 14.10中卸载KDE Plasma。
如果你想要卸载它使用下面的命令从Ubuntu 14.10中卸载KDE Plasma。
sudo apt-get install ppa-purge
sudo apt-get remove kubuntu-plasma5-desktop
@ -47,7 +46,7 @@ via: http://itsfoss.com/install-kde-plasma-ubuntu-1410/
作者:[Abhishek][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/) 荣誉推出

View File

@ -2,7 +2,7 @@
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/Use_Weather_Conky_Linux.jpeg)
智能手机都拥有一些平滑融入手机外观的天气小插件,幸亏有了 Flair Weather Conky你便可以**在你的 Linux 桌面中拥有像智能手机一样的天气外观**。我们将使用一个 GUI 工具[Conky Manager 在 Linux 中轻松地管理 Conky][1]。那就先让我们看看如何在 Ubuntu 14.1014.04、Linux Mint 17 及其他 Linux 发行版本中安装 Conky Manager 吧。
智能手机都拥有一些平滑融入手机外观的天气小插件,现在幸亏有了 Flair Weather Conky你便可以**在你的 Linux 桌面中拥有像智能手机一样的天气外观**。我们将使用一个 GUI 工具[Conky Manager 在 Linux 中轻松地管理 Conky][1]。那就先让我们看看如何在 Ubuntu 14.1014.04、Linux Mint 17 及其他 Linux 发行版本中安装 Conky Manager 吧。
### 安装 Conky Manager ###
@ -16,7 +16,7 @@
### 确保 `curl` 已被安装 ###
请确保 [curl][2] 已被安装。(如果没有安装它,)可以使用下面的命令来安装:
请确保 [curl][2] 已被安装。如果没有安装它,可以使用下面的命令来安装:
sudo apt-get install curl
@ -30,15 +30,15 @@
#### 步骤 1: ####
同你在 Ubuntu 14.04 中安装主题一样,在你的家目录中应该有一个 `.conky` 目录。假如你使用命令行,则不需要让我来告诉你如何找到这个目录。对于新手,请用文件管理器切换到你的家目录下,并按 `Ctrl+H` 来 [在 Ubuntu 中显示隐藏文件][4]。在这里查找 `.conky` 文件夹,假如没有这个文件夹,则创建一个。
同你在 Ubuntu 14.04 中安装主题一样,在你的家目录中应该有一个 `.conky` 目录。假如你使用命令行,我想我不需要告诉你如何找到这个目录。对于新手,请用文件管理器切换到你的家目录下,并按 `Ctrl+H` 来 [在 Ubuntu 中显示隐藏文件][4]。在这里查找 `.conky` 文件夹,假如没有这个文件夹,则创建一个。
#### 步骤 2: ####
`.conky` 目录中,解压下载到的 Flair Weather 文件。请注意在默认情况下它会自动解压到一个名为 `.conky` 目录。所以请进入这个目录,将 Flair Weather 文件夹从中取出,然后将它粘贴到真正的 `.conky` 目录下。
`.conky` 目录中,解压下载到的 Flair Weather 文件。请注意在默认情况下它会自动解压到一个名为 `.conky` 目录。所以请进入这个目录,将其中的 Flair Weather 文件夹从中取出,然后将它粘贴到真正的 `.conky` 目录下。
#### 步骤 3: ####
Flair Weather 使用 Yahoo 的天气服务,但它不能自动地识别你的位置。你需要手动地编辑它。到[Yahoo 天气][5] 网页,然后通过键入你的城市/Pin 码来得到你所在城市的 位置 ID号。你可以从网页地址栏中取得位置 ID 号。
Flair Weather 使用 Yahoo 的天气服务,但它不能自动地识别你的位置。你需要手动地编辑它。到[Yahoo 天气][5] 网页,然后通过键入你的城市/Pin 码来得到你所在城市的位置 ID号。你可以从网页地址栏中取得位置 ID 号。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/Yahoo_Weather_Location_Code.jpeg)
@ -46,7 +46,7 @@ Flair Weather 使用 Yahoo 的天气服务,但它不能自动地识别你的
打开 Conky Manager它应该能够读取新安装的 Conky 脚本。这里有两款样式可用,黑色主题或亮丽主题。你可以选择你偏爱的那一款。当你选择后,你就可以在桌面上看到 conky 的显示了。
在 Flair Weather 中,默认位置被设定为 Melbourne。你必须手动编辑 conky 文件。
在 Flair Weather 中,默认位置被设定为 Melbourne。你必须手动编辑 conky 文件来修改
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/Using_Weather_Conky_Ubuntu.jpeg)
@ -56,44 +56,49 @@ Flair Weather 使用 Yahoo 的天气服务,但它不能自动地识别你的
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/Edit_Conky.jpeg)
在上面查找的相同位置,假如你将 C 替换为 F,则温度的单位将从摄氏温标改为华氏温标 。不要忘了重启 Conky 来查看已经做出的修改。
在上面查找的相同位置,假如你将`u=c` 替换为`u=f`,则温度的单位将从摄氏温标改为华氏温标 。不要忘了重启 Conky 来查看已经做出的修改。
#### 可能的故障排除 ####
(注:这一小节在 md 文件中没有,原文新添加的。)
在 Ubuntu 14.04 和 Ubuntu 14.10 中,假如你发现 Conky 展示的时间有重叠现象,则请编辑 conky 脚本。查找下面的这些行:
```
## cairo-compmgr
own_window_type override
own_window_argb_visual no
```
然后将内容更换为下面的这些行:
```
## cairo-compmgr
own_window_type dock
own_window_argb_visual no
```
保存更改并重启 conky。这就应该解决了这个问题。感谢 Jesse(这个 Conky 脚本的开发者)给我们提供了这个解决方法和为其他相关问题给予的支持。
#### 尝试尝试 ####
### 尝试一下 ###
在这篇文章中,我们实际上学到了不少东西。我们见证了如何轻松地使用任何 Conky 脚本,如何编辑脚本以及如何使用 Conky Manager 来达到不同的目的。我希望这些对你有用。
需要留心的是Ubuntu 14.10 用户可能会看到重叠的时间数字。请在开发者 Jesse 绝妙的[Google + 主页][6] 中报告任何相关的问题。(注:这句在 md 文件中的内容与原文有差异,我按照原文翻译,并加上了 链接)
需要留心的是Ubuntu 14.10 用户可能会看到重叠的时间数字。请在开发者 Jesse 绝妙的[Google + 主页][6] 中报告任何相关的问题。
我已经向你展示了在我的系统上 Flair Weather conky 外观的截图。现在是该你尝试它并炫耀你的桌面的时间了。
我已经向你展示了在我的系统上 Flair Weather conky 外观的截图。现在该你尝试它并炫耀你的桌面的时间了。
--------------------------------------------------------------------------------
via: http://itsfoss.com/weather-conky-linux/
作者:[Abhishek][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/Abhishek/
[1]:http://itsfoss.com/conky-gui-ubuntu-1304/
[1]:http://www.linux.cn/article-3434-1.html
[2]:http://www.computerhope.com/unix/curl.htm
[3]:http://speedracker.deviantart.com/art/Flair-Weather-Conky-Made-for-Conky-Manager-510130311
[4]:http://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/

View File

@ -1,10 +1,10 @@
如何使用 backupninja 来备份一个 Debian 系统
如何使用 backupninja 来备份 Debian 系统
================================================================================
面临灾难时的小心谨慎或体验可以教会每一个系统管理采取频繁的系统备份的重要性。你可以通过编写存在已久的管用的 shell 脚本,或使用一个(或多个) 适合这项工作的备份工具来完成备份任务。因此,当你要实施一个备份解决方案时,你了解的备份工具越多,你做出的决策就会越明智。
小心谨慎或灾难体验会让每一个系统管理都认识到频繁的系统备份的重要性。你可以通过编写管用的旧式 shell 脚本,或使用一个(或几个)适合这项工作的备份工具来完成备份任务。因此,当你要实施一个备份解决方案时,你了解的备份工具越多,你做出的决策就会越明智。
在这篇文章中,我们将为你介绍 [backupninja][2] ,一个轻量且易于配置的系统备份工具。在诸如 **rdiff-backup**, **duplicity**, **mysqlhotcopy****mysqldump** 等程序的帮助下, Backupninja 可以提供常用的备份功能,如执行远程的、安全的和增量式的文件系统备份,加密备份以及 MySQL/MariaDB 数据库备份。你可以选择性地开启使用 email 进行状态报告功能,也可以对一般的硬件和系统的信息进行备份。 backupninja 的一个关键功能是它拥有一个内建的基于控制台的向导程序(被称为 **ninjahelper**),而后者允许你为不同的备份情景轻松地创建配置文件。
在这篇文章中,我们将为你介绍 [backupninja][2] 这是一个轻量且易于配置的系统备份工具。在诸如 **rdiff-backup**, **duplicity**, **mysqlhotcopy****mysqldump** 等程序的帮助下, Backupninja 可以提供常用的备份功能,如执行远程的、安全的和增量式的文件系统备份,加密备份以及 MySQL/MariaDB 数据库备份。你可以选择性地开启使用 Email 状态报告功能,也可以对一般的硬件和系统的信息进行备份。 backupninja 的一个关键功能是它拥有一个内建的基于控制台的向导程序(被称为 **ninjahelper**,而后者允许你为不同的备份情景轻松地创建配置文件。
如果非要说的话backupninja 的缺点是:为了充分使用其所有的功能,它要求一些其他“助手”程序已经被安装在了计算机中。尽管 backupninja 有针对基于 Red Hat(红帽) 的发行版本的 RPM 安装包,但 backupninja 针对 Debian 和它的衍生发行版本的依赖进行了优化。所以不建议在基于 Red Hat 的系统上尝试 backupninja 。
如果非要说的话backupninja 的缺点是:为了充分使用其所有的功能,它要求安装一些其他“助手”程序。尽管 backupninja 有针对基于 Red Hat红帽的发行版本的 RPM 安装包,但 backupninja 针对 Debian 及其衍生发行版本的依赖进行了优化。所以不建议在基于 Red Hat 的系统上尝试 backupninja 。
在这篇教程中,我们将介绍如何在基于 Debian 的发行版本上安装 backupninja 。
@ -16,17 +16,17 @@
在安装的过程中,有几个文件和目录将被创建:
- **/usr/sbin/backupninja** 是 bash shell 主脚本;
- **/etc/cron.d/backupninja** 默认情况下,构建 cron 任务来每隔一个小时运行上面的主脚本;
- **/etc/logrotate.d/backupninja** 处理由 backupninja 程序产生的日志;(注:我不知道这里的 rotate 该如何翻译)
- **/usr/sbin/backupninja** 是 bash shell 主脚本;
- **/etc/cron.d/backupninja** 默认情况下,设置 cron 任务来每隔一个小时运行上面的主脚本;
- **/etc/logrotate.d/backupninja** 截断由 backupninja 程序产生的日志;
- **/etc/backup.d/** 是备份操作的配置文件驻留的目录;
- **/etc/backupninja.conf** 是包含一般选项的主配置文件。这个文件带有良好的注释且详细解释了每个选项的含义;
- **/usr/share/backupninja** 是那些 backupninja 使用的脚本所处的目录。这些脚本文件负责执行实际的工作。在这个目录中,你还可以找到 `.helper` 文件,它们可以被用来配置和设定 ninjahelper 的菜单;
- **/usr/share/doc/backupninja/examples** 含有操作配置文件(即通过 ninjahelper 产生的文件)的模板。
- **/usr/share/backupninja** 是那些 backupninja 使用的脚本所处的目录。这些脚本文件负责执行实际的工作。在这个目录中,你还可以找到 `.helper` 文件,它们可以被用来配置和设定 ninjahelper 的菜单;
- **/usr/share/doc/backupninja/examples** 含有操作配置文件(即通过 ninjahelper 产生的文件)的模板。
### 首次运行 Ninjahelper ###
当我们尝试启动 ninjahelper 时,我们可以看到一个内部依赖可能会被需要。假如系统进行了提示,请输入 “yes” 并敲下回车键来安装 dialog(一个用于从 shell 脚本中显示友好对话框的工具)
当我们尝试启动 ninjahelper 时,我们可以看到可能需要一个内部依赖程序。假如系统进行了提示,请输入 “yes” 并敲下回车键来安装 dialog一个用于从 shell 脚本中显示友好对话框的工具)
![](https://farm8.staticflickr.com/7537/15700597667_6618fbc142_z.jpg)
@ -44,11 +44,11 @@
![](https://farm8.staticflickr.com/7508/15700315139_4c6117ef32_z.jpg)
接下来的一步需要你选取相关条目来作为此次备份任务的一部分。前四个条目已经默认被选上了,但你可以通过按空格键来撤消选择。
接下来的一步需要你选取相关条目来作为此次备份任务的一部分。前四个条目已经默认被选上了,但你可以通过在条目上按空格键来撤消选择。
![](https://farm8.staticflickr.com/7507/15699051870_65abaf52e5_z.jpg)
一旦你完成了上面的步骤,按 OK 选项来继续。接着你将能够选择 是愿意使用默认的配置文件(/etc/backup.d/10.sys)来完成这次备份操作,还是创建一个新的配置文件。若为后者,一个含有与默认配置文件内容相同的文件将会在相同的目录下被创建,但它被命名为 11.sys后续的备份操作将会创建类似的文件(注:只不过命名的序号不同)。需要说明的是一旦这个新的配置文件被创建,你便可以使用你喜爱的文本编辑器来编辑该文件。
一旦你完成了上面的步骤,按 OK 选项来继续。接着你将能够选择是愿意使用默认的配置文件(/etc/backup.d/10.sys)来完成这次备份操作,还是创建一个新的配置文件。若为后者,一个含有与默认配置文件内容相同的文件将会在相同的目录下被创建,但它被命名为 11.sys后续的备份操作将会创建类似的文件(注:只不过命名的序号不同)。需要说明的是一旦这个新的配置文件被创建,你便可以使用你喜爱的文本编辑器来编辑该文件。
![](https://farm9.staticflickr.com/8654/15885715072_1e6126e929_o.png)
@ -56,7 +56,7 @@
正如你最有可能知道的那样, rsync 被广泛地用于通过网络同步文件或文件夹。在接下来的例子中,我们将讨论一个使用硬链接来为一个远程目录做增量式拉取备份的方法,它被用来保存历史数据以及在我们本地的文件服务器中恢复这些历史数据。这个方法将帮助我们节省空间并增强位于服务器端的安全性。
**步骤 1**:编写一个位于 `/etc/backup.d`的带有如下内容的自定义脚本,并将它的权限设置为 600 。需要说明的是,除了一般的配置文件,这个目录可能还包含当 backupninja 执行时你想运行的一些脚本文件,它们可以发挥出位于主配置文件中的变量的优势。
**步骤 1**:编写一个带有如下内容的自定义脚本,放在 `/etc/backup.d`,并将它的权限设置为 600 。需要说明的是,除了一般的配置文件,这个目录可能还包含当 backupninja 执行时你想运行的一些脚本文件,它们可以发挥出位于主配置文件中的变量的优势。
# REMOTE USER
user=root
@ -72,36 +72,37 @@
# RSYNC
rsync -av --delete --recursive --link-dest=$localdirold $user@$host:$remotedir $localdir
在上面的配置中, rsync 的 --link-dest 选项的作用是为位于 $localdir-old 目录中那些没有改变的文件(包含所有属性) 硬链接到目标目录 ($localdir)
在上面的配置中, rsync 的 --link-dest 选项的作用是为位于 $localdir-old 目录中那些没有改变的文件(包含所有属性) 硬链接到目标目录$localdir
**步骤 2**:在 backupninja 第一次运行之前,上层目录(这个例子中指的是 /home/gacanepa) 是空的。第一次我们执行下面的命令:
**步骤 2**:在 backupninja 第一次运行之前,上层目录(这个例子中指的是 /home/gacanepa 是空的。第一次我们执行下面的命令:
# backupninja -n
backup.0 目录就被创建了,并在接下来的过程中,它的名称将会被更改为 backup.1。
当我们第二次运行 backupninja 时, backup.0 将会被重新创建,而 backup.1 被保留
当我们第二次运行 backupninja 时, backup.0 将会被重新创建,而 backup.1 保持不动
![](https://farm8.staticflickr.com/7581/15700597497_0e0cd89ab9.jpg)
**步骤 3** 确保 backup.1 里面的文件硬链接到 backup.0 里的文件,我们可以通过比较文件的 inode( i 节点) 数和目录的大小来达到此目的。
**步骤 3** 确保 backup.1 里面的文件硬链接到 backup.0 里的文件,我们可以通过比较文件的 inodei 节点)数和目录的大小来达到此目的。
![](https://farm9.staticflickr.com/8636/15700315029_e922ce771b.jpg)
### 总结 ###
Backupninja 不仅是一个经典的备份工具,它也是一个易于配置的实用程序。你可以通过编写你自己的 handler(注:我不知道该如何翻译 handler 这个单词) 来运行 backupninja 并将它们作为位于 `/etc.backup.d` 的个人配置文件。甚至你还可以为 ninjahelper 编写助手程序,以达到将它们包括在 ninjahelper 的主界面上。
Backupninja 不仅是一个经典的备份工具,它也是一个易于配置的实用程序。你可以通过编写你自己的控制脚本,用放在 `/etc.backup.d` 中的不同的配置文件来运行 backupninja 。甚至你还可以为 ninjahelper 编写助手程序,并将其包括在 ninjahelper 的主界面上。
例如,假如你在 `/usr/share/backupninja`目录中创建了一个名为 modulo 的 handler,它将自动运行那些位于 `/etc/backup.d` 目录中以 .xmodulo 为后缀的每个文件。如果你决定添加你的 xmodulo handler 到 ninjahelper 中, 你可以编写相应的助手程序,即 xmodulo.helper 。另外,假如你想 让 backupninja 运行任意一个脚本,只需把它添加到 `/etc/backup.d` 目录中,这样你的目的便可以达到了。
例如,假如你在 `/usr/share/backupninja`目录中创建了一个名为 xmodulo 的控制脚本,它将自动运行那些位于 `/etc/backup.d` 目录中以 .xmodulo 为后缀的每个文件。如果你决定添加你的 xmodulo 控制脚本到 ninjahelper 中, 你可以编写相应的助手程序,即 xmodulo.helper 。另外,假如你想 让 backupninja 运行其它的脚本,只需把它添加到 `/etc/backup.d` 目录中就可以了。
欢迎使用下面的评论框来留下你的评论、问题或建议。听到你的回应将会使我们很高兴。
--------------------------------------------------------------------------------
via: http://xmodulo.com/backup-debian-system-backupninja.html
作者:[Gabriel Cánepa][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,85 +1,100 @@
预见我们将会在2015年及之后的Linux游戏
================================================================================他们说Linux游戏开发已经死了已经变得毫无意义随他们说去吧一起看看2015甚至以后会为我们带来什么游戏
Linux 游戏之 2015 动向
================================================================================
他们说Linux游戏开发已经死了已经变得毫无意义…… 随他们说去吧。一起看看2015甚至以后会为我们带来什么Linux游戏。
真的很难跟上为我们出现的每一样事物,但是可以快速浏览一下我们将会看到的变化.
真的很难跟得上扑面而来的各种形形色色的新事物,但是可以快速浏览一下我们将会看到的变化。
### 已确认的游戏 ###
#### 冒险游戏 ####
- [看火人][1]
- [失落的天堂:初探][2]
- [蒸汽世界:浩劫][3]
- [看火人Firewatch][1]
- [失落的天堂初探Paradise Lost: First Contact][2]
- [时空英豪 1.1Outcast 1.1][42]
- [蒸汽世界:浩劫SteamWorld Heist][3]
#### 动作游戏 ####
- [暗黑血统][4]
- [暗黑血统][5]
- [尸人的世界][6]
- [骷髅女孩][7]
- [暗黑血统Darksiders][4]
- [暗黑血统 2Darksiders 2][5]
- [尸人的世界Ray's The Dead][6]
- [骷髅女孩Skullgirls][7]
#### 第一人称游戏 ####
- [生化奇兵:永恒][8]
- 半条命 3 /troll      #此处troll不知道如何翻译
- [烽火家园:革命][9]
- [杀戮空间 2][10]
- 英雄萨姆 4(目前无官方站点)
- [联合风暴][11]
- [烈火击杀][12]
- [生化奇兵永恒Bioshock Infinite][8]
- 半条命 3 /troll Half Life 3 /troll   
- [烽火家园:革命Homefront: The Revolution][9]
- [叛变Insurgency][43]
- [杀戮空间 2Killing Floor 2][10]
- 英雄萨姆 4Serious Sam 4目前无官方站点
- [联合风暴Storm United][11]
- [烈火击杀SUPERHOT][12]
#### 平台游戏 ####
- [武装原型][13]
- [峡谷][14] #此处游戏名尚不确定
- [吉安娜姐妹][15]
- [心之所向Alicia][16]
- [ ][17] #此处游戏名未知
- [无限工厂][18]
- [无敌9号][19]
- [林中之夜][20]
- [夜][21]
- [奇异的世界:新鲜可口][22]
- [真红女神][23]
- [武装原型Broforce][13]
- [峡谷Chasm][14] #此处游戏中文名尚不确定
- [吉安娜姐妹Giana Sisters][15]
- [心之所向AliciaHeart Forth, Alicia][16]
- [热铁皮屋顶Hot Tin Roof][17]
- [无限工厂Infinifactory][18]
- [无敌Mighty No. 9][19]
- [林中之夜Night in the Woods][20]
- [夜Noct][21]
- [奇异的世界新鲜可口Oddworld: New 'N' Tasty][22]
- [真红女神Red Goddess][23]
#### 赛车游戏 ####
- [赛车计划Project Cars][44]
- [死亡赛车再生Carmageddon: Reincarnation][45]
#### 角色扮演游戏 ####
- [神界:原罪][24]
- [永恒之柱][25]
- [暗影狂奔:香港][26]
- [旗帜的传说][27]
- [神界:原罪Divinity: Original Sin][24]
- [永恒之柱Pillars Of Eternity][25]
- [暗影狂奔香港Shadowrun: Hong Kong][26]
- [旗帜的传说The Banner Saga][27]
- [镇魂曲:遗器之潮Torment: Tides of Numenera][46]
#### 策略游戏 ####
- [奇迹时代3][28]
- [放逐之城][29]
- [城:天际][30]
- [发条帝国][31]
- [][32]
- [卷轴][33]
- [太空海盗和僵尸 2][34]
- [奇迹时代Age of Wonders III][28]
- [At The Gates][47] # 尚无中文名
- [放逐之城Banished][29]
- [城天际Cities: Skylines][30]
- [发条帝国Clockwork Empires][31]
- [Parkitect][32] # 尚无中文名
- [卷轴Scrolls][33]
- [太空海盗和僵尸 2Space Pirates And Zombies 2][34]
#### 沙盒游戏 ####
- [泰拉瑞亚][35]
- [X 重生][36]
- [泰拉瑞亚Terraria][35]
- [X 重生X Rebirth][36]
#### 不太确认,不过可能性高 ####
#### 体育游戏 ####
- [英雄连][37]
- [逃生][38]
- [影子武士][39]
- [火炬之光 2][40]
- [惊爆美国棒球16Out of the Park Baseball 16][48]
然而有两个来自Feral Interactive的由于不知道他们是什么所以没有列举出来
### 不太确认,不过可能性高 ###
我们猜测Aspyr也在准备新的大制作但是他们仅仅发布了他们最新的游戏所以可能要等上几个月我们才能看到些什么
- [英雄连 2Company of Heroes 2][37]
- [逃生Outlast][38]
- [影子武士Shadow Warrior][39]
- 无光之海 - 其开发商试验性地构建 Linux 版本,不过这要取决于他们的 Windows 版本的销售情况(据邮件沟通信息)
- [火炬之光 2Torchlight II][40]
当然,** 这不是完整的列表 **,我们会轻易忘记巨量的游戏正在走向我们,哇,如此丰富的列表.
然而有[两个来自Feral Interactive的移植大作][49],由于不知道他们是什么,所以没有列举出来。
下个月就是游戏开发者大会我们也期待一些改变发生然而我们没有什么确切的东西对于Valve与Steam Machines的合作我们期待至少会增加一些Linux游戏否则如我们担心炫耀一些过时的游戏会让Valve脸上无光
我们猜测Aspyr也在准备新的大制作但是他们仅仅发布了他们最新的游戏所以可能要等上几个月我们才能看到些什么。
你怀念Linux的哪些地方曾让你兴奋
当然,** 这不是完整的列表 **,我们会轻易忘记如此多的游戏正在走向我们,哇,如此丰富的列表。
我们也期待 GDC 2015 上有一些改变然而我们没有什么确切的东西对于Valve与Steam Machines的合作我们期待至少会增加一些Linux游戏否则如我们担心炫耀一些过时的游戏会让Valve脸上无光。
希望我们没有错过那些 Linux 中让你感到兴奋的东西!
--------------------------------------------------------------------------------
@ -87,7 +102,7 @@ via: http://www.gamingonlinux.com/articles/a-look-at-what-linux-games-we-will-se
作者:[liamdawe][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
@ -132,5 +147,12 @@ via: http://www.gamingonlinux.com/articles/a-look-at-what-linux-games-we-will-se
[38]:https://www.gamingonlinux.com/articles/outlast-that-really-scary-game-looks-like-its-still-heading-to-linux.4896
[39]:https://www.gamingonlinux.com/articles/shadow-warrior-looks-like-it-will-come-to-linux.4859
[40]:https://www.gamingonlinux.com/articles/torchlight-ii-has-even-more-positive-signs-for-linux.4817
[41]:http://www.gamingonlinux.com/articles/feralinteractive.com/en/upcoming/
[41]:https://www.gamingonlinux.com/articles/feralinteractive.com/en/upcoming/
[42]:https://www.gamingonlinux.com/articles/outcast-a-real-classic-has-been-revamped-and-linux-is-planned.4736
[43]:https://www.gamingonlinux.com/articles/insurgency-fps-is-waiting-on-valve-so-it-can-come-to-linux-updated.4564
[44]:http://projectcarsgame.com/
[45]:https://www.gamingonlinux.com/articles/carmageddon-reincarnations-jason-garber-answers-our-questions-on-their-linux-support.3380
[46]:https://www.gamingonlinux.com/articles/torment-tides-of-numenera-new-video-looks-absolutely-stunning.4320
[47]:http://www.atthegatesgame.com/info
[48]:http://www.ootpdevelopments.com/newsletters/nl0154/
[49]:http://feralinteractive.com/en/upcoming/

View File

@ -3,26 +3,26 @@ Pinta 1.6发布了!在 Ubuntu 和 Linux Mint 上安装Pinta
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Pinta_Ubuntu_Linux.jpeg)
[Pinta][1] 是一款免费开源绘图应用软件它在Linux用户中很受欢迎。你也可以把它看作是**开源的微软画图软件的替代品**。Pinta 可以在很多平台上使用,如 LinuxWindows 以及 Mac OS X。
[Pinta][1] 是一款免费开源绘图应用软件它在Linux用户中很受欢迎。你也可以把它看作是**微软画图软件的开源替代品**。Pinta 可以在很多平台上使用,如 LinuxWindows 以及 Mac OS X。
Gimp 作为全功能图像编辑软件而流行相比Pinta则单纯是一种绘图工具。我常用它在我的截图上画箭头和曲线而且我可以说这是我在 Linux 上最喜欢的绘图应用软件。
Gimp 作为一款功能齐全的图像编辑软件而流行相比Pinta则单纯是一种绘图工具。我常用它在我的截图上画箭头和曲线而且我可以说这是我在 Linux 上最喜欢的绘图应用软件。
### Pinta 1.6 的新功能###
一年之后Pinta发布了1.6版本修复了50个漏洞并且加入了一些新功能。加入的新功能如下:
过一年多的时间Pinta发布了1.6版本修复了50多个漏洞并且增加了一些新功能。增加的新功能如下:
- 线条工具现在支持绘制曲线和箭头
- 绘制好的图形可以编辑
- 绘制好的图形可以编辑形状
- 所有的图形工具现在支持绘制虚线
- 所有的选择工具现在支持并集排除,异或和交集模式
- 所有的选择工具现在支持并集排除,异或和交集模式
- 插件可通过插件管理器安装
- 命令行中加入新选项
新版本同时也修复了一个很烦人的漏洞——右键文件[在打开方式中使用Pinta不能打开文件][2]。你可以在[发布说明][3]阅读所有的改变。
新版本同时也修复了一个很烦人的漏洞——右键菜单选项[在打开方式中使用Pinta不能打开文件][2]。你可以在[发布说明][3]阅读所有的改变。
### 在 Ubuntu 和 Linux Mint 中安装 Pinta 1.6###
Pinta 1.5 可以在 Ubuntu 14.0414.10Linux Mint 17 和 elementary OS 中使用。如果你想安装最新的1.6版本,你可以使用 Pinta 团队的官方PPA源。如果你已经安装了 Pinta 1.5 也不必担心。再安装一次将会使版本升级。
Pinta 1.5 可以在 Ubuntu 14.0414.10Linux Mint 17 和 elementary OS 中使用。如果你想安装最新的 1.6 版本,你可以使用 Pinta 团队的官方PPA源。如果你已经安装了 Pinta 1.5 也不必担心。再安装一次将会使版本升级。
打开终端并使用以下命令:
@ -38,7 +38,7 @@ via: http://itsfoss.com/pinta-1-6-ubuntu-linux-mint/
作者:[Abhishek][a]
译者:[linuhap](https://github.com/linuhap)
校对:[校对者ID](https://github.com/校对者ID)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
@ -47,4 +47,4 @@ via: http://itsfoss.com/pinta-1-6-ubuntu-linux-mint/
[2]:http://itsfoss.com/add-application-list-open-applications-ubuntu-1310/
[3]:http://pinta-project.com/releases/1-6
[4]:http://pinta-project.com/releases
[5]:http://itsfoss.com/image-applications-ubuntu-linux/
[5]:http://itsfoss.com/image-applications-ubuntu-linux/

View File

@ -0,0 +1,85 @@
10种将开源用于商业的最佳途径
===============================================================================
> 开源为大大小小的商业带来了一些显著的效益 -- 但是你可能会对某些用途感到惊讶。
![](http://tr2.cbsistatic.com/hub/i/r/2015/03/05/54a9c323-4311-4455-b10b-5182548da424/resize/620x485/95164f01a19cbd7a3e4b843be78febae/foss.jpg)
技术上已经发生了一些必然性的改变。举个例子开源软件以它的方式进入到了你的工作之中。10 年前,这也许还能称为一个问题。现在呢?则已经无法避免开源技术的使用 -- 也没有理由要去避免。有如此多强大(和必需的)的方方面面技术,开源在许多方面已经成为了技术的救世主。但是你哪一块的工作最适合开源软件呢?当然,这个问题的答案会因公司而异。然而许多的应用几乎可以适用于每个场景中。
让我们来看看这10种可能是最佳的使用方法它们可以帮助你的公司成长带给你从未体验过的灵活性与可靠性或者仅仅是帮你节省一笔可观的预算。
### 1: 服务器软件 ###
如果你还在微软的 IIS 平台苦苦挣扎,那么你需要体验一下 Apache。这款旗舰级开源软件是这个星球上使用最广泛的网页服务器软件之一。Apache 免费、极其可靠、易于管理,而且不像 IIS 一样需要大量的资源。然而,开源并不局限于网页服务器。如果你需要在公司内使用 SMB 来共享资源,可以试试 Samba Samba 4甚至集成了活动目录AD所以你不需要担心在Samba服务器上建立单独的用户账号。
### 2: 开发 ###
用开源开发是很简单的事。PHPRailsPerl -- 开源上面的开发语言和开发的工具从集成开发环境到调试都很多。为开源或者开源工具做开发可以有很多种选择如同使用商业软件开发一样。开源软件与商业软件最大的不同之处在于开源可以接触到软件源代码。在自由开源软件FOSSfree open source software的世界里代码都是公开的。对许多开发者来说Linux操作系统有他们开发和构建所需要的一切特别那些没有一个成熟环境来写代码的人而言。如果你需要图形用户界面GUI的开发工具开源也能满足你。
### 3: 安全 ###
通往安全的道路是充满挑战的但还是很多途径可以达到。你可以选择“安全盒子”的解决方案跟随Cisco一个可靠的解决方案的节奏或者你可以借助iptables打造最适合你需求的安全。是的开源的安全之路会需要更多的时间去配置有很高的学习壁垒但是结果通常是不错的。这里甚至不强调一种观点就一般来说在桌面上使用开源比起大多数封闭的系统而言是一个更安全的平台。在桌面上部署Linux你的安全痛点会大大降低。
### 4: 桌面 ###
Linux 桌面是大多数人不认可的地方。尽管如此你必须考虑一个事实那就是你每天的工作流程已经经历了一个主要的思维模式的转换。我们现在做的大部分事情都是通过网络浏览器。那么为什么不将Linux部署到桌面上呢不但可以能做如今要做的许多工作而且不用遭受病毒恶意软件和能破坏系统的更新。它不完美 -- 但哪个平台敢说完美?但是它很强大,最后,还可以节省你的开支。这是一个双赢的结局。
### 5: 工作流程 ###
每一种工作都依赖于工作流程。对于某些工作来说一个流畅的工作流程又取决于所用的工具。开源已经登上这个舞台了。CRM客户关系管理HRM人力资源管理ERP企业资源计划BI商业智能BPM业务流程管理 …… 只要你叫得出名字,开源就可以做到几乎你能想到的每一种可能 -- 并且干得不错。借助于[Pentaho][1], [Collabtive][2]和[SugarCRM][3], 开源可以在任何时候与最新的源工具保持同步。
### 6: 协作 ###
没有一起合作项目的能力,你的员工就不能干好工作。所以你选择的协作工具是十分重要的。你会在开源的世界里发现大量的优质协作工具。[Cyn.in 社区版][4], [Zimbra 开源版][5]和[Kolab][6]都是不错的协作工具,但这仅仅是开源世界里的三个代表而已。
### 7: 大数据 ###
以前说到大数据的时候,往往不会想到开源。多亏了[SUSE][7]的努力,大数据和开源现在可以携手共进了。许多如内存数据和内核热补丁的发明创建,使得开源成为大数据一个理想的解决方案。它可以完美地满足大数据在平台上所需的大量要求,而封闭的软件则达不到如此灵活的水平。
### 8: 云 ###
云的主要玩家都是开源的。[Red Hat][8], [Ubuntu][9], [SUSE][10], [Amazon][11], [Rackspace][12] -- 他们都提供云服务,而且认为开源是云配置的最好解决方案。但是,如果你不想用大公司的服务,仍然有很多后起之秀如[OwnCloud][13]你可以选择OwnCloud的托管云方案或者建立自己的一套。
### 9: 多媒体 ###
如果你的公司做播客或为产品发布制作视频,开源可以为你提供服务。借助像[Audacity][14]和[OpenShot][15]这样的工具,你可以对音频和视频做你需要的任何处理 -- 而且十分的廉价。实际上你会感觉到很难再去找到比Audacity更好的播客工具或者比OpenShot更易用的视频编辑器。没有太大的学习壁垒或者闭源软件工具所要求的高额费用开源的软件在帮助你创造专业水准的作品方面已经做得很好了。
### 10: 电子商务 ###
如果你做在线销售,如果不尝试一下像[PrestaShop][16]之类的工具你就太懈怠了。PrestaShop是最强大的电子商务解决方案之一易于获取 -- 不需要许可证。 PrestaShop有你可能想要的所有功能而且有些你可能都没有想过这个开源平台已经在任何水平上超出了电子商务的范畴。
### FOSS 之于商业 ###
开源已经不再局限于商业交流的范围了。在许多情况下FOSS已经主导这种交流。如果你已经在寻找将开源解决方案运用的领域看上面的10条就行了。
### 该你了 ###
你已经将开源用到你的工作中了吗?如果是,属于哪一条方法呢?
-------------------------------------------------------------------------------
via: http://www.techrepublic.com/blog/10-things/10-best-uses-for-open-source-software-in-the-business-world/
作者:[Jack Wallen][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.techrepublic.com/search/?a=jack+wallen
[1]:http://community.pentaho.com/
[2]:http://collabtive.o-dyn.de/
[3]:http://www.sugarcrm.com/
[4]:http://cynapse.com/cyn-in/
[5]:https://www.zimbra.com/open-source
[6]:http://kolab.org/
[7]:http://www.suse.org/
[8]:http://www.redhat.com/
[9]:http://www.ubuntu.com/
[10]:http://www.suse.com/
[11]:http://aws.amazon.com/ec2/
[12]:http://www.rackspace.com/cloud
[13]:https://owncloud.org/
[14]:http://audacity.sourceforge.net/
[15]:http://www.openshot.org/
[16]:https://www.prestashop.com/

View File

@ -1,9 +1,10 @@
Linux中的15个基本ls命令示例
================================================================================
ls命令是Linux系统中最被频繁使用的命令之一我相信ls命令一定是你进入一台Linux系统的电脑打开命令提示符后第一个使用的命令。我们每天都在频繁地使用ls命令即使我们可能没有意识也从来用不到所可用的选项。本文中我们将讨论下一些基本的ls命令并且覆盖尽可能多的有关参数来讲解。
ls命令是Linux系统中最被频繁使用的命令之一我相信ls命令一定是你进入一台Linux系统的电脑打开命令提示符后第一个使用的命令。我们每天都在频繁地使用ls命令,即使我们可能没有意识也从来用不到所可用的选项。本文中我们将讨论下一些基本的ls命令并且覆盖尽可能多的有关参数来讲解。
![Linux ls Command](http://www.tecmint.com/wp-content/uploads/2012/08/Linux-ls-Commands.png)
Linux的ls命令
*Linux的ls命令*
### 1. 不带任何选项列出文件 ###
@ -14,7 +15,7 @@ Linux的ls命令
0001.pcap Desktop Downloads index.html install.log.syslog Pictures Templates
anaconda-ks.cfg Documents fbcmd_update.php install.log Music Public Videos
### 2 带l选项列出文件列表 ###
### 2 带 l 选项列出文件列表 ###
你看ls -l-l是字母不是“1”就能展示出是文件还是目录它的大小、修改日期和时间、文件或目录的名字以及文件的属主和它的权限。
@ -50,9 +51,9 @@ Linux的ls命令
.bash_logout Desktop fbcmd_update.php .ICEauthority .mozilla Public Videos
.bash_profile .digrc .gconf index.html Music .pulse .wireshark
### 4. 用-lh选项来以人类可读方式列出文件 ###
### 4. 用 -lh 选项来以易读方式列出文件 ###
用-lh组合选项人类可读方式来显示大小。
用-lh组合选项读方式来显示大小。
# ls -lh
@ -74,7 +75,7 @@ Linux的ls命令
### 5. 以尾部以‘/’字符结尾的方式列出文件和目录 ###
Using -F option with ls command, will add the / Character at the end each directory.
使用 ls 命令的 -F 选项,会在每个目录的末尾添加“/”字符显示。
# ls -F
@ -83,7 +84,7 @@ Using -F option with ls command, will add the / Character at the end each
### 6. 倒序列出文件 ###
ls -r选项能以倒序方式显示文件和目录。
ls -r 选项能以倒序方式显示文件和目录。
# ls -r
@ -92,7 +93,7 @@ ls -r选项能以倒序方式显示文件和目录。
### 7. 递归列出子目录 ###
ls -R选项能列出非常长的目录树来看看示例输出
ls -R 选项能列出非常长的目录树,来看看示例输出:
# ls -R
@ -115,7 +116,7 @@ ls -R选项能列出非常长的目录树来看看示例输出
-rw-r--r--. 1 root root 0 Aug 12 03:17 access.log
-rw-r--r--. 1 root root 390 Aug 12 03:17 access.log-20120812.gz
### 8. 反向输出次序 ###
### 8. 以修改时间倒序列出 ###
带-ltr组合选项能以文件或目录的最新修改时间的次序来显示它们。
@ -159,9 +160,9 @@ ls -R选项能列出非常长的目录树来看看示例输出
-rw-------. 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 683 Aug 19 09:59 0001.pcap
### 10. 显示文件或目录的索引节点 ###
### 10. 显示文件或目录的索引节点 ###
我们有时候可以看到一些数字打印在文件或目录名之前,带-i选项就能列出文件或目录的索引节点
我们有时候可以看到一些数字打印在文件或目录名之前,带-i选项就能列出文件或目录的索引节点
# ls -i
@ -192,7 +193,7 @@ ls -R选项能列出非常长的目录树来看看示例输出
### 13. 列出目录信息 ###
用ls -l命令列出/tmp目录下的文件其中-ld参数可以显示/tmp目录的信息。
用ls -l命令列出/tmp目录下的文件其中-ld参数可以显示/tmp目录的信息。
# ls -l /tmp
total 408
@ -225,13 +226,13 @@ ls -R选项能列出非常长的目录树来看看示例输出
-rw-rw-r--. 1 500 500 12 Aug 21 13:06 tmp.txt
drwxr-xr-x. 2 500 500 4096 Aug 2 01:52 Videos
### 15. ls命令和它的别名功能 ###
### 15. ls命令和它的别名 ###
我们给ls命令设置别名之后当我们执行ls命令的时候它会默认执行-l选项并且像上文提到的那样显示长列表。
我们给ls命令设置如下别名之后当我们执行ls命令的时候它会默认执行-l选项并且像上文提到的那样显示长列表。
# alias ls="ls -l"
注意我们可以通过不加任何参数的alias命令来看到目前系统中可用的所有alias设置当然它们同时也可以unalias。
注意我们可以通过不加任何参数的alias命令来看到目前系统中可用的所有alias设置当然它们同时也可以unalias来取消
# alias
@ -255,7 +256,7 @@ via: http://www.tecmint.com/15-basic-ls-command-examples-in-linux/
作者:[Ravi Saive][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/) 荣誉推出

View File

@ -1,139 +0,0 @@
4 Linux Based Mini PC You Can Buy In 2015
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Linux_Based_Mini_PC.jpg)
Mini PCs, in my opinion, will takeover the traditional desktop computers in near future. Traditional desktop has a bulky CPU which takes a lot of space with its fan running like a blower. The mini PCs, on the other hand, are tiny and compact. With hardly 4″ or 5″ in size, they can be easily placed on a table.
Moreover, these mini PCs are fanless which is an added virtue. Of course, you can buy fanless regular desktops but the space consumption is still an issue. Personally, I find the mini PC cute in looks. If you are not a gamer and thinking of buying a new desktop PC, Ill highly recommend you to **buy a Linux based mini PC**.
If you go by my recommendation and consider buying it, you might wonder what options do you have. Worry not. In this post we shall see four **Linux based Mini PC that you can buy in 2015**.
### Linux based mini PCs ###
Please do note that some of these gadgets might not be available to order just yet. Some of these have been just announced and will be released to public in near future.
#### 1. Meerkat by System76 ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/system76-meerkat.jpg)
[System76][1] is a computer manufacturer exclusively dealing with only Ubuntu based desktop, laptops and servers. [System76 announced an Ubuntu based mini PC Meerkat][2] last week. Lets take a quick look at its specification:
**Specification**
- Intel 5th Generation processors, available options i3-5010U and i5-5250U
- up to 2 TB of storage (M.2 SATA SSD)
- 16 GB DDR3 RAM
- Graphics Intel HD 5500 and Intel HD 6000 for i3 and i5 respectively
- 4″ x 4″ in size
- WiFi
- 1 Gb NIC
- 2 USB 3.0 ports
**Price**
In the range of $500 (yet to be confirmed).
**Availability**
US release by the end of March 2015.
#### 2. Mintbox Mini by Compulab ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/mintbox-mini.jpeg)
[Compulab][3] shrunk its flagship Linux Mint based PC devices, Mintbox into [Mintbox Mini][4]. The compact version is around 4″ in size. More details are as following:
**Specifications**
- AMD A4-6400T processor
- Radeon R3 graphics processor
- 4 GB RAM
- 64 GB SSD
- 2 USB 3.0 ports, 3 USB 2.0 ports
- 2 HDMI out ports
- 802.11 b/g/n Wifi
- Gigabit Ethernet
- MicroSD reader
**Price**
Staring around $300
**Availability**
Second quarter of 2015
#### 3. Utilite2 by Compulab ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Utilite2-ARM-PC.jpg)
Its not that Compulab has stuck with Linux Mint only. It announced an ARM desktop PC running Ubuntu in last December. With a size of 3.4″x2.3″, [Utilite2][5] has modest feature and modest price.
**Specifications**
- Qualcomm Snapdragon 600 (APQ8064) quad-core CPU 1.7GHz
- 2GB RAM, eMMC with optional 32 GB mSATA storage
- Graphics with Qualcomm Adreno™ GPU
- 1080p video playback and capture
- Dual-antenna WiFi 802.11 and Bluetooth 4.0
- Gigabit Ethernet, 4x USB2, USB OTG
- Cellular modem support
**Price**
$192 for regular model, $229 with SSD storage. Shipping charges extra.
**Availability**
Available to purchase now. It will take four weeks in shipping.
#### Penguin Pocket Wee by Think Penguin ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Think_Penguin_Pocket_Wee.jpeg)
[Think Penguin][6] is a Open Source focused hardware manufacturer. In the mini PC category, it has [Penguin Pocket Wee][7] to offer. With 4.6″x 4.4″x 1.4″ in size, Penguin Pocket Wee provides a number of configuration to you. You can choose between the processors, storage, network adapters and what not. You can choose to buy it pre-installed with your favorite Linux distribution, default OS is Ubuntu.
The general configuration is as following:
- Intel Core i3 or i5 processor with support for up to 1080p HD video
- Expandable up to 16GB of DDR3 RAM
- Intel HD graphics
- Wireless N
- Up to 250GB of SSD
- 4 USB 3.0
- Intel 10/100/1000 Gigabit Ethernet Controller
**Price**
Basic model starts at $499 and it can go up to $1000 based on the configuration you select.
**Availability**
Available to order now. There are offices in UK and USA so it should be shipping to North America and Europe.
### Whats your pick? ###
I have deliberately not included [Raspberry Pi 2][8] or other Linux microcomputer such as [Intels Compute Stick][9]. The reason is that I do not think that micro-computers fall in the same categories as mini PCs.
What do you think? Are you tempted to replace your desktop with a mini PC? Is there another player which I missed in this list of **best Linux based mini PCs**? Do share your views.
--------------------------------------------------------------------------------
via: http://itsfoss.com/4-linux-based-mini-pc-buy-2015/
作者:[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]:https://system76.com/
[2]:http://itsfoss.com/system76-unveils-ubuntu-based-mini-pc-meerkat/
[3]:http://www.compulab.co.il/
[4]:http://itsfoss.com/mintbox-mini-compact-linux-mint-powered-pc-unveiled/
[5]:http://www.compulab.co.il/utilite-computer/web/utilite2-overview
[6]:https://www.thinkpenguin.com/
[7]:https://www.thinkpenguin.com/gnu-linux/penguin-pocket-wee-gnu-linux-desktop
[8]:http://itsfoss.com/raspberry-pi-2-specs/
[9]:http://itsfoss.com/intels-compute-stick/

View File

@ -0,0 +1,57 @@
Papyrus: An Open Source Note Manager
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_4.jpeg)
In last post, we saw an [open source to-do app Go For It!][1]. In a similar article, today well see an **open source note taking application Papyrus**.
[Papyrus][2] is a fork of [Kaqaz note manager][3] and is built on QT5. It brings a clean, polished user interface and is security focused (as it claims). Emphasizing on simplicity, I find Papyrus similar to OneNote. You organize your notes in paper and add them a label for grouping those papers. Simple enough!
### Papyrus features: ###
Though Papyrus focuses on simplicity, it still has plenty of features up its sleeves. Some of the main features are:
- Note management with labels and categories
- Advanced search options
- Touch mode available
- Full screen option
- Back up to Dropbox/hard drive/external
- Password protection for selective papers
- Sharing papers with other applications
- Encrypted synchronization via Dropbox
- Available for Android, Windows and OS X apart from Linux
### Install Papyrus ###
Papyrus has APK available for Android users. There are installer files for Windows and OS X. Linux users can get source code of the application. Ubuntu and other Ubuntu based distributions can use the .deb packages. Based on your OS and preference, you can get the respective files from the Papyrus download page:
- [Download Papyrus][4]
### Screenshots ###
Here are some screenshots of the application:
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_3-700x450_c.jpeg)
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_2-700x450_c.jpeg)
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_1-700x450_c.jpeg)
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux-700x450_c.jpeg)
Give Papyrus a try and see if you like it. Do share your experience with it with the rest of us here.
--------------------------------------------------------------------------------
via: http://itsfoss.com/papyrus-open-source-note-manager/
作者:[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/go-for-it-to-do-app-in-linux/
[2]:http://aseman.co/en/products/papyrus/
[3]:https://github.com/sialan-labs/kaqaz/
[4]:http://aseman.co/en/products/papyrus/

View File

@ -0,0 +1,52 @@
Red Hat Developer Toolset 3.1 beta arrives
================================================================================
> **Summary**:Want the newest developer tools for Red Hat Enterprise Linux 6 or 7? The beta's ready for you now.
It's one of those eternal problems between developers and operators that even [DevOps][1] can't entirely solve. System administrators want the most stable operating system possible, while programmers want the latest and greatest development tools. [Red Hat][2]'s solution for this dilemma has been to take those brand spanking-new tools, test them out on the latest stable [Red Hat Enterprise Linux (RHEL)][3], and then release them to developers.
![Red Hat Developer Toolset](http://zdnet4.cbsistatic.com/hub/i/2015/03/18/d92b1067-6b36-4ff0-ac9e-608fbe3e8c5d/ae80362df5401a37e3cbcd2598f33370/rhel-dev-tools.png)
Red Hat Developer Toolset
So it is that Red Hat has just announced its latest toys for developers, [Red Hat Developer Toolset 3.1][4]. This packaging of the hottest new tools is now available in beta.
This update includes:
[GNUCompiler Collection (GCC) 4.9][5]: the latest stable upstream version of GCC, which provides numerous improvements and bug fixes
[Eclipse 4.4.1][6]: with support for Java 8 and updated versions of Eclipse CDT (8.5), Eclipse Linux Tools (3.1), Eclipse Mylyn (3.14), and Eclipse Egit/Jgit (3.6.1)
Numerous additional updated packages: These include GDB 7.8.2, elfutils 0.161, memstomp 0.1.5, SystemTap 2.6, Valgrind 3.10.1, Dyninst 8.2.1, and ltrace 0.7.91.
With these development programs, you'll be able to create applications for RHEL 6 and 7.x. These apps will then run on RHEL regardless of whether you're running it on a physical, virtual or cloud environments. They will also run on Red Hat's [OpenShift][7], its Platform-as-a-Service (PaaS) offering.
This new set of developer programs includes packages for both RHEL 7 and 7 running on [AMD64 and Intel 64 architectures][8]. Although the tools are 64-bit you can use them to create and modify 32-bit binaries.
Before you try running any of these programs, you should patch RHEL with all the latest updates. To install the beta Toolset, your systems need to be subscribed to the Optional channel to access all the required Red Hat Developer Toolset tool-chain packages.
In addition, if you've installed earlier Toolkits you may run into some [problems while installing Toolkit 3.1][9]. While these difficulties are easy enough to fix, you should go over these possible hiccups before trying to install the new Toolkit.
Finally, you may notice that some of the most exciting of the new tools, such as Docker, Kubernetes, and other container tools aren't here. That's because they're in the newly released [RHEL 7.1][10] and [Red Hat Enterprise Linux 7 Atomic Host (RHELAH)][11]. [Red Hat has partnered with Docker][12], but you'll need to move to a Docker-friendly version of RHEL to get at these container-friendly programs.
--------------------------------------------------------------------------------
via: http://www.zdnet.com/article/red-hat-developer-toolset-3-1-beta-arrives/
作者:[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/sjvn/
[1]:http://blogs.csc.com/2015/02/03/devops-theory-for-beginners/
[2]:http://www.redhat.com/en
[3]:http://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
[4]:http://www.redhat.com/en/about/blog/red-hat-developer-toolset-31-beta-now-available
[5]:https://gcc.gnu.org/gcc-4.9/
[6]:https://projects.eclipse.org/projects/eclipse/releases/4.4.1
[7]:https://www.openshift.com/
[8]:https://access.redhat.com/documentation/en-US/Red_Hat_Developer_Toolset/3-Beta/html/3.1_Release_Notes/System_Requirements.html
[9]:https://access.redhat.com/documentation/en-US/Red_Hat_Developer_Toolset/3-Beta/html/3.1_Release_Notes/DTS3.1_Release.html#Known_Issues
[10]:http://www.zdnet.com/article/red-hat-7-1-is-here-centos-7-1-is-coming-soon/
[11]:http://www.zdnet.com/article/red-hat-buys-into-docker-containers-with-atomic-host/
[12]:http://www.zdnet.com/article/red-hat-partners-with-docker-to-create-linuxdocker-software-stack/

View File

@ -0,0 +1,56 @@
Square 2.0 Icon Pack Is Twice More Beautiful
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Square_Icon_Pack_Linux_3.jpeg)
Elegant, modern looking [Square icon theme][1] has recently been upgraded to version 2.0, which makes it more beautiful than ever. Square icon packs are compatible with all major desktop environments such as **Unity, GNOME, KDE, MATE** etc. Which means that you can use them for all popular Linux distributions such as Ubuntu, Fedora, Linux Mint, elementary OS etc. The vastness of this icon pack can be estimated from the fact it contains over 15,000 icons.
### Install and use Square icon pack 2.0 in Linux ###
There are two variants of Square icons, dark and light. Based on your preference, you can choose either of the two. For experimentation sake, I would advise you to download both variants of the icon theme.
You can download the icon pack from the link below. The files are stored in Google Drive, so dont be suspicious if you dont see a standard website like [SourceForge][2].
- [Square Dark Icons][3]
- [Square Light Icons][4]
To use the icon theme, extract the downloaded files in ~/.icons directory. If this doesnt exist, create it. Once you have the files in the right place, based on your desktop environment, use a tool to change the icon theme. I have written some small tutorials in the past on this topic. Feel free to refer to them if you need further help:
- [How to change themes in Ubuntu Unity][5]
- [How to change themes in GNOME Shell][6]
- [How to change themes in Linux Mint][7]
- [How to change theme in Elementary OS Freya][8]
### Give it a try ###
Here is what my Ubuntu 14.04 looks like with Square icons. I am using [Ubuntu 15.04 default wallpaper][9] in the background.
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Square_Icon_Pack_Linux_2.jpeg)
A quick look at several icons in the Square theme:
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Square_Icon_Pack_Linux.jpeg)
How do you find it? Do you think it can be considered as one of the [best icon themes for Ubuntu 14.04][10]? Do share your thoughts and stay tuned for more articles on customizing your Linux desktop.
--------------------------------------------------------------------------------
via: http://itsfoss.com/square-2-0-icon-pack-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://gnome-look.org/content/show.php/Square?content=163513
[2]:http://sourceforge.net/
[3]:http://gnome-look.org/content/download.php?content=163513&id=1&tan=62806435
[4]:http://gnome-look.org/content/download.php?content=163513&id=2&tan=19789941
[5]:http://itsfoss.com/how-to-install-themes-in-ubuntu-13-10/
[6]:http://itsfoss.com/install-switch-themes-gnome-shell/
[7]:http://itsfoss.com/install-icon-linux-mint/
[8]:http://itsfoss.com/install-themes-icons-elementary-os-freya/
[9]:http://itsfoss.com/default-wallpapers-ubuntu-1504/
[10]:http://itsfoss.com/best-icon-themes-ubuntu-1404/

View File

@ -0,0 +1,132 @@
How to Install Telegram Messenger Application on Linux
================================================================================
Telegram is an Instant Messaging (IM) application similar to whatsapp. It has a very large user base. It has a lot of features that differentiate it from other messaging application.
![Install Telegram in Linux](http://www.tecmint.com/wp-content/uploads/2015/03/Install-Telegram-in-Linux.png)
Telegram Messenger for Linux
This article aims at making you aware of telegram application followed by detailed installation instructions on Linux Box.
#### Features of Telegram ####
- Implementation for mobile devices
- Available for Desktop.
- Application Program Interface (API) of Telegram can be Accessed by third party developers.
- Available for Android, iphone/ipad, Windows Phone, Web-Version, PC, Mac and Linux
- The above application provides Heavily Encrypted and self destruct messages.
- Lets you access your message from multiple devices and platform.
- The overall processing and message delivery is lightening fast.
- Distributed server across the globe for security and speed.
- Open API and Free Protocol
- NoAds, No Subscription charge. Free forever.
- Powerful No limit to media and chats
- Several security measures that make it safe from Hackers.
- Reply to Specific message in group. Mention @username to notify multiple users in group.
#### Why Telegram? ####
When Applications like whatsapp and other IM are providing almost same things in bag, why should someone opt for Telegram?
Well Availability of API to third party developer is enough to say. Moreover availability for PC which means you wont have to struggle typing message using your mobile, but you can use your PC and that is pretty more than sufficient.
Also The option to connect on remote locations, Co-ordinate Group of upto 200 Members, Sync all your devices, Send Documents of all kind, Encrypt message, Self destruction of message, Storage of Media in Cloud, Build own tool on freely available API and what not.
**Testing Environment**
We have used Debian GNU/Linux, x86_64 architecture to test it and the overall process went very smooth for us. Here what we did stepwise.
### Installation of Telegram Messenger in Linux ###
First go to the official Telegram site, and download Telegram source package ([tsetup.0.7.23.tar.xz][1]) for Linux system or you may use following wget command to download directly.
# wget https://updates.tdesktop.com/tlinux/tsetup.0.7.23.tar.xz
Once package has been downloaded, unpack the tarball and switch from current working directory to the extracted directory.
# tar -xf tsetup.0.7.23.tar.xz
# cd Telegram/
Next, execute the binary file Telegram from the command line as shown below.
# ./Telegram
1. The first Impression. Click “START MESSAGING”.
![Start Messaging](http://www.tecmint.com/wp-content/uploads/2015/03/Start-Messaging.jpeg)
Start Messaging
2. Enter Your phone Number. Click “NEXT”. If you have not registered for telegram before this, using the same number as entered above you will get a warning that you dont have a telegram account yet. Click “Register Here”.
![Signup for Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Register.png)
Signup for Telegram
3. After submitting your phone number, telegram will send you a verification code, shortly. You need to Enter it.
![Telegram Verification Code](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Verfication-Code.png)
Telegram Verification Code
4. Enter your First_Name, Last_name and pics and click “SIGNUP”.
![Enter Account Details](http://www.tecmint.com/wp-content/uploads/2015/03/Enter-Account-Details.jpeg)
Enter Account Details
5. After account creation, I got this interface. Everything seems at its place, even when I am new to telegram Application. The interface is really simple.
![Telegram Interface](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Interface.jpeg)
Telegram Interface
6. Click Add a contact and Enter Their first_name, last_name and Phone number. Click create when done!.
![Add New Telegram Contact](http://www.tecmint.com/wp-content/uploads/2015/03/Add-New-Telegram-Contact.png)
Add New Telegram Contact
7. If the contact you added is not on telegram already, You get a warning message and telegram will acknowledge you when your contact joins telegram.
![Telegram Contact Notification](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Contact-Notification.jpeg)
Telegram Contact Notification
8. As soon as the contact joins telegram you get a message (pop-out like) that reads [YOUR_CONTACT] joined telegram.
9. A formal chat window on Linux Machine. Nice experience…
![Telegram Contact Join Message](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Contact-Join-Message.jpeg)
Telegram Contact Join Message
10. At the same time, Ive tried messaging from my android mobile device, the interface looks similar on both.
![Telegram Mobile Interface](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Mobile-Interface.png)
Telegram Mobile Interface
11. Telegram settings page. You have a lot of options to configure.
![Telegram Settings](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Settings.png)
Telegram Settings
12. About Telegram.
![About Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/About-Telegram.jpeg)
About Telegram
#### Less Interesting Points ####
- Telegram usage protocol MTProto Mobile protocol.
- Released Initially for iPhone in the year 2013 (August 14)..
- People Behind this Amazing Project: Pavel and Nikolai Durov..
Thats all for now. Ill be here again with another interesting article you will love to read. I take the pleasure on behalf of Tecmint to thank all our valuable readers and critics who made us stand where we are now through continuous self evolving process. Keep Connected! Keep Commenting. Share if you care for us.
- [https://telegram.org/][2]
--------------------------------------------------------------------------------
via: http://www.tecmint.com/install-telegram-in-linux/
作者:[Avishek Kumar][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/avishek/
[1]:https://tdesktop.com/linux
[2]:https://telegram.org/

View File

@ -1,3 +1,4 @@
[raywang]
Open source all over the world
================================================================================
![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BUS_OpenSourceExperience_520x292_cm.png)

View File

@ -1,33 +0,0 @@
translating by haimingfg
Torvalds: 'People who start writing kernel code get hired really quickly'
================================================================================
Now more than ever, the development of the Linux kernel is a matter for the professionals, as unpaid volunteer contributions to the project reached their lowest recorded levels in the latest "Who Writes Linux" report, which was released today.
According to the report, which is compiled by the Linux Foundation, just 11.8 percent of kernel development last year was done by unpaid volunteers -- a 19 percent downturn from the 2012 figure of 14.6 percent. The foundation says that the downward trend in volunteer contributions has been present for years.
![](http://images.techhive.com/images/article/2015/02/screen-shot-2015-02-17-at-5.25.43-pm-100568680-medium.idge.png)
Even so, unpaid contributors were still the single biggest source of commits in the latest Who Writes Linux, at 11,968 total changes -- good for 12.4 percent of the whole. However, corporate contributors collectively account for much, much more. The Linux Foundation said that more than 80 percent of all work on the kernel is done by paid professional developers.
According to Linus Torvalds, the shift towards paid developers hasn't changed much about kernel development on its own.
"I think one reason it hasn't changed things all that much is that it's not so much 'unpaid volunteers are going away' as 'people who start writing kernel code get hired really quickly,'" he told Network World.
Torvalds said that, while Linux development has changed for plenty of other reasons -- and that, naturally, new contributors pop up all the time -- many of the original developers, with decades of experience, have simply been snapped up by companies with an interest in Linux.
"We may have started as volunteers, but we're happily employed doing Linux these days," he said.
Torvalds' own role in development has become increasingly hands-off, according to the report -- he has personally signed off on 329 patches since version 3.10 of kernel was released, or 0.4 percent. Increasingly, subsystem maintainers do their own reviews and merges of code.
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2885339/application-development/torvalds-people-who-start-writing-kernel-code-get-hired-really-quickly.html
作者:[Jon Gold][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/Jon-Gold/

View File

@ -1,85 +0,0 @@
10 best uses for open source software in the business world
================================================================================
> Open source offers some compelling benefits for businesses large and small -- but you might be surprised at some of the ways it's being used.
![](http://tr2.cbsistatic.com/hub/i/r/2015/03/05/54a9c323-4311-4455-b10b-5182548da424/resize/620x485/95164f01a19cbd7a3e4b843be78febae/foss.jpg)
Certain inevitabilities occur in technology. For instance, open source software will make its way into your business. Ten years ago, this could easily have been called into question. Now? There's no way to avoid it -- and there's no reason to. With so many powerful (and necessary) pieces of technology, open source has become, in various cases, the savior of tech. But what areas of your business are best suited for open source? The answer to that question is, of course, will be different from one company to the next. But some applications can apply in almost every circumstance.
Let's take a look at 10 possible best-case uses for open source software that can help make your business grow, bring you a level of flexibility and reliability you haven't experienced, or just save you a welcome percentage of your budget.
### 1: Server software ###
If you're still battling Microsoft's IIS platform, you need to experience Apache. The flagship open source web server software is one of the most widely used on the planet. It's free, incredibly reliable, easy to manage, and doesn't require the enormous overhead needed for IIS. But open source isn't limited to just web servers. If you need SMB sharing across your company, consider Samba. Samba 4 even integrates with Active Directory, so you don't have to worry about setting up separate user accounts on the Samba server.
### 2: Development ###
Developing with open source is a no-brainer. PHP, Rails, Perl -- there are as many languages to develop with as there are tools (from IDEs to bug tracking). There are a lot of options for developing for open source or with open source tools (as are there with proprietary development). The biggest difference between open source and proprietary is the access you have to the software code. Within the world of FOSS (free open source software) the code is readily available. For many developers, the Linux operating system has everything they need to develop, built right in (especially those who code without a full-blown IDE). If you do require GUI development tools, open source has you covered.
### 3: Security ###
The route to security is a challenging one, but there are many paths to success. You can opt for the "security in a box" solution and go with the likes of Cisco (a solid solution) or you can craft your security to perfectly fit your needs with the likes of iptables. Yes, the open source security route will take a bit more time to deploy (with a much higher learning curve), but the end results are generally incredible. This doesn't even address the idea that using open source on the desktop is, generally speaking, a more secure platform than most proprietary systems. Deploy Linux on the desktops and your security woes will drop dramatically.
### 4: Desktops ###
This area is where most of the pushback happens. However, you must take into consideration the fact that the daily workflow has undergone a major paradigm shift. Most of what we do now is done via a web browser. So why not deploy Linux on the desktop? Not only does it work with the majority of today's tasks, it will do so without suffering from viruses, malware, and updates that cripple a system. It's not perfect -- what platform is? But it's solid, and in the end, it can save you money. That's a win-win.
### 5: Workflow ###
Every business depends upon workflow. For some businesses, a smooth workflow depends upon tools. Open source has this arena covered. CRM, HRM, ERP, BI, BPM... you name it, open source handles just about every possible acronym you can think of -- and it does it very well. With the likes of [Pentaho][1], [Collabtive][2], and [SugarCRM][3], open source can keep up with closed source tools any day.
### 6: Collaboration ###
Without the ability to work together on projects, your staff wouldn't be able to get the job done. So the collaboration tools you choose are crucial. You'll find plenty of quality collaboration tools within the world of open source. [Cyn.in community edition][4], [Zimbra Open Source Edition][5], and [Kolab][6] are just three examples of the excellent collaboration tools that exist within the open source world.
### 7: Big data ###
When it comes to big data, open source can't be matched. Thanks to the likes of [SUSE][7], big data and open source now go hand in hand. Innovations like in-memory data and live kernel patching make open source an ideal solution for big data. It can be perfectly tuned to meet the massive demands big data places on the platform. Closed source software can't touch this level of flexibility.
### 8: Cloud ###
The major players in the cloud are open source. [Red Hat][8], [Ubuntu][9], [SUSE][10], [Amazon][11], [Rackspace][12] -- they all get it and know that open source is the best solution for cloud deployments. But if you don't want to go with the larger companies, there are always up and coming tools like [ownCloud][12], where you can either take advantage of its hosted cloud solutions or build your own.
### 9: Multimedia ###
If your company does podcasting or video for PR, open source has you covered. With tools like [Audacity][14] and [OpenShot][15], you can do just about anything with audio or video you need -- and do so on the cheap. In fact, you'll be hard-pressed to find a better podcasting tool than Audacity or an easier-to-use video editor than OpenShot. Both pieces of software do an outstanding job of creating professional-quality results without the steep learning curves or the high prices often associated with closed source tools
### 10: E-commerce ###
If your business sells products online, you'd be remiss not to give a tool like [PrestaShop][16] a try. PrestaShop is, hands down, one of the most powerful e-commerce solutions available -- regardless of license. With just about every feature you could possible want (and some you probably haven't even thought of), the open source platform excels at e-commerce on every level.
### FOSS for business ###
Open source is no longer hanging around the periphery of the business conversation. In many instances, FOSS leads and dominates that conversation. If you've been looking for areas to consider deploying open source solutions, look no further than these 10.
### Your turn ###
Have you added open source software to your business? If so, in what way?
--------------------------------------------------------------------------------
via: http://www.techrepublic.com/blog/10-things/10-best-uses-for-open-source-software-in-the-business-world/
作者:[Jack Wallen][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.techrepublic.com/search/?a=jack+wallen
[1]:http://community.pentaho.com/
[2]:http://collabtive.o-dyn.de/
[3]:http://www.sugarcrm.com/
[4]:http://cynapse.com/cyn-in/
[5]:https://www.zimbra.com/open-source
[6]:http://kolab.org/
[7]:http://www.suse.org/
[8]:http://www.redhat.com/
[9]:http://www.ubuntu.com/
[10]:http://www.suse.com/
[11]:http://aws.amazon.com/ec2/
[12]:http://www.rackspace.com/cloud
[13]:https://owncloud.org/
[14]:http://audacity.sourceforge.net/
[15]:http://www.openshot.org/
[16]:https://www.prestashop.com/

View File

@ -0,0 +1,66 @@
Revealed: The best and worst of Docker
================================================================================
![](http://images.techhive.com/images/article/2015/01/best_worst_places_to_work-100564193-primary.idge.jpg)
Credit: [Shutterstock][1]
> Docker experts talk about the good, the bad, and the ugly of the ubiquitous application container system
No question about it: Docker's app container system has made its mark and become a staple in many IT environments. With its accelerating adoption, it's bound to stick around for a good long time.
But there's no end to the debate about what Docker's best for, where it falls short, or how to most sensibly move it forward without alienating its existing users or damaging its utility. Here, we've turned to a few of the folks who have made Docker their business to get their takes on Docker's good, bad, and ugly sides.
### The good ###
One hardly expects Steve Francia, chief of operations of the Docker open source project, to speak of Docker in anything less than glowing terms. When asked by email about Docker's best attributes, he didn't disappoint: "I think the best thing about Docker is that it enables people, enables developers, enables users to very easily run an application anywhere," he said. "It's almost like the Holy Grail of development in that you can run an application on your desktop, and the exact same application without any changes can run on the server. That's never been done before."
Alexis Richardson of [Weaveworks][2], a virtual networking product, praised Docker for enabling simplicity. "Docker offers immense potential to radically simplify and speed up how software gets built," he replied in an email. "This is why it has delivered record-breaking initial mind share and traction."
Bob Quillin, CEO of [StackEngine][3], which makes Docker management and automation solutions, noted in an email that Docker (the company) has done a fine job of maintaining Docker's (the product) appeal to its audience. "Docker has been best at delivering strong developer support and focused investment in its product," he wrote. "Clearly, they know they have to keep the momentum, and they are doing that by putting intense effort into product functionality." He also mentioned that Docker's commitment to open source has accelerated adoption by "[allowing] people to build around their features as they are being built."
Though containerization itself isn't new, as Rob Markovich of IT monitoring-service makers [Moogsoft][4] pointed out, Docker's implementation makes it new. "Docker is considered a next-generation virtualization technology given its more modern, lightweight form [of containerization]," he wrote in an email. "[It] brings an opportunity for an order-of-magnitude leap forward for software development teams seeking to deploy code faster."
### The bad ###
What's less appealing about Docker boils down to two issues: the complexity of using the product, and the direction of the company behind it.
Samir Ghosh, CEO of enterprise PaaS outfit [WaveMaker][5], gave Docker a thumbs-up for simplifying the complex scripting typically needed for continuous delivery. That said, he added, "That doesn't mean Docker is simple. Implementing Docker is complicated. There are a lot of supporting technologies needed for things like container management, orchestration, app stack packaging, intercontainer networking, data snapshots, and so on."
Ghosh noted the ones who feel the most of that pain are enterprises that want to leverage Docker for continuous delivery, but "it's even more complicated for enterprises that have diverse workloads, various app stacks, heterogenous infrastructures, and limited resources, not to mention unique IT needs for visibility, control and security."
Complexity also becomes an issue in troubleshooting and analysis, and Markovich cited the fact that Docker provides application abstraction as the reason why. "It is nearly impossible to relate problems with application performance running on Docker to the performance of the underlying infrastructure domains," he said in an email. "IT teams are going to need visibility -- a new class of monitoring and analysis tools that can correlate across and relate how everything is working up and down the Docker stack, from the applications down to the private or public infrastructure."
Quillin is most concerned about Docker's direction vis-à-vis its partner community: "Where will Docker make money, and where will their partners? If [Docker] wants to be the next VMware, it will need to take a page out of VMware's playbook in how to build and support a thriving partner ecosystem.
"Additionally, to drive broader adoption, especially in the enterprise, Docker needs to start acting like a market leader by releasing more fully formed capabilities that organizations can count on, versus announcements of features with 'some assembly required,' that don't exist yet, or that require you to 'submit a pull request' to fix it yourself."
Francia pointed to Docker's rapid ascent for creating its own difficulties. "[Docker] caught on so quickly that there's definitely places that we're focused on to add some features that a lot of users are looking forward to."
One such feature, he noted, was having a GUI. "Right now to use Docker," he said, "you have to be comfortable with the command line. There's no visual interface to using Docker. Right now it's all command line-based. And we know if we want to really be as successful as we think we can be, we need to be more approachable and a lot of people when they see a command line, it's a bit intimidating for a lot of users."
### The future ###
In that last respect, Docker recently started to make advances. Last week it [bought the startup Kitematic][6], whose product gave Docker a convenient GUI on Mac OS X (and will eventually do the same for Windows). Another acqui-hire, [SocketPlane][7], is being spun in to work on Docker's networking.
What remains to be seen is whether Docker's proposed solutions to its problems will be adopted, or whether another party -- say, [Red Hat][8] -- will provide a more immediately useful solution for enterprise customers who can't wait around for the chips to stop falling.
"Good technology is hard and takes time to build," said Richardson. "The big risk is that expectations spin wildly out of control and customers are disappointed."
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2896895/application-virtualization/best-and-worst-about-docker.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://shutterstock.com/
[2]:http://weave.works/
[3]:http://stackengine.com/
[4]:http://www.moogsoft.com/
[5]:http://www.wavemaker.com/
[6]:http://www.infoworld.com/article/2896099/application-virtualization/dockers-new-acquisition-does-containers-on-the-desktop.html
[7]:http://www.infoworld.com/article/2892916/application-virtualization/docker-snaps-up-socketplane-to-fix-networking-flaws.html
[8]:http://www.infoworld.com/article/2895804/application-virtualization/red-hat-wants-to-do-for-containers-what-its-done-for-linux.html

View File

@ -1,3 +1,4 @@
disylee 来一篇~
How to analyze and view Apache web server logs interactively on Linux
================================================================================
Whether you are in the web hosting business, or run a few web sites on a VPS yourself, chances are you want to display visitor statistics such as top visitors, requested files (dynamic or static), used bandwidth, client browsers, and referring sites, and so forth.
@ -140,4 +141,4 @@ via: http://xmodulo.com/interactive-apache-web-server-log-analyzer-linux.html
[3]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
[4]:http://goaccess.io/download#dependencies
[5]:http://goaccess.io/download
[6]:http://httpd.apache.org/docs/2.4/logs.html
[6]:http://httpd.apache.org/docs/2.4/logs.html

View File

@ -1,99 +0,0 @@
johnhoow translating...
How to Install Lightweight Budgie ( v8) Desktop in Ubuntu 14.04
================================================================================
Budgie is the flagship desktop of the Evolve OS Linux Distribution, and is an Evolve OS project. Designed with the modern user in mind, it focuses on simplicity and elegance. A huge advantage for the Budgie desktop is that it is not a fork of another project, but rather one written from scratch with integration in mind.
The [Budgie Desktop][1] tightly integrates with the GNOME stack, employing underlying technologies to offer an alternative desktop experience. In the spirit of open source, the project is compatible with and available for other Linux distributions.
Also note that Budgie can now emulate the look and feel of the GNOME 2 desktop, optionally, via a setting in the panel preferences.
### Features in the 0.8 release ###
- IconTasklist: Add pinning support
- IconTasklist: Use .desktop files for quicklists
- IconTasklist: Use .desktop files for icon resolution
- IconTasklist: Support “attention” hint (blue blink)
- Panel: Support dark theme (used by default)
- Add Menubar applet
- Panel: Initial autohide support (manual, not automatic)
- Panel: Support shadow onall screen edges
- Panel: Dynamic support for gnome panel theming
- RunDialog: Complete visual refresh (bootiful)
- BudgieMenu: Add compact mode, use by default
- BudgieMenu: Sort items by usage
- BudgieMenu: Remove old power option
- Editor: Add all menu options to UI
- Support from GNOME 3.10 up to 3.16 (unreleased, git)
- wm: Kill workspace animation (resolve after v8)
- wm: Better animations for changing of wallpapers
### Important information ###
- Budgie [released version 0.8][2] so it is still in development and a beta.
- No nnative network management; can be fixed by using Ubuntu's applet.
- Budgie is intended for the Evolve OS so even with this PPA it might be buggy.
- GNOME themes work better than the native Ubuntu themes.
- Ubuntus overlay scrollbars are not working.
- If you want to read more visit the Evolve OS website.
### Installation ###
Now, we'll install our Lightweight Budgie Desktop in our Ubuntu 14.04 LTS "Trusty" distribution of Linux Operating System. First of all, we'll need to add ppa repository to our Ubuntu PC. To do so, we'll need to execute the below command in a shell or terminal.
$ sudo add-apt-repository ppa:evolve-os/ppa
![Add Budgie Desktop PPA Repo](http://blog.linoxide.com/wp-content/uploads/2015/01/budgie-desktop-ppa.png)
Now, after we finish adding PPA to our Ubuntu Computer, we'll need to update the local repository index in it. It can be done by running the following command in the same terminal or shell after above is done.
$ sudo apt-get update
Then, finally, we'll install the one and only Budgie Desktop Environment in our Ubuntu machine running the latest version 14.04 LTS.
$ sudo apt-get install budgie-desktop
![Install Budgie Desktop](http://blog.linoxide.com/wp-content/uploads/2015/02/install-budgie-desktop.png)
**Notes**
It is in active development and features remain missing, including, but not limited to: no network management support, no volume control applet (keyboard keys will work fine), no notification system and no way to pin apps to the task bar.
As a workaround you can disable overlay scrollbars, set a different default theme and quit a session from the terminal using the following command:
$ gnome-session-quit
![Quitting Gnome Session](http://blog.linoxide.com/wp-content/uploads/2015/02/gnome-seesion-quit.png)
### Log into the Budgie Session ###
After installation is completed, well be able to select Budgie from the session selector of the Unity Greeter. For that, we'll need to logout the current user and get back to the login screen. Then, we'll be able to switch to Budgie Desktop Environment.
![Select Desktop Session](http://blog.linoxide.com/wp-content/uploads/2015/02/session-select.png)
### Budgie Desktop Environment ###
![Budgie Desktop Environment](http://blog.linoxide.com/wp-content/uploads/2015/02/budgie-desktop.png)
### Logging Out ###
You can simply execute **budgie-session --logout** in a shell or terminal to logout it.
$ budgie-sessioon --logout
### Conclusion ###
Hurray! We have successfully installed our Lightweight Budgie Desktop Environment in our Ubuntu 14.04 LTS "Trusty" box. As we know, Budgie Desktop is still underdevelopment which makes it a lot of stuffs missing. Though its based on Gnomes GTK3, its not a fork. The desktop is written completely from scratch, and the design is elegant and well thought out. If you have any questions, comments, feedback please do write on the comment box below and let us know what stuffs needs to be added or improved. Thank You! Enjoy Budgie Desktop 0.8 :-)
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/install-lightweight-budgie-v8-desktop-ubuntu/
作者:[Arun Pyasi][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:https://evolve-os.com/budgie/
[2]:https://evolve-os.com/2014/11/16/courageous-budgie-v8-released/

View File

@ -1,175 +0,0 @@
zpl1025
How to Setup lftp - A Simple Command line FTP Program
================================================================================
Hi everyone, this article is about Lftp and how we can install Lftp in our Linux Operating System. [Lftp][1] is a command line based File Transfer Software also known as FTP Client which was developed by Alexander Lukyanov and was distributed as GNU General Public License. Besides FTP, it also supports FTPS, HTTP, HTTPS, HFTP, FISH, and SFTP. The program also supports FXP, allowing for data transfers between two FTP servers bypassing the client machine.
It has some awesome advanced features such as recursively mirroring entire directory trees and resuming downloads. Transfers can be scheduled for execution at a later time, bandwidth can be throttled, transfer queues can be created, and Unix shell-like job control is supported. The client can also be used interactively or automated with scripts.
### Installing Lftp ###
Before we try to run lftp, we have make sure that it is properly installed in our Linux Distribution. Here are some commands mentioned for installing lftp in the list common distribution of Linux.
**On Ubuntu 14.04 LTS**
In Ubuntu 14.04 LTS and its derivatives, we can install lftp using apt manager. So, to install it, we'll need to run the following commands in a shell or a terminal under sudo privilege.
$ sudo apt-get install lftp
![ubuntu install lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/ubuntu-install-lftp.png)
**On CentOS/Fedora/RHEL**
As lftp is also available in the repository of Fedora, CentOS and RHEL, we can use **yum** manager to install it.
$ sudo yum install lftp
![fedora lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/fedora-lftp.png)
**On Arch Linux**
It is also available in Arch Linux Package Repository so, we can simply use pacman to install it.
$ sudo pacman -S lftp
![archlinux install lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/archlinux-install-lftp.png)
**On OpenSuse**
Zypper, package management software for OpenSuse can be used to install lftp. Here is the command with which one can install it on their OpenSuse machine.
$ sudo zypper install lftp
![opensuse lftp install](http://blog.linoxide.com/wp-content/uploads/2015/03/lftp_install.png)
### Logging in ###
To login to a ftp server or sftp server, we'll first need to know about the required credential for the login like username, password, ports.
After that, we'll want to login using lftp client as basic usage.
$ lftp ftp://linoxide@localhost
![ftp login](http://blog.linoxide.com/wp-content/uploads/2015/03/lftp-login.png)
If we need to point a port to the login then, we'll need to add port as shown below.
$ lftp ftp://linoxide@localhost:21
![ftp login with ports](http://blog.linoxide.com/wp-content/uploads/2015/03/lftp-login-port.png)
### Navigation ###
We can use **ls** to list files and directories, **cd** to enter into a directory.
![ls and cd](http://blog.linoxide.com/wp-content/uploads/2015/03/ls-cd-lftp.png)
### Uploading and Download Files ###
We can use **pget** for downloading files from the remote server.
> pget linspeed.svg
![pget lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/pget-lftp.png)
We can use **put** for uploading files to the remote server.
> put linoxide.tar
![upload with put](http://blog.linoxide.com/wp-content/uploads/2015/03/put-upload.png)
To resume partially downloaded files/directories, we will use the -c switch:
> mirror -c Directory
>pget -c linoxide.tar
> put -c upload.tar
### Using Mirror ###
We can use mirror to download the whole directory pointed as the source.
> mirror remote local
![download with mirror](http://blog.linoxide.com/wp-content/uploads/2015/03/mirror.png)
There is also reverse mirror (mirror -R) which uploads or updates a directory tree on server.
> mirror -R local remote
![upload or update with mirror reverse](http://blog.linoxide.com/wp-content/uploads/2015/03/mirror-reverse.png)
To resume partially downloaded files/directories, we will use the -c switch:
> mirror -c Directory
### To Queue Items to Download ###
We can use queue option with lftp so that we can download selected files in a queue one by one as there is an option in GUI based clients to select and download in a queue. Here's an example on it.
To prevent queue from auto transferring while you add to it :
> queue stop
Now, we'll add them into queue.
> queue mirror "directory"
> queue pget "file.tar"
After the queue has been added, we should run queue start command.
> queue start
To remove the entire queue run the following command.
> queue -d
### Segmented Downloading ###
Here, in this example we are segmenting files into 3 segments, one can change it according to their own need.
A pget command using segmentation is **pget -n 3 file.tar**, where 3 is the number of segments.
> pget -n 3 file.tar
A mirror command using segmentation is **mirror --use-pget-n=3 directory**, where 3 is the number of segments.
> mirror --use-pget-n=3 linxoxide
We can use jobs -v to see the speeds of the individual segments as well as the total speed.
### To Stop, Resume or Kill a Transfer ###
To cancel a transfer we can press Ctrl+c . And to resume a download we can use the -c (--continue) switch as shown below.
> mirror -c directory
And to kill an active transfer we should run **kill** and to kill and delete all we'll need to run **kill all** as shown below.
> kill
> kill all
### Exiting ###
To quit from lftp, we should run exit command in the terminal or inside lftp interface.
> exit
### Conclusion ###
Hurray! We have successfully installed lftp and learned some basic major ways to use it. lftp is an awesome command line ftp client which supports a lot of additional functionality and cool features. It has a lot stuffs more than the other common ftp client. So, if you have any questions, suggestions, feedback please write them in the comment box below. Thank you ! Enjoy lftp :-)
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/setup-lftp-command-line-ftp/
作者:[Arun Pyasi][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:http://lftp.yar.ru/

View File

@ -0,0 +1,115 @@
5 Interesting Command Line Tips and Tricks in Linux Part 1
================================================================================
Are you making most out of the Linux? There are lots of helpful features which appears to be Tips and Tricks for many of Linux Users. Sometimes Tips and Tricks become the need. It helps you get productive with the same set of commands yet with enhanced functionality.
![5 Command Line Tips and Tricks](http://www.tecmint.com/wp-content/uploads/2015/03/5-Command-Line-Tips.jpg)
5 Command Line Tips and Tricks
Here we are starting a new series, where we will be writing some tips and tricks and will try to yield as more as we can in small time.
### 1. To audit the commands wed run in past, we use [history command][1]. Here is a sample output of history command. ###
# history
![history command example](http://www.tecmint.com/wp-content/uploads/2015/03/history-command.gif)
history command example
Obvious from output, the history command do not output the time stamp with the log of last executed commands. Any solution for this? Yeah! Run the below command.
# HISTTIMEFORMAT="%d/%m/%y %T "
# history
If you want to permanently append this change, add the below line to `~/.bashrc`.
export HISTTIMEFORMAT="%d/%m/%y %T "
and then, from terminal run,
# source ~/.bashrc
Explanation of commands and switches.
- history GNU History Library
- HISTIMEFORMAT Environmental Variable
- %d Day
- %m Month
- %y Year
- %T Time Stamp
- source in short send the contents of file to shell
- .bashrc is a shell script that BASH runs whenever it is started interactively.
![history Command Logs](http://www.tecmint.com/wp-content/uploads/2015/03/History-Command-Logs.gif)
history Command Logs
### 2. The next gem in the list is how to check disk write speed? Well one liner dd command script serves the purpose. ###
# dd if=/dev/zero of=/tmp/output.img bs=8k count=256k conv=fdatasync; rm -rf /tmp/output.img
![dd Command Example](http://www.tecmint.com/wp-content/uploads/2015/03/dd-Command-Example.gif)
dd Command Example
Explanation of commands and switches.
- dd Convert and Copy a file
- if=/dev/zero Read the file and not stdin
- of=/tmp/output.img Write to file and not stdout
- bs Read and Write maximum upto M bytes, at one time
- count Copy N input block
- conv Convert the file as per comma separated symbol list.
- rm Removes files and folder
- -rf (-r) removes directories and contents recursively and (-f) Force the removal without prompt.
### 3. How will you check the top six files that are eating out your space? A simple one liner script made from [du command][2], which is primarily used as file space usages. ###
# du -hsx * | sort -rh | head -6
![Check Disk Space Usage](http://www.tecmint.com/wp-content/uploads/2015/03/check-disk-space-usage.gif)
Check Disk Space Usage
Explanation of commands and switches.
- du Estimate file space usages
- -hsx (-h) Human Readable Format, (-s) Summaries Output, (-x) One File Format, skip directories on other file format.
- sort Sort text file lines
- -rf (-r) Reverse the result of comparison, (-f) Ignore case
- head output first n lines of file.
### 4. The next step involves statistics in terminal of a file of every kind. We can output the statistics related to a file with the help of stat (output file/fileSystem status) command. ###
# stat filename_ext (viz., stat abc.pdf)
![Check File Statistics](http://www.tecmint.com/wp-content/uploads/2015/03/Check-File-Statistics.gif)
Check File Statistics
### 5. The next and last but not the least, this one line script is for those, who are newbies. If you are an experienced user you probably dont need it, unless you want some fun out of it. Well newbies are Linux-command-line phobic and the below one liner will generate random man pages. The benefit is as a newbie you always get something to learn and never get bored. ###
# man $(ls /bin | shuf | head -1)
![Generate Random Man Pages](http://www.tecmint.com/wp-content/uploads/2015/03/Generate-Random-Man-Pages.gif)
Generate Random Man Pages
Explanation of commands and switches.
- man Linux Man pages
- ls Linux Listing Commands
- /bin System Binary file Location
- shuf Generate Random Permutation
- head Output first n line of file.
Thats all for now. If you know any such tips and tricks you may share with us and we will post the same in your words on our reputed Tecmint.com website.
If you want to share any tips and tricks that you cannot make into article you may share it at tecmint[dot]com[at]gmail[dot]com and we will include it in our article. Dont forget to provide us with your valuable feedback in the comments below. Keep connected. Like and share us and help us get spread.
--------------------------------------------------------------------------------
via: http://www.tecmint.com/5-linux-command-line-tricks/
作者:[Avishek Kumar][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/avishek/
[1]:http://www.tecmint.com/history-command-examples/
[2]:http://www.tecmint.com/check-linux-disk-usage-of-files-and-directories/

View File

@ -0,0 +1,132 @@
How to Test Your Internet Speed Bidirectionally from Command Line Using Speedtest-CLI Tool
================================================================================
We always need to check the speed of the Internet connection at home and office. What we do for this? Go to websites like Speedtest.net and begin test. It loads JavaScript in the web browser and then select best server based upon ping and output the result. It also uses a Flash player to produce graphical results.
What about headless server, where isnt any web based browser and the main point is, most of the servers are headless. The another bottleneck of such web browser based speed testing is that, you cant schedule the speed testing at regular interval. Here comes an application “Speedtest-cli” that removes such bottlenecks and let you test the speed of Internet connection from command line.
#### What is Speedtest-cli ####
The application is basically a script developed in Python programming Language. It measures Internet Bandwidth speed bidirectionally. It used speedtest.net infrastructure to measure the speed. Speedtest-cli is able to list server based upon physical distance, test against specific server, and gives you URL to share the result of your internet speed test.
To install latest speedtest-cli tool in Linux systems, you must have Python 2.4-3.4 or higher version installed on the system.
### Install speedtest-cli in Linux ###
There are two ways to install speedtest-cli tool. The first method involves the use of `python-pip` package while the second method is to download the Python script, make it executable and run, here I will cover both ways….
#### Install speedtest-cli Using pythin-pip ####
First you need to install `python-pip` package, then afterwards you can install the speedtest-cli tool using pip command as shown below.
$ sudo apt-get install python-pip
$ sudo pip install speedtest-cli
To upgrade speedtest-cli, at later stage, use.
$ sudo pip install speedtest-cli --upgrade
#### Install speedtest-cli Using Python Script ####
First download the python script from github using wget command, unpack the downloaded file (master.zip) and extract it..
$ wget https://github.com/sivel/speedtest-cli/archive/master.zip
$ unzip master.zip
After extracting the file, go to the extracted directory `speedtest-cli-master` and make the script file executable.
$ cd speedtest-cli-master/
$ chmod 755 speedtest_cli.py
Next, move the executable to `/usr/bin` folder, so that you dont need to type the full path everytime.
$ sudo mv speedtest_cli.py /usr/bin/
### Testing Internet Connection Speed with speedtest-cli ###
**1. To test Download and Upload speed of your internet connection, run the `speedtest-cli` command without any argument as shown below.**
$ speedtest_cli.py
![Test Download Upload Speed in Linux](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Download-Upload-Speed-in-Linux1.png)
Test Download Upload Speed in Linux
**2. To check the speed result in bytes in place of bits.**
$ speedtest_cli.py --bytes
![Test Internet Speed in Bytes](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Speed-in-Bytes.png)
Test Internet Speed in Bytes
**3. Share your bandwidth speed with your friends or family. You are provided with a link that can be used to download an image.**
![Share Internet Speed Results](http://www.tecmint.com/wp-content/uploads/2015/03/Share-Internet-Speed-Results.png)
Share Internet Speed Results
The following picture is a sample speed test result generated using above command.
![Speed Test Results](http://www.tecmint.com/wp-content/uploads/2015/03/Speed-Test-Results.png)
Speed Test Results
**4. Dont need any additional information other than Ping, Download and upload?**
$ speedtest_cli.py --simple
![Test Ping Download Upload Speed](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Ping-Download-Upload-Speed1.png)
Test Ping Download Upload Speed
**5. List the `speedtest.net` server based upon physical distance. The distance in km is mentioned.**
$ speedtest_cli.py --list
![Check Speedtest.net Servers](http://www.tecmint.com/wp-content/uploads/2015/03/Check-Speedtest-Servers.png)
Check Speedtest.net Servers
**6. The last stage generated a huge list of servers sorted on the basis of distance. How to get desired output? Say I only want to see the speedtest.net server located in Mumbai (India).**
$ speedtest_cli.py --list | grep -i Mumbai
![Check Nearest Server](http://www.tecmint.com/wp-content/uploads/2015/03/Check-Nearest-Server.png)
Check Nearest Server
**7. Test connection speed against a specific server. Use Server Id generated in example 5 and example 6 in above.**
$ speedtest_cli.py --server [server ID]
$ speedtest_cli.py --server [5060] ## Here server ID 5060 is used in the example.
![Test Connection Against Server](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Connection-Against-Server.png)
Test Connection Against Server
**8. To check the version number and help of `speedtest-cli` tool.**
$ speedtest_cli.py --version
![Check SpeedCli Version](http://www.tecmint.com/wp-content/uploads/2015/03/Check-SpeedCLi-Version.png)
Check SpeedCli Version
$ speedtest_cli.py --help
![SpeedCli Help](http://www.tecmint.com/wp-content/uploads/2015/03/SpeedCli-Help.png)
SpeedCli Help
**Note:** Latency reported by tool is not its goal and one should not rely on it. The relative latency values output is responsible for server selected to be tested against. CPU and Memory capacity will influence the result to certain extent.
### Conclusion ###
The tool is must for system administrators and developers. A simple script which runs without any issue. I must say that the application is wonderful, lightweight and do what it promises. I disliked Speedtest.net for the reason it was using flash, but speedtest-cli gave me a reason to love them.
speedtest_cli is a third party application and should not be used to automatically record the bandwidth speed. Speedtest.net is used by millions of users and it is a good idea to [Set Your Own Speedtest Mini Server][1].
Thats all for now, till then stay tuned and connected to Tecmint. Dont forget to give your valuable feedback in the comments below. Like and share us and help us get spread.
--------------------------------------------------------------------------------
via: http://www.tecmint.com/check-internet-speed-from-command-line-in-linux/
作者:[Avishek Kumar][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/avishek/
[1]:http://www.tecmint.com/speedtest-mini-server-to-test-bandwidth-speed/

View File

@ -0,0 +1,103 @@
How to access Gmail from the command line on Linux with Alpine
================================================================================
If you are a command-line lover, I am sure that you welcome with open arms any tool that allows you to perform at least one of your daily tasks using that powerful work environment, e.g., from [scheduling appointments][1] and [managing finances][2] to accessing [Facebook][3] and [Twitter][4].
In this post I will show you yet another pretty neat use case of Linux command-line: **accessing Google's Gmail service**. To do so, we are going to use Alpine, a versatile ncurses-based, command-line email client (not to be confused with Alpine Linux). We will configure Gmail's IMAP and SMTP settings in Alpine to receive and send email messages via Google mail servers in a terminal environment. At the end of this tutorial, you will realize that it will only take a few minimum steps to use any other mail servers in Alpine.
Granted there are already outstanding GUI-based email clients such as Thunderbird, Evolution or even web interface. So why would anyone be interested in using a command-line email client to access Gmail? The answer is simple. You need to get something done quickly and want to avoid using system resources unnecessarily. Or you are accessing a minimal headless server that does not have the X server installed. Or the X server on your desktop crashed, and you need to send emails urgently before fixing it. In all these situations Alpine can come in handy and get you going in no time.
Beyond simple editing, sending and receiving of text-based email messages, Alpine is able to encrypt, decrypt, and digitally sign email messages, and integrate seamlessly with TLS.
### Installing Alpine on Linux ###
In Red Hat-based distributions, install Alpine as follows. Note that on RHEL/CentOS, you need to enable [EPEL repository][5] first.
# yum install alpine
In Debian, Ubuntu or their derivatives, you will do:
# aptitude install alpine
After the installation is complete, you can launch the email client by running:
# alpine
The first time you run alpine, it will create a mail directory for the current user inside his/her home directory (~/mail), and bring up the main interface, as shown in the following screencast.
youtube视频发布的时候做个链接吧
<iframe width="615" height="346" frameborder="0" allowfullscreen="" src="http://www.youtube.com/embed/kuKiv3uze4U?feature=oembed"></iframe>
The user interface has the following sections:
![](https://farm9.staticflickr.com/8724/16618079590_6c236ce2c2_c.jpg)
Feel free to browse around a bit in order to become acquainted with Alpine. You can always return to the command prompt by hitting the 'Q' key any time. Note that all screens have context-related help available at the bottom of the screen.
Before proceeding further, we will create a default configuration file for Alpine. In order to do so, quit Alpine, and execute the following command from the command line:
# alpine -conf > /etc/pine.conf
### Configuring Alpine to Use a Gmail Account ###
Once you have installed Alpine and spent at least a few minutes to feel comfortable with its interface and menus, it's time to actually configure it to use an existing Gmail account.
Before following these steps in Alpine, remember to enable IMAP in your Gmail settings from the webmail interface. Once IMAP access is enabled in your Gmail account, proceed to the following steps to enable reading Gmail messages on Alpine.
First, launch Alpine.
Press 'S' for Setup, and then 'L' for collection lists to define groups of folders to help you better organize your mail:
![](https://farm8.staticflickr.com/7614/16779579656_690eda419c_o.png)
Add a new folder by pressing 'A' and fill the required information:
- **Nickname**: whatever name of your choice.
- **Server**: imap.gmail.com/ssl/user=yourgmailusername@gmail.com
You may leave Path and View blank.
Then press Ctrl+X and enter your password when prompted:
![](https://farm9.staticflickr.com/8611/16618079640_6f7dca336a_b.jpg)
If everything goes as expected, there should be a new folder named after the nickname that you chose earlier. You should find your Gmail mailboxes there:
![](https://farm8.staticflickr.com/7598/16804355052_10c1a6c5bd_b.jpg)
For verification, you can compare the contents of your Alpine's "Gmail Sent" mailbox with those of the web client:
![](https://farm8.staticflickr.com/7602/16619323939_d2eab3e162_c.jpg)
By default new mail checking/notification occurs automatically every 150 seconds. You can change this value, along with many others, in the /etc/pine.conf file. This configuration file is heavily commented for clarity. To set the desired mail check interval to 10 seconds, for example, you will need to do:
# The approximate number of seconds between checks for new mail
mail-check-interval=10
Finally, we need to configure an SMTP server to send email messages via Alpine. Go back to the Alpine's setup screen as explained earlier, and press 'C' to set the address of a Google's SMTP server. You will need to edit the value of the SMTP Server (for sending) line as follows:
smtp.gmail.com:587/tls/user=yourgmailusername@gmail.com
You will be prompted to save changes when you press 'E' to exit setup. Once you save the changes, you are on your way to sending emails through Alpine! To do that, just go to Compose in the main menu, and start enjoying your Gmail account from the command line.
### Conclusion ###
In this post we have discussed how to access Gmail in a terminal environment via a lightweight and powerful command-line email client called Alpine. Alpine is free software released under the Apache Software License 2.0, which is a software license compatible with the GPL. Alpine takes pride in being friendly for new users, yet powerful for seasoned system administrators at the same time. I hope that after reading this article you have come to realize how true that last statement is.
Feel free to leave your comments or questions using the form below. I look forward to hearing from you!
--------------------------------------------------------------------------------
via: http://xmodulo.com/gmail-command-line-linux-alpine.html
作者:[Gabriel Cánepa][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/gabriel
[1]:http://xmodulo.com/schedule-appointments-todo-tasks-linux-terminal.html
[2]:http://xmodulo.com/manage-personal-expenses-command-line.html
[3]:http://xmodulo.com/access-facebook-command-line-linux.html
[4]:http://xmodulo.com/access-twitter-command-line-linux.html
[5]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html

View File

@ -0,0 +1,151 @@
zpl1025
Systemd Boot Process a Close Look in Linux
================================================================================
The way Linux system boots up is quite complex and there have always been need to optimize the way it works. The traditional boot up process of Linux system is mainly handled by the well know init process (also known as SysV init boot system), while there have been identified inefficiencies in the init based boot system, systemd on the other hand is another boot up manager for Linux based systems which claims to overcome the shortcomings of [traditional Linux SysV init][2] based system. We will be focusing our discussion on the features and controversies of systemd , but in order to understand it, lets see how Linux boot process is handled by traditional SysV init based system. Kindly note that Systemd is still in testing phase and future releases of Linux operating systems are preparing to replace their current boot process with Systemd Boot manager.
### Understanding Linux Boot Process ###
Init is the very first process that starts when we power on our Linux system. Init process is assigned the PID of 1. It is parent process for all other processes on the system. When a Linux computer is started, the processor searches for the BIOS on the system memory, BIOS then tests system resources and find the first boot device, usually set as hard disk, it looks for Master Boot Record (MBR) on the hard disk, loads its contents to memory and passes control to it, the further boot process is controlled by MBR.
Master Boot Record initiates the Boot loader (Linux has two well know boot loaders, GRUB and LILO, 80% of Linux systems are using GRUB loaders), this is the time when GRUB or LILO loads the kernel module. Kernel module immediately looks for the “init” in /sbin partition and executes it. Thats from where init becomes the parent process of Linux system. The very first file read by init is /etc/inittab , from here init decides the run level of our Linux operating system. It finds partition table information from /etc/fstab file and mounts partitions accordingly. Init then launches all the services/scripts specified in the /etc/init.d directory of the default run level. This is the step where all services are initialized by init one by one. In this process, one service at a time is started by init , all services/daemons run in the background and init keeps managing them.
The shutdown process works in pretty much the reverse function, first of all init stops all services and then filesystem is un-mounted at the last stage.
The above mentioned process has some shortcomings. The need to replace traditional init with something better have been felt from long time now. Some replacements have been developed and implemented as well. The well know replacements for this init based system as Upstart , Epoch , Mudar and Systemd. Systemd is the one which got most attention and is considered to be better of all available alternatives.
### Understanding Systemd ###
Reducing the boot time and computational overhead is the main objective of developing the Systemd. Systemd (System Manager Daemon) , originally developed under GNU General Public License, is now under GNU Lesser General Public License, it is most frequently discussed boot and services manager these days. If your Linux system is configured to use Systemd boot manager, then instead of traditional SysV init, startup process will be handled by systemd. One of the core feature of Systemd is that it supports post boot scripts of SysV Init as well .
Systemd introduces the parallelization boot concept, it creates a sockets for each daemon that needs to be started, these sockets are abstracted from the processes that use them so they allow daemons to interact with each other. Systemd creates news processes and assigns every process a control group. The processes in different control groups use kernel to communicate with each others. The way [systemd handles the start up process][2] is quite neat, and much optimized as compared to the traditional init based system. Lets review some of the core features of Systemd.
- The boot process is much simpler as compared to the init
- Systemd provides concurrent and parallel process of system boot so it ensures better boot speed
- Processes are tracked using control groups, not by PIDs
- Improved ways to handle boot and services dependencies.
- Capability of system snapshots and restore
- Monitoring of started services ; also capabale of restarting any crashed services
- Includes systemd-login module to control user logins.
- Ability to add and remove components
- Low memory foot prints and ability for job scheduling
- Journald module for event logging and syslogd module for system log.
Systemd handles system shutdown process in well organized way as well. It has three script located inside /usr/lib/systemd/ directory, named systemd-halt.service , systemd-poweroff.service , systemd-reboot.service . These scripts are executed when user choose to shutdown, reboot or halt Linux system. In the event of shutdown, systemd first un-mount all file systems and disabled all swap devices, detaches the storage devices and kills remaining processes.
![](http://images.linoxide.com/systemd-boot-process.jpg)
### Structural Overview of Systemd ###
Lets review Linux system boot process with some structural details when it is using systemd as boot and services manager. For the sake of simplicity, we are listing the process in steps below:
**1.** The very first steps when you power on your system is the BIOS initialization. BIOS reads the boot device settings, locates and hands over control to MBR (assuming hard disk is set as first boot device).
**2.** MBR reads information from Grub or LILO boot loader and initializes the kernel. Grub or LILO will specify how to handle further system boot up. If you have specified systemd as boot manager in grub configuration file, then the further boot process will be handled by systemd. Systemd handles boot and services management process using “targets”. The ”target" files in systemd are used for grouping different boot units and start up synchronization processes.
**3.** The very first target executed by systemd is **default.target**. But default.target is actually a symlink to **graphical.target**. Symlink in linux works just like shortcuts in Windows. Graphical.target file is located at /usr/lib/systemd/system/graphical.target path. We have shown the contents of graphical.target file in the following screenshot.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/graphical1.png)
**4.** At this stage, **multi-user.target** has been invoked and this target keeps its further sub-units inside “/etc/systemd/system/multi-user.target.wants” directory. This target sets the environment for multi user support. None root users are enabled at this stage of boot up process. Firewall related services are started on this stage of boot as well.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/multi-user-target1.png)
"multi-user.target" passes control to another layer “**basic.target**”.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/Basic-Target.png)
**5.** "basic.target" unit is the one that starts usual services specially graphical manager service. It uses /etc/systemd/system/basic.target.wants directory to decide which services need to be started, basic.target passes on control to **sysinit.target**.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/Sysint-Target.png)
**6.** "sysinit.target" starts important system services like file System mounting, swap spaces and devices, kernel additional options etc. sysinit.target passes on startup process to **local-fs.target**. The contents of this target unit are shown in the following screenshot.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/local-FS-Target.png)
**7.** local-fs.target , no user related services are started by this target unit, it handles core low level services only. This target is the one performing actions on the basis of /etc/fstab and /etc/inittab files.
### Analyzing System Boot Performancev ###
Systemd offers tool to identify and troubleshoot boot related issues or performance concerns. **Systemd-analyze** is a built-in command which lets you examine boot process. You can find out the units which are facing errors during boot up and can further trace and correct boot component issues. Some useful systemd-analyze commands are listed below.
**systemd-analyze time** shows the time spent in kernel, and normal user space.
$ systemd-analyze time
Startup finished in 1440ms (kernel) + 3444ms (userspace)
**systemd-analyze blame** prints a list of all running units, sorted by the time taken by then to initialize, in this way you can have idea of which services are taking long time to start during boot up.
$ systemd-analyze blame
2001ms mysqld.service
234ms httpd.service
191ms vmms.service
**systemd-analyze verify** shows if there are any syntax errors in the system units. **Systemd-analyze plot** can be used to write down whole startup process to a SVG formate file. Whole boot process is very lengthy to read, so using this command we can dump the output of whole boot processing into a file and then can read and analyze it further. The following command will take care of this.
systemd-analyze plot > boot.svg
### Systemd Controversies ###
Systemd has not been lucky to receive love from everyone, some professionals and administrators have different opinions on its working and developments. Per critics of Systemd, its “not Unix-like” because it tried to replace some system services. Some professionals dont like the idea of using binary configuration files as well. It is said that editing systemd configuration is not an easy tasks and there are no graphical tools available for this purpose.
### Test Systemd on Ubuntu 14.04 and 12.04 ###
Originally, Ubuntu decided to replace their current boot process with Systemd in Ubuntu 16.04 LTS. Ubuntu 16.04 is supposed to be released in April 2016, but considering the popularity and demand for Systemd, the upcoming **Ubuntu 15.04** will have it as its default boot manager. Good news is that the user of Ubuntu 14.04 Trusty Tahr And Ubuntu 12.04 Precise Pangolin can still test Systemd on their machines. The test process is not very complex, all you need to do is to include the related PPA to the system, update repository and perform system upgrade.
**Disclaimer** : Please note that its still in testing and development stages for Ubuntu. Testing packages might have any unknown issues and in worst case scenario, they might break your system configurations. Make sure you backup your important data before trying this upgrade.
Run following command on the terminal to add ppa to the your ubuntu system:
sudo add-apt-repository ppa:pitti/systemd
You will be seeing warning message here because we are trying to use temporary/testing PPA which is not recommended for production machines.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/PPA-Systemd1.png)
Now update the APT Package Manager repositories by running the following command.
sudo apt-get update
![](http://blog.linoxide.com/wp-content/uploads/2015/03/Update-APT1.png)
Perform system upgrade by running the following command.
sudo apt-get dist-upgrade
![](http://blog.linoxide.com/wp-content/uploads/2015/03/System-Upgrade.png)
Thats all, you should be able to see configuration files of systemd on your ubuntu system now, just browse to the /lib/systemd/ directory and see the files there.
Alright, its time we edit grub configuration file and specify systemd as default Boot Manager. Edit grub file using Gedit text editor.
sudo gedit /etc/default/grub
![](http://blog.linoxide.com/wp-content/uploads/2015/03/Edit-Grub.png)
Here edit GRUB_CMDLINE_LINUX_DEFAULT parameter in this file and specify the value of this parameter as: "**init=/lib/systemd/systemd**"
![](http://blog.linoxide.com/wp-content/uploads/2015/03/Grub-Systemd.png)
Thats all, your ubuntu system is no longer using its traditional boot manager, its using Systemd Manager now. Reboot your system and see the systemd boot up process.
![](http://blog.linoxide.com/wp-content/uploads/2015/03/Sytemd-Boot.png)
### Conclusion ###
Systemd is no doubt a step forward towards improving Linux Boot process; its an awesome suite of libraries and daemons that together improve the system boot and shutdown process. Many linux distributions are preparing to support it as their official boot manager. In future releases of Linux distros, we can hope to see systemd startup. But on the other hand, in order to succeed and to be adopted on the wide scale, systemd should address the concerns of critics as well.
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/systemd-boot-process/
作者:[Aun Raza][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunrz/
[1]:http://linoxide.com/booting/boot-process-of-linux-in-detail/
[2]:http://0pointer.de/blog/projects/self-documented-boot.html

View File

@ -0,0 +1,266 @@
11 Linux Terminal Commands That Will Rock Your World
================================================================================
I have been using Linux for about 10 years and what I am going to show you in this article is a list of Linux commands, tools and clever little tricks that I wish somebody had shown me from the outset instead of stumbling upon them as I went along.
![Linux Keyboard Shortcuts.](http://f.tqn.com/y/linux/1/L/m/J/1/keyboardshortcuts.png)
Linux Keyboard Shortcuts.
### 1. Useful Command Line Keyboard Shortcuts ###
The following keyboard shortcuts are incredibly useful and will save you loads of time:
- CTRL + U - Cuts text up until the cursor.
- CTRL + K - Cuts text from the cursor until the end of the line
- CTRL + Y - Pastes text
- CTRL + E - Move cursor to end of line
- CTRL + A - Move cursor to the beginning of the line
- ALT + F - Jump forward to next space
- ALT + B - Skip back to previous space
- ALT + Backspace - Delete previous word
- CTRL + W - Cut word behind cursor
- Shift + Insert - Pastes text into terminal
Just so that the commands above make sense look at the next line of text.
sudo apt-get intall programname
As you can see I have a spelling error and for the command to work I would need to change "intall" to "install".
Imagine the cursor is at the end of the line. There are various ways to get back to the word install to change it.
I could press ALT + B twice which would put the cursor in the following position (denoted by the ^ symbol):
sudo apt-get^intall programname
Now you could press the cursor key and insert the ''s' into install.
Another useful command is "shift + insert" especially If you need to copy text from a browser into the terminal.
![](http://f.tqn.com/y/linux/1/L/n/J/1/sudotricks2.png)
### 2. SUDO !! ###
You are going to really thank me for the next command if you don't already know it because until you know this exists you curse yourself every time you enter a command and the words "permission denied" appear.
- sudo !!
How do you use sudo !!? Simply. Imagine you have entered the following command:
apt-get install ranger
The words "Permission denied" will appear unless you are logged in with elevated privileges.
sudo !! runs the previous command as sudo. So the previous command now becomes:
sudo apt-get install ranger
If you don't know what sudo is [start here][1].
![Pause Terminal Applications.](http://f.tqn.com/y/linux/1/L/o/J/1/pauseapps.png)
Pause Terminal Applications.
### 3. Pausing Commands And Running Commands In The Background ###
I have already written a guide showing how to run terminal commands in the background.
- CTRL + Z - Pauses an application
- fg - Returns you to the application
So what is this tip about?
Imagine you have opened a file in nano as follows:
sudo nano abc.txt
Halfway through typing text into the file you realise that you quickly want to type another command into the terminal but you can't because you opened nano in foreground mode.
You may think your only option is to save the file, exit nano, run the command and then re-open nano.
All you have to do is press CTRL + Z and the foreground application will pause and you will be returned to the command line. You can then run any command you like and when you have finished return to your previously paused session by entering "fg" into the terminal window and pressing return.
An interesting thing to try out is to open a file in nano, enter some text and pause the session. Now open another file in nano, enter some text and pause the session. If you now enter "fg" you return to the second file you opened in nano. If you exit nano and enter "fg" again you return to the first file you opened within nano.
![nohup.](http://f.tqn.com/y/linux/1/L/p/J/1/nohup3.png)
nohup.
### 4. Use nohup To Run Commands After You Log Out Of An SSH Session ###
The [nohup command][2] is really useful if you use the ssh command to log onto other machines.
So what does nohup do?
Imagine you are logged on to another computer remotely using ssh and you want to run a command that takes a long time and then exit the ssh session but leave the command running even though you are no longer connected then nohup lets you do just that.
For instance I use my [Raspberry PI][3] to download distributions for review purposes.
I never have my Raspberry PI connected to a display nor do I have a keyboard and mouse connected to it.
I always connect to the Raspberry PI via [ssh][4] from a laptop. If I started downloading a large file on the Raspberry PI without using the nohup command then I would have to wait for the download to finish before logging off the ssh session and before shutting down the laptop. If I did this then I may as well have not used the Raspberry PI to download the file at all.
To use nohup all I have to type is nohup followed by the command as follows:
nohup wget http://mirror.is.co.za/mirrors/linuxmint.com/iso//stable/17.1/linuxmint-17.1-cinnamon-64bit.iso &
![Schedule tasks with at.](http://f.tqn.com/y/linux/1/L/q/J/1/at.png)
Schedule tasks with at.
### 5. Running A Linux Command 'AT' A Specific Time ###
The 'nohup' command is good if you are connected to an SSH server and you want the command to remain running after logging out of the SSH session.
Imagine you want to run that same command at a specific point in time.
The 'at' command allows you to do just that. 'at' can be used as follows.
at 10:38 PM Fri
at> cowsay 'hello'
at> CTRL + D
The above command will run the program [cowsay][5] at 10:38 PM on Friday evening.
The syntax is 'at' followed by the date and time to run.
When the at> prompt appears enter the command you want to run at the specified time.
The CTRL + D returns you to the cursor.
There are lots of different date and time formats and it is worth checking the man pages for more ways to use 'at'.
![](http://f.tqn.com/y/linux/1/L/l/J/1/manmost.png)
### 6. Man Pages ###
Man pages give you an outline of what commands are supposed to do and the switches that can be used with them.
The man pages are kind of dull on their own. (I guess they weren't designed to excite us).
You can however do things to make your usage of man more appealing.
export PAGER=most
You will need to install 'most; for this to work but when you do it makes your man pages more colourful.
You can limit the width of the man page to a certain number of columns using the following command:
export MANWIDTH=80
Finally, if you have a browser available you can open any man page in the default browser by using the -H switch as follows:
man -H <command>
Note this only works if you have a default browser set up within the $BROWSER environment variable.
![View Processes With htop.](http://f.tqn.com/y/linux/1/L/r/J/1/nohup2.png)
View Processes With htop.
### 7. Use htop To View And Manage Processes ###
Which command do you currently use to find out which processes are running on your computer? My bet is that you are using '[ps][6]' and that you are using various switches to get the output you desire.
Install '[htop][7]'. It is definitely a tool you will wish that you installed earlier.
htop provides a list of all running processes in the terminal much like the file manager in Windows.
You can use a mixture of function keys to change the sort order and the columns that are displayed. You can also kill processes from within htop.
To run htop simply type the following into the terminal window:
htop
![Command Line File Manager - Ranger.](http://f.tqn.com/y/linux/1/L/s/J/1/ranger.png)
Command Line File Manager - Ranger.
### 8. Navigate The File System Using ranger ###
If htop is immensely useful for controlling the processes running via the command line then [ranger][8] is immensely useful for navigating the file system using the command line.
You will probably need to install ranger to be able to use it but once installed you can run it simply by typing the following into the terminal:
ranger
The command line window will be much like any other file manager but it works left to right rather than top to bottom meaning that if you use the left arrow key you work your way up the folder structure and the right arrow key works down the folder structure.
It is worth reading the man pages before using ranger so that you can get used to all keyboard switches that are available.
![Cancel Linux Shutdown.](http://f.tqn.com/y/linux/1/L/t/J/1/shutdown.png)
Cancel Linux Shutdown.
### 9. Cancel A Shutdown ###
So you started the [shutdown][9] either via the command line or from the GUI and you realised that you really didn't want to do that.
shutdown -c
Note that if the shutdown has already started then it may be too late to stop the shutdown.
Another command to try is as follows:
- [pkill][10] shutdown
![Kill Hung Processes With XKill.](http://f.tqn.com/y/linux/1/L/u/J/1/killhungprocesses.png)
Kill Hung Processes With XKill.
### 10. Killing Hung Processes The Easy Way ###
Imagine you are running an application and for whatever reason it hangs.
You could use 'ps -ef' to find the process and then kill the process or you could use 'htop'.
There is a quicker and easier command that you will love called [xkill][11].
Simply type the following into a terminal and then click on the window of the application you want to kill.
xkill
What happens though if the whole system is hanging?
Hold down the 'alt' and 'sysrq' keys on your keyboard and whilst they are held down type the following slowly:
- [REISUB][12]
This will restart your computer without having to hold in the power button.
![youtube-dl.](http://f.tqn.com/y/linux/1/L/v/J/1/youtubedl2.png)
youtube-dl.
### 11. Download Youtube Videos ###
Generally speaking most of us are quite happy for Youtube to host the videos and we watch them by streaming them through our chosen media player.
If you know you are going to be offline for a while (i.e. due to a plane journey or travelling between the south of Scotland and the north of England) then you may wish to download a few videos onto a pen drive and watch them at your leisure.
All you have to do is install youtube-dl from your package manager.
You can use youtube-dl as follows:
youtube-dl url-to-video
You can get the url to any video on Youtube by clicking the share link on the video's page. Simply copy the link and paste it into the command line (using the shift + insert shortcut).
### Summary ###
I hope that you found this list useful and that you are thinking "i didn't know you could do that" for at least 1 of the 11 items listed.
--------------------------------------------------------------------------------
via: http://linux.about.com/od/commands/tp/11-Linux-Terminal-Commands-That-Will-Rock-Your-World.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/cs/linux101/g/sudo.htm
[2]:http://linux.about.com/library/cmd/blcmdl1_nohup.htm
[3]:http://linux.about.com/od/mobiledevicesother/a/Raspberry-Pi-Computer-Running-Linux.htm
[4]:http://linux.about.com/od/commands/l/blcmdl1_ssh.htm
[5]:http://linux.about.com/cs/linux101/g/cowsay.htm
[6]:http://linux.about.com/od/commands/l/blcmdl1_ps.htm
[7]:http://www.linux.com/community/blogs/133-general-linux/745323-5-commands-to-check-memory-usage-on-linux
[8]:http://ranger.nongnu.org/
[9]:http://linux.about.com/od/commands/l/blcmdl8_shutdow.htm
[10]:http://linux.about.com/library/cmd/blcmdl1_pkill.htm
[11]:http://linux.about.com/od/funnymanpages/a/funman_xkill.htm
[12]:http://blog.kember.net/articles/reisub-the-gentle-linux-restart/

View File

@ -0,0 +1,268 @@
How to Manage and Use LVM (Logical Volume Management) in Ubuntu
================================================================================
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/652x202xbanner-1.png.pagespeed.ic.VGSxDeVS9P.png)
In our [previous article we told you what LVM is and what you may want to use it for][1], and today we are going to walk you through some of the key management tools of LVM so you will be confident when setting up or expanding your installation.
As stated before, LVM is a abstraction layer between your operating system and physical hard drives. What that means is your physical hard drives and partitions are no longer tied to the hard drives and partitions they reside on. Rather, the hard drives and partitions that your operating system sees can be any number of separate hard drives pooled together or in a software RAID.
To manage LVM there are GUI tools available but to really understand what is happening with your LVM configuration it is probably best to know what the command line tools are. This will be especially useful if you are managing LVM on a server or distribution that does not offer GUI tools.
Most of the commands in LVM are very similar to each other. Each valid command is preceded by one of the following:
- Physical Volume = pv
- Volume Group = vg
- Logical Volume = lv
The physical volume commands are for adding or removing hard drives in volume groups. Volume group commands are for changing what abstracted set of physical partitions are presented to your operating in logical volumes. Logical volume commands will present the volume groups as partitions so that your operating system can use the designated space.
### Downloadable LVM Cheat Sheet ###
To help you understand what commands are available for each prefix we made a LVM cheat sheet. We will cover some of the commands in this article, but there is still a lot you can do that wont be covered here.
All commands on this list will need to be run as root because you are changing system wide settings that will affect the entire machine.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/01/lvm-cheatsheet.png)
### How to View Current LVM Information ###
The first thing you may need to do is check how your LVM is set up. The s and display commands work with physical volumes (pv), volume groups (vg), and logical volumes (lv) so it is a good place to start when trying to figure out the current settings.
The display command will format the information so its easier to understand than the s command. For each command you will see the name and path of the pv/vg and it should also give information about free and used space.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/01/539x225xpvdisplay.png.pagespeed.ic.u2XV5LBTYa.png)
The most important information will be the PV name and VG name. With those two pieces of information we can continue working on the LVM setup.
### Creating a Logical Volume ###
Logical volumes are the partitions that your operating system uses in LVM. To create a logical volume we first need to have a physical volume and volume group. Here are all of the steps necessary to create a new logical volume.
#### Create physical volume ####
We will start from scratch with a brand new hard drive with no partitions or information on it. Start by finding which disk you will be working with. (/dev/sda, sdb, etc.)
> Note: Remember all of the commands will need to be run as root or by adding sudo to the beginning of the command.
fdisk -l
If your hard drive has never been formatted or partitioned before you will probably see something like this in the fdisk output. This is completely fine because we are going to create the needed partitions in the next steps.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/fdisk.png.pagespeed.ce.AmAEsxm-7Q.png)
Our new disk is located at /dev/sdb so lets use fdisk to create a new partition on the drive.
There are a plethora of tools that can create a new partition with a GUI, [including Gparted][2], but since we have the terminal open already, we will use fdisk to create the needed partition.
From a terminal type the following commands:
fdisk /dev/sdb
This will put you in a special fdisk prompt.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/627x145xfdisk00.png.pagespeed.ic.I7S8bjoXQG.png)
Enter the commands in the order given to create a new primary partition that uses 100% of the new hard drive and is ready for LVM. If you need to change the partition size or want multiple partions I suggest using GParted or reading about fdisk on your own.
**Warning: The following steps will format your hard drive. Make sure you dont have any information on this hard drive before following these steps.**
- n = create new partition
- p = creates primary partition
- 1 = makes partition the first on the disk
Push enter twice to accept the default first cylinder and last cylinder.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/562x216xfdisk01.png.pagespeed.ic.DsSZ38kWcA.png)
To prepare the partition to be used by LVM use the following two commands.
- t = change partition type
- 8e = changes to LVM partition type
Verify and write the information to the hard drive.
- p = view partition setup so we can review before writing changes to disk
- w = write changes to disk
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/560x339xfdisk03.png.pagespeed.ic.FC8foICZsb.png)
After those commands, the fdisk prompt should exit and you will be back to the bash prompt of your terminal.
Enter pvcreate /dev/sdb1 to create a LVM physical volume on the partition we just created.
You may be asking why we didnt format the partition with a file system but dont worry, that step comes later.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/pvcreate.png.pagespeed.ce.W7VAr-ig3t.png)
#### Create volume Group ####
Now that we have a partition designated and physical volume created we need to create the volume group. Luckily this only takes one command.
vgcreate vgpool /dev/sdb1
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/vgcreate.png.pagespeed.ce.fVLzSmPZou.png)
Vgpool is the name of the new volume group we created. You can name it whatever youd like but it is recommended to put vg at the front of the label so if you reference it later you will know it is a volume group.
#### Create logical volume ####
To create the logical volume that LVM will use:
lvcreate -L 3G -n lvstuff vgpool
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/lvcreate.png.pagespeed.ce.vupLB-LJEW.png)
The -L command designates the size of the logical volume, in this case 3 GB, and the -n command names the volume. Vgpool is referenced so that the lvcreate command knows what volume to get the space from.
#### Format and Mount the Logical Volume ####
One final step is to format the new logical volume with a file system. If you want help choosing a Linux file system, read our [how to that can help you choose the best file system for your needs][3].
mkfs -t ext3 /dev/vgpool/lvstuff
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/571x424xmkfs.png.pagespeed.ic.ERMan1Mz0P.png)
Create a mount point and then mount the volume somewhere you can use it.
mkdir /mnt/stuff
mount -t ext3 /dev/vgpool/lvstuff /mnt/stuff
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/510x69xmount.png.pagespeed.ic.k0i1tvqgcV.png)
#### Resizing a Logical Volume ####
One of the benefits of logical volumes is you can make your shares physically bigger or smaller without having to move everything to a bigger hard drive. Instead, you can add a new hard drive and extend your volume group on the fly. Or if you have a hard drive that isnt used you can remove it from the volume group to shrink your logical volume.
There are three basic tools for making physical volumes, volume groups, and logical volumes bigger or smaller.
Note: Each of these commands will need to be preceded by pv, vg, or lv depending on what you are working with.
- resize can shrink or expand physical volumes and logical volumes but not volume groups
- extend can make volume groups and logical volumes bigger but not smaller
- reduce can make volume groups and logical volumes smaller but not bigger
Lets walk through an example of how to add a new hard drive to the logical volume “lvstuff” we just created.
#### Install and Format new Hard Drive ####
To install a new hard drive follow the steps above to create a new partition and add change its partition type to LVM (8e). Then use pvcreate to create a physical volume that LVM can recognize.
#### Add New Hard Drive to Volume Group ####
To add the new hard drive to a volume group you just need to know what your new partition is, /dev/sdc1 in our case, and the name of the volume group you want to add it to.
This will add the new physical volume to the existing volume group.
vgextend vgpool /dev/sdc1
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/vgextend.png.pagespeed.ce.atRPT1yg5f.png)
#### Extend Logical Volume ####
To resize the logical volume we need to say how much we want to extend by size instead of by device. In our example we just added a 8 GB hard drive to our 3 GB vgpool. To make that space usable we can use lvextend or lvresize.
lvextend -L8G /dev/vgpool/lvstuff
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/lvextend1.png.pagespeed.ce.6scXbQVUTT.png)
While this command will work you will see that it will actually resize our logical volume to 8 GB instead of adding 8 GB to the existing volume like we wanted. To add the last 3 available gigabytes you need to use the following command.
lvextend -L+3G /dev/vgpool/lvstuff
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/430x85xlvextend2.png.pagespeed.ic.7aBiTBrW03.png)
Now our logical volume is 11 GB in size.
#### Extend File System ####
The logical volume is 11 GB but the file system on that volume is still only 3 GB. To make the file system use the entire 11 GB available you have to use the command resize2fs. Just point resize2fs to the 11 GB logical volume and it will do the magic for you.
resize2fs /dev/vgpool/lvstuff
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/650x150xresize2fs.png.pagespeed.ic.Mx74EdMuk_.png)
**Note: If you are using a different file system besides ext3/4 please see your file systems resize tools.**
#### Shrink Logical Volume ####
If you wanted to remove a hard drive from a volume group you would need to follow the above steps in reverse order and use lvreduce and vgreduce instead.
1. resize file system (make sure to move files to a safe area of the hard drive before resizing)
1. reduce logical volume (instead of + to extend you can also use to reduce by size)
1. remove hard drive from volume group with vgreduce
#### Backing up a Logical Volume ####
Snapshots is a feature that some newer advanced file systems come with but ext3/4 lacks the ability to do snapshots on the fly. One of the coolest things about LVM snapshots is your file system is never taken offline and you can have as many as you want without taking up extra hard drive space.
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/652x202xbanner-2.png.pagespeed.ic.VtOUuqYX1W.png)
When LVM takes a snapshot, a picture is taken of exactly how the logical volume looks and that picture can be used to make a copy on a different hard drive. While a copy is being made, any new information that needs to be added to the logical volume is written to the disk just like normal, but changes are tracked so that the original picture never gets destroyed.
To create a snapshot we need to create a new logical volume with enough free space to hold any new information that will be written to the logical volume while we make a backup. If the drive is not actively being written to you can use a very small amount of storage. Once we are done with our backup we just remove the temporary logical volume and the original logical volume will continue on as normal.
#### Create New Snapshot ####
To create a snapshot of lvstuff use the lvcreate command like before but use the -s flag.
lvcreate -L512M -s -n lvstuffbackup /dev/vgpool/lvstuff
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/597x68xlvcreate-snapshot.png.pagespeed.ic.Rw2ivtcpPg.png)
Here we created a logical volume with only 512 MB because the drive isnt being actively used. The 512 MB will store any new writes while we make our backup.
#### Mount New Snapshot ####
Just like before we need to create a mount point and mount the new snapshot so we can copy files from it.
mkdir /mnt/lvstuffbackup
mount /dev/vgpool/lvstuffbackup /mnt/lvstuffbackup
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/565x68xmount-snapshot.png.pagespeed.ic.pVMkhK1o4x.png)
#### Copy Snapshot and Delete Logical Volume ####
All you have left to do is copy all of the files from /mnt/lvstuffbackup/ to an external hard drive or tar it up so it is all in one file.
**Note: tar -c will create an archive and -f will say the location and file name of the archive. For help with the tar command use man tar in the terminal.**
tar -cf /home/rothgar/Backup/lvstuff-ss /mnt/lvstuffbackup/
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/627x67xsnapshot-backup.png.pagespeed.ic.tw-2AK_lfZ.png)
Remember that while the backup is taking place all of the files that would be written to lvstuff are being tracked in the temporary logical volume we created earlier. Make sure you have enough free space while the backup is happening.
Once the backup finishes, unmount the volume and remove the temporary snapshot.
umount /mnt/lvstuffbackup
lvremove /dev/vgpool/lvstuffbackup/
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/630x102xlvremove.png.pagespeed.ic.yBWk47X6lF.png)
#### Deleting a Logical Volume ####
To delete a logical volume you need to first make sure the volume is unmounted, and then you can use lvremove to delete it. You can also remove a volume group once the logical volumes have been deleted and a physical volume after the volume group is deleted.
Here are all the commands using the volumes and groups weve created.
umount /mnt/lvstuff
lvremove /dev/vgpool/lvstuff
vgremove vgpool
pvremove /dev/sdb1 /dev/sdc1
![](http://cdn5.howtogeek.com/wp-content/uploads/2011/02/580x185xdelete-lvm.png.pagespeed.ic.3zJTo0Zu9k.png)
That should cover most of what you need to know to use LVM. If youve got some experience on the topic, be sure to share your wisdom in the comments.
--------------------------------------------------------------------------------
via: http://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.howtogeek.com/howto/36568/what-is-logical-volume-management-and-how-do-you-enable-it-in-ubuntu/
[2]:http://www.howtogeek.com/howto/17001/how-to-format-a-usb-drive-in-ubuntu-using-gparted/
[3]:http://www.howtogeek.com/howto/33552/htg-explains-which-linux-file-system-should-you-choose/

View File

@ -0,0 +1,67 @@
How to Use LVM on Ubuntu for Easy Partition Resizing and Snapshots
================================================================================
![](http://cdn5.howtogeek.com/wp-content/uploads/2015/03/ximg_55035707bbd74.png.pagespeed.ic.9_yebxUF1C.png)
Ubuntus installer offers an easy “Use LVM” checkbox. The description says it enables Logical Volume Management so you can take snapshots and more easily resize your hard disk partitions — heres how to do that.
LVM is a technology thats similar to [RAID arrays][1] or [Storage Spaces on Windows][2] in some ways. While this technology is particularly useful on servers, it can be used on desktop PCs, too.
### Should You Use LVM With Your New Ubuntu Installation? ###
The first question is whether you even want to use LVM with your Ubuntu installation. Ubuntu makes this easy to enable with a quick click, but this option isnt enabled by default. As the installer says, this allows you to resize partitions, create snapshots, merge multiple disks into a single logical volume, and so on — all while the system is running. Unlike with typical partitions, you dont have to shut down your system, boot from a live CD or USB drive, and [resize your partitions while they arent in use][3].
To be perfectly honest, the average Ubuntu desktop user probably wont realize whether theyre using LVM or not. But, if you want to do more advanced things later, LVM can help. LVM is potentially more complex, which could cause problems if you need to recover your data later — especially if youre not that experienced with it. There shouldnt be a noticeable performance penalty here — LVM is implemented right down in the Linux kernel.
![](http://cdn5.howtogeek.com/wp-content/uploads/2015/03/ximg_55035cbada6ae.png.pagespeed.ic.cnqyiKfCvi.png)
### Logical Volume Management Explained ###
Were previously [explained what LVM is][4]. In a nutshell, it provides a layer of abstraction between your physical disks and the partitions presented to your operating system. For example, your computer might have two hard drives inside it, each 1 TB in size. Youd have to have at least two partitions on these disks, and each of these partitions would be 1 TB in size.
LVM provides a layer of abstraction over this. Instead of the traditional partition on a disk, LVM would treat the disks as two separate “physical volumes” after you initialize them. You could then create “logical volumes” based on these physical volumes. For example, you could combine those two 1 TB disks into a single 2 TB partition. Your operating system would just see a 2 TB volume, and LVM would deal with everything in the background. A group of physical volumes and logical volumes is known as a “volume group.” A typical system will just have a single volume group.
This layer of abstraction makes it possibly to easily resize partitions, combine multiple disks into a single volume, and even take “snapshots” of a partitions file system while its running, all without unmounting it.
Note that merging multiple disks into a single volume can be a bad idea if youre not creating backups. Its like with RAID 0 — if you combine two 1 TB volumes into a single 2 TB volume, you could lose important data on the volume if just one of your hard disks fails. Backups are crucial if you go this route.
### Graphical Utilities for Managing Your LVM Volumes ###
Traditionally, [LVM volumes are managed with Linux terminal commands][5].These will work for you on Ubuntu, but theres an easier, graphical method anyone can take advantage of. If youre a Linux user used to using GParted or a similar partition manager, dont bother — GParted doesnt have support for LVM disks.
Instead, you can use the Disks utility included along with Ubuntu for this. This utility is also known as GNOME Disk Utility, or Palimpsest. Launch it by clicking the icon on the dash, searching for Disks, and pressing Enter. Unlike GParted, the Disks utility will display your LVM partitions under “Other Devices,” so you can format them and adjust other options if you need to. This utility will also work from a live CD or USB drive, too.
![](http://cdn5.howtogeek.com/wp-content/uploads/2015/03/ximg_550361b3772f7.png.pagespeed.ic.nZWwLJUywR.png)
Unfortunately, the Disks utility doesnt include support for taking advantage of LVMs most powerful features. Theres no options for managing your volume groups, extending partitions, or taking snapshots. You could do that from the terminal, but you dont have to. Instead, you can open the Ubuntu Software Center, search for LVM, and install the Logical Volume Management tool. You could also just run the **sudo apt-get install system-config-lvm** command in a terminal window. After its installed, you can open the Logical Volume Management utility from the dash.
This graphical configuration tool was made by Red Hat. Its a bit dated, but its the only graphical way to do this stuff without resorting to terminal commands.
Lets say you wanted to add a new physical volume to your volume group. Youd open the tool, select the new disk under Uninitialized Entries, and click the “Initialize Entry” button. Youd then find the new physical volume under Unallocated Volumes, and you could use the “Add to existing Volume Group” button to add it to the “ubuntu-vg” volume group Ubuntu created during the installation process.
![](http://cdn5.howtogeek.com/wp-content/uploads/2015/03/ximg_550363106789c.png.pagespeed.ic.drVInt3Weq.png)
The volume group view shows you a visual overview of your physical volumes and logical volumes. Here, we have two physical partitions across two separate hard drives. We have a swap partition and a root partition, just as Ubuntu sets up its partitioning scheme by default. Because weve added a second physical partition from another drive, theres now a good chunk of unused space.
![](http://cdn5.howtogeek.com/wp-content/uploads/2015/03/ximg_550363f631c19.png.pagespeed.ic.54E_Owcq8y.png)
To expand a logical partition into the physical space, you could select it under Logical View, click Edit Properties, and modify the size to grow the partition. You could also shrink it from here.
![](http://cdn5.howtogeek.com/wp-content/uploads/2015/03/ximg_55036893712d3.png.pagespeed.ic.ce7y_Mt0uF.png)
The other options in system-config-lvm allow you to set up snapshots and mirroring. You probably wont need these features on a typical desktop, but theyre available graphically here. Remember, you can also [do all of this with terminal commands][6].
--------------------------------------------------------------------------------
via: http://www.howtogeek.com/211937/how-to-use-lvm-on-ubuntu-for-easy-partition-resizing-and-snapshots/
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.howtogeek.com/162676/how-to-use-multiple-disks-intelligently-an-introduction-to-raid/
[2]:http://www.howtogeek.com/109380/how-to-use-windows-8s-storage-spaces-to-mirror-combine-drives/
[3]:http://www.howtogeek.com/114503/how-to-resize-your-ubuntu-partitions/
[4]:http://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/
[5]:http://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/
[6]:http://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/

View File

@ -0,0 +1,144 @@
How to share a directory with Samba on Fedora or CentOS
================================================================================
Nowadays sharing data across different computers is not something new at home or many work places. Riding on this trend, modern operating systems make it easy to share and exchange data transparently across computers via network file systems. If your work environment involves a mix of Microsoft Windows and Linux computers, one way to share files and folders among them is via SMB/CIFS, a cross-platform network file sharing protocol. Windows Microsoft natively supports SMB/CIFS, while Linux offers free software implementation of SMB/CIFS network protocol in Samba.
In this article, we will demonstrate **how to share a directory using Samba**. The Linux platform we will use is **Fedora or CentOS**. This article is dividied into four parts. First, we will install Samba under Fedora/CentOS environment. Next, we discuss how to adjust SELinux and firewall configurations to allow file sharing with Samba. Finally, we cover how to enable Samba to share a directory.
### Step One: Install Samba on Fedora or CentOS ###
First thing first. Let's install Samba and configure basic settings.
Check whether Samba application is already installed on your system by running:
$ rpm -q samba samba-common samba-client
If the above command doesn't show anything at all, it means that Samba is not installed. In that case, install Samba using the command below.
$ sudo yum install samba samba-common samba-client
Next, creates a local directory which will share data over network. This directory will be exported to remote users as a Samba share. In this tutorial, we will create this directory in the top-level directory '/', so make sure that you have the privileges to do it.
$ sudo mkdir /shared
If you want to create a shared directory inside your home directory (e.g., ~/shared), you must activate Samba home directory sharing in the SELinux options, which will be described below in more detail.
After creating /shared directory, set the privileges of the directory so other users can access it.
$ sudo chmod o+rw /shared
If you don't want other users to be able to have write to the directory, just remove the 'w' option in chmod command as follows.
$ sudo chmod o+r /shared
Next, create one empty file as a test. This file will be used to verify that he Samba share is mounted properly.
$ sudo touch /shared/file1
### Step Two: Configure SELinux for Samba ###
Next, we need to re-configure SELinux which is enabled by default in Fedora and CentOS distributions. SELinux allows Samba to read and modify files or directories only when they have the right security context (e.g., labeled with the 'samba_share_t' attribute).
The following command adds the necessary label to file-context configuration:
$ sudo semanage fcontext -a -t samba_share_t "<directory>(/.*)?"
Replace the <directory> with the local directory we created earlier for Samba share (e.g., /shared):
$ sudo semanage fcontext -a -t samba_share_t "/shared(/.*)?"
To activate the label change, we then must run the restorecon command like below.
$ sudo restorecon -R -v /shared
![](https://farm9.staticflickr.com/8584/16652774078_2055f45f70_b.jpg)
To share a directory inside our home directory via Samba, we must enable sharing home directory option in SELinux because it is disabled by default. The following command achieves the desired effect. Skip this step if you are not sharing your home directory.
$ sudo setsebool -P samba_enable_home_dirs 1
### Step Three: Configure Firewall for Samba ###
The next step is to open necessary TCP/UDP ports in the firewall settings for Samba to operate.
If you are using firewalld (e.g., on Fedora or CentOS 7), the following command will take care of permanent firewall rule change for Samba service.
$ sudo firewall-cmd --permanent --add-service=samba
If you are using iptables for your firewall (e.g., CentOS 6 or earlier), use the following commands to open up necessary Samba ports to the world.
$ sudo vi /etc/sysconfig/iptables
----------
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
Then restart iptables service:
$ sudo service iptables restart
### Step Four: Change Samba Configuration ###
The last step is to configure Samba to export a created local directory as a Samba-share.
Open the Samba configuration file with a text editor, and add the following lines at the bottom of the file.
$ sudo nano /etc/samba/smb.conf
----------
[myshare]
comment=my shared files
path=/shared
public=yes
writeable=yes
In the above the text inside a pair of brackets (e.g., "myshare") is the name of the Samba-shared resource, which will be used to access the Samba share from a remote host.
Create a Samba user account which is required to mount and export the Samba file system. To create a Samba user, use the smbpasswd tool. Note that the Samba user account must be the same as any existing Linux user. If you try to add a non-existing user with smbpasswd, it will give an error message.
If you don't want to use any existing Linux user as a Samba user, you can create a new dedicated user in your system. For safety, set the new user's login shell to /sbin/nologin, and do not create its home directory.
In this example, we are creating a new user named "sambaguest" as follows.
$ sudo useradd -M -s /sbin/nologin sambaguest
$ sudo passwd sambaguest
![](https://farm9.staticflickr.com/8702/16814479366_53f540d3ba_b.jpg)
After creating a new user, add the user as a Samba user using smbpasswd command. When this command asks a password, you can type a different password than the user's password.
$ sudo smbpasswd -a sambaguest
4. Activate the Samba service, and check whether the Samba service is running or not.
$ sudo systemctl enable smb.service
$ sudo systemctl start smb.service
$ sudo systemctl is-active smb
![](https://farm8.staticflickr.com/7607/16652984770_622f24bccc_b.jpg)
To see the list of shared directories in Samba, type the following command.
$ smbclient -U sambaguest -L localhost
![](https://farm8.staticflickr.com/7281/16220411103_06bf585901_b.jpg)
The following is a screenshot of accessing the Samba-shared directory on Thunar file manager, and doing copy-paste of file1. Note that the Samba share is accessible via "smb://<samba-server-IP-address>/myshare" address on Thunar.
![](https://farm8.staticflickr.com/7644/16218011174_c8b34fcedc_b.jpg)
--------------------------------------------------------------------------------
via: http://xmodulo.com/share-directory-samba-fedora-centos.html
作者:[Kristophorus Hadiono][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/kristophorus

View File

@ -0,0 +1,162 @@
tranlating by haimingfg
Sleuth Kit - Open Source Forensic Tool to Analyze Disk Images and Recover Files
================================================================================
SIFT is a Ubuntu based forensics distribution provided by SANS Inc. It consist of many forensics tools such as Sleuth kit / Autopsy etc . However, Sleuth kit/Autopsy tools can be installed on Ubuntu/Fedora distribution instead of downloading complete distribution of SIFT.
Sleuth Kit /Autopsy is open source digital forensics investigation tool which is used for recovering the lost files from disk image and analysis of images for incident response. Autopsy tool is a web interface of sleuth kit which supports all features of sleuth kit. This tool is available for both Windows and Linux Platforms.
### Install Sleuth kit ###
First of all, download Sleuth kit software from [sleuthkit][1] website. Use wget command to download it in terminal which is shown in the figure.
# wget http://cznic.dl.sourceforge.net/project/sleuthkit/sleuthkit/4.1.3/sleuthkit-4.1.3.tar.gz
![Download Sleuth Kit](http://blog.linoxide.com/wp-content/uploads/2015/03/download-sleuthkeit.png)
Extract the sleuthkit-4.1.3.tar.gz using following command and go inside the extracted directory
# tar -xvzf sleuthkit-4.1.3.tar.gz
![Extraction Process](http://blog.linoxide.com/wp-content/uploads/2015/03/extract.png)
Run following command which perform the requirement check before sleuth kit installation
#./configure
![configure](http://blog.linoxide.com/wp-content/uploads/2015/03/configure.png)
Make command compile the sleuth kit code.
#make
![make](http://blog.linoxide.com/wp-content/uploads/2015/03/make.png)
Finally following command install it under **/usr/local** path.
#make install
![make install](http://blog.linoxide.com/wp-content/uploads/2015/03/make-install.png)
### Install Autopsy Tool ###
Sleuth kit installation is complete and now we will install autopsy interface. Download Autopsy software from [sleuthkit's autopsy page][2] . Use wget command to download it in terminal which is shown in the figure.
# wget http://kaz.dl.sourceforge.net/project/autopsy/autopsy/2.24/autopsy-2.24.tar.gz
![Autpsy download link](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy.png)
Extract the autopsy-2.24.tar.gz using following command and go inside the extracted directory
# tar -xvzf autopsy-2.24.tar.gz
![Autopsy Extraction](http://blog.linoxide.com/wp-content/uploads/2015/03/Autopsy-extraction.png)
Configuration script of autopsy asks for NSRL (National Software Reference Library) and path of **Evidence_Locker** folder.
Enter "n" for NSRL prompt and create Evidence_Locker folder under **/usr/local** directory. Autopsy stores the configuration files, audit logs and output under Evidence_Locker folder.
#mkdir /usr/local/Evidence_Locker
#cd autopsy-2.24
#./configure
![Autopsy Configuration Script](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy-configuration.png)
After adding Evidence_Locker path in installation process , autopsy stores configuration files in it and shows a following message to run the autopsy program.
![Start Autopsy](http://blog.linoxide.com/wp-content/uploads/2015/03/start-autopsy.png)
Type **./autopsy** command in terminal to start the graphical interface of Sleuth kit tool.
![Autopsy Started](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy-started.png)
Type following address in the web browser to access the interface of autopsy .
http://localhost:9999/autopsy
Main web page of autopsy plugin is shown int the following figure.
![Main Page](http://blog.linoxide.com/wp-content/uploads/2015/03/main-interface.png)
Click on the **New Case** button to start analysis in autopsy tool. Enter the case name, description about the investigation and name of agent which is shown in the following figure.
![create new case](http://blog.linoxide.com/wp-content/uploads/2015/03/create-new-case1.png)
Following web page will appear after entering the details in the above page. Click on **Add Host** button to add details for the analyst machine.
![add host](http://blog.linoxide.com/wp-content/uploads/2015/03/add-host1.png)
Enter host name, description and time zone setting of analyst machine on the next page.
![add host-detial](http://blog.linoxide.com/wp-content/uploads/2015/03/add-host-detial.png)
Click on the **Add Image** button to add image file for forensics analysis.
![add image](http://blog.linoxide.com/wp-content/uploads/2015/03/add-image.png)
Click on the **Add Image File** button on the following web page. It opens new web page which require Path of image file and select type & importing method.
![Add image file](http://blog.linoxide.com/wp-content/uploads/2015/03/Add-image-file.png)
As shown in the following figure, we have entered path of Linux image file. In our case, image file is partition of disk.
![add image parition](http://blog.linoxide.com/wp-content/uploads/2015/03/add-image-parition.png)
Click on the next button and select **Calculate hash** option in the next page which is shown in the following figure. It also detect the file system type of the given image.
![image and file system detail](http://blog.linoxide.com/wp-content/uploads/2015/03/image-and-file-system-detail.png)
Following window shows the MD5 hash of the image file before static analysis .
![hash](http://blog.linoxide.com/wp-content/uploads/2015/03/hash1.png)
On the next web page, autopsy shows following information about the image file.
- mount point for the image
- name of image
- file system type of given image
Click on the **details** button to get more information about the given image file. It also offer extraction of unallocated fragments and strings from the volume of image file which is shown in the following figure.
![Image detail](http://blog.linoxide.com/wp-content/uploads/2015/03/image-details.png)
Click on **Analyze** button which is shown in the below figure to start analysis on given image . It opens another page which shows the multiple options for image analysis.
![analysis](http://blog.linoxide.com/wp-content/uploads/2015/03/analysis1.png)
Autopsy offer following features during image analysis process.
- File Analysis
- Keyword Search
- File Type
- Image Details
- Data Unit
File Analysis on given image of Linux partition is shown in the following figure.
![Analysis of image](http://blog.linoxide.com/wp-content/uploads/2015/03/Analysis-of-image.png)
It extracts all files and folders from the given image . Extraction of deleted files are shown int he figure.
![Deleted Files](http://blog.linoxide.com/wp-content/uploads/2015/03/deleted.png)
### Conclusion ###
Hopefully this article will be useful for the beginner in static forensics analysis of disk image. Autopsy is web interface for sleuth kit which provides features such as extraction of strings , recovery of deleted files, timeline analysis, extraction of web surfing history, keyword search and email analysis on windows and linux disk images.
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/autopsy-sleuth-kit-installation-ubuntu/
作者:[nido][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/naveeda/
[1]:http://www.sleuthkit.org/sleuthkit/download.php
[2]:http://www.sleuthkit.org/autopsy/download.php

View File

@ -0,0 +1,41 @@
How to enable ssh login without entering password
================================================================================
Assume that you are a user "aliceA" on hostA, and wish to ssh to hostB as user "aliceB", without entering her password on hostB. You can follow this guide to **enable ssh login without entering a password**.
First of all, you need to be logged in as user "aliceA" on hostA.
Generate a public/private rsa key pair by using ssh-keygen. The generated key pair will be stored in ~/.ssh directory.
$ ssh-keygen -t rsa
Then, create ~/.ssh directory on aliceB account at the destination hostB by running the following command. This step can be omitted if there is already .ssh directory at aliceB@hostB.
$ ssh aliceB@hostB mkdir -p .ssh
Finally, copy the public key of user "aliceA" on hostA to aliceB@hostB to enable password-less ssh.
$ cat .ssh/id_rsa.pub | ssh aliceB@hostB 'cat >> .ssh/authorized_keys'
From this point on, you no longer need to type in password to ssh to aliceB@hostB from aliceA@hostA.
### Troubleshooting ###
1. You are still asked for an SSH password even after enabling key authentication. In this case, check for system logs (e.g., /var/log/secure) to see if you see something like the following.
Authentication refused: bad ownership or modes for file /home/aliceB/.ssh/authorized_keys
In this case, failure of key authentication is due to the fact that the permission or ownership ~/.ssh/authorized_keys file is not correct. Typically this error can happen if ~/.ssh/authorized_keys is read accessible to anyone but yourself. To fix this problem, change the file permission as follows.
$ chmod 700 ~/.ssh/authorized_keys
--------------------------------------------------------------------------------
via: http://xmodulo.com/how-to-enable-ssh-login-without.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

View File

@ -0,0 +1,160 @@
How to set up networking between Docker containers
================================================================================
As you may be aware, Docker container technology has emerged as a viable lightweight alternative to full-blown virtualization. There are a growing number of use cases of Docker that the industry adopted in different contexts, for example, enabling rapid build environment, simplifying configuration of your infrastructure, isolating applications in multi-tenant environment, and so on. While you can certainly deploy an application sandbox in a standalone Docker container, many real-world use cases of Docker in production environments may involve deploying a complex multi-tier application in an ensemble of multiple containers, where each container plays a specific role (e.g., load balancer, LAMP stack, database, UI).
There comes the problem of **Docker container networking**: How can we interconnect different Docker containers spawned potentially across different hosts when we do not know beforehand on which host each container will be created?
One pretty neat open-source solution for this is [weave][1]. This tool makes interconnecting multiple Docker containers pretty much hassle-free. When I say this, I really mean it.
In this tutorial, I am going to demonstrate **how to set up Docker networking across different hosts using weave**.
### How Weave Works ###
![](https://farm8.staticflickr.com/7288/16662287067_27888684a7_b.jpg)
Let's first see how weave works. Weave creates a network of "peers", where each peer is a virtual router container called "weave router" residing on a distinct host. The weave routers on different hosts maintain TCP connections among themselves to exchange topology information. They also establish UDP connections among themselves to carry inter-container traffic. A weave router on each host is then connected via a bridge to all other Docker containers created on the host. When two containers on different hosts want to exchange traffic, a weave router on each host captures their traffic via a bridge, encapsulates the traffic with UDP, and forwards it to the other router over a UDP connection.
Each weave router maintains up-to-date weave router topology information, as well as container's MAC address information (similar to switch's MAC learning), so that it can make forwarding decision on container traffic. Weave is able to route traffic between containers created on hosts which are not directly reachable, as long as two hosts are interconnected via an intermediate weave router on weave topology. Optionally, weave routers can be set to encrypt both TCP control data and UDP data traffic based on public key cryptography.
### Prerequisite ###
Before using weave on Linux, of course you need to set up Docker environment on each host where you want to run [Docker][2] containers. Check out [these][3] [tutorials][4] on how to create Docker containers on Ubuntu or CentOS/Fedora.
Once Docker environment is set up, install weave on Linux as follows.
$ wget https://github.com/zettio/weave/releases/download/latest_release/weave
$ chmod a+x weave
$ sudo cp weave /usr/local/bin
Make sure that /usr/local/bin is include in your PATH variable by appending the following in /etc/profile.
export PATH="$PATH:/usr/local/bin"
Repeat weave installation on every host where Docker containers will be deployed.
Weave uses TCP/UDP 6783 port. If you are using firewall, make sure that these port numbers are not blocked by the firewall.
### Launch Weave Router on Each Host ###
When you want to interconnect Docker containers across multiple hosts, the first step is to launch a weave router on every host.
On the first host, run the following command, which will create and start a weave router container.
$ sudo weave launch
The first time you run this command, it will take a couple of minutes to download a weave image before launching a router container. On successful launch, it will print the ID of a launched weave router.
To check the status of the router, use this command:
$ sudo weave status
![](https://farm9.staticflickr.com/8632/16249607573_4514790cf5_c.jpg)
Since this is the first weave router launched, there will be only one peer in the peer list.
You can also verify the launch of a weave router by using docker command.
$ docker ps
![](https://farm8.staticflickr.com/7655/16681964438_51d8b18809_c.jpg)
On the second host, run the following command, where we specify the IP address of the first host as a peer to join.
$ sudo weave launch <first-host-IP-address>
When you check the status of the router, you will see two peers: the current host and the first host.
![](https://farm8.staticflickr.com/7608/16868571891_e66d4b8841_c.jpg)
As you launch more routers on subsequent hosts, the peer list will grow accordingly. When launching a router, just make sure that you specify any previously launched peer's IP address.
At this point, you should have a weave network up and running, which consists of multiple weave routers across different hosts.
### Interconnect Docker Containers across Multiple Hosts ###
Now it is time to launch Docker containers on different hosts, and interconnect them on a virtual network.
Let's say we want to create a private network 10.0.0.0/24, to interconnect two Docker containers. We will assign random IP addressses from this subnet to the containers.
When you create a Docker container to deploy on a weave network, you need to use weave command, not docker command. Internally, the weave command uses docker command to create a container, and then sets up Docker networking on it.
Here is how to create a Ubuntu container on hostA, and attach the container to 10.0.0.0/24 subnet with an IP addresss 10.0.0.1.
hostA:~$ sudo weave run 10.0.0.1/24 -t -i ubuntu
On successful run, it will print the ID of a created container. You can use this ID to attach to the running container and access its console as follows.
hostA:~$ docker attach <container-id>
Move to hostB, and let's create another container. Attach it to the same subnet (10.0.0.0/24) with a different IP address 10.0.0.2.
hostB:~$ sudo weave run 10.0.0.2/24 -t -i ubuntu
Let's attach to the second container's console as well:
hostB:~$ docker attach <container-id>
At this point, those two containers should be able to ping each other via the other's IP address. Verify that from each container's console.
![](https://farm9.staticflickr.com/8566/16868571981_d73c8e401b_c.jpg)
If you check the interfaces of each container, you will see an interface named "ethwe" which is assigned an IP address (e.g., 10.0.0.1 and 10.0.0.2) you specified.
![](https://farm8.staticflickr.com/7286/16681964648_013f9594b1_b.jpg)
### Other Advanced Usages of Weave ###
Weave offers a number of pretty neat features. Let me briefly cover a few here.
#### Application Isolation ####
Using weave, you can create multiple virtual networks and dedicate each network to a distinct application. For example, create 10.0.0.0/24 for one group of containers, and 10.10.0.0/24 for another group of containers, and so on. Weave automatically takes care of provisioning these networks, and isolating container traffic on each network. Going further, you can flexibly detach a container from one network, and attach it to another network without restarting containers. For example:
First launch a container on 10.0.0.0/24:
$ sudo weave run 10.0.0.2/24 -t -i ubuntu
Detach the container from 10.0.0.0/24:
$ sudo weave detach 10.0.0.2/24 <container-id>
Re-attach the container to another network 10.10.0.0/24:
$ sudo weave attach 10.10.0.2/24 <container-id>
![](https://farm8.staticflickr.com/7639/16247212144_c31a49714d_c.jpg)
Now this container should be able to communicate with other containers on 10.10.0.0/24. This is a pretty useful feature when network information is not available at the time you create a container.
#### Integrate Weave Networks with Host Network ####
Sometimes you may need to allow containers on a virtual weave network to access physical host network. Conversely, hosts may want to access containers on a weave network. To support this requirement, weave allows weave networks to be integrated with host network.
For example, on hostA where a container is running on network 10.0.0.0/24, run the following command.
hostA:~$ sudo weave expose 10.0.0.100/24
This will assign IP address 10.0.0.100 to hostA, so that hostA itself is also connected to 10.0.0.0/24 network. Obviously, you need to choose an IP address which is not used by any other containers on the network.
At this point, hostA should be able to access any containers on 10.0.0.0/24, whether or not the containers are residing on hostA. Pretty neat!
### Conclusion ###
As you can see, weave is a pretty useful Docker networking tool. This tutorial only covers a glimpse of [its powerful features][5]. If you are more ambitious, you can try its multi-hop routing, which can be pretty useful in multi-cloud environment, dynamic re-routing, which is a neat fault-tolerance feature, or even its distributed DNS service which allows you to name containers on weave networks. If you decide to use this gem in your environment, feel free to share your use case!
--------------------------------------------------------------------------------
via: http://xmodulo.com/networking-between-docker-containers.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://github.com/zettio/weave
[2]:http://xmodulo.com/recommend/dockerbook
[3]:http://xmodulo.com/manage-linux-containers-docker-ubuntu.html
[4]:http://xmodulo.com/docker-containers-centos-fedora.html
[5]:http://zettio.github.io/weave/features.html

View File

@ -0,0 +1,121 @@
Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS
================================================================================
> **Question**: I want to install CentOS desktop on VPS, and be able to access the desktop GUI remotely from home. What is a recommended way to set up and access CentOS-based remote desktop on VPS?
Nowadays teleworking or remote working with flexible hours is increasingly popular in tech industry. One of the enabling technologies behind this trend is remote desktop. Your desktop environment is in the cloud, and you can access the remote desktop anywhere you go, either from home or at your workplace.
This tutorial describes how you can set up CentOS based remote desktop on VPS. Here we are going to demonstrate CentOS 7 based environment.
We assume that you already created a CentOS 7 VPS instance somewhere (e.g., using [DigitalOcean][1] or Amazon EC2). Make sure that the VPS instance has at least 1GB memory. Otherwise, CentOS desktop will crash when you try to access remote desktop.
### Step One: Install CentOS Desktop ###
If an available CentOS image is a minimal version of CentOS without desktop, you will need to install desktop (e.g., GNOME) on your CentOS VPS before proceeding. For example, DigitalOcean's CentOS image is such a minimal version, which requires [desktop GUI installation][2] as follows.
# yum groupinstall "GNOME Desktop"
Reboot a VPS after finishing installation.
### Step Two: Install and Configure VNC Server ###
The next step is to install and configure VNC server. We are going to use TigerVNC, an open-source VNC server implementation.
# yum install tigervnc-server
Now create a user account (e.g., xmodulo) which will be used to access remote desktop.
# useradd xmodulo
# passwd xmodulo
When a user tries to access remote desktop using VNC, a dedicated VNC server daemon will be launched to handle its requests. This means that you will need to create a separate VNC server configuration for each user.
CentOS 7 relies on systemd to manage and configure system services. So we are going to configure VNC server for xmodulo user using systemd.
Let's first check the status of VNC server by running either command below:
# systemctl status vncserver@:.service
# systemctl is-enabled vncserver@.service
By default, freshly installed VNC service is not active (disabled).
![](https://farm8.staticflickr.com/7613/16877514732_8ccffe7b6b_b.jpg)
Now create a VNC service configuration for xmodulo user by copying a generic VNC service unit file as follows.
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
Open the configuration file with a text editor, and replace <USER> with an actual user name (e.g., xmodulo) under [Service] section. Also, append "-geometry <resolution>" parameter in ExecStart. In the end, the following two lines with bold font will be modified.
# vi /etc/systemd/system/vncserver@:1.service
----------
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l xmodulo -c "/usr/bin/vncserver %i -geometry 1024x768"
PIDFile=/home/xmodulo/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
Now set up (optional) VNC password for xmodulo user for security. For this, switch to the user, and run vncserver command.
# su - xmodulo
# vncserver
You will be prompted to enter a VNC password for the user. Once the password is set, you will need to use this password to gain access to remote desktop.
![](https://farm9.staticflickr.com/8752/16692564599_9c4e5da1b6_b.jpg)
Finally, reload services to activate the new VNC configuration:
# systemctl daemon-reload
and enable VNC service to make it start automatically upon boot:
# systemctl enable vncserver@:1.service
Check the port number that a VNC server is listening on by running:
# netstat -tulpn | grep vnc
![](https://farm8.staticflickr.com/7625/16692646729_7bb16c4897_b.jpg)
Port 5901 is the default port number for VNC client to connect to a VNC server.
### Step Three: Connect to Remote Desktop over SSH ###
By design, Remote Frame Buffer (RFB) protocol used by VNC is not a secure protocol. Thus it is not a good idea to directly connect to a remote VNC server running on VPS using a VNC client. Any sensitive information such as password could easily be leaked from VNC traffic. So instead, I strongly recommend that you [tunnel VNC traffic][3] over a secure SSH tunnel, as described here.
On a local host where you want to run VNC client, create an SSH tunnel to a remote VPS using the following command. When prompted for SSH password, type the password of the user.
$ ssh xmodulo@<VPS-IP-address> -L 5901:127.0.0.1:5901
Replace "xmodulo" with your own VNC user, and fill in the IP address of your VPS instance.
Once an SSH tunnel is established, remote VNC traffic will be routed over the SSH tunnel, and be sent to 127.0.0.1:5901.
Now go ahead and launch your favorite VNC client (e.g., vinagre), and connect to 127.0.0.1:5901.
![](https://farm8.staticflickr.com/7639/16691289910_fae83510fb_o.png)
You will be asked to enter a VNC password. When you type a correct VNC password, you will finally be able to CentOS remote desktop on VPS securely.
![](https://farm8.staticflickr.com/7614/16877678411_aa8349f6b1_c.jpg)
![](https://farm9.staticflickr.com/8702/16256320434_81f9b5b70c_c.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/centos-remote-desktop-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://ask.xmodulo.com/author/nanni
[1]:http://xmodulo.com/go/digitalocean
[2]:http://xmodulo.com/how-to-install-gnome-desktop-on-centos.html
[3]:http://xmodulo.com/how-to-set-up-vnc-over-ssh.html

View File

@ -0,0 +1,130 @@
4 Tools to Securely Delete Files from Linux
================================================================================
Any computer user with normal level skill set knows that any data removed from computer system can be recovered later with little bit of efforts. This is a good thing in the scenario when you have accidentally deleted your critical data. But in most cases, you don't want your private data to be recovered easily. Whenever we remove anything, the operating system deletes just the index of the particular data. It means that data is still there somewhere on the disk, this method is insecure, as any smart computer hacker can use any good data recovery tool to easily recover your deleted data. Linux users utilizes the well know “**rm**” command to remove data from their operating system, but “rm” command works in the conventional fashion. Data removed using this command can be recovered by special file recovery tools.
Lets see how we can safely and completely remove files/folders from our Linux system. The methods mentioned below remove data completely so it becomes very hard for recovery tools to find traces of the actual data and recover it.
### Secure-Delete ###
Secure-Delete is a set of tools for Linux operating system and they provide advanced techniques for permanent removal of files. Once Secure-Delete has been installed on any Linux system, it provides following four commands:
- srm
- smem
- sfill
- sswap
Run following command in the terminal to install it in ubuntu:
sudo apt-get install secure-delete
![secure delete](http://blog.linoxide.com/wp-content/uploads/2015/03/secure-delete.png)
Run following command to install it in RHEL, Fedora or Centos:
sudo yum install secure-delete
“**srm**” command works similarly to “rm” command, but instead of just deleting the file, it first overwrites it multiple times with some random data and then removes the file permanently. The syntax for this command is pretty simply, just specify the file or directory to remove and it will take care of the task.
sudo srm /home/aun/Documents/xueo/1.png
"**sfill**" checks the specified partition/directories for space marked as free or available, and then uses its algorithm to fill it up with some random data. In this way it ensures that there are no more recoverable files/folders on the partition.
sudo sfill /home
"**sswap**" command is used to securely wipe your swap partitions. Swap partition is used to store data for running programs. First of all find out your swap partition by running the following command:
cat /proc/swaps
Example output of above command is show below:
aun@eagle:~$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda5 partition 2084860 71216 -1
From here, you can see that swap is set to which partition, and then securely clean it by running the following command. Replace the "/dev/sda5" part with your partition name.
sudo sswap /dev/sda5
“**smem**” is used to clean the contents of memory, its true that RAM contents are cleaned when system is rebooted or powered off, but some residual traces of data still remain in the memory. This command provides secure memory cleaning, simly run smem command on the terminal.
smem
### Shred ###
"shred" command destroys files/folders contents in a way that it is impossible to recover. It keeps overwriting the files with randomly generated data patterns so in this way it becomes very hard to recover any data from them even if hackers or thief uses high level of data recovery tools/equipments. Shred is installed by default on all Linux distributions, if you want, you can find its installation path by running following command:
aun@eagle:~$ whereis shred
shred: /usr/bin/shred /usr/share/man/man1/shred.1.gz
Run following command to remove file using shred utility.
shred /home/aun/Documents/xueo/1.png
Run following command to securely remove any partition using shred ; Replace partition name with your desired partition.
shred /dev/sda5
Shred by default overwrites file with random contents 25 times. If you want it to overwrite file more than this, simply specify the desired number with "shred -n" option.
shred -n 100 filename
If you want to truncate and remove file after overwriting, use "shred -u" option
shred -u filename
### dd ###
This command is originally used for Disk Cloning. It is used to copy contents of one partition or disk to another. But it is also used for securely wiping out the contents of a hard disk or partitions. Run following command to overwrite your current data with random data.You don't need to install dd command, all Linux distributions include this command already.
sudo dd if=/dev/random of=/dev/sda
You can also overwrite the contents of hard disk or partitions by simply replacing everything with “zero”.
sudo dd if=/dev/zero of=/dev/sda
### Wipe ###
Wipe was originally developed to securely erase files from magnetic media. This command line utility writes special patterns to the files repeatedly. It uses fsync() call and/or the O_SYNC bit to force disk access. It uses Gutmann algorithm for repeated writes. You can remove contents of single file, folder or entire hard disk with this command, but whole hard disk format using wipe command will take good amount of time. The installation and use of this utility is pretty easy.
Install wipe on ubuntu by running the following command on the terminal.
sudo aptitude install wipe
![Wipe Linux](http://blog.linoxide.com/wp-content/uploads/2015/03/wipe.png)
Install Wipe in Redhat Linux, Centos or Fedora by running the following command:
sudo yum install wipe
Once the installation is complete, run following command on the terminal to get complete list of its available options:
man wipe
Remove any file or directory as:
wipe filename
Securely remove your tmp partition by running following command:
wipe -r /tmp
Use following command to remove contents of complete partition (replace partition name with your desired partition).
wipe /dev/sda1
### Conclusion ###
We hope you find this article useful, the privacy of your data is critical, its important to have such secure file removal utilities installed on your system so you may be able to remove your private data without fear of being recovered easily. All of the above mentioned tools are pretty lightweight, they take minimum system resources to run, and does not affect performance of your system in anyway. Enjoy!
--------------------------------------------------------------------------------
via: http://linoxide.com/security/delete-files-permanatly-linux/
作者:[Aun Raza][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunrz/

View File

@ -0,0 +1,163 @@
7 Quirky ls Command Tricks Every Linux User Should Know
================================================================================
We have covered most of the things on ls command in last two articles of our Interview series. This article is the last part of the ls command series. If you have not gone through last two articles of this series you may visit the links below.
注:以下三篇都做过源文,看看翻译了没有,如果发布了可适当改链接地址
- [15 Basic ls Command Examples in Linux][]
- [15 Interview Questions on Linux “ls” Command Part 1][]
- [10 Useful ls Command Interview Questions Part 2][]
![7 Quirky ls Command Tricks](http://www.tecmint.com/wp-content/uploads/2015/03/ls-command-tricks.jpg)
7 Quirky ls Command Tricks
### 1. List the contents of a directory with time using various time styles. ###
To list the contents of a directory with times using style, we need to choose any of the below two methods.
# ls -l time-style=[STYLE] (Method A)
**Note** The above switch (`--time` style must be run with switch `-l`, else it wont serve the purpose).
# ls full-time (Method B)
Replace `[STYLE]` with any of the below option.
full-iso
long-iso
iso
locale
+%H:%M:%S:%D
**Note** In the above line H(Hour), M(Minute), S(Second), D(Date) can be used in any order.
Moreover you just choose those relevant and not all options. E.g., `ls -l --time-style=+%H` will show only hour.
`ls -l --time-style=+%H:%M:%D` will show Hour, Minute and date.
# ls -l --time-style=full-iso
![ls Command Full Time Style](http://www.tecmint.com/wp-content/uploads/2015/03/ls-Command-Full-Time-Style.gif)
ls Command Full Time Style
# ls -l --time-style=long-iso
![Long Time Style Listing](http://www.tecmint.com/wp-content/uploads/2015/03/Long-Time-Listing-Format.gif)
Long Time Style Listing
# ls -l --time-style=iso
![Time Style Listing](http://www.tecmint.com/wp-content/uploads/2015/03/Local-Time-Style-Listing.gif)
Time Style Listing
# ls -l --time-style=locale
![Locale Time Style Listing](http://www.tecmint.com/wp-content/uploads/2015/03/Hour-Mintue-Time-Style-Listing.gif)
Locale Time Style Listing
# ls -l --time-style=+%H:%M:%S:%D
![Date and Time Style Listing](http://www.tecmint.com/wp-content/uploads/2015/03/Full-Time-Style-Listing.gif)
Date and Time Style Listing
# ls --full-time
![Full Style Time Listing](http://www.tecmint.com/wp-content/uploads/2015/03/Full-Style-Time-Listing.gif)
Full Style Time Listing
### 2. Output the contents of a directory in various formats such as separated by commas, horizontal, long, vertical, across, etc. ###
Contents of directory can be listed using ls command in various format as suggested below.
- across
- comma
- horizontal
- long
- single-column
- verbose
- vertical
# ls -format=across
# ls --format=comma
# ls --format=horizontal
# ls --format=long
# ls --format=single-column
# ls --format=verbose
# ls --format=vertical
![Listing Formats of ls Command](http://www.tecmint.com/wp-content/uploads/2015/03/ls-command-Listing-Formats.gif)
Listing Formats of ls Command
### 3. Use ls command to append indicators like (/=@|) in output to the contents of the directory. ###
The option `-p` with ls command will server the purpose. It will append one of the above indicator, based upon the type of file.
# ls -p
![Append Indicators to Content](http://www.tecmint.com/wp-content/uploads/2015/03/Append-Indicators.gif)
Append Indicators to Content
### 4. Sort the contents of directory on the basis of extension, size, time and version. ###
We can use options like `--extension` to sort the output by extension, size by extension `--size`, time by using extension `-t` and version using extension `-v`.
Also we can use option `--none` which will output in general way without any sorting in actual.
# ls --sort=extension
# ls --sort=size
# ls --sort=time
# ls --sort=version
# ls --sort=none
![Sort Listing of Content by Options](http://www.tecmint.com/wp-content/uploads/2015/03/Sort-Content-by-Extensions.gif)
Sort Listing of Content by Options
### 5. Print numeric UID and GID for every contents of a directory using ls command. ###
The above scenario can be achieved using flag -n (Numeric-uid-gid) along with ls command.
# ls -n
![Print Listing of Content by UID and GID](http://www.tecmint.com/wp-content/uploads/2015/03/Print-UID-GID-of-Contents.gif)
Print Listing of Content by UID and GID
### 6. Print the contents of a directory on standard output in more columns than specified by default. ###
Well ls command output the contents of a directory according to the size of the screen automatically.
We can however manually assign the value of screen width and control number of columns appearing. It can be done using switch `--width`.
# ls --width 80
# ls --width 100
# ls --width 150
![List Content Based on Window Sizes](http://www.tecmint.com/wp-content/uploads/2015/03/List-Content-By-More-Column.gif)
List Content Based on Window Sizes
**Note**: You can experiment what value you should pass with width flag.
### 7. Include manual tab size at the contents of directory listed by ls command instead of default 8. ###
# ls --tabsize=[value]
![List Content by Table Size](http://www.tecmint.com/wp-content/uploads/2015/03/List-Content-by-Table-Size.gif)
List Content by Table Size
**Note**: Specify the `[Value]=` Numeric value.
Thats all for now. Stay tuned to Tecmint till we come up with next article. Do not forget to provide us with your valuable feedback in the comments below. Like and share us and help us get spread.
--------------------------------------------------------------------------------
via: http://www.tecmint.com/linux-ls-command-tricks/
作者:[Avishek Kumar][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/avishek/
[1]:http://www.tecmint.com/15-basic-ls-command-examples-in-linux/
[2]:http://www.tecmint.com/ls-command-interview-questions/
[3]:http://www.tecmint.com/ls-interview-questions/

View File

@ -0,0 +1,113 @@
How to Host Open Source Code Repository in github
================================================================================
Hi all, today we will be learning how to host Source Code of Open Source Software in the repository hosted by github.com . GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features. It provides a workplace to host powerful collaboration, code review, and code management for open source and private projects. Unlike Git, which is strictly a command-line tool, GitHub provides a web-based graphical interface and desktop as well as mobile integration. GitHub offers both paid plans for private repositories and free accounts, which are usually used to host open-source software projects.
![github universe logo](http://blog.linoxide.com/wp-content/uploads/2015/03/github-universe.jpg)
It is fast and more flexible web based hosting service which is easy to use and to manage distributed revision control. Anyone can host their software's source code in github's repository for the use, contribution, sharing, issue tracking and many more by millions of people across the globe. Here are some easy and quick steps to easily host software's source code.
### 1. Creating a new Github Account ###
First of all, open your favorite browser and go to Github's homepage url ie [github][1]. Then, the homepage will be opened as shown below.
![Github Homepage](http://blog.linoxide.com/wp-content/uploads/2015/03/github-homepage.png)
Now, after the homepage has been opened, please fill form shown to sign up for a new github account.
After the you entered the valid information required for sign up, you'll be redirected to the plan choosing step. We have 5 plans listed in this page. One can choose the plan according to their requirement. Here, we'll go for a free plan. So, click on Choose to the Free plan and click on Finish Sign up. If we are planning to create an organization then, we need to tick on Help me setup an organization next.
![choosing plan](http://blog.linoxide.com/wp-content/uploads/2015/03/choosing-plan.png)
### 2. Creating a New Repository ###
After we have successfully signed up a new account or logged in to Github, we'll now need to create a new Repository to get started.
Click on **(+)** button which is located at the top right near the account id. Then Click on New Repository .
![Add new repository](http://blog.linoxide.com/wp-content/uploads/2015/03/create-new-repository.png)
Now, after clicking on add a new repository, we'll now be directed to the page where we'll need to enter the required information.
![adding repository information](http://blog.linoxide.com/wp-content/uploads/2015/03/adding-information-repository.png)
Now, after entering the required information about the new repository, we'll need to click on green Create repository button.
After it is done, we'll get to see something similar like this image.
![repository github](http://blog.linoxide.com/wp-content/uploads/2015/03/repository-github.png)
### 3. Uploading an existing Project ###
If we want to share our existing project on Github, we'll surely need to push the codes to the repository we created. To do so, we'll first need to install git in our Linux machine. As I am running Ubuntu 14.04 LTS in my machine, I'll need to run **apt** manger to install it.
$ sudo apt-get install git
![installing git](http://blog.linoxide.com/wp-content/uploads/2015/03/install-git.png)
Now, as git is ready, we are now ready to upload the codes.
**Note**: To avoid errors, do not initialize the new repository with **README**, license, or gitignore files. You can add these files after your project has been pushed to GitHub.
In Terminal, we'll need to change the current working directory to your local project then initialize the local directory as a Git repository/
$ git init
We'll then add the files in our new local repository. This stages them for the first commit.
$ git add .
Now, we'll need to commit the files that we've staged in our local repository.
$ git commit -m 'First commit'
![git commit](http://blog.linoxide.com/wp-content/uploads/2015/03/git-commit.png)
In Terminal, we'll add the URL for the remote repository where our local repostory will be pushed.
$ git remote add origin remote Repository url
$ git remote -v
![adding remote url](http://blog.linoxide.com/wp-content/uploads/2015/03/adding-remote-url.png)
Note: Please do replace remote Repository url to the url of the remote repo.
Now, to push the changes in our local repository to GitHub's repo we'll need to run as below and enter the required credential for the repository.
$ git push origin master
![pushing repo](http://blog.linoxide.com/wp-content/uploads/2015/03/pushing-repo.png)
### Cloning a Repo ###
If we want to download a code repository from github straight to our local drives with a single command then, we can simply use git clone command which will clone the current directory to the remote repository.
$ git clone https://github.com/aruntechgeek/linspeed.git
![cloning repo](http://blog.linoxide.com/wp-content/uploads/2015/03/cloning-repo.png)
Please change the above url to the repository you want to clone from.
### Updating a Change ###
If we made changes to our code and want to push them to our remote repository then after changing the changes, we should run the following commands inside that directory.
$ git add .
$ git commit -m "Updating"
$ git push
### Conclusion ###
Hurray! We have successfully hosted our Project Source Code in Github repository. Github is fast and more flexible web based hosting service which is easy to use and to manage distributed revision control. Millions of awesome Open Source projects are hosted in github. So, if you have any questions, suggestions, feedback please write them in the comment box below. Thank you ! Enjoy Github :-)
--------------------------------------------------------------------------------
via: http://linoxide.com/usr-mgmt/host-open-source-code-repository-github/
作者:[Arun Pyasi][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:http://github.com/

View File

@ -0,0 +1,100 @@
translating wi-cuckoo LLAP
How to Interactively Create a Docker Container
================================================================================
Hi everyone, today we'll learn how we can interactively create a docker container using a docker image. Once we start a process in Docker from an Image, Docker fetches the image and its Parent Image, and repeats the process until it reaches the Base Image. Then the Union File System adds a read-write layer on top. That read-write layer, the information about its Parent Image and some other information like its unique id, networking configuration, and resource limits is called a **Container**. Containers has states as they can change from **running** to **exited** state. A container with state as **running** includes a tree of processes running on the CPU, isolated from the other processes running on the host where as **exited** is the state of the file system and its exit value is preserved. You can start, stop, and restart a container with it.
Docker Technology has brought a remarkable change in the field of IT enabling cloud service for sharing applications and automating workflows, enabling apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. In this article, we'll build CentOS Instance in which we'll host a website running under Apache Web Server.
Here is quick and easy tutorial on how we can create a container in an interactive method using an interactive shell.
### 1. Running a Docker Instance ###
Docker initially tries to fetch and run the required image locally and if its not found in local host the it pulls from the [Docker Public Registry Hub][1] . Here. we'll fetch and create a fedora instance in a Docker Container and attach a bash shell to the tty.
# docker run -i -t fedora bash
![Downloading Fedora Base Image](http://blog.linoxide.com/wp-content/uploads/2015/03/downloading-fedora-base-image.png)
### 2. Installing Apache Web Server ###
Now, after our Fedora base image with instance is ready, we'll now gonna install Apache Web Server interactively without creating a Dockerfile for it. To do so, we'll need to run the following commands in a terminal or shell.
# yum update
![Updating Fedora Base Image](http://blog.linoxide.com/wp-content/uploads/2015/03/updating-fedora-base-image.png)
# yum install httpd
![Installing httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/installing-httpd2.png)
# exit
### 3. Saving the Image ###
Now, we'll gonna save the changes we made into the Fedora Instance. To do that, we'll first gonna need to know the Container ID of the Instance. To get that we'll need to run the following command.
# docker ps -a
![Docker Running Container](http://blog.linoxide.com/wp-content/uploads/2015/03/docker-running-container.png)
Then, we'll save the changes as a new image by running the below command.
# docker commit c16378f943fe fedora-httpd
![committing fedora httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/committing-fedora-httpd.png)
Here, the changes are saved using the Container ID and image name fedora-httpd. To make sure that the new image is running or not, we'll run the following command.
# docker images
![view docker images](http://blog.linoxide.com/wp-content/uploads/2015/03/view-docker-images.png)
### 4. Adding the Contents to the new image ###
As we have our new Fedora Apache image running successfully, now we'll want to add the web contents which includes our website to Apache Web Server so that our website will run successfully out of the box. To do so, we'll need to create a new Dockerfile which will handle the operation from copying web contents to allowing port 80. To do so, we'll need to create a file Dockerfile using our favorite text editor as shown below.
# nano Dockerfile
Now, we'll need to add the following lines into that file.
FROM fedora-httpd
ADD mysite.tar /tmp/
RUN mv /tmp/mysite/* /var/www/html
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/httpd" ]
CMD [ "-D", "FOREGROUND" ]
![configuring Dockerfile](http://blog.linoxide.com/wp-content/uploads/2015/03/configuring-Dockerfile.png)
Here, in above Dockerfile, the web content which we have in mysite.tar will get automatically extracted to /tmp/ folder. Then, the entire site will move to the Apache Web root ie /var/www/html/ and the expose 80 will open port 80 so that the website will be available normally. Then, the entrypoint is set to /usr/sbin/httpd so that the Apache Server will execute.
### 5. Building and running a Container ###
Now, we'll build our Container using the Dockerfile we just created in order to add our website on it. To do so, we'll need to run the following command.
# docker build -rm -t mysite .
![Building mysite Image](http://blog.linoxide.com/wp-content/uploads/2015/03/building-mysite-image.png)
After building our new container, we'll want to run the container using the command below.
# docker run -d -P mysite
![Running mysite Container](http://blog.linoxide.com/wp-content/uploads/2015/03/running-mysite-container.png)
### Conclusion ###
Finally, we've successfully built a Docker Container interactively. In this method, we build our containers and image directly via interactive shell commands. This method is quite easy and quick to build and deploy our images and containers. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-)
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/interactively-create-docker-container/
作者:[Arun Pyasi][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:https://registry.hub.docker.com/

View File

@ -0,0 +1,145 @@
2015你可以买的一款基于Linux的迷你PC
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Linux_Based_Mini_PC.jpg)
在我看来迷你PC将在不久的将来会替代传统桌面电脑。传统桌面的有一个像送风机那样占据大量空间的风扇。迷你PC在另一方面说很小巧和紧凑。通常是4″或者5″大小可以轻易地放在桌子上。
不仅如此这些迷你PC的无风扇设计是一个好处。当然你可以购买无风扇的常规电脑但是空间占用仍然是一个问题。对我个人来说我觉得迷你PC外观上看着很可爱。如果你不是一个游戏玩家也不想买新的桌面PC我强烈建议你**购买一个基于Linux的迷你PC**。
如果你考虑我的建议买一个,那么你或许想知道该买哪款。不要担心,这篇文章我们会介绍**四款你可以在2015购买的基于Linux的迷你PC**。
### 基于Linux的迷你PC ###
请注意这些PC可能还不能下单。它们中有些还刚刚公布在不久的将来才会面向公众出售。
#### 1. System76出品的Meerkat ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/system76-meerkat.jpg)
[System76][1] is a computer manufacturer exclusively dealing with only Ubuntu based desktop, laptops and servers. [System76 announced an Ubuntu based mini PC Meerkat][2] last week. Lets take a quick look at its specification:
[System76][1] 是一家仅出品基于Ubuntu电脑、笔记本、服务器的电脑生产商。[System76在上周宣布了一款基于Ubuntu的迷你PC][2]。让我看一下它的规格:
**规格**
- Intel第五代处理器共有两种选择 i3-5010U 和 i5-5250U
- 最高2TB存储 (M.2 SATA SSD)
- 16 GB DDR3 内存
- i3和i5处理器下相应的Intel HD 5500 和 Intel HD 6000显卡
- 4″ x 4″ 大小
- WiFi
- 1 Gb 网卡
- 2个USB 3.0端口
**价格**
在$500之内还没确定
**发售日期**
美国地区在2015年3月底
#### 2.Compulab出品的Mintbox Mini ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/mintbox-mini.jpeg)
[Compulab][3]将它的旗舰产品基于Linux Mint的桌面设备成了[Mintbox Mini][4]。紧凑的版本在4″大小。更多的细节如下
**规格**
- AMD A4-6400T 处理器
- Radeon R3 显卡
- 4 GB 内存
- 64 GB SSD
- 2个USB 3.0端口, 3个USB 2.0端口
- 2个HDMI输出端
- 802.11 b/g/n Wifi
- 千兆网卡
- MicroSD读卡器
**价格**
$300起售
**发售日期**
2015第二季度
#### 3. Compulab出品的Utilite2 ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Utilite2-ARM-PC.jpg)
Its not that Compulab has stuck with Linux Mint only. It announced an ARM desktop PC running Ubuntu in last December. With a size of 3.4″x2.3″, [Utilite2][5] has modest feature and modest price.
Compulab并不是坚持用Linux Mint的。它在去年12月宣布了一款运行Ubuntu的ARM桌面PC。大小是3.4″x2.3″,[Utilite2][5]有最现代的特性和价格
**规格**
- 高通Snapdragon 600 (APQ8064) 四核 CPU 1.7GHz
- 2GB 内存, 可选32 GB的eMMC mSATA 存储
- 高通 Adreno™ GPU显卡
- 1080p 视频回放和捕捉
- 双天线 WiFi 802.11 和 Bluetooth 4.0
- 千兆网卡, 4个USB2端口和USB OTG
- 蜂窝调制解调器支持
**价格**
常规版售价$192、带硬盘售价$229。邮费另付。
**发售日期**
现在就可购买。运送将花费4周。
#### Think Penguin出品的Penguin Pocket Wee ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Think_Penguin_Pocket_Wee.jpeg)
[Think Penguin][6]是一家开源硬件生产商。在迷你PC领域它提供了[Penguin Pocket Wee][7]。大小是4.6″x 4.4″x 1.4″ , Penguin Pocket Wee提供了大量的配置。你可以选择处理器、存储、网卡等。你可以选择购买预装你喜欢的Linux发行版默认系统是Ubuntu。
The general configuration is as following:
下面的默认的配置
- Intel Core i3 或者 i5处理器最高支持1080p视频
- 最高扩展至 16GB 的 DDR3内存
- Intel HD 显卡
- Wireless N
- 最大250GB的SSD
- 4个USB 3.0接口
- Intel 10/100/1000 千兆网卡
**价格**
Basic model starts at $499 and it can go up to $1000 based on the configuration you select.
基础版本$499起售根据你的配置最大是$1000。
**发售日期**
现在就可下订单。该公司在美国和英国也有办公司,所以应也可以运送到南美和欧洲。
### 你会选哪种? ###
我故意没有介绍[Raspberry Pi 2][8]或者其他Linux微电脑如[Intel的电脑棒][9]。原因是我不认为这些微电脑属于迷你PC的范畴。
你怎么看你想用迷你PC代替你的桌面PC么是不是还有我没有在**最好的基于Linux的迷你PC**列出的PC分享你们的观点吧。
--------------------------------------------------------------------------------
via: http://itsfoss.com/4-linux-based-mini-pc-buy-2015/
作者:[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]:https://system76.com/
[2]:http://itsfoss.com/system76-unveils-ubuntu-based-mini-pc-meerkat/
[3]:http://www.compulab.co.il/
[4]:http://itsfoss.com/mintbox-mini-compact-linux-mint-powered-pc-unveiled/
[5]:http://www.compulab.co.il/utilite-computer/web/utilite2-overview
[6]:https://www.thinkpenguin.com/
[7]:https://www.thinkpenguin.com/gnu-linux/penguin-pocket-wee-gnu-linux-desktop
[8]:http://itsfoss.com/raspberry-pi-2-specs/
[9]:http://itsfoss.com/intels-compute-stick/

View File

@ -1,42 +0,0 @@
Ubuntu 15.04 最终实现你可以设置你的菜单 ‘始终可见’
================================================================================
**如果你不喜欢 Unity 的全局菜单在你的鼠标离开后就淡出你的视野, Ubuntu 15.04 有一些额外附加去实现这点.**
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/02/locally-integrated-menus-in-ubuntu.png)
最新的Ubuntu 15.04的Unity界面通过在提议通道提供了一个选项**使应用程序菜单在Ubuntu中可见**.
不时尚, 不过时, 没有丢失的菜单.
最大的缺点是它目前只能通过dconf来控制而不是常规的面向用户的选项设置。
我希望如果不是期望能有一个设置这个特性的选项被加入到Ubuntu的【系统设置】>【外观】部分的开发仍在继续。
现在如果你使用的是Ubuntu15.04并启用“建议”的更新通道后你会发现这个开关存在于在COM>规范>Unity>“始终显示菜单”。
### 迟到总比没有要好? ###
开发者计划在Ubuntu14.04 LTS的下一个SRU中反向移植这个选项假设在测试阶段没有任何意外发生
本地集成菜单LIM在Ubuntu 14.04 LTS 首次获得了欣赏,被广泛认为在那些喜欢隐藏方式的和那些不喜欢必须使用鼠标和触摸板的人之间的最佳的折衷方法
虽然本地集成菜单给我们带来了半路上沉默的批评在统一方面,默认的“淡入/淡出”行为给我们留下了令人发痒的伤痕
在Ubuntu 过去的几个版本中已经能够看到积极的去解决早期UX的经历过的关切的问题。在经过几年“打算去做”的列表[我们去年终于得到了本地集成菜单][1],以及不支持的通过点击图标实现[减少和恢复Unity启动程序中不支持的应用程序的选项]。
一年以来我们终于得到一个选项以使应用程序菜单始终显示,无论我们的鼠标在哪里。迟来总比没有好,对不对?
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2015/01/ubuntu-15-04-always-show-menu-bar-option
作者:[Joey-Elijah Sneddon][a]
译者:[JeffDing](https://github.com/JeffDing)
校对:[校对者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/02/locally-integrated-menus-ubuntu-14-04
[2]:http://www.omgubuntu.co.uk/2014/03/minimize-click-launcher-option-ubuntu-14-04

View File

@ -1,31 +0,0 @@
Windows 10 VS Linux
================================================================================
![](https://farm4.staticflickr.com/3852/14863156322_e4edbae70e_t.jpg)
如今Windows 10好像占据了绝大部分头条甚至在一些Linux圈里也是一样。最突出的是betanews.com的Brian Fagioli说Windows 10已经为Linux桌面系统敲响了丧钟Microsoft如今宣布将为忠实的Windows用户免费提供windows 10Steven J. Vaughan-Nichols说这是一个最新的开源公司然后Matt Hartley比较了Windows 10和UbuntuJesse Smith发表了从Linux用户角度对Windows 10的评估。
**Windows 10**在Microsoft[声明][1]说将免费提供给Windows 7及以上用户时成为如今闲聊的热门话题。在Linuxland这里也没有被忽视。betanews.com的Brian Fagioli一个自封的Linux粉丝如今这样说“Windows 10把门彻底关上了。Linux桌面元年将永远不会到来。安息吧。”[Fagioli解释][2]说Microsoft倾听了用户的抱怨而且并不只是记录一下而是解决的更好。他说Linux错失了由Windows 8不受欢迎以及巨大失败带来的积累机会。然后他总结拜Windows 10所赐处于边缘地带的我们只能接受一个“破碎的梦”。
**不**过来自闻名的Distrowatch.com的Jesse Smith说Microsoft并没有提供一个很明显的下载方式不过确实可行而且他也升级了。安装程序非常简单除了分区功能很有限甚至有点吓人。在最终启动进入Windows 10后Smith说界面布局很“松散”没有Win7里被很多人讨厌的大量分散注意的元素开始菜单又回来了取消了欢迎屏幕。据Smith所说还有一个和Ubuntu以及Android很类似的新的包管理程序不过需要Microsoft在线账户才可以使用。[Smith的总结][3]里有这样一条“感觉Windows 10像是Android的早期beta版本一个设计成时刻保持在线的消费者操作系统。而不像是一个我能用来完成工作的操作系统。”
**S**mith的[完整文章][4]里比较了Windows 10和Linux的大量细节不过Matt Hartley发表了一个实在的Windows 10 vs Linux的报告。[他说][5]两者的安装程序都很直观和简单Windows的双启动仍然没那么容易Windows默认提供了加密而Ubuntu只提供了配置选项。在桌面上Hartley说Windows 10“纠结地丢弃了它Windows 8的根。”他觉得Windows 10的Windows商店比Ubuntu的漂亮很多但是实在不喜欢通过“一切都是卡片”的方式来查看新安装的应用。Hartley这样总结“首先是它将为大量Windows用户提供免费升级。这意味着大大降低了进入和升级门槛。第二这次看起来Microsoft真的在全力以赴地倾听他们用户的需求了。”
**S**teven J. Vaughan-Nichols如今声称Microsoft是最新的开源公司不仅因为它将放出Windows 10的免费升级而且Microsoft正在从一个软件公司转型为一个软件服务公司。然后据Vaughan-Nichols所说Microsoft需要开源来完成这次转型。从Novell/SUSE开始他们已经在这一块工作好多年了。不仅如此他们也发布过开源软件不管什么目的。[Vaughan-Nichols总结][6]“很多人都没注意到但是Microsoft -- 就是那个Microsoft -- 已经成为一家开源公司。”
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/windows-10-versus-linux
作者:[Susan Linton][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://ostatic.com/member/susan-linton
[1]:https://news.google.com/news/section?q=microsoft+windows+10+free&ie=UTF-8&oe=UTF-8
[2]:http://betanews.com/2015/01/25/windows-10-is-the-final-nail-in-the-coffin-for-the-linux-desktop/
[3]:http://blowingupbits.com/2015/01/an-outsiders-perspective-on-windows-10-preview/
[4]:http://blowingupbits.com/2015/01/an-outsiders-perspective-on-windows-10-preview/
[5]:http://www.datamation.com/open-source/windows-vs-linux-the-2015-version-1.html
[6]:http://www.zdnet.com/article/microsoft-the-open-source-company/

View File

@ -0,0 +1,39 @@
translated by haimingfg
Torvalds: 参加linux内核贡献更加容易找工作
========================================
相比起以往linux内核的发展变是一个专业性的问题作为一个无偿贡献者去贡献的项目今天在"谁写linux"被低调报道出来了。
这个报道由linux基金会编写基金会说自愿者有逐年下降的趋势上年有11.8%的内核开发是由无偿自愿者完成从2012年起由14.6%下滑了19%。
![](http://images.techhive.com/images/article/2015/02/screen-shot-2015-02-17-at-5.25.43-pm-100568680-medium.idge.png)
即使是这样在最新的谁写linux里面报道无偿贡献者还是主要的共享来源共有11,968改变整体来说有12.4%是好的企业贡献者共同占比越来越多有超过80%的内核贡献是有有尝的专业开发者来完成linux基金会说。
根据 linus Torvalds 说,这个有偿开发者趋势不会改变太多这个内核发展的本身。
他向全世界人说,我认为不会改变太多的一个原因是不会有更多的无偿自愿者因为编写内核就会更加快找到工作而离开。
Torvalds讲到linux发展改变有很多其他原因很自然的新的贡献者会经常冒出来有很多都是原来的开发者有着10年的经验被很多对linux感兴趣的公司抢着去做。
他说“开始我们是自愿者但我们这几天很开心被请去开发linux”
Torvalds 开始抽离了他的开发角色根据报道在3.10的内核版本里面他个人发布329补丁,占04% 逐渐地,子系统维护人员自己会检查与合并他们的代码。
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2885339/application-development/torvalds-people-who-start-writing-kernel-code-get-hired-really-quickly.html
作者:[Jon Gold][a]
译者:[haimingfg](https://github.com/haimingfg)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/Jon-Gold/

View File

@ -0,0 +1,86 @@
Linux存储的未来
================================================================================
> **摘要**Linux系统的软件开发者们正致力于使Linux支持更多种类的文件和存储方案。
波士顿 - 在[Linux基金会][1]最近的[Vault][2]展示会上,全都是关于文件系统和存储方案的讨论。你可以会想关于这两个主题并没有什么展值得讨论的最新进展,但事实并非如此。
![](http://zdnet2.cbsistatic.com/hub/i/r/2015/03/12/c8f92cc2-b963-4238-80a0-d785ec93698c/resize/770x578/08d93a8a393d3f50b2a56e6b0e7a0ca9/btrfs-1.jpg)
对Linux文件系统比如Btrfs和存储方案的支持正在持续发展中。 -- Facebook
自从Linus提出“[讨厌的、生锈的机械磁盘]”的观点以来存储技术已经走过一段长路Linux也始终保持跟进。比如说近几年来[闪存已经逐渐成为企业服务器的主要存储器][4][持久化内存][5]也正给我们带来拥有DRAM一般快速的存储。与此同时大数据、云计算和容器化技术正给Linux引入新的应用场景。
为了应对挑战Linux开发者们一边继续扩展已有的文件系统和存储程序一边致力于开发新的方案。
### Btrfs ###
例如Chris Mason一位来自Facebook的软件工程师也是[Btrfs][6]对外宣称Butter FS的维护者之一说明了Facebook是如何使用这种文件系统。Btrfs拥有文件系统固有的许多优点比如既能处理大量的小文件也能处理大小可达16EB的单个文件支持RAID的baked烦请校正补充内置的文件系统压缩以及集成了对多种存储设备的支持。
当然Facebook的服务器也运行在Linux上。更准确地讲是运行在一个基于[CentOS][7]的内部发行版上它是基于3.10和3.18版的内核。对Facebook来说真正的收获是Btrfs在由Facebook持续的更新用户操作带来的巨大的IOPS每秒钟输入输出的操作数的负载下依旧保持稳定和快速。
这就是好消息但坏消息是对于像MySQL一样的传统DBMS数据库管理系统来说Btrfs还是太慢了。对此Facebook采用了[XFS][8]。为了协同这两种文件系统Facebook又用到了一种叫做[Gluster][9]的开源分布式文件系统。
Facebook一直与上游的负责Btrfs的Linux内核开发者保持密切联系致力于提高Btrfs在DBMS上的速度。Mason和他的同事在[RocksDB][10]数据库上使用Btrfs以达成目标RocksDB是一种为提供快速存储开发的持久化键值存储系统可以作为客户端服务器模式数据库的基础部分。
当然Btrfs也还存在一些问题比如如果有用户傻到用数据把硬盘几乎要撑爆时Btrfs会在硬盘被完全装满前阻止用户继续写入。对某些工程来说比如[CoreOS][12]一款依赖容器化的企业版Linux系统这种问题是致命的。[因此CoreOS已经切换到使用xt4和overlayfs了][11]。
Btrfs的开发人员正致力于数据去重。在这一点上当文件系统中拥有超过一个的相同文件时会自动删除多余文件。正如Mason所说“并非每个人都需要这个功能但如果有人需要那就是真的需要
在正在开展的重要性工作中Btrfs并非是唯一的文件系统。John Spary[Red Hat][13]的一位高级软件工程师,提到了另一款名为[Ceph][14]的分布式文件系统。
### Ceph FS ###
Ceph提供了一种分布式对象存储方案和文件系统反过来它依托于一种使用商用硬件集群的弹性的、可扩展的存储模型RADOS。配合RADOS块设备RBD和RADOS对象网关RGWCeph提供了一种[POSIX][15]接口的文件系统 -- Ceph FS。尽管RBD和RGW已经在生产环境中使用了一段时间但使Ceph FS适用于生产的工作还是进行中。
[Rad Hat在收购Ceph的母公司Inktank后][16]在2014年一直致力于使CephFS适用于生产环境。不管怎样Spray说“有些人已经在生产中使用了它我们对此表示担忧毕竟它还没有准备好。”然而Spray也补充说“这具有两面性因为一方面这是让人担心的另一方面我们又从用户获得了真正有用的反馈和测试。”
这是因为尽管Ceph对象存储很好地支持扩展但Ceph Fs作为一种兼容POSIX的文件系统却很难实现扩展。比如作为一种分布式文件系统Ceph FS必须解决来自多个客户端的多个写操作。这会导致全有或全无的情况即一个客户端可以写入但其它客户端必须等待也会产生文件加锁的情形即相比普通文件系统中更加复杂。
但是Ceph FS仍值得去做正如Spray所说“因为兼容POSIX的文件系统是操作系统通用的。”这并不是说Ceph FS就一无是处。“它并不是支离破碎的相反它奏效了。所缺的是修复和监控工具。”
Red Hat目前正致力于获得[fsck][17]和日志修复工具、快照强化、更好客户端访问控制以及云与容器的集成。尽管Ceph FS到目前为止只是一种有潜力或者没前景的文件系统但仍然值得用在生产环境中。
### 文件与存储的差别与目标 ###
至于文件系统和存储上的更大问题Jeff Layton[Primary Data][18]的一位高级软件工程师,解释说为了“在不断开电源的情况下给灾难性的电源故障提供测试”,大量的相关工作正在进行中。这些测试很快会被集成到[xftests][19]中它是Linux文件系统测试的黄金标准。
Rik van Riel一位Red Hat的主要软件工程师谈到了解决持久化内存产品的问题。你可以把它们作为存储器或者内存。但是如果你现在把它们作为内存来用是不能为备份创建快照。真正的问题是van Riel确信人们会尝试使用持久的内存作这两种用途这会导致出现和“如果不备份你会如何处理一个200GB大小的持久化内存数据库”类似的情形发生。更糟的是现在日志系统也无法和持久化的内存一起发挥作用。
正确的答案是什么呢Linux至今还没有一个但编程人员们正在努力寻找答案。
因此尽管Linux支持很多文件系统可以使用这里以外的任何一种存储器来存储数据但是仍然有很多工作要做。技术从来不会止步不前。Linux正运行在移动设备、桌面电脑、服务器、云端和超级计算机上等几乎所有的主流设备上必须跟紧存储的发展步伐不管它们以何种形式出现。
--------------------------------------------------------------------------------
via: http://www.zdnet.com/article/linux-storage-futures/
作者:[Steven J. Vaughan-Nichols][a]
译者:[KayGuoWhu](https://github.com/KayGuoWhu)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.zdnet.com/meet-the-team/us/sjvn/
[1]:http://www.linuxfoundation.org/
[2]:http://events.linuxfoundation.org/events/vault
[3]:http://www.wired.com/2012/10/linus-torvalds-hard-disks/
[4]:http://www.zdnet.com/article/sandisk-launches-infiniflash-aims-to-bring-flash-array-costs-down/
[5]:http://events.linuxfoundation.org/sites/events/files/eeus13_wheeler.pdf
[6]:https://btrfs.wiki.kernel.org/index.php/Main_Page
[7]:http://www.centos.org/
[8]:http://oss.sgi.com/projects/xfs/
[9]:http://www.gluster.org/
[10]:http://rocksdb.org/
[11]:http://lwn.net/Articles/627232/
[12]:https://coreos.com/
[13]:http://www.redhat.com/
[14]:http://ceph.com/
[15]:http://pubs.opengroup.org/onlinepubs/9699919799/
[16]:http://www.zdnet.com/article/red-hat-acquires-inktank-for-175m/
[17]:http://linux.die.net/man/8/fsck
[18]:http://primarydata.com/
[19]:http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfstests.git;a=summary

View File

@ -1,126 +0,0 @@
使用Nemiver调试器找出C/C++程序中的bug
================================================================================
如果你读过[my post on GDB][1],你就会明白我认为一个调试器对一段C/C++程序来说意味着多么的重要和有用。然而如果一个像GDB的命令行对你而言听起来更像一个问题而不是一个解决方案那么你也许会对Nemiver更感兴趣。[Nemiver][2] 是一款基于GTK的独立图形化用于C/C程序的调试器同时它以GDB作为其后端。最令人佩服的是其速度和稳定性Nemiver时一个非常可靠具备许多优点的调试工具。
### Nemiver的安装 ###
基于Debian发行版它的安装时非常直接简单如下
$ sudo apt-get install nemiver
在Arch Linux中安装如下
$ sudo pacman -S nemiver
在Fedora中安装如下
$ sudo yum install nemiver
如果你选择自己变异,[GNOME website][3]中最新源码包可用。
最令人欣慰的是它能够很好地与GNOME环境像结合。
### Nemiver的基本用法 ###
启动Nemiver的命令
$ nemiver
你也可以通过执行一下命令来启动:
$ nemiver [path to executable to debug]
你会注意到如果在调试模式下执行编译g标志表示GCC将会更有帮助。
还有一个优点是Nemiver的快速加载所以你应该可以马上看到主屏幕的默认布局。
![](https://farm9.staticflickr.com/8679/15535277554_d320f6692c_c.jpg)
默认情况下,断点通常位于主函数的第一行。这样就可以空出时间让你去认识调试器的基本功能:
![](https://farm9.staticflickr.com/8669/16131832596_bc68ae18a8_o.jpg)
- Next line (mapped to F6)
- Step inside a function (F7)
- Step out of a function (Shift+F7)
- 下一行 映射到F6
- 执行内部行数F7
- 执行外部函数Shift+F7 ## 我不确定这个保留哪个都翻译出来了 ##
但是由于我个人的喜好是“Run to cursor运行至光标该选项使你的程序运行精确至你光标下的行并且默认映射到F11.
下一步断点通常是容易使用的。最快捷的方式是使用F8设置一个断点在相应的行。但是Nemiver也有一个更富在的菜单在“Debug”项这允许你在一个特定的函数行数二进制位置文件的位置或者类似一个异常分支或者exec的事件。
![](https://farm8.staticflickr.com/7579/16157622315_d680a63896_z.jpg)
你也可以通过追踪来查看一个变量。在“Debug”选项你可以通过命名来匹配一个表达式来检查。然后也可以通过将其添加到列表中以方便访问。这可能是最有用的一个功能虽然我从未因为浓厚的兴趣将鼠标悬停在一个变量来获取它的值。值得注意的是将鼠标放置在相应位置时不生效的。如果想要让它更好地工作Nemiver是可以看到结构并给所有成员的变量赋值。
![](https://farm8.staticflickr.com/7465/15970310470_7ed020c613.jpg)
谈到方便地访问信息我也非常欣赏这个程序的平面布局。默认情况下代码在上个部分标签在下半部分。这授予你访问中断输出、文本追踪、断点列表、注册地址、内存映射和变量控制。但是注意到在“Edit”“Preferences”“Layout”下你可以选择不同的布局包括动态修改。
![](https://farm9.staticflickr.com/8606/15971551549_00e4cdd32e_c.jpg)
![](https://farm8.staticflickr.com/7525/15535277594_026fef17c1_z.jpg)
自然而然一旦你设置了所有短点观察点和布局您可以在“File”下很方便地保存以免你不小心关掉Nemiver。
### Nemiver的高级用法 ###
到目前为止我们讨论的都是Nemiver的基本特征例如你马上开始喝调试一个简单的程序需要什么。如果你有更高的药求特别是对于一些更佳复杂的程序你应该会对接下来提到的这些特征更感兴趣。
#### 调试一个正在运行的进程 ####
Nemiver允许你连接到一个正在运行的进程进行调试。在“File”菜单你可以过滤出正在运行的进程并连接到这个进程。
![](https://farm9.staticflickr.com/8593/16155720571_00e4cdd32e_z.jpg)
#### 通过TCP连接远程调试一个程序 ####
Nemiver支持远程调试当你在一台远程机器设置一个轻量级调试服务器你可以通过调试服务器启动Nemiver从另一台机器去调试承载远程服务器上的目标。如果出于某些原因你不能在远程机器上吗很好地驾驭Nemiver或者GDB那么远程调试对于你来说将非常有用。在“File”菜单下指定二进制文件、共享库的地址和端口。
![](https://farm8.staticflickr.com/7469/16131832746_c47dee4ef1.jpg)
#### 使用你的GDB二进制进行调试 ####
如果你想自行通过Nemiver进行编译你可以在“Edit编辑”“Preferences首选项”“Debug调试”下给GDB制定一个新的位置。如果你想在Nemiver使用GDB的定制版本那么这个选项对你来说是非常实用的。
#### 循序一个子进程或者父进程 ####
Nemiver是可以兼容一个子进程或者附近成的。想激活这个功能请到“Debugger”下面的“Preferences首选项”。
![](https://farm8.staticflickr.com/7512/16131832716_5724ff434c_z.jpg)
总而言之Nemiver大概是我最喜欢的没有IDE的调试程序。在我看来它甚至可以击败GDB并且[命令行][4]程序对我本身来说更接地气。所以,如果你从未使用过的话,我会强烈推荐你使用。我只能庆祝我们团队背后给了我这么一个可靠、稳定的程序。
你对Nemiver有什么见解你是否也考虑它作为独立的调试工具或者仍然坚持使用IDE让我们在评论中探讨吧。
--------------------------------------------------------------------------------
via: http://xmodulo.com/debug-program-nemiver-debugger.html
作者:[Adrien Brochard][a]
译者:[disylee](https://github.com/disylee)
校对:[校对者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/gdb-command-line-debugger.html
[2]:https://wiki.gnome.org/Apps/Nemiver
[3]:https://download.gnome.org/sources/nemiver/0.9/
[4]:http://xmodulo.com/recommend/linuxclibook

View File

@ -1,196 +0,0 @@
在linux中如何通过nload来监控网络使用情况
================================================================================
nload 是一个免费的linux工具,通过提供两个简单的图形化界面来帮助linux用户和系统管理员来实时监控网络流量以及宽带使用情况:一个作为进入流量,一个作为流出流量.
我是真的很喜欢用**nload**来在屏幕上显示当前的下载速度总的流入量和平均下载速度等信息。nload工具的报告图非常容易理解最重要的是这些信息真的非常有用。
在使用手册上说到,在默认情况下会监控所有网络设备。但是你可以轻松地指定你想要监控的设备,而且可以可以通过方向键头在不同的网络设备之间进行转换。另外还有很多的选项可用,例如 -r选项确定以毫秒来刷新显示时间间隔默认时间间隔值是500毫秒-m选项用来实时显示多个设备流量图在使用该选项时不会显示 -u选项用来设置显示流量数字的单元类型另外还有许多其他的选项将会在该教程中探索和练习。
### 如何将 nload安装到你的linux机器上 ###
**Ubuntu** 和 **Fedora** 用户可以从默认的软件仓库中容易地安装。
在Ubuntu上使用以下命令进行安装。
sudo apt-get install nload
在Fedora上使用以下命令进行安装。
sudo yum install nload
**CentOS**用户该怎么办呢? 只需要在你的机器上输入以下命令,通用能够达到相同的结果--殊途同归。
sudo yum install nload
以下的命令会帮助你在OpenBSD系统中安装nload.
sudo pkg_add -i nload
linux机器上的另外一个非常有效的安装软件的方式就是编译源代码通过下载并安装最新的版本意味着能够获得更好地性能更酷的特性以及越少的bug数。
### 如何通过源代码安装nload ###
在从源代码安装nload之前你需要首先下载源代码。 我通常使用wget工具来进行下载--该工具在许多linux机器上默认可用。该免费工具帮助用户以非交互式的方式从网络上下载文件并支持以下协议
- HTTP
- HTTPS
- FTP
通过以下命令来进入到**/tmp**目录中。
cd /tmp
然后在你的终端中输入以下命令就可以将最新版本的nload下载到你的linux机器上了。
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
如果你不喜欢使用wget工具也可以通过简单的一个鼠标点击轻松地从[官网][1]上下载源代码。
由于该软件非常轻巧,其下载过程几乎在瞬间就会完成。接下来的步骤就是通过**tar**工具来将下载的源代码包进行解压。
tar归档工具可以用来从磁带或硬盘文档中存储或解压文件该工具具有许多可用的选项但是我们只需要下面的几个选项来执行我们的操作。
1. **-x** to extract files from an archive
1. **-x** 从文档中解压文件
1. **-v** to run in verbose mode
1. **-v** 使用繁琐模式运行--用来输入详细信息
1. **-f** to specify the files
1. **-f** 用来指定文件
例如:
tar xvf example.tar
现在你学会了如何使用tar工具我可以非常肯定你会知道如何从命令行中解压.tar文档。
tar xvf nload-0.7.4.tar.gz
之后使用cd命令来进入到nload*目录中
cd nload*
在我的系统上看起来是这样的
oltjano@baby:/tmp/nload-0.7.4$
然后运行下面这个命令来为你的系统配置包
./configure
此时会有一大波僵尸会在你的屏幕上显示出来,下面的一个屏幕截图描述了它的样子。
![configuring packages for nload](http://blog.linoxide.com/wp-content/uploads/2015/01/nload1.png)
在上述命令完成之后通过下面的命令来编译nload。
make
![compiling nload](http://blog.linoxide.com/wp-content/uploads/2015/01/nload2.png)
好了,终于....下载通过以下命令可以将nload安装在你的机器上了。
sudo make install
![installing nload from source](http://blog.linoxide.com/wp-content/uploads/2015/01/nload3.png)
安装好nload之后就是时间来让你学习如何使用它了。
###如何使用nload###
我喜欢探索,所以在你的终端输入以下命令.
nload
看到了什么?
我得到了下面的结果。
![running nload](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.png)
如上述截图可以看到,我得到了以下信息:
### 流入量###
#### 当前下载速度####
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.1.png)
#### 平均下载速度####
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.2.png)
#### 最小下载速度####
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.3.png)
#### 最大下载速度####
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.4.png)
#### 总的流入量按字节进行显示####
![](http://blog.linoxide.com/wp-content/uploads/2015/01/nload4.5.png)
### 流出量 ###
类似的同样适用于流出量
#### 一些nload有用的选项####
使用选项
-u
用来设置显示流量单元的类型.
下面的命令会帮助你使用MBit/s显示单元
nload -u m
下面的屏幕截图显示了上述命令的结果.
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload5.png)
尝试以下命令然后看看有什么结果.
nload -u g
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload6.png)
同时还有一个**-U**选项.根据手册描述,该选项基本上与-u选项类似,只是用在合计数据. 我测试了这个命令,老实说,当你需要检查总的流入与流出量时非常有用.
nload -U G
![nload running on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload7.png)
从上面的截图中可以看到,**nload -U G** 使用Gbyte来显示数据总量.
另外一个我喜欢使用的有用选项是 **-t**. 该选项用来设置刷新显示事件间隔为毫秒,默认值为500毫秒.
我会通过下面的命令做一些小的实验.
nload -t 130
那么上述命令做了什么呢,它讲刷新显示时间间隔设置为130毫秒. 通常推荐不要讲该时间间隔值设置为小于100毫秒,因为nload在计算过程中可能会生成带错的报告.
另外的一个选项为 **-a**. 在你想要设置计算平均值的时间窗口秒数长度时使用,默认该值为300秒.
那么当你想要监控指定的网络设备该如何呢? 非常容易, 想下面这样简单地指定设备或者列出想要监控的设备列表.
nload wlan0
![nload monitoring wlan0 on linux](http://blog.linoxide.com/wp-content/uploads/2015/01/nload8.png)
下面的语法可帮助你监控指定的多个设备.
nload [options] device1 device2 devicen
例如,使用下面的命令来监控eth0和eth1.
nload wlan0 eth0
如果不带选项来运行nload,那么它会监控监控所有自动检测到的设备,你可以通过左右方向键来显示其中的任何一个设备的信息.
--------------------------------------------------------------------------------
via: http://linoxide.com/monitoring-2/monitor-network-usage-nload/
作者:[Oltjano Terpollari][a]
译者:[theo-l](https://github.com/theo-l)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/oltjano/
[1]:http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz

View File

@ -1,55 +0,0 @@
Linux 常见问题解答--如何使用yum来下载RPM包而不进行安装.
================================================================================
> **问题**:我想从Red Hat's的标准仓库中下载一个RPM包,我能使用yum命令来下载一个RPM包但是不进行安装吗?
yum是基于Red Hat的系统(如CentOS,Fedora,RHEl)上的默认包管理器.使用yum,你可以安装或者更新一个RPM包,并且他会自动解决包依赖关系.但是如果你只想将一个RPM包下载到你的系统上该怎么办呢? 例如,你可能想要获取一些RPM包在以后使用,或者将他们安装在另外的机器上.
这里说明了如何从yum仓库上下载一个RPM包.
### 方法一:yum###
yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了`--downloadonly(只下载)`的选项来达到这个目的.
$ sudo yum install --downloadonly <package-name>
默认情况下,一个下载的RPM包会保存在下面的目录中:
/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下载包的来源仓库的名称(例如,base,fedora,updates)
如果你想要讲一个包下载到一个指定的目录(如/tmp):
$ sudo yum install --downloadonly --downloaddir=/tmp <package-name>
注意,如果下载的包包含了任意没有满足的依赖关系,yum将会把所有的依赖关系包下载,但是都不会被安装.
另外一个重要的事情时,在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用`--downloadonly`命令选项:
$ sudo yum install yum-plugin-downloadonly
如果没有该插件,你会在使用yum时得到以下错误:
Command line error: no such option: --downloadonly
![](https://farm9.staticflickr.com/8627/15571201803_38390aae75_c.jpg)
### 方法二: Yumdownloader###
另外一个下载RPM包的方法就是通过一个专门的包下载工具--yumdownloader. 这个工具时yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集.
$ sudo yum install yum-utils
下载一个RPM包:
$ sudo yumdownloader <package-name>
下载的包会被保存在当前目录中.你需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件.与yum命令不同的是,任何依赖包不会被下载.
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/yum-download-rpm-package.html
译者:[theo-l](https://github.com/theo-l)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,111 +0,0 @@
系统性能优化支招使用Ramlog将日志文件转移到RAM
================================================================================
Ramlog以系统守护进程的形式存在。它系统启动的时候创建了虚拟磁盘ramdisk将文件从目录/var/log复制到虚拟磁盘中同时把虚拟磁盘挂载为/var/log。接着更新虚拟磁盘上所有的日志。硬盘上的日志会保留在目录/var/log中直到ramlog重启或停止时被更新。而关机的时候ramdisk上的日志文件会重新保存到硬盘上以确保日志一致性。Ramlog 2.x默认使用tmpfs文件系统同时也可以支持ramfs和内核ramdisk。使用rsync译注Linux数据镜像备份工具这个工具来同步日志。
注意没有保存进硬盘的日志将在断电或者内核混乱kernel panic的情况下丢失。
如果你拥有空间足够的可用内存而又想把日志放进虚拟磁盘就安装ramlog吧。它是笔记本用户、UPS系统或是直接在flash中运行的系统节省写周期的优良选择。
Ramlog的运行机制以及步骤
1.Ramlog在第一个守护进程这取决于你所安装过的其它守护进程的基础上启动。
2.然后创建目录/var/log.hdd并将其硬链至/var/log。
3.如果使用的是tmpfs默认或者ramfs之一的文件系统将其挂载到/var/log上。
而如果使用的是内核ramdiskramdisk将在/dev/ram9中创建并将挂载至/var/log。默认情况下ramlog会占用所有ramdisk的内存其大小由内核参数"ramdisk_size"指定。
5.接着其它的守护进程被启动并在ramdisk中更新日志。Logrotate译注Linux日志轮替工具也是在ramdiks之上运行。
6.重启默认一天一次ramlog时目录/var/log.hdd将借助rsync与/var/log保持同步。日志自动保存的频率可以通过cron译注Linux例行性工作调度来控制。默认情况下ramlog文件放置在目录/etc/cron.daily下。
7.系统关机时ramlog在最后一个守护进程关闭之前关闭。
在ramlog关闭期间/var/log.hdd中的文件将被同步至/var/log接着/var/log和/var/log.hdd都被卸载然后删除空目录/var/log.hdd。
**注意:- 此文仅面向高级用户**
### 在Ubuntu中安装Ramlog ###
首先需要用以下命令,从[这里][1]下载.deb安装包
wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb
下载ramlog_2.0.0_all.deb安装包完毕使用以下命令进行安装
sudo dpkg -i ramlog_2.0.0_all.deb
这一步会完成整个安装,现在你需要运行以下命令:
sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6 .
#现在在初始状态下升级sysklogd使之能在ramlog停止运行前正确关闭
sudo update-rc.d -f sysklogd remove
sudo update-rc.d sysklogd start 10 2 3 4 5 . stop 90 0 1 6 .
然后重启系统:
sudo reboot
系统重启完毕,运行'ramlog getlogsize'获取/var/log的空间大小。在此基础之上多分配40%的空间确保ramdisk有足够的空间这整个都将作为ramdisk的空间大小
编辑引导配置文件,如/etc/grub.conf,、/boot/grub/menu.lst 或/etc/lilo.conf译注具体哪个配置文件视不同引导加载程序而定kernel参数新增项'ramdisk_size=xxx'以更新当前内核其中xxx是ramdisk的空间大小。
### 配置Ramlog ###
基于deb的系统中Ramlog的配置文件位于/etc/default/ramlog你可以在该目录下设置以下变量
Variable (with default value):
Description:
RAMDISKTYPE=0
# Values:
# 0 -- tmpfs (can be swapped) -- default
# 1 -- ramfs (no max size in older kernels,
# cannot be swapped, not SELinux friendly)
# 2 -- old kernel ramdisk
TMPFS_RAMFS_SIZE=
#Maximum size of memory to be used by tmpfs or ramfs.
# The value can be percentage of total RAM or size in megabytes -- for example:
# TMPFS_RAMFS_SIZE=40%
# TMPFS_RAMFS_SIZE=100m
# Empty value means default tmpfs/ramfs size which is 50% of total RAM.
# For more options please check man mount', section Mount options for tmpfs'
# (btw -- ramfs supports size limit in newer kernels
# as well despite man says there are no mount options)
# It has only effect if RAMDISKTYPE=0 or 1
KERNEL_RAMDISK_SIZE=MAX
#Kernel ramdisk size in kilobytes or MAX to use entire ramdisk.
#It has only effect if RAMDISKTYPE=2
LOGGING=1
# 0=off, 1=on Logs can be found in /var/log/ramdisk
LOGNAME=ramlog
# name of the ramlog log file (makes sense if LOGGING=1)
VERBOSE=1
# 0=off, 1=on (if 1, teststartstop puts detials
# to the logs and it is called after start or stop fails)
### 在Ubuntu中卸载ramlog ###
打开终端运行以下命令:
sudo dpkg -P ramlog
注意如果ramlog卸载之前仍在运行需要重启系统完成整个卸载工作。
--------------------------------------------------------------------------------
via: http://www.ubuntugeek.com/improve-system-performance-by-moving-your-log-files-to-ram-using-ramlog.html
作者:[ruchi][a]
译者:[soooogreen](https://github.com/soooogreen)
校对:[校对者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.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

View File

@ -0,0 +1,97 @@
如何在ubuntu14.04上安装轻量级的Budgie桌面(v8)
================================================================================
Budgie是为Linux发行版定制的旗舰桌面也是一个定制工程。为思想前卫的用户设计致力于简单和简洁。它的一个巨大优势是它不是别的项目的fork版本是从都到尾都独立的。
[Budgie桌面][1]与GNOME栈紧密结合使用先进的技术从而提供一个可选择的桌面体验。出于开源理念这个桌面之后也能在别的Linux发行版中看到。
现在Budgie能够通过面板的设置达到和GNOME2桌面相似的使用体验。
### 0.8版的特点 ###
- 任务栏:支持应用锁定到任务栏
- 任务栏:使用.desktop文件来配置quicklists菜单
- 任务栏:使用.desktop文件来配置图标分辨率
- 任务栏:支持有通知时蓝色闪烁
- 面板:支持默认深色主体
- 添加菜单条的小组件
- 面板:自动隐藏菜单条和工具条(这配置为手动)
- 面板:支持屏幕边缘处阴影
- 面板动态支持gnome面板主题
- 运行对话框:虚拟刷新
- Budgie菜单: 增加紧凑模式,并默认采用
- Budgie菜单: 按照使用顺序排列菜单项
- Budgie菜单: 移除旧的电源选项
- 编辑器: 在UI中增加所有的菜单选项
- 支持从GNOME 3.10 升级到3.16
- wm: 关闭工作区的动画(v8之后)
- wm: 改变壁纸时更好的动画
### 重要信息 ###
- Budgie [0.8版发行版][2]目前只是beta
- 无本地网络管理可以通过使用ubuntu的小组件解决
- Budgie 是为Evolve OS设计的因此这个PPA可能会有bug
- GNOME 主题比Ubuntu本地的主题效果更好
- Ubuntu的滚动栏将不在工作
- 如果你想了解的更多可以访问Evolve OS网站
### 安装 ###
现在我们将在Ubuntu14.04 LTS中安装我们自己的轻量级Budgie桌面。首先我们要把PPA源添加到我们的Ubuntu中。执行以下命令
$ sudo add-apt-repository ppa:evolve-os/ppa
![添加Budgie的ppa源](http://blog.linoxide.com/wp-content/uploads/2015/01/budgie-desktop-ppa.png)
添加完ppa之后运行下面的命令更新本地软件仓库。
$ sudo apt-get update
然后只要执行下面的命令安装
$ sudo apt-get install budgie-desktop
![安装 Budgie Desktop](http://blog.linoxide.com/wp-content/uploads/2015/02/install-budgie-desktop.png)
**注意点**
这是一个活跃的开发版本,一些主要的特点可能还不是特别的完善,如:网络管理器为数不多的控制组件无通知系统斌并且无法将app锁定到任务栏。
作为工作区你能够禁用滚动栏,通过设置一个默认的主题并且通过下面的命令退出当前的会话
$ gnome-session-quit
![退出 Gnome 会话](http://blog.linoxide.com/wp-content/uploads/2015/02/gnome-seesion-quit.png)
### 登录Budgie会话 ###
安装完成之后我们能在登录时选择机进入budgie桌面。
![选择桌面会话](http://blog.linoxide.com/wp-content/uploads/2015/02/session-select.png)
### Budgie 桌面环境 ###
![Budgie 桌面环境](http://blog.linoxide.com/wp-content/uploads/2015/02/budgie-desktop.png)
### 注销当前用户 ###
$ budgie-sessioon --logout
### 结论 ###
Hurray! We have successfully installed our Lightweight Budgie Desktop Environment in our Ubuntu 14.04 LTS "Trusty" box. As we know, Budgie Desktop is still underdevelopment which makes it a lot of stuffs missing. Though its based on Gnomes GTK3, its not a fork. The desktop is written completely from scratch, and the design is elegant and well thought out. If you have any questions, comments, feedback please do write on the comment box below and let us know what stuffs needs to be added or improved. Thank You! Enjoy Budgie Desktop 0.8 :-)
Budgie桌面当前正在开发过程中因此有目前有很多功能的缺失。虽然它是基于Gnome但不是完全的复制。Budgie是完全从零开始实现它的设计是优雅的并且正在不断的完善。
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/install-lightweight-budgie-v8-desktop-ubuntu/
作者:[Arun Pyasi][a]
译者:[johnhoow](https://github.com/johnhoow)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:https://evolve-os.com/budgie/
[2]:https://evolve-os.com/2014/11/16/courageous-budgie-v8-released/

View File

@ -0,0 +1,174 @@
如何设置lftp - 一个简易的命令行FTP程序
================================================================================
大家好这篇文章是介绍Lftp以及如何在Linux操作系统下安装的。[Lftp][1]是一个基于命令行的文件传输软件也被称为FTP客户端由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP它还支持FTPSHTTPHTTPSHFTPFISH以及SFTP。这个程序还支持FXP允许数据绕过客户端直接在两个FTP服务器之间传输。
他有很多很棒的高级功能比如完整目录树递归镜像以及断点续传下载。传输任务可以安排在稍后的时间段执行可以限制带宽可以创建传输列表还支持类似Unix shell的任务控制。客户端还可以在交互式或自动脚本里使用。
### 安装Lftp ###
在运行lftp之前我们需要确定它已经正确安装在我们的Linux发行版中了。下面是在常见Linux发行版中安装lftp的一些命令。
**Ubuntu 14.04 LTS**
在Ubuntu 14.04 LTS以及它的衍生版中我们可以通过apt管理程序安装lftp。要安装它我们需要使用sudo权限在shell或终端里运行下面的命令。
$ sudo apt-get install lftp
![ubuntu install lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/ubuntu-install-lftp.png)
**CentOS/Fedora/RHEL**
因为在FedoraCentOS和RHEL的软件仓库里也能找到lftp我们可以用**yum**管理程序来安装它。
$ sudo yum install lftp
![fedora lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/fedora-lftp.png)
**Arch Linux**
在Arch Linux安装包仓库里也有我们可以简单地使用pacman来安装它。
$ sudo pacman -S lftp
![archlinux install lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/archlinux-install-lftp.png)
**OpenSuse**
OpenSuse系统里的包管理软件Zypper可以用来安装lftp。下面是在OpenSuse机器上用来安装的命令。
$ sudo zypper install lftp
![opensuse lftp install](http://blog.linoxide.com/wp-content/uploads/2015/03/lftp_install.png)
### 登录 ###
要登录到ftp服务器或sftp服务器我们首先需要知道所要求的认证信息比如用户名密码端口。
之后我们想通过lftp来登录。
$ lftp ftp://linoxide@localhost
![ftp login](http://blog.linoxide.com/wp-content/uploads/2015/03/lftp-login.png)
如果需要指定登录端口,我们可以按下面的方式加上去。
$ lftp ftp://linoxide@localhost:21
![ftp login with ports](http://blog.linoxide.com/wp-content/uploads/2015/03/lftp-login-port.png)
### 浏览 ###
我们可以用**ls**命令来列出文件和目录,用**cd**命令打开目录。
![ls and cd](http://blog.linoxide.com/wp-content/uploads/2015/03/ls-cd-lftp.png)
### 上传和下载文件 ###
我们可以用**pget**命令来从远端服务器下载文件。
> pget linspeed.svg
![pget lftp](http://blog.linoxide.com/wp-content/uploads/2015/03/pget-lftp.png)
我们可以用**put**命令来上传文件到远端服务器。
> put linoxide.tar
![upload with put](http://blog.linoxide.com/wp-content/uploads/2015/03/put-upload.png)
要恢复之前只下载了一部分的文件/目录,我们可以用-c开关
> mirror -c Directory
>pget -c linoxide.tar
> put -c upload.tar
### 使用镜像命令 ###
我们可以用mirror命令来下载所指定的整个目录。
> mirror remote local
![download with mirror](http://blog.linoxide.com/wp-content/uploads/2015/03/mirror.png)
还可以做反向镜像(mirror -R),可以用来上传或更新本地目录树到服务器上。
> mirror -R local remote
![upload or update with mirror reverse](http://blog.linoxide.com/wp-content/uploads/2015/03/mirror-reverse.png)
要恢复之前下载了一部分的文件/目录,我们可以用-c开关
> mirror -c Directory
### 下载队列 ###
我们可以在lftp里使用queue的选项这样我们可以像基于GUI的客户端那样挨个下载队列里选择的文件。下面举个例子。
为了避免队列自动开始传输,我们可以这样做:
> queue stop
现在,我们添加任务到队列。
> queue mirror "directory"
> queue pget "file.tar"
在建立好队列后我们再运行queue start命令。
> queue start
可以运行下面的命令移除整个队列。
> queue -d
### 分块下载 ###
下面是一个把一个文件分成3块来下载的例子你可以根据自己的需要调整。
使用pget命令分块功能的方式是**pget -n 3 file.tar**里面的3是分块的数目。
> pget -n 3 file.tar
使用mirror命令分块功能的方式是**mirror --use-pget-n=3 directory**里面的3是分块的数目。
> mirror --use-pget-n=3 linxoxide
我们可以用jobs -v命令来查看每个独立分块的下载速度以及整体速度。
### 停止,继续或删除一次传输任务 ###
要取消传输我们可以按下Ctrl+C。而要恢复下载我们可以像下面那样使用-c (--continue)开关。
> mirror -c directory
要删除一次正在正在传输的任务我们可以用**kill**命令,而要删除所有任务我们可以使用下面那样的**kill all**命令。
> kill
> kill all
### 退出 ###
要从lftp退出我们需要在终端或lftp交互接口中运行exit命令。
> exit
### 总结 ###
我们已经成功地安装了lftp并学会了使用它的一些基础的主要方式。lftp是一个非常棒的命令行ftp客户端它支持许多额外的功能以及很酷的特性。它比其他普通ftp客户端多了很多东西。好吧你要是有任何问题建议反馈请在下面的评论区里留言。谢谢享用lftp吧 :-)
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/setup-lftp-command-line-ftp/
作者:[Arun Pyasi][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:http://lftp.yar.ru/

View File

@ -0,0 +1,61 @@
在FreeBSD 10.1中安装Mate桌面
================================================================================
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/03/FreeBSD-790x494.jpg)
FreeBSD是全文本模式的系统然而有些新用户想要使用GUI桌面环境。这个教程就是帮助你在Freebsd 10.1中安装Mate桌面。
下面是我的系统细节:
root@Freebsd-unixmen:~ # uname -a
FreeBSD Freebsd-unixmen 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
root@Freebsd-unixmen:~
要在FreeBSD 10.1 中开始安装Mate桌面按照下面的步骤。
pkg install xf86-video-fbdev mate-desktop mate xorg
### 在 /etc/rc.conf 中加入下面的行 ###
moused_enable="YES"
dbus_enable="YES"
hald_enable="YES"
### 测试安装 ###
xinit mate-session
![](http://www.unixmen.com/wp-content/uploads/2015/03/snapshot2.png)
Mate本身没有显示管理器。因此我们会使用其他的显示管理器如XDM、GDM、slim等等来作为登录管理器。这里让我们看看如何在Mate桌面中配置Slim DM
### 安装 Slim ###
pkg install slim
在**/etc/rc.conf**中加入下面的行:
slim_enable="YES"
在用户的家目录下的.xinitrc文件加入下面的行。
exec mate-session
重启电脑。现在在你登录Mate时就会进入Slim登录界面了。
![](http://www.unixmen.com/wp-content/uploads/2015/03/snapshot3.png)
![](http://www.unixmen.com/wp-content/uploads/2015/03/snapshot4.png)
就是这样。干杯!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/install-mate-desktop-freebsd-10-1/
作者:[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/

View File

@ -0,0 +1,62 @@
Linux有问必答Perl中本地时间和UNIX时间戳间相互转换
================================================================================
> **问题**: 在Perl语言中我需要转换易读的日期和时间到对应的UNIX时间戳反之亦然。你可以给我一些Perl代码例子吗关于日期及时间转换到UNIX时间戳或者相反转换UNIX时间戳到可读的日期和时间。
当你的Perl脚本需要解决时间信息这里有两种方法来表示和处理日期和时间。一种方法是易读的时间表示"Sat Mar 14 10:14:05 EDT 2015"另外一种是使用UNIX时间戳也叫“新纪元时间”这是从1970年1月1日到今所消耗的时间秒数。每一种方法都有它自己的优劣势取决于你的需要也许也就需要转换一种格式到另一种。
### Perl中转换本地时间到UNIX时间戳 ###
为了从日期字符串中获得UNIX时间可以使用Date::Parse模块中str2time()函数。此函数可以处理多种格式,例如:
- Sat Mar 14 10:14:05 EDT 2015
- 3/14/2015 10:14:05 -0400
- 14/Mar/15 10:14:05
- 14 Mar 15 10:14:05
use Date::Parse;
my $local_time = "Sat Mar 14 10:14:05 EDT 2015";
# 1426342445 will be stored in $unix_time
my $unix_time = str2time($local_time);
Date:Parse 模块支持多种语言(英语,法语,德语和意大利语)和时区。例如:
use Date::Parse;
use Date::Language;
my $lang = Date::Language->new('French');
my $unix_time = $lang->str2time("12:14:05, Ago 16, 2014 (CEST)");
### Perl中UNIX时间戳到可读的日期和时间 ###
如果你想要转换UNIX时间戳到可读的格式可以使用localtime()函数此函数可以转换UNIX时间戳为一个9元素列表。然后你可以使用返回的list构造任何你需要的可读格式。这里有一个代码片段
# $sec, $min, $hour: 秒,分,时
# $mday: 月中的某天 (0-31)
# $mon: 月份,范围 0 (一月) 至 11 (十二月)
# $year: 年份与1900年的差值(2015年为2015-1900=115)
# $wday: 星期,范围 0 (星期天) 至 6 (星期六)
# $yday: 年中的某天,范围 0 至 364 (或 365 闰年)
# $isdst: 是否是夏令时
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($unix_timestamp);
# necessary conversion of $mon and $year
$mon += 1;
$year += 1900;
print "Current time: $year-$mon-$mday $hour:$min:$sec\n";
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/convert-local-time-unix-timestamp-perl.html
作者:[Dan Nanni][a]
译者:[VicYu/Vic020](http://vicyu.net)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni

View File

@ -0,0 +1,213 @@
Fedora GNOME快捷键
================================================================================
在Fedora,为了获得最好的[GNOME桌面] [1]体验,你需要了解并掌握一些驾驭系统的快捷键。
这篇文章将列举我们日常使用中使用频率最高的快捷键。
![GNOME Keyboard Shortcuts - The Super Key. ](http://f.tqn.com/y/linux/1/L/o/K/1/gnomekeyboardshortcut1.png)
GNOME 快捷键 - super键.
#### 1. Super键 ####
[“super”键][2]是如今驾驭操作系统的好朋友。
在传统的笔记本电脑中“super”键坐落于最后一列就在“alt”键的旁边就是徽标键
当你按下“super”键后“activities”总览图就会出现你就能看见所有打开应用的缩略图。
同时按下 "ALT" 和"F1"一样可以达到这样的效果。
![GNOME Run Command.](http://f.tqn.com/y/linux/1/L/p/K/1/runcommand.png)
GNOME 指令运行.
### 2. 如何快速执行一条指令 ###
如果你需要快速的执行一条指令,你可以按下"ALT"+"F2",这样就会出现指令运行对话框了。
你就可以在窗口中输入你想要执行的指令了,回车执行。
![TAB Through Applications.](http://f.tqn.com/y/linux/1/L/q/K/1/tabthroughwindows.png)
使用TAB在应用中切换。
### 3. 快速切换到另一个打开的应用 ###
就像微软的Windows一样你可以使用"ALT"和"TAB" 的组合键在应用程序之间切换。
在一些键盘上tab键是这样的**|<- ->|**而有些则是简单的"TAB"字母。
GNOME应用间切换随着你的切换显示的是简单的图标和应用的名字
如果你按下"shift"+"tab"将反过来切换应用。
![Switch Windows In The Same Application.](http://f.tqn.com/y/linux/1/L/r/K/1/switchwindowsinsameapplication.png)
在应用中切换不同窗口。
### 4. 在同一应用中快速切换不同的窗口 ###
如果你像我一样经常打开五六个Firefox。
你已经知道通过"Alt"+"Tab"实现应用间的切换。
有两种方法可以在同应用中所有打开的窗口中切换。
第一种是按"Alt"+"Tab"让选框停留在你所要切换窗口的应用图标上。短暂的停留等到下拉窗出现你就能用鼠标选择窗口了。
第二种也是比较推荐的方式是按"Alt"+"Tab"让选框停留在你所要切换窗口的应用图标上然后按"super"+"`"在此应用打开的窗口间切换。
**注释"\`"就是tab键上面的那个键。用于切换的键一直都是tab上面的那个键无论你使用的那种键盘排布也有可能不是"`"键。**
如果你的手很灵活(或者是我称之为的忍者手)那你也可以同时按"shift", "`"和"super"键来反向切换窗口。
![Switch Keyboard Focus.](http://f.tqn.com/y/linux/1/L/s/K/1/switchkeyboardfocus.png)
切换键盘焦点。
### 5. 切换键盘焦点 ###
这个键盘快捷键并不是必须掌握的,但是还是最好掌握。
如若你想将输入的焦点放到搜索栏或者一个应用窗口上,你可以同时按下"CTRL", "ALT"和"TAB",这样就会出现一个让你选择切换区域的列表。
然后就可以按方向键做出选择了。
![Show All Applications.](http://f.tqn.com/y/linux/1/L/t/K/1/showapplications.png)
显示所有应用程序。
### 6. 显示所有应用程序列表 ###
如果恰巧最后一个应用就是你想要找的,那么这样做真的会帮你省很多时间。
按"super"和"A"键来快速浏览这个包含你系统上所有应用的列表。
![Switch Workspaces.](http://f.tqn.com/y/linux/1/L/u/K/1/switchworkspaces.png)
切换工作区。
### 7. 切换工作区 ###
如果你已经使用linux有一段时间了那么这种[多工作区切换][3]的工作方式一定深得你心了吧。
举个例子,你在第一个工作区里做开发,第二个中浏览网页而把你邮件的客户端开在第三个工作区中。
工作区切换你可以使用"super"+"Page Up" (PGUP)键朝一个方向切,也可以按"super"+"Page Down" (PGDN)键朝另一个方向切。
还有一个比较麻烦的备选方案就是按"super"显示打开的应用,然后在屏幕的右侧选择你所要切换的工作区。
![Move Application To Another Workspace.](http://f.tqn.com/y/linux/1/L/v/K/1/movetoanewworkspace.png)
将应用移至另一个工作区。
### 8. 将一些项目移至一个新的工作区 ###
如果这个工作区已经被搞得杂乱无章了没准你会想将手头的应用转到一个全新的工作区,请按组合键"super", "shift"和"page up"或"super", "shift"和"page down" key。
备选方案按"super"键,然后在应用列表中找到你想要移动的应用拖到屏幕右侧的工作区。
![Show The Message Tray.](http://f.tqn.com/y/linux/1/L/w/K/1/showmessagetray.png)
显示信息栏。
### 9. 显示信息栏 ###
消息栏会提供一些通知。
按"super"+"M"呼出消息栏。
备选方法是鼠标移动到屏幕右下角。
![Lock The Screen.](http://f.tqn.com/y/linux/1/L/x/K/1/lockscreen.png)
锁屏。
### 10. 锁屏 ###
想要休息一会喝杯咖啡?不想误触键盘?
无论何时只要离开你的电脑应该习惯性的按下"super"+"L"锁屏。
解锁方法是从屏幕的下方向上拽,输入密码即可。
![Control Alt Delete Within Fedora.](http://f.tqn.com/y/linux/1/L/y/K/1/poweroff.png)
Fedora中Control+Alt+Delete
### 11. 关机 ###
如果你曾是windows的用户你一定记得著名的三指快捷操作CTRL+ALT+DELETE。
如果在键盘上同时按下CTRL+ALT+DELETEFedora就会弹出一则消息提示你的电脑将在60秒后关闭。
### 12. 编辑快捷键 ###
在各类操作系统中编辑快捷键都大同小异。
- CTRL + A - 全选
- CTRL + X - 剪切
- CTRL + C - 复制
- CTRL + V - 粘贴
- CTRL + Z - 撤销
### 13. 截屏 ###
和编辑快捷键一样,截屏键也就那么基础的几个。
- PRTSC (Print Screen) - 截屏
- Alt + PRTSC - 当前窗口截图
- Shift + PRTSC - 所选区域截图
这里还有一个比较特殊的按键,主要是为了大家可以更容易的制作视频教程的。
- CTRL + ALT + SHIFT + R - 录制视频
- CTRL + ALT + SHIFT + R 第二次按下时 - 停止录制
[录制的内容][4]将以[webm][5]格式保存于当前用户家目录下的录像文件夹中。
![Put Windows Side By Side.](http://f.tqn.com/y/linux/1/L/z/K/1/splitwindows.png)
并排显示窗口。
### 14. 并排显示窗口 ###
你可以将一个窗口靠左占满左半屏,另一个窗口靠右占满右半屏,让两个窗口并排显示。
也可以按"Super"+"←"让当前应用占满左半屏。
按"Super"+"→"让当前应用占满右半屏。
### 15. 窗口的最大化, 最小化和恢复 ###
双击标题栏可以最大化窗口。
最大化后的窗口再双击就会还原至原大小。
右键菜单选择"最小化"就可以最小化了。
![GNOME Keyboard Shortcut Cheat Sheet. ](http://f.tqn.com/y/linux/1/L/-/L/1/gnomekeyboardshortcuts.png)
GNOME快捷键速查表。
### 16. 总结 ###
我做了一份快捷键速查表,你可以打印出来贴在墙上,这样一定能够更快上手。
当你掌握了这些快捷键后,你一定会感慨这个桌面环境使用起来是如此的顺手。
- [戳这里查看Fedora GNOME桌面的速查表][6]
- [查看GNOME WIKI请戳这里][7]
- [另外的一个GNOME WIKI][8]
- [GNOME 3备用速查表][9]
--------------------------------------------------------------------------------
via: http://linux.about.com/od/howtos/tp/Fedora-GNOME-Keyboard-Shortcuts.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]:https://www.gnome.org/gnome-3/
[2]:http://en.wikipedia.org/wiki/Super_key_%28keyboard_button%29
[3]:http://linux.about.com/library/gnome/blgnome2n4.htm
[4]:http://en.wikipedia.org/wiki/Screencast
[5]:http://en.wikipedia.org/wiki/WebM
[6]:https://s-media-cache-ak0.pinimg.com/originals/d5/f4/a4/d5f4a42c0940fae6653ee9a17294d450.jpg
[7]:http://en.wikipedia.org/wiki/GNOME
[8]:https://wiki.gnome.org/
[9]:https://wiki.gnome.org/Gnome3CheatSheet

View File

@ -0,0 +1,94 @@
在Linux上安装与使用Go for it备忘软件
===============================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go_For_It_TODO_Linux.jpeg)
你在Linux桌面是如何管理任务和备忘的我喜欢[用Ubuntu的粘滞便签][1]很久了。但是我要面对与其他设备同步的麻烦,特别是我的智能手机。这就是我为什么选择使用[Google Keep][2]的原因了。
现在Google Keep是一款功能丰富的软件我十分喜爱而且喜欢到把他叫做[Linux的Evernote][3]地步。但是并不是每个人都喜欢一款功能丰富的备忘录软件。极简主义是目前的主流,很多人喜欢。如果你是极简主义的追求者之一,而且正在寻找一款开源的备忘录软件,那么你应该试一试[Go For It][4]。
### Go For It高效的Linux桌面软件 ###
Go For It是一款简洁的备忘软件借助定时提醒帮助你专注于工作。所以你添加一个任务到列表后可以附上一个定时器。到设定时间后它就会提醒你去做任务。你可以看看其开发者制作的视频[Manuel Kehl][5]:
注释youtube视频发布的时候可做成一个链接
<iframe width="640" height="390" frameborder="0" allowfullscreen="true" src="http://www.youtube.com/embed/mnw556C9FZQ?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" class="youtube-player"></iframe>
### 安装 Go For It###
为在Ubuntu 15.04,14.04和其他基于Linux内核的Ubuntu版本如Linux Mint初级操作系统Freya等等上面安装 Go For It请使用这款软件官方的PPA
sudo add-apt-repository ppa:mank319/go-for-it
sudo apt-get update
sudo apt-get install go-for-it
你也可以下载.deb包Windows安装包和源代码从下面不同的连接中
- [Download source code][6]
- [Download .deb binaries][7]
- [Download for Windows][8]
### 在Linux桌面使用Go For It###
Go For It使用真心方便。你只需添加任务到列表中任务会自动存入todo.txt文件中。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go-for-it_todo_app_linux.png)
默认是为每个任务定时25分钟。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go-for-it_todo_app_linux_1.png)
任务一旦完成就会被自动存档到done.txt文件中。根据喜好它会在规定的时间间隔或者任务过期前不久发送桌面提醒
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go_for_it_Linux_notification.png)
你可以从配置里面修改所有的喜好。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go-for-it_todo_app_linux_2.png)
目前一切都看着挺好。但是在智能手机上使用体验怎样呢如果你不能使它在不同设备间同步那这款高效软件就是不完整的。好消息是Go For It是基于[todo.txt][9]的这意味着你可以用第三方软件和像Dropbox一样的云服务来使用它。
### 在安卓手机和平板上使用Go For It ###
在这里你需要做一些工作。首先的首先在Linux和你的安卓手机上安装Dropbox如果之前没有安装的话。下一步你要做的就是要配置Go For It**改todo.txt的目录到Dropbox的路径下**
然后,你得去下载[Simpletask Andriod app][10]。这是免费的应用。安装它。当你第一次运行Simletask的时候你会被要求关联你的账号到Dropbox
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go_for_it_Android_1.jpeg)
一旦你完成了Simpletask与Dropbox的关联就可以打开应用。如果你已经修改了Go For It的配置将文件保存到Dropbox上你就应该可以在Simpletask里看到。而如果你没有看到点击应用底部的设置选择Open Todo file的选项
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Go_for_it_Android.jpeg)
现在你应该可以看到Simpletask同步的任务了。
### 总结 ###
有了Simpletask你就可以相似地使用它就像一种[标记语言工具][11]。对于小巧和专注而言Go For It是一款不错的备忘软件。一个干净的界面是额外的加分点。拥有它自己的手机应用应该是比较好的但是我们已经看到了替代的方案。
底层来讲Go For It!不会运行在后台。这就是说,你不得不让它一直保持运行。它甚至没有一个最小化的按钮,这有一点小小的烦扰。我想要看到的是有一个小的指示程序,运行在后台,并且快速进入主面板,这肯定会提升其可用性。
是该试试Go For It分享一下你们之间的经历。在Linux桌面上,你还使用了哪些其他的备忘软件比起其他你最喜欢的同类应用Go For It怎么样
-------------------------------------------------------------------------------
via: http://itsfoss.com/go-for-it-to-do-app-in-linux/
作者:[Abhishek][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[校对者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/indicator-stickynotes-windows-like-sticky-note-app-for-ubuntu/
[2]:http://itsfoss.com/install-google-keep-ubuntu-1310/
[3]:http://itsfoss.com/5-evernote-alternatives-linux/
[4]:http://manuel-kehl.de/projects/go-for-it/
[5]:http://manuel-kehl.de/about-me/
[6]:https://github.com/mank319/Go-For-It
[7]:https://launchpad.net/~mank319/+archive/ubuntu/go-for-it
[8]:http://manuel-kehl.de/projects/go-for-it/download-windows-version/
[9]:http://todotxt.com/
[10]:https://play.google.com/store/apps/details?id=nl.mpcjanssen.todotxtholo&hl=en
[11]:http://itsfoss.com/install-latex-ubuntu-1404/

View File

@ -0,0 +1,70 @@
Ubuntu中使用Prey定位被盗的笔记本与手机
===============================================================================
Prey是一款跨平台的开源工具可以帮助你找回被盗的笔记本台式机平板和智能手机。它已经获得了广泛的流行声称帮助召回了成百上千台丢失的笔记本和智能手机。Prey的使用特别简单首先安装在你的笔记本或者手机上当你的设备不见了用你的账号登入Prey网站并且标记你的设备为“丢失”。只要小偷将设备接入网络Prey就会马上发送设备的地理位置给你。如果你的笔记本有摄像头它还会拍下小偷。
Prey占用很小的系统资源你不会对你的设备运行有任何影响。你也可以配合其他你已经在设备上安装的防盗软件使用。Prey采用安全加密的通道在你的设备与Prey服务器之间进行数据传输。
### 在Ubuntu上安装并配置Prey ###
让我们来看看如何在Ubuntu上安装和配置Prey需要提醒的是在配置过程中我们必须到Prey官网进行账号注册。一旦完成上述工作Prey将会开始监视的设备了。免费的账号最多可以监视三个设备如果你需要添加更多的设备你就需要购买合适的的套餐了。
想象一下Prey多么流行与被广泛使用它现在已经被添加到了官方的软件库中了。这意味着你不要往软件包管理器添加任何PPA。很简单地登录你的终端运行以下的命令来安装它
sudo apt-get install prey
![Install Prey](http://blog.linoxide.com/wp-content/uploads/2015/03/Install-Prey.png)
![Install Prey 1](http://blog.linoxide.com/wp-content/uploads/2015/03/Install-Prey-1.png)
Prey是十分轻巧的软件只使用了系统几兆的空间安装完成后从Application >> Prey启动之后它会询问你进行相关配置。
选择“New User”如果你是第一次使用的话。
![Prey New User](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-New-User.png)
第二步实际上就是官网注册的流程。请提供你的用户名,邮箱地址和密码,来申清一个免费的账号。
![Register Prey](http://blog.linoxide.com/wp-content/uploads/2015/03/Register-Prey.png)
点击“Apply”完成所有工作搞定现在你的计算机被Prey保护了。
![Prey Configuration](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-Configuration.png)
登录你最新建立的[Prey 账号][1]你就应该可以在“Devices”菜单下看见你的设备信息了。
![Prey Web Login](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-Web-Login.png)
只要你的笔记本或者任何其他设备丢失了就登录你的Prey网站账号然后点击“Set Device to Missing”选项修改设备状态为“missing”。
![Prey Missing Page](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-Missing-1.png)
从这里选择定时报告并点击“Yesmy device is missing”。定时报告选项是指一段时间间隔后软件会更新并发送给你设备的地理位置。它还会从网页界面那发邮件给你只要设备的状态改变了。
![Prey Missing Email](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-Missing-2.png)
而一旦被盗的设备接入了互联网Prey就会马上发送报告给你包括设备的地理位置和IP地址。
![Prey Found Report](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-Missing-3.png)
点击报告链接你应该会看到设备的地理位置和IP地址。
![Prey Final](http://blog.linoxide.com/wp-content/uploads/2015/03/Prey-Final.png)
Prey有一个明显的不足。它需要你的设备接入互联网才会发送地理位置给你如果小偷比较聪明在接入网络前将你的设备磁盘格式化了那么你就永远不会收到设备被发现的报告了。但是这里仍然是有一个方法克服这个不足确保添加一个BIOS密码并且禁用从可移除的设备里启动系统。
### 结论 ###
这是一款小巧非常有用的安全保护应用可以让你在一个地方追踪你所有的设备尽管不完美但是仍然提供了找回被盗设备的机会。它在LinuxWindows和Mac平台上无缝运行。以上就是Prey完整使用的所有细节。
-------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/anti-theft-application-prey-ubuntu/
作者:[Aun Raza][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunrz/
[1]:https://preyproject.com/

View File

@ -0,0 +1,100 @@
Linux有问必答--如何使用命令行压缩JPEG图像
================================================================================
> **问题**: 我有许多数码照相机拍出来的照片。我想在上传到Dropbox之前优化和压缩下JPEG图片。有没有什么简单的方法压缩JPEG图片并不损耗他们的质量
如今拍照设备如智能手机、数码相机拍出来的图片分辨率越来越大。甚至3630万像素的Nikon D800已经冲入市场并且这个趋势根本停不下来。如今的拍照设备不断地提高着照片分辨率使得我们不得不压缩后再上传到有储存限制、带宽限制的云。
事实上这里有一个非常简单的方法压缩JPEG图像。一个叫“jpegoptim”命令行工具可以帮助你“无损”美化JPEG图像所以你可以压缩JPEG图片而不至于牺牲他们的质量。万一你的存储空间和带宽预算真的很少jpegoptim也支持“有损耗”压缩来调整图像大小。
如果要压缩PNG图像参考[this guideline][1]例子。
### 安装jpegoptim ###
Ubuntu, Debian 或 Linux Mint:
$ sudo apt-get install jpegoptim
Fedora:
$ sudo yum install jpegoptim
CentOS/RHEL安装先开启[EPEL库][2],然后运行下列命令:
$ sudo yum install jpegoptim
### 无损压缩jpeg图像 ###
为了无损地压缩一副JPG图片使用
$ jpegoptim photo.jpg
----------
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 821064 bytes (6.93%), optimized.
注意,原始图像会被压缩后图像覆盖。
如果jpegoptim不能无损美化图像将不会覆盖
$ jpegoptim -v photo.jpg
----------
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 821064 --> 821064 bytes (0.00%), skipped.
如果你想保护原始图片,使用"-d"参数指明保存目录
$ jpegoptim -d ./compressed photo.jpg
这样,压缩的图片将会保存在./compressed目录已同样的输入文件名
如果你想要保护文件的创建修改时间,使用"-p"参数。这样压缩后的图片会得到与原始图片相同的日期时间。
$ jpegoptim -d ./compressed -p photo.jpg
如果你只是想获得无损压缩率,使用"-n"参数来模拟压缩,然后它会打印压缩率。
$ jpegoptim -n photo.jpg
### 有损压缩JPG图像 ###
万一你真的需要要保存在云空间上你可以使用有损压缩JPG图片。
这种情况下,使用"-m<质量>"选项质量数范围0到100。0是最好质量100是最坏质量
例如用50%质量压缩图片:
$ jpegoptim -m50 photo.jpg
----------
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 301780 bytes (65.79%), optimized.
在牺牲质量的基础上,将会得到一个更小的图片。
![](https://farm9.staticflickr.com/8707/16260736234_6d6f1d2434_c.jpg)
### 一次压缩多张JPEG图像 ###
最常见的情况是需要压缩一个目录下的多张JPEG图像文件。为了应付这种情况你可以使用接下里的脚本。
#!/bin/sh
# 压缩当前目录下所有*.jpg文件
# 保存在./compressed目录
# 并拥有与原始文件同样的修改日期
for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/compress-jpeg-images-command-line-linux.html
作者:[Dan Nanni][a]
译者:[VicYu/Vic020](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:http://xmodulo.com/how-to-compress-png-files-on-linux.html
[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html

View File

@ -0,0 +1,60 @@
Prips - 打印指定范围内的IP地址
================================================================================
prips是一个可以打印出指定范围内所有ip地址的一个工具。它可以增强那些只能同时工作在一个主机上的工具的可用性。
### 在ubuntu上安装prips ###
打开终端并输入下面的命令
sudo apt-get install prips
### 使用prips ###
### prips语法 ###
prips [-c] [-d delim] [-e exclude] [-f format] [-i incr] start end
prips [-c] [-d delim] [-e exclude] [-f format] [-i incr] CIDR-block
### 可用选项 ###
prips接受下面的命令行选项
- -c -- 以CIDR形式打印范围。
- -d delim -- 用ASCII码作为分隔符0 <= delim <= 255。
- -e -- 排除输出的范围。
- -f format -- 设置地址格式 (16进制, 10进制, 或者dot).
- -i incr -- 设置增长上限
### Prips示例 ###
显示保留的子网内的所有地址:
prips 192.168.32.0 192.168.32.255
同样使用CIDR标示:
prips 192.168.32/24
只显示A类保留子网内所有可用的地址用空格而不是换行作为分隔符
prips -d 32 10.0.0.1 10.255.255.255
每块显示4个ip地址
prips -i 4 192.168.32.7 192.168.33.5
打印包含两个地址的最小CIDR块。
prips -c 192.168.32.5 192.168.32.11
--------------------------------------------------------------------------------
via: http://www.ubuntugeek.com/prips-print-ip-address-on-a-given-range.html
作者:[ruchi][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.ubuntugeek.com/author/ubuntufix