归档201502

This commit is contained in:
wxy
2015-03-02 14:27:33 +08:00
parent 31c3544ea9
commit fc13be47c5
62 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,152 @@
Linux下的四大下载管理器
================================================================================
**改善你的网页下载,以便更好的管理文件镜像、批量下载还是仅仅希望更好的管理你的文件。**
下载管理器现在似乎已经不新鲜了但是他们仍然非常有用。我们来比较一下Linux上排名前四的下载管理器。
### [uGet][1] ###
如同很多其他的Linux应用一样uGet把体积轻巧和功能全面作为宣传亮点。它能处理多线程下载支持过滤器还能与任何网络浏览器进行整合。它从当初的UrlGet开始如今已经经过了十年。它还能在Windows上运行。
![uGet is actually very full-featured, with a lot of the kind of functions that advanced torrent clients use](http://www.linuxuser.co.uk/wp-content/uploads/2014/08/uget1.png)
*uGet的功能其实非常全面有很多先进的BT下载客户端所拥有的功能*
#### 界面 ####
uGet让我们想起了许多BT下载客户端的界面有着活跃、结束、暂停等等对于不同下载任务的分类。尽管有很多的信息但是他们都以非常简单明确的方式展现出来。旁边伴有高级选项的主下载控制非常易于使用。
#### 集成 ####
它能查看到剪贴板里的URL但uGet并没有在本地集成到Chromium和Firefox这些浏览器中。尽管如此这两种浏览器还是能通过一些扩展程序连到uGet上Firefox可以用FlashgotChromium则有专用的插件。虽然不是很理想但是已经足够好了。
#### 功能 ####
成熟的uGet完备了各种功能包括按计划启动和终止下载任务的高级功能通过剪贴板批量下载还能改变它在剪贴板里查找的文件的类型。虽然有插件选项但不多。
#### 可获得性 ####
虽然在多数主要的发行版的软件库中都能得到它但uGet网站上有着定期更新的适用于各种流行的发行版的二进制安装文件还能轻易获得源代码。它的运行基于GTK 3+的图形库所以它在某些桌面环境上的封装要比其他的小然而我们得说在KDE或其他Qt桌面上值得为此添加额外的依赖库。
#### 总体评价 ####
8/10
我们非常喜欢uGet——它种类繁多的功能和极高的人气让它成为了能与Linux浏览器优雅结合的万能下载管理器。
### [KGet][2] ###
KDE自家的下载管理器貌似原本是设计成与KDE的网页浏览器 Konqueror 一同工作的。它带来了我们这次测试中所期待的功能:多下载控制和对下载完成的文件计算校验和的能力。
![You need to manually activate the ability to keep an eye on the clipboard for links](http://www.linuxuser.co.uk/wp-content/uploads/2014/08/kget1.png)
*你需要手动激活查看剪贴板中下载链接的功能*
#### 界面 ####
作为一个备受期待的KDE应用软件KGet采用一贯的图标和线条与桌面环境的审美风格完美融合。它的设计也相当简洁在主工具栏里只显示最必要的功能当前下载也以最小界面显示。
#### 集成 ####
KGet会集成到本地的KDE的Konqueror浏览器里虽然它并不是最流行的浏览器。Firefox对KGet的支持是一如既往的是通过FlashGot完成的但是在Chromium里并没有任何一种方法能真正的将它集成进去。你可以打开一个“询问你是否想下载已复制好的URL”的功能然而KGet对于剪贴板的分析并不是很好有的时候会把文本下载下来。
#### 功能 ####
能够选择的功能并不多。没有计划任务,没有批量下载,基本上没有什么特色的下载功能。剪贴板扫描功能,想法很不错就是有点问题。设置菜单看起来有点怪怪的,因为它看起来应该设计有更多的功能。
#### 可获得性 ####
虽然它不会随着KDE默认安装但可以在任何支持KDE的发行版里得到它。虽然它的运行需要几个KDE库找到它的源代码也很困难。除了少数几个发行版之外也没有什么二进制安装文件。
#### 总体评价 ####
6/10
KGet并没有真正的给予用户比大多数主流浏览器内置下载管理器更强大的下载管理功能但是你可以在浏览器关闭的情况下使用它。
### [DownThemAll!][3] ###
经由Firefox的附属组件进入Linux的DownThemAll从某种程度上可以说是跨平台。这让它只能通过Firefox使用然而作为世界上最流行的浏览器之一它这更加紧凑的集成也许正是某些人对下载管理器所期望的。
![There are actually a whole lot of options available for DownThemAll! that make it very flexible](http://www.linuxuser.co.uk/wp-content/uploads/2014/08/down1.png)
*其实在DownThemALL上有很多选项可以设置这让它非常的灵活*
#### 界面 ####
与Firefox的集成使得DownThemAll的风格符合浏览器的审美标准右键单击可以唤出普通下载和DownThemAll选项。额外的对话框菜单通常和Firefox的主题风格一致然而主下载窗口则非常整洁并采用了它自己的设计。
#### 集成 ####
它并不是系统级集成但是它伪装在Firefox中的能力让它看起来就像是原本浏览器的附加部分。如果你想它就可以和普通下载器一同工作在一点点手动过滤的帮助下他还能找到网页上特定类型的链接无需复制粘贴。
#### 功能 ####
拥有着能同时控制多个下载任务的能力限制而不浪费带宽以及先进的自动或手动过滤功能DownThemAll有着一大堆有助于大规模下载的优秀功能。“一键”功能还让它能非常迅速的启动预定文件夹的下载。这比普通下载功能快多了。
#### 可获得性 ####
Firefox几乎能在所有的发行版和Linux以外的操作系统中获得。这让DownThemAll!也和它一样多能。不幸的是这是一把双刃剑因为Firefox可能不是你喜欢的浏览器。它还给浏览器增加了一些负担让它的启动不再那么轻松。
#### 总体评价 ####
7/10
DownThemAll!是很优秀的如果你使用Firefox你也许就不再需要用任何其他的下载器了。然而并不是每个人都喜欢用Firefox浏览器而且管理器需要在浏览器开启的情况下才能启动。
### [Steadyflow][4] ###
Steadyflow很容易在Ubuntu和一些基于Debian的发行版中获得获取它的方式可能受到了一些制约但它在某些圈子里一直被认为是你能得到的任何发行版里最好的管理器。它能查找剪贴板里的URL使用GNOME的预设代理还有许多其他的功能。
![The settings in Steady flow are extremely limiting and somewhat difficult to access](http://www.linuxuser.co.uk/wp-content/uploads/2014/08/steady1.png)
*Steady flow里的设置非常少而且有点难以使用。*
#### 界面 ####
Steadyflow的形象相当简洁令人愉悦的、干净的界面并没有让下载窗口变得混乱。添加下载任务的对话框足够简洁只有基本的选项来设置下载任务设置文件位置。真没什么可抱怨的虽然它的确让我们觉得它的功能有点少。
#### 集成 ####
查看复制的URL是标准配备还有个让Chromium集成这个功能的插件。同样的如果你喜欢用Firefox你可以通过Flashgot把它连到Firefox上。你并不能真正的编辑它从剪贴板里分析出的链接它也不能像uGet和DownThemAll!一样批量下载。
#### 功能 ####
极度缺少功能,选项菜单也受到很大限制。暂停和恢复功能看起来也不怎么好使——这是任何浏览器文件下载功能的最基本的部分。文件下载结束的通知和默认行为是可以设置的,还可以选择在文件下载完成之后运行脚本。
#### 可获得性 ####
只能在Ubuntu上获取还不容易得到这个应用的源代码。这意味着虽然在所有基于Ubuntu的发行版中都能很容易的得到它但也仅限于这些发行版。由于它不是Linux上能得到的最好的下载管理器所以也不用想太多。
#### 总体评价 ####
5/10
坦白说没那么好。只有非常基本的选项还只能在Ubuntu上使用Steadyflow要想从你能选择的浏览器自带的标准下载选项中脱颖而出它做的还不够。
### 那么获奖者是…… ###
#### uGet ####
在此次测试中我们已经证明了现代电脑中还是有下载管理器的一席之地的即便它们中的佼佼者们从BT下载客户端中抄袭了某些功能貌似侵犯了他们的权益。对于某些人来说BT下载可能是个更有效率的方式随着ISP们对待BT流量越来越机智一些人可能用一个好的下载管理器就得到更好的效果。大多数主流ISP不仅仅强加了数据传输限额在高峰时段他们中的一些甚至开始减慢或封掉BT流量——甚至连发行版的ISO文件和其他免费软件的合法数据流都被限制了。
对于这类问题Steadyflow看起来是非常受欢迎的解决方式但我们的使用和测试显示出它是一个未完成的简陋的产品。更加古老的uGet则是这场表演的明星有着惊人数量的可选功能这些功能既能在下载单一文件中有所帮助还能在整个网页里过滤出相关元素进行抓取。DownThemAll与之类似优秀的Firefox有加分但它也离不开Firefox有着几乎同级别的功能但集成效果更好。
如果你要在这两个里面选一个那就得谈谈你喜欢哪个浏览器还有你是否需要昼夜下载或上传文件。DownThemAll!需要Firefox一直运行然而uGet可以单独运行为处理器节省了很多资源和电力——这显然让uGet在24小时数据传输上显得更有前途而且对于它来说设置一大批下载任务或只是从你的浏览器中获取下载信息都不是什么难事。
再给下载管理器一个机会。结果绝不会让你失望。
--------------------------------------------------------------------------------
via: http://www.linuxuser.co.uk/reviews/top-4-linux-download-managers
作者Rob Zwetsloot
译者:[H-mudcup](https://github.com/H-mudcup)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://bit.ly/1mx4Uwz
[2]:http://bit.ly/1lilqU9
[3]:http://bit.ly/1lilqU9
[4]:http://bit.ly/1lilymS

View File

@@ -0,0 +1,67 @@
Linux版EPUB阅读器
================================================================================
如果说用平板电脑看书尚属主流的话那么在电脑上读书就非常少见了。专注阅读16世纪的书是非常困难的了没人希望后台蹦出QQ聊天窗口。但是如果你非要在电脑上打开电子书的话那么你需要一个电子书阅读软件。大多数出版物支持使用EPUB格式的电子书电子出版物。幸运的是linux上从不缺乏EPUB阅读器类的软件。以下是一些Linux上不错的EPUB阅读软件。
### 1. Calibre ###
![](https://farm6.staticflickr.com/5577/14975176155_0989766bb3_z.jpg)
先从列表中最有名的软件开始: [Calibre][1]。Calibre 不仅仅是个阅读器它还是个电子图书馆。软件支持几乎所有的格式集成了阅读器、管理器、一个可以从互联网下载书籍封面的元数据编辑器、一个EPUB编辑器、新闻阅读器和一个用来下载电子书的搜索引擎。可喜的是界面丝毫不逊色专业的阅读软件。唯一的缺点是如果你只想要一个EPUB阅读器的话这个软件还是太大了。
### 2. FBReader ###
![](https://farm4.staticflickr.com/3900/14975176165_f2e4afd2fa_o.jpg)
[FBReader][2] 也是一个图书馆管理软件但是比Calibre小。界面简洁分为两个部分左边是文件管理、元数据编辑和下载新书等功能右边是阅读区。如果你喜欢简洁这个软件挺不错。我个人非常喜欢这类直观标记书籍和分类的做法。
### 3. Cool Reader ###
![](https://farm6.staticflickr.com/5594/14975176195_ac46952150.jpg)
对于那些只想想看EPUB书内容的用户我推荐 [Cool Reader][5]。遵循Linux应用程序的文化Cool Reader 做了优化每次只打开一个EPUB文件可以使用简单的快捷键进行阅读和导航。由于程序书基于Qt开发的所以他也遵循Qt的风格需要大量的设置项。
### 4. Okular ###
![](https://farm6.staticflickr.com/5559/14788504729_5a2ec2c11b_z.jpg)
除了Qt应用程序如果安装了EPUB库的话KDE的文档阅读器[Okular][3] 也能打开EPUB文件。尽管如此如果你不是个KDE用户的话不推荐这个软件。
### 5. pPub ###
![](https://farm4.staticflickr.com/3835/14788504789_e7c742fa20_z.jpg)
[pPub][4]是个老项目Github上可以找到这个项目它最后的更新已经是在两年前了。尽管如此这个软件还是值得使用的pPub是用Python编写的基于GTK3和WebKit是个简单轻量的软件。界面可能需要一些更新不够简洁但是内部却非常好。软件支持JavaScript。所以谁来捡起这个项目呢
### 6. epub ###
![](https://farm4.staticflickr.com/3871/14788844378_16fb51a1b9_z.jpg)
如果你只是想快速简单的查看EPUB文件的内容不关心任何图形化界面功能的话最好使用命令行模式打开EPUB。[epub][6] 是一个用Python编写的阅读器可以在终端环境读取EPUB文件的内容。软件可以在章节、页面间切换没有其他的功能。这是最简洁的EPUB阅读器了。
### 7. Sigil ###
![](https://farm4.staticflickr.com/3921/14788640417_7940627871_z.jpg)
最后介绍的这个实际上不是个EPUB阅读器应该是个独立的编辑器。[Sigil][7] 可以提取EPUB文件的内容并将其分离成其他格式xhtml文本、图像、css及其他的内容比如音频等。界面比基本的阅读器复杂但是功能还是比较丰富的。我很喜它的标签体系如果你对网页比较熟悉的话这个软件是很好使用的。
总结有很多的开源的EPUB阅读器有一些只有最基本的功能 另外一些功能却太多了。一般来说我建议你选择一个最合适的使用。如果你有更好的EPUB阅读器请在评论里告诉我们
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/08/good-epub-reader-linux.html
作者:[Adrien Brochard][a]
译者:[shipsw](https://github.com/shipsw)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/adrien
[1]:http://calibre-ebook.com/
[2]:http://fbreader.org/
[3]:http://okular.kde.org/
[4]:https://github.com/sakisds/pPub
[5]:http://crengine.sourceforge.net/
[6]:https://github.com/rupa/epub
[7]:https://github.com/user-none/Sigil

View File

@@ -0,0 +1,223 @@
如何使用linux程序mdadm创建软件RAID1软阵列
================================================================================
磁盘冗余阵列(RAID)是将多个物理磁盘结合成一个逻辑磁盘的技术,该技术可以提高磁盘容错性能,提高磁盘的读写速度。根据数据存储的排列(如:条带存储,镜像存储,奇偶或者他们的组合)定义了几个不同级别的RAID(RAID-0RAID-1RAID-5 等等)。磁盘阵列可以使用软件或者硬件方式实现。现代Linux操作系统中基本的软件RAID功能是默认安装的。
本文中我们将介绍软件方式构建RAID-1阵列(镜像阵列)RAID-1将相同的数据写到不同的设备中。虽然可以使用同一个磁盘的两个分区实现RAID-1但是如果磁盘坏了的话数据就都丢了所以没什么意义。实际上这也是为什么大多数RAID级别都使用多个物理磁盘提供冗余。当单盘失效后不影响整个阵列的运行并且可以在线更换磁盘最重要的是数据不会丢失。尽管如此阵列不能取代外部存储的定期备份。
由于RAID-1阵列的大小是阵列中最小磁盘的大小一般来说应该使用两个大小相同的磁盘来组建RAID-1。
### 安装mdadm ###
我们将使用mdadm简称多盘管理工具创建、组装、管理和监控软件RAID-1。在诸如Fedora、CentOS、RHEL或者Arch Linux 的发行版中mdadm是默认安装的。在基于Debian的发行版中可以使用aptitude 或者 apt-get 安装mdadm。
#### Fedora, CentOS 或 RHEL ####
由于adadm是预装的所以我们只需要开启RAID守护服务并将其配置成开机启动即可
# systemctl start mdmonitor
# systemctl enable mdmonitor
对于CentOS/RHEL 6系统使用以下命令
# service mdmonitor start
# chkconfig mdmonitor on
#### Debian, Ubuntu 或 Linux Mint ####
在Debian或类Debian系统中mdadm可以使用 **aptitude 或者 apt-get** 安装:
# aptitude install mdadm
Ubuntu系统中会要求配置Postfix MTA 以发送电子邮件通知。你可以跳过去。
Debian系统中安装程序会显示以下解释信息用来帮助我们去判断是否将根目录安装到RAID阵列中。下面的所有操作都有赖于这一步所以应该仔细阅读他。
![](https://farm4.staticflickr.com/3918/15220883382_c14eb95914_z.jpg)
我们不在根目录使用RAID-1所以留空。
![](https://farm6.staticflickr.com/5555/15198241896_29e08b977f.jpg)
提示是否开机启动阵列的时候,选择“是”。注意,这里需要往/etc/fstab 文件中添加一个条目使得系统启动的时候正确挂载阵列。
![](https://farm4.staticflickr.com/3875/15220883342_2b1d689a0a_z.jpg)
### 硬盘分区 ###
现在开始准备建立阵列需要的硬盘。这里插入两个8GB的usb磁盘使用dmesg命令设备显示设备 /dev/sdb 和 /dev/sdc
# dmesg | less
----------
[ 60.014863] sd 3:0:0:0: [sdb] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB)
[ 75.066466] sd 4:0:0:0: [sdc] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB)
我们使用fdisk为每个磁盘建立一个大小为8G的主分区。以下步骤是如何在/dev/sdb上建立分区假设次磁盘从未被分区(如果有其他分区的话,可以删掉)
# fdisk /dev/sdb
按p键输出现在的分区表
![](https://farm4.staticflickr.com/3883/15198241836_24625edcf3_z.jpg)
(如果有分区的话,可以使用 d 选项删除w 选项应用更改)。
磁盘上没有分区,所以我们使用命令 ['n'] 创建一个主分区['p'], 分配分区号为['1'] 并且指定大小。你可以按回车使用默认值,或者输入一个你想设置的值。如下图:
![](https://farm4.staticflickr.com/3875/15034475369_7e72fb9f2e_z.jpg)
用同样的方法为/dev/sdc 分区。
如果我们有两个不同容量的硬盘,比如 750GB 和 1TB的话我们需要在每个磁盘上分出一个750GB的主分区大盘剩下的空间可以用作他用不加入磁盘阵列。
### 创建 RAID-1 阵列 ###
磁盘分区完成后,我们可以使用以下命令创建 RAID-1 阵列:
# mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1
说明:
- **-Cv**: 创建一个阵列并打印出详细信息。
- **/dev/md0**: 阵列名称。
- **-l1** (l as in "level"): 指定阵列类型为 RAID-1 。
- **-n2**: 指定我们将两个分区加入到阵列中去,分别为/dev/sdb1 和 /dev/sdc1
以上命令和下面的等价:
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
如果你想在在磁盘失效时添加另外一个磁盘到阵列中,可以指定 '--spare-devices=1 /dev/sdd1' 到以上命令。
输入 “y” 继续创建阵列,回车:
![](https://farm4.staticflickr.com/3894/15034569970_709bd51718.jpg)
可以使用以下命令查看进度:
# cat /proc/mdstat
![](https://farm6.staticflickr.com/5565/15221267975_701b819e6d_z.jpg)
另外一个获取阵列信息的方法是:
# mdadm --query /dev/md0
# mdadm --detail /dev/md0 (or mdadm -D /dev/md0)
![](https://farm6.staticflickr.com/5583/15034683868_6c28564e5a_z.jpg)
'mdadm -D'命令提供的信息中,最重要就是阵列状态类。激活状态说明阵列正在进行读写操作。其他几个状态分别为:完成(读写完成)、降级(有一块磁盘失效或丢失)或者恢复中(一张新盘已插入,系统正在写入数据)。这几个状态涵盖了大多数情况。
### 格式化或加载磁盘阵列 ###
下一步就是格式化阵列了本例中使用ext4格式
# mkfs.ext4 /dev/md0
![](https://farm4.staticflickr.com/3849/15034683838_01e34e7196_z.jpg)
现在可以加载阵列并验证其正常加载:
# mount /dev/md0 /mnt
# mount
![](https://farm6.staticflickr.com/5554/15034696167_c4fc907c8e_z.jpg)
### 监控磁盘阵列 ###
mdadm工具内置有磁盘阵列监控功能。当mdadm作为守护程序运行的时候(就像我们上文那样),会周期性的检测阵列运行状态,将检测到的信息通过电子邮件或者系统日志报告上来。当然,也可以配置其在发生致命性错误的时候调用紧急命令。
mdadm默认会记录所有已知分区和阵列的事件并将他们记录到 /var/log/syslog中。或者你可以在配置文件中(debian系统/etc/mdadm/mdadm.conf ,红帽子系统:/etc/mdadm.conf )用以下格式指定监控设备或者阵列。如果mdadm.conf文件不存在你可以创建一个。
DEVICE /dev/sd[bcde]1 /dev/sd[ab]1
ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1
ARRAY /dev/md1 devices=/dev/sdd1,/dev/sde1
.....
# optional email address to notify events
MAILADDR your@email.com
编辑完毕mdadm配置文件后重启mdadm服务
Debian系统Ubuntu或者Linux Mint:
# service mdadm restart
Fedora, CentOS 或 RHEL 7:
# systemctl restart mdmonitor
CentOS或者RHEL 6:
# service mdmonitor restart
### 自动加载阵列 ###
现在我们在/etc/fstab中加入条目使得系统启动的时候将阵列挂载到/mnt目录下
# echo "/dev/md0 /mnt ext4 defaults 0 2" << /etc/fstab
为了验证挂载脚本工作正常我们首先卸载阵列重启mdadm然后重新加载。可以看到/dev/md0已经安装我们添加到/etc/fstab中的条目加载了
# umount /mnt
# service mdadm restart (on Debian, Ubuntu or Linux Mint)
or systemctl restart mdmonitor (on Fedora, CentOS/RHEL7)
or service mdmonitor restart (on CentOS/RHEL6)
# mount -a
![](https://farm6.staticflickr.com/5563/15218183681_63a10da704_z.jpg)
现在我们的阵列已经可以访问了,拷贝文件/etc/passwd到/mnt中测试一下
![](https://farm6.staticflickr.com/5593/15034475219_a3476aec0a_o.png)
Debian系统中需要在/etc/default/mdadm 设置 AUTOSTART 变量为 true 才能使mdadm守护程序在开机时自动加载阵列
AUTOSTART=true
### 模拟磁盘丢失故障 ###
我们将使用以下命令卸载磁盘来模拟磁盘故障。注意,在实际应用中,磁盘如果已经是故障状态了,不需要卸载。
首先,卸载阵列:
# umount /mnt
现在注意每次执行命令后 'mdadm -D /dev/md0' 的输出。
# mdadm /dev/md0 --fail /dev/sdb1 #Marks /dev/sdb1 as faulty
# mdadm --remove /dev/md0 /dev/sdb1 #Removes /dev/sdb1 from the array
然后,如果你有个备用盘的话,重新添加一下:
# mdadm /dev/md0 --add /dev/sdb1
数据会被自动添加到备用盘 /dev/sdb1 上:
![](https://farm4.staticflickr.com/3855/15221267875_dfc6af8804_z.jpg)
注意以上所述步骤只适合支持磁盘热拔插的系统,在不支持热拔插的系统中,还是得停止阵列并关机后更换备用盘:
# mdadm --stop /dev/md0
# shutdown -h now
最后将新驱动器重新添加到阵列中:
# mdadm /dev/md0 --add /dev/sdb1
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
希望本文对你有所帮助。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/09/create-software-raid1-array-mdadm-linux.html
作者:[Gabriel Cánepa][a]
译者:[shipsw](https://github.com/shipsw)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/gabriel

View File

@@ -0,0 +1,75 @@
在Ubuntu 14.10中如何安装和配置‘天气信息指示器’
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/my-weather-indicator.jpg)
**在Ubuntu桌面中有各种提供天气信息的方法你可以使用Unity Dash和桌面应用来获得天气信息比如[Typhoon][1]。**
但是可以提供快速查询天气状况和温度数据并且只需要一次鼠标点击而获得大量气象数据的面板插件才是到目前为止Linux平台下最受欢迎的天气应用。
Atareao开发的[My Weather Indicator][2]就是这类应用中的一个,也可以说是最好的一个。
它在Unity面板上显示实时温度和天气状况并且有一个包括体感温度、云量和日升日落时间等天气数据的菜单。除此之外该应用还支持桌面小部件、多地区支持、天气数据提供方选择以及其他很多的配置选项。
听起来很不错是吧那我们下面就来看看如何在Ubuntu上安装和配置它吧。
### 在Ubuntu上安装My Weather Indicator ###
My Weather Indicator无法从Ubuntu软件商店中直接获取。不过开发者为我们提供了.deb安装包和官方维护的PPA为Ubuntu 14.04 LTS和14.10提供安装包)。
- 下载My Weather Indicator (.deb安装包)
为了确保你的应用是最新版本,我建议将[Atareao PPA][3]添加到你的软件镜像源然后通过PPA来安装。
怎么做?**打开一个新的终端**窗口Unity Dash > 终端或者按Ctrl+Alt+T快捷键然后**输入下面的两行命令**,期间你需要在提示处输入你的系统密码:
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update && sudo apt-get install my-weather-indicator
#### 配置My Weather Indicator ####
无论你是通过什么方法安装该应用你都可以在Unity Dash中搜索“weather”并且点击该应用来打开它。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/weather-icon.jpg)
首次打开应用时会出现下面的配置窗口。在这里你可以手动设置地区或者使用geo-ip来自动获取。或者有时可能会不够精确不过它可以省去手动设置过程。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/Screen-Shot-2014-10-27-at-17.39.07.jpeg)
如果你正在旅行(或者是出于聊天的需要),**你可以添加一个第二地区**。这个设置和第一地区的设置相同,只不过是出现在“第二地区”的标签栏罢了。
在“**小部件设置**”区域勾选“**显示桌面小部件**”选项就会在你的桌面上添加一个小的天气小部件。小部件提供许多不同的皮肤,所以你一定要精心挑选你最喜欢的一个(注释:点击“确定”后对小部件的更改才会保存)。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/widgets.jpg)
My Weather Indicator使用[Open Weather Map][4]作为默认的天气数据提供方。不过你可以在‘**Weather Services**’面板中选择其他的数据提供方(有*标记的需要提供相关API key)
- Open Weather Map
- Yahoo! Weather
- Weather Underground*
- World Weather Online*
在‘**Units**’标签页中,你可以设置温度、压力、风速等数据的单位。这些设置适用于所有添加的地区,也就是说你不能在一个地区使用摄氏度,另一个地区使用华氏度。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/10/Screen-Shot-2014-10-27-at-17.38.54.jpeg)
最后General Options标签页你可以设置数据更新间隔、设置开机自动运行选项以及从两个图标中选择一个作为面板图标。
如果你是命令行控,你也可以尝试[Linux下查看天气数据的方法][5]。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/10/install-weather-indicator-ubuntu-14-10
作者:[Joey-Elijah Sneddon][a]
译者:[JonathanKang](https://github.com/JonathanKang)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:https://launchpad.net/typhoon
[2]:https://launchpad.net/my-weather-indicator
[3]:https://launchpad.net/~atareao/+archive/ubuntu/atareao
[4]:http://openweathermap.org/
[5]:http://www.omgubuntu.co.uk/2014/02/get-weather-forecast-terminal-linux

View File

@@ -0,0 +1,75 @@
试试只用U盘加载Linux系统
================================================================================
也许你听过Linux并对它有点好奇终于想要实际体验一下但可能不知道从哪儿开始。
很可能你已经在网上搜索过一些信息然后遇到一些像双系统和虚拟机这样的词汇。它们对你来说也许太专业了所以你肯定不会仅仅为了尝试一下Linux而牺牲正在使用的操作系统。那我们该怎么办
如果你手上正好有个U盘的话那就可以试试做一个USB Linux启动盘。它是一个包含了整个操作系统并可以直接引导开机的U盘。创建它并不需要什么专业技术能力让我们来看看怎么做以及如何从USB引导进入Linux系统。
![Penguins gathered together: Linux for the win](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/OSDC_Penguin_Image_520x292_12324207_0714_mm_v1a.png)
### 你需要准备的 ###
除了一台台式机或笔记本电脑外,你还需要:
- 一个空白的U盘-最好容量能有4GB或更多。
- 一个你想尝试的Linux发行版[ISO镜像][1](一种把所有磁盘内容打包起来的档案文件)。待会再详细介绍。
- 一个叫[Unetbootin][2]的应用程序它是一个开源的跨平台的工具用来创建USB启动盘。运行它并不需要启动Linux。在下面的教程中我是在MacBook上运行的UnetbootiinLCTT 译注:它还有 Windows 和 Linux 版本)。
### 开始干活 ###
把U盘插到你电脑的USB端口上然后启动Unetbootin。然后会要求你输入当前电脑的登录密码。
![Unetbootin main window](http://opensource.com/sites/default/files/images/life-uploads/unetbootin-main.png)
还记得之前提到的ISO镜像文件吗有两种方式可以获得要么自己从你想尝试的Linux发行版网站上下载或者让Unetbootin帮你下载。如果选后者在窗口顶部点击**选择发行版**,选择你想下载的发行版,然后点击**选择版本**来选择你希望尝试的发行版版本。
![Downloading a Linux distribution](http://opensource.com/sites/default/files/images/life-uploads/unetbootin-download-distro.png)
或者你也可以自己下载发行版。通常我想尝试的Linux发行版都没有在列表中。如果选择自己下载那么点击**磁盘镜像**,然后点击按钮来选择你下载好的.iso文件。
注意到下面的选项**预留每次重新启动后保存文件的空间仅Ubuntu有效**吗如果你尝试的是Ubuntu或它的任一个衍生版比如Lubuntu或Xubuntu你可以在U盘上留出几M空间用来保存文件比如网页书签或你自己创建的文档。当用这个U盘下次启动Ubuntu的时候你可以继续使用这些文件。
![Ready to create a live USB](http://opensource.com/sites/default/files/images/life-uploads/unetbootin-ready-to-go.png)
在加载好ISO镜像后点击**确定**。Unetbootin大概需要不到10分钟来创建USB启动盘。
![Creating the live USB](http://opensource.com/sites/default/files/images/life-uploads/unetbootin-creating-disk.png)
### 检验USB启动盘 ###
这个时候,你需要拥抱一下自己内在的极客精神。这不会太难,不过你将需要进入[BIOS][3]去偷看一下你的电脑内部空间。你的电脑的BIOS会加载各种硬件并控制电脑操作系统的引导或启动。
BIOS通常会按这个顺序搜索操作系统或者类似的顺序硬盘然后是CD/DVD光驱然后是外部存储设备。你需要调整这个顺序让外部存储设备在这里指的是你的U盘启动盘成为BIOS第一个搜索的设备。
要做到这一点请把U盘插到电脑上再重启电脑。在看到提示信息**Press F2 to enter setup**之后按它要求的做。在有的电脑上这个键可能是F10。
在BIOS里用键盘上的向右方向键切换到**Boot**菜单。然后你将看到你电脑上的驱动器列表。使用键盘上的向下方向键选中名字为**USB HDD**的选项,然后按下**F6**移动这个选项到列表的顶部。
完成后,按下**F10**来保存改动。然后你会从BIOS里被踢出来然后电脑会自己启动。等一小会你就会看到一个你正在尝试的Linux发行版的启动菜单。选择**Run without installing**(或者最类似的选项)。
在进入桌面后,你可以连接上无线或有线网络,看看网页,试一试预装的软件。你还可以看看,比如说,你的打印机或扫描仪是否能在你试的这个发行版下正常工作。你要是真的想不开,也可以去摸一下命令行。
### 能干什么 ###
根据你尝试的Linux发行版和你使用的U盘的速度操作系统可能会需要较长的时间来加载而且很可能比直接装到硬盘上会慢一点。
还有你也只能运行Linux发行版里预装好的基本软件。通常会有网页浏览器一个文字处理软件一个文本编辑器一个媒体播放器一个相片浏览器以及一套实用工具。这些应该足够给你使用Linux的感觉了。
如果你决定使用Linux你可以双击安装器从U盘安装到硬盘。
--------------------------------------------------------------------------------
via: https://opensource.com/life/14/10/test-drive-linux-nothing-flash-drive
作者:[Scott Nesbitt][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://opensource.com/users/scottnesbitt
[1]:http://en.wikipedia.org/wiki/ISO_image
[2]:http://unetbootin.sourceforge.net/
[3]:http://en.wikipedia.org/wiki/BIOS

View File

@@ -0,0 +1,263 @@
添加Ubuntu 14.10Ubuntu 14.04和Debian 7到RHEL/CentOS 7的PXE网络启动环境
================================================================================
本教程将指引你添加**Ubuntu 14.10 Server, Ubuntu 14.04 Server**和**Debian 7 Wheezy**发行版到**RHEL/CentOS 7**的PXE网络启动环境中。
![Add Ubuntu and Debian to PXE Network](http://www.tecmint.com/wp-content/uploads/2014/11/Add-Ubuntu-and-Debian-to-PXE.png)
*添加Ubuntu和Debian到PXE网络*
虽然对于本教程,我只会演示怎样来添加**64位**网络安装镜像但对于Ubuntu或者Debian的**32位**系统或者其它架构的镜像操作步骤也基本相同。同时就我而言我会解释添加Ubuntu 32位源的方法但不会演示配置。
从PXE服务器安装 **Ubuntu**或者**Debian**要求你的客户机必须激活网络连接,最好是使用**DHCP**通过**NAT**来进行动态分配地址。以便安装器拉取所需的包并完成安装过程。
#### 前置阅读 ####
- [在RHEL/CentOS 7中为多种Linux发行版安装PXE网络启动服务器][1]
## 步骤 1 添加Ubuntu 14.10和Ubuntu 14.04服务器到PXE菜单 ##
**1.** 要将**Ubuntu 14.10**和**Ubuntu 14.04**添加网络安装源到PXE菜单可以通过两种方式实现其一是通过下载Ubuntu CD ISO镜像并挂载到PXE服务器机器上以便可以读取Ubuntu网络启动文件其二是通过直接下载Ubuntu网络启动归档包并将其解压缩到系统中。下面我将进一步讨论这两种方法
### 使用Ubuntu 14.10和Ubuntu 14.04 CD ISO镜像 ###
为了能使用此方法你的PXE服务器需要有一台可工作的CD/DVD驱动器LCTT 译注:也可以不用,参考下面内容)。在一台专用的计算机上,转到[Ubuntu 14.10下载][2]和[Ubuntu 14.04 下载][3]页获取64位**服务器安装镜像**将它烧录到CD并将CD镜像放到PXE服务器DVD/CD驱动器然后使用以下命令挂载到系统。
# mount /dev/cdrom /mnt
如果你的PXE服务器没有CD/DVD驱动器你可以使用**wget**命令下载**Ubuntu 14.10** 和**Ubuntu 14.04**的ISO镜像到本地然后通过下面的命令下载并挂载CD挂载到服务器上上述相同位置。
#### 在Ubuntu 14.10上 ####
------------------ 32位 ------------------
# wget http://releases.ubuntu.com/14.10/ubuntu-14.10-server-i386.iso
# mount -o loop /path/to/ubuntu-14.10-server-i386.iso /mnt
----------
------------------ 64位 ------------------
# wget http://releases.ubuntu.com/14.10/ubuntu-14.10-server-amd64.iso
# mount -o loop /path/to/ubuntu-14.10-server-amd64.iso /mnt
#### 在Ubuntu 14.04上 ####
------------------ 32位 ------------------
# wget http://releases.ubuntu.com/14.04/ubuntu-14.04.1-server-i386.iso
# mount -o loop /path/to/ubuntu-14.04.1-server-i386.iso /mnt
----------
------------------ 64位 ------------------
# wget http://releases.ubuntu.com/14.04/ubuntu-14.04.1-server-amd64.iso
# mount -o loop /path/to/ubuntu-14.04.1-server-amd64.iso /mnt
### 使用Ubuntu 14.10和Ubuntu 14.04网络启动镜像 ###
对于该方法使用以下命令下载Ubuntu网络启动镜像到PXE服务器。
#### 在Ubuntu 14.04上 ####
------------------ 32位 ------------------
# cd
# wget http://archive.ubuntu.com/ubuntu/dists/utopic/main/installer-i386/current/images/netboot/netboot.tar.gz
----------
------------------ 64位 ------------------
# cd
# http://archive.ubuntu.com/ubuntu/dists/utopic/main/installer-amd64/current/images/netboot/netboot.tar.gz
#### 在Ubuntu 14.04上 ####
------------------ 32位 ------------------
# cd
# wget http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-i386/current/images/netboot/netboot.tar.gz
----------
------------------ 64位 ------------------
# cd
# wget http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz
对于其它处理器架构请访问下面的Ubuntu 14.10和Ubuntu 14.04网络启动官方页面,选择你的架构类型并下载所需文件。
- [http://cdimage.ubuntu.com/netboot/14.10/][4]
- [http://cdimage.ubuntu.com/netboot/14.04/][5]
**2.** 在下载完**ISO镜像**或**网络启动安装器**归档包后,通过执行以下命令拷贝整个**ubuntu-installer**文件夹到PXE tftp服务器位置。
**A).** 对于两种CD ISO镜像**32位**或**64位**在挂载特定架构的CD到PXE服务器**/mnt**系统路径后,请使用以下命令。
# cp -fr /mnt/install/netboot/ubuntu-installer/ /var/lib/tftpboot/
**B).** 对于网络启动归档根据特定的Ubuntu架构请运行以下命令。
# cd
# tar xfz netboot.tar.gz
# cp -rf ubuntu-installer/ /var/lib/tftpboot/
如果你想要在PXE服务器上同时使用两种Ubuntu服务器架构先请下载然后根据不同的情况挂载或解压缩32位架构然后拷贝**ubuntu-installer**目录到**/var/lib/tftpboot**然后卸载CD或删除网络启动归档以及解压缩的文件和文件夹。对于64位架构请重复上述步骤以便让最终的**tftp**路径形成以下结构。
/var/lib/tftpboot/ubuntu-installer/amd64
/var/lib/tftpboot/ubuntu-installer/i386
**3.** 在接下来的步骤,通过执行以下命令添加**Ubuntu 14.10**和**Ubuntu 14.04**菜单标签到**PXE服务器**默认配置文件中。
**重要**我不可能同时演示两个Ubuntu版本的操作出于演示的目的我添加了**Ubuntu 14.04**菜单标签到PXE服务器下述同样的操作也可应用到Ubuntu 14.10只需对版本号稍作修改仅仅只要根据你的Ubuntu版本修改版本号和到OS架构的路径。
在你最喜爱的文本编辑器的帮助下打开PXE默认配置文件而我偏好nano编辑器。
# nano /var/lib/tftpboot/pxelinux.cfg/default
接下来添加以下配置到PXE菜单。
#### 对于Ubuntu 14.04 32位 ####
label 1
menu label ^1) Install Ubuntu 14.04 x32
kernel ubuntu-installer/i386/linux
append vga=788 initrd=ubuntu-installer/i386/initrd.gz -- quiet
label 2
menu label ^2) Ubuntu 14.04 Rescue Mode x32
kernel ubuntu-installer/i386/linux
append vga=788 initrd=ubuntu-installer/i386/initrd.gz rescue/enable=true -- quiet
#### 对于Ubuntu 14.04 64位 ####
label 5
menu label ^5) Install Ubuntu 14.04 x64
kernel ubuntu-installer/amd64/linux
append vga=788 initrd=ubuntu-installer/amd64/initrd.gz -- quiet
label 5
menu label ^6) Ubuntu 14.04 Rescue Mode
kernel ubuntu-installer/amd64/linux
append vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true -- quiet
![Add Ubuntu to PXE Boot](http://www.tecmint.com/wp-content/uploads/2014/11/Add-Ubuntu-to-PXE-Boot.jpg)
添加Ubuntu到PXE启动
**注**如果你想要包含其它Ubuntu架构请遵循以上相同的操作并相应替换PXE默认菜单配置文件中的标签号和**ubuntu-installer/$architecture_name/**目录。
**4.** 在配置完PXE菜单配置文件后根据采用的方法清除源文件并继续进行客户端PXE安装以测试配置是否正确。
---------------------- 对于CD/DVD方法 ----------------------
# umount /mnt
----------
---------------------- 对于网络启动方法 ----------------------
# cd && rm -rf ubuntu-installer/netboot.tar.gz pxelinux.* version.info
下面是**Ubuntu 14.04**PXE客户端安装测试的截图。
![Select Ubuntu from PXE Menu](http://www.tecmint.com/wp-content/uploads/2014/11/Select-Ubuntu-from-PXE-Menu.jpg)
*从PXE菜单选择Ubuntu*
![Choose Ubuntu Installation Language](http://www.tecmint.com/wp-content/uploads/2014/11/Select-Ubuntu-Installation-Language.jpg)
*选择Ubuntu安装语言*
![Choose Ubuntu Rescue Mode](http://www.tecmint.com/wp-content/uploads/2014/11/Select-Ubuntu-Rescue-Mode.jpg)
*选择Ubuntu救援模式*
![Ubuntu Rescue Mode Shell](http://www.tecmint.com/wp-content/uploads/2014/11/Ubuntu-Rescue-Mode-Shell.jpg)
*Ubuntu救援模式Shell*
## 步骤 2 添加Debian 7 Wheezy到PXE菜单 ##
**5.** 添加**Debian 7**到PXE服务器需要上述Ubuntu服务器版本相同的步骤。唯一不同点在于网络启动归档镜像下载链接和源目录的名称现在改为**debian-installer**。
要下载**Debian Wheezy**网络启动归档,请转到[Debian网络安装下载][6]页,从**网络启动**菜单选择你想要的系统架构,然后点击**目录**列表中的**网络启动**链接,并从**文件名**列表中下载**netboot.tar.gz**归档包。
因为Debian为众多系统架构如Armelia64MipsPowerPCSparc等等提供了网络安装源所以在本指南中我将只讨论**64位**架构。因为其它架构的配置过程和当前的几乎一样,唯一不同的是**debian-installer/$directory_architecture name**。
所以要进一步深入以root帐号登录到你的**PXE服务器**并通过以下命令抓取Debian 7 64位网络启动归档包。
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz
![Download Debain 7 Netboot](http://www.tecmint.com/wp-content/uploads/2014/11/Download-Debain-7-Netboot.jpg)
*下载Debian 7网络启动包*
**6.** 在**wget**下载完成**netboot.tar.gz**文件后,请将其解压缩并运行以下命令拷贝**debian-installer**目录到tftp服务器默认路径。
# tar xfz netboot.tar.gz
# cp -rf debian-installer/ /var/lib/tftpboot/
![Extract Debain 7 Netboot](http://www.tecmint.com/wp-content/uploads/2014/11/Extract-Debain-7-Netboot.jpg)
*解压缩Debian 7网络启动包*
![Copy Debain 7 Netboot to FTP](http://www.tecmint.com/wp-content/uploads/2014/11/Copy-Debain-7-Netboot-to-FTP.jpg)
*拷贝Debian 7网络启动文件到FTP*
**7.** 要添加**Debian Wheezy**标签到**PXE菜单**请用你最喜爱的文本编辑器打开PXE服务器默认配置文件并添加以下标签。
# nano /var/lib/tftpboot/pxelinux.cfg/default
Debian Wheezy 64位的PXE标签菜单。
label 7
menu label ^7) Install Debian 7 x64
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz -- quiet
label 8
menu label ^8) Install Debian 7 x64 Automated
kernel debian-installer/amd64/linux
append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz -- quiet
![Add Debian to PXE Boot](http://www.tecmint.com/wp-content/uploads/2014/11/Add-Debian-to-PXE-Boot.jpg)
*添加Debian到PXE启动*
**注**如果你想要添加其它Debian架构请重复上述步骤并相应替换PXE默认菜单配置文件中的标签号和**debian-installer/$architecture_name/**目录。
**8.** 在进行客户端测试配置之前请执行以下命令来清除Debian源文件。
# cd && rm -rf debian-installer/ netboot.tar.gz pxelinux.* version.info
**9.** 然后通过网络启动一台客户机选择从PXE菜单安装Debian并像正常安装一样进一步下去。
![Select Install Debian from PXE](http://www.tecmint.com/wp-content/uploads/2014/11/Select-Install-Debian-from-PXE.jpg)
*选择从PXE安装Debian*
![Select Debian Install Language](http://www.tecmint.com/wp-content/uploads/2014/11/Select-Debian-Install-Language.jpg)
*选择Debian安装语言*
以上是要求添加并从RHEL/CentOS 7 PXE服务器安装**Ubuntu**或**Debian**到客户机上的全部步骤。在我的下一篇文章中我将讨论一种更为复杂的方法如何使用RHEL/CentOS 7 PXE网络启动服务器来安装**Windows 7**到客户机。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/add-ubuntu-to-pxe-network-boot/
作者:[Matei Cezar][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[Mr小眼儿](https://github.com/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/cezarmatei/
[1]:http://linux.cn/article-4902-1.html
[2]:http://releases.ubuntu.com/14.10/
[3]:http://releases.ubuntu.com/14.04/
[4]:http://cdimage.ubuntu.com/netboot/14.10/
[5]:http://cdimage.ubuntu.com/netboot/14.04/
[6]:https://www.debian.org/distrib/netinst

View File

@@ -0,0 +1,91 @@
怎样通过 Twitter 的开源库来随处使用 Emoji 表情符号
================================================================================
> 通过 GitHub 将它们嵌入到网页和其他项目中。
![](http://a3.files.readwrite.com/image/upload/c_fit,w_620/MTI1OTA2OTIyNTI3MjcxNTU1.png)
Emoji, 来自日本的小巧符号,通过图像表达感情,已经征服了移动互联网的信息世界。
现在,你可以在虚拟世界中随处使用它们了。 Twitter 最近[开源了][1]他们的 emoji 符号库,使得你可以在你自己的网站,应用,和项目中使用它们。
但这需要一点体力活。 Unicode 已经识别甚至标准化了 emoji 字母表, 然而 emoji 仍然[不能完全与所有的网络浏览器相兼容][2],这意味着大多数情况下,它们将呈现为 “豆腐块”或“空白盒子”。当 Twitter 想使得 emoji 到处可用时,这家社交网络联合了一家名为[Icon Factory][3]的公司来渲染浏览器以模仿文本信息符号的效果。Twiter 认为人们对他们的 emoji 库有很大的需求。
现在, 你可以从 [GitHub][4] 上克隆 Twitter 的整个库,从而在你的开发项目中使用它们。 下面将为你介绍如何达到上面的目的以及如何使得 emoji 更容易被使用。
### 为 Emoji 得到 Unicode 支持 ###
Unicode 是国际编码标准,它为任意的符号、字母或人们想在网络上使用的数字配置了一串编码。换句话说,它是你如何在计算机上阅读文本与计算机如何读取文本之间的缺失环节。例如,对于你正看到的位于这些句子中的`空格`LCTT 译注:英文分词中间的空格),计算机读取为 “&nbsp”。
Unicode 甚至拥有其自己的[原始 emoji][5],它们可以在没有你的任何努力的情况下在浏览器中被阅读。例如,当你看到了 一个 ❤ 符号,你的计算机正在解码字符串 “2665” 。
要在大多数情况下使用 Twitter 的 emoji 库,你只需在你的 HTML 网页中的 `<head>`块中添加如下脚本:
<script src="//twemoji.maxcdn.com/twemoji.min.js"></script>
这样就使得你的项目可以访问包含有已经在 Twitter 中可使用的数以百计的 Emoji 符号的 JavaScript 库。然而,创建一个仅仅包含这个脚本的文档并不能使得在你的网站中呈现出 emoji 符号,实际上,你仍需要嵌入这些 emoji 符号!
`<body>`块中,粘贴一些可以在 Twitter 的[preview.html 文件源代码][6] 中找到的 emoji 字符串。我使用了 &#x1F3B9; 和 &#x1F3C1,当然我并不知道在浏览器窗口中它们的样子。是的,你必须粘贴并猜测它们。你已经看出了问题,我们将在第二小节中予以解决。
无论如何,通过一些尝试,你可以将一个如下图的原始 HTML 文件---
![](http://a4.files.readwrite.com/image/upload/c_fit,w_620/MTI1OTA2ODQyNTMzNTQ1OTk0.png)
---显示为如下图的网页:
![](http://a1.files.readwrite.com/image/upload/c_fit,w_620/MTI1OTA2ODExNjYzNDU1NTA2.png)
### 将 Emoji 转换为可阅读的语言 ###
对于一个网站或应用Twitter 的解决方案是非常适用的。但如果你想通过 HTML 轻易地插入你喜爱的 emoji 符号,你需要一个更易实现的解决方案,而不是记住所有代表 emoji 的 Unicode 字符串。
那正是程序员 Elle Kasai 的 [Twemoji Awesome][7] 样式大展身手的地方。
通过向任意网页中添加 Elle 的开源样式表,你可以适用 英语单词来理解你正插入的 emoji 符号的意义。所以如若你想展示一个 心形 emoji 符号,你可以简单地输入:
<i class="twa twa-heart"></i>
为了实现上面的目的,让我们下载 Elle 的项目,通过点击在 GitHub 上 “Download ZIP” 按钮。
接着,我们在桌面上新建一个文件夹,然后进入该文件夹,并将 emoji.html---我先前向你展示的 HTML 源文件--- 和 Elle 的 [twemoji-awesome.css][8] 一同放进去。
我们还需要 HTML 文件识别这个 CSS 文件,所以在 html 网页中的 `<head>` 块中,为 CSS 文件添加一个链接:
<link rel="stylesheet" href="twemoji-awesome.css">
一旦你将上面的代码添加了进去,你便可以删除先前添加的 Twitter 的脚本链接。
现在,找到 `body` 块部分的代码,然后添加一些 emoji 符号。我使用了 `<i class="twa twa-sparkling-heart"></i>`, `<i class="twa twa-exclamation"></i>`, `<i class="twa twa-lg twa-sparkles"></i>``<i class="twa twa-beer"></i>`
最终,你将得到如下的代码:
![](http://a2.files.readwrite.com/image/upload/c_fit,w_620/MTI1OTA2ODcyMDYxNDU2MzU0.png)
保存并在浏览器中查看上面的文件:
![](http://a1.files.readwrite.com/image/upload/c_fit,w_620/MTI1OTA2ODExOTMxODkwOTYy.png)
Duang这样你不仅得到了一个可以在浏览器中支持 emoji 符号的基本网页,而且还知道了如何简单地实现它。你可以随意的在[我的 GitHub][9] 中查看这个教程,并且可以克隆这些实际的文件而不只是看看这些截图。
题图来自于[得到 Emoji][10] Lauren Orsini 截图。
--------------------------------------------------------------------------------
via: http://readwrite.com/2014/11/12/how-to-use-emoji-in-the-browser-window
作者:[Lauren Orsini][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://readwrite.com/author/lauren-orsini
[1]:https://blog.twitter.com/2014/open-sourcing-twitter-emoji-for-everyone
[2]:http://www.unicode.org/reports/tr51/full-emoji-list.html
[3]:https://twitter.com/iconfactory
[4]:https://github.com/twitter/twemoji
[5]:http://www.unicode.org/reports/tr51/full-emoji-list.html
[6]:https://github.com/twitter/twemoji/blob/gh-pages/preview.html
[7]:http://ellekasai.github.io/twemoji-awesome/
[8]:https://github.com/ellekasai/twemoji-awesome/blob/gh-pages/twemoji-awesome.css
[9]:https://github.com/laurenorsini/Emoji-Everywhere
[10]:http://getemoji.com/

View File

@@ -0,0 +1,230 @@
怎样在废旧的硬件上安装 Xen 虚拟机监视器
================================================================================
Xen 是一个直接运行在硬件上的虚拟机监视器,这意味着你必须准备一个裸机来安装和运行 Xen。而 KVM 则和 Xen 有一些不同 —— 你可以把它添加到任何已经正在运行 Linux 的机器上。本教程描述了如何在废旧的硬件上安装和配置 Xen 虚拟机监视器。
整个安装过程使用 Debian JessieDebian 的测试发行版)作为宿主机操作系统(也称作 [Dom0][1]。Jessie 并不是唯一的选择 —— Xen 的支持是内建在 Linux 内核中的,[许多 Linux 发行版][2] 都包含支持 Xen 的内核。
### 找点废旧的硬件 ###
首先,找一个可以格式化的合适的工作站,比如一台旧的笔记本或者台式机。旧的硬件可能不适合玩游戏,但是足够安装一个宿主机和一些客户机了。一个满足下面这些要求的 PC 机就可以了。
- 一个双核 CPU64 位)
- 4GB 内存
- 80GB 硬盘
- 能够从 CDDVD 或者 USB 引导启动
- 一块网卡
注意 **CPU 必须是 64 位的,因为 Debian 已经不再支持 32 位的 Xen 安装包**。如果你没有空余的硬件你可以花点钱买一台旧机器。2010 年值 $1000 的旗舰级笔记本现在只需要 $100。从 eBay 买台二手笔记本并升级下内存也可以满足需求。
### 刻录一个引导 CD/USB ###
下载 Debian Jessie 的 ISO 镜像。从 [Debian 官网][3] 下载网络安装镜像就可以了。
$ wget http://cdimage.debian.org/cdimage/jessie_di_beta_2/amd64/iso-cd/debian-jessie-DI-b2-amd64-netinst.iso
接下来,记下你的 [CD/DVD][4] 或者 [USB设备][5] 所识别的设备名 (例如 /dev/sdc
使用 dd 命令将 ISO 镜像刻录至 CD 或者 USB 中。将下面的 /dev/sdc 替换为你上面识别出的设备名。
$ sudo dd if=debian-jessie-DI-b2-amd64-netinst.iso of=/dev/sdc
### 开始安装 ###
安装前,使用刻录的 CD/USB 启动 Debian 的安装界面。
最好是使用有线网络,而不是 WIFI。如果因为固件或者驱动的原因导致 WIFI 不能连接,你将无法完成下面的步骤。
![](https://farm8.staticflickr.com/7516/15772286696_c31e4c7754_z.jpg)
### 硬盘分区 ###
这里的设置使用了四个分区。自动安装时通常会创建一个包含逻辑分区的扩展分区。像下面这样给硬盘分四个区。
- sda1 挂载至 /boot200MB
- sda2 做为 /, 20GB, Ubuntu 占用 4GB
- sda3 做为 swap, 6GB (4GB x 1.5 = 6)
- sda4 保留用作 LVM, 不挂载,大小为剩余的硬盘大小
### 安装基本的系统 ###
这里尽可能的让系统的安装更简单快速一些。一个基本的工作用系统可以稍后再添加。Debian 的 APTAdvanced Package Tool使得添加软件非常的简单。在机器上安装 Debian 可能会有一些很浪费时间的问题。可能显卡驱动与内核不监控或者可能老旧的 CD-ROM 驱动器只能间歇性的工作。
当选择安装软件时,选择安装一个 SSH 服务器,不要安装桌面环境如 Gnome。
![](https://farm9.staticflickr.com/8541/15176520633_5d31beda9c_z.jpg)
安装一个图形桌面需要安装成百上千的包 —— 这些额外的工作可以稍后再进行。如果你遇到问题了,等待图形桌面的安装会浪费很多时间。同时,没有桌面组件,系统的启动可以更快一些 —— 只需要几十秒而不是几分钟。整个安装过程会需要重启几次,因此这样做可以节省不少时间。
一个 SSH 服务器可以让你从另一台电脑来配置这台工作站。这可以避免一些旧硬件的问题 —— 可能旧机器的键盘少了几个键LCD 屏幕有坏点或者触摸板没有反应等等。
### 添加 LVM (Logical Volume Manager) ###
以 root 身份安装 LVM 工具。
# apt-get update
# apt-get install lvm2
选择一个分区创建物理卷。
# pvcreate /dev/sda4
创建卷组。
# vgcreate vg0 /dev/sda4
你并不需要创建逻辑卷。如果你想测试 LVM 是否正常,可以创建一个逻辑卷然后删掉它。
# lvcreate -nmytempvol -L10G vg0
# lvremove /dev/vg0/mytempvol
检查 LVM 状态。
# pvs (查看物理卷的信息)
# vgs (查看卷组的信息)
# lvs (查看逻辑卷的信息)
### 添加一个 Linux 网桥 ###
这里我们要添加一个桥接网卡,这样 Xen 客户机就可以通过网桥连接网络。
安装桥接的工具。
# apt-get install bridge-utils
查看在哪块网卡配置桥接。
# ip addr
![](https://farm8.staticflickr.com/7512/15610553338_2f9cf1d3a2_z.jpg)
在这个例子中,我们有一块网卡名称为 eth0。我们准备修改配置文件/etc/network/interfaces将 eth0 作为桥接设备。
在进行更改之前,备份网络配置文件以保证原来的工作配置是安全的。
# cd /etc/network/
# cp interfaces interfaces.backup
# vi /etc/network/interfaces
文件的内容类似下面这样。
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
修改成这样。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0
激活网卡配置的修改:
# systemctl restart networking
### 验证网络设置 ###
验证桥接设备 xenbr0 创建成功。
# ip addr show xenbr0
同时检查 eth0 被成功加入网桥。
# brctl show
![](https://farm6.staticflickr.com/5609/15795960355_673c71ab5c_z.jpg)
你现在安装好了 Jessie 系统。不过此时 Xen 还没有安装。下面我们开始安装 Xen。
### 安装 Xen 虚拟机监视器 ###
安装 Xen 和 QEMU 包,并升级 GRUB 引导程序。
# apt-get install xen-linux-system
重启。
当 GRUB 界面出现时,你可以看到列出的额外的启动选项。
![](https://farm8.staticflickr.com/7535/15794086091_bf1bce6b4b_z.jpg)
第一个选项会在 5 秒钟内自动启动(在 /etc/default/grub 的 GRUB_TIMEOUT 这行设置),因此这点时间可来不及喝咖啡。
按下方向键选择 "Debian GNU/Linux, with Xen hypervisor" 这个选项,然后按回车。这时屏幕会出现很多行信息,接着是正常的登录界面。
### 检查 Xen 工作是否正常 ###
Xen 虚拟机监视器带有一个管理 Xen 的命令行程序叫做 xl可以用来创建和管理 Xen 虚拟机。使用 xl 命令来检查 Xen 是否成功安装了。
以 root 用户登录,执行:
# xl info
将会显示很多关于 Xen 主机的信息。
![](https://farm9.staticflickr.com/8404/15610553388_db3b134a9d_z.jpg)
查看已有 Xen 虚拟机的列表:
# xl list
![](https://farm9.staticflickr.com/8393/15610135189_ffd8bd24e8_z.jpg)
这里显示了一个主机的列表。因为没有创建任何的 Xen 客户机,唯一的条目是 Domain-0即你安装的 Debian 系统。
### 修改启动顺序 ###
当你到这一步之后Xen 的安装已经完成了。这里还有一件事需要修改 —— 默认的启动选项不会加载 Xen。GRUB 选择启动菜单的第一个选项 Debian GNU/Linux而不是第三个Debian GNU/Linux, with Xen hypervisor
启动菜单的默认选项是在 grub 配置文件 /boot/grub/grub.cfg 中定义的。修改选项时,不要直接修改这个文件,而是编辑 /etc/default/grub 这个文件。有一个叫做 grub-mkconfig 的工具可以读取这个配置文件和 /etc/grub.d/ 中的所有莫爸妈,并写入到 grub.cfg 文件中。
编辑 Debian 的 grub-mkconfig 的配置文件
# vi /etc/default/grub
修改这一行:
GRUB_DEFAULT=0
改为
GRUB_DEFAULT='Debian GNU/Linux, with Xen hypervisor'
然后更新 grub 的配置文件。
# grub-mkconfig -o /boot/grub/grub.cfg
最后重启。几秒钟后grub 启动菜单出现了。检查看第三个选项 "Debian GNU/Linux, with Xen hypervisor" 是否是自动选中的选项。
### 最后 ###
如果你使用这台主机作为你的工作站可以安装一个图形桌面。Debian 包括好几种[桌面环境][6]。如果你想要一个包含所有东西的图形桌面,那么安装 Gnome 吧。如果它的图形效果并不是你的菜,试试 Awesome 吧。
注意 Debian 的默认 Gnome 环境有大量的额外应用程序包括办公套件 LibreOfficeIceweasel 浏览器和 Rhythmbox 音乐播放器。安装命令 "apt-get install gnome" 会安装 1,000 多个包并需要将近 2GB 的硬盘空间。运行这个重量级的桌面环境需要占用 1GB 的内存。
LCTT 译注:本文没有涉及如何安装 guest 虚拟机,请关注后继文章)
--------------------------------------------------------------------------------
via: http://xmodulo.com/install-xen-hypervisor.html
作者:[Nick Hardiman][a]
译者:[Liao](https://github.com/liaoishere)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nick
[1]:http://wiki.xen.org/wiki/Dom0
[2]:http://wiki.xen.org/wiki/Dom0_Kernels_for_Xen
[3]:https://www.debian.org/devel/debian-installer/
[4]:http://ask.xmodulo.com/detect-dvd-writer-device-name-writing-speed-command-line-linux.html
[5]:http://ask.xmodulo.com/find-device-name-usb-drive-linux.html
[6]:https://wiki.debian.org/DesktopEnvironment

View File

@@ -0,0 +1,127 @@
怎样在 Linux 系统中恢复已删除文件
================================================================================
当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件。不过,幸运的是文件是可以通过一些方法恢复的。当用户删除了一个文件,该文件并没有消失,只是被隐藏了一段时间。
这里将解释它是如何工作的。在一个文件系统中,有一个叫做 `文件分配表` 的东西,这个表跟踪文件在存储单元(如硬盘, MicroSD 卡,闪存驱动器等等)中的位置。当一个文件被删除,文件系统将会在`文件分配表`中执行以下两个任务之一:这个文件在`文件分配表`上的条目被标记为 “自由空间” 或删除`文件分配表`里这个文件的条目,且将相应的空间被标记为自由空间 。现在,如果有一个新的文件需要被放置在一个存储单元上,操作系统将会把这个文件放置到标记为空位的地方。在新文件被写入到这个空位后,被删除的文件就彻底消失了。当需要恢复一个已经删除的文件时,用户绝对不能再对任何文件进行操作,因为假如该文件对应的“空位”被占用,这个文件就永远也不能恢复了。
### 恢复软件是如何工作的? ###
大多数的文件系统(在删除文件时)只是标记空间为空白。在这些文件系统下,恢复软件查看`文件分配表`这个文件,然后复制被删除的文件到另外的存储单元中。假如该文件被复制到其它需要恢复的被删除的存储单元中,那么用户将有可能会失去那个所需的删除文件。
文件系统很少会擦除`文件分配表`中的条目。假如文件系统真的这样做了, 这便是恢复软件在恢复文件了。恢复软件在存储单元中扫描文件头,所有文件都拥有一个特殊的编码字符串,它们位于文件的最前面,也被叫做 `魔法数字`。例如,一个编译的 JAVA 类文件的魔法数字在十六进制中是“CAFEBABE”。所以假如要恢复该类型的文件恢复软件会查找 “CAFEBABE” 然后复制文件到另一个存储单元。一些恢复软件可以查找某种特殊的文件类型。若用户想恢复一个 PDF 文件,则恢复软件将会查找十六进制的魔法数字 “25504446”这恰恰是 ASCII 编码中的 “%PDF”。恢复软件将会查找所有的魔法数字然后用户可以选择恢复哪个已删除的文件。
假如一个文件的部分被覆写了,则整个文件就会被损坏。通常这个文件可以被恢复,但是其中的内容可能已经没有什么用处。例如,恢复一个已损坏的 JPEG 文件将会是无意义的,因为图片查看器不能从这个损坏的文件产生一幅图片。因此,即使用户拥有了这个文件,该文件也将毫无用处。
### 设备的位置:###
在我们继续之前,下面的一些信息将会对指引恢复软件找到正确的存储单元起到一定的帮助。所有的设备均挂载在 `/dev/` 目录下。操作系统赋予每个设备的名称(并不是管理员给予每个分区或设备的名称)遵循一定的命名规律。
第一个 SATA 硬盘的第二个分区的名称将会是 sda2。名称的第一个字母暗示了存储类型在这里指的是 SATA但字母 “s” 也可能指的是 SCSI、 FireWire火线端口或 USB。第二个字母 “d” 指的是 disk(硬盘)。第三个字母指的是设备序数,即字母 “a” 指的是第一个 SATA 而 “b” 指的是第二个。最后的数字代表分区。没有分区数字的设备名代表该设置的所有分区。对于上面的例子,对应的名称为 sda 。作为命名的第一个字母还可能是 “h” ,这对应 PATA 硬盘IDE
以下为命名规律的一些例子。假如一个用户有一个 SATA 硬盘sda这个设备有 4 个分区- sda1、 sda2、 sda3 和 sda4 。该用户删除了第三个分区,但直到格式化第四个分区之前,第四个分区名 sda4 都将保留不变。然后该用户插入了一个带有一个分区 - 即sdb1- 的 usb 存储卡sdb又增加了一个带有一个分区 -hda1- 的 IDE 硬盘 ,接着该用户又增加了一个 SCSI 硬盘 - sdc1 。接着用户移除了 USB 存储卡sdb。现在SCSI 硬盘的名称仍然为 sdc但如果这个 SCSI 被移除接着再被插入,则它的名称将变为 sdb。虽然还有其他的存储设备存在 那个 IDE 硬盘的名称仍会有一个 “a” 因为它是第一个 IDE 硬盘IDE 设备的命名与 SCSI、 SATA、 FireWire 和 USB 设备要分开计数。
### 使用 TestDisk 进行恢复:###
每个恢复软件有其不同的功能,特征及支持的不同文件系统。下面是一些关于 使用 TestDisk 在各种文件系统中恢复文件的指南。
####FAT16、 FAT32、 exFAT (FAT64)、 NTFS 以及 ext2/3/4####
TestDisk 是一个运行在 Linux、 *BSD、 SunOS、 Mac OS X、 DOS 和 Windows 等操作系统下的开源的自由软件。 TestDisk 可以从下面的链接中找到 [http://www.cgsecurity.org/wiki/TestDisk][1]。TestDisk 也可以通过键入 `sudo apt-get install testdisk` 来安装。TestDisk 有着许多的功能,但这篇文章将只关注恢复文件这个功能。
使用 root 权限从终端中打开 TestDisk 可以通过键入 `sudo testdisk` 命令。
现在, TestDisk 命令行应用将会被执行。终端的显示将会改变。TestDisk 询问用户它是否可以保留日志,这完全由用户决定。假如一个用户正从系统存储中恢复文件,则不必保留日志。可选择的选项有“生成”、 “追加” 和 “无日志”。假如用户想保留日志,则日志将会保留在该用户的主目录。
![](http://www.linux.org/attachments/screen1-jpg.342/?.jpg)
在接着的屏幕中,存储设备以 `/dev/*`的方式被罗列出来。对于我的系统,系统的存储单元为 `/dev/sda`,这意味着我的存储单元为 一个 SATA硬盘sd且它是第一个硬盘a。每个存储单元的容量以 Gigabyte千兆字节为单位显示的。使用上下键来选择一个存储设备然后点击进入。
![](http://www.linux.org/attachments/screen2-jpg.343/?.jpg)
下一屏显示出一个列有分区表(也叫做分区映射表)的清单。正如文件有`文件配置表`,分区有着分区表。分区是存储设备上的分段。例如在几乎所有的 Linux 系统中,至少存在两种分区类型 - EXT3/4 和 Swap 。每一个分区表将会在下面被简要地描述。TestDisk 并不支持所有类型的分区表,所以这并不是完整的列表。
![](http://www.linux.org/attachments/screen3-jpg.344/?.jpg)
- **Intel** - 这类分区表在 Windows 系统和许多的 Linux 系统中非常普遍,它也常常称作 MBR 分区表。
- **EFI GPT** - 这种类型的分区表通常用在 Linux 系统中。对于 Linux 系统,这种分区表是最为推荐的, 因为逻辑分区或扩展分区的概念并不适用于 GPT (GUID Partition Table) 分区表。 这意味着,如果每个分区中有一个 Linux 系统,一个 Linux 用户可以从多种类型的 Linux 系统中进行多重启动。当然使用 GPT 分区表还有其他的优势,但那些已超出了本文的讨论范围。
- **Humax** - Humax 分区映射表适用于韩国公司 Humax 生产的设备。
- **Mac** - Apple 分区映射表 (APM) 适用于 Apple 的设备。
- **None** - 某些设备并没有分区表。例如,许多 Subor 游戏控制台不使用分区映射表。如果一个用户试图以其它分区表类型从这类设备中恢复文件,用户就会困扰 TestDisk 为何找卟到任何的文件系统或者文件。
- **Sun** - Sun 分区表适用于 Sun 系统。
- **Xbox** -Xbox 适用于使用 Xbox 分区映射表的存储设备。
假如用户选择了 “Xbox” ,尽管他的系统使用了 GPT 分区表, 那么 TestDisk 将不能找到任何分区或文件系统。假如 TestDisk 按照用户的选择执行,则它可能猜测错误。(下面的图片显示的是当分区表类型错误时的输出)
![](http://www.linux.org/attachments/xbox-jpg.350/?.jpg)
当用户为他们的设备选择了正确的选项,则在下一屏中,选择 “高级” 选项。
![](http://www.linux.org/attachments/screen4-jpg.345/?.jpg)
现在,用户将看到一个列有用户存储设备中所有的文件系统或分区的列表。假如用户选择了错误的分区映射表,则在这一步中用户就将会知道他们做出了错误的选择。假如没有错误,通过移动文字光标来高亮选择含有被删除文件的分区。使用 左右键来高亮位于终端底部的 “列表”。接着,按下回车确认。
![](http://www.linux.org/attachments/screen5-jpg.346/?.jpg)
新的一屏便会呈现出列有文件和目录的列表。那些白色的文件名就是未被删除的文件,而红色的文件名是那些已被删除的文件。最右边的一列是文件的名称,从右到左方向的接着一列是文件的创建日期,再往左的一列是文件的大小(以 byte/ 比特为单位),最左边带有“-”“d” ,“r”, “w” 和"x"的一列则代表的是文件的权限情况。“d” 表示该文件为一个目录,其他的权限术语与本文关系不大。在列表的最顶端以“.”代表的一项表示当前目录,第二行以".."代表的一项表示当前目录的上级目录,所以用户可以通过选择目录所在行到达该目录。
![](http://www.linux.org/attachments/screen6-jpg.347/?.jpg)
举个例子,我想进入"Xaiml\_Dataset" 目录,该目录基本上由被删除的文件组成。通过按键盘上的 "c"键,我将恢复文件 "computers.xaiml"接着我被询问选择一个目标目录当然我应该放置该文件到另一个分区中。现在当我在我的家目录时按下了“c”键。选择目标目录时哪个目录被高亮并没有什么影响当前目录就是目标目录在屏幕的上方将会显示“复制完成”的消息。在我的家目录中便会有一个名为"Xaiml_Dataset"的目录,里面里有一个 Xaiml 文件。 假如我在更多的已删除文件上按“c” 键,则这些文件将会被放置到新的文件夹中而无需再向我询问目标目录。
![](http://www.linux.org/attachments/screen7-jpg.348/?.jpg)
![](http://www.linux.org/attachments/screen8-jpg.349/?.jpg)
当这些步骤完成后重复按“q”键直到看到正常的终端模样。目录"Xaiml_Dataset" 只能被 root 用户访问。为了解决这个问题,使用 root 权限改变该目录及其子目录的权限。做完这些后,文件便被恢复了且用户可以访问它们。
### 特别的 ReiserFS###
为了从 ReiserFS 文件系统中恢复一个文件,首先需将分区中的所有文件做一个备份。因为如果发生某些错误, 这个方法可能会引起文件丢失。接着执行下面的命令,其中 `DEVICE`指的是那些以 sda2 形式命名的设备。一些文件将被放入 lost+found 目录而其他则会保存到原先被删除的位置。
reiserfsck --rebuild-tree --scan-whole-partition /dev/DEVICE
### 恢复被某个程序打开的删除文件: ###
假设用户意外地删除了一个文件,且该文件被某个程序打开。虽然在硬盘中该文件被删除了,但这个程序正使用着位于 RAM 中的该文件的副本。幸好,我们有两种简单的解决方法来恢复该文件。
假如这个软件有保存功能,如文本编辑器,则用户可以重新保存该文件,这样,文本编辑器可以将该文件写入硬盘中。
假设在音乐播放器中有一个 MP3 文件,而该音乐播放器并不能保存该 MP3 文件,则这种情形下需要比先前花更多的时间来恢复文件。不幸的是,这种方法并不能保证在所有的系统和应用中有效。首先,键入下面的命令。
lsof -c smplayer | grep mp3
上面的命令会列出所有由 smplayer 使用的文件,这个列表由 `grep` 命令通过管道搜索 mp3 。命令的输入类似于下面:
smplayer 10037 collier mp3 169r 8,1 676376 1704294 /usr/bin/smplayer
现在,键入下面的命令来直接从 RAM在 Linux 系统中,`/proc/`映射到 RAM中恢复文件并复制该文件到选定的文件夹中。其中 `cp` 指的是复制命令,输出中的数字 10037 来自于进程数,输出中的数字 169 指的是文件描述符,"~/Music/"为目标目录,最后的 "music.mp3" 为用户想恢复的文件的名称。
cp /proc/10037/fd/169 ~/Music/music.mp3
### 真正的删除: ###
为确保一个文件不能被恢复,可以使用一个命令来 “擦除” 硬盘。擦除硬盘实际上是向硬盘中写入无意义的数据。例如,许多擦除程序向硬盘中写入零,随机字母或随机数据。不会有空间被占用或丢失,擦除程序只是对空位进行重写覆盖。假如存储单元被文件占满而没有空余空间,则所有先前被删除的文件将会消失而不能恢复。
擦除硬盘的目的是确保隐私数据不被他人看见。举个例子,一个公司可能预订了一些新的电脑,总经理决定将旧的电脑卖掉,然而,新的电脑拥有者可能会看到公司的一些机密或诸如信用卡号码,地址等顾客信息。幸好,公司的电脑技术人员可以在卖掉这些旧电脑之前,擦除这些硬盘。
为了安装擦除程序 secure-delete键入 `sudo apt-get install secure-delete`,这个命令将会安装一个包含 4 个程序的程序集,用以确保被删除的文件不能被恢复。
- srm - 永久删除一个文件。使用方法: `srm -f ./secret_file.txt`
- sfill - 擦除空白空间。使用方法: `sfill -f /mount/point/of/partition`
- sswap - 擦除 swap 空间。使用方法: `sswap -f /dev/SWAP_DEVICE`
假如电脑实际去清除那些删除的文件,那么就需要花费更长的时间去执行删除任务。将某些空间标记为空位是快速且容易的,但使得文件永远消失需要花费一定的时间。例如,擦除一个存储单元,可能需要花费几个小时的时间(根据磁盘容量大小)。总之,现在的系统工作的就挺好,因为即便用户清空了垃圾箱,他们仍然有另一次机会来改变他们当初的想法(或错误)。
--------------------------------------------------------------------------------
via: http://www.linux.org/threads/undelete-files-on-linux-systems.4316/
作者:[DevynCJohnson][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.linux.org/members/devyncjohnson.4843/
[1]:http://www.cgsecurity.org/wiki/TestDisk

View File

@@ -0,0 +1,63 @@
Ubuntu中跟踪多个时区的简捷方法
================================================================================
![date-time](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/date-time.jpg)
**无论我是要在醒来时发个关于澳大利亚的 Chromebook 销售已经售罄的推特还是要记着和Ohso的半个开发商山姆陈进行Skype通话我大脑都需要同时工作在多个时区下。**
那里头有个问题如果你认识我你会知道我的脑容量也就那么丁点跟金鱼差不多里头却塞着像Windows Vista这样一个臃肿货也就是不是很好。我几乎记不得昨天之前的事情更记不得我的门和金门大桥脚之间的时间差
作为臂助,我使用一些小部件和菜单项来让我保持同步。在我常规工作日的空间里,我在多个操作系统间游弋,涵盖移动系统和桌面系统,但只有一个可以让我最快速便捷地设置“世界时钟”。
**它的名字就是我们标题上提到的那个。**
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/timezones-300x180.jpg)
### 添加世界时钟到Ubuntu日期/时间小应用 ###
Unity中默认的日期-时间指示器提供了添加并查看多个时区的支持,不需要附加组件,不需要额外的包。
1. 点击时钟小应用,然后选择‘**时间和日期设置**’条目
1. 在‘**时钟**’标签中,选中‘**其它位置的时间**’选框
1. 点击‘**选择位置**’按钮
1. 点击‘**+**’,然后输入位置名称
#### 其它桌面环境 ####
**KDE Plasma**中默认的时钟小应用有类似的功能,其它功能如下:
1. 在数字时钟小部件上右击,然后选择‘**数字时钟设置**
1. 点击‘**时区**’项
1. 在搜索区输入城市名
1. 点击‘**确定**
**GNOME Shell**的可扩展特性可以看到有许多世界时钟选项可用,可以用它的默认时间表填补左边的空白,我个人喜欢‘[多个时钟][1]’。对于**Cinnamon**桌面而言也是一样的,它的‘面板小部件’仓库有丰富的可选部件,如超级顺滑的“**世界时钟日历**”。
![World Clock Calendar in Cinnamon 2.4](http://www.omgubuntu.co.uk/wp-content/uploads/2014/12/cinnamon-applet.jpg)
*Cinnamon 2.4中的世界时钟日历*
**XFCE**和**LXDE**就不那么慷慨了,除了自带的“工作区”作为**多个时钟**添加到面板外每个都需要手动配置以指定位置。两个都支持指示器小部件所以如果你不用Unity的话你可以安装/添加单独的日期/时间指示器。
**Budgie**还刚初出茅庐不足以胜任这种角落里的需求因为Pantheon我还没试过——希望你们通过评论来让我知道得更多。
#### 桌面应用、部件和Conky主题 ####
当然,面板小部件只是收纳其它国家多个时区的一种方式。如果你不满意通过面板去访问,那里还有各种各样的**桌面应用**可供使用,其中许多都可以跨版本,甚至跨平台使用。
**GNOME时钟**就是这样一个应用在Ubuntu 14.04 LTS及其后续版本中你可以通过Ubuntu软件中心直接安装。**Conky**是一个很有潜力的备选(尽管我还没发现有哪个预制主题为此目的设计),而其它像[日历时钟][2]这样轻量级的Chrome应用可以在任何安装有Chrome这个免费浏览器的地方工作。
**你也关注时区吗?如果是,你使用什么应用、采用什么方法或者小部件让它显示在顶层呢?**
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/12/add-time-zones-world-clock-ubuntu
作者:[Joey-Elijah Sneddon][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:https://extensions.gnome.org/extension/605/multiclock/
[2]:http://www.omgchrome.com/calendar-clock-chrome-app/

View File

@@ -0,0 +1,155 @@
推荐一款不错的 VPS 控制面板Ajenti
================================================================================
任何有经验的Linux人员都认为没有任何一款控制面板可以打败纯命令行界面来管理[虚拟主机][1]VPS。也有人争辩说好的控制面板还是应该有一席之地因为顺滑的操作界面让常规管理操作通过点几下鼠标就可以完成。
至于控制面板,有那种强大的充满警铃和汽笛的商业控制面板,也有不同免费的但也强大多功能的免费开源面板替代品。这之中杰出的代表是[Ajenti][2]控制面板。
Ajenti可以让你很简单地配置不同的常规服务程序如Apache/nginx、Samba、BIND、Squid、MySQL、cron、防火墙等等对管理常规的 VPS 实例可以节省大量的时间。对于生产环境Ajenti同样提供了插件和平台来支持虚拟 web 主机管理和自定义 web UI开发。
Ajenti有[双重授权][3];一个是针对个人、企业内部或者教育用途免费使用的AGPLv3。然而如果你是一家托管企业或者硬件提供商那么你需要购买商业授权来使用Ajenti作为商业服务。
### 在Linux上安装Ajenti ###
为了简化安装Ajenti为主流Linux发行版提供了自己的仓库。安装Ajenti要做的就是配置目标仓库并用默认包管理器来安装。
安装前会生成用于SSL的一个RSA密钥和证书Ajenti会在8000端口监听HTTPS的web请求。如果你正在使用防火墙你需要在防火墙中允许8000端口访问。为了安全最好默认禁止8000端口的公开访问并添加你的少数IP地址到白名单中。
#### 在Debian上安装Ajenti ####
$ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add -
$ sudo sh -c 'echo "deb http://repo.ajenti.org/debian main main debian" >> /etc/apt/sources.list'
$ sudo apt-get update
$ sudo apt-get install ajenti
#### 在Ubuntu上安装Ajenti ####
$ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add -
$ sudo sh -c 'echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" >> /etc/apt/sources.list'
$ sudo apt-get update
$ sudo apt-get install ajenti
#### 在 CentOS/RHEL或者Fedora上安装Ajenti ####
在CentOS/RHEL上首先[配置][4]EPEL仓库接着运行下面的命令。在Fedora上直接使用下面的命令。
$ wget http://repo.ajenti.org/ajenti-repo-1.0-1.noarch.rpm
$ sudo rpm -ivh ajenti-repo-1.0-1.noarch.rpm
$ sudo yum install ajenti
接着配置防火墙。
在Fedora或者CentOS/RHEL 7上
$ sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
$ sudo firewall-cmd --reload
在CentOS/RHEL 6上
$ sudo iptables -I INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
$ sudo service iptables save
### 访问Ajenti web界面 ###
在访问Ajenti的web界面前先确保启动了ajenti服务。
$ sudo service ajenti restart
直接在浏览器中输入https://\<server-ip-address>:8000你就会看到下面的Ajenti的登录界面。
![](https://farm8.staticflickr.com/7512/15712738197_eeccd0f9dd_z.jpg)
默认的登录凭证是用户名“root”密码“admin”。当你登录后你会看到初始化的Ajenti菜单。
![](https://farm8.staticflickr.com/7498/15897850312_d2ca46fa4b_z.jpg)
在左边面板的"SOFTWARE"选项下你会看带一些已安装的服务。当你安装了任何Ajenti支持的服务端程序时软件会在重启ajenti服务后被自动加入列表。
$ sudo service ajenti restart
### 通过Ajenti web界面管理VPS ###
Ajenti的web界面非常直观且易使用。下面是Ajenti功能的几个例子。
#### 可插入结构 ####
Ajenti有许多特定应用的插件这让AJenti可高度扩展化。当你在VPS上安装一款新软件时。相关的AJenti插件如果有的话会自动启用来管理软件。“Plugins”菜单会展示可用/启用的插件,以及和它们关联的软件。
![](https://farm8.staticflickr.com/7501/15872690086_26d05ea570_z.jpg)
#### 包管理 ####
Ajenti提供了一个web界面来安装和升级VPS上的包。
![](https://farm9.staticflickr.com/8571/15896505171_daf8c2d9db_z.jpg)
#### 防火墙配置 ####
Ajenti允许你用两种方法管理防火墙规则使用iptables或者CSF。一种方法是使用用户友好的web面板另一种是直接编辑原始的防火墙规则。
![](https://farm8.staticflickr.com/7490/15276234634_a220f2a555_z.jpg)
![](https://farm8.staticflickr.com/7499/15711196520_343d0668ff_z.jpg)
#### 日志检查 ####
你可以在Ajenti的web界面中浏览位于/var/log下的系统日志。
![](https://farm8.staticflickr.com/7529/15276234684_a5375c9b6d_z.jpg)
#### 进程监控 ####
你可以看见按照CPU和内存使用率排序的进程列表如果需要的话也可以干掉它们。
![](https://farm8.staticflickr.com/7556/15711008948_ed359c284d_z.jpg)
#### 终端访问 ####
如果需要更低层面的VPS访问Ajenti提供了基于web的终端界面你在这可以输入Linux命令。你也可以像下面那样在一个面板中打开多个终端。
![](https://farm8.staticflickr.com/7568/15896505251_8271ac16dd_z.jpg)
#### Apache Web服务管理 ####
你可以编辑Apache配置文件并管理apache2服务。
![](https://farm8.staticflickr.com/7572/15711009108_bb806d2dcd_z.jpg)
#### MySQL/MariaDB 管理 ####
你可以访问MySQL/MariaDB服务并直接在上面执行原始SQL命令。
![](https://farm8.staticflickr.com/7580/15276234754_02375fd17b_z.jpg)
#### Squid 配置 ####
你可以配置Squid代理服务器的ACL、HTTP访问规则过滤端口。
![](https://farm8.staticflickr.com/7568/15712738507_e2ef48b78f_z.jpg)
#### 启动服务管理 ####
你可以浏览、启动、停止、重启已安装的服务。
![](https://farm8.staticflickr.com/7538/15898503935_1edf5c67ae_z.jpg)
### 总结 ###
Ajenti是一款易于使用的服务器管理控制面板可以加入你开发的[自定义插件][5]。然而请记住,任何好的控制面板都不是阻止你学习在控制面板之后[VPS][6]里发生了什么的原因。一款好的面板会在你完全了解你正在做的事情时成会一款真正节省时间的利器,并且不依赖于控制面版来达成你所需要的目标。
--------------------------------------------------------------------------------
via: http://xmodulo.com/free-control-panel-for-vps.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[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/go/digitalocean
[2]:http://ajenti.org/
[3]:http://ajenti.org/licensing
[4]:http://linux.cn/article-2324-1.html
[5]:http://docs.ajenti.org/en/latest/dev/intro.html
[6]:http://xmodulo.com/go/digitalocean

View File

@@ -0,0 +1,104 @@
CentOS上配置rsyslog客户端用以远程记录日志
================================================================================
**rsyslog**是一个开源工具被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境一种是配置成日志收集服务器rsyslog进程可以从网络中收集其它主机上的日志数据这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法就是可以配置为客户端用来过滤和发送内部日志消息到本地文件夹如/var/log或一台可以路由到的远程rsyslog服务器上。
假定你的网络中已经有一台[已经配置好并启动的][1]rsyslog服务器本指南将为你展示如何来设置CentOS系统将其内部日志消息路由到一台远程rsyslog服务器上。这将大大改善你的系统磁盘空间的使用尤其是当你还没有一个用于/var目录的独立的大分区。
### 步骤一: 安装Rsyslog守护进程 ###
在CentOS 6和7上rsyslog守护进程已经预先安装了。要验证rsyslog是否已经安装到你的CentOS系统上请执行如下命令
# rpm -qa | grep rsyslog
# rsyslogd -v
![](https://farm8.staticflickr.com/7502/15988316295_ac2e07e7f3_z.jpg)
如果处于某种原因rsyslog守护进程没有出现在你的系统中请使用以下命令来安装
# yum install rsyslog
### 步骤二: 配置Rsyslog守护进程为客户端 ###
接下来的步骤是要将你的CentOS机器转变成rsyslog客户端将其所有内部日志消息发送到远程中央日志服务器上。
要实现该功能,请使用你喜爱的文本编辑器打开位于/etc路径下的rsyslog主配置文件
# nano /etc/rsyslog.conf
开启文件用于编辑后你需要添加以下声明到文件底部。将IP地址替换为你的远程rsyslog服务器的IP地址。
*.* @192.168.1.25:514
上面的声明告诉rsyslog守护进程将系统上各个设备的各种日志消息路由到远程rsyslog服务器192.168.1.25的UDP端口514。
如果出于某种原因你需要更为可靠的协议如TCP而rsyslog服务器也被配置为监听TCP连接你必须在远程主机的IP地址前添加一个额外的@字符,像下面这样:
*.* @@192.168.1.25:514
注意你也可以将rsyslog服务器的IP地址替换成它的主机名FQDN
如果你只想要转发服务器上的指定设备的日志消息比如说内核设备那么你可以在rsyslog配置文件中使用以下声明。
kern.* @192.168.1.25:514
修改配置文件后,你需要重启进程以激活修改:
**CentOS 7**
# systemctl restart rsyslog.service
**CentOS 6**
# service rsyslog restart
####非 syslog 日志的转发
在另外一种环境中让我们假定你已经在机器上安装了一个名为“foobar”的应用程序它会在/var/log下生成foobar.log日志文件。现在你想要将它的日志定向到rsyslog服务器这可以通过像下面这样在rsyslog配置文件中加载imfile模块来实现。
首先加载imfile模块这只需做一次。
module(load="imfile" PollingInterval="5")
然后指定日志文件的路径以便imfile模块可以检测到
input(type="imfile"
File="/var/log/foobar.log"
Tag="foobar"
Severity="error"
Facility="local7")
最后定向local7设备到远程rsyslog服务器
local7.* @192.168.1.25:514
别忘了重启rsyslog进程哦
### 步骤三: 让Rsyslog进程自动启动 ###
要让rsyslog客户端在每次系统重启后自动启动请运行以下命令
**CentOS 7**
# systemctl enable rsyslog.service
**CentOS 6**
# chkconfig rsyslog on
### 小结 ###
在本教程中我演示了如何将CentOS系统转变成rsyslog客户端以强制它发送日志消息到远程rsyslog服务器。这里我假定rsyslog客户端和服务器之间的连接是安全的在有防火墙保护的公司网络中。不管在任何情况下都不要配置rsyslog客户端将日志消息通过不安全的网络转发或者特别是通过互联网转发因为syslog协议是一个明文协议。要进行安全传输可以考虑使用[TLS/SSL][2]来加密日志消息的传输。
--------------------------------------------------------------------------------
via: http://xmodulo.com/configure-rsyslog-client-centos.html
作者:[Caezsar M][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/caezsar
[1]:http://xmodulo.com/configure-syslog-server-linux.html
[2]:http://www.rsyslog.com/doc/rsyslog_tls.html

View File

@@ -0,0 +1,164 @@
在Linux中使用matplotlib进行科学画图
================================================================================
如果你想要在Linxu中获得一个高效、自动化、高质量的科学画图的解决方案应该考虑尝试下matplotlib库。Matplotlib是基于python的开源科学测绘包基于python软件基金会许可证发布。大量的文档和例子、集成了Python和Numpy科学计算包、以及自动化能力是作为Linux环境中进行科学画图的可靠选择的几个原因。这个教程将提供几个用matplotlib画图的例子。
###特性###
- 支持众多的图表类型bar,box,contour,histogram,scatter,line plots....
- 基于python的语法
- 集成Numpy科学计算包
- 数据源可以是 python 的列表、键值对和数组
- 可定制的图表格式(坐标轴缩放、标签位置及标签内容等)
- 可定制文本(字体,大小,位置...)
- 支持TeX格式等式符号希腊字体...)
- 与IPython相兼容允许在 python shell 中与图表交互)
- 自动化(使用 Python 循环创建图表)
- 用Python 的循环迭代生成图片
- 保存所绘图片格式为图片文件png,pdf,ps,eps,svg等
基于Python语法的matplotlib是其许多特性和高效工作流的基础。世面上有许多用于绘制高质量图的科学绘图包但是这些包允许你直接在你的Python代码中去使用吗除此以外这些包允许你创建可以保存为图片文件的图片吗Matplotlib允许你完成所有的这些任务。从而你可以节省时间使用它你能够花更少的时间创建更多的图片。
###安装###
安装Python和Numpy包是使用Matplotlib的前提安装Numpy的指引请见[该链接][1]。
可以通过如下命令在Debian或Ubuntu中安装Matplotlib
$ sudo apt-get install python-matplotlib
在Fedora或CentOS/RHEL环境则可用如下命令
$ sudo yum install python-matplotlib
###Matplotlib 例子###
本教程会提供几个绘图例子演示如何使用matplotlib:
- 离散图和线性图
- 柱状图
- 饼状图
在这些例子中我们将用Python脚本来执行Mapplotlib命令。注意numpy和matplotlib模块需要通过import命令在脚本中进行导入。
np为nuupy模块的命名空间引用plt为matplotlib.pyplot的命名空间引用
import numpy as np
import matplotlib.pyplot as plt
###例1离散和线性图###
第一个脚本script1.py 完成如下任务:
- 创建3个数据集xData,yData1和yData2)
- 创建一个宽8英寸、高6英寸的图(赋值1
- 设置图画的标题、x轴标签、y轴标签字号均为14
- 绘制第一个数据集yData1为xData数据集的函数用圆点标识的离散蓝线标识为"y1 data"
- 绘制第二个数据集yData2为xData数据集的函数采用红实线标识为"y2 data"
- 把图例放置在图的左上角
- 保存图片为PNG格式文件
script1.py的内容如下
import numpy as np
import matplotlib.pyplot as plt
xData = np.arange(0, 10, 1)
yData1 = xData.__pow__(2.0)
yData2 = np.arange(15, 61, 5)
plt.figure(num=1, figsize=(8, 6))
plt.title('Plot 1', size=14)
plt.xlabel('x-axis', size=14)
plt.ylabel('y-axis', size=14)
plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data')
plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data')
plt.legend(loc='upper left')
plt.savefig('images/plot1.png', format='png')
所画之图如下:
![](https://farm8.staticflickr.com/7529/15927002365_f5ae11cf02_z.jpg)
###例2柱状图###
第二个脚本script2.py 完成如下任务:
- 创建一个包含1000个随机样本的正态分布数据集。
- 创建一个宽8英寸、高6英寸的图(赋值1
- 设置图的标题、x轴标签、y轴标签字号均为14
- 用samples这个数据集画一个40个柱状边从-10到10的柱状图
- 添加文本,用TeX格式显示希腊字母mu和sigma(字号为16
- 保存图片为PNG格式。
script2.py代码如下
import numpy as np
import matplotlib.pyplot as plt
mu = 0.0
sigma = 2.0
samples = np.random.normal(loc=mu, scale=sigma, size=1000)
plt.figure(num=1, figsize=(8, 6))
plt.title('Plot 2', size=14)
plt.xlabel('value', size=14)
plt.ylabel('counts', size=14)
plt.hist(samples, bins=40, range=(-10, 10))
plt.text(-9, 100, r'$\mu$ = 0.0, $\sigma$ = 2.0', size=16)
plt.savefig('images/plot2.png', format='png')
结果见如下链接:
![](https://farm8.staticflickr.com/7531/15304765024_1cc271b6e0_z.jpg)
###例3饼状图###
第三个脚本script3.py 完成如下任务:
- 创建一个包含5个整数的列表
- 创建一个宽6英寸、高6英寸的图(赋值1
- 添加一个长宽比为1的轴图
- 设置图的标题字号为14
- 用data列表画一个包含标签的饼状图
- 保存图为PNG格式
脚本script3.py的代码如下
import numpy as np
import matplotlib.pyplot as plt
data = [33, 25, 20, 12, 10]
plt.figure(num=1, figsize=(6, 6))
plt.axes(aspect=1)
plt.title('Plot 3', size=14)
plt.pie(data, labels=('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5'))
plt.savefig('images/plot3.png', format='png')
结果如下链接所示:
![](https://farm8.staticflickr.com/7504/15926356092_7c3e5217aa_z.jpg)
###总结###
这个教程提供了几个用matplotlib科学画图包进行画图的例子Matplotlib是在Linux环境中用于解决科学画图的绝佳方案表现在其无缝地和Python、Numpy连接、自动化能力和提供多种自定义的高质量的画图产品。matplotlib包的文档和例子详见[这里][2]。
--------------------------------------------------------------------------------
via: http://xmodulo.com/matplotlib-scientific-plotting-linux.html
作者:[Joshua Reed][a]
译者:[ideas4u](https://github.com/ideas4u)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/joshua
[1]:http://xmodulo.com/numpy-scientific-computing-linux.html
[2]:http://matplotlib.org/

View File

@@ -0,0 +1,163 @@
如何在 Linux 下大量屏蔽恶意 IP 地址
================================================================================
很多情况下你可能需要在Linux下屏蔽IP地址。比如作为一个终端用户你可能想要免受间谍软件或者IP追踪的困扰。或者当你在运行P2P软件时。你可能想要过滤反P2P活动的网络链接。如果你是一名系统管理员你可能想要禁止垃圾IP地址访问你们的公司邮件服务器。或者你因一些原因想要禁止某些国家访问你的web服务。在许多情况下然而你的IP地址屏蔽列表可能会很快地增长到几万的IP。该如何处理这个
### Netfilter/IPtables 的问题 ###
在Linux中可以很简单地用netfilter/iptables框架禁止IP地址
$ sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP
如果你想要完全屏蔽一个IP地址段你可以用下面的命令很简单地做到
$ sudo iptables -A INPUT -s 1.1.2.0/24 -p TCP -j DROP
然而当你有1000个独立IP地址且不带CIDR无类别域间路由前缀你该怎么做你要有1000条iptable规则这显然这并不适于大规模屏蔽。
$ sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP
$ sudo iptables -A INPUT -s 2.2.2.2 -p TCP -j DROP
$ sudo iptables -A INPUT -s 3.3.3.3 -p TCP -j DROP
. . . .
### 什么是IP集? ###
这时候就是[IP集][1]登场了。IP集是一个内核特性它允许多个独立IP地址、MAC地址或者甚至是端口号被编码和有效地存储在位图/哈希内核数据结构中。一旦IP集创建之后你可以创建一条iptables规则来匹配这个集合。
你马上就会看见IP集合的好处了它可以让你用一条iptable规则匹配多个ip地址你可以用多个IP地址和端口号的方式来构造IP集并且可以动态地更新规则而没有性能影响。
### 在Linux中安装IPset工具 ###
为了创建和管理IP集你需要使用称为ipset的用户空间工具。
要在Debian、Ubuntu或者Linux Mint上安装
$ sudo apt-get install ipset
Fedora或者CentOS/RHEL 7上安装
$ sudo yum install ipset
### 使用IPset命令禁止IP ###
让我通过简单的示例告诉你该如何使用ipset命令。
首先让我们创建一条新的IP集名为banthis名字任意
$ sudo ipset create banthis hash:net
第二个参数(hash:net)是必须的代表的是集合的类型。IP集有[多个类型][2]。hash:net类型的IP集使用哈希来存储多个CIDR块。如果你想要在一个集合中存储单独的IP地址你可以使用hash:ip类型。
一旦创建了一个IP集之后你可以用下面的命令来检查
$ sudo ipset list
![](https://farm8.staticflickr.com/7483/15380353464_825dbc45c2_z.jpg)
这显示了一个可用的IP集合列表并有包含了集合成员的详细信息。默认上每个IP集合可以包含65536个元素这里是CIDR块。你可以通过追加"maxelem N"选项来增加限制。
$ sudo ipset create banthis hash:net maxelem 1000000
现在让我们来增加IP块到这个集合中
$ sudo ipset add banthis 1.1.1.1/32
$ sudo ipset add banthis 1.1.2.0/24
$ sudo ipset add banthis 1.1.3.0/24
$ sudo ipset add banthis 1.1.4.10/24
你会看到集合成员已经改变了。
$ sudo ipset list
![](https://farm8.staticflickr.com/7518/15380353474_4d6b9dbf63_z.jpg)
现在是时候去创建一个使用IP集的iptables规则了。这里的关键是使用"-m set --match-set <name>"选项。
现在让我们创建一条让之前那些IP块不能通过80端口访问web服务的iptable规则。可以通过下面的命令
$ sudo iptables -I INPUT -m set --match-set banthis src -p tcp --destination-port 80 -j DROP
如果你愿意你可以保存特定的IP集到一个文件中以后可以从文件中还原
$ sudo ipset save banthis -f banthis.txt
$ sudo ipset destroy banthis
$ sudo ipset restore -f banthis.txt
上面的命令中我使用了destory选项来删除一个已有的IP集来看看我是否可以还原它。
### 自动IP地址禁用 ###
现在你应该看到了IP集合的强大了。维护IP黑名单是一件繁琐和费时的工作。实际上有很多免费或者收费的服务可以来帮你完成这个。一个额外的好处是让我们看看如何自动将IP黑名单加到IP集中。
首先让我们从[iblocklist.com][3]得到免费的黑名单这个网站有不同的免费和收费的名单。免费的版本是P2P格式。
接下来我要使用一个名为iblocklist2ipset的开源Python工具来将P2P格式的黑名单转化成IP集。
首先你需要安装了pip参考[这个指导][4]来安装pip
使用的下面命令安装iblocklist2ipset。
$ sudo pip install iblocklist2ipset
在一些发行版如Fedora你可能需要运行
$ sudo python-pip install iblocklist2ipset
现在到[iblocklist.com][5]抓取任何一个P2P列表的URL比如"level1"列表)。
![](https://farm8.staticflickr.com/7523/15976824856_80632f35e1_z.jpg)
粘帖URL到下面的命令中。
$ iblocklist2ipset generate \
--ipset banthis "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz" \
> banthis.txt
上面的命令运行之后你会得到一个名为banthis.txt的文件。如果查看它的内容你会看到像这些
create banthis hash:net family inet hashsize 131072 maxelem 237302
add banthis 1.2.4.0/24
add banthis 1.2.8.0/24
add banthis 1.9.75.8/32
add banthis 1.9.96.105/32
add banthis 1.9.102.251/32
add banthis 1.9.189.65/32
add banthis 1.16.0.0/14
你可以用下面的ipset命令来加载这个文件
$ sudo ipset restore -f banthis.txt
现在可以查看自动创建的IP集
$ sudo ipset list banthis
在写这篇文章时候“level1”类表包含了237,000个屏蔽的IP列表。你可以看到很多IP地址已经加入到IP集中了。
最后创建一条iptables命令来屏蔽这些坏蛋
### 总结 ###
这篇文章中我描述了你该如何用强大的ipset来屏蔽不想要的IP地址。同时结合了第三方工具iblocklist2ipset这样你就可以流畅地维护你的IP屏蔽列表了。那些对ipset的性能提升好奇的人下图显示了iptables在使用和不使用ipset的基准测试结果。
![](https://farm8.staticflickr.com/7575/15815220998_e1935c94c0_z.jpg)
告诉我你多么喜欢这个。:-)
--------------------------------------------------------------------------------
via: http://xmodulo.com/block-unwanted-ip-addresses-linux.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://ipset.netfilter.org/
[2]:http://ipset.netfilter.org/features.html
[3]:https://www.iblocklist.com/lists.php
[4]:http://ask.xmodulo.com/install-pip-linux.html
[5]:https://www.iblocklist.com/lists.php
[6]:http://daemonkeeper.net/781/mass-blocking-ip-addresses-with-ipset/

View File

@@ -0,0 +1,120 @@
在Linux终端下使用 calcurse 安排约会和待办事项
================================================================================
如果你是一个享受linux终端的系统管理员但同样需要一种方法来安排每天最重要的任务、约会和会议你会发现[calcurse][1]是一个很有用的工具。calcurse包含了日历、一个待办事项管理、一个调度程序和一个可配置的通知系统这些都集成进了一个软件中基于的都是ncurse的接口。同时它不会限制你在终端中你可以将你的日历和笔记导出成可以打印的格式。
本篇文章我们会探索如何在Linux上安装calcurse并且教你如何利用它的特性。
### 在Linux上安装Culcurse ###
calcurse在大多数Linux发行版的标准仓库都有。万一在你的发行版上没有比如CentOS/RHEL只要你安装了gcc和ncurse开发文件后就可以很简单地从源码安装。
Debian、Ubuntu或者Linux Mint
# aptitude install calcurse
Fedora
# yum install calcurse
CentOS/RHEL
# yum install gcc ncurses-devel
# wget http://calcurse.org/files/calcurse-3.2.1.tar.gz
# tar xvfvz calcurse-3.2.1.tar.gz
# cd calcurse-3.2.1
# ./configure
# make
# make install
### 启动 Calcurse ###
安装完成后你就可以用下面的命令启动calcurse了
$ calcurse
你将会看到下面的空白界面。如果这配色不吸引你,你可以以后换一个。
![](https://farm8.staticflickr.com/7567/15410270544_0af50a4eb6_c.jpg)
我们现在可以按下回车-q- 再次按下回车- y来退出主界面。这个按键序列激活界面底部的主菜单并告诉它保存当前的笔记并确认退出。
我们第一次运行 calcurse 时,会在主目录创建如下子目录:
![](https://farm8.staticflickr.com/7482/15845194188_2ba15035e7_o.png)
这里是每一个子目录的简要描述:
- **apts**文件包含了用户所有的约会和事项todo文件包含了所有的**待办事项** 列表。
- **conf**文件,如你所想的那样,包含当前用户的独立设置。
- **keys**文件包含了用户定义的按键绑定比如q或者Q退出x或者X导出内容等等
- 在**notes**子目录你会看到包含了笔记描述的文件,这些笔记你可以附到任何一个安排事项中。
### 改变配色 ###
要改变配色,按照下面的步骤:
![](https://farm9.staticflickr.com/8595/16006755476_5289384f81_z.jpg)
使用最后一幅图的按键绑定来选择前景色和背景色配置,以更好地适应你的需求:
![](https://farm8.staticflickr.com/7499/15845274420_70bb95c221_b.jpg)
### 添加约会和待办任务 ###
在前面的选项卡中浏览命令菜单时我们看到按下o可以从一个菜单跳到下一个菜单。我们可以把第二个菜单作为**安排编辑菜单**。
![](https://farm9.staticflickr.com/8634/16031851732_b947951f76_c.jpg)
那么我们用Ctrl + A 和 Ctrl + T组合键为今天添加一个新的约会和一个新的待办任务。如果我们希望为约会指定一个具体的日期而不是今天我们可以在添加约会和待办事项前使用Ctrl + L (+1 天)、Ctrl + H (-1 天)、Ctrl + J (+1 周)和Ctrl + K (-1 周)组合键。
![](https://farm8.staticflickr.com/7498/15410270594_dc282928ac_z.jpg)
添加待办任务的步骤是相似的只是用Ctrl + T之前已经解释了
![](https://farm8.staticflickr.com/7520/15845386020_9799fe7378_o.png)
你还会被要求输入一个优先级,这样待办任务就会显示在主页上了:
![](https://farm8.staticflickr.com/7498/15413012243_e081b4e0b3_o.png)
你现在可以验证待办任务和约会已经相应地添加到了.culcurse文件夹下的todo和apts文件中了
![](https://farm8.staticflickr.com/7569/16030583401_0a07d007aa_z.jpg)
注意你可以使用你最喜欢的编辑器或者菜单底部的calcurse屏幕来编辑这些文件。你可以按下TAB来在不同的面板间切换并选择你想要编辑的项目
![](https://farm9.staticflickr.com/8663/16032536475_2fd68e16bf_z.jpg)
### 为事项设置通知 ###
你可以在通知菜单下配置通知。按照相同的步骤来改变配色方案,但是选择**Notify**而不是**Colour**
![](https://farm8.staticflickr.com/7569/15412900863_eaf2767e19_z.jpg)
假设你想要设置email通知。按下数字5来编辑**notify-bar_command**的值:
![](https://farm8.staticflickr.com/7531/16030583451_6d116b5f63_z.jpg)
按照上面的设置之后如果这个任务被标为重要那么root@localhost会在300秒或者5分钟后收到邮件通知这会发生在下一个安排的任务之前。如果你想要即使calcurse不在运行也启用这个功能那么将notify-daemon_enable设成yes。在本例中dev2是本机的主机名。
![](https://farm8.staticflickr.com/7552/16031851862_afbf1937d0_z.jpg)
请注意出于演示目的,我已经在这篇教程中改变了原始约会的开始和/或者结束时间。
### 总结 ###
本篇教程中我们展示了如何设置一个多样化的调度器和提醒器来帮助你组织每日的活动和提前安排重要的事项。你或许还要看看calcurse的[PDF 手册][2],请随意在下面的评论中提出你的疑问。欢迎你的评论,我也很高兴看到这些。
--------------------------------------------------------------------------------
via: http://xmodulo.com/schedule-appointments-todo-tasks-linux-terminal.html
作者:[Gabriel Cánepa][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/gabriel
[1]:http://calcurse.org/
[2]:http://calcurse.org/files/manual.pdf

View File

@@ -0,0 +1,143 @@
20条Linux命令面试问答
================================================================================
**问:1 如何查看当前的Linux服务器的运行级别**
答: who -rrunlevel 命令可以用来查看当前的Linux服务器的运行级别。
**问:2 如何查看Linux的默认网关**
答: 用 “route -n” 和 “netstat -nr” 命令,我们可以查看默认网关。除了默认的网关信息,这两个命令还可以显示当前的路由表。
**问:3 如何在Linux上重建初始化内存盘镜像文件**
答: 在CentOS 5.X / RHEL 5.X中可以用mkinitrd命令来创建初始化内存盘文件举例如下
# mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
如果你想要给特定的内核版本创建初始化内存盘,你就用所需的内核名替换掉 uname -r
在CentOS 6.X / RHEL 6.X中则用dracut命令来创建初始化内存盘文件举例如下
# dracut -f
以上命令能给当前的系统版本创建初始化内存盘,给特定的内核版本重建初始化内存盘文件则使用以下命令:
# dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64
**问:4 cpio命令是什么**
答: cpio就是复制入和复制出的意思。cpio可以向一个归档文件或单个文件复制文件、列表还可以从中提取文件。
**问:5 patch命令是什么如何使用**
答: 顾名思义patch命令就是用来将修改或补丁写进文本文件里。patch命令通常是接收diff的输出并把文件的旧版本转换为新版本。举个例子Linux内核源代码由百万行代码文件构成所以无论何时任何代码贡献者贡献出代码只需发送改动的部分而不是整个源代码然后接收者用patch命令将改动写进原始的源代码里。
创建一个diff文件给patch使用
# diff -Naur old_file new_file > diff_file
旧文件和新文件要么都是单个的文件要么都是包含文件的目录,-r参数支持目录树递归。
一旦diff文件创建好我们就能在旧的文件上打上补丁把它变成新文件
# patch < diff_file
**问:6 aspell有什么用 ?**
答: 顾名思义aspell就是Linux操作系统上的一款交互式拼写检查器。aspell命令继任了更早的一个名为ispell的程序并且作为一款免费替代品 最重要的是它非常好用。当aspell程序主要被其它一些需要拼写检查能力的程序所使用的时候在命令行中作为一个独立运行的工具的它也能十分有效。
**问:7 如何从命令行查看域SPF记录**
答: 我们可以用dig命令来查看域SPF记录。举例如下
linuxtechi@localhost:~$ dig -t TXT google.com
**问:8 如何识别Linux系统中指定文件(/etc/fstab)的关联包?**
答: # rpm -qf /etc/fstab
以上命令能列出提供“/etc/fstab”这个文件的包。
**问:9 哪条命令用来查看bond0的状态**
答: cat /proc/net/bonding/bond0
**问:10 Linux系统中的/proc文件系统有什么用**
答: /proc文件系统是一个基于内存的文件系统其维护着关于当前正在运行的内核状态信息其中包括CPU、内存、分区划分、I/O地址、直接内存访问通道和正在运行的进程。这个文件系统所代表的并不是各种实际存储信息的文件它们指向的是内存里的信息。/proc文件系统是由系统自动维护的。
**问:11 如何在/usr目录下找出大小超过10MB的文件**
答: # find /usr -size +10M
**问:12 如何在/home目录下找出120天之前被修改过的文件**
答: # find /home -mtime +120
**问:13 如何在/var目录下找出90天之内未被访问过的文件**
答: # find /var \\! -atime -90
**问:14 在整个目录树下查找文件“core”如发现则无需提示直接删除它们。**
答: # find / -name core -exec rm {} \;
**问:15 strings命令有什么作用**
答: strings命令用来提取和显示非文本文件中的文本字符串。LCTT 译注:当用来分析你系统上莫名其妙出现的二进制程序时,可以从中找到可疑的文件访问,对于追查入侵有用处)
**问:16 tee 过滤器有什么作用 ?**
答: tee 过滤器用来向多个目标发送输出内容。如果用于管道的话,它可以将输出复制一份到一个文件,并复制另外一份到屏幕上(或一些其它程序)。
linuxtechi@localhost:~$ ll /etc | nl | tee /tmp/ll.out
在以上例子中从ll输出可以捕获到 /tmp/ll.out 文件中,并且同样在屏幕上显示了出来。
**问:17 export PS1 = ”$LOGNAME@`hostname`:\$PWD: 这条命令是在做什么?**
答: 这条export命令会更改登录提示符来显示用户名、本机名和当前工作目录。
**问:18 ll | awk {print $3,”owns”,$9} 这条命令是在做什么?**
答: 这条ll命令会显示这些文件的文件名和它们的拥有者。
**问:19 :Linux中的at命令有什么用**
答: at命令用来安排一个程序在未来的做一次一次性执行。所有提交的任务都被放在 /var/spool/at 目录下并且到了执行时间的时候通过atd守护进程来执行。
**问:20 linux中lspci命令的作用是什么**
答: lspci命令用来显示你的系统上PCI总线和附加设备的信息。指定-v-vv或-vvv来获取越来越详细的输出加上-r参数的话命令的输出则会更具有易读性。
--------------------------------------------------------------------------------
via: http://www.linuxtechi.com/20-linux-commands-interview-questions-answers/
作者:[Pradeep Kumar][a]
译者:[ZTinoZ](https://github.com/ZTinoZ)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.linuxtechi.com/author/pradeep/
[1]:
[2]:
[3]:
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
[11]:
[12]:
[13]:
[14]:
[15]:
[16]:
[17]:
[18]:
[19]:
[20]:

View File

@@ -0,0 +1,330 @@
RHEL/CentOS 7中配置用于多版本Linux安装的“PXE网络启动服务器”
================================================================================
**PXE服务器**——预启动执行环境——指示客户端计算机直接从网络接口启动、运行或安装操作系统而不需要烧录CD/DVD或使用某个物理介质它可以减轻你网络中多台机器同时安装Linux发行版的工作。
![Setting PXE Network Boot in RHEL/CentOS 7](http://www.tecmint.com/wp-content/uploads/2014/10/Setting-PXE-Network-Boot-in-CentOS.png)
*在RHEL/CentOS 7中设置PXE网络启动*
#### 前置阅读 ####
- [CentOS 7最小化安装步骤][1]
- [RHEL 7最小化安装步骤][2]
- [在RHEL/CentOS 7中配置静态IP地址][3]
- [移除RHEL/CentOS 7中不要的服务][4]
- [安装NTP服务器以设置RHEL/CentOS 7的正确时间][5]
本文将介绍如何在配置有本地镜像安装仓库的**RHEL/CentOS 7** 64位上安装并配置一台**PXE服务器**仓库源由CentOS 7 DVD 的 ISO镜像提供并由**DNSMASQ**服务器提供解析。
该机器提供了**DNS**和**DHCP**服务,用于网络启动引导的**Syslinux**包,**TFTP-Server**——提供了可通过网络使用**小文件传输协议**下载的可启动镜像以及提供本地挂载DVD镜像的**VSFTPD**服务器——它将扮演官方RHEL/CentOS 7镜像安装仓库的角色安装器将从这里提取所需的包。
### 步骤1 安装并配置DNSMASQ服务器 ###
**1.** 不需要提醒你来确定你的网络接口卡吧除非你的服务器上有多个网络接口卡该网卡必须配置有静态IP地址该IP地址必须处于你要提供PXE服务的网段中。
那么在你配置好静态IP地址后更新你的系统并进行其它初始设置。请使用以下命令来安装**DNSMASQ**进程。
# yum install dnsmasq
![Install dnsmasq Package](http://www.tecmint.com/wp-content/uploads/2014/10/Install-dnsmasq-in-CentOS.jpg)
*安装dnsmasq包*
**2.** DNSMASQ的默认的主配置文件位于**/etc**目录中,虽然不需要任何说明就能看懂,但编辑起来确实相当困难的,即使有很详细的说明性注释。
首先,确保你备份了该文件,以便你需要在以后对它进行恢复。然后使用你爱用的文本编辑器创建一个新的空配置文件,命令如下。
# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
# nano /etc/dnsmasq.conf
**3.** 现在,复制并粘贴以下配置到**dnsmasq.conf**文件中,并确保根据如下说明进行相应修改,以适应你的网络设置。
interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
# DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
# Gateway
dhcp-option=3,192.168.1.1
# DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
# NTP Server
dhcp-option=42,0.0.0.0
pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot
![Dnsmasq Configuration](http://www.tecmint.com/wp-content/uploads/2014/10/dnsmasq-configuration.jpg)
*Dnsmasq配置*
你需要修改的声明有以下这些:
- **interface** 服务器需要监听并提供服务的网络接口。
- **bind-interfaces** 取消注释来绑定到该网络接口
- **domain** 替换为你的域名。
- **dhcp-range** 替换为你的网络掩码定义的网段。
- **dhcp-boot** 替换该IP地址为你的网络接口IP地址。
- **dhcp-option=3,192.168.1.1** 替换该IP地址为你的网段的网关。
- **dhcp-option=6,92.168.1.1** 替换该IP地址为你的DNS服务器IP——可以定义多个IP地址。
- **server=8.8.4.4** 这里放置DNS转发服务器IP地址。
- **dhcp-option=28,10.0.0.255** 替换该IP地址为网络广播地址——可选项。
- **dhcp-option=42,0.0.0.0** 这里放置网络时钟服务器——可选项0.0.0.0地址表示参考自身)。
- **pxe-prompt** 保持默认——按F8进入菜单60秒等待时间。
- **pxe=service** 使用x86PC作为32为/64位架构并在字符串引述中输入菜单描述提示。其它类型值可以是PC98,IA_EFI,Alpha,Arc_x86,Intel_Lean_Client,IA32_EFI,BC_EFI,Xscale_EFI和X86-64_EFI。
- **enable-tftp** 启用内建TFTP服务器。
- **tftp-root** 使用/var/lib/tftpboot——所有网络启动文件所在位置。
其它和配置文件相关的高级选项,请参阅[dnsmasq手册][6]。
### 步骤2 安装SYSLINUX启动加载器 ###
**4.** 在编辑并保存**DNSMASQ**主配置文件后,我们将继续安装**Syslinux** PXE启动加载器命令如下。
# yum install syslinux
![Install Syslinux Bootloaders](http://www.tecmint.com/wp-content/uploads/2014/10/install-syslinux-bootloaders.jpg)
*安装Syslinux启动加载器*
**5.** PXE启动加载器文件位于**/usr/share/syslinux**系统绝对路径下,你可以通过列出该路径下的内容来查看。该步骤不是必须的,但你可能需要知道该路径,因为在下一步中,我们将拷贝该路径下的所有内容到**TFTP服务器**路径下。
# ls /usr/share/syslinux
![Syslinux Files](http://www.tecmint.com/wp-content/uploads/2014/10/syslinux-files.jpg)
*Syslinux文件*
### 步骤3 安装TFTP-Server并加入SYSLINUX加载启动器 ###
**6.** 现在,让我们进入下一步,安装**TFTP-Server**。然后拷贝上述位置中Syslinux包提供所有启动加载器文件到**/var/lib/tftpboot**路径中,命令如下。
# yum install tftp-server
# cp -r /usr/share/syslinux/* /var/lib/tftpboot
![Install TFTP Server](http://www.tecmint.com/wp-content/uploads/2014/10/install-tftp-server.jpg)
*安装TFTP服务器*
### 步骤4 设置PXE服务器配置文件 ###
**7.** 通常,**PXE服务器**从位于**pxelinux.cfg**文件夹中一组指定的文件中读取配置(首先是**GUID**文件,接下来是**MAC**文件,最后是**Default**文件该文件夹必须位于DNSMASQ主配置文件中**tftp-root**声明指定的目录中。
创建需要的目录**pxelinux.cfg**,然后添加**default**文件到该目录中,命令如下。
# mkdir /var/lib/tftpboot/pxelinux.cfg
# touch /var/lib/tftpboot/pxelinux.cfg/default
**8.** 现在,该来编辑**PXE服务器**配置文件了为它添加合理的Linux发行版安装选项。请注意该文件中使用的所有路径必须是相对于**/var/lib/tftpboot**目录的。
下面你可以看到配置文件的样例你可以使用该模板但请修改安装镜像kernel和initrd文件、协议FTP、HTTP、HTTPS、NFS以及映射你网络安装源仓库和路径的IP地址等参数。
# nano /var/lib/tftpboot/pxelinux.cfg/default
添加以下整个节录到文件中。
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount
label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp
label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password
label 4
menu label ^4) Boot from local drive
![Configure PXE Server](http://www.tecmint.com/wp-content/uploads/2014/10/configure-pxe-server.jpg)
*配置PXE服务器*
正如你所见CentOS 7启动镜像kernel和initrd位于名为**centos7**的目录,该目录是**/var/lib/tftpboot**目录的相对路径(其系统绝对路径为**/var/lib/tftpboot/centos7**而安装器仓库位于可通过FTP协议访问的**192.168.1.20/pub**网络位置中——在本例中这些仓库位于本地因为IP地址和PXE服务器地址相同。
同时,菜单**label 3**指定客户端安装应该通过**VNC**从一个远程位置实现这里替换VNC密码为一个健壮的密码如果你在一台没有输入输出的客户端上安装菜单**label 2**指定了作为安装源的一个CentOS 7官方互联网镜像这种情况要求客户端通过DHCP和NAT连接到互联网
**重要**正如你在上述配置中所看到的我们使用了CentOS 7进行演示但是你也可以定义一个 RHEL 7镜像。而下面的整个的说明和配置都只是基于CentOS 7的所以在选发行版时要注意一下。
### 步骤5 添加CentOS 7启动镜像到PXE服务器 ###
**9.** 对于此步骤需要用到CentOS的kernel和initrd文件。要获取这些文件你需要**CentOS 7 DVD ISO**镜像。所以去下载CentOS DVD镜像吧然后把它刻录成光盘放入你的DVD驱动器并挂载镜像到**/mnt**路径,命令见下面。
使用DVD而不是最小化CD镜像的原因在于在后面我们将使用该DVD的内容为**FTP**源创建本地安装器仓库。
# mount -o loop /dev/cdrom /mnt
# ls /mnt
![Mount CentOS DVD](http://www.tecmint.com/wp-content/uploads/2014/10/mount-centos-dvd.jpg)
*挂载CentOS DVD*
如果你的机器没有DVD驱动器你也可以使用**wget**或**curl**工具从[CentOS镜像站][7]下载**CentOS 7 DVD ISO**到本地并挂载。
# wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
# mount -o loop /path/to/centos-dvd.iso /mnt
**10.** 在DVD内容可供使用后创建**centos7**目录并将CentOS 7 的可启动的 kernel和initrd映像文件从DVD挂载位置拷贝到centos7文件夹。
# mkdir /var/lib/tftpboot/centos7
# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
![Copy CentOS Bootable Files](http://www.tecmint.com/wp-content/uploads/2014/10/copy-centos-bootable-files.jpg)
*拷贝CentOS可启动文件*
使用该方法的原因在于,今后你可能会在**/var/lib/tftpboot**路径中创建新的独立的目录并添加其它Linux发行版到PXE菜单中你就不会将整个目录结构弄得一团糟了。
### 步骤6 创建CentOS 7本地镜像安装源 ###
**11.** 虽然你可以通过多种协议设置**安装源镜像**如HTTP、HTTPS或NFS但对于本指南我选择了使用**FTP**协议。因为通过**vsftpd**,你可以很便捷地配置,而且它也很稳定。
接下里安装vsftpd进程然后复制所有DVD挂载目录中的内容到**vsftpd**默认服务器路径下(**/var/ftp/pub**)——这会花费一些时间,这取决于你的系统资源。然后为该路径设置可读权限,命令如下。
# yum install vsftpd
# cp -r /mnt/* /var/ftp/pub/
# chmod -R 755 /var/ftp/pub
![Install Vsftpd Server](http://www.tecmint.com/wp-content/uploads/2014/10/install-vsftpd-in-centos.jpg)
*安装Vsftpd服务器*
![Copy Files to FTP Path](http://www.tecmint.com/wp-content/uploads/2014/10/copy-files-to-ftp-path.jpg)
*拷贝Files到FTP路径*
![Set Permissions on FTP Path](http://www.tecmint.com/wp-content/uploads/2014/10/set-permission-on-ftp-path.jpg)
*设置FTP路径的权限*
### 步骤7 在系统范围内启动并启用进程 ###
**12.** 既然PXE服务器配置已经完成那么就来启动**DNSMASQ**和**VSFTPD**服务器吧。验证它们的状况并在系统上启用,以便让这些服务在每次系统重启后都能随系统启动,命令如下。
# systemctl start dnsmasq
# systemctl status dnsmasq
# systemctl start vsftpd
# systemctl status vsftpd
# systemctl enable dnsmasq
# systemctl enable vsftpd
![Start Dnsmasq Service](http://www.tecmint.com/wp-content/uploads/2014/10/start-dnsmasq.jpg)
*启动Dnsmasq服务*
![Start Vsftpd Service](http://www.tecmint.com/wp-content/uploads/2014/10/start-vsftpd.jpg)
*启动Vsftpd服务*
### 步骤8 打开防火墙并测试FTP安装源 ###
**13.** 要获取需要在防火墙打开的端口列表以便让客户机可访问并从PXE服务器启动请运行**netstat**命令并根据dnsmasq和vsftpd监听列表添加CentOS 7防火墙规则。
# netstat -tulpn
# firewall-cmd --add-service=ftp --permanent ## Port 21
# firewall-cmd --add-service=dns --permanent ## Port 53
# firewall-cmd --add-service=dhcp --permanent ## Port 67
# firewall-cmd --add-port=69/udp --permanent ## Port for TFTP
# firewall-cmd --add-port=4011/udp --permanent ## Port for ProxyDHCP
# firewall-cmd --reload ## Apply rules
![Check Listening Ports](http://www.tecmint.com/wp-content/uploads/2014/10/check-listening-ports.jpg)
*检查监听端口*
![Open Ports in Firewall](http://www.tecmint.com/wp-content/uploads/2014/10/open-ports-on-firewall.jpg)
*在防火墙上开启端口*
**14.** 要测试FTP安装源网络路径请在本地或另外一台计算机上打开浏览器[**lynx**][8]就可以做此事然后输入你架设有FTP服务的PXE服务器的IP地址并在填入的URL后面加上**/pub**网络位置,结果应该和截图中看到的一样。
ftp://192.168.1.20/pub
![Access FTP Files via Browser](http://www.tecmint.com/wp-content/uploads/2014/10/browse-ftp-files.jpg)
*通过浏览器访问FTP文件*
**15.** 要解决PXE服务器最终的配置或其它信息产生的问题请在live模式下诊断命令如下
# tailf /var/log/messages
![Check PXE Logs for Errors](http://www.tecmint.com/wp-content/uploads/2014/10/check-pxe-errors.jpg)
*检查PXE日志错误*
**16.** 最后最终所需的步骤就是卸载CentOS 7 DVD并移除物理介质。
# umount /mnt
### 步骤9 配置客户端从网络启动 ###
**17.** 现在你的客户端可以通过它们的系统BIOS或在**BIOS开机自检**时按指定键来配置网络启动作为**首选启动设备**,具体方法见主板说明手册。
为了选择网络启动在第一次PXE提示符出现时请按下**F8**键进入到PXE安装界面然后敲**回车**键继续进入PXE菜单。
![PXE Network Boot](http://www.tecmint.com/wp-content/uploads/2014/10/pxe-network-boot.jpg)
*PXE网络启动*
![PXE Network OS Boot](http://www.tecmint.com/wp-content/uploads/2014/10/pxe-network-os-boot.jpg)
*PXE网络OS启动*
**18.** 一旦你进入PXE菜单请选择你的CentOS 7安装类型敲**回车**键继续安装过程,就像你使用本地启动介质安装一样。
请记住这一点使用菜单中的变体2需要激活目标客户端上的互联网连接。在下面的屏幕截图中你可以通过VNC看到远程安装的实例。
![PXE Menu](http://www.tecmint.com/wp-content/uploads/2014/10/pxe-menu.jpg)
*PXE菜单*
![Remote Linux Installation via VNC](http://www.tecmint.com/wp-content/uploads/2014/10/os-installation-via-vnc.jpg)
*通过VNC远程安装Linux*
![Remote Installation of CentOS](http://www.tecmint.com/wp-content/uploads/2014/10/remote-centos-installation.jpg)
*远程安装CentOS*
以上是**CentOS 7**上配置最小化**PXE服务器**的所有内容。在我的本系列下一篇文章中我将讨论其它PXE服务器配置过程中的其它问题如怎样使用**Kickstart**文件来配置自动化安装**CentOS 7**以及添加其它Linux发行版到PXE菜单——**Ubuntu Server**和**Debian 7**。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/install-pxe-network-boot-server-in-centos-7/
作者:[Matei Cezar][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/cezarmatei/
[1]:http://www.tecmint.com/centos-7-installation/
[2]:http://www.tecmint.com/redhat-enterprise-linux-7-installation/
[3]:http://linux.cn/article-3977-1.html
[4]:http://www.tecmint.com/remove-unwanted-services-in-centos-7/
[5]:http://www.tecmint.com/install-ntp-server-in-centos/
[6]:http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
[7]:http://isoredirect.centos.org/centos/7/isos/x86_64/
[8]:http://www.tecmint.com/command-line-web-browsers/

View File

@@ -0,0 +1,81 @@
Linux有问必答 - 如何在linux上安装WPS
================================================================================
> **问题**: 我听说一个好东西Kingsoft Office译注就是WPS所以我想在我的Linux上试试。我怎样才能安装Kingsoft Office呢
Kingsoft Office 是一套办公套件支持多个平台包括Windows, Linux, iOS 和 Android。它包含三个组件WriterWPS文字用来文字处理PresentationWPS演示支持幻灯片SpereadsheetsWPS表格是电子表格。其使用免费增值模式其中基础版本是免费使用。比较其他的linux办公套件如LibreOffice、 OpenOffice其最大优势在于Kingsoft Office能最好的兼容微软的Office译注版权问题了解下wps和Office的历史问题可以得到一些结论。因此如果你需要在windows和linux平台间交互Kingsoft office是一个很好的选择。
### CentOS, Fedora 或 RHEL中安装Kingsoft Office ###
在[官方页面][1]下载RPM文件.官方RPM包只支持32位版本linux但是你可以在64位中安装。
需要使用yum命令并用"localinstall"选项来本地安装这个RPM包
$ sudo yum localinstall kingsoft-office-9.1.0.4244-0.1.a12p3.i686.rpm
注意不要使用rpm命令安装。否者你会得到依赖错误而且很难解决
错误: 依赖失败:
libICE.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686
libSM.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686
libX11.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686
libXext.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686
libXrender.so.1 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686
libc.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686
基于Red Hat的发行版有多重库支持。如果你要想安装的RPM包是32位的并有32位库依赖你的系统是64位的一个很好的解决方法就是使用yum来安装。只要RPM在构建时候已经添加所有依赖关系yum就可以自动使用yum库解决依赖关系。
![](https://farm9.staticflickr.com/8626/16040291445_ca62275064_c.jpg)
### Debian, Ubuntu 和 Linux Mint 中安装Kingsoft Office###
在[官方页面][1]下载DEB包。官方RPM包同样只支持32位版本linux但是你可以在64位中安装。
DEB包同样遇到一堆依赖。因此使用[gdebi][3]命令来代替dpkg来自动解决依赖。
$ sudo apt-get install gdebi-core
$ sudo gdebi kingsoft-office_9.1.0.4244~a12p3_i386.deb
### 启动 Kingsoft Office ###
安装完成后你就可以在桌面管理器轻松启动WiterWPS文字, PresentationWPS演示, and SpreadsheetsWPS表格如下图。
Ubuntu Unity中:
![](https://farm9.staticflickr.com/8591/16039583702_632a49779f_z.jpg)
GNOME桌面中:
![](https://farm9.staticflickr.com/8617/16039583622_4e7c1d8545_b.jpg)
不但如此你也可以在命令行中启动Kingsoft Office。
启动WirterWPS文字使用这个命令
$ wps (译注:原文丢失此命令)
![](https://farm8.staticflickr.com/7525/16039583642_7202457899_c.jpg)
启动PresentationWPS演示使用这个命令
$ wpp
![](https://farm8.staticflickr.com/7570/15420632223_4243cc99d9_c.jpg)
启动SpreadsheetsWPS表格使用这个命令
$ et
![](https://farm9.staticflickr.com/8682/15852842558_97edda4afd_c.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/install-kingsoft-office-linux.html
译者:[Vic020/VicYu](http://www.vicyu.net)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://ksosoft.com/product/office-2013-linux.html
[2]:http://ksosoft.com/product/office-2013-linux.html
[3]:http://xmodulo.com/how-to-install-deb-file-with-dependencies.html

View File

@@ -0,0 +1,82 @@
Linux有问必答如何在Linux下重命名多个文件
================================================================================
> **提问**我知道我可以用mv命令重命名文件。但是当我想重命名很多文件怎么办如果为每个文件都这么做将会是很乏味的。有没有办法一次性重命名多个文件
在Linux中当你想要改变一个文件名使用mv命令就好了。然而mv不能使用通配符重命名多个文件。可以用sed、awk或者与[xargs][1]结合使用来处理多个文件的情况。然而这些命令行即繁琐又不友好并且如果不小心的话还很容易出错。你不会想要撤销1000个文件的错误名吧
当你想要重命名多个文件的时候rename 工具或许是最简单、最安全和最强大的命令行工具。这个rename命令实际上是一个Perl脚本它预安装在所有的现在Linux发行版上。
下面是重命名命令的基本语法。
rename [-v -n -f] <pcre> <files>
\<pcre> 是Perl兼容正则表达式它表示的是要重命名的文件和该怎么做。正则表达式的形式是s/old-name/new-name/’。
-v选项会显示文件名改变的细节比如XXX重命名成YYY
-n选项告诉rename命令在不实际改变名称的情况下显示文件将会重命名的情况。这个选项在你想要在不改变文件名的情况下模拟改变文件名的情况下很有用。
-f选项强制覆盖存在的文件。
下面就让我们看下rename命令的几个实际例子。
### 改变文件扩展名 ###
假设你有许多.jpeg的图片文件。你想要把它们的名字改成*.jpg。下面的命令就会将*.jpeg 文件改成 *.jpg。
$ rename 's/\.jpeg$/\.jpg/' *.jpeg
### 大写改成小写,反之亦然 ###
有时你想要改变文件名的大小写,你可以使用下面的命令。
把所有的文件改成小写:
# rename 'y/A-Z/a-z/' *
把所有的文件改成大写:
# rename 'y/a-z/A-Z/' *
![](https://farm9.staticflickr.com/8655/16054304245_bcf9d23b59_b.jpg)
### 更改文件名模式 ###
现在让我们考虑更复杂的包含子模式的正则表达式。在PCRE中子模式包含在圆括号中$符后接上数字(比如$1$2
比如下面的命令会将img_NNNN.jpeg变成dan_NNNN.jpg
# rename -v 's/img_(\d{4})\.jpeg$/dan_$1\.jpg/' *.jpeg
----------
img_5417.jpeg renamed as dan_5417.jpg
img_5418.jpeg renamed as dan_5418.jpg
img_5419.jpeg renamed as dan_5419.jpg
img_5420.jpeg renamed as dan_5420.jpg
img_5421.jpeg renamed as dan_5421.jpg
比如下面的命令会将img\_000NNNN.jpeg变成dan\_NNNN.jpg
# rename -v 's/img_\d{3}(\d{4})\.jpeg$/dan_$1\.jpg/' *jpeg
----------
img_0005417.jpeg renamed as dan_5417.jpg
img_0005418.jpeg renamed as dan_5418.jpg
img_0005419.jpeg renamed as dan_5419.jpg
img_0005420.jpeg renamed as dan_5420.jpg
img_0005421.jpeg renamed as dan_5421.jpg
上面的例子中,子模式‘\d{4}会捕捉4个连续的数字捕捉的四个数字就是$1, 将会用于新的文件名。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/rename-multiple-files-linux.html
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/xargs-command-linux.html

View File

@@ -0,0 +1,47 @@
如何使用 Linux 从 Grooveshark 下载音乐
================================================================================
> 解决办法通常没有那么难
![](http://i1-news.softpedia-static.com/images/news2/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268-2.jpg)
**Grooveshark 对于喜欢音乐的人来说是一个不错的在线平台同时有多种从上面下载音乐的方法。Groovesquid 是众多允许用户从 Grooveshark 上下载音乐的应用之一,并且是支持多平台的。**
只要有在线流媒体服务,就一定有方法将你看过或听过的视频及音乐保存到本地。即使下载接口关闭了,也不是什么大不了的事,因为还有很多种解决方法,无论你用的什么操作系统。比如,网络上就有许多种 YouTube 下载器,同样的道理,从 Grooveshark 上下载音乐也并非难事。
现在得考虑合法性的问题。与许多其他应用一样Groovesquid 并非是完全不合法的。如果有用户使用应用去做一些非法的事情,那责任应归咎于用户。同样的道理也适用于 utorrent 或者 Bittorrent。只要你不触及版权问题那你就可以无所顾忌的使用 Groovesquid 了。
### 快捷高效的 Groovesquid ###
你能够找到的 Groovesquid 的唯一缺点是,它是基于 Java 而编写的,这从来都不是一个好的兆头。虽然为了确保应用的可移植性这样做确实是一个好方法,但这样做的结果导致了其糟糕的界面。确实是非常糟糕的的界面,不过这一点并不会影响到用户的使用体验,特别是这款应用所完成的工作时如此的有用。
有一点需要注意的地方。Groovesquid 是一款免费的应用,但为了将免费保持下去,它会在菜单栏的右侧显示一则广告。这对大多数人来说都应该不是问题,不过最好在打开应用后注意下菜单栏右侧(那不是应用的一部分)。
从易用性的角度来看,这款应用非常简洁。用户可以通过在顶部地址栏里输入链接直接下载单曲,地址栏的位置可以通过其左侧的下拉菜单进行修改。在下拉菜单中,也可以修改为歌曲名称、流行度、专辑名称、播放列表以及艺术家。有些选项向你提供了诸如查看 Grooveshark 上最流行的音乐,或者下载整个播放列表等。
你可以下载 Groovesquid 0.7.0
- [jar][1] 文件大小3.8 MB
- [tar.gz][2] 文件大小549 KB
下载完 Jar 文件后,你所需要做的是将其权限修改为可执行,然后让 Java 来完成剩下的工作。
![](http://i1-news.softpedia-static.com/images/news2/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268-3.jpg)
![](http://i1-news.softpedia-static.com/images/news2/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268-4.jpg)
![](http://i1-news.softpedia-static.com/images/news2/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268-5.jpg)
![](http://i1-news.softpedia-static.com/images/news2/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268-6.jpg)
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/How-to-Download-Music-from-Grooveshark-with-a-Linux-OS-468268.shtml
作者:[Silviu Stahie][a]
译者:[Stevearzh](https://github.com/Stevearzh)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://news.softpedia.com/editors/browse/silviu-stahie
[1]:https://github.com/groovesquid/groovesquid/releases/download/v0.7.0/Groovesquid.jar
[2]:https://github.com/groovesquid/groovesquid/archive/v0.7.0.tar.gz

View File

@@ -0,0 +1,125 @@
使用 APT-mirror 四步配置 Ubuntu 本地软件仓库
================================================================================
今天,我们将向你展示如何在你的 Ubuntu 个人电脑或 Ubuntu 服务器中,直接通过 Ubuntu 官方软件仓库来配置本地软件仓库。在你的电脑中创建一个本地软件仓库有着许多的好处。假如你有许多电脑需要安装软件 、安全升级和修复补丁,那么配置一个本地软件仓库是一个做这些事情的高效方法。因为,所有需要安装的软件包都可以通过快速的局域网连接从你的本地服务器中下载,这样可以节省你的网络带宽,降低互联网接入的年度开支 ...
你可以使用多种工具在你的本地个人电脑或服务器中配置一个 Ubuntu 的本地软件仓库,但在本教程中,我们将为你介绍 APT-Mirror。这里我们将把默认的镜像包镜像到我们本地的服务器或个人电脑中并且在你的本地或外置硬盘中我们至少需要 **120 GB** 或更多的可用空间才行。 我们可以通过配置一个 **HTTP****FTP** 服务器来与本地系统客户端共享这个软件仓库。
我们需要安装 Apache 网络服务器和 APT-Mirror 来使得我们的工作得以开始。下面是配置一个可工作的本地软件仓库的步骤:
### 1. 安装需要的软件包 ###
我们需要从 Ubuntu 的公共软件包仓库中取得所有的软件包,然后在我们本地的 Ubuntu 服务器硬盘中保存它们。
首先我们安装一个Web 服务器来承载我们的本地软件仓库。这里我们将安装 Apache Web 服务器,但你可以安装任何你中意的 Web 服务器。对于 http 协议Web 服务器是必须的。假如你需要配置 ftp 协议 及 rsync 协议,你还可以再分别额外安装 FTP 服务器,如 proftpd, vsftpd 等等 和 Rsync 。
$ sudo apt-get install apache2
然后我们需要安装 apt-mirror:
$ sudo apt-get install apt-mirror
![apt-mirror-installation](http://blog.linoxide.com/wp-content/uploads/2014/12/apt-mirror-install.png)
**注: 正如我先前提到的,我们需要至少 120 GB 的可用空间来使得所有的软件包被镜像或下载。**
### 2. 配置 APT-Mirror ###
现在,在你的硬盘上创建一个目录来保存所有的软件包。例如,我们创建一个名为 `/linoxide`的目录,我们将在这个目录中保存所有的软件包:
$ sudo mkdir /linoxide
![repo-dir](http://blog.linoxide.com/wp-content/uploads/2014/12/mkdir-linoxide.png)
现在,打开文件 **/etc/apt/mirror.list** :
$ sudo nano /etc/apt/mirror.list
![apt-mirror-edit](http://blog.linoxide.com/wp-content/uploads/2014/12/edit-mirror-list-300x7.png)
复制下面的命令行配置到 `mirror.list`文件中并按照你的需求进行修改:
############# config ##################
#
set base_path /linoxide
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu
![mirror-list-config](http://blog.linoxide.com/wp-content/uploads/2014/12/mirror-list-config.png)
**注: 你可以将上面的官方镜像服务器网址更改为离你最近的服务器的网址,可以通过访问 [Ubuntu Mirror Server][1]来找到这些服务器地址。假如你并不太在意镜像完成的时间,你可以沿用默认的官方镜像服务器网址。**
这里,我们将要镜像最新和最大的 Ubuntu LTS 发行版 --- 即 Ubuntu 14.04 LTS (Trusty Tahr) --- 的软件包仓库,所以在上面的配置中发行版本号为 trusty 。假如我们需要镜像 Saucy 或其他的 Ubuntu 发行版本,请修改上面的 trusy 为相应的代号。
现在,我们必须运行 apt-mirror 来下载或镜像官方仓库中的所有软件包。
sudo apt-mirror
从 Ubuntu 服务器中下载所有的软件包所花费的时间取决于你和镜像服务器之间的网络连接速率和性能。这里我中断了下载,因为我已经下载好了 ...
![downloading-packages](http://blog.linoxide.com/wp-content/uploads/2014/12/downloading-index.png)
### 3.配置网络服务器 ###
为了使得其他的电脑能够访问这个软件仓库你需要一个Web服务器。你也可以通过 ftp 来完成这件事但我选择使用一个Web服务器因为在上面的步骤 1 中我提及到使用Web服务器。因此我们现在要对 Apache 服务器进行配置:
我们将为我们本地的软件仓库目录 建立一个到 Apache 托管目录 --- 即 `/var/www/ubuntu` --- 的符号链接。
$ sudo ln -s /linoxide /var/www/ubuntu
$ sudo service apache2 start
![symlinks-apache2](http://blog.linoxide.com/wp-content/uploads/2014/12/symblink-apache2.png)
上面的命令将允许我们从本地主机(localhost) --- 即 http://127.0.0.1(默认情况下) --- 浏览我们的镜像软件仓库。
### 4. 配置客户端 ###
最后,我们需要在其他的电脑中添加软件源,来使得它们可以从我们的电脑中取得软件包或软件仓库。为达到此目的,我们需要编辑 `/etc/apt/sources.list` 文件并添加下面的命令:
$ sudo nano /etc/apt/sources.list
添加下面的一行到` /etc/apt/sources.list`中并保存。
deb http://192.168.0.100/ubuntu/ trusty main restricted universe
**注: 这里的 192.168.0.100 是我们的服务器电脑的局域网 IP 地址,你需要替换为你的服务器电脑的局域网 IP 地址**
$ sudo apt-get update
最终,我们完成了任务。现在,你可以使用`sudo apt-get install packagename` 命令来从你的本地 Ubuntu 软件仓库中安装所需的软件包,这将会是高速的且消耗很少的带宽。
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/setup-local-repository-ubuntu/
作者:[Arun Pyasi][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:https://launchpad.net/ubuntu/+archivemirrors

View File

@@ -0,0 +1,84 @@
Btrfs文件系统在Linux中的创建及其特性
================================================================================
**Btrfs**B-tree file systemB-tree文件系统是针对Linux开发的一个新的CoWcopy-on-write写时复制文件系统。它最初是由[甲骨文公司][1]在2007年着手开始开发的并在2014年8月正式发布其稳定版。开发Btrfs的目的在于解决Linux文件系统中缺少池、快照、校验和以及集成的跨多设备访问等问题目标在于实现Linux的规模化存储。规模化不仅仅是指解决存储问题也意味着通过简洁的界面提供对存储的管控和管理能力让大家能看到已使用的内容并使它更可靠。
你应该注意到Btrfs才刚刚发布稳定版所以强烈推荐你使用最新版的内核以避免可能出现的问题和漏洞。
### Btrfs特性 ###
新文件系统的最重要的特性有:
- 基于扩展的文件存储
- 文件大小上限16EiB
- 小文件和索引目录的高效空间利用
- 动态索引节点分配
- 支持快照可写和快照只读
- 子卷(分离内部文件系统的根)
- 支持数据和元数据的校验和
- 压缩 gzip和LZO
- 整合的多设备支持
- 支持文件条块化、文件镜像和文件条块化+镜像三种部署方案
- 高效的增量备份
- 后台消除进程支持查找和修复冗余副本上的文件错误
- 支持在线文件系统碎片整理和离线文件系统检查
- Btrfs文件系统对RAID 5/RAID 6加强支持[在linux 3.19中添加了许多漏洞修补][2]
你可以在此关于本主题的维基文章中[阅读关于新特性的内容][3]。
### 转换到Btrfs ###
**警告:在尝试转换文件系统前,请务必备份数据!虽然此操作很稳定,也很安全,但它仍然可能导致数据丢失,而防止此情况发生的唯一途径就是进行数据备份。**
将现存的ext4文件系统转换到btrfs是相当简单而易懂的。你首先需要使用fsck来检查你现存分区上是否存在错误然后使用btrfs-convert命令进行转换。如果你想要对/dev/sda3分区进行转换你可以进行以下操作
# fsck.ext4 /dev/sda4
# btrfs-convert /dev/sda4
然后你就可以使用mount命令将它挂载到你想要的任何位置。
![btrfs-convert](http://blog.linoxide.com/wp-content/uploads/2014/11/btrfs-convert.jpg)
### 转换根分区 ###
如果你想要对你系统上的根分区进行转换你首先需要使用Live CD启动。对于Ubuntu你可以使用Ubuntu安装盘来完成此操作在启动后第一个屏幕选择“尝试Ubuntu”。对于其它系统你同样可以使用Live CD镜像操作类似。
在启动后,打开终端,使用下面的命令来转换文件系统。
# fsck.ext4 /dev/sda1
# btrfs-convert /dev/sda1
接下来chroot到文件系统这样你就可以修改fstab并重新安装grub了。
# mount /dev/sda1 /mnt
# for i in dev dev/pts proc sys ; do mount --bind /$i /mnt/$i ; done
# chroot /mnt
# blkid | grep sda1
![btrfs-root-convert](http://blog.linoxide.com/wp-content/uploads/2014/11/btrfs-root-convert.jpg)
现在来编辑fstab并根据blkid输出的结果来修改当前“/”文件系统的UUID并将它的文件系统类型修改为btrfs修改后的行如下
UUID=8e7e80aa-337e-4179-966d-d60128bd3714 / btrfs defaults 0 1
然后重新安装Grub
# grub-install /dev/sda
# update-grub
现在,你可以把启动光盘丢到一边了,重启机器后,你就可以使用新的文件系统了。
--------------------------------------------------------------------------------
via: http://linoxide.com/file-system/create-btrfs-features/
作者:[Adrian Dinu][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/adriand/
[1]:http://www.oracle.com/index.html
[2]:http://lkml.iu.edu/hypermail/linux/kernel/1412.1/03583.html
[3]:https://btrfs.wiki.kernel.org/index.php/Main_Page#Features

View File

@@ -0,0 +1,213 @@
Auditd - Linux 服务器安全审计工具
================================================================================
首先Linux中国祝贺读者 **2015羊年春节快乐万事如意** 。下面开始这个新年版审计工具的介绍。
安全防护是首先要考虑的问题。为了避免别人盗取我们的数据,我们需要时刻关注它。安全防护包括很多东西,审计是其中之一。
我们知道Linux系统上有一个叫 **auditd** 的审计工具。这个工具在大多数Linux操作系统中是默认安装的。那么auditd 是什么?如何使用呢?下面我们开始介绍。
### 什么是审计? ###
auditd或 auditd 守护进程是Linux审计系统中用户空间的一个组件其负责将审计记录写入磁盘。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/what_is_auditd.png)
### 安装 auditd ###
Ubuntu系统中我们可以使用 [wajig][1] 工具或者 **apt-get 工具** 安装auditd。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/install_auditd.png)
按照下面的说明安装auditd安装完毕后将自动安装以下auditd和相关的工具
- **auditctl :** 即时控制审计守护进程的行为的工具,比如如添加规则等等。
- **/etc/audit/audit.rules :** 记录审计规则的文件。
- **aureport :** 查看和生成审计报告的工具。
- **ausearch :** 查找审计事件的工具
- **auditspd :** 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
- **autrace :** 一个用于跟踪进程的命令。
- **/etc/audit/auditd.conf :** auditd工具的配置文件。
首次安装 **auditd** 后, 审计规则是空的。
可以使用以下命令查看:
$ sudo auditctl -l
![](http://blog.linoxide.com/wp-content/uploads/2014/12/auditctl_no_rules.png)
以下我们介绍如何给auditd添加审计规则。
### 如何使用auditd ###
#### Audit 文件和目录访问审计 ####
我们使用审计工具的一个基本的需求是监控文件和目录的更改。使用auditd工具我们可通过如下命令来配置(注意以下命令需要root权限)。
**文件审计**
$ sudo auditctl -w /etc/passwd -p rwxa
![](http://blog.linoxide.com/wp-content/uploads/2014/12/auditctl_w_etc_passwd.png)
**选项 :**
- **-w path :** 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd
- **-p :** 指定触发审计的文件/目录的访问权限
- **rwxa ** 指定的触发条件r 读取权限w 写入权限x 执行权限a 属性attr
#### 目录审计 ####
使用类似的命令来对目录进行审计,如下:
$ sudo auditctl -w /production/
![](http://blog.linoxide.com/wp-content/uploads/2014/12/auditctl_w_production.png)
以上命令将监控对 **/production 目录** 的所有访问。
现在,运行 **auditctl -l** 命令即可查看所有已配置的规则。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/auditctl_rules.png)
下面开始介绍审计日志。
### 查看审计日志 ###
添加规则后,我们可以查看 auditd 的日志。使用 **ausearch** 工具可以查看auditd日志。
我们已经添加规则监控 /etc/passwd 文件。现在可以使用 **ausearch** 工具的以下命令来查看审计日志了。
$ sudo ausearch -f /etc/passwd
- **-f** 设定ausearch 调出 /etc/passwd文件的审计内容
下面是输出
> **time**->Mon Dec 22 09:39:16 2014
> type=PATH msg=audit(1419215956.471:194): item=0 **name="/etc/passwd"** inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
> type=CWD msg=audit(1419215956.471:194): **cwd="/home/pungki"**
> type=SYSCALL msg=audit(1419215956.471:194): arch=40000003 **syscall=5** success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231 **auid=4294967295 uid=1000 gid=1000** euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295 **comm="sudo" exe="/usr/bin/sudo"** key=(null)
下面开始解读输出结果。
- **time :** 审计时间。
- **name :** 审计对象
- **cwd :** 当前路径
- **syscall :** 相关的系统调用
- **auid :** 审计用户ID
- **uid 和 gid :** 访问文件的用户ID和用户组ID
- **comm :** 用户访问文件的命令
- **exe :** 上面命令的可执行文件路径
以上审计日志显示文件未被改动。
以下我们将要添加一个用户看看auditd如何记录文件 /etc/passwd的改动的。
> **time->**Mon Dec 22 11:25:23 2014
> type=PATH msg=audit(1419222323.628:510): item=1 **name="/etc/passwd.lock"** inode=143992 dev=08:01 mode=0100600 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
> type=PATH msg=audit(1419222323.628:510): item=0 **name="/etc/"** inode=131073 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
> type=CWD msg=audit(1419222323.628:510): **cwd="/root"**
> type=SYSCALL msg=audit(1419222323.628:510): arch=40000003 **syscall=10** success=yes exit=0 a0=bfc0ceec a1=0 a2=bfc0ceec a3=897764c items=2 ppid=2978 pid=2994 **auid=4294967295 uid=0 gid=0** euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 **comm="chfn" exe="/usr/bin/chfn"** key=(null)
我们可以看到,在指定的时间,**/etc/passwd ** 被root用户(uid =0, gid=0)在/root目录下修改。/etc/passwd 文件是使用**/usr/bin/chfn** 访问的。
键入 **man chfn** 可以查看有关chfn更多的信息。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/chfn.png)
下面我们看另外一个例子。
我们已经配置auditd去监控目录 /production/ 了。这是个新目录。所以我们用ausearch去查看日志的时候会发现什么都没有。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/ausearch_production_empty.png)
下一步使用root账户的ls命令列出 /production/ 下的文件信息。再次使用ausearch后将会显示一些信息。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/ausearch_production_ls.png)
> **time->**Mon Dec 22 14:18:28 2014
> type=PATH msg=audit(1419232708.344:527): item=0 **name="/production/"** inode=797104 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
> type=CWD msg=audit(1419232708.344:527): cwd="/root"
> type=SYSCALL msg=audit(1419232708.344:527): arch=40000003 syscall=295 success=yes exit=3 a0=ffffff9c a1=95761e8 a2=98800 a3=0 items=1 ppid=3033 pid=3444 **auid=4294967295 uid=0 gid=0** euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 **comm="ls" exe="/bin/ls"** key=(null)
和上一个一样可以得出root账户使用ls命令访问了/production/目录ls命令的文件目录是 /bin/ls
### 查看审计报告 ###
一旦定义审计规则后它会自动运行。过一段时间后我们可以看看auditd是如何帮我们跟踪审计的。
Auditd提供了另一个工具叫 **aureport** 。从名字上可以猜到, **aureport** 是使用系统审计日志生成简要报告的工具。
我们已经配置auditd去跟踪/etc/passwd文件。auditd参数设置后一段时间后audit.log 文件就创建出来了。
生成审计报告我们可以使用aureport工具。不带参数运行的话可以生成审计活动的概述。
$ sudo aureport
![](http://blog.linoxide.com/wp-content/uploads/2014/12/aureport_2.png)
如上,报告包含了大多数重要区域的信息。
上图可以看出有 **3 次授权失败**。 使用aureport我们可以深入查看这些信息。
使用以下命令查看授权失败的详细信息:
$ sudo aureport -au
![](http://blog.linoxide.com/wp-content/uploads/2014/12/aureport_authentication.png)
从上图可以看出,由两个用户在特定的时间授权失败。
如果我们想看所有账户修改相关的事件,可以使用-m参数。
$ sudo aureport -m
![](http://blog.linoxide.com/wp-content/uploads/2014/12/aureport_m.png)
### Auditd 配置文件 ###
我们已经添加如下规则:
- $ sudo auditctl -w /etc/passwd -p rwxa
- $ sudo auditctl -w /production/
现在,如果确信这些规则可以正常工作,我们可以将其添加到**/etc/audit/audit.rules**中使得规则永久有效。以下介绍如何将他们添加到/etc/audit/audit.rules中去。
![](http://blog.linoxide.com/wp-content/uploads/2014/12/audit_rules_file.png)
**最后别忘了重启auditd守护程序**
# /etc/init.d/auditd restart
# service auditd restart
![](http://blog.linoxide.com/wp-content/uploads/2014/12/audit_restart.png)
### 总结 ###
Auditd是Linux上的一个审计工具。你可以阅读auidtd文档获取更多使用auditd和工具的细节。例如输入 **man auditd** 去看auditd的详细说明或者键入 **man ausearch** 去看有关 ausearch 工具的详细说明。
**请谨慎创建规则**。太多规则会使得日志文件急剧增大!
--------------------------------------------------------------------------------
via: http://linoxide.com/how-tos/auditd-tool-security-auditing/
作者:[Pungki Arianto][a]
译者:[shipsw](https://github.com/shipsw)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/pungki/
[1]:http://linoxide.com/tools/wajig-package-management-debian/

View File

@@ -0,0 +1,111 @@
在 CentOS 7中安装Websvn
================================================================================
**WebSVN**为你的Subversion提供了一个视图其设计用来对应Subversion的各种功能。你可以检查任何文件或目录的日志以及查看任何指定版本中所修改、添加或删除过的文件列表。你也可以检查同一文件两个版本的不同之处以便确切地查看某个特定的修订版本的变化。
### 特性 ###
WebSVN提供了以下这些特性
- 易于使用的界面;
- 可自定义的模板系统;
- 彩色文件列表;
- 过错视图;
- 日志信息搜索;
- 支持RSS订阅
### 安装 ###
我按以下链接来将Subversion安装到CentOS 7。
- [CentOS 7上如何安装Subversion][1]
**1 下载websvn到/var/www/html。**
cd /var/www/html
wget http://websvn.tigris.org/files/documents/1380/49057/websvn-2.3.3.zip
**2 解压zip包。**
unzip websvn-2.3.3.zip
mv websvn-2.3.3 websvn
**3 安装php到你的系统。**
yum install php
**4 编辑web svn配置。**
cd /var/www/html/websvn/include
cp distconfig.php config.php
vi config.php
----------
// Configure these lines if your commands aren't on your path.
//
$config->setSVNCommandPath('/usr/bin'); // e.g. c:\\program files\\subversion\\bin
$config->setDiffPath('/usr/bin');
----------
// For syntax colouring, if option enabled...
$config->setEnscriptPath('/usr/bin');
$config->setSedPath('/bin');
----------
// For delivered tarballs, if option enabled...
$config->setTarPath('/bin');
----------
// For delivered GZIP'd files and tarballs, if option enabled...
$config->setGZipPath('/bin');
----------
//
$config->parentPath('/svn/');
----------
$extEnscript[".pl"] = "perl";
$extEnscript[".py"] = "python";
$extEnscript[".sql"] = "sql";
$extEnscript[".java"] = "java";
$extEnscript[".html"] = "html";
$extEnscript[".xml"] = "html";
$extEnscript[".thtml"] = "html";
$extEnscript[".tpl"] = "html";
$extEnscript[".sh"] = "bash";
~
保存并退出。
**6 重新加载apache并启动websvn链接http://ip/websvn。**
![websvn](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/websvn.png)
一切搞定。
--------------------------------------------------------------------------------
via: http://www.unixmen.com/install-websvn-centos-7/
作者:[M.el Khamlichi][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/pirat9/
[1]:http://www.unixmen.com/install-subversion-centos-7/
[2]:
[3]:
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
[11]:
[12]:
[13]:
[14]:
[15]:
[16]:
[17]:
[18]:
[19]:
[20]:

View File

@@ -0,0 +1,50 @@
如何在 Ubuntu 14.04 和 Linux Mint 17 中安装 Kodi14XBMC
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Kodi_Xmas.jpg)
[Kodi][1]原名就是大名鼎鼎的XBMC发布了开发代号为Helix的[最新版本14][2]。感谢官方XMBC提供的PPA现在可以很简单地在Ubuntu14.04中安装了。
有些人可能还不了解Kodi它是一个媒体中心软件支持所有平台如Windows、Linux、 Mac, Android等。此软件拥有全屏的媒体中心可以管理所有音乐和视频不单支持本地文件还支持网络播放如Tube、[Netflix][3]、 Hulu, Amazon Prime和其他流媒体服务商。
### 在 Ubuntu 14.04 和 Linux Mint 17 中安装 XBMC 14 Kodi Helix ###
再次感谢官方的PPA让我们可以轻松安装Kodi 14。支持Ubuntu 14.04、Ubuntu 12.04、Linux Mint 17、Pinguy OS 14.04、Deepin 2014、LXLE 14.04、Linux Lite 2.0, Elementary OS 以及其他基于 Ubuntu 的 Linux 发行版。
打开终端Ctrl+Alt+T然后使用下列命令。
sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install kodi
需要下载大约100MB在我看来这不是很大。若需安装解码插件使用下列命令
sudo apt-get install kodi-audioencoder-* kodi-pvr-*
#### 从 Ubuntu 中移除 Kodi 14 ####
从系统中移除 Kodi 14使用下列命令
sudo apt-get remove kodi
同样也应该移除PPA软件源
sudo add-apt-repository --remove ppa:team-xbmc/ppa
我希望这篇简单的文章可以帮助到你在Ubuntu、Linux Mint 和其他 Linux 版本中轻松安装 Kodi 14。你是怎么发现 Kodi 14 Helix 的?
你有没有使用其他的媒体中心来作为 XBMC 的替代?可以在下面的评论区分享你的观点。
--------------------------------------------------------------------------------
via: http://itsfoss.com/install-kodi-14-xbmc-in-ubuntu-14-04-linux-mint-17/
作者:[Abhishek][a]
译者:[Vic020/VicYu](http://www.vicyu.net)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/Abhishek/
[1]:http://kodi.tv/
[2]:http://kodi.tv/kodi-14-0-helix-unwinds/
[3]:http://itsfoss.com/watch-netflix-in-ubuntu-14-04/

View File

@@ -0,0 +1,47 @@
如何在 Ubuntu 14.04 中安装 Winusb
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/WinUSB_Ubuntu_1404.jpeg)
[WinUSB][1]是一款即简单又有用的工具,可以让你从 Windows ISO 镜像或者 DVD 中创建 USB 安装盘LCTT译注支持将 Windows Vista/7/8/PE 制作成 USB 安装盘)。它支持 GUI 和命令行,你可以根据你的喜好决定使用哪种。
在本文中我们会展示**如何在 Ubuntu 14.04、14.10 和 Linux Mint 17 中安装 WinUSB**。
### 在 Ubuntu 14.04、14.10 和 Linux Mint 17 中安装 WinUSB ###
在 Ubuntu 13.10 之前, WinUSB 一直都在积极开发,且在官方 PPA 中可以找到。但这个 PPA 还没有为 Ubuntu 14.04 和 14.10 更新,不过其二进制文件仍旧可在更新版本的 Ubuntu 和 Linux Mint 中运行。基于[你使用的系统是32位还是64位][2],使用下面的命令来下载二进制文件:
打开终端32位的系统下使用下面的命令
wget https://launchpad.net/~colingille/+archive/freshlight/+files/winusb_1.0.11+saucy1_i386.deb
对于64位的系统使用下面的命令
wget https://launchpad.net/~colingille/+archive/freshlight/+files/winusb_1.0.11+saucy1_amd64.deb
当你下载了正确的二进制包你可以用下面的命令安装WinUSB
sudo dpkg -i winusb*
不要担心在你安装WinUSB时看到的错误。使用这条命令修复依赖错误
sudo apt-get -f install
之后,你就可以在 Unity Dash 中查找 WinUSB 并且用它在 Ubuntu 14.04 中创建 Windows 的 live USB 了。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/WinUSB_Ubuntu.png)
我希望这篇文章能够帮到你**在 Ubuntu 14.04、14.10 和 Linux Mint 17 中安装 WinUSB**。
--------------------------------------------------------------------------------
via: http://itsfoss.com/install-winusb-in-ubuntu-14-04/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/Abhishek/
[1]:http://en.congelli.eu/prog_info_winusb.html
[2]:http://itsfoss.com/how-to-know-ubuntu-unity-version/

View File

@@ -0,0 +1,189 @@
apt-get 和 apt-cache 命令实例展示
================================================================================
apt-get和apt-cache是**Ubuntu Linux**中的命令行下的**包管理**工具。 apt-get的GUI版本是Synaptic包管理器。本篇中我们会展示apt-get和apt-cache命令的15个不同例子。
### 示例1 列出所有可用包 ###
linuxtechi@localhost:~$ apt-cache pkgnames
account-plugin-yahoojp
ceph-fuse
dvd+rw-tools
e3
gnome-commander-data
grub-gfxpayload-lists
gweled
.......................................
### 示例2 用关键字搜索包 ###
这个命令在你不确定包名时很有用只要在apt-cacheLCTT 译注这里原文是apt-get应为笔误后面输入与包相关的关键字即可。
linuxtechi@localhost:~$ apt-cache search "web server"
apache2 - Apache HTTP Server
apache2-bin - Apache HTTP Server (binary files and modules)
apache2-data - Apache HTTP Server (common files)
apache2-dbg - Apache debugging symbols
apache2-dev - Apache HTTP Server (development headers)
apache2-doc - Apache HTTP Server (on-site documentation)
apache2-utils - Apache HTTP Server (utility programs for web servers)
......................................................................
**注意** 如果你安装了“**apt-file**”包,我们就可以像下面那样用配置文件搜索包。
linuxtechi@localhost:~$ apt-file search nagios.cfg
ganglia-nagios-bridge: /usr/share/doc/ganglia-nagios-bridge/nagios.cfg
nagios3-common: /etc/nagios3/nagios.cfg
nagios3-common: /usr/share/doc/nagios3-common/examples/nagios.cfg.gz
pnp4nagios-bin: /etc/pnp4nagios/nagios.cfg
pnp4nagios-bin: /usr/share/doc/pnp4nagios/examples/nagios.cfg
### 示例3 显示特定包的基本信息 ###
linuxtechi@localhost:~$ apt-cache show postfix
Package: postfix
Priority: optional
Section: mail
Installed-Size: 3524
Maintainer: LaMont Jones <lamont@debian.org>
Architecture: amd64
Version: 2.11.1-1
Replaces: mail-transport-agent
Provides: default-mta, mail-transport-agent
.....................................................
### 示例4 列出包的依赖 ###
linuxtechi@localhost:~$ apt-cache depends postfix
postfix
Depends: libc6
Depends: libdb5.3
Depends: libsasl2-2
Depends: libsqlite3-0
Depends: libssl1.0.0
|Depends: debconf
Depends: <debconf-2.0>
cdebconf
debconf
Depends: netbase
Depends: adduser
Depends: dpkg
............................................
### 示例5 使用apt-cache显示缓存统计 ###
linuxtechi@localhost:~$ apt-cache stats
Total package names: 60877 (1,218 k)
Total package structures: 102824 (5,758 k)
Normal packages: 71285
Pure virtual packages: 1102
Single virtual packages: 9151
Mixed virtual packages: 1827
Missing: 19459
Total distinct versions: 74913 (5,394 k)
Total distinct descriptions: 93792 (2,251 k)
Total dependencies: 573443 (16.1 M)
Total ver/file relations: 78007 (1,872 k)
Total Desc/File relations: 93792 (2,251 k)
Total Provides mappings: 16583 (332 k)
Total globbed strings: 171 (2,263 )
Total dependency version space: 2,665 k
Total slack space: 37.3 k
Total space accounted for: 29.5 M
### 示例6 使用 “apt-get update” 更新仓库 ###
使用命令“apt-get update”, 我们可以重新从源仓库中同步文件索引。包的索引从“/etc/apt/sources.list”中检索。
linuxtechi@localhost:~$ sudo apt-get update
Ign http://extras.ubuntu.com utopic InRelease
Hit http://extras.ubuntu.com utopic Release.gpg
Hit http://extras.ubuntu.com utopic Release
Hit http://extras.ubuntu.com utopic/main Sources
Hit http://extras.ubuntu.com utopic/main amd64 Packages
Hit http://extras.ubuntu.com utopic/main i386 Packages
Ign http://in.archive.ubuntu.com utopic InRelease
Ign http://in.archive.ubuntu.com utopic-updates InRelease
Ign http://in.archive.ubuntu.com utopic-backports InRelease
................................................................
### 示例7 使用apt-get安装包 ###
linuxtechi@localhost:~$ sudo apt-get install icinga
上面的命令会安装叫“icinga”的包。
### 示例8 升级所有已安装的包 ###
linuxtechi@localhost:~$ sudo apt-get upgrade
### 示例9 更新特定的包 ###
在apt-get命令中的“install”选项后面接上“-only-upgrade”用来更新一个特定的包如下所示
linuxtechi@localhost:~$ sudo apt-get install filezilla --only-upgrade
### 示例10 使用apt-get卸载包 ###
linuxtechi@localhost:~$ sudo apt-get remove skype
上面的命令只会删除skype包如果你想要删除它的配置文件在apt-get命令中使用“purge”选项。如下所示
linuxtechi@localhost:~$ sudo apt-get purge skype
我们可以结合使用上面的两个命令:
linuxtechi@localhost:~$ sudo apt-get remove --purge skype
### 示例11 在当前的目录中下载包 ###
linuxtechi@localhost:~$ sudo apt-get download icinga
Get:1 http://in.archive.ubuntu.com/ubuntu/ utopic/universe icinga amd64 1.11.6-1build1 [1,474 B]
Fetched 1,474 B in 1s (1,363 B/s)
上面的目录会把icinga包下载到你的当前工作目录。
### 示例12 清理本地包占用的磁盘空间 ###
linuxtechi@localhost:~$ sudo apt-get clean
上面的命令会清空apt-get所下载的包占用的磁盘空间。
我们也可以使用“**autoclean**”选项来代替“**clean**”两者之间主要的区别是autoclean清理不再使用且没用的下载。
linuxtechi@localhost:~$ sudo apt-get autoclean
Reading package lists... Done
Building dependency tree
Reading state information... Done
### 示例13 使用“autoremove”删除包 ###
当在apt-get命令中使用“autoremove”时它会删除为了满足依赖而安装且现在没用的包。
linuxtechi@localhost:~$ sudo apt-get autoremove icinga
### 示例14 显示包的更新日志 ###
linuxtechi@localhost:~$ sudo apt-get changelog apache2
Get:1 Changelog for apache2 (http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.4.10-1ubuntu1/changelog) [195 kB]
Fetched 195 kB in 3s (60.9 kB/s)
上面的命令会下载apache2的更新日志并在你屏幕上分页显示。
### 示例15 使用 “check” 选项显示损坏的依赖关系 ###
linuxtechi@localhost:~$ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
--------------------------------------------------------------------------------
via: http://www.linuxtechi.com/ubuntu-apt-get-apt-cache-commands-examples/
作者:[Pradeep Kumar][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.linuxtechi.com/author/pradeep/

View File

@@ -0,0 +1,76 @@
删除重复文件的神器dupeGuru
================================================================================
最近,我需要清理我父亲的文件和文件夹。有一个难题是,里面存在很多不正确的名字的重复文件。有移动硬盘的备份,同时还为同一个文件编辑了多个版本,甚至改变的目录结构,同一个文件被复制了好几次,名字改变,位置改变等,这些文件挤满了磁盘空间。追踪每一个文件成了一个最大的问题。万幸的是,有一个小巧的软件可以帮助你省下很多时间来找到删除你系统中重复的文件:[dupeGuru][1]。它用Python写成这个去重软件几个小时前切换到了GPLv3许可证。因此是时候用它来清理你的文件了
### dupeGuru的安装 ###
在Ubuntu上 你可以加入如下硬编码的软件PPA
$ sudo apt-add-repository ppa:hsoft/ppa
$ sudo apt-get update
接着用下面的命令安装:
$ sudo apt-get install dupeguru-se
在ArchLinux中这个包在[AUR][2]中。
如果你想自己编译,源码在[GitHub][3]上。
### dupeGuru的基本使用 ###
DupeGuru的构想是既快又安全。这意味着程序不会在你的系统上疯狂地运行。它很少会删除你不想要删除的文件。然而既然在讨论文件删除保持谨慎和小心总是好的备份总是需要的。
你看完注意事项后你可以用下面的命令运行duprGuru了
$ dupeguru_se
你应该看到要你选择文件夹的欢迎界面,在这里加入你你想要扫描的重复文件夹。
![](https://farm9.staticflickr.com/8596/16199976251_f78b042fba.jpg)
一旦你选择完文件夹并启动扫描后dupeFuru会以列表的形式显示重复文件的组
![](https://farm9.staticflickr.com/8600/16016041367_5ab2834efb_z.jpg)
注意的是默认上dupeGuru基于文件的内容匹配而不是他们的名字。为了防止意外地删除了重要的文件匹配列列出了其使用的匹配算法。在这里你可以选择你想要删除的匹配文件并按下“Action” 按钮来看到可用的操作。
![](https://farm8.staticflickr.com/7516/16199976361_c8f919b06e_b.jpg)
可用的选项相当广泛。简而言之,你可以删除重复、移动到另外的位置、忽略它们、打开它们、重命名它们甚至用自定义命令运行它们。如果你希望删除重复文件,你可能会像我一样非常意外竟然有这么多种删除方式。
![](https://farm8.staticflickr.com/7503/16014366568_54f70e3140.jpg)
你不仅可以将删除的文件移到垃圾箱或者永久删除,还可以选择留下指向原文件的链接(软链接或者硬链接)。也就是说,重复文件将会删除文件存储,但是会保留下一个指向原文件的链接。这将会省下大量的磁盘空间。如果你将这些文件导入到工作空间或者它们有一些依赖时很有用。
还有一个奇特的选项你可以用HTML或者CSV文件导出结果。我不确定你会不会需要这么做但是我假设你想追踪重复文件而不是想让dupeGuru处理它们时会有用。
最后但并不是最不重要的是,偏好菜单可以让你按照你的想法来操作去重这件事。
![](https://farm8.staticflickr.com/7493/16015755749_a9f343b943_z.jpg)
这里你可以选择扫描的标准基于内容还是基于名字并且有一个阈值来控制结果的数量。这里同样可以定义自定义在执行中可以选择的命令。混在其他那些小的选项中要注意的是dupeGuru默认忽略小于10KB的文件。
要了解更多的信息,我建议你到[官方网站][4]看下,这里有很多文档、论坛支持和其他好东西。
总结一下dupeGuru是我无论何时准备备份或者释放空间时所想到的软件。我发现这对高级用户而言也足够强大了对新人而言也很直观。锦上添花的是dupeGuru是跨平台的这意味着你可以在Mac或者在Windows PC上都可以使用。如果你有特定的需求想要清理音乐或者图片。这里有两个变种[dupeguru-me][5]和 [dupeguru-pe][6] 相应地可以清理音频和图片文件。与常规版本的不同是它不仅比较文件格式还比较特定的媒体数据像质量和码率。
你觉得dupeGuru怎么样你会考虑使用它么或者你有任何可以替代的软件的建议么让我在评论区知道你们的想法。
--------------------------------------------------------------------------------
via: http://xmodulo.com/dupeguru-deduplicate-files-linux.html
作者:[Adrien Brochard][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/adrien
[1]:http://www.hardcoded.net/dupeguru/
[2]:https://aur.archlinux.org/packages/dupeguru-se/
[3]:https://github.com/hsoft/dupeguru
[4]:http://www.hardcoded.net/dupeguru/
[5]:http://www.hardcoded.net/dupeguru_me/
[6]:http://www.hardcoded.net/dupeguru_pe/

View File

@@ -0,0 +1,343 @@
通过 SaltStack 管理服务器配置
================================================================================
![](http://techarena51.com/wp-content/uploads/2015/01/SaltStack+logo+-+black+on+white.png)
我在搜索[Puppet][1]的替代品时偶然间碰到了Salt。我喜欢puppet但是我又爱上Salt了:)。我发现Salt在配置和使用上都要比Puppet简单当然这只是一家之言你大可不必介怀。另外一个爱上Salt的理由是它可以让你从命令行管理服务器配置比如
要通过Salt来更新所有服务器你只需运行以下命令即可
salt '*' pkg.upgrade
##安装SaltStack到Linux上##
如果你是在CentOS 6/7上安装的话那么Salt可以通过EPEL仓库获取到。而对于Pi和Ubuntu Linux用户你可以从[这里][2]添加Salt仓库。Salt是基于python的所以你也可以使用pip来安装但是你得用yum-utils或是其它包管理器来自己处理它的依赖关系。
Salt采用服务器-客户端模式,服务器端称为领主,而客户端则称为下属。
###安装并配置Salt领主###
[root@salt-master~]# yum install salt-master
Salt配置文件位于/etc/salt和/srv/salt。Salt虽然可以开箱即用但我还是建议你将日志配置得更详细点以方便日后排除故障。
[root@salt-master ~]# vim /etc/salt/master
# 默认是warning修改如下
log_level: debug
log_level_logfile: debug
[root@salt-master ~]# systemctl start salt-master
###安装并配置Salt下属###
[root@salt-minion~]#yum install salt-minion
# 添加你的Salt领主的主机名
[root@salt-minion~]#vim /etc/salt/minion
master: salt-master.com
# 启动下属
[root@salt-minion~] systemctl start salt-minion
在启动时下属客户机会生成一个密钥和一个id。然后它会连接到Salt领主服务器并验证自己的身份。Salt领主服务器在允许下属客户机下载配置之前必须接受下属的密钥。
###在Salt领主服务器上列出并接受密钥###
# 列出所有密钥
[root@salt-master~] salt-key -L
Accepted Keys:
Unaccepted Keys:
minion.com
Rejected Keys:
# 使用id 'minion.com'命令接受密钥
[root@salt-master~]salt-key -a minion.com
[root@salt-master~] salt-key -L
Accepted Keys:
minion.com
Unaccepted Keys:
Rejected Keys:
在接受下属客户机的密钥后你可以使用salt命令来立即获取信息。
##Salt命令行实例##
# 检查下属是否启动并运行
[root@salt-master~] salt 'minion.com' test.ping
minion.com:
True
# 在下属客户机上运行shell命令
[root@salt-master~]# salt 'minion.com' cmd.run 'ls -l'
minion.com:
total 2988
-rw-r--r--. 1 root root 1024 Jul 31 08:24 1g.img
-rw-------. 1 root root 940 Jul 14 15:04 anaconda-ks.cfg
-rw-r--r--. 1 root root 1024 Aug 14 17:21 test
# 安装/更新所有服务器上的软件
[root@salt-master ~]# salt '*' pkg.install git
salt命令需要一些组件来发送信息其中之一是下属客户机的id而另一个是下属客户机上要调用的函数。
在第一个实例中我使用test模块的ping函数来检查系统是否启动。该函数并不是真的实施一次ping它仅仅是在下属客户机作出回应时返回
cmd.run用于执行远程命令pkg模块包含了包管理的函数。本文结尾提供了全部内建模块的列表。
###颗粒实例###
Salt使用一个名为**颗粒Grains**的界面来获取系统信息。你可以使用颗粒在指定属性的系统上运行命令。
[root@vps4544 ~]# salt -G 'os:Centos' test.ping
minion:
True
更多颗粒实例请访问http://docs.saltstack.com/en/latest/topics/targeting/grains.html
##通过状态文件系统进行包管理##
为了使软件配置自动化你需要使用状态系统并创建状态文件。这些文件使用YAML格式和python字典、列表、字符串以及编号来构成数据结构。将这些文件从头到尾研读一遍这将有助于你更好地理解它的配置。
###VIM状态文件实例###
[root@salt-master~]# vim /srv/salt/vim.sls
vim-enhanced:
pkg.installed
/etc/vimrc:
file.managed:
- source: salt://vimrc
- user: root
- group: root
- mode: 644
该文件的第一和第三行称为状态id它们必须包含有需要管理的包或文件的确切名称或路径。在状态id之后是状态和函数声明pkgfile是状态声明installedmanaged是函数声明。函数接受参数用户、组、模式和源都是函数managed的参数。
要将该配置应用到下属客户端请移动你的vimrc文件到/src/salt然后运行以下命令。
[root@salt-master~]# salt 'minion.com' state.sls vim
minion.com:
----------
ID: vim-enhanced
Function: pkg.installed
Result: True
Comment: The following packages were installed/updated: vim-enhanced.
Started: 09:36:23.438571
Duration: 94045.954 ms
Changes:
----------
vim-enhanced:
----------
new:
7.4.160-1.el7
old:
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
你也可以添加依赖关系到你的配置中。
[root@salt-master~]# vim /srv/salt/ssh.sls
openssh-server:
pkg.installed
/etc/ssh/sshd_config:
file.managed:
- user: root
- group: root
- mode: 600
- source: salt://ssh/sshd_config
sshd:
service.running:
- require:
- pkg: openssh-server
这里的require声明是必须的它在servicepkg状态之间创建依赖关系。该声明将首先检查包是否安装然后运行服务。
但是我更偏向于使用watch声明因为它也可以检查文件是否修改和重启服务。
[root@salt-master~]# vim /srv/salt/ssh.sls
openssh-server:
pkg.installed
/etc/ssh/sshd_config:
file.managed:
- user: root
- group: root
- mode: 600
- source: salt://sshd_config
sshd:
service.running:
- watch:
- pkg: openssh-server
- file: /etc/ssh/sshd_config
[root@vps4544 ssh]# salt 'minion.com' state.sls ssh
seven.leog.in:
Changes:
----------
ID: openssh-server
Function: pkg.installed
Result: True
Comment: Package openssh-server is already installed.
Started: 13:01:55.824367
Duration: 1.156 ms
Changes:
----------
ID: /etc/ssh/sshd_config
Function: file.managed
Result: True
Comment: File /etc/ssh/sshd_config updated
Started: 13:01:55.825731
Duration: 334.539 ms
Changes:
----------
diff:
---
+++
@@ -14,7 +14,7 @@
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
-Port 22
+Port 422
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
----------
ID: sshd
Function: service.running
Result: True
Comment: Service restarted
Started: 13:01:56.473121
Duration: 407.214 ms
Changes:
----------
sshd:
True
Summary
------------
Succeeded: 4 (changed=2)
Failed: 0
------------
Total states run: 4
在单一目录中维护所有的配置文件是一项复杂的大工程因此你可以创建子目录并在其中添加配置文件init.sls文件。
[root@salt-master~]# mkdir /srv/salt/ssh
[root@salt-master~]# vim /srv/salt/ssh/init.sls
openssh-server:
pkg.installed
/etc/ssh/sshd_config:
file.managed:
- user: root
- group: root
- mode: 600
- source: salt://ssh/sshd_config
sshd:
service.running:
- watch:
- pkg: openssh-server
- file: /etc/ssh/sshd_config
[root@vps4544 ssh]# cp /etc/ssh/sshd_config /srv/salt/ssh/
[root@vps4544 ssh]# salt 'minion.com' state.sls ssh
###Top文件和环境###
top文件top.sls是用来定义你的环境的文件它允许你映射下属客户机到包默认环境是base。你需要定义在基本环境下哪个包会被安装到哪台服务器。
如果对于一台特定的下属客户机而言,有多个环境,并且有多于一个的定义,那么默认情况下,基本环境将取代其它环境。
要定义环境你需要将它添加到领主配置文件的file_roots指针。
[root@salt-master ~]# vim /etc/salt/master
file_roots:
base:
- /srv/salt
dev:
- /srv/salt/dev
现在添加一个top.sls文件到/src/salt。
[root@salt-master ~]# vim /srv/salt/top.sls
base:
'*':
- vim
'minion.com':
- ssh
应用top文件配置
[root@salt-master~]# salt '*' state.highstate
minion.com:
----------
ID: vim-enhanced
Function: pkg.installed
Result: True
Comment: Package vim-enhanced is already installed.
Started: 13:10:55
Duration: 1678.779 ms
Changes:
----------
ID: openssh-server
Function: pkg.installed
Result: True
Comment: Package openssh-server is already installed.
Started: 13:10:55.
Duration: 2.156 ms
下属客户机将下载top文件并搜索用于它的配置领主服务器也会将配置应用到所有下属客户机。
---
这仅仅是一个Salt的简明教程如果你想要深入学习并理解你可以访问下面的链接。如果你已经在使用Salt那么请告诉我你的建议和意见吧。
更新: [Foreman][3] 已经通过[插件][4]支持salt。
阅读链接
- http://docs.saltstack.com/en/latest/ref/states/top.html#how-top-files-are-compiled
- http://docs.saltstack.com/en/latest/topics/tutorials/states_pt1.html
- http://docs.saltstack.com/en/latest/ref/states/highstate.html#state-declaration
颗粒
- http://docs.saltstack.com/en/latest/topics/targeting/grains.html
Salt模块列表
Salt和Puppet的充分比较
- https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
内建执行模块的完全列表
- http://docs.saltstack.com/en/latest/ref/modules/all/
--------------------------------------------------------------------------------
via: http://techarena51.com/index.php/getting-started-with-saltstack/
作者:[Leo G][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://techarena51.com/
[1]:http://techarena51.com/index.php/a-simple-way-to-install-and-configure-a-puppet-server-on-linux/
[2]:http://docs.saltstack.com/en/latest/topics/installation/index.html
[3]:http://techarena51.com/index.php/using-foreman-opensource-frontend-puppet/
[4]:https://github.com/theforeman/foreman_salt/wiki

View File

@@ -0,0 +1,72 @@
如何在Ubuntu 14.04 上为Apache 2.4 安装SSL支持
================================================================================
今天我会讲述如何为你的个人网站或者博客安装**SSL 证书**,来保护你的访问者和网站之间通信的安全。
安全套接字层或称SSL是一种加密网站和浏览器之间连接的标准安全技术。这确保服务器和浏览器之间传输的数据保持隐私和安全。它被成千上万的人使用来保护他们与客户的通信。要启用SSL链接Web服务器需要安装SSL证书。
你可以创建你自己的SSL证书但是这默认不会被浏览器所信任要解决这个问题你需要从受信任的证书机构CA处购买证书我们会向你展示如何获取证书并在apache中安装。
### 生成一个证书签名请求 ###
证书机构CA会要求你在你的服务器上生成一个证书签名请求CSR。这是一个很简单的过程只需要一会儿就行你需要在你的服务器上运行下面的命令并输入需要的信息
# openssl req -new -newkey rsa:2048 -nodes -keyout yourdomainname.key -out yourdomainname.csr
输出看上去会像这样:
![generate csr](http://blog.linoxide.com/wp-content/uploads/2015/01/generate-csr.jpg)
这一步会生成两个文件一个用于解密SSL证书的私钥文件一个证书签名请求CSR文件用于申请你的SSL证书
根据你申请的机构你会需要上传csr文件或者在网站表格中粘帖该文件内容。
### 在Apache中安装实际的证书 ###
生成步骤完成之后,你会收到新的数字证书。本篇教程中我们使用[Comodo SSL][1]并在一个它发给我们的zip文件中收到了证书。要在apache中使用它你首先需要用下面的命令用收到的证书创建一个组合的证书
# cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > bundle.crt
![bundle](http://blog.linoxide.com/wp-content/uploads/2015/01/bundle.jpg)
用下面的命令确保ssl模块已经加载进apache了
# a2enmod ssl
如果你看到了“Module ssl already enabled”这样的信息就说明你成功了如果你看到了“Enabling module ssl”那么你还需要用下面的命令重启apache
# service apache2 restart
最后像下面这样修改你的虚拟主机文件(通常在/etc/apache2/sites-enabled 下):
DocumentRoot /var/www/html/
ServerName linoxide.com
SSLEngine on
SSLCertificateFile /usr/local/ssl/crt/yourdomainname.crt
SSLCertificateKeyFile /usr/local/ssl/yourdomainname.key
SSLCACertificateFile /usr/local/ssl/bundle.crt
你现在应该可以用https://YOURDOMAIN/注意使用https而不是http来访问你的网站了并可以看到SSL的进度条了通常在你浏览器中用一把锁来表示
**注意:** 现在所有的内容链接都必须指向https如果网站上的一些内容像图片或者css文件等仍旧指向http链接的话你会在浏览器中得到一个警告要修复这个问题请确保每个链接都指向了https。
### 在你的网站上重定向HTTP请求到HTTPS中 ###
如果你希望重定向常规的HTTP请求到HTTPS添加下面的文本到你希望修改的虚拟主机或者如果希望给服务器上所有网站都添加的话就加入到apache.conf中
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/install-ssl-apache-2-4-in-ubuntu/
作者:[Adrian Dinu][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/adriand/
[1]:https://ssl.comodo.com/

View File

@@ -0,0 +1,123 @@
Ubuntu 14.04 上 最好的 GNOME Shell 主题
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Best_Gnome_Shell_Themes.jpeg)
最好的方式来自定义你的 Linux 桌面就是使用自定义主题。假如你在 [Ubuntu 14.04 中安装 GNOME][1] 或 在 Ubuntu 14.10 中安装了 GNOME你或许想改变默认的主题以呈现出不同的外观。在这里为了帮助你完成该任务我已经编制好了一个列表—— **Ubuntu 或其他已经安装了 GNOME shell 的 Linux 操作系统中,最好的 GNOME Shell 主题** 。但在我们揭晓这份列表之前, 让我们先了解如何在 GNOME shell 中安装和应用新的主题。
### 在 GNOME Shell 中安装主题 ###
要在带有 GNOME 桌面的 Ubuntu 中安装新的主题,你可以使用 Gnome Tweak Tool它可以在 Ubuntu 软件库中得到。打开一个终端窗口并使用如下命令:
```
sudo apt-get install gnome-tweak-tool
```
或者,你可以通过把主题放置到 `~/.themes` 目录中来使用。如果你需要,我已经写了一个关于 [如何安装和使用 GNOME shell][2]的具体教程。
### 最好的 GNOME Shell 主题 ###
下面列举的主题都已经在 GNOME Shell 3.10.4 上进行了测试,但对于任何版本的 GNOME 3 或更高的版本,它们应该同样适用。需要指出的是,这些主题并没有按照任何优先顺序排列。下面就让我们看看这些最好的 GNOME 主题:
#### Numix ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/02/mockups_numix_5.jpeg)
任何没有提到 [Numix 主题][3] 的列表都是不完整的。这个主题是如此地受欢迎以至于 [Numix 团队开发出一个新的 Linux 操作系统, Ozon][4]。考虑到他们的设计作品 Numix 主题,把不久将发行的 `Ozon` 称为 [最美丽的 Linux 操作系统][5] 也不为过。
使用下面的命令,在基于 Ubuntu 的发行版本中安装 Numix 主题:
```
sudo apt-add-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-icon-theme-circle
```
#### Elegance Colors ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Elegance_Colors_Theme_GNOME_Shell.jpeg)
另一个美丽主题来自 Numix 团队成员之一 Satyajit Sahoo。[Elegance Colors][6] 拥有自己的 PPA (译者注: 即 Personal Package Archive 的缩写) 使得你可以轻松安装它:
```
sudo add-apt-repository ppa:satyajit-happy/themes
sudo apt-get update
sudo apt-get install gnome-shell-theme-elegance-colors
```
#### Moka ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Moka_GNOME_Shell.jpeg)
[Moka][7] 是另一个迷人的主题,它总是位于美丽的主题列表之中。它是由 Unity Tweak Tool 的开发者所设计。 Moka 是你一定要尝试的主题:
```
sudo add-apt-repository ppa:moka/stable
sudo apt-get update
sudo apt-get install moka-gnome-shell-theme
```
#### Viva ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Viva_GNOME_Theme.jpg)
基于 GNOME 的默认主题 Adwaita Viva 是一个带有黑色和橙色阴影的美丽主题。你可以从下面的链接中下载 Viva
- [Download Viva GNOME Shell Theme][8]
#### Ciliora-Prima ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Ciliora_Prima_Gnome_Shell.jpeg)
以前它以 Zukitwo Dark 的名字为人们熟知, Ciliora-Prima 是一个拥有方块图标的主题,可使用的三种版本之间彼此略有不同。你可以从下面的链接中下载它们:
- [Download Ciliora-Prima GNOME Shell Theme][9]
#### Faience ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Faience_GNOME_Shell_Theme.jpeg)
Faience 作为一个受欢迎的主题已经有一段时间了。你可以通过下面的 PPA 为 GNOME 3.10 及更高版本安装 Faience
```
sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update
sudo apt-get install faience-theme
```
#### Paper [不完善] ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Paper_GTK_Theme.jpeg)
自从 Google 提出 `Material Design`人们一直为之疯狂。Paper GTK 主题受 Google Material design 启发,作者为 Sam Hewitt( Moka 项目开发者之一);它正处于开发中,这意味着当前你还不能拥有 Paper 的最好体验。假如你和我一样,具有一点实验精神,你绝对可以试一试。
```
sudo add-apt-repository ppa:snwh/pulp
sudo apt-get update
sudo apt-get install paper-gtk-theme
```
以上就是我的列表。如果你正试着给你的 Ubuntu 换一个不同的模样,你也应该试试这个列表: [Ubuntu 14.04 中最好的图标主题][10]。
你是怎样找到这份 **最好的 GNOME shell 主题** 列表的呢?在上面列举的主题中,哪个是你最中意的? 如果它没有在这里列出,请一定在评论中告诉我们哪个是你心目中最好的 GNOME shell 主题 。
--------------------------------------------------------------------------------
via: http://itsfoss.com/gnome-shell-themes-ubuntu-1404/
作者:[Abhishek][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/Abhishek/
[1]:http://itsfoss.com/how-to-install-gnome-in-ubuntu-14-04/
[2]:http://itsfoss.com/install-switch-themes-gnome-shell/
[3]:https://numixproject.org/
[4]:http://itsfoss.com/numix-linux-distribution/
[5]:http://itsfoss.com/new-beautiful-linux-2015/
[6]:http://satya164.deviantart.com/art/Gnome-Shell-Elegance-Colors-305966388
[7]:http://mokaproject.com/
[8]:https://github.com/vivaeltopo/gnome-shell-theme-viva
[9]:http://zagortenay333.deviantart.com/art/Ciliora-Prima-Shell-451947568
[10]:http://itsfoss.com/best-icon-themes-ubuntu-1404/

View File

@@ -0,0 +1,146 @@
如何在 Ubuntu 14.04 里面配置 chroot 环境
================================================================================
你可能会有很多理由想要把一个应用、一个用户或者一个环境与你的 linux 系统隔离开来。不同的操作系统有不同的实现方式,而在 linux 中,一个典型的方式就是 chroot 环境。
在这份教程中,我会一步一步指导你怎么使用 chroot 命令去配置一个与真实系统分离出来的独立环境。这个功能主要可以用于测试项目,以下这些步骤都在 **Ubuntu 14.04** 虚拟专用服务器(VPS)上执行。
学会快速搭建一个简单的 chroot 环境是一项非常实用的技能,绝大多数系统管理员都能从中受益。
### Chroot 环境 ###
一个 chroot 环境就是通过系统调用,将一个本地目录临时变成根目录。一般所说的系统根目录就是挂载点"/",然而使用 chroot 命令后,你可以使用其它目录作为根目录。
原则上,任何运行在 chroot 环境内的应用都不能访问系统中其他信息LCTT译注使用 chroot 把一个目录变成根目录,在里面运行的应用只能访问本目录内的文件,无法访问到目录外的文件。然而,运行在 chroot 环境的应用可以通过 sysfs 文件系统访问到环境外的信息,所以,这里有个“原则上”的修饰语)。
### Chroot 环境的用处 ###
> - 测试一个不稳定的应用服务不会影响到整个主机系统。
>
> - 就算使用 root 权限做了些不当的操作,把 chroot 环境搞得一塌糊涂,也不会影响到主机系统。
>
> - 可以在你的系统中运行另外一个操作系统。
举个例子,你可以在 chroot 环境中编译、安装、测试软件,而不去动真实的系统。你也可以**在64位环境下使用 chroot 创建一个32位环境然后运行一个32位的程序**LCTT泽注如果你的真实环境是32位的那就不能 chroot 一个64位的环境了
但是为了安全考虑chroot 环境为非特权用户设立了非常严格的限制,而不是提供完整的安全策略。如果你需要的是有完善的安全策略的隔离方案,可以考虑下 LXC、Docker、vservers等等。
### Debootstrap 和 Schroot ###
使用 chroot 环境需要安装 **debootstrap****schroot**,这两个软件都在 Ubuntu 的镜像源中。其中 schroot 用于创建 chroot 环境。
**Debootstrap** 可以让你通过镜像源安装任何 Debian或基于 Debian 的)系统,装好的系统会包含最基本的命令。
**Schroot** 命令允许用户使用相同的机制去创建 chroot 环境,但在访问 chroot 环境时会做些权限检查,并且会允许用户做些额外的自动设置,比如挂载一些文件系统。
在 Ubuntu 14.04 LTS 上,我们可以通过两步来实现这个功能:
### 1. 安装软件包 ###
第一步在Ubuntu 14.04 LTS 主机系统上安装 debootstrap 和 schroot
$ sudo apt-get install debootstrap
$ sudo apt-get install schroot
### 2. 配置 Schroot ###
现在我们有工具在手,需要指定一个目录作为我们的 chroot 环境。这里创建一个目录先:
sudo mkdir /linoxide
编辑 schroot 的配置文件:
sudo nano /etc/schroot/schroot.conf
再提醒一下,我们现在是在 Ubuntu 14.04 LTS 系统上。如果我们想测试一个软件包能不能在 Ubuntu 13.10代号是“Saucy Salamander” 上运行,就可以在配置文件中添加下面的内容:
[saucy]
description=Ubuntu Saucy
location=/linoxide
priority=3
users=arun
root-groups=root
![](http://blog.linoxide.com/wp-content/uploads/2014/12/schroot-config.png)
根据你的系统要求,调整上面的配置信息。
### 3. 使用 debootstrap 安装32位 Ubuntu 系统 ###
Debootstrap 命令会在你的 **chroot 环境**里面下载安装一个最小系统。只要你能访问镜像源,你就可以安装任何基于 Debian 的系统版本。
前面我们已经创建了 **/linoxide** 目录用于放置 chroot 环境,现在我们可以在这个目录里面运行 debootstrap 了:
cd /linoxide
sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/
sudo chroot /linoxide /debootstrap/debootstrap --second-stage
你可以将 --arch 的参数换成 i386 或其他架构,只要存在这种架构的镜像源。你也可以把镜像源 http://archive.ubuntu.com/ubuntu/ 换成离你最近的镜像源,具体可参考 [Ubuntu 官方镜像主页][1]。
**注意如果你是在64位系统中创建32位系统你需要在上面第3行命令中加入 --foreign 选项,就像下面的命令:**
sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/
下载需要一段时间看你网络带宽性能。最小系统大概有500M。
### 4. 完成 chroot 环境 ###
安装完系统后,我们需要做一些收尾工作,确保系统运行正常。首先,保证主机的 fstab 程序能意识到 chroot 环境的存在:
sudo nano /etc/fstab
在文件最后面添加下面的配置:
proc /linoxide/proc proc defaults 0 0
sysfs /linoxide/sys sysfs defaults 0 0
保存并关闭文件。
挂载一些文件系统到 chroot 环境:
$ sudo mount proc /linoxide/proc -t proc
$ sudo mount sysfs /linoxide/sys -t sysfs
复制 /etc/hosts 文件到 chroot 环境,这样 chroot 环境就可以使用网络了:
$ sudo cp /etc/hosts /linoxide/etc/hosts
最后使用 schroot -l 命令列出系统上所有的 chroot 环境:
$ schroot -l
使用下面的命令进入 chroot 环境:
$ sudo chroot /linoxide/ /bin/bash
测试安装的版本:
# lsb_release -a
# uname -a
为了在 chroot 环境中使用图形界面,你需要设置 DISPLAY 环境变量:
$ DISPLAY=:0.0 ./apps
目前为止,我已经成功地在 Ubuntu 14.04 LTS 上安装了 Ubuntu 13.10。
退出 chroot 环境:
# exit
清理一下,卸载文件系统:
$ sudo umount /test/proc
$ sudo umount /test/sys
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/configure-chroot-environment-ubuntu-14-04/
作者:[Arun Pyasi][a]
译者:[bazz2](https://github.com/bazz2)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:https://launchpad.net/ubuntu/+archivemirrors

View File

@@ -0,0 +1,74 @@
如何在Ubuntu Server 14.04 LTS(Trusty) 上安装Ghost
================================================================================
今天我们将会在Ubuntu Server 14.04 LTS (Trusty)上安装一个博客平台Ghost。
Ghost是一款设计优美的发布平台很容易使用且对任何人都免费。它是免费的开源软件FOSS它的源码在Github上。截至2015年1月LCTT 译注原文为2014应为2015它的界面很简单还有分析面板。编辑使用的是很便利的分屏显示。
因此有了这篇步骤明确的在Ubuntu Server上安装Ghost的教程
### 1. 升级Ubuntu ###
第一步是运行Ubuntu软件升级并安装一系列需要的额外包。
sudo apt-get update
sudo apt-get upgrade -y
sudo aptitude install -y build-essential zip vim wget
### 2. 下载并安装 Node.js 源码 ###
wget http://nodejs.org/dist/node-latest.tar.gz
tar -xzf node-latest.tar.gz
cd node-v*
现在我们使用下面的命令安装Node.js
./configure
make
sudo make install
### 3. 下载并安装Ghost ###
sudo mkdir -p /var/www/
cd /var/www/
sudo wget https://ghost.org/zip/ghost-latest.zip
sudo unzip -d ghost ghost-latest.zip
cd ghost/
sudo npm install --production
### 4. 配置Ghost ###
sudo nano config.example.js
在“Production”字段
host: '127.0.0.1',
修改成
host: '0.0.0.0',
### 创建Ghost用户 ###
sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost
sudo chown -R ghost:ghost /var/www/ghost/
现在启动Ghost你需要以“ghost”用户登录。
su - ghost
cd /var/www/ghost/
现在你已经以“ghost”用户登录并可启动Ghost
npm start --production
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/install-ghost-ubuntu-server-14-04/
作者:[Arun Pyasi][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/

View File

@@ -0,0 +1,92 @@
如何在RedHat/CentOS 7.x中使用nmcli管理网络
================================================================================
[**Red Hat Enterprise Linux 7**][1]和**CentOS 7**的一个新特性是默认的网络服务由**NetworkManager**提供这是一个动态的网络控制和配置守护进程它在网络设备和连接可用时保持链接正常同时也提供了典型的ifcfg类型的配置文件。NetworkManager可以用于下面这些连接Ethernet、 VLANs、桥接、Bonds、Teams、 Wi-Fi、 移动宽带 (比如 3G)和IP-over-InfiniBand(IPoIB)。
NetworkManager可以由命令行工具**nmcli**控制。
### nmcli的通常用法 ###
nmcli的通常语法是
# nmcli [ OPTIONS ] OBJECT { COMMAND | help }
一件很酷的事情是你可以使用tab键来补全操作这样你在何时忘记了语法你都可以按下tab来看到可用的选项了。
![nmcli tab](http://blog.linoxide.com/wp-content/uploads/2014/12/nmcli-tab.jpg)
nmcli通常用法的一些例子
# nmcli general status
会显示NetworkManager的整体状态。
# nmcli connection show
会显示所有的连接
# nmcli connection show -a
仅显示活跃的连接
# nmcli device status
显示NetworkManager识别的设备列表和它们当前的状态。
![nmcli general](http://blog.linoxide.com/wp-content/uploads/2014/12/nmcli-gneral.jpg)
### 启动/停止网络设备 ###
你可以使用nmcli从命令行启动或者停止网络设备这等同于ifconfig中的up和down。
停止网络设备使用下面的语法:
# nmcli device disconnect eno16777736
要启动它使用下面的语法:
# nmcli device connect eno16777736
### 添加一个使用静态IP的以太网连接 ###
要用静态IP添加一个以太网连接可以使用下面的命令
# nmcli connection add type ethernet con-name NAME_OF_CONNECTION ifname INTERFACE-NAME ip4 IP_ADDRESS gw4 GW_ADDRESS
将NAME_OF_CONNECTION替换成新的连接名LCTT 译注这个名字以后可以用来对其操作可以使用任何简单明了的名称INTERFACE-NAME 替换成你的接口名IP_ADDRESS替换成你要的IP地址GW_ADDRESS替换成你使用的网关地址如果你并不使用网关你可以忽略这部分
# nmcli connection add type ethernet con-name NEW_STATIC ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1
要设置这个连接所使用的DNS服务器使用下面的命令
# nmcli connection modify NEW_STATIC ipv4.dns "8.8.8.8 8.8.4.4"
要启用新的以太网连接,使用下面的命令:
# nmcli connection up NEW_STATIC ifname eno16777736
要查看新配置连接的详细信息,使用下面的命令:
# nmcli -p connection show NEW_STATIC
![nmcli add static](http://blog.linoxide.com/wp-content/uploads/2014/12/nmcli-add-static.jpg)
### 添加一个使用DHCP的连接 ###
如果你想要添加一个使用DHCP来配置接口IP地址、网关地址和dns服务器地址的新的连接你要做的就是忽略上述命令中的ip/gw部分NetworkManager会自动使用DHCP来获取配置细节。
比如要创建一个新的叫NEW_DHCP的DHCP连接在设备eno16777736上你可以使用下面的命令
# nmcli connection add type ethernet con-name NEW_DHCP ifname eno16777736
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/nmcli-tool-red-hat-centos-7/
作者:[Adrian Dinu][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/adriand/
[1]:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.0_Release_Notes/

View File

@@ -0,0 +1,159 @@
在CentOS/RHEL/Scientific Linux 6 & 7 上安装Telnet
================================================================================
#### 声明: ####
在安装和使用Telnet之前需要记住以下几点。
- 在公网(WAN)中使用Telnet是非常不好的想法。它会以明文的格式传输登入数据。每个人都可以看到明文。
- 如果你还是需要Telnet强烈建议你只在局域网内部使用。
- 你可以使用**SSH**作为替代方法。但是确保不要用root用户登录。
### Telnet是什么 ###
[Telnet][1] 是用于通过TCP/IP网络远程登录计算机的协议。一旦与远程计算机建立了连接它就会成为一个虚拟终端且允许你与远程计算机通信。
在本篇教程中我们会展示如何安装Telnet并且如何通过Telnet访问远程系统。
### 安装 ###
打开终端并输入下面的命令来安装telnet
yum install telnet telnet-server -y
现在telnet已经安装在你的服务器上了。接下来编辑文件**/etc/xinetd.d/telnet**
vi /etc/xinetd.d/telnet
设置 **disable = no**:
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
保存并退出文件。记住我们不必在CentOS 7做这步。
接下来使用下面的命令重启telnet服务
在CentOS 6.x 系统中:
service xinetd start
让这个服务在每次重启时都会启动:
在CentOS 6上
chkconfig telnet on
chkconfig xinetd on
在CentOS 7上
systemctl start telnet.socket
systemctl enable telnet.socket
让telnet的默认端口**23**可以通过防火墙和路由器。要让telnet端口可以通过防火墙在CentOS 6.x系统中编辑下面的文件
vi /etc/sysconfig/iptables
加入如下行“-A INPUT -p tcp -m state --state NEW --dport 23 -j ACCEPT”
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 23 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存并退出文件。重启iptables服务
service iptables restart
在CentOS 7中运行下面的命令让telnet服务可以通过防火墙。
firewall-cmd --permanent --add-port=23/tcp
firewall-cmd --reload
就是这样。现在telnet服务就可以使用了。
#### 创建用户 ####
创建一个测试用户,比如用户名是“**sk**”,密码是“**centos**“:
useradd sk
passwd sk
#### 客户端配置 ####
安装telnet包
yum install telnet
在基于DEB的系统中
sudo apt-get install telnet
现在,打开终端,尝试访问你的服务器(远程主机)。
如果你的客户端是Linux系统打开终端并输入下面的命令来连接到telnet服务器上。
telnet 192.168.1.150
输入服务器上已经创建的用户名和密码:
示例输出:
Trying 192.168.1.150...
Connected to 192.168.1.150.
Escape character is '^]'.
Kernel 3.10.0-123.13.2.el7.x86_64 on an x86_64
server1 login: sk
Password:
[sk@server1 ~]$
如你所见,已经成功从本地访问远程主机了。
如果你的系统是windows进入**开始 -> 运行 -> 命令提示符**。
在命令提示符中,输入命令:
telnet 192.168.1.150
**192.168.1.150**是远程主机IP地址。
现在你就可以连接到你的服务器上了。
就是这样。
干杯!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/installing-telnet-centosrhelscientific-linux-6-7/
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/sk/
[1]:http://en.wikipedia.org/wiki/Telnet

View File

@@ -0,0 +1,81 @@
为什么 Mac 用户不选择 Linux
================================================================================
Linux 与 Mac 用户至少有一个共同点:他们都不太喜欢用 Windows。但除了这点外二者再也无法达成其他共识只得分道扬镳。为什么 Mac 用户不选择 Linux 呢?是什么因素致使 Mac 用户做出了这种选择的?
[Datamation 就此问题做了一番调查][1]并试图进行解答。Datamation 的结论是,所有原因都只归结于众多应用及工作流程,而非操作系统的关系:
> …某些事例表明,尝试用新应用代替现有应用,并不是很实际 - 对工作流程和整体实用性来说都是如此。但不幸的是,苹果在这些方面做得非常好。因此,在几乎不可能改变这些事实的情况下,想要拉拢那些 Mac忠实用户实在是很大的挑战。
> 不过老实来说,除了 Web 开发者,我还没见过 Mac 用户仅仅为了避免升级到 OS X Yosemite 而 “
en masse”(法语:共同,一起) 尝试变更他们的工作流程。诚然,经历过 Yosemite 更新后 - 考虑过权限的用户应该会发现这方面已经变得非常令人讨厌。并且OS X 除了在 UI 方面的微小变化,几乎没有改变,针对现有 Mac 用户的核心工作流程也在最大程度上保持了原样。
> 但,我相信 Linux 在未来将会继续保持多样化特点。Linux 会继续成长,但绝不是经过精确计量般得一成不变。
我大体上同意 Datamation 关于应用和工作流程重要性的结论,在选择操作系统时这两方面是必须要考虑顾及的。但我认为对 Mac 用户来说,选择 Mac 有比这两方面更重要的因素。我相信是不同的心态造就了 Linux 和 Mac 用户,并且我认为这才是为什么 Mac 用户不选择 Linux 的真实原因。
![](http://jimlynch.com/wp-content/uploads/2015/01/mac-users-switch-to-linux.jpeg)
### 控制权才是 Linux 用户最看重的地方 ###
Linux 用户倾向于控制电脑上的所有细节,他们试图作出一切能做的努力使操作系统变成他们想要的样子。但这种方式并不适用于 OS X 以及其他任何苹果的产品。如果你使用了苹果的产品,就意味着绝大多数情况下,你只能按照苹果预先设定的模式来使用它们。
对 Mac以及 iOS用户来说这没什么因为他们似乎并不在乎生活在苹果那围墙高筑的花园里仅仅使用那些苹果给予他们的标准和选择。但这对绝大多数 Linux 用户来说是完全不能接受的。Linux 的新用户通常来自 Windows正是从那里他们开始厌恶那些告诉他们什么才叫操作系统并试图限制操作系统权限的东西。
自从他们尝到使用自由的 Linux 系统所带来的甜头之后,他们就再也不会回到苹果或者微软的监牢里去了。即使在他们死后,把 Linux 从他们那冰冷僵硬的手指中撬出来,他们也不会接受苹果和微软为他们定制的操作系统。
但绝大部分 Mac 用户不会有这样的意志和决心。对他们来说当苹果升级 OS X 时放弃他们现有的习惯方式是非常容易的。在苹果那围墙高筑的花园里,即使他们不满意苹果的变化,他们也会迅速地接受。
因此,对控制权的渴望是 Mac 用户与 Linux 用户的最大不同。但我并未把它视为一个问题,尽管这反映出使用电脑的两类用户截然不同的态度。
### Mac 用户离不开苹果的技术支持 ###
Linux 用户与 Mac 用户的区别也体现在 Linux 用户并不介意亲自维护自己的电脑。虽然维护电脑及控制操作系统都是很大的责任,但 Linux 用户还是愿意独自承担,愿意通过自己的力量使他们的系统工作得更棒更有效率,并且深入了解操作系统是每一位 Linux 用户都乐衷的事情。
当 Linux 用户遇到问题时他们会迅速地尝试自己来解决问题。如果这不奏效的话他们会在网上搜索其他Linux用户的解决方案并不断进行尝试直到问题解决。
但 Mac 用户却不大会这样。这也许是为什么苹果零售店如此火爆、为什么如此多的 Mac 用户在拿到新 Mac 的时候会选择购买苹果维护服务的原因。Mac 用户会很轻易得带着 TA 的电脑去苹果零售店,走进天才吧并要求苹果的工作人员为其查看和修复电脑。
绝大多数 Linux 用户连想都不会想这种事情。谁会愿意让一个你都不认识的家伙碰你的电脑并维修它呢?
因此对 Mac 用户来说,很难抛弃过去可以从苹果那里得到的技术支持,转而使用 Linux。这种选择会令某些 Mac 用户觉得自己的电脑将变得非常脆弱、容易被攻击,他们如同离开母亲怀抱的婴儿般充满了无助感。
### Mac 用户喜爱苹果的硬件 ###
Datamation 发表的文章中主要研究了软件方面的原因,但我认为硬件因素同样对 Mac 用户有很大影响。绝大部分 Mac 用户非常喜爱苹果的硬件。TA 们购买 Mac 并不仅仅是为了 OS X。苹果那精美的工艺设计也是 Mac 用户购买时着重考虑的一点。Mac 用户愿意支付高价购买电脑,因为他们认为这样绝对是物有所值的。
另一方面Linux 用户似乎并不会考虑这些东西。我认为他们更关注电脑的花费,而不太在意电脑的外观和设计。对他们来说,花费最少的金钱来获取尽可能好的硬件才是最重要的。他们并不像 Mac 用户一样热衷于电脑的外观,因此这一点并不是他们在购买电脑时考虑的地方。
我认为对于硬件的两种不同观点是没有高低之分的。这仅仅和用户的不同需求有关,仅仅会在他们购买电脑时影响他们,或者对某些 Linux 用户来说只是因为他们想要自己组装电脑而已。两种观点只是因为出发点不同、对于电脑的真正价值体现所在之处的理解不同罢了。
当然[在 Mac 上运行 Linux 是可能的][2],直接运行或者间接地通过虚拟机运行。因此真心喜欢苹果硬件的 Mac 用户是可以选择在 Mac 上安装 Linux 的。
### Linux 发行版太多了不知道选哪个? ###
另一个让 Mac 用户无法选择 Linux 的原因是:要从众多 Linux 发行版当中选择一个实在是太困难了。在大多数 Linuxer 并不抗拒的多元化发行版时代,没有相关知识的 Mac 用户会对如何选择感到十分困惑。
我认为随着时间的推移Mac 用户可以学习并找出最适合自己的发行版。但在短时间内,尤其是长时期得使用 OS X 之后,这是一个艰巨的任务。我不认为这个问题是无法克服的,但却有必要在这里提一下。
当然我们可以给大家提供资源,推荐参考 [DistroWatch][3] 还有我们的博客 [Desktop Linux Reviews][4],这都有助于 Mac 用户找到适合的 Linux 发行版。再说一条,网上有很多诸如“最好的 Linux 发行版”等类似的文章,当 Mac 用户想要寻找适合自己使用的发行版时可以参考一下。
但有苹果顾客购买 Mac 的其中一个原因是苹果硬件软件协调统一起来的简便性和易用性。所以我不确定有多少 Mac 用户愿意花费时间找出适合自己的 Linux 发行版。也许是否要使用 Linux 确实会令TA们考虑一阵子了。
### Mac 用户是苹果Linux 用户是橘子 ###
Mac 用户与 Linux 用户分道扬镳我认为并没有什么不妥。我认为我们只是在谈论两类完全不同的人群,这是一件好事,因为两类人群都在按自己喜欢的方式去使用操作系统和软件。让 Mac 用户和 Linux 用户各自沉浸在 OS X 和 Linux 中吧,希望他们都能高兴,都能对自己的电脑满意。
也许 Mac 用户会偶然走入 Linux 的世界并开始转向 Linux但我认为绝大多数时候两类人都愿意呆在不同的世界并不与对方接触。通常来说我并不会随意比较二者尤其是你已经自己拿定主意的时候况且这只不过是选苹果还是选橘子的问题罢了。
--------------------------------------------------------------------------------
via: http://jimlynch.com/linux-articles/why-mac-users-dont-switch-to-linux/
作者:[Jim Lynch][a]
译者:[Stevearzh](https://github.com/Stevearzh)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://jimlynch.com/author/Jim/
[1]:http://www.datamation.com/open-source/why-linux-isnt-winning-over-mac-users-1.html
[2]:http://www.howtogeek.com/187410/how-to-install-and-dual-boot-linux-on-a-mac/
[3]:http://distrowatch.com/
[4]:http://desktoplinuxreviews.com/

View File

@@ -0,0 +1,33 @@
使用Mate Tweak配置Mate桌面
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Mate_Tweak.jpeg)
[在Ubuntu中安装Mate桌面][1]是一码事但是你或许想要知道如何**配置Mate桌面** 大多数桌面环境都有它们自己的调整工具。比如Unity有Unity TweakGnome有Gnome TweakElementary OS有 Elementary OS Teweak。好消息是Mate桌面也有它自己的调整工具叫Mate Tweak][2]。
Mate Tweak是[mintDesktop][3]的克隆分支那是一款Linux Mint的配置工具。
### 安装Mate Tweak来配置Mate桌面 ###
Mate Tweak可以通过官方的PPA很简单地在Ubuntu和基于Ubuntu的系统中安装。打开终端输入下面的命令
sudo add-apt-repository ppa:ubuntu-mate-dev/ppa
sudo apt-get update
sudo apt-get install mate-tweak
你可以控制桌面的显示、按钮的布局和其他界面微调和窗口行为。与Unity和Gnome的调整工具比起来Mate Tweak没有提供太多的调整选项。比如你还不能用它[改变主题][4],但是至少它提供了一个简单的方法来改变一些配置。我希望它可以在不久的将来提供更多的特性。
--------------------------------------------------------------------------------
via: http://itsfoss.com/configure-mate-desktop-mate-tweak/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[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/install-mate-desktop-ubuntu-14-04/
[2]:https://bitbucket.org/flexiondotorg/mate-tweak
[3]:https://github.com/linuxmint/mintdesktop
[4]:http://itsfoss.com/how-to-install-themes-in-ubuntu-13-10/

View File

@@ -0,0 +1,64 @@
如何解压 tar 文件到不同的目录中
================================================================================
我想要解压一个tar文件到一个叫/tmp/data的指定目录。我该如何在Linux或者类Unix的系统中使用tar命令解压一个tar文件到不同的目录中
你不必使用cd命令切换到其他的目录并解压。可以使用下面的语法解压一个文件
### 语法 ###
典型Unix tar语法
tar -xf file.name.tar -C /path/to/directory
GNU/tar 语法:
tar xf file.tar -C /path/to/directory
tar xf file.tar --directory /path/to/directory
### 示例:解压文件到另一个目录中 ###
在本例中。我解压$HOME/etc.backup.tar到/tmp/data目录中。首先需要手动创建这个目录输入
mkdir /tmp/data
要解压$HOME/etc.backup.tar 到/tmp/data中输入
tar -xf $HOME/etc.backup.tar -C /tmp/data
要看到进度,使用-v选项
tar -xvf $HOME/etc.backup.tar -C /tmp/data
示例输出:
![Gif 01: tar Command Extract Archive To Different Directory Command](http://s0.cyberciti.org/uploads/faq/2015/01/tar-extract-archive-to-dir.gif)
*Gif 01: tar命令解压文件到不同的目录*
你也可以指定解压的文件:
tar -xvf $HOME/etc.backup.tar file1 file2 file3 dir1 -C /tmp/data
要解压foo.tar.gz.tgz扩展文件包到/tmp/bar中输入
mkdir /tmp/bar
tar -zxvf foo.tar.gz -C /tmp/bar
要解压foo.tar.bz2.tbz, .tbz2 和 .tb2 扩展文件)包到/tmp/bar中输入
mkdir /tmp/bar
tar -jxvf foo.tar.bz2 -C /tmp/bar
--------------------------------------------------------------------------------
via: http://www.cyberciti.biz/faq/howto-extract-tar-file-to-specific-directory-on-unixlinux/
作者:[nixCraft][a]
译者:[geekpi](https://github.com/geekpi)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.cyberciti.biz/tips/about-us

View File

@@ -0,0 +1,58 @@
在 Ubuntu 14.04 中Apache从2.2迁移到2.4的问题
================================================================================
如果你将**Ubuntu**从12.04升级跨越到了14.04,那么这其中包括了一个重大的升级--**Apache**从2.2版本升级到2.4版本。**Apache**的这次升级带来了许多性能提升,**但是如果继续使用2.2的配置文件会导致很多错误**。
### 访问控制的改变 ###
从**Apache 2.4**起所启用的授权机制比起2.2的只是针对单一数据存储的单一检查更加灵活。过去很难确定哪个 order 授权怎样被使用的,但是授权容器指令的引入解决了这些问题,现在,配置可以控制什么时候授权方法被调用,什么条件决定何时授权访问。
这就是为什么大多数的升级失败是由于配置错误的原因。2.2的访问控制是基于IP地址、主机名和其他角色通过使用指令Order来设置Allow, Deny或 Satisfy但是2.4,这些一切都通过新的授权方式进行检查。
为了弄清楚这些,可以来看一些虚拟主机的例子,这些可以在/etc/apache2/sites-enabled/default 或者 /etc/apache2/sites-enabled/*你的网站名称* 中找到:
旧的2.2虚拟主机配置:
Order allow,deny
Allow from all
新的2.4虚拟主机配置:
Require all granted
![apache 2.4 config](http://blog.linoxide.com/wp-content/uploads/2014/12/apache-2.4-config.jpg)
LCTT 译注Order、Allow和deny 这些将在之后的版本废弃请尽量避免使用Require 指令已可以提供比其更强大和灵活的功能。)
### .htaccess 问题 ###
升级后如果一些设置不工作,或者你得到重定向错误,请检查是否这些设置是放在.htaccess文件中。如果Apache 2.4没有使用 .htaccess 文件中的设置那是因为在2.4中AllowOverride指令的默认是 none因此忽略了.htaccess文件。你只需要做的就是修改或者添加AllowOverride All命令到你的网站配置文件中。
上面截图中可以看见AllowOverride All指令。
### 丢失配置文件或者模块 ###
根据我的经验这次升级带来的另一个问题就是在2.4中一些旧模块和配置文件不再需要或者不被支持了。你将会收到一条“Apache不能包含相应的文件”的明确警告你需要做的是在配置文件中移除这些导致问题的配置行。之后你可以搜索和安装相似的模块来替代。
### 其他需要了解的小改变 ###
这里还有一些其他的改变需要考虑,虽然这些通常只会发生警告,而不是错误。
- MaxClients重命名为MaxRequestWorkers使之有更准确的描述。而异步MPM如event客户端最大连接数不等于工作线程数。旧的配置名依然支持。
- DefaultType命令无效使用它已经没有任何效果了。如果使用除了 none 之外的其它配置值,你会得到一个警告。需要使用其他配置设定来替代它。
- EnableSendfile默认关闭
- FileETag 现在默认为"MTime Size"没有INode
- KeepAlive 只接受“On”或“Off”值。之前的任何不是“Off”或者“0”的值都被认为是“On”
- 单一的 Mutex 已经替代了 Directives AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex 和 WatchdogMutexPath 等指令。你需要做的是估计一下这些被替代的指令在2.2中的使用情况来决定是否删除或者使用Mutex来替代。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/apache-migration-2-2-to-2-4-ubuntu-14-04/
作者:[Adrian Dinu][a]
译者:[Vic020/VicYu](http://vicyu.net)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/adriand/
[1]:http://httpd.apache.org/docs/2.4/

View File

@@ -0,0 +1,157 @@
手把手教你安装Xubuntu Linux
==============================================
### 简介 ###
![Xubuntu](http://f.tqn.com/y/linux/1/S/J/J/1/fulldesktop.png)
这个教程会一步步教你如何安装Xubuntu Linux。
为什么你会想要安装Xubuntu呢这里有三个原因
1. 你有一台安装Windows XP的计算机但是微软已经不再对Windows XP提供支持
2. 你的[电脑运行很慢][1],你想要一个轻量级并且跟得上时代潮流的操作系统
3. 你想要自定义你的电脑使用体验
首先,你需要[下载Xubuntu并且创建一个可启动的USB驱动器][2]。
完成以后用优盘启动到当前版本的Xubuntu然后点击安装Xubuntu图标。
### 选择你的安装语言 ###
![选择语言](http://f.tqn.com/y/linux/1/S/K/J/1/xubuntuinstall1.png)
第一步,选择你的安装语言。
在左边的列表中选择语言然后单击“Continue”。
### 选择无线网络链接 ###
![选择无线网络](http://f.tqn.com/y/linux/1/S/L/J/1/xubuntuinstall2.png)
第二步,需要你来选择你的网络链接。这个步骤不是必须的,你在这个阶段可能会选择不设置网络链接是有原因的。
如果你的[网络状况十分糟糕][3],不选无线网络是一个明智的选择,因为安装程序会在安装过程中从网络上下载一些更新包。那么可想而知,你的安装过程就会花费很长的时间。
当然,如果你的[网速很快][4],选择一个无线网,然后输入密码就行了。
### 准备安装 ###
![准备安装](http://f.tqn.com/y/linux/1/S/M/J/1/xubuntuinstall3.png)
这时候你将会看到一个列表显示安装Xubuntu的一些准备条件
- 是否拥有至少6.2G的磁盘空间
- 是否链接到互联网
- 是否连接了电源
只有磁盘空间是必要条件。
在上一个步骤中提到过你可以在安装Xubuntu的过程中不安装更新包。在系统安装完成以后再安装更新包也是可以的。
安装过程中,如果电池电量耗完的话,你才必须要链接到到电源。
请注意,如果你连网了,这里有一个关闭安装过程中下载更新包的复选框。
这里还有一个复选框,提示你是否安装用于[播放MP3][5]或者[Flash视频][6]的第三方软件,当然,这些内容也可以在安装完成以后进行。
### 选择安装类型 ###
![选择安装类型](http://f.tqn.com/y/linux/1/S/N/J/1/xubuntuinstall4.png)
接下来的步骤是选择安装类型。显示哪些选项,取决于之前电脑上安装了什么系统。
在我的示例中,我已经安装了[Ubuntu MATE][7]所以我的选项是重装Ubuntu、删除并且重装、安装Xubuntu和Ubuntu双系统或者其它。
如果你的计算机上安装了Windows那么你得到的选项就是安装双系统使用Xubuntu替换Windows或者其他。
这个教程只是用来说明如何在计算机上安装Xubuntu而不是怎么安装双系统那将是一个完全不同的教程。
选择使用Xubuntu替换当前系统然后点击“Continue”。
> 备注:这会导致你的磁盘被完全清除,在继续安装之前,你应该备份你的数据。
### 选择安装磁盘 ###
![清除磁盘并且安装Xubuntu](http://f.tqn.com/y/linux/1/S/O/J/1/xubuntuinstall5.png)
选择你要安装Xubuntu的磁盘。
点击“Install Now”。
这时候会弹出一个警告窗口,会提示你选择的磁盘驱动器会被完全清除,然后会显示一个新创建的分区列表。
> 备注这是你改变主意的最后一个机会如果你点击继续磁盘就会被完全清除然后开始安装Xubuntu。
点击“Continue”来安装Xubuntu。
### 选择地区 ###
![选择地区](http://f.tqn.com/y/linux/1/S/P/J/1/xubuntuinstall7.png)
这个步骤中,你需要通过点击底图来选择你的地区。系统根据你的选择来设置时区,这样,你的时钟就可以显示正确的时间了。
选择以后点击“Continue”。
### 选择键盘布局 ###
![选择键盘布局](http://f.tqn.com/y/linux/1/S/Q/J/1/xubuntuinstall8.png)
选择你的键盘布局。
在左边的列表中选择键盘语言,然后在右边的列表显示确切的键盘布局。
你也可以点击“Detect Keyboard Layout”让系统选择最适合的键盘布局。
如果你需要确认键盘布局是否正确可以在“Type here to test your keyboard”输入字符。你需要特别注意fn键和一些符号例如英镑和美元符号。
如果在安装过程中没有设置正确也没关系安装完成以后在Xubuntu系统设置中也可以进行调整。
### 新增用户 ###
![新增用户](http://f.tqn.com/y/linux/1/S/R/J/1/xubuntuinstall9.png)
为了使用Xubuntu你至少需要设置一个用户因此安装程序需要你设置一个默认用户。
在前两个输入框里面,输入你的名字以及用来识别你的计算机的名字。
为用户选择一个用户名并且[创建一个密码][8]。为了保证你的密码输入正确,你需要输入两遍。
如果你想要系统自动登入而不是在每次启动的时候输入密码选择“Log in automatically”。对于我来说我肯定不会选择这个选项。
更好的选项是“Require my password to log in”并且如果你想要更高的安全等级勾选“Encrypt my home folder”选项。
点击“Continue”然后继续。
### 等待安装完成 ###
![等待安装完成](http://f.tqn.com/y/linux/1/S/S/J/1/xubuntuinstall10.png)
这个步骤中将会拷贝文件到你的电脑并且安装Xubuntu。
在这个过程中,你会看到一个简短的幻灯片。在这个时候你可以去[泡一杯咖啡][9]或者放松一下。
安装完成以后会弹出提示告诉你是否重新启动并且开始体验一下新安装的Xubuntu系统。
准备好了么?拔掉启动盘重新启动吧。
> 备注在UEFI机器上面安装Xubuntu的话需要一些额外的步骤在这个教程里面没有提到。关于这方面的内容且听下回分解。
via : http://linux.about.com/od/howtos/ss/A-Step-By-Step-Guide-To-Installing-Xubuntu-Linux.htm#step-heading
作者:[Gary Newell][a]
译者:[zhouj-sh](https://github.com/zhouj-sh)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linux.about.com/bio/Gary-Newell-132058.htm
[1]:http://windows.about.com/od/maintainandfix/a/8ways2speedup.htm
[2]:http://linux.about.com/od/howtos/ss/How-To-Create-A-Persistent-Bootable-Xubuntu-Linux-USB-Drive.htm
[3]:http://netforbeginners.about.com/od/basicinternethardware/f/Why-Internet-Connections-Can-Be-Slow.htm
[4]:http://netforbeginners.about.com/b/2011/09/07/test-your-internet-connection-speed-here.htm
[5]:http://mp3.about.com/od/freebies/tp/freemusictp.htm
[6]:http://animation.about.com/od/2danimationtutorials/ss/2d_fla_lesson1.htm
[7]:http://www.everydaylinuxuser.com/2014/11/ubuntu-mate-vs-lubuntu-on-old-netbook.html
[8]:http://netsecurity.about.com/cs/generalsecurity/a/aa112103b.htm
[9]:http://coffeetea.about.com/od/preparationandrecipes/

View File

@@ -0,0 +1,174 @@
3种方法来创建轻量、持久化的Xubuntu Linux USB系统盘
================================================================================
### 使用Universal USB Install创建持久化USB Xubuntu系统盘 ###
![](http://f.tqn.com/y/linux/1/S/2/J/1/xubuntudesktop.png)
这个教程为你介绍如何使用Xubuntu Linux创建一个轻量并且[持久化][1]的Linux USB系统盘。
> 译者注持久化Linux USB系统盘Persistent Linux USB drive安装在优盘的Linux系统允许用户保存数据到优盘而不是仅仅将这些修改留在内存中。这些数据可以在重启后恢复并且重新使用甚至是在其他的机器上面启动也没有关系。一般情况下持久化系统盘会安装一个压缩过的Linux操作系统。
为什么要这样做呢这里有5个很好的理由
1. 你想要在你的电脑上安装一个轻量并且功能完善的Linux版本。
2. 你的电脑没有硬盘那么一个Linux USB系统盘就可以让这台电脑摆脱被扔到垃圾堆的命运。
3. 你想体验一下Linux但是你却不想花太多的时间去准备。
4. 你想创建一个USB系统恢复盘并且在优盘上安装一些特定的应用程序。
5. 你想要一个可定制的Linux版本能装在后兜或者挂在钥匙圈上。
现在,我们有了充足的理由,那么开始做一些准备工作吧。
如果你使用的是Windows
1. 下载Xubuntu。
2. 下载Universal USB Installer。
3. 插入一个空的优盘。
4. 使用Universal USB Installer创建一个常驻系统启动盘。
如果你使用的是Ubuntu
1. 下载Xubuntu。
2. 使用Ubuntu Startup Creator。
如果你使用的是其他版本的Linux
1. 下载Xubuntu。
2. 使用UNetbootin。
还有一些场景,可能需要使用命令行,会更难一些,但是上面列的三种应该已经可以满足大部分的情况。
### 下载Xubuntu和Universal USB Installer ###
![](http://f.tqn.com/y/linux/1/S/G/J/1/xubuntuwebsite.JPG)
访问[Xubuntu网站][2],然后选一个你喜欢的版本下载。
目前有两个版本可供使用:
- [Trusty Tahr (14.04 LTS)][3]
- [Utopic Unicorn (14.10)][4]
14.04版是一个长期维护的版本维护周期会持续3年。14.10是最新版本但是只提供9个月的维护。
你选择了下载站点以后会提示你选择32位版本或者64位版本。如果你的电脑是32位就选32位版本同样如果你的电脑是64位那就选64位版本。
[点击这里有一个教程来教你辨别你的电脑是32位还是64位][5]。
可以从[Pendrive Linux网站][6]下载Universal USB Installer点击download链接过一会下载页面就会弹出来了。
### 使用Universal USB Installer创建一个Xubuntu启动优盘 ###
![](http://f.tqn.com/y/linux/1/S/-/J/1/uui1l.JPG)
下载完Universal USB Installer和Xubuntu以后运行Universal USB Installer出现安全警告时点击“Accept”。
Universal USB Installer用来创建一个持久化的Xubuntu启动优盘。
第一屏是许可协议。点击“I Agree”继续。
![](http://f.tqn.com/y/linux/1/S/0/J/1/uui2l.JPG)
Universal USB Installer主界面出现以后从下拉列表中选择你想要的配置i.e Xubuntu第二步点击“Browse”选择你下载的ISO文件的路径。
在电脑上插入一个空的优盘然后选中“Showing all drives”复选框。
在下拉列表中选中你的优盘(一定要确定选的是正确的盘符哦)。如果优盘不是空的,选中格式化复选框。
> 注:格式化优盘会清除优盘上的所有数据,首先一定要确认是否以及备份过相关的数据。
在第四步中选择用于保存“持久化”系统数据的存储空间大小。
点击“Create”按钮继续。
![](http://f.tqn.com/y/linux/1/S/1/J/1/uu3l.JPG)
最后一个界面提示你如果点击“Yes”那么将会直接应用你的配置。
这是停止安装的最后一个机会,一定要确定你选了正确的优盘盘符,并且优盘上没有需要备份的其他文件。
点击“Yes”然后耐心等待优盘创建完成。
> 注:创建持久化保存空间会花费一些时间,并且这时候进度条不会继续滚动。
这个过程完成以后重启电脑如果从优盘启动就会加载Xubuntu。
### 使用Ubuntu的Startup Disk Creator创建Xubuntu启动优盘 ###
![](http://f.tqn.com/y/linux/1/S/H/J/1/ubuntustartupdiskcreator.png)
如果你已经安装了Ubuntu那么创建持久化USB Xubuntu系统盘的最简单的办法就是使用Startup Disk Creator。
按下超级键Windows键打开Dash搜索“Startup Disk Creator”图标出现以后点击它。
如果你对Ubuntu Dash不太熟悉你可以[点击这里,查看一个完整的教程][7]。
Startup Disk Creator使用起来很简单。
界面被划分成两个部分。上部分指定下载的系统盘路径,下部分指定安装的优盘。
首先点击“Other”按钮第二步选择你所下载的Xubuntu ISO文件。
然后插入优盘点击“Erase”按钮清除优盘数据。
> 点击“Erase”会删除优盘中所有的数据记得先备份数据。
选中“Stored in reserved extra sapce”单选按钮然后拖动“How much”来确定你想要用来存储“持久化”数据的空间。
点击“Make Startup Disk”。
你创建的过程中你可能需要输入几次你的系统密码USB系统盘创建完成以后你就可以使用它启动到Xubuntu了。
### 使用UNetbootin创建持久化的Xubuntu系统盘 ###
![](http://f.tqn.com/y/linux/1/S/I/J/1/unetbootin1.png)
我要介绍的最后一个工具是UNetbootin这个工具在Windows和Linux上都可以使用。
个人来说在Windows系统上面我喜欢用Universal USB Installer但Linux的话UNetbootin更合适一些。
> UNetbootin并不是100%完美的不是所有的Linux发行版都支持。
Windows平台可以点击[这里][8]下载UNetbootin。
Linux平台可以使用package manager安装UNetbootin。
确认你的优盘已经连接到电脑上,确认优盘已经格式化,并且在优盘上没有其他的数据。
在Windows平台上运行UNetbootin只需要双击可执行程序即可在Linux运行的话则需要提升权限。
在Linux上如何运行取决于你使用的是何种桌面环境以及Linux发行版。从命令行运行的话输入下列命令
> sudo unetbootin
UNetbootin的界面分为两个部分。你可以在上半部分选择一个Linux发行版然后下载它如果已经下载了某个发行版可以在下半部分选择已经下载的系统盘。
点击“Diskimage”单选框然后点击三个点的按钮。找到已经下载的Xubuntu ISO文件。路径会显示到按钮旁边的文本框里面。
设置“Space used to preserve files across reboots”的值来指定你想要用来存储“持久化”数据的空间大小。
类型选择USB drive然后选择优盘的盘符。
点击“OK”来创建一个持久化Xubuntu启动优盘。
创建的过程要花一些时间创建完成以后你就可以通过优盘启动到Xubuntu系统了。
如果你想要创建一个支持UEFI的Xubuntu启动优盘[照着这个教程来做][8]只需要把Ubuntu ISO替换为Xubuntu ISO就可以了。
via : http://linux.about.com/od/howtos/ss/How-To-Create-A-Persistent-Bootable-Xubuntu-Linux-USB-Drive.htm
作者:[Gary Newell][a]
译者:[zhouj-sh](https://github.com/Zhouj-sh)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linux.about.com/bio/Gary-Newell-132058.htm
[1]:http://www.pendrivelinux.com/what-is-persistent-linux/
[2]:http://xubuntu.org/getxubuntu/
[3]:http://www.dedoimedo.com/computers/xubuntu-trusty.html
[4]:http://www.dedoimedo.com/computers/xubuntu-utopic.html
[5]:http://pcsupport.about.com/od/fixtheproblem/f/32-bit-64-bit-windows.htm
[6]:http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
[7]:http://linux.about.com/od/howtos/fl/Learn-Ubuntu-The-Unity-Dash.htm
[8]:http://linux.about.com/od/howtos/ss/How-To-Create-A-UEFI-Bootable-Ubuntu-USB-Drive-Using-Windows.htm

View File

@@ -0,0 +1,76 @@
Cutegram: 一个GNU/Linux下不错的Telegram客户端
================================================================================
不需要再介绍**Telegram**了对吧。Telegram是一款流行的免费即时通信工具帮助你在全球与朋友聊天。不像WhatsappTelegram是永久免费、没有广告、没有订阅费用的。并且Telegram客户端也是开源的。Telegram在许多不同的平台中都有包括Linux、Android、iOS、Windows Phone和Mac OS X。使用telegram发送的消息是高度加密且会自我销毁。它很安全并且没有对你的多媒体和聊天的大小作限制。
在[先前的教程][1]中我们已经提到你可以在Ubuntu/Debian中安装Telegram。然而有一个新的Telegram客户端叫**Cutegram**出现了,可以使你的聊天体验更加有趣和简单。
### Cutegram是什么 ###
Cutegram是一款专注于用户友好、与Linux桌面环境兼容和易于使用的开源 telegram 的 GNU/Linux客户端。Cutegram使用Qt5、QML、libqtelegram、libappindication、AsemanQtTools技术和Faenzatu图标和Twitter emojie图片集。它在GPLv3许可证下免费发布。
### 安装 Cutegram ###
进入Cutegrm的首页病根据你的发行版版本选择最新的版本。我使用的是Ubuntu 64位版所以我下载的是.deb文件。
wget http://aseman.co/downloads/cutegram/cutegram_1.0.2-1-amd64.deb
现在如下安装Cutegram
sudo apt-get install gdebi
sudo gdebi cutegram_1.0.2-1-amd64.deb
对于其他发行版,运行下面的命令。
**64位:**
wget http://aseman.co/downloads/cutegram/cutegram-1.0.2-linux-x64-installer.run
**32位:**
wget http://aseman.co/downloads/cutegram/cutegram-1.0.2-linux-installer.run
设置执行权限:
chmod a+x cutegram-1.0.2-linux*.run
如下进行安装。
sudo ./cutegram-1.0.2-linux*.run
### 使用 ###
在菜单或者Unity dash中启动Cutegram。在登录界面选择你的国家并输入电话号码最好点击**Login**
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/Cutegram_005.png)
一个验证码将会发送到你手机上。输入验证码并点击**Sign in**
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/Cutegram_002.png)
你会看到
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/Cutegram_003.png)
开始聊天吧!
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/Cutegram_004.png)
接着,你可以设置头像,开始新的聊天/群聊,或者使用左边面板的按钮开始秘密聊天。
玩得开心!干杯!!
更多细节,请关注[Cutegram 网站][2]
--------------------------------------------------------------------------------
via: http://www.unixmen.com/cutegram-better-telegram-client-gnulinux/
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/sk/
[1]:http://www.unixmen.com/install-telegram-desktop-via-ppa/
[2]:http://aseman.co/en/products/cutegram/

View File

@@ -0,0 +1,93 @@
如何在CentOS 7中禁止IPv6
================================================================================
最近我的一位朋友问我该如何禁止IPv6。在搜索了一番之后我找到了下面的方案。下面就是在我的CentOS 7 迷你服务器禁止IPv6的方法。
你可以用两个方法做到这个。
### 方法 1 ###
编辑文件**/etc/sysctl.conf**
vi /etc/sysctl.conf
添加下面的行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
如果你想要为特定的网卡禁止IPv6比如对于enp0s3添加下面的行。
net.ipv6.conf.enp0s3.disable_ipv6 = 1
保存并退出文件。
执行下面的命令来使设置生效。
sysctl -p
### 方法 2 ###
要在运行的系统中禁止IPv6依次输入下面的命令
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
或者,
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
就是这样。现在IPv6已经禁止了。
### 我在禁止IPv6后遇到问题怎么办 ###
你可能在禁止IPv6后遇到一些问题
#### 问题1 ####
如果你在禁止IPv6后SSH遇到问题按照下面的做。
编辑 **/etc/ssh/sshd_config** 文件
vi /etc/ssh/sshd_config
找到下面的行:
#AddressFamily any
把它改成:
AddressFamily inet
或者,在这行的前面去掉注释**(#)**
#ListenAddress 0.0.0.0
接着重启ssh来使改变生效。
systemctl restart sshd
#### 问题2 ####
如果你在禁止Ipv6后启动postfix遇到问题编辑**/etc/postfix/main.cf**
vi /etc/postfix/main.cf
注释掉配置中的localhost部分并且使用ipv4回环。
#inet_interfaces = localhost
inet_interfaces = 127.0.0.1
就是这样,干杯!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/disable-ipv6-centos-7/
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/sk/

View File

@@ -0,0 +1,33 @@
如何在崩溃后重启Cinnamon
================================================================================
Cinnamon是一个提供了高级创新特性和传统用户体验的Linux桌面环境。桌面布局和Gnome 2相似。底层的技术与Gnome Shell相似。它的重点是让用户以熟悉的方式得到简单和舒适的桌面体验。
本篇中我们会展示一个快速的方法来重启Cinnamon而不用在崩溃后登出或者重启。
下图是Cinnamon桌面崩溃后文本和图标从菜单和面板消失了。
![](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/cinnamon_crash.png)
要重启Cinnamon
按下**Alt + F2** 将会打开一个命令菜单,输入**r**并按下回车。
![](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/type_r.png)
Cinnamon应该会重新在面板和菜单中显示图标和文本了。
![](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/linux_mint_cinnamon_menu.png)
试试吧!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/quick-tip-restart-cinnamon-crash/
作者:[Enock Seth Nyamador][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/seth/

View File

@@ -0,0 +1,96 @@
如果使用32位整型会溢出那么是否可以使用一个40位结构体代替64位长整型
======
###问题:
假如说使用32位的整型会溢出在不考虑使用长整型的情况下如果我们只需要表示2的40次方范围内的数是否可以利用某些40位长的数据类型来表示呢这样的话每个整型数就可以节省24位的空间。
如果可以,该怎么做?
需求是:我现在必须处理数以亿计的数字,所以在存储空间上受到了很大的限制。
###回答:
可以是可以,但是……
这种方法的确可行,但这么做通常没什么意义(因为几乎没有程序需要处理多达十亿的数字):
```C
#include <stdint.h> // 不要考虑使用long long类型
struct bad_idea
{
uint64_t var : 40;
};
```
在这里变量var占据40位大小但是这是以生成代码时拥有非常低的运行效率来换取的事实证明“非常”二字言过其实了——测试中程序开销仅仅增加了1%到2%正如下面的测试时间所示而且这么做通常没什么用。除非你还需要保存一个24位的值或者是8位、16位的值这样你皆可以它们放到同一个结构中。不然的话因为对齐内存地址产生的开销会抵消这么做带来的好处。
在任何情况下,除非你是真的需要保存数以亿计的数字,否则这样做给内存消耗带来的好处是可以忽略不计的(但是为了处理这些位字段的额外代码量是不可忽略的!)。
###说明:
在此期间这个问题已经被更新了是为了说明实际上确实有需要处理数以亿计数字的情况。假设采取某些措施来防止因为结构体对齐和填充抵消好处比如在后24位中存储其它的内容或者使用多个8位来存储40位那么这么做就变得有意义了。
如果有十亿个数每个数都节省三个字节的空间那么这么做就非常有用了。因为使用更小的空间存储要求更少的内存页也就会产生更少的cache和TLB不命中和内存缺页单个缺页会产生数以千万计的指令 [译者注:直译是这样,但语义说不通!])。
尽管上面提到的情况不足以充分利用到剩余的24位它仅仅使用了40位部分如果确实在剩余位中放入了有用的数据那么使用类似下面的方法会使得这种思路就管理内存而言显得非常有用。
```C
struct using_gaps
{
uint64_t var : 40;
uint64_t useful_uint16 : 16;
uint64_t char_or_bool : 8;
};
```
结构体大小和对齐长度等于64位整型的大小所以只要使用得当就不会浪费空间比如对一个保存10亿个数的数组使用这个结构不考虑使用指定编译器的扩展。如果你不会用到一个8位的值那么你可以使用一个48位和16位的值giving a bigger overflow margin
或者以牺牲可用性为代价把8个64位的值放入这样的结构体中或者使用40和64的组合使得其和满足320。当然在这种情况下通过代码去访问数组结构体中的元素会变得非常麻烦尽管一种方法是实现一个operator[]在功能上还原线性数组,隐藏结构体的复杂性)。
###更新:
我写了一个快速测试工具只是为了获得位字段的开销以及伴随位字段引用的重载操作。由于长度限制将代码发布在gcc.godbolt.org上在本人64位Win7上的测试结果如下
```TXT
运行测试的数组大小为1048576
what alloc seq(w) seq(r) rand(w) rand(r) free
-----------------------------------------------------------
uint32_t 0 2 1 35 35 1
uint64_t 0 3 3 35 35 1
bad40_t 0 5 3 35 35 1
packed40_t 0 7 4 48 49 1
运行测试的数组大小为16777216
what alloc seq(w) seq(r) rand(w) rand(r) free
-----------------------------------------------------------
uint32_t 0 38 14 560 555 8
uint64_t 0 81 22 565 554 17
bad40_t 0 85 25 565 561 16
packed40_t 0 151 75 765 774 16
运行测试的数组大小为134177228
what alloc seq(w) seq(r) rand(w) rand(r) free
-----------------------------------------------------------
uint32_t 0 312 100 4480 4441 65
uint64_t 0 648 172 4482 4490 130
bad40_t 0 682 193 4573 4492 130
packed40_t 0 1164 552 6181 6176 130
```
我们看到位字段的额外开销是微不足道的但是当以友好的方式线性访问数据时伴随位字段引用的操作符重载产生的开销则相当显著大概有3倍。在另一方面随机访问产生的开销则无足轻重。
这些时间表明简单的使用64位整型会更好因为它们在整体性能上要比位字段好尽管占用更多的内存但是显然它们并没有考虑随着数据集增大带来的缺页开销。一旦程序内存超过RAM大小结果可能就不一样了未亲自考证
------
via:[stackoverflow](http://stackoverflow.com/questions/27705409/if-a-32-bit-integer-overflows-can-we-use-a-40-bit-structure-instead-of-a-64-bit/27705562#27705562)
作者:[Damon][a][Michael Kohne][b]
译者:[KayGuoWhu](https://github.com/KayGuoWhu)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://stackoverflow.com/users/572743/damon
[b]:http://stackoverflow.com/users/5801/michael-kohne

View File

@@ -0,0 +1,157 @@
在 Linux 下你所不知道的 df 命令的那些功能
================================================================================
> **问题**: 我知道在Linux上我可以用df命令来查看磁盘使用空间。你能告诉我df命令的实际例子使我可以最大限度得利用它吗
对于磁盘存储方面有很多命令行或基于GUI的工具它可以告诉你关于当前磁盘空间的使用情况。这些工具用各种人们可读的格式展示磁盘利用率的详细信息比如易于理解的总结详细的统计信息或直观的[可视化报告][1]。如果你只想知道不同文件系统有多少空闲的磁盘空间那么df命令可能是你所需要的。
![](https://farm9.staticflickr.com/8632/15505309473_51bffec3f1_b.jpg)
df命令可以展示任何“mounted”文件系统的磁盘利用率。该命令可以用不同的方式调用。这里有一些**有用的** df **命令例子**.
### 用人们可读的方式展示 ###
默认情况下df命令用1K为块来展示磁盘空间这看起来不是很直观。“-h”参数使df用更可读的方式打印磁盘空间例如 100K200M3G
$ df -h
----------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu-root 909G 565G 299G 66% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 785M 1.2M 784M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 63M 3.8G 2% /run/shm
none 100M 48K 100M 1% /run/user
/dev/sda1 228M 98M 118M 46% /boot
### 展示Inode使用情况 ###
当你监视磁盘使用情况时你必须注意的不仅仅是磁盘空间还有“inode”的使用情况。在Linux中inode是用来存储特定文件的元数据的一种数据结构在创建一个文件系统时inode的预先定义数量将被分配。这意味着**一个文件系统可能耗尽空间不只是因为大文件用完了所有可用空间也可能是因为很多小文件用完了所有可能的inode**。用“-i”选项展示inode使用情况。
$ df -i
----------
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/ubuntu-root 60514304 1217535 59296769 3% /
none 1004417 13 1004404 1% /sys/fs/cgroup
udev 1000623 552 1000071 1% /dev
tmpfs 1004417 608 1003809 1% /run
none 1004417 11 1004406 1% /run/lock
none 1004417 288 1004129 1% /run/shm
none 1004417 28 1004389 1% /run/user
/dev/sda1 124496 346 124150 1% /boot
### 展示磁盘总利用率 ###
默认情况下, df命令显示磁盘的单个文件系统的利用率。如果你想知道的所有文件系统的总磁盘使用量增加“ --total ”选项(见最下面的汇总行)。
$ df -h --total
----------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu-root 909G 565G 299G 66% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 785M 1.2M 784M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 62M 3.8G 2% /run/shm
none 100M 48K 100M 1% /run/user
/dev/sda1 228M 98M 118M 46% /boot
total 918G 565G 307G 65% -
### 展示文件系统类型 ###
默认情况下df命令不显示文件系统类型信息。用“-T”选项来添加文件系统信息到输出中。
$ df -T
----------
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root ext4 952893348 591583292 312882844 66% /
none tmpfs 4 0 4 0% /sys/fs/cgroup
udev devtmpfs 4002492 4 4002488 1% /dev
tmpfs tmpfs 803536 1196 802340 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 4017668 60176 3957492 2% /run/shm
none tmpfs 102400 48 102352 1% /run/user
/dev/sda1 ext2 233191 100025 120725 46% /boot
### 包含或排除特定的文件系统类型 ###
如果你想知道特定文件系统类型的剩余空间,用“-t <type>”选项。你可以多次使用这个选项来包含更多的文件系统类型。
$ df -t ext2 -t ext4
----------
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591583380 312882756 66% /
/dev/sda1 233191 100025 120725 46% /boot
排除特定的文件系统类型,用“-x <type>”选项。同样,你可以用这个选项多次来排除多种文件系统类型。
$ df -x tmpfs
### 显示一个具体的挂载点磁盘使用情况 ###
如果你用df指定一个挂载点它将报告挂载在那个地方的文件系统的磁盘使用情况。如果你指定一个普通文件或一个目录而不是一个挂载点df将显示包含这个文件或目录的文件系统的磁盘利用率。
$ df /
----------
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591583528 312882608 66% /
----------
$ df /home/dev
----------
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591583528 312882608 66% /
### 显示虚拟文件系统的信息 ###
如果你想显示所有已经存在的文件系统(包括虚拟文件系统)的磁盘空间信息,用“-a”选项。这里虚拟文件系统是指没有相对应的物理设备的假文件系统例如tmpfscgroup虚拟文件系统或FUSE文件安系统。这些虚拟文件系统大小为0不用“-a”选项将不会被报告出来。
$ df -a
----------
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591578716 312887420 66% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
none 4 0 4 0% /sys/fs/cgroup
none 0 0 0 - /sys/fs/fuse/connections
none 0 0 0 - /sys/kernel/debug
none 0 0 0 - /sys/kernel/security
udev 4002492 4 4002488 1% /dev
devpts 0 0 0 - /dev/pts
tmpfs 803536 1196 802340 1% /run
none 5120 0 5120 0% /run/lock
none 4017668 58144 3959524 2% /run/shm
none 102400 48 102352 1% /run/user
none 0 0 0 - /sys/fs/pstore
cgroup 0 0 0 - /sys/fs/cgroup/cpuset
cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
/dev/sda1 233191 100025 120725 46% /boot
vmware-vmblock 0 0 0 - /run/vmblock-fuse
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/check-disk-space-linux-df-command.html
译者:[mtunique](https://github.com/mtunique)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/visualize-disk-usage-linux.html

View File

@@ -0,0 +1,66 @@
Linux 有问必答: 如何在Linux中加入cron任务
================================================================================
> **提问** 我想在我的Linux中安排一个计划任务该任务在固定时间周期性地运行。我该如何在Linux中添加一个cron任务
cron是Linux中默认的计划任务。使用cron你可以安排一个计划比如命令或者shell脚本周期性地运行或者在指定的分钟、小时、天、周、月等特定时间运行。cron在你安排不同的常规维护任务时是很有用的比如周期性地备份、日志循环、检查文件系统、监测磁盘空间等等。
### 从命令行中添加cron任务 ###
要添加cron任务你可以使用称为crontab的命令行工具。
输入下面的命令会创建一个以当前用户运行的新cron任务。
$ crontab -e
如果你想要以其他用户运行cron任务输入下面的命令。
$ sudo crontab -u <username> -e
你将会看见一个文本编辑窗口这里你可以添加或者编辑cron任务。默认使用nono编辑器。
![](https://farm9.staticflickr.com/8586/16200331362_1385807ac0_b.jpg)
每个cron任务的格式如下。
<分钟> <小时> <日> <月> <星期> <命令>
前5个元素定义了任务的计划最后一个元素是命令或者脚本的完整路径。
![](https://farm8.staticflickr.com/7472/16199272841_dffe0b2873_b.jpg)
下面是一些cron任务示例。
- **\* * * * * /home/dan/bin/script.sh**: 每分钟运行。
- **0 * * * * /home/dan/bin/script.sh**: 每小时运行。
- **0 0 * * * /home/dan/bin/script.sh**: 每天零点运行。
- **0 9,18 * * * /home/dan/bin/script.sh**: 在每天的9AM和6PM运行。
- **0 9-18 * * * /home/dan/bin/script.sh**: 在9AM到6PM的每个小时运行。
- **0 9-18 * * 1-5 /home/dan/bin/script.sh**: 周一到周五的9AM到6PM每小时运行。
- **\*/10 * * * * /home/dan/bin/script.sh**: 每10分钟运行。
一旦完成上面的设置步骤后按下Ctrl+X来保存并退出编辑器。此时新增的计划任务应该已经激活了。
要查看存在的计划任务,使用下面的命令:
$ crontab -l
### 从GUI添加计划任务 ###
如果你在Linux桌面环境中你可以使用crontab的更加友好的GUI前端来添加或者添加一个cron任务。
在Gnome桌面中有一个Gnome Schedulegnome-schedule包
![](https://farm8.staticflickr.com/7484/16015054699_d96f0e9b6a_c.jpg)
在KDE桌面中有一个Task Schedulerkcron包
![](https://farm8.staticflickr.com/7473/16175298266_825376c901_c.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/add-cron-job-linux.html
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,113 @@
Linux有问必答如何检查Linux的内存使用状况
================================================================================
>**问题**我想要监测Linux系统的内存使用状况。有哪些可用的图形界面或者命令行工具来检查当前内存使用情况
当涉及到Linux系统性能优化的时候物理内存是一个最重要的因素。自然的Linux提供了丰富的选择来监测珍贵的内存资源的使用情况。不同的工具在监测粒度例如全系统范围每个进程每个用户接口方式例如图形用户界面命令行ncurses或者运行模式交互模式批量处理模式上都不尽相同。
下面是一个可供选择的但并不全面的图形或命令行工具列表这些工具用来检查Linux平台中已用和可用的内存。
### 1. /proc/meminfo ###
一种最简单的方法是通过“/proc/meminfo”来检查内存使用状况。这个动态更新的虚拟文件事实上是诸如freetop和ps这些与内存相关的工具的信息来源。从可用/闲置物理内存数量到等待被写入缓存的数量或者已写回磁盘的数量,只要是你想要的关于内存使用的信息,“/proc/meminfo”应有尽有。特定进程的内存信息也可以通过“/proc/\<pid>/statm”和“/proc/\<pid>/status”来获取。
$ cat /proc/meminfo
![](https://farm8.staticflickr.com/7483/15989497899_bb6afede11_b.jpg)
### 2. atop ###
atop命令是用于终端环境的基于ncurses的交互式的系统和进程监测工具。它展示了动态更新的系统资源摘要CPU, 内存, 网络, 输入/输出, 内核并且用醒目的颜色把系统高负载的部分以警告信息标注出来。它同样提供了类似于top的线程或用户资源使用视图因此系统管理员可以找到哪个进程或者用户导致的系统负载。内存统计报告包括了总计/闲置内存,缓存的/缓冲的内存和已提交的虚拟内存。
$ sudo atop
![](https://farm8.staticflickr.com/7552/16149756146_893773b84c_b.jpg)
### 3. free ###
free命令是一个用来获得内存使用概况的快速简单的方法这些信息从“/proc/meminfo”获取。它提供了一个快照用于展示总计/闲置的物理内存和系统交换区,以及已使用/闲置的内核缓冲区。
$ free -h
![](https://farm8.staticflickr.com/7531/15988117988_ba8c6b7b63_b.jpg)
### 4. GNOME System Monitor ###
GNOME System Monitor 是一个图形界面应用它展示了包括CPU内存交换区和网络在内的系统资源使用率的较近历史信息。它同时也可以提供一个带有CPU和内存使用情况的进程视图。
$ gnome-system-monitor
![](https://farm8.staticflickr.com/7539/15988118078_279f0da494_c.jpg)
### 5. htop ###
htop命令是一个基于ncurses的交互式的进程视图它实时展示了每个进程的内存使用情况。它可以报告所有运行中进程的常驻内存大小RSS、内存中程序的总大小、库大小、共享页面大小和脏页面大小。你可以横向或者纵向滚动进程列表进行查看。
$ htop
![](https://farm9.staticflickr.com/8236/8599814378_de071de408_c.jpg)
### 6. KDE System Monitor ###
就像GNOME桌面拥有GNOME System Monitor一样KDE桌面也有它自己的对口应用KDE System Monitor。这个工具的功能与GNOME版本极其相似也就是说它同样展示了一个关于系统资源使用情况以及带有每个进程的CPU/内存消耗情况的实时历史记录。
$ ksysguard
![](https://farm8.staticflickr.com/7479/15991397329_ec5d786ffd_c.jpg)
### 7. memstat ###
memstat工具对于识别正在消耗虚拟内存的可执行部分、进程和共享库非常有用。给出一个进程识别号memstat即可识别出与之相关联的可执行部分、数据和共享库究竟使用了多少虚拟内存。
$ memstat -p <PID>
![](https://farm8.staticflickr.com/7518/16175635905_1880e50055_b.jpg)
### 8. nmon ###
nmon工具是一个基于ncurses系统基准测试工具它能够以交互方式监测CPU、内存、磁盘I/O、内核、文件系统以及网络资源。对于内存使用状况而言它能够展示像总计/闲置内存、交换区、缓冲的/缓存的内存,虚拟内存页面换入换出的统计,所有这些都是实时的。
$ nmon
![](https://farm9.staticflickr.com/8648/15989760117_30f62f4aba_b.jpg)
### 9. ps ###
ps命令能够实时展示每个进程的内存使用状况。内存使用报告里包括了 %MEM (物理内存使用百分比), VSZ (虚拟内存使用总量), 和 RSS (物理内存使用总量)。你可以使用“--sort”选项来对进程列表排序。例如按照RSS降序排序
$ ps aux --sort -rss
![](https://farm9.staticflickr.com/8602/15989881547_ca40839c19_c.jpg)
### 10. smem ###
[smem][1]命令允许你测定不同进程和用户的物理内存使用状况,这些信息来源于“/proc”目录。它利用“按比例分配大小PSS”指标来精确量化Linux进程的有效内存使用情况。内存使用分析结果能够输出为柱状图或者饼图类的图形化图表。
$ sudo smem --pie name -c "pss"
![](https://farm8.staticflickr.com/7466/15614838428_eed7426cfe_c.jpg)
### 11. top ###
top命令提供了一个运行中进程的实时视图以及特定进程的各种资源使用统计信息。与内存相关的信息包括 %MEM (内存使用率), VIRT (虚拟内存使用总量), SWAP (换出的虚拟内存使用量), CODE (分配给代码执行的物理内存数量), DATA (分配给非执行的数据的物理内存数量), RES (物理内存使用总量; CODE+DATA), 和 SHR (有可能与其他进程共享的内存数量)。你能够基于内存使用情况或者大小对进程列表进行排序。
![](https://farm8.staticflickr.com/7464/15989760047_eb8d51d9f2_c.jpg)
### 12. vmstat ###
vmstat命令行工具显示涵盖了CPU、内存、中断和磁盘I/O在内的各种系统活动的瞬时和平均统计数据。对于内存信息而言命令不仅仅展示了物理内存使用情况例如总计/已使用内存和缓冲的/缓存的内存),还同样展示了虚拟内存统计数据(例如,内存页的换入/换出,虚拟内存页的换入/换出)
$ vmstat -s
![](https://farm9.staticflickr.com/8582/15988236860_3f142008d2_b.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/check-memory-usage-linux.html
译者:[Ping](https://github.com/mr-ping)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/visualize-memory-usage-linux.html

View File

@@ -0,0 +1,44 @@
Linux有问必答如何在curl中设置自定义的HTTP头
================================================================================
> **问题**我正尝试使用curl命令获取一个URL但除此之外我还想在传出的HTTP请求中设置一些自定义的头部字段。我如何能够在curl中使用自定义的HTTP头呢
curl是一个强大的命令行工具它可以通过网络将信息传递给服务器或者从服务器获取数据。他支持很多的传输协议尤其是HTTP/HTTPS以及其他诸如FTP/FTPS RTSP POP3/POP3S, SCP, IMAP/IMAPS协议等。当你使用curl向一个URL发送HTTP请求的时候它会使用一个默认只包含必要的头部字段User-Agent, Host, and Accept的HTTP头。
![](https://farm8.staticflickr.com/7568/16225032086_fb8f1c508a_b.jpg)
在一些个例中或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如你或许想要重写“HOST”字段来测试一个[负载均衡][1],或者通过重写"User-Agent"字符串来假冒特定浏览器以解决一些访问限制的问题。
为了解决所有这些问题curl提供了一个简单的方法来完全控制传出HTTP请求的HTTP头。你需要的这个参数是“-H” 或者 “--header”。
为了定义多个HTTP头部字段"-H"选项可以在curl命令中被多次指定。
例如以下命令设置了3个HTTP头部字段。也就是说重写了“HOST”字段并且添加了两个字段"Accept-Language" 和 "Cookie"
$ curl -H 'Host: 157.166.226.25' -H 'Accept-Language: es' -H 'Cookie: ID=1234' http://cnn.com
![](https://farm8.staticflickr.com/7520/16250111432_de39638ec0_c.jpg)
对于"User-Agent", "Cookie", "Host"这类标准的HTTP头部字段通常会有另外一种设置方法。curl命令提供了特定的选项来对这些头部字段进行设置
- **-A (or --user-agent)**: 设置 "User-Agent" 字段.
- **-b (or --cookie)**: 设置 "Cookie" 字段.
- **-e (or --referer)**: 设置 "Referer" 字段.
例如以下两个命令是等效的。这两个命令同样都对HTTP头的"User-Agent"字符串进行了更改。
$ curl -H "User-Agent: my browser" http://cnn.com
$ curl -A "my browser" http://cnn.com
wget是另外一个类似于curl可以用来获取URL的命令行工具。并且wget也一样允许你使用一个自定义的HTTP头。点击[这里][2]查看wget命令的详细信息。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/custom-http-header-curl.html
译者:[Ping](http://mr-ping.com)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/haproxy-http-load-balancer-linux.html
[2]:http://xmodulo.com/how-to-use-custom-http-headers-with-wget.html

View File

@@ -0,0 +1,87 @@
4个最流行的Linux平台开源代码编辑器
===
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Best_Open_Source_Editors.jpeg)
寻找**Linux平台最棒的代码编辑器**?如果你询问那些很早就玩Linux的人他们会回答是Vi, Vim, Emacs, Nano等。但是我今天不讨论那些。我将谈论一些新时代尖端、漂亮、时髦而且十分强大, 功能丰富的**最好的Linux平台开源代码编辑器**,它们将会提升你的编程经验。
### Linux平台最时髦的开源代码编辑器 ###
我使用Ubuntu作为我的主桌面所以我提供的安装说明是基于Ubuntu的发行版。但是这并不意味着本文列表就是**Ubuntu最好的文本编辑器**因为本列表是适用于任何Linux发行版。而且列表的介绍顺序并没有特定的优先级别。
#### Brackets ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/brackets_UI.jpeg)
[Brackets][1]是出自[Adobe][2]的一个开源代码编辑器。它专门关注web设计者的需求内置支持HTML, CSS和Java Script。它轻量级但却十分强大提供在线编辑和实时预览。而且为了你能更好地体验Brackets你可以使用许多可用的插件。
为了[在Ubuntu][3]以及其它基于Ubuntu的发行版诸如Linux Minit上安装Brackets你可以使用这个非官方的PPA源
sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets
其他的Linux发行版本你可以通过下载源代码或相应Linux, OS X和Windows的二进制文件进行安装。
- [下载Brackets源码和二进制文件][5]
#### Atom ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/08/Atom_Editor.jpeg)
[Atom][5]是为程序员准备的另一个时尚开源代码编辑器。Atom由Github开发被誉为“21世纪可破解的文本编辑器”。Atom的界面和Sublime Text编辑器十分相似。Sublime Text是一个十分流行但闭源的文本编辑器。
Atom最近已经发布了 .deb 和 .rpm包所以在Debian和基于Fedora的Linux版本上安装很简单。当然你也可以获取它的源代码。
- [下载Atom .deb][6]
- [下载Atom .rpm][7]
- [获取Atom源代码][8]
#### Lime Text ###
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/08/LimeTextEditor.jpeg)
如果你喜欢Sublime Text但是你对它的闭源十分反感。别担心我们有一个[Sublime Text的开源克隆][9],叫做[Lime Text][10]。它基于Go, HTML和QT构造。说它是Sublime Text的克隆背后原因是Sublime Text2仍有许多bug而且Sublime Text3到目前为止仍处于测试版本。Sublime Text在开发过程中的bug是否修复外界并不知情。
所以开源爱好者们你们可以很开心地通过下面的连接获得Lime Text的源码
- [获取Lime Text源码][11]
#### Light Table ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/Light_Table.jpeg)
被誉为“下一代的代码编辑器”,[Light Table][12]是另一个时髦功能丰富的开源编辑器它更像是一个IDE而非仅仅是一个文本编辑器。并且有许多可以提高其性能的扩展方法。内联评价将是你会爱上它的原因。你一定要试用一下看这样你才会体会它的实用之处。
- [获取Light Table的源码][13]
### 你的选择是什么? ###
在Linux平台我们不能只局限于这四种代码编辑器。这份列表仅介绍了一些时髦的可供程序员使用的编辑器。当然你也有许多其他的选择比如[Notepad++的替代品Notepadqq][14]或者[SciTE][15]等等。那么,文中这四个编辑器,你最喜欢哪个呢?
---
via: http://itsfoss.com/best-modern-open-source-code-editors-for-linux/
作者:[Abhishek][a]
译者:[su-kaiyao](https://github.com/su-kaiyao)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/Abhishek/
[1]:http://brackets.io/
[2]:http://www.adobe.com/
[3]:http://itsfoss.com/install-brackets-ubuntu/
[4]:https://github.com/adobe/brackets/releases
[5]:https://atom.io/
[6]:https://atom.io/download/deb
[7]:https://atom.io/download/rpm
[8]:https://github.com/atom/atom/blob/master/docs/build-instructions/linux.md
[9]:http://itsfoss.com/lime-text-open-source-alternative/
[10]:http://limetext.org/
[11]:https://github.com/limetext/lime
[12]:http://lighttable.com/
[13]:https://github.com/LightTable/LightTable
[14]:http://itsfoss.com/notepadqq-notepad-for-linux/
[15]:http://itsfoss.com/scite-the-notepad-for-linux/

View File

@@ -0,0 +1,33 @@
Ubuntu 15.04即将整合Linux内核3.19分支
----
*Ubuntu已经开始整合一个新的内核分支*
![Ubuntu 15.04 shortcuts](http://i1-news.softpedia-static.com/images/news2/Ubuntu-15-04-to-Integrate-Linux-Kernel-3-19-Branch-Soon-471121-2.jpg)
Linux内核是一个发行版中最重要的组成部分Ubuntu用户很想知道哪个版本将用于预计几个月后就会发布的15.04分支的稳定版中。
Ubuntu和Linux内核开发周期并不同步所以很难预测最终哪个版本将应用在Ubuntu 15.04中。目前Ubuntu 15.04长尾黑颚猴使用的是Linux内核3.18但是开发者们已经准备应用3.19分支了。
“我们的Vivid的内核仍然基于v3.18.2的上游稳定内核但是我们很快将重新基于v3.18.3内核开发。我们也将把我们的非稳定版分支的基础变更到v3.19-rc5然后上传到我们的团队PPA。”Canonical的Joseph Salisbury[](1)。
Linux内核3.19仍然处于开发阶段预计还要几个星期才会出稳定版本但是有充足的时间将它加入到Ubuntu中并测试。但是不可能等到3.20分支了举个例子即使它能在4月23日前发布。
你现在就可以从Softpedia[下载Ubuntu 15.04](2),试用一下。这是一个每日构建版本,会包含发行版中目前已经做出的所有改善。
--------------------------------------------------------------------------------
via:http://linux.softpedia.com/blog/Ubuntu-15-04-to-Integrate-Linux-Kernel-3-19-Branch-Soon-471121.shtml
本文发布时间:25 Jan 2015, 20:39 GMT
作者:[Silviu Stahie][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://news.softpedia.com/editors/browse/silviu-stahie
[1]:https://lists.ubuntu.com/archives/ubuntu-devel/2015-January/038644.html
[2]:http://linux.softpedia.com/get/Linux-Distributions/Ubuntu-Vivid-Vervet-103651.shtml

View File

@@ -0,0 +1,47 @@
Android 中的 Wi-Fi 直连方式的 Bug 会导致拒绝服务
----
*Google标记这个问题为低严重性并不急着修复*
![Wi-Fi Direct glitch crashes Android](http://i1-news.softpedia-static.com/images/news2/Bug-In-Wi-Fi-Direct-Android-Implementation-Causes-Denial-of-Service-471299-2.jpg)
Android处理Wi-Fi直连连接的方式中的一个漏洞可以导致在搜索连接节点的时候所连接的设备重启这个节点可能是其他手机摄像头游戏设备电脑或是打印机等任何设备。
Wi-Fi直连技术允许无线设备之间直接建立通信而不用加入到本地网络中。
###安全公司致力于协调修复这个问题
这个漏洞允许攻击者发送一个特定的修改过的802.11侦测响应帧给设备从而因为WiFi监控类中的一个未处理的异常导致设备重启。
Core Security通过自己的CoreLabs团队发现了这个瑕疵CVE-2014-0997早在2014年9月就汇报给了Google。Google确认了这个问题却把它列为低严重性并不提供修复时间表。
每次Core Security联系Android安全组要求提供修复时间表的时候都会收到同样的答复。最后一次答复是1月20日意味着这么长的时间中都没有补丁。在星期一的时候这家安全公司公布了他们的发现。
这家安全公司建立了一个[概念攻击][1]来展示他们研究结果的有效性。
根据这个漏洞的技术细节一些Android设备在收到一个错误的wpa_supplicant事件后可能会进入拒绝服务状态这些事件让无线驱动和Android平台框架之间的接口有效。
###Google并不着急解决这个问题
Android安全组对于这个问题的放松态度可能是基于这个原因这种拒绝服务状态只发生在扫描节点这一小段时间。
不仅如此,实际上结果也并不严重,因为它会导致设备重启。不存在数据泄漏的风险或是能引起这个问题的攻击,不会吸引攻击者。但另一方面,不管怎样都应该提供一个补丁,以减轻任何未来的潜在风险。
Core Security声称在Android 5.0.1及以上版本中没有测试到这个问题他们发现的受影响的设备有Android系统4.4.4的Nexus 5和4运行Android 4.2.2的LG D806和Samsung SM-T310以及4.1.2版本系统的Motorola RAZR HD。
目前减轻影响的方式是尽量不用Wi-Fi直连或者升级到没有漏洞的Android版本。
--------------------------------------------------------------------------------
via:http://news.softpedia.com/news/Bug-In-Wi-Fi-Direct-Android-Implementation-Causes-Denial-of-Service-471299.shtml
本文发布时间:27 Jan 2015, 09:11 GMT
作者:[Ionut Ilascu][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://news.softpedia.com/editors/browse/ionut-ilascu
[1]:http://www.coresecurity.com/advisories/android-wifi-direct-denial-service

View File

@@ -0,0 +1,78 @@
在CentOS 7中安装Jetty服务器
================================================================================
[Jetty][1] 是一款纯Java的HTTP **(Web) 服务器**和Java Servlet容器。 通常在更大的网络框架中Jetty经常用于设备间的通信而其他Web服务器通常给“人类”传递文件 :D。Jetty是一个Eclipse基金会的免费开源项目。这个Web服务器用于如Apache ActiveMQ、 Alfresco、 Apache Geronimo、 Apache Maven、 Apache Spark、Google App Engine、 Eclipse、 FUSE、 Twitter的 Streaming API 和 Zimbra中。
这篇文章会介绍如何在CentOS服务器中安装Jetty服务器
**首先我们要用下面的命令安装JDK**
yum -y install java-1.7.0-openjdk wget
**JDK安装之后我们就可以下载最新版本的Jetty了**
wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.2.5.v20141112.tar.gz
**解压并移动下载的包到/opt**
tar zxvf jetty-distribution-9.2.5.v20141112.tar.gz -C /opt/
**重命名文件夹名为jetty:**
mv /opt/jetty-distribution-9.2.5.v20141112/ /opt/jetty
**创建一个jetty用户**
useradd -m jetty
**改变jetty文件夹的所属用户:**
chown -R jetty:jetty /opt/jetty/
**为jetty.sh创建一个软链接到 /etc/init.d directory 来创建一个启动脚本文件:**
ln -s /opt/jetty/bin/jetty.sh /etc/init.d/jetty
**添加脚本:**
chkconfig --add jetty
**是jetty在系统启动时启动**
chkconfig --level 345 jetty on
**使用你最喜欢的文本编辑器打开 /etc/default/jetty 并修改端口和监听地址:**
vi /etc/default/jetty
----------
JETTY_HOME=/opt/jetty
JETTY_USER=jetty
JETTY_PORT=8080
JETTY_HOST=50.116.24.78
JETTY_LOGS=/opt/jetty/logs/
**我们完成了安装现在可以启动jetty服务了 **
service jetty start
完成了!
现在你可以在 **http://\<你的 IP 地址>:8080** 中访问了
就是这样。
干杯!!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/install-jetty-web-server-centos-7/
作者:[Jijo][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/jijo/
[1]:http://eclipse.org/jetty/

View File

@@ -0,0 +1,60 @@
认识Vivaldi——一款为高手级用户定制的全新网页浏览器
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/01/Screen-Shot-2015-01-27-at-17.36.jpg)
**这周一个为了满足高手级用户的需要而定制的全新网页浏览器已然来临——而且它已经可以在Linux上使用了。**
Vivaldi就是这个新浏览器的名字而且它还面向64位Linux、Windows 和 Mac 机发布了技术预览版注解无责任测试版。它是建立在已测试过的Chromium开源框架Blink和Google的开源V8 JavaScript引擎以及其他项目的基础上。
这个世界真的还需要一个浏览器吗Opera软件前首席执行官Jon S.von Tetzchner的构想——Vivaldi不怎么关注所要更关注所需。
Vivaldi被制造成带有着偏向于键盘操作的tab键痴迷者所需的那种功能。并没有为那些认为Firefox复杂或是批评Chrome改动了书签按钮的用户而进行修改。
这也并不是什么俗气的营销噱头。尽管它带有技术预览版标签Vivaldi已经有了明显偏向于高手级用户们的功能。
相当多的人觉得自己被其他软件公司所生产的简化的配对后发行的产品遗弃了、糊弄了。Vivaldi——即使在这个过渡期的早期——看起来适逢其会可以打败其他产品。
### Vivaldi功能###
以下是几个Vivaldi已展示过的关键功能:
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/01/quick.jpg)
**快捷命令** (Ctrl + Q)是个内置的HUD应用它可以让你快速过滤设置、选项和功能用它打开一个书签或是隐藏状态栏只需用你的键盘无需鼠标点击。
**标签堆** 让你可以通过把多个不同标签分到一组来清理你的工作区,然后可以通过键盘命令或者可预览标签选择器在标签组之间进行切换。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/01/tab-stacks.jpg)
一个可折叠的**侧边栏**藏有额外功能就像旧Opera包括一个目前还不能工作的邮箱客户端链接书签浏览器和可以让你截屏并做注释的笔记专区。
还提供了一大堆其他的功能,包括设置键盘快捷键,一个可以被设置在浏览器任何一个边(或完全隐藏)的标签栏,隐私选项和一个快速打开文件夹的功能。
### Opera二代的印记 ###
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/01/vivaldi-settings-in-ubuntu-750x434.jpg)
把Vivaldi当作Opera post-PrestoOpera拥有版权的旧引擎的真正继承者并不是什么值得惊奇的事。当Opera今天也推出了一个小更新追求一个更轻、更好管理的一套功能时已经剔除了它很多“高手级用户”功能。
Vivaldi想要捡起Opera曾急于脱手的负担。虽然这么做没有帮它抓住什么预期的市场份额但是它吸引了高手级用户的眼球。他们大多数无疑已经在使用Linux了。
### 下载 ###
有兴趣尝尝鲜完全可以。Vivaldi可以下载到WindowsMac以及64位Linux版本。不久的将来你还能选择Debian或RPM安装器。
请记住,它还没有完成,而且更多的功能(包括扩展、同步等等)正计划着在将来加入。
- [Download Vivaldi Tech Preview for Linux][1]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2015/01/vivaldi-web-browser-linux-download-power-users
作者:[Joey-Elijah Sneddon][a]
译者:[H-mudcup](https://github.com/H-mudcup)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:https://vivaldi.com/#Download

View File

@@ -0,0 +1,29 @@
OpenJDK 7的漏洞已经在Ubuntu 14.04 和Ubuntu 14.10中解决了
----
*建议用户尽快升级*
**Canonical发布新 OpenJDK 7 的安全公告它已经提交到Ubuntu 14.04 LTS和Ubuntu 14.10 的仓库中。该更新修复了大量的问题和漏洞。**
Ubuntu维护者已经升级了仓库中的OpenJDK包并且含有大量的修复。这是一个重要的更新其涵盖了少量的库。
安全公告中说“OpenJDK JRE中发现了一些信息泄露、数据完整性和可用性的漏洞。攻击者可以利用这些通过网络执行拒绝服务或者泄露信息。”
同样“OpenJDK JRE中发现了关于信息泄露和完整性的漏洞。攻击者可以利用这点通过网络泄露敏感信息。”
这里有几个漏洞被开发者确认并且由维护人员解决。关于该问题的详细描述你可以参考Canonical的安全通告。建议用户尽快升级系统。
这个漏洞只要你升级到最新的openjdk 7相关的包就可以修复。要应用该补丁用户需要运行升级管理程序。通常上一个标准系统更新就会安装必要的更新。所有java相关的程序需要重新启动。
--------------------------------------------------------------------------------
via: http://linux.softpedia.com/blog/OpenJDK-7-Vulnerabilities-Closed-in-Ubuntu-14-04-and-Ubuntu-14-10-471605.shtml
本文发布时间:29 Jan 2015, 16:53 GMT
作者:[Silviu Stahie][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://news.softpedia.com/editors/browse/silviu-stahie

View File

@@ -0,0 +1,186 @@
如何在Linux命令行中创建以及展示演示稿
================================================================================
你在准备一场演讲的时候脑海可能会先被图文并茂、形象华丽的演示图稿所占据。诚然没有人会否认一份生动形象的演讲稿所带来的积极作用。然而并非所有的演讲都需要TED Talk的质量。更多时候演讲稿只为传达特定的信息。 而这个使用文本信息足以完成。在这种情况下你的时间可以更好的花在信息的搜集和核实上面而不是在谷歌图片搜索Google Image上寻找好看的图片。
在Linux的世界里有几个不同的方式供你选择来做演讲。比如带有大量多媒体展示、视觉冲击效果极佳的[Impress.js][1]专为LaTex用户提供的Beamer等等。而如果你苦于寻找一种简单的方式来创建并且展示文本演示稿[mdp][2] 就能帮你实现。
### 什么是Mdp ###
mdp是Linux下一款基于ncurses的命令行演示工具。我喜欢mdp在于它对[markdown][3]的支持使得我很容易以熟悉的markdown格式来创建幻灯片。自然它还可以很轻松地用HTML格式来发布幻灯片。另一个好处是它支持UTF-8字符编码这让非英语字符如希腊或西里尔字母的展示也变得很方便。
### 在Linux中安装Mdp ###
mdp的依赖需求很少如 ncursesw这使得安装非常简单。
#### Debian、Ubuntu或者它们的衍生版 ####
$ sudo apt-get install git gcc make libncursesw5-dev
$ git clone https://github.com/visit1985/mdp.git
$ cd mdp
$ make
$ sudo make install
#### Fedora或者CentOS/RHEL ####
$ sudo yum install git gcc make ncurses-devel
$ git clone https://github.com/visit1985/mdp.git
$ cd mdp
$ make
$ sudo make install
#### Arch Linux ####
Arch Linux可以通过[AUR][4]轻松安装mdp。
### 在命令行中创建演示稿 ###
安装mdp完毕你可以使用你喜欢的文本编辑器来轻松创建一个演示稿。如果你熟悉markdown的话很快就可以驾驭mdp。而对于那些不熟悉markdown的人来说学习mdp最好的方式就是从一个实例着手。
这里有一份6页的演示稿样本可供参考。
%title: Sample Presentation made with mdp (Xmodulo.com)
%author: Dan Nanni
%date: 2015-01-28
-> This is a slide title <-
=========
-> mdp is a command-line based presentation tool with markdown support. <-
*_Features_*
* Multi-level headers
* Code block formatting
* Nested quotes
* Nested list
* Text highlight and underline
* Citation
* UTF-8 special characters
-------------------------------------------------
-> # Example of nested list <-
This is an example of multi-level headers and a nested list.
# first-level title
second-level
------------
- *item 1*
- sub-item 1
- sub-sub-item 1
- sub-sub-item 2
- sub-sub-item 3
- sub-item 2
-------------------------------------------------
-> # Example of code block formatting <-
This example shows how to format a code snippet.
1 /* Hello World program */
2
3 #include <stdio.h>
4
5 int main()
6 {
7 printf("Hello World");
8 return 0;
9 }
This example shows inline code: `sudo reboot`
-------------------------------------------------
-> # Example of nested quotes <-
This is an example of nested quotes.
# three-level nested quotes
> This is the first-level quote.
>> This is the second-level quote
>> and continues.
>>> *This is the third-level quote, and so on.*
-------------------------------------------------
-> # Example of citations <-
This example shows how to place a citation inside a presentation.
This tutorial is published at [Xmodulo](http://xmodulo.com)
You are welcome to connect with me at [LinkedIn](http://www.linkedin.com/in/xmodulo)
Pretty cool, huh?
-------------------------------------------------
-> # Example of UTF-8 special characters <-
This example shows UTF-8 special characters.
ae = ä, oe = ö, ue = ü, ss = ß
alpha = ?, beta = ?, upsilon = ?, phi = ?
Omega = ?, Delta = ?, Sigma = ?
???????????
?rectangle?
???????????
### 在命令行中展示演示稿 ###
当你把以上代码保存为slide.md的文本文件后你可以运行以下命令来展示演示稿
$ mdp slide.md
你可以通过按键 回车/空格/下翻页/向下光标键 (下一张幻灯)、回退/上翻页/向上光标键 (上一张幻灯)、Home (幻灯首页)、 End (幻灯末页)或者 数字N (第N页幻灯)来操作你的演示稿。
演示稿的标题将在每页幻灯的顶部展示,而你的名字和页码则会出现在幻灯的底部。
![](https://farm9.staticflickr.com/8637/16392457702_ec732d0094_c.jpg)
这是嵌套列表和多层次标题的实例效果。
![](https://farm9.staticflickr.com/8567/16367397606_29be7df633_c.jpg)
这是代码片段和内联代码的实例效果。
![](https://farm9.staticflickr.com/8682/15770926144_0f982b0863_b.jpg)
这是嵌套引用的实例效果。
![](https://farm9.staticflickr.com/8587/16393383115_0865c8b89b_c.jpg)
这是放置引文的实例效果。
![](https://farm8.staticflickr.com/7409/16392457712_ed36c14bc2_c.jpg)
这是UTF-8编码特殊字符支持的实例效果。
![](https://farm9.staticflickr.com/8648/16205981560_7fa3debc75_c.jpg)
### 总结 ###
在本教程中我演示了在命令行中如何使用mdp来创建并且展示一个演示稿。mdp的markdown兼容性让我们省去了学习其它新格式的麻烦这相对于另一种名为[tpp][5]的演示工具来说是一个优势。拘于mdp的局限性它可能无法作为你的默认演示工具。但是值得肯定的是它一定能在某个场合下派上用场。你觉得mdp怎么样呢你还喜欢其它的什么东西吗
--------------------------------------------------------------------------------
via: http://xmodulo.com/presentation-command-line-linux.html
作者:[Dan Nanni][a]
译者:[soooogreen](https://github.com/soooogreen)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://bartaz.github.io/impress.js/
[2]:https://github.com/visit1985/mdp
[3]:http://daringfireball.net/projects/markdown/
[4]:https://aur.archlinux.org/packages/mdp-git/
[5]:http://www.ngolde.de/tpp.html

View File

@@ -0,0 +1,50 @@
Linux有问必答——如何修复Google Chrome 的“Your profile could not be opened correctly”错误
================================================================================
> **提问**当我在linux打开Google Chrome 浏览器时我已经几次收到弹出窗口提示我的档案文件没有被正确打开Your profile could not be opened correctly.。每次我打开Chrome都要弹出来我应该如何修复这个问题
当你在你的Chrome上看见"Your profile could not be opened correctly"错误信息时从某种程度上讲那是因为你的Chrome配置文件数据已经损坏。这个问题经常发生在手动升级Google Chrome的时候。
![](https://farm8.staticflickr.com/7428/16238502737_27bdda6685_o.png)
修复取决于到底哪个文件损坏,你可以试试下面的几个方法。
### 方法一 ###
关掉所有Chrome窗口和标签页。
进入~/.config/google-chrome/Default移除或者重命名"Web Data"文件。
$ cd ~/.config/google-chrome/Default
$ rm "Web Data"
再次开打Google Chrome浏览器。
### 方法二 ###
关掉所有Chrome窗口和标签页。
进入~/.config/google-chrome/"Profile 1",并重命名"History"文件。
$ cd ~/.config/google-chrome/"Profile 1"
$ mv History History.bak
再次开打Google Chrome浏览器。
### 方法三 ###
如果依然没有解决,你可以试试移除所有默认配置文件夹(~/.config/google-chrome/Default。注意:如果这样做你将会遗失所有之前打开的Google标签、导入的书签浏览记录和登录数据等。
在移除之前先关掉所有Chrome窗口和标签页
$ rm -rf ~/.config/google-chrome/Default
之后重启Google Chrome文件夹~/.config/google-chrome/Default会自动生成。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/your-profile-could-not-be-opened-correctly-google-chrome.html
译者:[VicYu/Vic020](http://vicyu.net)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,96 @@
如何在Linux中安装Go语言
================================================================================
Go (也叫 "golang")是一款由Google最初开发的编程语言。它的诞生有几个设计原则简单、安全、速度。Go语言发行版拥有各种调试、测试、调优和代码审查工具。如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用用默认的包管理器就可以安装。
### 在Ubuntu、Debian 或者 Linux Mint上安装Go语言 ###
下面是在基于Debian的发行版上使用**apt-get**来安装Go语言和它的开发工具。
$ sudo apt-get install golang
检查Go语言的版本来验证安装。
$ go version
----------
go version go1.2.1 linux/amd64
根据你的需要你或许想要使用apt-get安装额外的Go工具。
$ sudo apt-cache search golang
![](https://farm8.staticflickr.com/7430/15812762183_f094e3bf92_c.jpg)
### 在Fedora、CentOS/RHEL中安装Go语言 ###
下面的命令会在基于Red Hat的发行版中安装Go语言和它的工具。
$ sudo yum install golang
检查Go语言的版本来验证安装。
$ go version
----------
go version go1.3.3 linux/amd64
根据你的需要你或许想要使用yum安装额外的Go工具。
$ yum search golang
![](https://farm8.staticflickr.com/7373/16432817805_775010dc18_c.jpg)
### 从官网安装Go语言 ###
有时发行版中的go语言版本并不是最新的。为了避免这种情况你可以从官网安装最新的Go语言。下面是步骤。
进入Go语言的[官方源码][1],并下载预编译二进制代码。
**对于64位Linux:**
$ wget https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz
**对于32位Linux:**
$ wget https://storage.googleapis.com/golang/go1.4.1.linux-386.tar.gz
**在/usr/local下安装程序**
$ sudo tar -xzf go1.4.1.linux-xxx.tar.gz -C /usr/local
在/etc/profile中添加系统范围的PATH环境变量。
$ sudo vi /etc/profile
----------
export PATH=$PATH:/usr/local/go/bin
如果你在/usr/local之外的自定义位置中安装了Go你同样需要设置GOROOT环境变量来指向自定义的安装位置。
$ sudo vi /etc/profile
----------
export GOROOT=/path/to/custom/location
检查Go语言的版本
$ go version
----------
go version go1.4.1 linux/amd64
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/install-go-language-linux.html
译者:[geekpi](https://github.com/geekpi)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://golang.org/dl/

View File

@@ -0,0 +1,32 @@
LinuxQuestions 问卷调查揭晓最佳开源项目
================================================================================
![](http://farm5.static.flickr.com/4099/4777335328_3cc363c419_m.jpg)
在Linux用户社区中, 很多人每年都会期待来自 LinuxQuestions.org 细致可靠的年度问卷调查报告。如同[Susan在她的报告][1]中指出的那样, 今年的[结果][2]着重于调查网站读者心中最棒的开源项目。 这份报告目前已经完成。 在LinuxQuestions的大多数人都是“专家级”的用户, 他们经常在网站上在线回答Linux新手们的提问。
在Susan所作的报告的附加内容里 你可以看到由“专家”们对开源世界的关注点分布。
你也可以在[这里][3]找到一份较为精美的调查问卷总结图.这里呈现了网站投票得出的最佳Linux发行版, 可以看到Mint和Slackwaer平分了半壁江山
![](http://i1311.photobucket.com/albums/s669/webworkerdaily/lin_zps9ogvyrty.png)
而下图则是网站票选出的得出的最佳云项目。值得注意的是, LinuxQuestions的用户群体给予了ownCloud项目极高的评价。 你一定得亲自去看看调查结果的详情, 也看看 [Susan 关于各项目“赢家”][4]的总结, 还有[一堆精美的图表][5]。
![](http://i1311.photobucket.com/albums/s669/webworkerdaily/lin2_zps9nxf7yyi.png)
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/linuxquestions-survey-results-surface-top-open-source-projects
作者:[Sam Dean][a]
译者:[jerryling315](https://github.com/jerryling315)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://ostatic.com/member/samdean
[1]:http://ostatic.com/blog/lq-members-choice-award-winners-announced
[2]:http://www.linuxquestions.org/questions/linux-news-59/2014-linuxquestions-org-members-choice-award-winners-4175532948/
[3]:http://www.linuxquestions.org/questions/2014mca.php
[4]:http://ostatic.com/blog/lq-members-choice-award-winners-announced
[5]:http://www.linuxquestions.org/questions/2014mca.php

View File

@@ -0,0 +1,32 @@
CrunchBang Linux 已死!!!
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/Crunchbang_Linux_Dead.jpeg)
是的你没看错。最小的Linux发行版**CrunchBang Linux 已经消失了**。
CrunchBang Linux被大家所熟知的缩写标志“#其基于Debian和[Openbox][1]窗口管理器。这个黑色主题的 Linux 发行版是许多资深 Linux用户的选择。
### CrunchBang 因为 “不再有继续下去的价值” 而消失了 ###
其[公告][2]称CrunchBang将不在继续开发项目的领头人Philip Newborough说他在开始这个项目的时候Linux 世界和现在不同。他指出那时在这种发行版还没有竞争但是随着Linux发行版的进步如LubuntuCrunchbang这样的发行版就不具备原来的价值了。
> 对于任何十年前使用Linux的人而言我想他们都会看到事物在不断发展。虽然一些事情一直保持不变还有一些的变化超出了认知。这称之为进步。对于大部分事物而言进步是一件好事。也就是说当进步发生时一些事物落后了。对于我而言CrunchBang就是我需要抛弃的东西。我抛弃它的原因是我真的认为它不再具有任何价值了虽然我还可以因为一些多愁善感的原因把它留下来但是我不认为那些使用原生Debian用户还有兴趣了。
### CrunchBang消失之后会怎么样 ###
就像[Pear OS][3]那样CrunchBang论坛仍将在线。现在仍可以下载但是不久的将来就会停止。Philip对他即将面对的新的项目和工作感到很激动。我希望他今后工作顺利。很难过见到一个像CrunchBang这样好的Linux发行版的消失。
--------------------------------------------------------------------------------
via: http://itsfoss.com/crunchbang-linux-dead/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:http://en.wikipedia.org/wiki/Openbox
[2]:http://crunchbang.org/forums/viewtopic.php?id=38916
[3]:http://itsfoss.com/pear-os-history/

View File

@@ -0,0 +1,24 @@
非Linux的自由开源软件Homebrew
================================================================================
我日常工作中使用的是OS X。我能容忍它很大程序上是因为它的终端。如果我不能在黑色背景绿色文字的终端下工作我想我会疯了。不幸的是OS X 没有我需要的全部命令行工具。Homebrew的到来拯救了我。
![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11811fossf1.png)
Homebrew扮演了OS X中所缺乏的包管理器的角色。命令的使用很像apt-get它能够安装无数的应用。一个最好的例子是wget。我很惊讶OS X中没有包含wget但是homebrew中有很简单就安装上了。
最棒的是homebrew在/usr/local文件夹下安装软件。你不必担心homebrew会破坏你的系统因为它不会访问/usr/local之外的其他文件。OSX系统更新不会覆盖你的程序并且/usr/local/bin已经在PATH中使用homebrew安装的程序可以直接工作。
homebrew使用ruby管理它的包和功能但是使用它不需要任何编程知识。并且安装过程只需要在命令行中复制粘贴就好了。如果你使用的是OS X但是你希望像在Linux中那样方便地安装就试一试homrbrew吧[http://brew.sh][1]。
--------------------------------------------------------------------------------
via: http://www.linuxjournal.com/content/non-linux-foss-homebrew
作者:[Shawn Powers][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.linuxjournal.com/users/shawn-powers
[1]:http://brew.sh/

View File

@@ -0,0 +1,56 @@
如何避免在ELemetary OS Freya中出现两个Google Chrome 图标
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/Two_Google_Chrome_ElementaryOS_Freya.jpeg)
这篇文章会教你**如何避免在ELemetary OS Freya中出现两个Google Chrome 图标**。
Chrome才是我在所有系统中使用的主浏览器。[Modori][2] 是默认放在dock中的浏览器所以你每次使用Chrome时都需要在Slingshot中搜索Google Chrome而为了节省时间我通常会将它“保持在dock”中。
这里的问题是当你点击dock中的Chrome图标时它会创建另外一个Google Chrome的实例。这就在dock中留下两个Chrome图标这或许你可以不在意但是很显然处女座不能忍如果你有相同的感受让我们看下如何移除这第二个Google Chrome图标。
### 在Elementary OS Freya的dock中删除第二个Google Chrome 图标 ###
#### 第一步: ####
从dock中删除Google Chrome。
#### 第二步: ####
打开终端并使用下面的命令:
cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications
#### 第三步: ####
接下来我们要编辑google-chrome.destop文件。使用下面的命令
scratch-text-editor ~/.local/share/applications/google-chrome.desktop
这会用Scratch打开google-chrome.destop文件。在[Desktop Entry]段落下,加入下面的行:
StartupWMClass=Google-chrome-stable
看上去像这样:
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/two_Google_Chrome_Elementary_Freya.png)
#### 第四步: ####
进入Slingshot并且再次打开Google Chrome。再次选择“keep in dock”。关闭并重新打开它来验证它是否在dock中打开了另外一个新的Chrome图标。这里不需要重启系统。
我希望这篇提示能够帮助你删除Elementary OS Freya中多出的Chrome图标。有任何问题或建议让我在评论区中知道。
--------------------------------------------------------------------------------
via: http://itsfoss.com/rid-google-chrome-icons-dock-elementary-os-freya/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:http://elementary.io/
[2]:http://midori-browser.org/