当 FreeBSD 遇到 Ubuntu 会发生什么？ubuntuBSD 项目发布安装镜像

Summary: 什么是 ubuntuBSD？据项目发起人 Jon Boden 说，该项目的目标是将 FreeBSD 内核带到 Ubuntu Linux 上，它的灵感来自于 Debian GNU/kFreeBSD。

不可思议

有什么优势？

一直用Linux mint的路过。。

>
> 它带来了完整的 ZFS 集成和 Xfce 桌面。
>
>
>

3/12 日，我们很高兴的宣布，ubuntuBSD 发布了！

什么是 ubuntuBSD？据项目发起人 Jon Boden 说，该项目的目标是将 FreeBSD 内核带到 Ubuntu Linux 上，它的灵感来自于 [Debian GNU/kFreeBSD](https://www.debian.org/ports/kfreebsd-gnu/)。

![](/data/attachment/album/201603/22/060124v3iu6j9enwninui3.jpg)

当前 ubuntuBSD 还处于 beta 测试阶段，其基于 FreeBSD 10.1 和 Ubuntu 15.10。它的 ISO 类似于 Ubuntu Alternate 的 ISO，只提供了基于文本的安装程序，这意味着它的用户目标还只是那些想要更强力的服务器或桌面环境的高级用户。不过如果你安装过类似 Lubuntu 这样仍然提供 Ubuntu Alternate 安装方式的发行版，那这对于你来说并不是很麻烦的事情，整个安装过程只需要10分钟左右。

### 桌面环境是 Xfce，文件系统是 ZFS

采用 FreeBSD 内核所带来的最大的好处是你终于可以使用著名的 Z 文件系统了，它也叫做 ZFS。这是一个合并了文件系统与卷管理器的文件系统，由 Sun 微系统公司设计，其 /boot 分区是一个独立的 UFS 分区。

根据你的需求，你可以在安装过程中选择轻量级、高度定制的 Xfce 桌面环境作为你的桌面系统。当然，你也可以考虑将 ubuntuBSD 当做你的服务器使用。

ubuntuBSD 项目当前托管在 [SourceForge](https://sourceforge.net/projects/ubuntubsd/) 上，目前只分发了64位计算机（AMD64）的安装镜像。你可以下载安装 beta 版本的 ubuntuBSD 15.04（开发代号为“<ruby> 逃离 systemD <rp>  （ </rp> <rt>  Escape from systemD </rt> <rp>  ） </rp></ruby>”），不过需要知道的是，当前该项目还处于繁重开发周期中，可能还有不少 bug。


克隆版 Pear OS 更新了，扮相更像 Mac OS 了

Summary: 还记得 Pear OS 吗？这是个看起来非常像 Mac OS X 的 GNU/Linux 发行版。现在 PearOS 更新后带来了重新打造的 Mac OS X 外观。

有意思吗？

不好看，感觉可奇怪啊。四不像了

很没意思，还不如 elementary OS。

各种无聊的发行版！

感觉有几个shell扩展还不错，如果能扣出来用还是极好的

不是很理解用这个系统的使用者，使用的出发点！！linux!就是自己定制的才是最好的了！！用一天到两天的时间！

仿的永远是仿的

怎么感觉还没有kde像....

这就是Linux的魅力所在了，每个人都有不同的喜好，他们喜欢这样，所以就做了呗

gnome3 有一个White主题，稍微改一下再配合上dash to dock，从视觉上来说已经非常舒服了。

仿的就是仿的，永远也不可能是原版

现在叫GMAC 10

又改名了？

嗯，你可以百度一下找到下载地址，我下了一会儿就没下了，下载速度不忍直视

还记得 Pear OS 吗？这是个看起来非常像 Mac OS X 的 GNU/Linux 发行版，不过不幸的是，它已经被一家我们现今还不知道名字的大公司所收购了，[官方已经停止 Pear OS 与 Pear Cloud 的下载了](/article-2574-1.html)。

去年我们[报道](/article-6391-1.html)过，一位葡萄牙的开发者 Rodrigo Marques 创建了一个 Pear OS Linux 的克隆版，并将其以 PearOS 的名字发布到了 SourceForge 。

当时，这个 PearOS 克隆版让 Pear OS 老用户们很失望，因为他们是一群习惯了精美、要求细节完美仿照 Mac OS X 系统的人。

不过经过了一段时间的发展，现在 PearOS 更新后带来了重新打造的 Mac OS X 外观，它依旧是基于流行的 Ubuntu 的 LTS 版本 14.04 Trusty Tahr。

### PearOS 9.3 发布，基于 Ubuntu 14.04.1 LTS

应读者的要求，我们下载了 PearOS 9.3 Live CD ，看看它的类 Mac OS X 外观到底如何。我们必须说，这次的更新要比它的初次发布有了巨大的改观！

当然，这整个的 Mac OS X 外观是基于 GNOME 桌面环境上 的，架构于 GNOME Shell 用户界面上并做了不少调整优化。你应该自己[下载 Pear OS 9.3 ISO 镜像](http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/Pear-Linux-76309.shtml)来体验一下。

![](/data/attachment/album/201603/23/171835xndkqbdn11drzhx5.jpg)

![](/data/attachment/album/201603/23/171836uf9srcyc8vcq5jxr.jpg)

![](/data/attachment/album/201603/23/171836w6r6sy81sgv163sb.jpg)

![](/data/attachment/album/201603/23/171837h45q9emtt99wptl5.jpg)

对比一下旧的 PearOS 界面，还是有很大的进步的：

![](/data/attachment/album/201603/23/171837qc2rrcbtjg5obrjy.jpg)


Ubuntu 教育版 Edubuntu 或将终结，计划中的 LTS 版本流产

Summary: 被众多学校和教育机构使用的 Edubuntu 的维护者 Stéphane Graber 在其官方邮件列表中宣布，原来计划的 Edubuntu 16.04 (Xenial Xerus) 操作系统将不会随同 Ubuntu 16.04 LTS 一起发布。

是因为ED吗？

被众多学校和教育机构使用的 Edubuntu 的维护者 Stéphane Graber 在其官方邮件列表中[宣布](https://lists.ubuntu.com/archives/ubuntu-devel/2016-March/039281.html)，原来计划的 Edubuntu 16.04 (Xenial Xerus) 操作系统将不会随同 Ubuntu 16.04 LTS 一起发布。

Edubuntu 是一个 Ubuntu 的官方分支版本，主要面对学校和各种教育机构使用，在 Ubuntu 的基础上，集成了很多的教学、教育软件。它很早就是 Ubuntu 生态系统的一部分。对于教育机构来说，一个具有长期支持的操作系统对于其计算机网络非常重要。

Edubuntu 当前的两位负责人 Stéphane Graber 和 Jonathan Carter 已经领导了该项目分别有9年和10年了，但是他们已经转移到了别的项目，没有足够的精力管理该项目，因此在两年前 Edubuntu 14.04 LTS (Trusty Tahr) 发布后，就决定只跟随 LTS 版本发布。但是在 16.04 LTS 发布前夕，Edubuntu 的开发工作还有不小的缺口，考虑到仓促发布一个版本会让期待的用户失望，因此决定放弃 Edubuntu 16.04 LTS 的发布。

当然， Edubuntu 14.04 LTS (Trusty Tahr) 也还可以使用，只是它的软件有一点老了。目前它已经更新到了 14.04.4 版本，其支持期将在 2019 年 4 月结束。

“我现在宣布 Edubuntu 将不会发布 16.04 LTS 版本，取而代之的是，Jonathan 和我会继续集中精力在 Edubuntu 14.04 LTS 上，直到 2019 年 4 月结束支持期”，Stéphane Graber 在邮件列表中[宣布](https://lists.ubuntu.com/archives/ubuntu-devel/2016-March/039281.html)，“这并不是说 Edubuntu 就死了，至少现在不是。”

![](/data/attachment/album/201603/23/215017jsxcbxxbscjxssv3.jpg)

### Edubuntu 要死了么？

根据 Stéphane Graber 在邮件中透露的信息，他们“会继续投入精力到 Edubuntu 14.04 LTS 的支持工作，希望在此期间，有新的贡献者能参与进来，接过 Edubuntu 项目，并按自己的心意去塑造它。”

“我们两个会很乐意协助 Edubuntu 相关的上传工作、帮助新的贡献者取得 Edubuntu 的身份，以及举办选举来设立一个新的 Edubuntu 委员会，从而将整个项目的管理权从我们手中接过去。”Stéphane Graber 说，“**如果直到 Ubuntu 17.10 发布时，仍然没有新的贡献者把 Edubuntu 接过去，Jonathan 和我将会要求技术委员会撤销 Edubuntu 的官方分支身份，并从软件仓库中移除所有软件包、种子以及 CD 镜像构建任务，正式地从 Ubuntu 发布流程中去掉 Edubuntu。**”

Edubuntu 目前用在全球的成千上万的学校和教育机构中，所以这样的一个大项目死掉将会带来很大的影响。还好目前只是放弃了一个 LTS 版本，而不是直接宣布该项目终结。

我们不相信 Edubuntu 系统会很快面临死亡，毫无疑问开源社区将会帮助它继续活下去。我们有庞大的社区，如果 Edubuntu 需要社区的帮助，无论如何我们都会伸出双手的。

“这对于我们两个来说都是很有意义的经历，我们非常希望这并不是 Edubuntu 的终结，而是这个伟大的 Ubuntu 分支的新生”，Stéphane Graber 在他的邮件末尾补充说。

这意味着他们需要你的帮助，是的，就是你。所以，如果你真的在意 Edubuntu，那么[请伸出手来帮它继续走下去](https://www.edubuntu.org/community)吧。


GNOME 3.20 “Delhi” 发布

Summary: 显著改进了 Wayland 支持，包括运动滚动kinetic scrolling、拖放功能、中键粘贴等；可以在应用中按下 Ctrl + F1 来调出“快捷键窗口”，显示所有可用的快捷键和手势；

求大牛给写一个插件，把那个非要多点一下才出来的窗口工具栏推倒了摁在顶部面板上！

3月23日，经过又是半年的努力开发，高度期待的 GNOME 3.20 桌面环境正式[发布](https://www.gnome.org/news/2016/03/gnome-3-20-released/)了。

[GNOME](https://www.gnome.org/) 是 Linux 平台上最大的也是最常用的桌面环境（DE），它被 Red Hat Enterprise Linux、Fedora

openSUSE、Ubuntu GNOME 等主流的 Linux 发行版所采用。

![](/data/attachment/album/201603/24/060525yzmrrcmtfvf25vgk.jpg)

GNOME 3.20 是该桌面环境的当前最新的主要发布版本，带来了大量的新功能和基本上所有的核心应用及组件的改进。

主要改进包括：

* 操作系统升级现在可以通过“<ruby> 软件 <rp>  （ </rp> <rt>  Software </rt> <rp>  ） </rp></ruby>”来安装
* 显著改进了 Wayland 支持，包括<ruby> 运动滚动 <rp>  （ </rp> <rt>  kinetic scrolling </rt> <rp>  ） </rp></ruby>、拖放功能、中键粘贴等
* 多数核心应用支持键盘快捷键和手势，可以在应用中按下 Ctrl + F1 来调出“快捷键窗口”，显示所有可用的快捷键和手势
* 改进了隐私控制，每个应用都可以按照位置进行访问控制
* 可以直接从 GNOME Shell 中快速访问媒体控制
* “<ruby> 文件 <rp>  （ </rp> <rt>  Files </rt> <rp>  ） </rp></ruby>”中的搜索功能的提升
* “<ruby> 构建器 <rp>  （ </rp> <rt>  Builder </rt> <rp>  ） </rp></ruby>” 现在可以构建 XDG-Apps 应用了，这是一个新的跨发行版的框架，可以构建和发布桌面应用，它们可以直接在 GNOME <ruby> “软件” <rp>  （ </rp> <rt>  Software </rt> <rp>  ） </rp></ruby>中安装，最重要的是，可以安装某个软件的多个版本了

![](/data/attachment/album/201603/24/060304nmfm7776xi7eezd8.jpg)

GNOME 3.20 会在几周或几个月之后逐渐来到各个主流 GNU/Linux 发行版上，具体时间周期要看发行版的开发计划。等不及的用户现在就可以下载、编译新的 GNOME 软件包了，或者也可以从 GNOME 3.18 升级。

最后顺便提一句，3.20 的开发代号是‘<ruby> 德里 <rp>  （ </rp> <rt>  Delhi </rt> <rp>  ） </rp></ruby>’代表着今年的 GNOME.Asia 会议举办地点，该会议将在 4 月 21 日至 24 日在印度德里市举行。


AlphaGo 的首尔之战带来的启示

Summary:
第一，此次测试很好的预示了 AI 有解决其他问题的潜力。
第二，虽说这场比赛已经被广泛的标榜成“人机大战”，但 AlphaGo 却是人类实实在在的成果。

围棋并不仅仅是一个游戏——她是一伙活生生的玩家们，分析家们，爱好者们以及传奇大师们。在过去的十天里，在韩国首尔，我们有幸亲眼目睹那份难以置信的激动。我们也有幸也目睹了那前所未有的场景：[DeepMind](https://deepmind.com/) 的 AlphaGo 迎战并战胜了传奇围棋大师，李世石（职业9段，身负 18 个世界头衔），这是人工智能的里程碑。

![](/data/attachment/album/201603/26/044737tm1cs4vnzo4vv1v4.jpg)

虽说围棋可能是存世的最为悠久的游戏之一了，但对于这五盘比赛的关注度还是大大的超出了我们的想象。搜索围棋规则和围棋盘的用户在美国迅速飙升。在中国，数以千万计的用户通过直播观看了这场比赛，并且新浪微博“人机围棋大战”话题的浏览量破 2 亿。韩国的围棋盘也销量[激增](http://www.hankookilbo.com/m/v/3e7deaa26a834f76929a1689ecd388ea)。

然而我们如此公开的测试 AlphaGo，并不仅仅是为了赢棋而已。我们自 2010 年成立 DeepMind，为的是创造出具有独立学习能力的通用型人工智能（AI），并致力于将其作为工具协助解决，从气候变化到诊断疾病，这类最为棘手且急迫的问题为最终目标。

亦如许多前辈学者们一样，我们也是通过游戏来开发并测试我们的算法的。在一月份，我们第一次披露了 [AlphaGo](https://googleblog.blogspot.com/2016/01/alphago-machine-learning-game-go.html)——作为第一个通过使用 [深度学习](https://en.wikipedia.org/wiki/Deep_learning) 和 [强化学习](https://en.wikipedia.org/wiki/Reinforcement_learning)，可以在人类发明的最为复杂的棋盘类游戏中击败职业选手的 AI 程序。而 AlphaGo 迎战过去十年间最厉害的围棋选手——李世石，绝对称得上是 [终极挑战](https://deepmind.com/alpha-go.html)。

结果震惊了包括我们在内的每个人，AlphaGo 五战四胜。评论家指出了 AlphaGo 下出的许多前所未见、极富创意或者要用 [“漂亮”](http://www.wired.com/2016/03/sadness-beauty-watching-googles-ai-play-go/) 来形容的妙手。基于我们的数据分析，AlphaGo 在第 2 局中的 [37 手](https://youtu.be/l-GsfyVCBu0?t=1h17m50s)，在人类选手中出现的几率仅有万分之一。而李一反常态的创新下法，如第 4 局中的 [78 手](https://youtu.be/yCALyQRN3hw?t=3h10m25s)——也是既存下法中的万中之一的——这一手也最终造就了一场胜利。

最后比分定格在 4-1。我们为支持科学、技术、工程、数学（STEM）教育和围棋的组织，以及 UNICEF （联合国儿童基金会）赢得了 $1 百万的捐助。

经此一役，我们将收获总结成以下两点：第一，此次测试很好的预示了 AI 有解决其他问题的潜力。AlphaGo 在棋盘上能够做到兼顾“全局”——并找出人类已经被训化而不会走或想到的妙手。运用 AlphaGo 这类的技术，在人类目所不能及的领域中探索，会有很大的潜力。第二，虽说这场比赛已经被广泛的标榜成“人机大战”，但 AlphaGo 却是人类实实在在的成果。无论是李世石还是 AlphaGo 团队相互之间互相促进，产生了新的想法、观点和答案——并且长远来看，我们都将从中受益。

但正如韩国对于围棋的观点：“胜而不骄，是以常胜。”这只是使机器聪明的漫长道路中的一个小小而显著的一步而已。我们已经证明了尖端深度强化学习技术可以被用作制作强大的围棋选手和 [Atari](http://googleresearch.blogspot.sg/2015/02/from-pixels-to-actions-human-level.html) 玩家。深度神经网络在 Google 已经与 [图像识别](http://googleresearch.blogspot.sg/2013/06/improving-photo-search-step-across.html)，[语音识别](http://googleresearch.blogspot.sg/2015/08/the-neural-networks-behind-google-voice.html) 以及 [搜索排名](http://www.bloomberg.com/news/articles/2015-10-26/google-turning-its-lucrative-web-search-over-to-ai-machines) 一样被应用到具体的任务中了。然而，从会学习的机器到可以像人一样全方位灵活实施智能任务——真正达到 [强人工智能](https://en.wikipedia.org/wiki/Artificial_general_intelligence) 的特性，此中的道路还很漫长。

![](/data/attachment/album/201603/26/044751s90o25co5275jml7.jpg)

我们想通过这场比赛来测试 AlphaGo 的极限。李世石大师做的十分出色—我们在接下来的数周内会研究他与 AlphaGo 的对战细节。同时因为我们在 AlphaGo 中使用的机器学习方法是通用型的，我们十分希望在不久的将来，将这种技术应用于其他的挑战中。游戏开始!

---

via: <https://googleblog.blogspot.com/2016/03/what-we-learned-in-seoul-with-alphago.html>

作者：[Demis Hassabis](http://demishassabis.com/) 译者：[martin2011qi](https://github.com/martin2011qi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


前 Kubuntu 领袖发起了新的 KDE 项目

Summary: Neon 将会提供一个当最新的 KDE 软件一发布就可以获得的途径。KDE 可能要让 Canonical 看到此项目是 Kubuntu 的竞争对手。

就是一个PPA

一直用xfce的飘过。另外，在chrome里面点击主页最下面的更多，也没反应，是不是有问题了啊？

晕！我酒店这儿的网络打不开 KDE 的网站。

我这边也一样，电信这烂货废死了，各种对外网站打不开。20M光纤完全是浪费钱，只能打游戏

酒店的网络一直不怎么样，尤其是快捷酒店的

能打游戏还不错呢，证明上行还可以。

河北张家口联通50M宽带，上传500KB……

老乡~

如果你经常阅读 Linux 和[开源新闻](http://itsfoss.com/category/news/)的话应该会对 Jonathan Riddell 这人很熟悉。它是 [Kubuntu](http://www.kubuntu.org/) 发行版的创建者及长期的开发领导。他由于敢于质询 Canonical 基金会对 Kubuntu 的资金筹集情况[而被 Ubuntu 的老板 Mark Shuttleworth 所驱逐](/article-5529-1.html) （据我所知，Canonical 从来没有真正回答过他的这个关于财务的问题。）

![](/data/attachment/album/201603/26/051002si8ndz08d0hb70qd.png)

*KDE neon 标志*

在周日，Riddell [宣布](https://dot.kde.org/2016/01/30/fosdem-announcing-kde-neon)了一个新项目：[KDE neon](http://neon.kde.org.uk/)。根据 Riddell 的声明，“Neon 将会提供一个当最新的 KDE 软件一发布就可以获得的途径。”

在看了声明和网站后，**neon 似乎主要是一个“快速的软件更新仓库”，它让 KDE 粉丝可以用上最新的软件**。除了等上数月来等到开发者在他们的仓库中发布新的 KDE 软件外，你将可以在软件一出来就得到它。

KDE 的确在 [noen FAQ](http://neon.kde.org.uk/faq) 中声明过这不是一个 KDE 创建的发行版。事实上，他们说“KDE 相信与许多发行版协作是很重要的，因为它们每个都能给用户提供独特的价值和专长。这是 KDE 成千上万项目中的一个。”

![](/data/attachment/album/201603/26/051003ly5bykve8dgzd4bd.jpg)

然而，网站和公告显示 neon 会运行在 Ubuntu 15.10 中（直到有下个长期支持版本）并很快会有让我惊奇的事情发生。KDE 可能要让 Canonical 把此项目视作 Kubuntu 的竞争对手。如果他们发现 KDE neon 有前景，他们就能把它变成一个完整的发行版。网站和通告声称这是一个 KDE 孵化项目，因此未来可能会包含任何东西。

neon 听上去对你有用么，或者你是否对你当前的发行版的 KDE 发布速度满意？你认为是否还有其他 KDE 发行版的空间（如果 KDE 决定朝这个方向进发）？让我在评论栏知道你们的想法。

---

via: <http://itsfoss.com/kde-neon-unveiled/>

作者：[JOHN PAUL](http://itsfoss.com/author/john/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出


Linux 上的原生 ZFS 支持已功能完备，支持 2.6.32 到 4.5 的 Linux 内核

ZFS的重复数据删除和数据压缩相当的出色，10G的数据可以只占用4G的空间

ZFS for Linux（ZoL）的开发者们又发布了一个 GNU/Linux 系统上的 ZFS 原生实现的稳定版本。

ZFS （Z 文件系统）是一个高级的文件系统和卷管理器，ZFS for Linux 在 Linux 内核中原生实现了 ZFS 文件系统。当前最新的稳定版本 ZFS for Linux 0.6.5.6 带来了一些有趣的更新，比如支持从 2.6.32 到 4.5 的 Linux 内核，也支持了 s390 和 s390x 硬件架构。

![](/data/attachment/album/201603/27/145107vwwis4q6x4s4obix.png)

据该项目的 [GitHub 主页](https://github.com/zfsonlinux/zfs)上的[发布公告](https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.6.5.6)，软件包已经更新，移除了人为的硬件架构限制，ZVOL 小操作更加健壮、支持了移步模式；正确地解析了 zdb -R 参数；zpool 子命令增加了 “-gLP”参数；zpool\_find\_vdev() 函数现在不再截断 vdev 路径；修复了“zpool list -v”命令对日志设备和空闲设备的输出。

从现在起， ZFS for Linux 现在已经功能完备，带来了稳定而功能完备的 ZPL、ZVOL、SPA 和 DMU 层。

你可从[项目网站](http://zfsonlinux.org/)上下载 ZFS for Linux 0.6.5.6，以及找到相应的安装指导。


仅有 0.09% 的 HTTPS 站点使用了 HPKP 证书钉

一份最近的调查报告显示，HTTPS 站点中仅有 0.09% 的站点（大约 4100 个）使用了 <ruby> <a href="/article-5282-1.html">  HTTP 公钥钉 </a> <rp>  （ </rp> <rt>  HTTP Public Key Pinning </rt> <rp>  ） </rp></ruby>（HPKP）来增强其域名的 SSL/TLS 证书。

HPKP 是一个 HTTP 安全扩展，最初发布于 2015 年 4 月（RFC 7469）。该标准定义了一种避免浏览器访问到伪造证书的 HTTPS 网站方法。在浏览器访问 HTTPS 网站时，网站可以锁定浏览器所应接受的该网站的公钥列表；只有浏览器接受的证书同之前通过 HPKP 头所申明的一致时才能访问该网站。

![](/data/attachment/album/201603/27/154847sjz7ly0q7jp0mkwl.jpg)

### 为防止攻击者使用一个以你的域名签发的有效证书来伪造你的网站时，HPKP 很有用

这种机制可以用于防护攻击者运行一个假冒网站并使用有效证书来欺骗浏览器的攻击行为。

攻击者有几种方式可以得到有效的证书。他们可以通过对 CA 的社会工程攻击、对技术薄弱点的攻击、CA 的数据泄露、利用脆弱的证书签发策略等来得到。另外，如果攻击者本身得到了浏览器可信任的 CA 的授权，也是可以做到的。

HPKP 就是用来解决这种问题的。

### HPKP 如何工作？

当网站管理人员为他的网站设置 HPKP 头时，第一次连接到该域名的用户将接收到一个包括了公钥指纹的列表，以后对该网站的访问必定使用这些公钥之一才能进行。

这些公钥存储在用户的浏览器里面，当用户再次访问该网站时，在建立 HTTPS 连接前，浏览器和服务器会确认它们都使用了正确公钥和服务器证书。如果不是，那么支持 HPKP 的浏览器会拒绝用户访问该网站。

![](/data/attachment/album/201603/27/154849ep1m1uwfujyc2kw2.png)

这对于防止攻击者通过假冒网站来欺骗用户是一件好事，但是如果合法的网站配置错误的话，这会让你的用户几个月都无法访问你的网站了。

### 错误配置的 HPKP 会让你的用户无法访问你的网站

做这个调查的 netcraft 公司[估计](http://news.netcraft.com/archives/2016/03/22/secure-websites-shun-http-public-key-pinning.html)是因为这个原因才导致在该标准发布一年之后，HPKP 的使用率仍然很低。

支持 HPKP 除了需要不断的维护工作，还需要维护人员如踩钢丝般的细心，才能避免整站的访问被完全关闭掉。

“即使是网站管理员们设置好了有效策略，还需要时时注意：日常的维护和紧急处置都有可能造成阻挡合法访客的事故，而且会持续阻挡很长时间。” netcraft 的 Paul Mutton 解释说。

这就是为什么只有 4100 个网站的管理员们决定使用 HPKP 头的原因。不幸的是， netcraft 说，实际上这个数字只有 3000 左右，因为大约有 1/4 的网站的 HPKP 头设置不正确。

### 实现 HPKP 并不太复杂，只是需要很细心

积极的一面是，当网站管理员熟悉了如何管理白名单中的证书及其客户端密钥，HPKP 可以为大多数带有敏感数据的网站提供了必要的安全措施。

一些著名的服务已经实施了 HPKP ，比如 GiHub、Mozilla 和 Pixabay 等。

尽管如此，像 Lenovo [Superfish](http://news.softpedia.com/news/Lenovo-Pushed-MitM-Capable-Browser-Add-On-Onto-Its-Products-473631.shtml) 和 Dell [eDellRoot](http://news.softpedia.com/news/dell-ships-laptops-with-root-certificate-big-security-no-no-496616.shtml) 这样的丑闻中，他们在其产品中包含了根证书，可以让攻击者绕开 HPKP。此外如果攻击者可以访问用户的浏览器，也能修改浏览器的可信任公钥列表来取消 HPKP 防护，或者禁止用户访问合法网站而去访问恶意伪造的网站。


LFCS 系列第一讲：如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件

Summary: Linux 基金会宣布了一个全新的 LFCS（Linux 基金会认证系统管理员，Linux Foundation Certified Sysadmin）认证计划

软件包管理没有提到YaST. 不是一样的工具吗?

想考个证都不知道去哪

好文章

我至今都没能掌握 sed 的用法。好惭愧！

rhce咯

来自湖北武汉的 Internet Explorer 8.0|Windows XP 用户

我也想问，考这个证在哪里考，怎么报名？

Linux 基金会宣布了一个全新的 LFCS（<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified Sysadmin </rt> <rp>  ） </rp></ruby>）认证计划。这一计划旨在帮助遍布全世界的人们获得其在处理 Linux 系统管理任务上能力的认证。这些能力包括支持运行的系统服务，以及第一手的故障诊断、分析，以及为工程师团队在升级时提供明智的决策。

![Linux Foundation Certified Sysadmin](/data/attachment/album/201603/28/055317ffy9907mbm2u01q7.png)

*Linux 基金会认证系统管理员——第一讲*

请观看下面关于 Linux 基金会认证计划的演示：

该系列将命名为《LFCS 系列第一讲》至《LFCS 系列第十讲》并覆盖关于 Ubuntu、CentOS 以及 openSUSE 的下列话题。

* 第一讲：如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件
* 第二讲：如何安装和使用 vi/m 全功能文字编辑器
* 第三讲：归档文件/目录并在文件系统中寻找文件
* 第四讲：为存储设备分区，格式化文件系统和配置交换分区
* 第五讲：在 Linux 中挂载/卸载本地和网络（Samba & NFS）文件系统
* 第六讲：组合分区作为 RAID 设备——创建&管理系统备份
* 第七讲：管理系统启动进程和服务（使用 SysVinit, Systemd 和 Upstart）
* 第八讲：管理用户和组，文件权限和属性以及启用账户的 sudo 权限
* 第九讲：用 Yum，RPM，Apt，Dpkg，Aptitude，Zypper 进行 Linux 软件包管理
* 第十讲：学习简单的 Shell 脚本编程和文件系统故障排除

> 重要提示：由于自 2016/2 开始 LFCS 认证要求有所变化，我们增加发布了下列必需的内容。要准备这个考试，推荐你也看看我们的 LFCE 系列。

* 第十一讲：怎样使用 vgcreate、lvcreate 和 lvextend 命令创建和管理 LVM
* 第十二讲：怎样安装帮助文档和工具来探索 Linux
* 第十三讲：怎样配置和排错 GRUB

本文是覆盖这个参加 LFCS 认证考试的所必需的范围和技能的十三个教程的第一讲。话说了那么多，快打开你的终端，让我们开始吧！

### 处理 Linux 中的文本流

Linux 将程序中的输入和输出当成字符流或者字符序列。在开始理解重定向和管道之前，我们必须先了解三种最重要的I/O（<ruby> 输入和输出 <rp>  （ </rp> <rt>  Input and Output </rt> <rp>  ） </rp></ruby>）流，事实上，它们都是特殊的文件（根据 UNIX 和 Linux 中的约定，数据流和外围设备（设备文件）也被视为普通文件）。

在 > (重定向操作符) 和 | (管道操作符)之间的区别是：前者将命令与文件相连接，而后者将命令的输出和另一个命令相连接。

```
# command > file
# command1 | command2

```

由于重定向操作符会静默地创建或覆盖文件，我们必须特别小心谨慎地使用它，并且永远不要把它和管道混淆起来。在 Linux 和 UNIX 系统上管道的优势是：第一个命令的输出不会写入一个文件而是直接被第二个命令读取。

在下面的操作练习中，我们将会使用这首诗——《A happy child》（作者未知)

![cat command](/data/attachment/album/201603/28/055317sx248jjs2c4c7uu7.png)

*cat 命令样例*

#### 使用 sed

sed 是<ruby> 流编辑器 <rp>  （ </rp> <rt>  stream editor </rt> <rp>  ） </rp></ruby>的缩写。为那些不懂术语的人额外解释一下，流编辑器是用来在一个输入流（文件或者管道中的输入）执行基本的文本转换的工具。

sed 最基本的用法是字符替换。我们将通过把每个出现的小写 y 改写为大写 Y 并且将输出重定向到 ahappychild2.txt 开始。g 标志表示 sed 应该替换文件每一行中所有应当替换的实例。如果这个标志省略了，sed 将会只替换每一行中第一次出现的实例。

**基本语法：**

```
# sed 's/term/replacement/flag' file

```

**我们的样例：**

```
# sed 's/y/Y/g' ahappychild.txt > ahappychild2.txt

```

![sed command](/data/attachment/album/201603/28/055318u6w915x3w6gg64l5.png)

*sed 命令样例*

如果你要在替换文本中搜索或者替换特殊字符（如 /，\，＆），你需要使用反斜杠对它进行转义。

例如，我们要用一个符号来替换一个文字，与此同时我们将把一行最开始出现的第一个 I 替换为 You。

```
# sed 's/and/\&/g;s/^I/You/g' ahappychild.txt

```

![sed replace string](/data/attachment/album/201603/28/055318ustph1gt8asgs2t8.png)

*sed 替换字符串*

在上面的命令中，众所周知 ^（插入符号）是正则表达式中用来表示一行开头的符号。

正如你所看到的，我们可以通过使用分号分隔以及用括号包裹来把两个或者更多的替换命令（并在它们中使用正则表达式）连接起来。

另一种 sed 的用法是显示或者删除文件中选中的一部分。在下面的样例中，将会显示 /var/log/messages 中从6月8日开始的头五行。

```
# sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p

```

请注意，在默认的情况下，sed 会打印每一行。我们可以使用 -n 选项来覆盖这一行为并且告诉 sed 只需要打印（用 p来表示）文件（或管道）中匹配的部分（第一个命令中指定以“Jun 8” 开头的行，第二个命令中指定一到五行）。

最后，可能有用的技巧是当检查脚本或者配置文件的时候可以保留文件本身并且删除注释。下面的单行 sed 命令删除（d）空行或者是开头为`#`的行（| 字符对两个正则表达式进行布尔 OR 操作）。

```
# sed '/^#\|^$/d' apache2.conf

```

![sed match string](/data/attachment/album/201603/28/055318sz9c1jpnjqnacl1p.png)

*sed 匹配字符串*

#### uniq 命令

uniq 命令允许我们返回或者删除文件中重复的行，默认写到标准输出。我们必须注意到，除非两个重复的行相邻，否则uniq 命令不会删除他们。因此，uniq 经常和一个前置的 sort 命令（一种用来对文本行进行排序的算法）搭配使用。默认情况下，sort 使用第一个字段（用空格分隔）作为关键字段。要指定一个不同的关键字段，我们需要使用 -k 选项。

**样例**

du –sch /path/to/directory/\* 命令将会以人类可读的格式返回在指定目录下每一个子文件夹和文件的磁盘空间使用情况（也会显示每个目录总体的情况），而且不是按照大小输出，而是按照子文件夹和文件的名称。我们可以使用下面的命令来让它通过大小排序。

```
# du -sch /var/* | sort -h

```

![sort command](/data/attachment/album/201603/28/055319qckggebd272dhhe2.jpg)

*sort 命令样例*

你可以通过使用下面的命令告诉 uniq 比较每一行的前6个字符（-w 6）（这里是指定的日期）来统计日志事件的个数，而且在每一行的开头输出出现的次数（-c）。

```
# cat /var/log/mail.log | uniq -c -w 6

```

![Count Numbers in File](/data/attachment/album/201603/28/055319ex1ex1hxjmnywnbm.jpg)

*文件中的统计数字*

最后，你可以组合使用 sort 和 uniq 命令（通常如此）。看看下面文件中捐助者、捐助日期和金额的列表。假设我们想知道有多少个捐助者。我们可以使用下面的命令来分隔第一字段（字段由冒号分隔），按名称排序并且删除重复的行。

```
# cat sortuniq.txt | cut -d: -f1 | sort | uniq

```

![Find Unique Records in File](/data/attachment/album/201603/28/055320quba70a7m8vbe4ym.jpg)

*寻找文件中不重复的记录*

* 也可阅读: [13个“cat”命令样例](/article-2336-1.html)

#### grep 命令

grep 在文件（或命令输出）中搜索指定正则表达式，并且在标准输出中输出匹配的行。

**样例**

显示文件 /etc/passwd 中用户 gacanepa 的信息，忽略大小写。

```
# grep -i gacanepa /etc/passwd

```

![grep Command](/data/attachment/album/201603/28/055320eepm9mp9mm4qwe9e.jpg)

*grep 命令样例*

显示 /etc 文件夹下所有 rc 开头并跟随任意数字的内容。

```
# ls -l /etc | grep rc[0-9]

```

![List Content Using grep](/data/attachment/album/201603/28/055321o4y33j3zzk3k4jpk.jpg)

*使用 grep 列出内容*

* 也可阅读: [12个“grep”命令样例](/article-2250-1.html)

#### tr 命令使用技巧

tr 命令可以用来从标准输入中转换（改变）或者删除字符，并将结果写入到标准输出中。

**样例**

把 sortuniq.txt 文件中所有的小写改为大写。

```
# cat sortuniq.txt | tr [:lower:] [:upper:]

```

![Sort Strings in File](/data/attachment/album/201603/28/055321tjh2huac2yxxhx29.jpg)

*排序文件中的字符串*

压缩`ls –l`输出中的分隔符为一个空格。

```
# ls -l | tr -s ' '

```

![Squeeze Delimiter](/data/attachment/album/201603/28/055321hz2w9e42egucz2iu.jpg)

*压缩分隔符*

#### cut 命令使用方法

cut 命令可以基于字节（-b选项）、字符（-c）或者字段（-f）提取部分输入（从标准输入或者文件中）并且将结果输出到标准输出。在最后一种情况下（基于字段），默认的字段分隔符是一个制表符，但可以由 -d 选项来指定不同的分隔符。

**样例**

从 /etc/passwd 中提取用户账户和他们被分配的默认 shell（-d 选项允许我们指定分界符，-f 选项指定那些字段将被提取）。

```
# cat /etc/passwd | cut -d: -f1,7

```

![Extract User Accounts](/data/attachment/album/201603/28/055322pgyrzp6irfm299fj.jpg)

*提取用户账户*

将以上命令结合起来，我们将使用 last 命令的输出中第一和第三个非空文件创建一个文本流。我们将使用 grep 作为第一过滤器来检查用户 gacanepa 的会话，然后将分隔符压缩至一个空格（tr -s ' ')。下一步，我们将使用 cut 来提取第一和第三个字段，最后使用第二个字段（本样例中，指的是IP地址）来排序之后，再用 uniq 去重。

```
# last | grep gacanepa | tr -s ‘ ‘ | cut -d’ ‘ -f1,3 | sort -k2 | uniq

```

![last command](/data/attachment/album/201603/28/055322bio7q6dxhoioeo6q.png)

*last 命令样例*

上面的命令显示了如何将多个命令和管道结合起来，以便根据我们的要求得到过滤后的数据。你也可以逐步地使用它以帮助你理解输出是如何从一个命令传输到下一个命令的（顺便说一句，这是一个非常好的学习经验！）

### 总结

尽管这个例子（以及在当前教程中的其他实例）第一眼看上去可能不是非常有用，但是他们是体验在 Linux 命令行中创建、编辑和操作文件的一个非常好的开始。请随时留下你的问题和意见——不胜感激！

#### 参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[Xuanwo](https://github.com/Xuanwo) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出


在 Linux 上将 BQ Aquaris Ubuntu 手机刷成 Android 系统

Summary: 如果你正好拥有全球第一支运行 Ubuntu 的手机并且希望将 BQ Aquaris E4.5 自带的 Ubuntu 系统换成 Android，那这篇文章能帮你点小忙。

吃饱了撑得。。。。

以前觉得刷机很有意思，现在看来，好无聊呀

那还不如直接买个红米 配置都比他强

![How to install Android on Ubuntu Phone](/data/attachment/album/201603/28/094836b51gnkc5kt4rg14a.jpg)

如果你正好拥有全球第一支运行 Ubuntu 的手机并且希望将 **BQ Aquaris E4.5 自带的 Ubuntu 系统换成 Android**，那这篇文章能帮你点小忙。

有一万种理由来解释为什么要将 Ubuntu 换成主流 Android OS。其中最主要的一个，就是这个系统本身仍然处于非常早期的阶段，针对的目标用户仍然是开发者和爱好者。不管你的理由是什么，要谢谢 BQ 提供的工具，让我们能非常轻松地在 BQ Aquaris 上安装 Android OS。

下面让我们一起看下在 BQ Aquaris 上安装 Android 需要做哪些事情。

### 前提条件

* 可用的因特网连接，用来下载 Android 出厂固件以及安装刷机工具。
* USB 数据线
* 运行 Linux 的电脑

本文是基于 Ubuntu 15.10 操作的。但是这些步骤应该也可以应用于其他大多数 Linux 发行版。

### 将 BQ Aquaris E4.5 上的 Ubuntu 换成 Android

#### 第一步：下载 Android 固件

首先是下载可以在 BQ Aquaris E4.5 上运行的 Android 固件。幸运的是我们可以在 BQ 的技术支持网站找到。可以从下面的链接直接下载，差不多 650 MB：

* [下载为 BQ Aquaris E4.5 制作的 Android](https://storage.googleapis.com/otas/2014/Smartphones/Aquaris_E4.5_L/2.0.1_20150623-1900_bq-FW.zip)

是的，这个版本还支持 OTA 自动升级。目前，固件版本是 2.0.1，基于 Android Lolipop 开发。过一段时间，应该就会放出基于 Marshmallow 的新版本，上边的链接可能就无效了。

我建议去 [BQ 的技术支持网站](http://www.bq.com/gb/support/aquaris-e4-5)下载最新的固件。

下载完成后解压。在解压后的目录里，找到一个名字是 **MT6582\_Android*\_*scatter.txt** 的文件。后面将要用到它。

#### 第二步：下载刷机工具

BQ 已经提供了自己的刷机工具，Herramienta MTK Flash Tool，可以轻松地给设备安装 Andriod 或者 Ubuntu 系统。你可以从下面的链接下载工具：

* [下载 MTK Flash Tool](https://storage.googleapis.com/otas/2014/Smartphones/Aquaris_E4.5/Ubuntu/Web%20version/Web%20version/SP_Flash_Tool_exe_linux_v5.1424.00.zip)

考虑到刷机工具在以后可能会升级，你总是可以从 [BQ 技术支持网站](http://www.bq.com/gb/support/aquaris-e4-5-ubuntu-edition)上找到最新的版本。

下载完后解压。之后应该可以在目录里找到一个叫 **flash\_tool** 的可执行文件。我们稍后会用到。

#### 第三步：移除冲突的软件包（可选）

如果你正在用最新版本的 Ubuntu 或 基于 Ubuntu 的 Linux 发行版，稍后可能会碰到 “BROM ERROR : S\_UNDEFINED*\_*ERROR (1001)” 错误。

要避免这个错误，你需要卸载有冲突的软件包。可以使用下面的命令：

```
sudo apt-get remove modemmanager

```

用下面的命令重启 udev 服务：

```
sudo service udev restart

```

检查一下内核模块 cdc\_acm 可能存在的副作用，运行下面的命令：

```
lsmod | grep cdc_acm

```

如果上面命令输出是空，你将需要重新加载一下这个内核模块：

```
sudo modprobe cdc_acm

```

#### 第四步：准备刷入 Android

切换到下载好并解压完成的刷机工具目录（第二步）。请使用命令行来完成，这是因为将要用到 root 权限。

假设你保存在下载目录里，使用下面的命令切换目录（为那些不懂如何在命令行下切换目录的朋友考虑）。

```
cd ~/Downloads/SP_Flash*

```

然后使用下面的命令以 root 权限启动刷机工具：

```
sudo ./flash_tool

```

然后你会看到一个像下面的窗口界面。不用在意 Download Agent 区域，它将会被自动填入。只要关心 Scatter-loading 区域。

![Replace Ubuntu with Android](/data/attachment/album/201603/28/094837jntlktg6zj37n7yg.jpg)

还记得之前第一步里提到的 **MT6582\_Android\_scatter.txt** 文件吗？这个文本文件就在你第一步中下载的 Android 固件解压后的目录里。点击 Scatter-loading（上图中）然后选中 MT6582\_Android*\_*scatter.txt 文件。

之后，你将看到类似下面图片里的一些绿色线条：

![Install-Android-bq-aquaris-Ubuntu-2](/data/attachment/album/201603/28/094837ipzcdkxdvlk9dwly.jpg)

#### 第五步：刷入 Android

已经差不多了。把你的手机关机，然后通过 USB 线连接到电脑上。

在下拉列表里选择 Firmware Upgrade，然后点击那个大的 Download 按钮。

![flash Android with Ubuntu](/data/attachment/album/201603/28/094838oerpze3kspfoz0i2.jpg)

如果一切顺利，你应该可以在工具下方的状态栏里看到刷机状态：

![Replace Ubuntu with Android](/data/attachment/album/201603/28/094838r910b1j8s3ifs30k.jpg)

当所有过程都完成后，你将看到一个类似这样的提示：

![Successfully flashed Android on bq qauaris Ubuntu Phone](/data/attachment/album/201603/28/094839hapd7mrpfma7ldrn.jpg)

将手机从电脑上移除然后开机。你应该看到屏幕上显示白色并在中间和底部有 AQUARIS 文字，还应该有 “powered by Android” 字样。差不多需要差不多十分钟，你才可以设置和开始使用 Android。

注意：如果中间出了什么问题，同时按下电源、音量加、音量减按键可以进入 fast boot 模式。然后再次关机并连接电脑。重复升级固件的过程。应该可以。

### 总结

要感谢厂商提供的工具，让我们可以轻松地 **在 BQ Ubuntu 手机上刷 Android**。当然，你可以使用相同的步骤将 Android 替换回 Ubuntu。只是下载的时候选 Ubuntu 固件而不是 Android。

希望这篇文章可以帮你将你的 bq 手机上的 Ubuntu 刷成 Android。如果有什么问题或建议，可以在下面留言区里讨论。

---

via: <http://itsfoss.com/install-android-ubuntu-phone/>

作者：[Abhishek](http://itsfoss.com/author/abhishek/) 译者：[zpl1025](https://github.com/zpl1025) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何在 Linux 上安装服务器管理软件 Cockpit

赞一个！

RHEL7中没有这个软件。

make

Cockpit 是一个自由开源的服务器管理软件，它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器。Cockpit 使得 linux 系统管理员、系统维护员和开发者能轻松地管理他们的服务器并执行一些简单的任务，例如管理存储、检测日志、启动或停止服务以及一些其它任务。它的报告界面添加了一些很好的功能使得可以轻松地在终端和 web 界面之间切换。另外，它不仅使得管理一台服务器变得简单，更重要的是只需要一个单击就可以在一个地方同时管理多个通过网络连接的服务器。它非常轻量级，web 界面也非常简单易用。在这篇博文中，我们会学习如何安装 Cockpit 并用它管理我们的运行着 Fedora、CentOS、Arch Linux 以及 RHEL 发行版操作系统的服务器。下面是 Cockpit 在我们的 GNU/Linux 服务器中一些非常棒的功能：

1. 它包含 systemd 服务管理器。
2. 有一个用于故障排除和日志分析的 Journal 日志查看器。
3. 包括 LVM 在内的存储配置比以前任何时候都要简单。
4. 用 Cockpit 可以进行基本的网络配置。
5. 可以轻松地添加和删除用户以及管理多台服务器。

![](/data/attachment/album/201603/28/095806wcgczozl2ng6mnd4.png)

### 1. 安装 Cockpit

首先，我们需要在我们基于 linux 的服务器上安装 Cockpit。大部分发行版的官方软件仓库中都有可用的 cockpit 安装包。这篇博文中，我们会在 Fedora 22、CentOS 7、Arch Linux 和 RHEL 7 中通过它们的官方软件仓库安装 Cockpit。

#### CentOS / RHEL

CentOS 和 RHEL 官方软件库中有可用的 Cockpit。我们只需要用 yum 管理器就可以安装。只需要以 sudo/root 权限运行下面的命令就可以安装它。

```
# yum install cockpit

```

![Centos 上安装 Cockpit](/data/attachment/album/201603/28/095809tg6p6i0pp5bsf6kc.png)

#### Fedora 22/21

和 CentOS 一样， Fedora 的官方软件库默认也有可用的 Cockpit。我们只需要用 dnf 软件包管理器就可以安装 Cockpit。

```
# dnf install cockpit

```

![Fedora 上安装 Cockpit](/data/attachment/album/201603/28/095810kvt7kt00ozv8tzp9.png)

#### Arch Linux

现在 Arch Linux 官方软件库中还没有可用的 Cockpit，但 Arch 用户库（Arch User Repository，AUR）有。只需要运行下面的 yaourt 命令就可以安装。

```
# yaourt cockpit

```

![Arch linux 上安装 Cockpit](/data/attachment/album/201603/28/095810brff6vfv2cfjwz6y.png)

### 2. 启动并启用 Cockpit

成功安装完 Cockpit，我们就要用服务/守护进程管理器启动 Cockpit 服务。到了 2015 年，尽管一些 linux 发行版仍然运行 SysVinit 管理守护进程，但大部分 linux 发行版都采用了 Systemd，Cockpit 使用 systemd 完成从运行守护进程到服务几乎所有的功能。因此，我们只能在运行着 Systemd 的最新的 linux 发行版中安装 Cockpit。要启动 Cockpit 并让它在每次系统重启时自动启动，我们需要在终端或控制台中运行下面的命令。

```
# systemctl start cockpit

# systemctl enable cockpit.socket

Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket.

```

### 3. 允许通过防火墙

启动 Cockpit 并使得它能在每次系统重启时自动启动后，我们现在要给它配置防火墙。由于我们的服务器上运行着防火墙程序，我们需要允许它通过某些端口使得从服务器外面可以访问 Cockpit。

#### Firewalld

```
# firewall-cmd --add-service=cockpit --permanent

success

# firewall-cmd --reload

success

```

![允许 Cockpit 通过 Firewalld](/data/attachment/album/201603/28/095811twsp77fifvoxixs2.png)

#### Iptables

```
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# service iptables save

```

### 4. 访问 Cockpit Web 界面

下面，我们终于要通过 web 浏览器访问 Cockpit web 界面了。根据配置，我们只需要用浏览器打开 https://ip-address:9090 或 https://server.domain.com:9090。在我们这篇博文中，我们用浏览器打开 https://128.199.114.17:9090，正如下图所示。

![通过 SSL 访问 Cockpit Web 服务](/data/attachment/album/201603/28/095811l6y22iwl62yh6h08.png)

此时会出现一个 SSL 认证警告，因为我们正在使用一个自签名认证。我们只需要忽略这个警告并进入到登录页面，在 chrome/chromium 中，我们需要点击 Show Advanced 然后点击 **Proceed to 128.199.114.17 (unsafe)**。

![Cockpit 登录界面](/data/attachment/album/201603/28/095812jmep8835gfdddssm.png)

现在，要进入仪表盘，我们需要输入详细的登录信息。这里，用户名和密码和用于登录我们的 linux 服务器的用户名和密码相同。当我们输入登录信息并点击 Log In 按钮后，我们就会进入到 Cockpit 仪表盘。

![Cockpit 仪表盘](/data/attachment/album/201603/28/095812p06gr460ghykf4z4.png)

这里我们可以看到所有的菜单以及 CPU、磁盘、网络、存储使用情况的可视化结果。仪表盘正如上图所示。

#### 服务

要管理服务，我们需要点击 web 页面右边菜单中的 Services 按钮。然后，我们会看到服务被分成了 5 个类别，目标、系统服务、套接字、计时器和路径。

![Cockpit 服务](/data/attachment/album/201603/28/095813tg6w8wgv583aw9kc.png)

#### Docker 容器

我们甚至可以用 Cockpit 管理 docker 容器。用 Cockpit 监控和管理 Docker 容器非常简单。由于我们的服务器中没有安装运行 docker，我们需要点击 Start Docker。

![Cockpit 容器](/data/attachment/album/201603/28/095813wj1carva83kla186.png)

Cockpit 会自动在我们的服务器上安装和运行 docker。启动之后，我们就会看到下面的截图。然后我们就可以按照需求管理 docker 镜像、容器。

![Cockpit 容器管理](/data/attachment/album/201603/28/095814vf1ibb5iq5f1f5b5.png)

#### Journal 日志查看器

Cockpit 有个日志查看器，它把错误、警告、注意分到不同的标签页。我们也有一个 All 标签页，在这里可以看到所有的日志信息。

![Cockpit Journal 日志](/data/attachment/album/201603/28/095814d4inqa5yjy6m4p9u.png)

#### 网络

在网络部分，我们可以看到两个可视化发送和接收速度的图。我们可以看到这里有一个可用网卡的列表，还有 Add Bond、Bridge、VLAN 的选项。如果我们需要配置一个网卡，我们只需要点击网卡名称。在下面，我们可以看到网络的 Journal 日志信息。

![Cockpit Network](/data/attachment/album/201603/28/095815zwvkottwh4k31tv4.png)

#### 存储

现在，用 Cockpit 可以方便地查看硬盘的读写速度。我们可以查看存储的 Journal 日志以便进行故障排除和修复。在页面中还有一个已用空间的可视化图。我们甚至可以卸载、格式化、删除一块硬盘的某个分区。它还有类似创建 RAID 设备、卷组等攻能。

![Cockpit Storage](/data/attachment/album/201603/28/095815ldv1fm1p333axsv1.png)

#### 用户管理

通过 Cockpit Web 界面我们可以方便地创建新用户。在这里创建的账户会应用到系统用户账户。我们可以用它更改密码、指定角色、以及删除用户账户。

![Cockpit Accounts](/data/attachment/album/201603/28/095816u3tt3h31zfzfxzlh.png)

#### 实时终端

Cockpit 还有一个很棒的特性。是的，我们可以执行命令，用 Cockpit 界面提供的实时终端执行任务。这使得我们可以根据我们的需求在 web 界面和终端之间自由切换。

![Cockpit 终端](/data/attachment/album/201603/28/095816gzrl9hjzsfgsmfjm.png)

### 总结

Cockpit 是由 [Red Hat](http://www.redhat.com/) 开发的使得管理服务器变得轻松简单的自由开源软件。它非常适合于进行简单的系统管理任务和新手系统管理员。它仍然处于开发阶段，还没有稳定版发行。因此不适合于生产环境。它是针对最新的默认安装了 systemd 的 Fedora、CentOS、Arch Linux、RHEL 系统开发的。如果你想在 Ubuntu 上安装 Cockpit，你可以通过 PPA 访问，但现在已经过期了。如果你有任何疑问、建议，请在下面的评论框中反馈给我们，这样我们可以改进和更新我们的内容。非常感谢 ！

---

via: <http://linoxide.com/linux-how-to/install-cockpit-fedora-centos-rhel-arch-linux/>

作者：[Arun Pyasi](http://linoxide.com/author/arunp/) 译者：[ictlyh](http://mutouxiaogui.cn/blog/) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


LFCS 系列第二讲：如何安装和使用纯文本编辑器 vi/vim

输入 a4yy 复制当前行和接下来的 3 行，进入一个名为 a 的缓存区。我们可以继续编辑我们的文件————我们不需要立即插入刚刚复制的行。                                <br />
我输入完a,就进入输入模式了。。。。。。。。。。。。。。

抱歉，丢了内容了，是 "a 表示名为 a 的缓存区，前面有个双引号。

a也会进入编辑模式，你可以换个名字啊 比如 b4yy

几个月前， Linux 基金会发起了 LFCS （<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified System administrator </rt> <rp>  ） </rp></ruby>）认证，以帮助世界各地的人来验证他们能够在 Linux 系统上做基本的中级系统管理任务：如系统支持、第一手的故障诊断和处理、以及何时向上游支持团队提出问题的智能决策。

![Learning VI Editor in Linux](/data/attachment/album/201603/29/053546aftwkut8h2uvhb2f.png)

*在 Linux 中学习 vi 编辑器*

请简要看看一下视频，里边介绍了 Linux 基金会认证的程序。

这篇文章是系列教程的第二讲，在这个部分中，我们会介绍 vi/vim 基本的文件编辑操作，帮助读者理解编辑器中的三个模式，这是 LFCS 认证考试中必须掌握的。

### 使用 vi/vim 执行基本的文件编辑操作

vi 是为 Unix 而生的第一个全屏文本编辑器。它的设计小巧简单，对于仅仅使用过诸如 NotePad++ 或 gedit 等图形界面的文本编辑器的用户来说，使用起来可能存在一些困难。

为了使用 vi，我们必须首先理解这个强大的程序操作中的三种模式，方便我们后边学习这个强大的文本处理软件的相关操作。

请注意，大多数的现代 Linux 发行版都集成了 vi 的变种——— vim（<ruby> 改进版 VI <rp>  （ </rp> <rt>  Vi IMproved </rt> <rp>  ） </rp></ruby>），相比于 vi，它有更多新功能。所以，我们会在本教程中交替使用 vi 和 vim。

如果你的发行版还没有安装 vim，你可以通过以下方法来安装：

* Ubuntu 及其衍生版：apt-get update && apt-get install vim
* 以 Red-Hat 为基础的发行版：yum update && yum install vim
* openSUSE ：zypper update && zypper install vim

### 我为什么要学习 vi

至少有以下两个理由：

1. 因为它是 POSIX 标准的一部分，所以不管你使用什么发行版 vi 总是可用的。
2. vi 基本不消耗多少系统资源，并且允许我们仅仅通过键盘来完成任何可能的任务。

此外，vi 有着非常丰富的内置帮助手册，程序打开后就可以通过 `:help` 命令来查看。这个内置帮助手册比 vi/vim 的 man 页面包含了更多信息。

![vi Man Pages](/data/attachment/album/201603/29/053547pjeg7wb5qwtzc0rc.png)

*vi Man 页面*

#### 启动 vi

可以通过在命令提示符下输入 vi 来启动。

![Start vi Editor](/data/attachment/album/201603/29/053547utc985cm8c8n52nm.png)

*使用 vi 编辑器*

然后按下字母 i，你就可以开始输入了。或者通过下面的方法来启动 vi：

```
# vi filename

```

这样会打开一个名为 filename 的<ruby> 缓存区 <rp>  （ </rp> <rt>  buffer </rt> <rp>  ） </rp></ruby>（稍后会详细介绍缓存区），在你编辑完成之后就可以存储在磁盘中了。

#### 理解 vi 的三个模式

1. 在<ruby> 命令 <rp>  （ </rp> <rt>  command </rt> <rp>  ） </rp></ruby>模式中，vi 允许用户浏览该文件并输入由一个或多个字母组成的、简短的、大小写敏感的 vi 命令。这些命令的大部分都可以增加一个前缀数字表示执行次数。
比如：`yy`（或`Y`） 复制当前的整行，`3yy`（或`3Y`） 复制当前整行和下边紧接着的两行（总共3行）。通过 `Esc` 键可以随时进入命令模式（而不管当前工作在什么模式下）。事实上，在命令模式下，键盘上所有的输入都被解释为命令而非文本，这往往使得初学者困惑不已。
2. 在<ruby> 末行 <rp>  （ </rp> <rt>  ex </rt> <rp>  ） </rp></ruby>模式中，我们可以处理文件（包括保存当前文件和运行外部程序）。我们必须在命令模式下输入一个冒号（`:`），才能进入这个模式，紧接着是要在末行模式下使用的命令。执行之后 vi 自动回到命令模式。
3. 在<ruby> 文本输入 <rp>  （ </rp> <rt>  insert </rt> <rp>  ） </rp></ruby>模式（通常在命令模式下使用字母 `i` 进入这个模式）中，我们可以随意输入文本。大多数的键入将以文本形式输出到屏幕（一个重要的例外是`Esc`键，它将退出文本编辑模式并回到命令模式）。

![vi Insert Mode](/data/attachment/album/201603/29/053548zzn3t0oq01qtfq1a.png)

*vi 文本插入模式*

#### vi 命令

下面的表格列出常用的 vi 命令。文件编辑的命令可以通过添加叹号的命令强制执行（如，`:q!` 命令强制退出编辑器而不保存文件）。

| 关键命令 | 描述 |
| --- | --- |
| `h` 或 ← | 光标左移一个字符 |
| `j` 或 ↓ | 光标下移一行 |
| `k` 或 ↑ | 光标上移一行 |
| `l` (小写字母 L) 或 → | 光标右移一个字符 |
| `H` | 光标移至屏幕顶行 |
| `L` | 光标移至屏幕末行 |
| `G` | 光标移至文件末行 |
| `w` | 光标右移一个词 |
| `b` | 光标左移一个词 |
| `0` (数字零) | 光标移至行首 |
| `^` | 光标移至当前行第一个非空格字符 |
| `$` | 光标移至当前行行尾 |
| `Ctrl-B` | 向后翻页 |
| `Ctrl-F` | 向前翻页 |
| `i` | 在光标所在位置插入文本 |
| `I` (大写字母 i) | 在当前行首插入文本 |
| `J` (大写字母 j) | 将下一行与当前行合并（下一行上移到当前行） |
| `a` | 在光标所在位置后追加文本 |
| `o` (小写字母 O) | 在当前行下边插入空白行 |
| `O` (大写字母 O) | 在当前行上边插入空白行 |
| `r` | 替换光标所在位置的一个字符 |
| `R` | 从光标所在位置开始覆盖插入文本 |
| `x` | 删除光标所在位置的字符 |
| `X` | 立即删除光标所在位置之前（左边）的一个字符 |
| `dd` | 剪切当前整行文本（为了之后进行粘贴） |
| `D` | 剪切光标所在位置到行末的文本（该命令等效于 `d$`） |
| `yX` | 给出一个移动命令 X （如 `h`、`j`、`H`、`L` 等），复制适当数量的字符、单词或者从光标开始到一定数量的行 |
| `yy` 或 `Y` | 复制当前整行 |
| `p` | 粘贴在光标所在位置之后（下一行） |
| `P` | 粘贴在光标所在位置之前（上一行） |
| `.` (句点) | 重复最后一个命令 |
| `u` | 撤销最后一个命令 |
| `U` | 撤销最后一行的最后一个命令，只有光标仍在最后一行才能执行。 |
| `n` | 在查找中跳到下一个匹配项 |
| `N` | 在查找中跳到前一个匹配项 |
| `:n` | 下一个文件，编辑多个指定文件时，该命令加载下一个文件。 |
| `:e file` | 加载新文件来替代当前文件 |
| `:r file` | 将新文件的内容插入到光标所在位置的下一行 |
| `:q` | 退出并放弃更改 |
| `:w file` | 将当期打开的缓存区保存为file。如果是追加到已存在的文件中，则使用 ：`w >> file` 命令 |
| `:wq` | 保存当前文件的内容并退出。等效于 `x!` 和 `ZZ` |
| `:r! command` | 执行 command 命令，并将命令的输出插入到光标所在位置的下一行 |

#### vi 选项

下列选项可以让你在运行 Vim 的时候很方便（需要写入到 `~/.vimrc` 文件）：

```
# echo set number >> ~/.vimrc
# echo syntax on >> ~/.vimrc
# echo set tabstop=4 >> ~/.vimrc
# echo set autoindent >> ~/.vimrc

```

![vi Editor Options](/data/attachment/album/201603/29/053548fbvu7v4ertee4ep4.png)

*vi编辑器选项*

* set number 当 vi 打开或新建文件时，显示行号。
* syntax on 打开语法高亮（对应多个文件扩展名），以便源码文件和配置文件更具可读性。
* set tabstop=4 设置制表符间距为 4 个空格（默认为 8）。
* set autoindent 将前一行的缩进应用于下一行。

#### 查找和替换

vi 具有通过查找将光标移动到（在单独一行或者整个文件中的）指定位置。它还可自动或者通过用户确认来执行文本替换。

a) 在行内查找。`f` 命令在当前行查找指定字符，并将光标移动到指定字符出现的位置。

例如，命令 `fh` 会在本行中将光标移动到字母`h`下一次出现的位置。注意，字母 `f` 和你要查找的字符都不会出现在屏幕上，但是当你按下回车的时候，要查找的字符会被高亮显示。

比如，以下是在命令模式按下 `f4` 之后的结果。

![Search String in Vi](/data/attachment/album/201603/29/053548r3ceopcooec9ojkj.png)

*在 vi 中查找字符*

b) 在整个文件内查找。使用 `/` 命令，紧接着需要查找的单词或短语。这个查找可以通过使用 `n` 命令或者 `N` 重复查找上一个查找的字符串。以下是在命令模式键入 `/Jane` 的查找结果。

![Vi Search String in File](/data/attachment/album/201603/29/053549r7ge0opbzpadbbdo.png)

*在 vi 中查找字符*

c) vi 通过使用命令来完成多行或者整个文件的替换操作（类似于 sed）。我们可以使用以下命令，使得整个文件中的单词 “old” 替换为 “young”。

```
:%s/old/young/g

```

**注意**：冒号位于命令的最前面。

![Vi Search and Replace](/data/attachment/album/201603/29/053549avni9nwn993ondir.png)

*vi 的查找和替换*

冒号 (`:`) 进入末行模式，在本例中 `s` 表示替换，`%` 是从第一行到最后一行的表示方式（也可以使用 nm 表示范围，即第 n 行到第 m 行），old 是查找模式，young 是用来替换的文本，`g` 表示在每个查找出来的字符串都进行替换。

另外，在命令最后增加一个 `c`，可以在每一个匹配项替换前进行确认。

```
:%s/old/young/gc

```

将旧文本替换为新文本前，vi/vim 会向我们显示以下信息：

![Replace String in Vi](/data/attachment/album/201603/29/053550azrb7tbuuu7brub5.png)

*vi 中替换字符串*

* `y`: 执行替换（yes）
* `n`: 跳过这个匹配字符的替换并转到下一个（no）
* `a`: 在当前匹配字符及后边的相同项全部执行替换
* `q` 或 `Esc`: 取消替换
* `l` (小写 L): 执行本次替换并退出
* `Ctrl-e`, `Ctrl-y`: 下翻页，上翻页，查看相应的文本来进行替换

#### 同时编辑多个文件

我们在命令提示符输入 vim file1 file2 file3 如下：

```
# vim file1 file2 file3

```

vim 会首先打开 file1，要跳到 file2 需用 `:n` 命令。当需要打开前一个文件时，`:N` 就可以了。

为了从 file1 跳到 file3

a) `:buffers` 命令会显示当前正在编辑的文件列表

```
:buffers

```

![Edit Multiple Files](/data/attachment/album/201603/29/053550mluqcbuqataceicf.png)

*编辑多个文件*

b) `:buffer 3` 命令（后边没有 s）会打开第三个文件 file3 进行编辑。

在上边的图片中，标记符号 `#` 表示该文件当前已被打开，但是是在后台，而 `%a` 标记的文件是正在被编辑的。另外，文件号（如上边例子的 3）后边的空格表示该文件还没有被打开。

#### vi 的临时缓存区

（LCTT 译注：临时缓存区，也叫做“命名缓存区”，或“<ruby> 寄存器 <rp>  （ </rp> <rt>  register </rt> <rp>  ） </rp></ruby>”）

为了复制连续的多行（比如，假设为 4 行）到一个名为 a 的临时缓存区（与文件无关），并且还要将这些行粘贴到在当前 vi 会话文件中的其它位置，我们需要：

1. 按下 `Esc` 键以确认 vi 处在命令模式
2. 将光标放在我们希望复制的第一行文本
3. 输入 `"a4yy` 复制当前行和接下来的 3 行，进入一个名为 a 的缓存区。我们可以继续编辑我们的文件————我们不需要立即插入刚刚复制的行。
4. 当到了需要使用刚刚复制的那些行的位置，在 `p`(小写)或 `P`(大写)命令前使用`"a`来将复制行插入到名为 a 的 缓存区：

	* 输入 `"ap`，复制行将插入到光标位置所在行的下一行。
	* 输入 `"aP`，复制行将插入到光标位置所在行的上一行。

如果愿意，我们可以重复上述步骤，将缓存区 a 中的内容插入到我们文件的多个位置。像本节中这样的一个临时缓存区，会在当前窗口关闭时释放掉。

### 总结

像我们看到的一样，vi/vim 在命令接口下是一个强大而灵活的文本编辑器。通过以下链接，随时分享你自己的技巧和评论。

#### 参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/vi-editor-usage/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[GHLandy](https://github.com/GHLandy) 校对：[东风唯笑](https://github.com/dongfengweixiao), [wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出


AV Linux 2016 正式发布——这是一款专为音乐制作开发的发行版

Summary: 这只是一个‘初始’版，使用它需要一些学习过程。我希望用户能对新版本多一些宽容和耐心，我们指望您的反馈才能改进，也希望可以将你的经验分享给别人。

吓我一跳，还以为一本道，东京热还出Linux呢！！！！！！！！

东京热是啥？

哈哈!   AV        linux

看壁纸，是基于 Debian 啊？

上个周末，专为音乐制作而定制的操作系统 AV Linux 2016 正式发布了，它为低延时音乐制作带来了一整套新的工具和开源软件。

2016/3/26，AV Linux 2016 最终版上载完成，可供下载安装使用了。虽然它依旧包含了大多数用于音乐制作的流行软件，但是看起来并不如其之前的版本那样方便易用。

“AVL 2016 和它之前的版本是完全不同的，我把它视作 Alpha 或 Beta 发布版”，开发者[说](http://www.bandshed.net/2016/03/23/avl2016/)，“这只是一个‘初始’版，使用它需要一些学习过程。我希望用户能对新版本多一些宽容和耐心，我们指望您的反馈才能不断改进，也希望您可以将经验分享给别人。”

![](/data/attachment/album/201603/29/061317nbszo7uostrert79.jpg)

### AV Linux 2016 兼容 KXStudio 软件库

安装 AV Linux 2016 的用户应该知道它是一个 Debian 衍生版，兼容 [KXStudio](http://kxstudio.linuxaudio.org/) 的软件库——这是另外一个针对音乐和视频制作的 GNU/Linux 操作系统。所以，如果你不能在 AV Linux 的软件库中找到你喜欢的音乐/视频工具，你可以在 [KXStudio](http://kxstudio.linuxaudio.org/) 的库中找找看。

此外，如果你是这个音乐/视频制作操作系统的新用户，你可以读读它的 AV Linux 用户手册帮助你学习使用。请[下载32位和64位 Live ISO 镜像](http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/AV-Linux-48850.shtml)，并阅读发布公告了解已经问题，开始你的音乐/视频制作之旅吧！


LFCS 系列第三讲：归档/压缩文件及目录、设置文件属性和搜索文件

最近，Linux 基金会发起了一个全新的 LFCS（<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified Sysadmin </rt> <rp>  ） </rp></ruby>）认证，旨在让遍布全世界的人都有机会参加该认证的考试，通过考试的人将表明他们有能力在 Linux 上执行基本的中级系统管理任务。这项认证包括了对已运行的系统和服务的支持、一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力。

![Linux Foundation Certified Sysadmin – Part 3](/data/attachment/album/201603/30/060134i6fv967ff8kfgf9b.png)

*LFCS 系列第三讲*

请看以下视频，这里边讲给出 Linux 基金会认证程序的一些想法。

本讲是系列教程中的第三讲，在这一讲中，我们会涵盖如何在文件系统中归档/压缩文件及目录、设置文件属性和搜索文件等内容，这些都是 LFCS 认证中必须掌握的知识。

### 归档和压缩的相关工具

文件归档工具将一堆文件整合到一个单独的归档文件之后，我们可以将归档文件备份到不同类型的介质或者通过网络传输和发送 Email 来备份。在 Linux 中使用频率最高的归档实用工具是 tar。当归档工具和压缩工具一起使用的时候，可以减少同一文件和信息在硬盘中的存储空间。

#### tar 使用工具

tar 将一组文件打包到一个单独的归档文件（通常叫做 tar 文件或者 tarball）。tar 这个名称最初代表<ruby> 磁带存档程序 <rp>  （ </rp> <rt>  tape archiver </rt> <rp>  ） </rp></ruby>，但现在我们可以用它来归档任意类型的可读写介质上边的数据，而不是只能归档磁带数据。tar 通常与 gzip、bzip2 或者 xz 等压缩工具一起使用，生成一个压缩的 tarball。

**基本语法：**

```
# tar [选项] [路径名 ...]

```

其中 ... 代表指定哪些文件进行归档操作的表达式

#### tar 的常用命令

| 长选项 | 简写 | 描述 |
| --- | --- | --- |
| -create | c | 创建 tar 归档文件 |
| -concatenate | A | 将一存档与已有的存档合并 |
| -append | r | 把要存档的文件追加到归档文件的末尾 |
| -update | u | 更新新文件到归档文件中去 |
| -diff 或 -compare | d | 比较存档与当前文件的不同之处 |
| -file archive | f | 使用档案文件或归档设备 |
| -list | t | 列出 tarball 中的内容 |
| -extract 或 -get | x | 从归档文件中释放文件 |

#### 常用的操作修饰符

| 长选项 | 缩写 | 描述 |
| --- | --- | --- |
| -directory dir | C | 执行归档操作前，先转到指定目录 |
| -same-permissions | p | 保持原始的文件权限 |
| -verbose | v | 列出所有的读取或提取的文件。但这个标识符与 -list 一起使用的时候，还会显示出文件大小、属主和时间戳的信息 |
| -verify | W | 写入存档后进行校验 |
| -exclude file |  | 不把指定文件包含在内 |
| -exclude=pattern | X | 以PATTERN模式排除文件 |
| -gzip 或 -gunzip | z | 通过gzip压缩归档 |
| -bzip2 | j | 通过bzip2压缩归档 |
| -xz | J | 通过xz压缩归档 |

Gzip 是最古老的压缩工具，压缩率最小，bzip2 的压缩率稍微高一点。另外，xz 是最新的压缩工具，压缩率最好。xz 具有最佳压缩率的代价是：完成压缩操作花费最多时间，压缩过程中占有较多系统资源。

通常，通过这些工具压缩的 tar 文件相应的具有 .gz、.bz2 或 .xz的扩展名。在下列的例子中，我们使用 file1、file2、file3、file4 和 file5 进行演示。

**通过 gzip、bzip2 和 xz 压缩归档**

归档当前工作目录的所有文件，并以 gzip、bzip2 和 xz 压缩刚刚的归档文件（请注意，用正则表达式来指定哪些文件应该归档——这是为了防止将归档工具包前一步生成的文件打包进来）。

```
# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

```

![Compress Multiple Files Using tar](/data/attachment/album/201603/30/060134vs1uuyu23ag1yavk.png)

*压缩多个文件*

**列举 tarball 中的内容和更新/追加文件到归档文件中**

列举 tarball 中的内容，并显示相同信息为一个详细目录清单。注意，不能直接向压缩的归档文件更新/追加文件（若你需要向压缩的 tarball 中更新/追加文件，需要先解压 tar 文件后再进行操作，然后重新压缩）。

```
# tar tvf [tarball]

```

![Check Files in tar Archive](/data/attachment/album/201603/30/060135zzi6hlbo6ylmo0eh.png)

*列举归档文件中的内容*

运行一下任意一条命令：

```
# gzip -d myfiles.tar.gz    [#1]
# bzip2 -d myfiles.tar.bz2  [#2]
# xz -d myfiles.tar.xz      [#3]

```

然后：

```
# tar --delete --file myfiles.tar file4 (删除tarball中的file4)
# tar --update --file myfiles.tar file4 (更新tarball中的file4)

```

和

```
# gzip myfiles.tar      [ 如果你运行 #1 命令 ]
# bzip2 myfiles.tar     [ 如果你运行 #2 命令 ]
# xz myfiles.tar        [ 如果你运行 #3 命令 ]

```

最后

```
# tar tvf [tarball] #再次

```

将 file4 修改后的日期和时间与之前显示的对应信息进行比较

**排除文件类型**

假设你现在需要备份用户的家目录。一个有经验的系统管理员会选择忽略所有视频和音频文件再备份（也可能是公司规定）。

可能你最先想到的方法是在备份的时候，忽略扩展名为 .mp3 和 .mp4（或者其他格式）的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp，那你的方法就不灵了。为了发现并排除音频或者视频文件，你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查：

```
#!/bin/bash
# 把需要进行备份的目录传递给 $1 参数.
DIR=$1
# 排除文件类型中包含了 mpeg 字符串的文件，然后创建 tarball 并进行压缩。
# -若文件类型中包含 mpeg 字符串， $?（最后执行的命令的退出状态）返回 0，然后文件名被定向到排除选项。否则返回 1。
# -若 $? 等于 0，该文件从需要备份文件的列表排除。
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

```

![Exclude Files in tar Archive](/data/attachment/album/201603/30/060136fle3keeeed4e4fem.png)

*排除文件进行备份*

**使用 tar 保持文件的原有权限进行恢复**

通过以下命令，你可以保留文件的权限将备份文件恢复到原始用户的家目录（本例是 user\_restore）。

```
# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

```

![Restore Files from tar Archive](/data/attachment/album/201603/30/060137gu536aywqqzua4o3.png)

*从归档文件中恢复*

**扩展阅读：**

* [18 tar Command Examples in Linux](http://www.tecmint.com/18-tar-command-examples-in-linux/)
* [Dtrx – An Intelligent Archive Tool for Linux](http://www.tecmint.com/dtrx-an-intelligent-archive-extraction-tar-zip-cpio-rpm-deb-rar-tool-for-linux/)

### 通过 find 命令搜索文件

find 命令用于递归搜索目录树中包含指定字符的文件和目录，然后在屏幕显示出于指定字符相匹配的文件和目录，或者在匹配项进行其他操作。

通常，我们通过文件名、文件的属主、属组、类型权限、日期及大小来搜索。

#### 基本语法：

```
# find [需搜索的目录] [表达式]

```

**通过文件大小递归搜索文件**

以下命令会搜索当前目录（.）及其下两层子目录（-maxdepth 3，包含当前目录及往下两层的子目录）中大于 2 MB（-size +2M）的所有文件（-f）。

```
# find . -maxdepth 3 -type f -size +2M

```

![Find Files by Size in Linux](/data/attachment/album/201603/30/060137g7kn5dyn47n2774i.png) \* 通过文件大小搜索文件\*

**搜索符合一定规则的文件并将其删除**

有时候，777 权限的文件通常为外部攻击者打开便利之门。不管是以何种方式，让所有人都可以对文件进行任意操作都是不安全的。对此，我们采取一个相对激进的方法——删除这些文件（'{}' + 用来“聚集”搜索的结果）。

```
# find /home/user -perm 777 -exec rm '{}' +

```

![Find all 777 Permission Files](/data/attachment/album/201603/30/060138y7dxlpzxm3mgqgmm.png)

*搜索 777 权限的文件*

**按访问时间和修改时间搜索文件**

搜索 /etc 目录下访问时间（-atime）或修改时间（-mtime）大于（+180）或小于（-180） 6 个月或者刚好（180） 6 个月的配置文件。

按照下面例子对命令进行修改：

```
# find /etc -iname "*.conf" -mtime -180 -print

```

![Find Files by Modification Time](/data/attachment/album/201603/30/060139c70syyslkdqyyl9y.png)

*按修改时间搜索文件*

* 扩展阅读： [35 Practical Examples of Linux ‘find’ Command](http://www.tecmint.com/35-practical-examples-of-linux-find-command/)

### 文件权限及基本属性

ls -l 命令输出的前 10 位字符是文件的属性，其中第一个字符用来表明文件的类型。

* – : 普通文件
* -d : 目录
* -l : 符号链接
* -c : 字符设备 (它将数据作为字节流处理，如terminal)
* -b : 块设备 (在块设备中处理数据，如存储设备)

接下来表示文件属性的 9 位字符叫做文件的读写模式，代表文件属主、同组用户和其他用户（通常指的是“外部世界”）对应的读（r）、写（w）和执行（x）权限。

文件的写权限允许对应的用户对文件进行打开和读写，对于同时设置了执行权限的目录，对应用户可以列举出该目录的内容。另外，文件的执行权限允许将文件当做是一个可执行程序来运行，而目录的执行权限则是允许用户进入和退出该目录。

文件的权限通过 chown 命令来更改，其基本语法如下：

```
# chmod [new_mode] file

```

new\_mode 可以是 3 位八进制数值或者对应权限的表达式。

八进制数值可以从二进制数值进行等值转换，通过下列方法来计算文件属主、同组用户和其他用户权限对应的二进制数值：

一个确定权限的二进制数值表现为 2 的幂（r=2^2，w=2^1，x=2^0），当权限省缺时，二进制数值为 0。如下：

![Linux File Permissions](/data/attachment/album/201603/30/060139dd60ep3ndk447xdf.png)

*文件权限*

使用八进制数值设置上图的文件权限，请输入：

```
# chmod 744 myfile

```

通过 u、g 和 o 分别代表用户、同组用户和其他用户，然后你也可以使用权限表达式来单独对用户设置文件的权限模式。也可以通过 a 代表所有用户，然后设置文件权限。通过 + 号或者 - 号相应的赋予或移除文件权限。

**为所有用户撤销一个 shell 脚本的执行权限**

正如之前解释的那样，我们可以通过 - 号为需要移除权限的属主、同组用户、其他用户或者所有用户去掉指定的文件权限。下面命令中的短横线（-）可以理解为：移除（-）所有用户（a）的 backup.sh 文件执行权限（x）。

```
# chmod a-x backup.sh

```

下面演示为文件属主、同组用户赋予读、写和执行权限，并赋予其他用户读权限。

当我们使用 3 位八进制数值为文件设置权限的时候，第一位数字代表属主权限，第二位数字代表同组用户权限，第三位数字代表其他用户的权限：

* 属主：(r=2^2 + w=2^1 + x=2^0 = 7)
* 同组用户：(r=2^2 + w=2^1 + x=2^0 = 7)
* 其他用户：(r=2^2 + w=0 + x=0 = 4)

命令如下：

```
# chmod 774 myfile

```

随着练习时间的推移，你会知道何种情况下使用哪种方式来更改文件的权限模式的效果最好。

使用 ls -l 详细列举目录详细同样会显示出文件的属主和属组（这个很基本，而且影响到系统文件的访问控制）。

![Linux File Listing](/data/attachment/album/201603/30/060140latew4zef3xt3ar6.png)

*列举 Linux 文件*

通过 chown 命令可以对文件的归属权进行更改，可以同时或者分开更改属主和属组。其基本语法为：

```
# chown user:group file

```

至少要指定用户或者用户组

**举几个例子：**

将文件的属主更改为指定用户：

```
# chown gacanepa sent

```

同时将文件的属主和属组更改为指定的用户和组：

```
# chown gacanepa:gacanepa TestFile

```

只将文件的属组更改为指定组。注意组名前的冒号（:）。

```
# chown :gacanepa email_body.txt

```

### 结论

作为一个系统管理员，你需要懂得如何创建和恢复备份、如何在系统中搜索文件并更改它们的属性。通过一些技巧，你可以更好地管理系统并避免以后出问题。

我希望，本文给出的技巧可以帮助你达成管理系统的目标。你可以随时在评论中发表自己的技巧及社区给你带来的益处。

先行感谢！

参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/compress-files-and-finding-files-in-linux/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[GHLandy](https://github.com/GHLandy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出


Linux 有问必答：如何在 Linux 上安装 Node.js

学node.js就是为了引用别人10行代码的包么？

这东西自己有个包管理器，还要自己安装另外的程序，太可坑了

哈哈，你说的不对，是引用别人的“一”行代码的包！

>
> **问题**: 如何在你的 Linux 发行版上安装 Node.js？
>
>
>

[Node.js](http://nodejs.org/) 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上。在构建高性能的服务器端应用程序上，Node.js 在 JavaScript 中已是首选方案。是什么让使用 Node.js 库和应用程序的[庞大生态系统](https://www.npmjs.com/)来开发服务器后台变得如此流行。Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它，进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系。

![](/data/attachment/album/201603/30/082501gg7hputdul6tuu3q.jpg)

在本教程中，我将介绍 **如何在主流 Linux 发行版上安装 Node.js，包括 Debian，Ubuntu，Fedora 和 CentOS** 。

Node.js 在一些发行版上有预构建的程序包（如，Fedora 或 Ubuntu），而在其他发行版上你需要通过源码安装。由于 Node.js 发展比较快，建议从源码安装最新版而不是安装一个过时的预构建的程序包。最新的 Node.js 自带 npm（Node.js 的包管理器），让你可以轻松的安装 Node.js 的外部模块。

### 在 Debian 上安装 Node.js on

从 Debian 8 (Jessie)开始，Node.js 已被纳入官方软件仓库。因此，你可以使用如下方式安装它：

```
$ sudo apt-get install npm

```

在 Debian 7 (Wheezy) 以前的版本中,你需要使用下面的方式来源码安装：

```
$ sudo apt-get install python g++ make
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

```

### 在 Ubuntu 或 Linux Mint 中安装 Node.js

Node.js 被包含在 Ubuntu（13.04 及更高版本）。因此，安装非常简单。以下方式将安装 Node.js 和 npm。

```
$ sudo apt-get install npm
$ sudo ln -s /usr/bin/nodejs /usr/bin/node

```

而 Ubuntu 中的 Node.js 可能版本比较老，你可以从 [其 PPA](https://launchpad.net/%7Echris-lea/+archive/node.js) 中安装最新的版本。

```
$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository -y ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install npm

```

### 在 Fedora 中安装 Node.js

Node.js 被包含在 Fedora 的 base 仓库中。因此，你可以在 Fedora 中用 yum 安装 Node.js。

```
$ sudo yum install npm

```

如果你想安装 Node.js 的最新版本，可以按照以下步骤使用源码来安装。

```
$ sudo yum groupinstall 'Development Tools'
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

```

### 在 CentOS 或 RHEL 中安装 Node.js

在 CentOS 使用 yum 包管理器来安装 Node.js，首先启用 EPEL 软件库，然后运行：

```
$ sudo yum install npm

```

如果你想在 CentOS 中安装最新版的 Node.js，其安装步骤和在 Fedora 中的相同。

### 在 Arch Linux 上安装 Node.js

Node.js 在 Arch Linux 的社区库中可以找到。所以安装很简单，只要运行：

```
$ sudo pacman -S nodejs npm

```

### 检查 Node.js 的版本

一旦你已经安装了 Node.js，你可以使用如下所示的方法检查 Node.js 的版本。

```
$ node --version

```

---

via: <http://ask.xmodulo.com/install-node-js-linux.html>

作者：[Dan Nanni](http://ask.xmodulo.com/author/nanni) 译者：[strugglingyou](https://github.com/strugglingyou) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


ownCloud Pi 设备将运行在 Snappy Ubuntu Core 16.04 LTS 及树莓派3上

Summary: 我们去年报道了 ownCloud 正与西部数据Western Digital实验室沟通，帮助他们开发一个社区项目，将给用户带来可以在家中自托管的云存储设备。

在上家公司有构建owncloud， 感觉还可以，结合LADP构建企业内部云盘服务还是挺好玩的。

哪个公司啊，我们公司也是基于owncloud二次开发（完全没动）。

我们去年[报道了](http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml) ownCloud 正与<ruby> 西部数据 <rp>  （ </rp> <rt>  Western Digital </rt> <rp>  ） </rp></ruby>实验室沟通，帮助他们开发一个社区项目，将给用户带来可以在家中自托管的云存储设备。

自托管设备背后的理念，是由 ownCloud 服务端软件承载的，它结合了树莓派和西数硬盘到一个易安装和开箱即用的容器中。

![](/data/attachment/album/201603/30/083552ypppp5ezpbqenppp.jpg)

社区的反应看上去很积极，ownCloud Pi 项目收到了许多好的提议和点子。今天，我们收到了一个更好的消息，首个镜像可以[下载](http://people.canonical.com/%7Ekyrofa/owncloud-pi/)了。

ownCloud Pi 基于最新的 Snappy Ubuntu Core 16.04 LTS 系统，它由 Canonical 为嵌入式和 物联网（Internet of Things）设备所设计，包括新的树莓派3 Model B。

ownCloud 的开发者在今天的[声明](https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/)中称：“我们正在寻求来自 ownCloud、Ubuntu、树莓派和西数实验室等社区的帮助来测试和提高它们，并且可以在下周发布首批30台设备”。

### 目前的阻碍、挑战及前进的路

目前团队正致力于在基于 Xenial Xerus 版本的 Snappy Ubuntu 内核上完成他们的 ownCloud Pi 设备方案。这样，新的64位树莓派3可以帮助它们克服之前在树莓派2上遇到的阻碍，比如支持大于2GB的文件。

由此看来，最终的 ownCloud Pi 将在今年春天发布预览版，它将会在树莓派3上运行。之后，我们应该就可以购买首批可用于产品环境版本的 ownCloud Pi 设备了。

---

via: <http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml>

作者：[Marius Nestor](http://news.softpedia.com/editors/browse/marius-nestor) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


将 Ubuntu 和 FreeBSD 融合在一起的发行版 ：UbuntuBSD

最后一句猝不及防

好，有一融合尝试

有意思的尝试

谁能教给我怎么用U盘装BSD系的操作系统……

bsd官方网站有安装指南!

![](/data/attachment/album/201603/30/084703rmimh0zy5jsii3yh.jpg)

不止是在 Linux 的内核上面你才能体验到 Ubuntu 的快捷方便，伙计们。UbuntuBSD 可以让你在 FreeBSD 的内核上面也能体验到那种方便快捷。

UbuntuBSD 称自己是 ‘Unix for human beings’，这一点也不人惊讶。如果你能想起来的话，Ubuntu 使用的标语是 ‘Linux for human beings’ ，并且在过去的 11 年里它确实让一个‘正常人’有可能用上 Linux。

UbuntuBSD 有着同样的想法。它想让新手能够接触到 Unix ，以及能使用它——如果我能这样说的话。至少，这就是它的目标。

### 什么是 BSD ？ 它和 Linux 有哪些不同？

如果你是新手，那么你需要知道 [Unix 和 Linux 的区别](/article-3159-1.html).

在 Linux 出现之前，Unix 由 [AT&T](https://en.wikipedia.org/wiki/AT%26T) 的 [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson)、 [Denis Ricthie](https://en.wikipedia.org/wiki/Dennis_Ritchie) 以及他们的团队设计。这是在可以算作计算机上古时期的 1970 发生的事。当你知道 Unix 是一个闭源的，有产权的操作系统时你可能会感到惊讶。AT&T 给了很多第三方许可，包括学术机构和企业。

美国加州大学伯克利分校是其中一个拿到许可的学术机构。在那里开发的 Unix 系统叫做 [BSD (Berkeley Software Distribution)](http://www.bsd.org/)。BSD 的最出名的开源分支是 [FreeBSD](https://www.freebsd.org/)，另一个最流行的闭源分支是苹果的 Mac OS X。

在 1991 年。芬兰的计算机系大学生 Linus Torvalds 从头写了自己的 Unix 系统的复制品。这就是我们今天熟知的 Linux 内核。Linux 的发行版在内核的基础上添加了图形界面、GNU 的那一套（cp, mv, ls,date, bash 什么的）、安装/管理工具，GNU C/C++ 编译器以及很多应用。

### UbuntuBSD 不是这种发行版的开端

在你知道了 Linux，Unix，FreeBSD 之间的区别之后。我要告诉你的是 UbuntuBSD 不是第一个要在 FreeBSD 内核上作出类似 Linux 的感觉的发行版。

当 Debian 选择使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 之后，[Debian GNU/kFreeBSD](https://www.debian.org/ports/kfreebsd-gnu/)诞生了。它使用的不是通常的 Linux 内核，而是 将 Debian 移植到了 FreeBSD 内核上。

与 Debian GNU/kFreeBSD 类似，UbuntuBSD 是将 Ubuntu 移植到了 FreeBSD 内核上。

### UbuntuBSD Beta 版代号： Escape From SystemD

UbuntuBSD 的第一个版本已经发布，代号为“Escape From SystemD ”。它基于 Ubuntu 15.10 和 FreeBSD 10.1.

它的默认桌面环境为 [Xfce](http://www.xfce.org/) ，桌面以及服务器均可使用。 对于 [ZFS](https://en.wikipedia.org/wiki/ZFS) 的支持也包含在这个版本中。开发者还提供了一个文本界面的安装器。

### 想试试？

我不建议任何人马上就去开心地去尝试这个系统。它仍在开发并且安装器还是文本界面的。不过如果你足够自信的话，直接去下载体验吧。但是如果你是新手的话，请等一段时间，至少不要现在就去尝试：

* 下载 [UbuntuBSD](https://sourceforge.net/projects/ubuntubsd/)

你认为 UbuntuBSD 怎么样？ 兹瓷不兹瓷它？

---

via: <http://itsfoss.com/ubuntubsd-ubuntu-freebsd/>

作者：[ABHISHEK](http://itsfoss.com/author/abhishek/) 译者：[name1e5s](https://github.com/name1e5s) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


微软发布“Ubuntu on Windows” 项目，Linux 程序可原生运行于 Windows 10 中

Summary: 你现在可以在 Windows 10 中直接运行 Linux 下的 bash 以及其它的数万个二进制程序了。然而这并不是通过虚拟机、容器实现的。

感觉像cygwin（https://www.cygwin.com/）？

也像andLinux（http://andlinux.sourceforge.net/）？

有机会想体验一下

期待！

Wine 的一种反向技术

为啥不是调转过来呢？MS这么爱开源，帮忙把wine搞好吧~~或者让Win程序可以“原生”运行在Linux上。

wine

wine=wine is not an emulator<br />
那么这个项目可以叫 mine=microsoft's native emulator

双内核OS要诞生的节奏吗？

掉过来会更好，Windows自身资源占用就很利害了，再弄个容器（虽然文章说不是容器，但我还是坚持认为他们使用了类似技术）给它，性能下降明显，Linux程序的高效体现不出来，没什么鸟用

github有个项目叫flinux

embrace, extend, and extinguish<br />
拥抱，扩展，毁灭

MINE !

你既没有看过其技术实现细节，何来坚持使用了容器一说。要知道目前容器实现原理是容器与主机共享内核，而 Windows 的内核显然同 Linux 存在巨大差异，所以现在 Windows Server 2016 技术预览版上支持 Linux 容器，还是基于特定版的 Hyper-V Linux 客户端，如果是这样的话，还用得着让 Canonical 一同来开发？直接用 Hyper-V 方案就行，也不一定非得选 Ubuntu，任何 Hyper-V 支持的发行版都行。此外你也没有体验过，何来“性能下降明显”一说？

另外按你的意思 Wine 项目是不是可以把酒倒掉了？

要为linux捉急么

桌面

微软着急了啊！

表示对Windows的极不信任

不祥的预感，顿时觉得Linux快死了，被微软玩死了，微软绝不是善类，和微软合作的下场只有死路一条

来自湖南益阳的 Internet Explorer 11.0|Windows 7 用户

linux危险了，一个自娱自乐的系统，不把自己的兼容性搞好，最后结局就是这样的，一个好的系统要被大家接受就是易用、兼容、傻瓜，而不是搞一堆命令和限制，毕竟大多数用电脑的人是电脑盲，需要的只是拿起就用，而不是打一堆命令。LINUX最大的硬伤，就是核心问题-不兼容，不是靠什么WINE来解决的

sb

系统神马的都不是问题,问题是安全好不,中国没自己的系统,这才是重点,

就像别人写的盗号软件再怎么好用,后来发现自己盗的都给作者了

只针对桌面系统来说吧，linux粉都不这么认为，最可怕的是linux厂商也不这么认为，这也是为什么桌面版linux发展了这么多年一直没大的进展。<br />
linux要想争夺Windows的桌面领域，就必须要朝傻瓜化发展，否则的话还是坚守自己的服务器和嵌入式领域吧

傻逼。你知不知道linux 到底干嘛用的？ 不知道别瞎BB

虽然你说的简单粗暴，但是准确

开源是 Linux 的灵魂

玩安卓玩出的决定？

你真用过Linux？还是说你认为电脑就是用来玩的，没有别的作用了？

我认为，这样想的人，根本就不理解自由及开源软件。

至少以后偶尔需要用windows的时候，不会出现命令行用不了的情形了

你是不是傻？电脑盲还用linux？你这智商也就适合玩windows

然而我还是喜欢Linux下的桌面环境，可定制强。

服务器还好，网上有红帽的入门教程，我现在用着没什么难度，只是桌面太坑爹了，就拿我的centos7来说，用着用着居然进入了emergency模式

听说过这样一种策略，拥抱-融合-消灭。感觉微软有点腹黑

这不是兼容性的问题，linux在桌面方面发展一直很慢，压根就没被重视过

来自河北邢台的 Internet Explorer 11.0|Windows 7 用户（手动滑稽

凭啥兼容？照你这逻辑，iOS咋不兼容Android呢？

笑死 ,, 兼容, 你用Mac运行个widnows 下的exe试试,linux本就不是面向电脑盲的

win下的任何功能的程序都有都比linux同类的强，根本没必要拿到win上运行

来自辽宁大连的 Chrome Mobile 39.0|Android 5.1 用户

我就喜欢你这一本正经的胡说八道。

你了解linux太少了, 真正支持linux的都是计算机大公司,比如intel, IBM, amd, HP, 谷歌等, 超级计算机大部分运行linux, 安卓系统也是linux. 那些设备驱动大多数是大公司写的. 服务于大公司才能这赚钱. linux桌面系统免费, 没利益的.  国外很多超级计算机硬件国内都没有, 很遗憾. 人家不给. 我们的做们系统一般最多4核8线程, 那些超级计算机一个系统几百个cpu. linux胜任这个. 还有计算机集群. linux可以控制几千个计算机, 呵呵 多多学习.

很喜欢这个啊，可以个mac一样使用命令行操作了

恩 无知到一本正经

MDZZ

见过傻的，没见过你这样傻蛋的，呵呵

这里也快变成cnbeta了

智障不知道 Linux的应用场景么

昨晚，北京时间2016/3/30 23点30分，微软 //Build 2016 开发者大会在美国旧金山莫斯康展览中心拉开帷幕。

在本次大会上宣布，微软与 Ubuntu 的母公司 Canonical 合作开发了一个超级隐秘的项目，将 Ubuntu 的<ruby> 用户空间 <rp>  （ </rp> <rt>  user space </rt> <rp>  ） </rp></ruby>带到了 Windows 10 之中。 据大会现场消息披露，你现在可以**在 Windows 10 中直接运行 Linux 下的 bash 以及其它的数万个二进制程序了**。

![](/data/attachment/album/201603/31/070407k9a577aqzrt0rrt4.jpg)

正在旧金山参加本次大会的 Canonical 的 Ubuntu 产品与战略负责人 Dustin Kirkland 也在其[博客](http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html)上宣布了这个消息。

“这对于我来说也许有点奇怪，我已经快有16年没有使用 Windows 了。但在几个月前有了变化，我参与到了微软和 Canonical 合作的一个超级隐秘（也十分令人震惊）的项目中，这一切会在这次 Build 大会上由 Kevin Gallo 揭晓...”，[他说](http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html)，“现在可以在 Windows 10 cmd.exe 窗口内原生地运行 Ubuntu 用户空间和 bash ！”

“好吧，这是一个运行在虚拟机的 Ubuntu 吗？” 不！**这根本不是一个虚拟机**，不用在虚拟机中启动 Linux 内核，它就是 Ubuntu 的用户空间。

“哦，那是运行在容器里面啰？” 不不！**这也不是一个容器**，这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯，就像 cygwin 那样？”不不不！cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里，我们说的是一个比特都不差、校验值**完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下**！

... ...

“那么，这就像是模拟器一样么？”越来越接近真相了，来自微软的一些技术人员正在研究一种技术，**将 Linux 的系统调用实时地转换为 Windows 的系统调用**。你可以把它当成 Wine 的一种反向技术。微软将其称之为“<ruby> Windows 下的 Linux 子系统 <rp>  （ </rp> <rt>  Windows Subsystem for Linux </rt> <rp>  ） </rp></ruby>”，当然现在还没有开源。

![](/data/attachment/album/201603/31/070418uk5dg151dg1k7udc.jpg)

如果你使用 Windows 10 来开发跨平台应用，那么“Ubuntu on Windows”项目将可以让你从 Windows 启动菜单直接访问 Linux 下的 bash shell。只需要键入 bash ，然后回车，就会打开一个命令行窗口，里面运行着 /bin/bash，然后数以万计的来自 Ubuntu 软件库中的二进制程序就可以运行了，包括但不限于 apt、ssh、 rsync、 find、 grep、 vim、 emacs、 awk、 sed、 ruby、 tar、 sort、php、 mysql、 perl、 python、 wget、 md5sum、 gpg、 curl、 apache、 gcc、 diff、patch 等等。

“这是 Windows 上原生可用的完整 Ubuntu 环境，不是虚拟化或模拟器，这是打破常识的里程碑和通向新天地的里程碑，”Canonical 公司 CEO Mark Shuttleworth 说，“不管怎么说，我们很高兴将 Ubuntu 带到了 Windows ，以一种神奇的方式满足了 Windows 开发者探索 Linux 的需要。”

这个技术当前基于 Ubuntu 14.04 LTS 开发，可以从 Windows Store 中下载早期 beta 版本。有关该项目的进一步技术细节，我们会在之后的文章中进行探讨。


“Ubuntu on Windows” 初体验

Summary: 本文带你揭开“Ubuntu on Windows”的神秘一角。Dustin Kirkland  是该项目组的成员之一，他的体验可以让我们感受一下这个“超级神秘”的项目。

什么情况

看来微软要把开发人员牢牢绑定在win10上.得码工者得天下，微软也是拼了.

我个人还是看好这个，虽然 OS X 是 UNIX 系统，也能使用一些 GNU 软件，但是毕竟内核不同，不是什么软件都支持，如果靠虚拟化解决，那同在 Windows 下用虚拟化方案没啥不同，最多就是虚拟化的技术存在一些差异，但是一部针对桌面的虚拟化方案能有什么不同？如果微软能做好对 Linux 内核的反向支持，能让大部分不是高度依赖 Linux 内核的软件正常运行，目标用户又用做 Linux 非底层软件开发，那么相较于 MacBook 的价格，相对低廉的 Windows 10 笔记本还是有吸引力的。当然不足可能是存在的，比如文件名，文件属性这些，要知道 Linux 对文

件名的限制非常少，但如果 Windows 10 是直接把 Linux 软件放在 NTFS 或 ReFS 文件系统，这方面肯定有限制，还有文件名大小写区分这些，以及像 chattr 这些扩展属性，不过 ACL 这个倒是不用担心，微软的 ACL 设置要比 setfacl/getfacl 细的多，而且不仅仅是文件系统在用，进程，注册表这些都在用。

当然不足肯定是存在的，

更简单来说，如果这个项目确实能很好运行 CLI 界面 Linux 软件，并且子系统消耗内存不多，CPU 资源不多的话，我就可以不用 VirtualBox 来跑一个对系统服务进行过必要精简的 CentOS 7 来在只有 2G 内存的 Surface 3 跑一些 Linux 服务了。

有这个确实会方便些，但是目前这样子不足以让人转换阵营

既然如此，那就应该让微软提供windows向linux的WINE转换啊。现在的linux WINE做得肯定不会比微软好

以后的小白就会说，linux是windows的子系统

拥抱 扩展 毁灭

我个人觉得，简单来说：

Canonical  -->  微软  「√」    （Canonical说：我来了。微软说：行，来吧）

微软  -->  WINE  「╳」    （微软说：不行，我没这闲功夫，我不干）

你觉得呢？

win10内置shell: 摇摆用户更方便使用win桌面环境,提升win10占用率

ms加强wine: 摇摆用户更方便使用linux桌面, 提升linux桌面占有率.

你觉得ms会怎么做?

差不多就这意思，一看就明白。

如果是Linux下跑windows还能接受   windows下跑linux  就windows那内存占用率还是算了吧

所以微軟還是想乾掉linux,只不過不是消滅而是吃進去共存.

来自广东中山的 Internet Explorer 8.0|Windows 7 用户

文件权限怎么解决？

软链接怎么搞的

能运行桌面应用吗？

目前不能，不过我觉得理论上是可行的。但是微软也许不考虑这样做。

这么多人看到 Ubuntu on Windows 就准备抛弃 OS X 转投 Windows 10 了？微软画的大饼看看就好了，何必当真呢！

微软可能只会让它运行终端程序，桌面的应该不会

为什么我电脑打不开Bash？

还没更新呢，等 redstone 版

一个很有远景的部署，微软在开源的路上越走越快了，表忘记盖茨本人也是一个早期骇客，他是具有开源精神的领袖人物

在 Windows 10 中原生运行 Linux bash 和其它的 ELF 二进制程序？对，你没看错，这就是昨晚微软[宣布](/article-7177-1.html)的“Ubuntu on Windows”项目所披露的事实——而且，今天不是 4/1。

之前就有传闻说，微软在 [Windows 10 里暗藏神秘 Linux 子系统！](/article-6979-1.html)现在，传闻变成真的了。

![Ubuntu on Windows 10](/data/attachment/album/201603/31/160721hcwz5cbo2cgc40ez.jpg)

据该项目的合作方， Ubnutu 背后的 Canonical 公司的产品与战略负责人 [Dustin Kirkland](https://www.linkedin.com/in/dustinkirkland/) 说，他在几个月前听说这个疯狂的想法时也懵了，花费了不少工夫才理解这后面发生了什么。

本文带你揭开“Ubuntu on Windows”的神秘一角。

首先，让我们看看发生了什么？

1. 首先你得有个 Windows 10
2. 打开 Windows 开始菜单
3. 输入“bash” （没有引号），回车
4. 这会打开一个 cmd.exe 窗口
5. 运行 Ubuntu 的 /bin/bash
6. 宾果！你可以完全访问所有的 Ubuntu 用户空间了
7. 没错，这包括 apt、 ssh、 rsync、 find、 grep、 awk、 sed、 sort、 xargs、 md5sum、 gpg、 curl、 wget、apache、 mysql、 python、 perl、 ruby、 php、 gcc、 tar、 vim、 emacs、 diff、 patch 等等
8. 以及，Ubuntu 软件库中数以万计的 ELF 二进制程序中的绝大多数！

![Bash](/data/attachment/album/201603/31/151117fu333omffsp3o494.jpg)

“好吧，这是一个运行在虚拟机的 Ubuntu 吗？” 不！**这根本不是一个虚拟机**，不用在虚拟机中启动 Linux 内核，它就是 Ubuntu 的用户空间。

“哦，那是运行在容器里面啰？” 不不！**这也不是一个容器**，这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯，就像 cygwin 那样？”不不不！cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里，我们说的是一个比特都不差、校验值**完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下**！

... ...

“那么，这就像是模拟器一样么？”这就比较接近真相了，来自微软的一些尖端技术人员正在研究一种技术，可以**将 Linux 的系统调用实时地转换为 Windows 的系统调用**。你可以把它当成 Wine 的一种反向技术。微软将其称之为“<ruby> Windows 下的 Linux 子系统 <rt>  Windows Subsystem for Linux </rt></ruby>”，当然现在还没有开源。（我觉得网友 [delectate](https://linux.cn/space/23856/) 说的比较有趣，这个东西不如叫做 mine=microsoft's native emulator 。）

而且，根据 [Dustin Kirkland](https://www.linkedin.com/in/dustinkirkland/) 的[说法](http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html)，使用跨平台的性能测试工具 sysbench 进行测试的结果发现，在 Windows 下运行这些原生的 ELF 二进制程序和在 Linux 下运行所消耗的 CPU 、内存和 IO 性能相当。对于这个结果，我表示非常的吃惊！

[Dustin Kirkland](https://www.linkedin.com/in/dustinkirkland/) 是该项目组的成员之一，他的体验可以让我们感受一下这个“超级神秘”的项目。

由于需要将整个 Ubuntu 的根文件系统打包到一个 Windows 应用软件包（.appx）中，这位已经十几年没有使用过 Windows 的老兄对微软开发工具十分陌生，在经过几个小时与 Visual Studio 的痛苦搏斗，制作了一堆各种尺寸的 png 图标，编辑了一打以上的 XML 文件后，他简直忍不住要将咖啡杯扔到该死的屏幕上了。

到最后，他终于寻求他所熟悉的 Linux 经验解决了这些问题。

按下 Windows 键，输入“bash”，回车！他发现这个要上载的根文件系统的内容放在 /mnt/c/Users/Kirkland/Downloads 下，只需要使用一个 cp -a 复制到目标位置即可，并用 find | xargs |rename 来批量更新文件名，用 grep| xargs | sed 搜索替换路径，用 convert 工具快速地批量缩放图标，简直不要太容易地搞定了这些工作，剩下的就只需要让 Visual Studio 自己干了，编译、上载到 Windows Store。搞定！

嗯，你也许从终端窗口中看到了 /mnt/c ，没错，这就是你的 Windows 下的 C: 盘，它们以读写模式直接挂载到 /mnt 下了。当然，你也可以在 Windows 下通过类似如下的路径访问 Ubuntu 的文件系统：C:\Users\Kirkland\AppData\Local\Lxss\rootfs\ 。

![文件系统](/data/attachment/album/201603/31/151003ljojc3jbkomm1mjm.jpg)

同时，如果需要 ssh 连接到其它的 Linux 上，你根本不用下载 putty，直接输入 ssh 即可：

![ssh](/data/attachment/album/201603/31/151329dupcfwbc1wppw8v6.jpg)

当然，你也可以使用 apt 来安装和更新软件包：

![apt](/data/attachment/album/201603/31/151425vz7crhkosobarzdt.jpg)

到目前为止，是不是所有的东西都可以完美工作了？还不全是。[LTP](https://github.com/linux-test-project/ltp) 测试中的大多数都没问题，但是有一些则还不行，主要是 tty 相关的部分，比如 byobu、screen、tmux 等还不能很好的工作，不过相信也快了。

另外，顺便提一句，当前这个子系统所采用的 Linux 镜像是 Ubuntu 14.04 LTS，等 16.04 LTS 发布后相信很快就会更新到 Windows Store 上。


开发人员可以免费下载 Red Hat 企业版 Linux（RHEL）

Summary: 如果你想成为一位 GNU/Linux 开发者，你现在就可以从 Red Hat 网站上下载最新版本的 Red Hat 企业版 Linux （RHEL）。此外，Red Hat 同时宣布在“开发者订阅”中，也可以免费使用它的 JBoss 中间件。

貌似并不需要注册直接下载

我一直意味redhat是可以随便下载的，只是更新要钱，看来不是这样

CentOS 是免费下载的，RHEL 从来不是，虽然你可以下载到，但是并不意味着下载到的是合法的。

下载试了下，是3.77G的RHEL 7.2，货真价实，赶紧尝鲜。

Hello World

这倒是非常不错的

这是要抢 CentOS 的份额么。。。

给我发一个种子吧，我死活下不了，QQ:1029391566

你根本不明白，虽然你能得到 RHEL，但是使用非授权的 RHEL 本身就有违开源精神。

可以共享吗？

曾就职于某证券公司运维，全套RHEL，没有给red hat一毛钱，问领导为什么不用centos，领导说因为centos装不了oracle数据库，好吧无语了，然后毫无疑问，使用oracle也没有给到甲骨文一毛钱。

没听说 CentOS 不能装 Oracle。

按照 RH 的许可协议，不可以。

可是领导“听说过”啊，其实也就是改 /etc/redhat-release 的事情，但官僚主义么，不用解释了吧。

怎么不能下载，老是停留在原来的界面！！

jboss也归红帽了

这个下载你要挂代理才能打开，貌似是从google跳转的他的下载链接

这个下载你要挂代理才能打开，貌似是从google跳转的他的下载链接

我就点了个下载看了下大小，没有下载完，太大了。而且我不习惯7.x系列。

个人可以自己编译一个linux服务器操作系统, 对于公司,买个服务的成本可能低于自己编译所花的人力和时间. 比是red hat使用自动编译系统.

我觉得红帽应该放开下载控制。实际上企业肯定需要花钱购买服务的。要不谁来承担责任。

昨天，Red Hat [宣布](http://www.redhat.com/en/about/press-releases/red-hat-expands-red-hat-developer-program-no-cost-red-hat-enterprise-linux-developer-subscription)，凡是注册其最新推出的“开发者订阅”的开发人员可以免费下载 Red Hat Enterprise Linux 操作系统。

考虑到这个消息是昨天宣布的，我们认为这个消息还是可信的。如果你想成为一位 GNU/Linux 开发者，你现在就可以从 Red Hat 网站上下载最新版本的 Red Hat 企业版 Linux （RHEL）。

此外，Red Hat 同时宣布在“开发者订阅”中，也可以免费使用它的 JBoss 中间件。

![](/data/attachment/album/201604/01/164305sh7l97hz9bbp85a7.jpg)

“通过该订阅，可以免费下载使用 Red Hat 企业版 Linux 和 Red Hat JBoss 中间件，开发借助这些开发平台和工具，可以很容易地使用我们的技术来启动项目和寻求解决方案，如果部署到产品环境中也可以得到商业支持，而不用担心移植或不兼容问题。” Red Hat 的开发工具和市场总监 Harry Mowersenior 说。

大多数人可能觉得这不可思议，好吧，关键点是，按照协议，这些免费提供的产品不能用于产品环境，只能用于本地的应用开发环境，如果用在产品环境需要购买付费订阅。

这个免费的 Red Hat 企业版 Linux 开发者套装包括 Red Hat 企业版 Linux 服务器和各种开发工具，Red Hat 会支持10年，包括 PHP、 Python、 Ruby、 OpenJDK 7(1.7)和 OpenJDK 8(1.8)。

现在就去[注册下载你的 Red Hat 企业版 Linux 开发者套装](http://developers.redhat.com/products/rhel/get-started/)吧！


如何在 Debian 中配置 Tripewire IDS

本文是一篇关于 Debian 中安装和配置 tripewire 的文章。它是 Linux 环境下基于主机的入侵检测系统（IDS）。tripwire 的高级功能可以检测并报告任何 Linux 中未授权的（文件和目录）的更改。tripewire 安装之后，会先创建一个基本的数据库，tripewire 监控并检测新文件的创建修改和谁修改了它等等。如果修改是合法的，你可以接受修改并更新 tripwire 的数据库。

![](/data/attachment/album/201604/03/104130pcgghcphbab1h8dt.jpg)

### 安装和配置

tripwire 在 Debian VM 中的安装如下。

```
# apt-get install tripwire

```

![installation](/data/attachment/album/201604/03/104134dleanyyn1d412d2n.png)

安装中，tripwire 会有下面的配置提示。

#### 站点密钥创建

tripwire 需要一个站点口令（site passphrase）来加密 tripwire 的配置文件 tw.cfg 和策略文件 tw.pol。tripewire 使用指定的密码加密两个文件。一个 tripewire 实例必须指定站点口令。

![site key1](/data/attachment/album/201604/03/104134johmrbx1xgh11gkg.png)

#### 本地密钥口令

本地口令用来保护 tripwire 数据库和报告文件。本地密钥用于阻止非授权的 tripewire 数据库修改。

![local key1](/data/attachment/album/201604/03/104135cf0gt0vaxptabfgx.png)

#### tripwire 配置路径

tripewire 配置存储在 /etc/tripwire/twcfg.txt。它用于生成加密的配置文件 tw.cfg。

![configuration file](/data/attachment/album/201604/03/104136f499o66z80t9ylcr.png)

**tripwire 策略路径**

tripwire 在 /etc/tripwire/twpol.txt 中保存策略文件。它用于生成加密的策略文件 tw.pol。

![tripwire policy](/data/attachment/album/201604/03/104137krtemgexmvexo4ra.png)

安装完成后如下图所示。

![installed tripewire1](/data/attachment/album/201604/03/104137ny981ax2c1s181dy.png)

#### tripwire 配置文件 (twcfg.txt)

tripewire 配置文件（twcfg.txt）细节如下图所示。加密策略文件（tw.pol）、站点密钥（site.key）和本地密钥（hostname-local.key）在后面展示。

```
ROOT         =/usr/sbin

POLFILE       =/etc/tripwire/tw.pol

DBFILE       =/var/lib/tripwire/$(HOSTNAME).twd

REPORTFILE   =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr

SITEKEYFILE   =/etc/tripwire/site.key

LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key

EDITOR       =/usr/bin/editor

LATEPROMPTING =false

LOOSEDIRECTORYCHECKING =false

MAILNOVIOLATIONS =true

EMAILREPORTLEVEL =3

REPORTLEVEL   =3

SYSLOGREPORTING =true

MAILMETHOD   =SMTP

SMTPHOST     =localhost

SMTPPORT     =25

TEMPDIRECTORY =/tmp

```

#### tripwire 策略配置

在生成基础数据库之前先配置 tripwire 配置。有必要经用一些策略如 /dev、 /proc 、/root/mail 等。详细的 twpol.txt 策略文件如下所示。

```
@@section GLOBAL
TWBIN = /usr/sbin;
TWETC = /etc/tripwire;
TWVAR = /var/lib/tripwire;

#
# File System Definitions
#
@@section FS

#
# First, some variables to make configuration easier
#
SEC_CRIT      = $(IgnoreNone)-SHa ; # Critical files that cannot change

SEC_BIN       = $(ReadOnly) ;        # Binaries that should not change

SEC_CONFIG    = $(Dynamic) ;         # Config files that are changed
# infrequently but accessed
# often

SEC_LOG       = $(Growing) ;         # Files that grow, but that
# should never change ownership

SEC_INVARIANT = +tpug ;              # Directories that should never
# change permission or ownership

SIG_LOW       = 33 ;                 # Non-critical files that are of
# minimal security impact

SIG_MED       = 66 ;                 # Non-critical files that are of
# significant security impact

SIG_HI        = 100 ;                # Critical files that are
# significant points of
# vulnerability

#
# tripwire Binaries
#
(
rulename = "tripwire Binaries",
severity = $(SIG_HI)
)
{
$(TWBIN)/siggen            -> $(SEC_BIN) ;
$(TWBIN)/tripwire        -> $(SEC_BIN) ;
$(TWBIN)/twadmin        -> $(SEC_BIN) ;
$(TWBIN)/twprint        -> $(SEC_BIN) ;
}
{
/boot            -> $(SEC_CRIT) ;
/lib/modules        -> $(SEC_CRIT) ;
}

(
rulename = "Boot Scripts",
severity = $(SIG_HI)
)
{
/etc/init.d        -> $(SEC_BIN) ;
#/etc/rc.boot        -> $(SEC_BIN) ;
/etc/rcS.d        -> $(SEC_BIN) ;
/etc/rc0.d        -> $(SEC_BIN) ;
/etc/rc1.d        -> $(SEC_BIN) ;
/etc/rc2.d        -> $(SEC_BIN) ;
/etc/rc3.d        -> $(SEC_BIN) ;
/etc/rc4.d        -> $(SEC_BIN) ;
/etc/rc5.d        -> $(SEC_BIN) ;
/etc/rc6.d        -> $(SEC_BIN) ;
}

(
rulename = "Root file-system executables",
severity = $(SIG_HI)
)
{
/bin            -> $(SEC_BIN) ;
/sbin            -> $(SEC_BIN) ;
}

#
# Critical Libraries
#
(
rulename = "Root file-system libraries",
severity = $(SIG_HI)
)
{
/lib            -> $(SEC_BIN) ;
}

#
# Login and Privilege Raising Programs
#
(
rulename = "Security Control",
severity = $(SIG_MED)
)
{
/etc/passwd        -> $(SEC_CONFIG) ;
/etc/shadow        -> $(SEC_CONFIG) ;
}
{
#/var/lock        -> $(SEC_CONFIG) ;
#/var/run        -> $(SEC_CONFIG) ; # daemon PIDs
/var/log        -> $(SEC_CONFIG) ;
}

# These files change the behavior of the root account
(
rulename = "Root config files",
severity = 100
)
{
/root                -> $(SEC_CRIT) ; # Catch all additions to /root
#/root/mail            -> $(SEC_CONFIG) ;
#/root/Mail            -> $(SEC_CONFIG) ;
/root/.xsession-errors        -> $(SEC_CONFIG) ;
#/root/.xauth            -> $(SEC_CONFIG) ;
#/root/.tcshrc            -> $(SEC_CONFIG) ;
#/root/.sawfish            -> $(SEC_CONFIG) ;
#/root/.pinerc            -> $(SEC_CONFIG) ;
#/root/.mc            -> $(SEC_CONFIG) ;
#/root/.gnome_private        -> $(SEC_CONFIG) ;
#/root/.gnome-desktop        -> $(SEC_CONFIG) ;
#/root/.gnome            -> $(SEC_CONFIG) ;
#/root/.esd_auth            -> $(SEC_CONFIG) ;
#    /root/.elm            -> $(SEC_CONFIG) ;
#/root/.cshrc                -> $(SEC_CONFIG) ;
#/root/.bashrc            -> $(SEC_CONFIG) ;
#/root/.bash_profile        -> $(SEC_CONFIG) ;
#    /root/.bash_logout        -> $(SEC_CONFIG) ;
#/root/.bash_history        -> $(SEC_CONFIG) ;
#/root/.amandahosts        -> $(SEC_CONFIG) ;
#/root/.addressbook.lu        -> $(SEC_CONFIG) ;
#/root/.addressbook        -> $(SEC_CONFIG) ;
#/root/.Xresources        -> $(SEC_CONFIG) ;
#/root/.Xauthority        -> $(SEC_CONFIG) -i ; # Changes Inode number on login
/root/.ICEauthority            -> $(SEC_CONFIG) ;
}

#
# Critical devices
#
(
rulename = "Devices & Kernel information",
severity = $(SIG_HI),
)
{
#/dev        -> $(Device) ;
#/proc        -> $(Device) ;
}

```

#### tripwire 报告

**tripwire-check** 命令检查 twpol.txt 文件并基于此文件生成 tripwire 报告如下。如果 twpol.txt 中有任何错误，tripwire 不会生成报告。

![tripwire report](/data/attachment/album/201604/03/104138flllxa2az2vls2zv.png)

**文本形式报告**

```
root@VMdebian:/home/labadmin# tripwire --check

Parsing policy file: /etc/tripwire/tw.pol

*** Processing Unix File System ***

Performing integrity check...

Wrote report file: /var/lib/tripwire/report/VMdebian-20151024-122322.twr

Open Source tripwire(R) 2.4.2.2 Integrity Check Report

Report generated by:         root

Report created on:           Sat Oct 24 12:23:22 2015

Database last updated on:     Never

Report Summary:

=========================================================

Host name:                   VMdebian

Host IP address:             127.0.1.1

Host ID:                     None

Policy file used:             /etc/tripwire/tw.pol

Configuration file used:     /etc/tripwire/tw.cfg

Database file used:           /var/lib/tripwire/VMdebian.twd

Command line used:           tripwire --check

=========================================================

Rule Summary:

=========================================================

-------------------------------------------------------------------------------

Section: Unix File System

-------------------------------------------------------------------------------

Rule Name                       Severity Level   Added   Removed Modified

---------                       --------------   -----   ------- --------

Other binaries                 66               0       0       0

tripwire Binaries               100               0       0       0

Other libraries                 66               0       0       0

Root file-system executables   100               0       0       0

tripwire Data Files             100               0       0       0

System boot changes             100               0       0       0

(/var/log)

Root file-system libraries     100               0       0       0

(/lib)

Critical system boot files     100               0       0       0

Other configuration files       66               0       0       0

(/etc)

Boot Scripts                   100               0       0       0

Security Control               66               0       0       0

Root config files               100               0       0       0

Invariant Directories           66               0       0       0

Total objects scanned: 25943

Total violations found: 0

=========================Object Summary:================================

-------------------------------------------------------------------------------

# Section: Unix File System

-------------------------------------------------------------------------------

No violations.

===========================Error Report:=====================================

No Errors

-------------------------------------------------------------------------------

*** End of report ***

Open Source tripwire 2.4 Portions copyright 2000 tripwire, Inc. tripwire is a registered

trademark of tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY;

for details use --version. This is free software which may be redistributed

or modified only under certain conditions; see COPYING for details.

All rights reserved.

Integrity check complete.

```

### 总结

本篇中，我们学习安装配置开源入侵检测软件 tripwire。首先生成基础数据库并通过比较检测出任何改动（文件/文件夹）。然而，tripwire 并不是实时监测的 IDS。

---

via: <http://linoxide.com/security/configure-tripwire-ids-debian/>

作者：[nido](http://linoxide.com/author/naveeda/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


甲骨文的 Linux 部门主管 Coekaerts 跳槽到微软

Summary: Coekaerts 是一位著名的 Linux 领导者，在甲骨文公司内他被称之为“Linux 先生”。

Winux前兆？！还是lindows?

为了docker，微软也是蛮拼的

怎么可能，微软一向来都是损人利己的

在今年的 [Linux 合作峰会](http://events.linuxfoundation.org/events/collaboration-summit)上，记者发现前甲骨文的 Linux 与虚拟化工程部的高级副总裁 Wim Coekaerts 跳槽到了微软公司。

![wim-coekaerts.jpg](/data/attachment/album/201604/03/215752b91jutru19eburbr.jpg)

*Wim Coekaerts*

Coekaerts 是一位著名的 Linux 领导者，在甲骨文公司内他被称之为“[Linux 先生](http://www.zdnet.com/article/mr-linux-treads-a-narrow-path/)”。其在甲骨文的任期内，带领该公司推出了甲骨文的第一个 Linux 产品，并[将甲骨文的程序员队伍从 Windows 桌面迁移到了 Linux 桌面上](http://www.zdnet.com/article/oracle-to-finish-linux-makeover-this-year/)，以及通过[开发 Red Hat 企业版 Linux （RHEL）的衍生版 Oracle Linux](http://www.baselinemag.com/c/a/Business-Intelligence/What-to-Make-of-Oracle-vs-Red-Hat) 从而将甲骨文公司变成了 Linux 发行商之一。

微软确认了是他们将 Coekaerts 从甲骨文挖到了该公司，微软的企业云副总裁 Mike Neil 对记者说，“Wim Coekaerts 已经加入到了微软，担任企业云事业群的开源副总裁。我们会继续深化我们开源方面的承诺，Wim 将关注在我们对开源社区的参与、贡献和创新等方面工作的深化。”

Coekaerts 加盟微软代表着该公司对 Linux 前所未有的开放态度，除了[将 Linux 带到其 Azure 云](/article-5889-1.html)和[对开源项目的投资](http://www.zdnet.com/article/linux-and-open-source-have-won-get-over-it/)之外，微软还做了听起来像是愚人节笑话一样的举措：[将 Ubuntu 带到了 Windows 10](/article-7177-1.html)。

Coekaerts 在甲骨文任上最出名的事迹是将甲骨文公司变成了一家 Linux 领域的公司，所以你可以想象当他加盟微软会发生什么事情。MS-Linux？或者一个云方面的发行版，我觉得这并不是不可想象的事情。

在微软和 Linux 之间今后也许会发生很多有趣的事情。


LFCS 系列第四讲：对存储设备分区、格式化文件系统和配置交换分区

这个认证要钱的

建议：文章中的视频能否设置为不要自动进行缓冲下载

这不仅会耗费用户端的网络流量，同时也影响网页的加载速度。

（一打开这网页，那视频就缓冲了三分之一，我的网络突然来了一个小高峰）

我看看 HTML5 的视频可以设置不，我研究下。

看了一下 fstab 的 man page<br />
swap 在 /etc/fstab 和上面说的有点不一样

去年八月份，Linux 基金会发起了 LFCS（<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified Sysadmin </rt> <rp>  ） </rp></ruby>）认证，给所有系统管理员一个展现自己的机会。通过基础考试后，他们可以胜任在 Linux 上的整体运维工作：包括系统支持、一流水平的诊断和监控以及在必要之时向其他支持团队提交帮助请求等。

![Linux Foundation Certified Sysadmin – Part 4](/data/attachment/album/201604/04/052343gvwen43z17n1r7vw.png)

*LFCS 系列第四讲*

需要注意的是，Linux 基金会认证是非常严格的，通过与否完全要看个人能力。通过在线链接，你可以随时随地参加 Linux 基金会认证考试。所以，你再也不用到考试中心了，只需要不断提高自己的专业技能和经验就可去参加考试了。

请看一下视频，这里将讲解 Linux 基金会认证程序。

本讲是系列教程中的第四讲。在本讲中，我们将涵盖对存储设备进行分区、格式化文件系统和配置交换分区等内容，这些都是 LFCS 认证中的必备知识。

### 对存储设备分区

分区是一种将单独的硬盘分成一个或多个区的手段。一个分区只是硬盘的一部分，我们可以认为这部分是独立的磁盘，里边包含一个单一类型的文件系统。分区表则是将硬盘上这些分区与分区标识符联系起来的索引。

在 Linux 上，IBM PC 兼容系统里边用于管理传统 MBR（用到2009年）分区的工具是 fdisk。对于 GPT（2010年至今）分区，我们使用 gdisk。这两个工具都可以通过程序名后面加上设备名称（如 /dev/sdb）进行调用。

#### 使用 fdisk 管理 MBR 分区

我们先来介绍 fdisk：

```
# fdisk /dev/sdb

```

然后出现提示说进行下一步操作。若不确定如何操作，按下 “m” 键显示帮助。

![fdisk Help Menu](/data/attachment/album/201604/04/052349vh0iosthplod5jiq.png)

*fdisk 帮助菜单*

上图中，使用频率最高的选项已高亮显示。你可以随时按下 “p” 显示分区表。

![Check Partition Table in Linux](/data/attachment/album/201604/04/052351wdx8ogb2kdhg5zkx.png)

*显示分区表*

Id 列显示由 fdisk 分配给每个分区的分区类型（分区 id）。一个分区类型代表一种文件系统的标识符，简单来说，包括该分区上数据的访问方法。

请注意，每个分区类型的全面讲解将超出了本教程的范围——本系列教材主要专注于 LFCS 测试，以考试为主。

**下面列出一些 fdisk 常用选项：**

按下 “l”（小写 L）选项来显示所有可以由 fdisk 管理的分区类型。

按下 “d” 可以删除现有的分区。若硬盘上有多个分区，fdisk 将询问你要删除那个分区。

键入对应的数字，并按下 “w” 保存更改（将更改写入分区表）。

在下图的命令中，我们将删除 /dev/sdb2，然后显示（p）分区表来验证更改。

![fdisk Command Options](/data/attachment/album/201604/04/052353nphfjfjf6j1hvnzl.png)

*fdisk 命令选项*

按下 “n” 后接着按下 “p” 会创建新一个主分区。最后，你可以使用所有的默认值（这将占用所有的可用空间），或者像下面一样自定义分区大小。

![Create New Partition in Linux](/data/attachment/album/201604/04/052355f0a3jjppj9uxbaua.png)

*创建新分区*

若 fdisk 分配的分区 Id 并不是我们想用的，可以按下 “t” 来更改。

![Change Partition Name in Linux](/data/attachment/album/201604/04/052357pdqrotrrtrj10ov2.png)

*更改分区类型*

全部设置好分区后，按下 “w” 将更改保存到硬盘分区表上。

![Save Partition Changes](/data/attachment/album/201604/04/052358fjghg3it1oig4ih0.png)

*保存分区更改*

#### 使用 gdisk 管理 GPT 分区

下面的例子中，我们使用 /dev/sdb。

```
# gdisk /dev/sdb

```

必须注意的是，gdisk 可以用于创建 MBR 和 GPT 两种分区表。

![Create GPT Partitions in Linux](/data/attachment/album/201604/04/052359wttf81v84mzjj1u8.png)

*创建 GPT 分区*

使用 GPT 分区方案，我们可以在同一个硬盘上创建最多 128 个分区，单个分区最大以 PB 为单位，而 MBR 分区方案最大的只能 2TB。

注意，fdisk 与 gdisk 中大多数命令都是一样的。因此，我们不会详细介绍这些命令选项，而是给出一张使用过程中的截图。

![gdisk Command Options](/data/attachment/album/201604/04/052401jndri4wwzkfi9w1w.png)

*gdisk 命令选项*

### 格式化文件系统

一旦创建完需要的分区，我们就必须为分区创建文件系统。查询你所用系统支持的文件系统，请运行：

```
# ls /sbin/mk*

```

![Check Filesystems Type in Linux](/data/attachment/album/201604/04/052403mudh1vuw1cx0qdsw.png)

*检查文件系统类型*

选择文件系统取决于你的需求。你应该考虑到每个文件系统的优缺点以及其特点。选择文件系统需要看的两个重要属性：

* 日志支持，允许从系统崩溃事件中快速恢复数据。
* 安全增强式 Linux（SELinux）支持，按照项目 wiki 所说，“安全增强式 Linux 允许用户和管理员更好的控制访问控制权限”。

在接下来的例子中，我们通过 mkfs 在 /dev/sdb1 上创建 ext4 文件系统（支持日志和 SELinux），标卷为 Tecmint。mkfs 基本语法如下：

```
# mkfs -t [filesystem] -L [label] device
或者
# mkfs.[filesystem] -L [label] device

```

![Create ext4 Filesystems in Linux](/data/attachment/album/201604/04/052406lvtvyrztb7kymx9v.png)

*创建 ext4 文件系统*

### 创建并启用交换分区

要让 Linux 系统访问虚拟内存，则必须有一个交换分区，当内存（RAM）用完的时候，将硬盘中指定分区（即 Swap 分区）当做内存来使用。因此，当有足够的系统内存（RAM）来满足系统的所有的需求时，我们并不需要划分交换分区。尽管如此，是否使用交换分区取决于管理员。

下面列出选择交换分区大小的经验法则：

>
> 物理内存不高于 2GB 时，取两倍物理内存大小即可；物理内存在 2GB 以上时，取一倍物理内存大小即可；并且所取大小应该大于 32MB。
>
>
>

所以，如果：

M为物理内存大小，S 为交换分区大小，单位 GB，那么：

```
若 M < 2
    S = M *2
否则
    S = M + 2

```

记住，这只是基本的经验。对于作为系统管理员的你，才是决定是否使用交换分区及其大小的关键。

要配置交换分区，首先要划分一个常规分区，大小像我们之前演示的那样来选取。然后添加以下条目到 /etc/fstab 文件中（其中的 X 要更改为对应的 b 或 c）。

```
/dev/sdX1 swap swap sw 0 0

```

最后，格式化并启用交换分区：

```
# mkswap /dev/sdX1
# swapon -v /dev/sdX1

```

显示交换分区的快照：

```
# cat /proc/swaps

```

关闭交换分区：

```
# swapoff /dev/sdX1

```

下面的例子，我们会使用 fdisk 将 /dev/sdc1（512MB，系统和内存为 256MB）来设置交换分区，下面是我们之前详细提过的步骤。注意，这种情况下我们使用的是指定大小分区。

![Create-Swap-Partition in Linux](/data/attachment/album/201604/04/052408cc688zfk1zz6opp6.png)

*创建交换分区*

![Add Swap Partition in Linux](/data/attachment/album/201604/04/052410nqiabadsn3376kwz.png)

*启用交换分区*

### 结论

在你的系统管理员之路上，创建分区（包括交换分区）和格式化文件系统是非常重要的一步。我希望本文中所给出的技巧指导你到达你的管理员目标。随时在本讲评论区中发表你的技巧和想法，一起为社区做贡献。

参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/create-partitions-and-filesystems-in-linux/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[GHLandy](https://github.com/GHLandy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出


微软和 Linux ：真正的浪漫还是有毒的爱情？

Summary:
我们应该自问的是，这对自由软件社区有利还是有弊？
我们不应该慢慢忘记微软的“拥抱、扩展、消灭（Embrace, Extend and Exterminate）”的诅咒。现在，微软处在拥抱 Linux 的初期阶段。微软会通过定制扩展和专有“标准”来分裂社区吗？

微软是一个“商业机器”，各部门领导做的任何决策都得围绕着整个公司的运营、发展和营利来进行的。

MS跟Linux不是真爱，只是为了繁衍后代！！！

我比较关心的是开源界对桌面这一块怎么看！

有理有据，我简直不能再同意

毫無疑問微軟現今是迫於形勢才擁抱Linux的，決非因為＂愛＂上自由和開源軟件這種模式，但是只要自由軟件社區保持清醒，微軟的擁抱未必不會給社區和用戶帶來價值，如果軟件自由真是不可或缺的屬性，自由軟件就一定會以自己的方式發展下去

讨厌巨硬公司～虽然是商业公司，唯利是图是本性，但没权利破坏自由软件的规则，呵呵

linux在桌面端天生不足，根本无法对MS构成致命威胁，很多普通人这辈子都只用Windows。主要是企业服务器市场才是微软现在看重的，so你懂的。

跟linux绝逼不是真爱，不然吧win10开源吧！涉及Linux只能说他们发展到了瓶颈了～

一切都是为了利益

当然不是真爱了。人家只是扩充Windows的生态圈。谁叫Linux不收专利呢。

MS绝对不会遵循GPL，这就是我对这个事件的结论。

蚕食，吞并，扩充自己，壮大自己。

不要以为微软会轻易的改变自己的商业信仰，拥抱开源，只不过是希望借助开源的资源给自己加油。

时不时的我们会读到一个能让你喝咖啡呛到或者把热拿铁喷到你显示器上的新闻故事。微软最近宣布的对 Linux 的钟爱就是这样一个鲜明的例子。

从常识来讲，微软和自由开源软件（FOSS）运动就是恒久的敌人。在很多人眼里，微软体现了过分的贪婪，而这正为自由开源软件运动（FOSS）所拒绝。另外，之前微软就已经给自由开源软件社区贴上了"一伙强盗"的标签。

我们能够理解为什么微软一直以来都害怕免费的操作系统。免费操作系统结合挑战微软核心产品线的开源应用时，就威胁到了微软在台式机和笔记本电脑市场的控制地位。

![](/data/attachment/album/201604/04/060039fxbvslhzijl9hrl6.jpg)

尽管微软有对在台式机主导地位的担忧，在网络服务器市场 Linux 却有着最高的影响力。今天，大多数的服务器都是 Linux 系统。包括世界上最繁忙的站点服务器。对微软来说，看到这么多无法装到兜里的许可证的营收一定是非常痛苦的。

掌上设备是微软输给自由软件的另一个领域。曾几何时，微软的 Windows CE 和 Pocket PC 操作系统走在移动计算的前沿。Windows PDA 设备是最闪亮的和豪华的产品。但是这一切在苹果公司发布了iphone之后都结束了。从那时起，安卓就开始进入公众视野，Windows 的移动产品开始被忽略被遗忘。而安卓平台是建立在自由开源的组件的基础上的。

由于安卓平台的开放性，安卓的市场份额在迅速扩大。不像 IOS，任何一个手机制造商都可以发布安卓手机。也不像Windows 手机，安卓没有许可费用。这对消费者来说是件好事。这也导致了许多强大却又价格低廉的手机制造商在世界各地涌现。这非常明确的证明了自由开源软件（FOSS）的价值。

在服务器和移动计算的角逐中失利对微软来说是非常惨重的损失。考虑一下服务器和移动计算这两个加起来所占有的市场大小，台式机市场似乎是死水一潭。没有人喜欢失败，尤其是涉及到金钱。并且，微软确实有许多东西正在慢慢失去。你可能期望着微软自尝苦果。在过去，确实如此。

微软使用了各种可以支配的手段来对 Linux 和自由开源软件（FOSS）进行反击，从宣传到专利威胁。尽管这种攻击确实减慢了适配 Linux 的步伐，但却从来没有让 Linux 的脚步停下。

所以，当微软在开源大会和重大事件上拿出印有“[Microsoft Loves Linux](/article-6076-1.html)”的T恤和徽章时，请原谅我们表现出来的震惊。这是真的吗？微软真的爱 Linux ？

当然，公关的口号和免费的T恤并不代表真理。行动胜于雄辩。当你思考一下微软的行动时，微软的立场就变得有点模棱两可了。

一方面，微软招募了几百名 Linux 开发者和系统管理员。将 [.NET 核心框架作为一个开源的项目](/article-4821-1.html)进行了发布，并提供了跨平台的支持（这样 .NET 就可以跑在 OS X 和 Linux 上了）。并且，微软与 Linux 公司合作[把最流行的发行版本放到了 Azure 平台](/article-5889-1.html)上。事实上，微软已经走的如此之远以至于要[为 Azure 数据中心开发自己的 Linux 发行版](/article-6269-1.html)了。

另一方面，微软继续直接通过法律或者傀儡公司来对开源项目进行攻击。很明显，微软在与自由软件的所有权较量上并没有发自内心的进行大的道德转变。那为什么要公开申明对 Linux 的钟爱之情呢？

一个显而易见的事实：微软是一个经营性实体。对股东来说是一个投资工具，对雇员来说是收入来源。微软所做的只有一个终极目标：盈利。微软并没有表现出来爱或者恨（尽管这是一个最常见的指控）。

所以问题不应该是"微软真的爱 Linux 吗？"相反，我们应该问，微软是怎么从这一切中获利的。

让我们以 [.NET 核心框架的开源发行](/article-4821-1.html)为例。这一举动使得 .NET 的运行时环境移植到任何平台都很轻松。这使得微软的 .NET 框架所涉及到的范围远远大于 Windows 平台。

开放 .NET 的核心包，最终使得 .NET 开发者开发跨平台的 app 成为可能，比如 OS X、Linux 甚至安卓——都基于同一个核心代码库。

从开发者角度来讲，这使得 .NET 框架比之前更有吸引力了。能够从单一的代码库触及到多个平台，使得使用 .NET 框架开发的任何 app 戏剧性的扩大了潜在的目标市场。

另外，一个强大的开源社区能够提供给开发者一些代码来在他们自己的项目中进行复用。所以，开源项目的可利用性也将会成就 .NET 框架。

更进一步讲，开放 .NET 的核心代码能够减少跨越不同平台所产生的碎片，意味着对消费者来说有对 app 更广的选择。无论是开源软件还是专用的 app，都有更多的选择。

从微软的角度来讲，会得到一队开发者大军。微软可以通过销售培训、证书、技术支持、开发者工具（包括 Visual Studio）和应用扩展来获利。

我们应该自问的是，这对自由软件社区有利还是有弊？

.NET 框架的大范围适用意味着许多参与竞争的开源项目的消亡，迫使我们会跟着微软的节奏走下去。

先抛开 .NET 不谈，微软正在花费大量的精力在 Azure 云计算平台对 Linux 的支持上。要记得，Azure 最初是 Windows 的 Azure。Windows 服务器是唯一能够支持 Azure 的操作系统。今天，[Azure 也提供了对多个 Linux 发行版的支持](/article-5889-1.html)。

关于此，有一个原因：付费给需要或者想要 Linux 服务的顾客。如果微软不提供 Linux 虚拟机，那些顾客就会跟别人合作了。

看上去好像是微软意识到“Linux 就在这里”的这样一个现实。微软不能真正的消灭它，所以必须接收它。

这又把我们带回到那个问题：关于微软和 Linux 为什么有这么多的流言？我们在谈论这个问题，因为微软希望我们思考这个问题。毕竟，所有这些谈资都会追溯到微软，不管是在新闻稿、博客还是会议上的公开声明。微软在努力吸引大家对其在 Linux 专业知识方面的注意力。

首席架构师 Kamala Subramaniam 的博文声明 Azure Cloud Switch 背后的其他企图会是什么？[ACS 是一个定制的 Linux 发行版](/article-6269-1.html)。微软用它来对 Azure 数据中心的交换机硬件进行自动配置。

ACS 不是公开的。它是用于 Azure 内部使用的。别人也不太可能找到这个发行版其他的用途。事实上，Subramaniam 在她的博文中也表述了同样的观点。

所以，微软不会通过卖 ACS 来获利，也不会通过赠送它而增加用户基数。相反，微软在 Linux 和 Azure 上花费精力，以加强其在 Linux 云计算平台方面的地位。

微软最近迷上 Linux 对社区来说是好消息吗？

我们不应该慢慢忘记微软的“<ruby> 拥抱、扩展、消灭 <rp>  （ </rp> <rt>  Embrace, Extend and Exterminate </rt> <rp>  ） </rp></ruby>”的诅咒。现在，微软处在拥抱 Linux 的初期阶段。微软会通过定制扩展和专有“标准”来分裂社区吗？

发表评论吧，让我们知道你是怎么想的。

---

via: <http://www.linuxjournal.com/content/microsoft-and-linux-true-romance-or-toxic-love-0>

作者：[James Darvell](http://www.linuxjournal.com/users/james-darvell) 译者：[sonofelice](https://github.com/sonofelice) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


树莓派专用版 Ubuntu MATE 16.04 增加了板载 Wi-Fi 和蓝牙的支持

Summary:
Ubuntu MATE 项目负责人 Martin Wimpress 昨天宣布，Ubuntu MATE 16.04 的第二个 beta 测试版本已经移植到了树莓派3和树莓派2上了。
没错，用于树莓派的 Ubuntu MATE 已经更新到了即将发布的 Ubuntu MATE 16.04 LTS（Xenial Xerus）分支。本次更新带来了新的欢迎屏，为树莓派特有的功能进行了优化，此外更新了很多部件。

请问OpenGL 硬件加速功能『Experimental hardware accelerated OpenGL can be enabled, if you know how ;-)』怎样启用？ ：）

Ubuntu MATE 项目负责人 Martin Wimpress 昨天宣布，Ubuntu MATE 16.04 的第二个 beta 测试版本已经移植到了树莓派3和树莓派2上了。

![](/data/attachment/album/201604/06/060856g88hnmvfrw2zzbw4.jpg)

没错，用于树莓派的 Ubuntu MATE 已经更新到了即将发布的 Ubuntu MATE 16.04 LTS（Xenial Xerus）分支。本次更新带来了新的欢迎屏，为树莓派特有的功能进行了优化，此外更新了很多部件。

其中，Ubuntu MATE 16.04 树莓派版通过 BlueZ 5.37 组件支持了板载 Wi-Fi 和蓝牙。系统采用 Linux 内核 4.1.19 LTS，包含了 raspberrypi-firmware 1.20160315-1、wiringpi 2.32、nuscratch 20160115、sonic-pi 2.9.0 和 omx-player 0.3.7~git20160206~cb91001 等组件。

另外，在该版本中，用户也能够启用实验性的 OpenGL 硬件加速功能。

如果你希望提前体验，你可从其官方网站[下载 Ubuntu MATE 16.04 树莓派版 beta 2](https://ubuntu-mate.org/raspberry-pi/)，当然，你也可以在官网找到前一个稳定版本 15.10.3。


如何在 Fedora 工作站上截图

![](/data/attachment/album/201604/06/145207bdsiy2s82c23mrii.png)

Fedora 工作站附带了一个虽然简单，然而做截图却足够的工具。允许用户快速地对桌面、特定的窗口、或屏幕的任意部分进行截图。屏幕截图工具 (gnome-screenshot) 这个应用程序专门设计用于在桌面系统中快速捕获并保存截图。

### 启动 Screenshot

在 Fedora 工作站中, 通过在 activities overview 中搜索 screenshot 来启动 Screenshot 。也可以在 applications 视图中找到（在 Utilities 文件夹）。

![](/data/attachment/album/201604/06/145417javklpt4uoke099k.jpg)

### Screenshot 模式

Screenshot 有三种主要截图模式:

* 截取整个屏幕
* 截取当前窗口
* 截取选定区域

![](/data/attachment/album/201604/06/145443hmmrwvmhlafyz1vl.png)

注意，如果你有多个显示器，抓取整个屏幕是将整个屏幕截图，不仅仅是当前的显示器。

这些操作模式也有一些额外的选项。

* 延迟截取：允许您指定要等多少秒才进行截图。它用于截取稍后才显示的内容。 延迟抓取只能用于“截取整个屏幕”和“截取当前窗口”两种模式。
* 截取当前窗口模式的额外选项最多。它允许你在截图后自动加上效果，比如阴影。当截取窗口时，您还可以指定是否让窗口边框和鼠标显示在截屏里面。

### 进行截图

在设置了模式和选项后，按下截屏程序窗口右上角的“截屏”按钮。当你按下截图按钮后，该窗口就会隐藏, 所以它不会显示在你的屏幕截图中。

如果使用“截取选定区域”模式，按下“截屏”按钮后，你的鼠标指针将会变成十字光标型指针。只需单击并拖动选择截图区域即可。

![](/data/attachment/album/201604/06/145527t2d55nvml0d5s5z2.png)

### 保存截图

截取后，截屏程序会显示一个保存对话框。它会生成一个基于时间的文件名。按你的需要简单地修改文件名，并单击保存。截图还提供一个旁边的按钮，可以将截图复制到剪贴板。如果你想快速粘贴到另一个应用程序如 GIMP 或 Inkscape 进一步编辑的话，这很方便。

![](/data/attachment/album/201604/06/145550lnzianb42212wi7q.png)

### 键盘快捷键

如果你只想进行截取而不想设置，Fedora 工作站还提供了几个不同方式的截取快捷键：

* `Printscreen` – 截取整个桌面的屏幕截图并保存你的照片文件夹
* `Alt + Printscreen` – 截取目前获得焦点的窗口截图并保存你的照片文件夹
* `Shift + Printscreen` – 选定区域截取并将其保存到你的照片文件夹
* `Ctrl + Printscreen` – 截取整个桌面的屏幕截图并将其复制到剪贴板
* `Ctrl + Alt + Printscreen` – 截取目前获得焦点的窗口截图并将其复制到剪贴板
* `Ctrl + Shift + Printscreen` – 选定区域截取并将其复制到剪贴板

如果你的键盘没有一个 Printscreen 键，您可以在Fedora 工作站应用程序设置的键盘偏好里面更改这些快捷键。


在 Apache Hive 中轻松生存的12个技巧

![Learn to live with Apache Hive in 12 easy steps](/data/attachment/album/201604/07/121431g4blm1oczk811umc.jpg)

Hive 可以让你在 Hadoop 上使用 SQL，但是在分布式系统上优化 SQL 则有所不同。这里是让你可以轻松驾驭 Hive 的12个技巧。

[Hive](http://www.infoworld.com/article/2608271/hadoop/hadoop-review-apache-hive-brings-real-time-queries-to-hadoop.html) 并不是关系型数据库（RDBMS），但是它大多数时候都表现得像是一个关系型数据库一样，它有表、可以运行 SQL、也支持 JDBC 和 ODBC。

这种表现既有好的一面，也有不好的一面：Hive 并不像关系型数据库那样执行 SQL 查询。我在 Hive 上花费了大量时间，光是我自己在工作中就为了优化它花费了超过80个小时。不说你也知道，我就像呆在蜂巢（Hive）旁边一样脑袋嗡嗡作响。所以，为了让你免受这种痛苦，我决定将它们写出来，以便让你在你的下一个 Hive 项目中逃离这种折磨。

### 1、不要使用 MapReduce

不管你是不是觉得 Tez、Spark 或 Impala 能行，但是不要指望 MapReduce。它本身就很慢，比 Hive 还慢。如果你用的是 Hortonwork 的版本，你可以在脚本前面写上 `set hive.execution.engine=tez` ；用 Cloudera 的话，使用 Impala。如果 Impala 不适用的话，我[希望到时候](http://www.cloudera.com/documentation/enterprise/latest/topics/admin_hos_config.html)可以使用 `hive.execution.engine=spark` 。

### 2、不要在 SQL 中做字符串匹配

绝不要，特别是在 Hive 中！如果你坚持要在 WHERE 语句中使用 LIKE 匹配，就会产生一个跨产品的警告。本来你的查询可能只用几秒钟，但是使用字符串匹配的话就会变成几分钟。最好的办法是使用那些可以在 Hadoop 中进行搜索的工具，可以试试 [Elasticsearch 的 Hive 集成版本](https://www.elastic.co/guide/en/elasticsearch/hadoop/current/hive.html) 或 [Lucidwork 的 Solr](https://github.com/lucidworks/hive-solr/blob/master/README.adoc)，以及 [Cloudera Search](https://cloudera.com/products/apache-hadoop/apache-solr.html)。关系型数据库这方面表现并不好，但是 Hive 则更糟糕。

### 3、不要用表连接子查询

你最好创建一个临时表，然后对这个临时表进行连接，而不是让 Hive 自己智能处理子查询。即不要这样做：

```
select a.* from something a inner join
  (select ... from somethingelse union b select ... from anotherthing c) d
  on a.key1 = d.key1 and a.key2 = b.key2 where a.condition=1
```

而是应该这样：

```
create var_temp as select ... from somethingelse b
  union select ... from anotherthing c
and then
select a.* from something a inner join from var_temp b
  where a.key1=b.key1 and a.key2=b.key2 where a.condition=1
```

一般来说，这会比 Hive 自己处理子查询要快许多。

### 4、使用 Parquet 或 ORC，但是不要转换使用

也就是说，使用 Parquet 或 ORC 而不要用 TEXTFILE。然而，如果你要把文本数据中导入到更具结构性的数据中，应该做一些转换再导入到目标表中。你不应该用 `LOAD DATA` 将文本文件加载到 ORC 中，而是应该将其加载到一个文本中。

如果你要创建另外一个表，并最终大多数分析都是对它进行的，那么你就该对该表进行 ORC 化，因为转换到 ORC 或 Parquet 要花费很多时间，并不值得将其放到你的 ETL 处理中。如果你有一个简单的普通文本要导入，也没做过任何优化，你应该将其加载到一个临时表并通过 `select create` 放到 ORC 或 Parquet 中。不过，这有点慢。

### 5、开关矢量化试试

在你的脚本前面加上 `set hive.vectorized.execution.enabled = true` 和`set hive.vectorized.execution.reduce.enabled = true` ，然后试着打开或关闭它们看看。因为最近版本的 Hive 的矢量化有点问题。

### 6、不要在表连接中使用 structs

我必须承认我大脑里面的 SQL 格式还是 SQL-92 时代的，所以我无论如何都不会想到去用 [structs](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types)。但是如果你做一些超级复杂的操作，比如在联合主键上使用 `ON` 语句，那么 structs 就很方便。不幸的是，Hive 对它们很不适应，特别是在 `ON` 语句上。当然，大多数情况下，在较小的数据集和 yields 下是没错误的。在 Tez 里面，你会得到一个有趣的矢量错误。这个限制并未见于我所知的任何文档，也许这是一个探索你的执行引擎内部的好办法。

### 7、检查你的容器大小

你也许需要为 [Impala](http://www.cloudera.com/documentation/enterprise/5-3-x/topics/cdh_ig_yarn_tuning.html) 或 [Tez](https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_performance_tuning/content/hive_perf_best_pract_config_tez.html) 增加你的容器大小。如果有你的节点大小比较大，“推荐的”容器大小可能就不适用于你的系统。你也许需要确保你的 YARN 队列和常规的 YARN 内存大小合适。你也许应该[注意默认的队列并不适合](https://community.cloudera.com/t5/Batch-SQL-Apache-Hive/How-can-I-submit-Hive-queries-via-Beeline-to-specific-resource/td-p/19324)所有的常规使用。

### 8、启用统计

Hive 在表连接时[会做一些蠢事](https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_performance_tuning/content/hive_perf_best_pract_use_col_stats_cost_base_opt.html)，除非[启用了统计](http://www.cloudera.com/documentation/enterprise/5-3-x/topics/impala_perf_joins.html?scroll=perf_joins)。你也可以[在 Impala 中使用查询提示](http://www.cloudera.com/documentation/enterprise/5-3-x/topics/impala_hints.html?scroll=hints)。

### 9、考虑 [MapJoin 优化](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+JoinOptimization)

如果你分析你的查询，你可能发现最新的 Hive 已经可以足够智能地进行自动优化了。但是你也许需要再调整一下。

### 10、如果可以，[将大表放到最后](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins)

如标题。

### 11、分区总会帮到你，不管多少

如果你有一个出现在许多地方的东西，比如语句中的日期（但不是日期范围）或重复的地点，你也许应该做分区。分区的基本意思是“拆分到它自己的目录里面”，而不是到一个大的文件中去查找。当你在你的 join/where 语句中仅检索 `location=’NC’`这样一个小数据集时，Hive 就可以在一个文件中查找。此外，和列值不同，你可以在你的 `LOAD DATA` 语句中加上分区。另外，要记住，[HDFS 并不喜欢小文件](http://blog.cloudera.com/blog/2009/02/the-small-files-problem/)。

### 12、使用哈希进行列比较

如果你要在每个查询中比较同样的10个字段，可以考虑使用 `hash()` 来比较它们的校验值。在一个输出表中展示它们也许很有用。注意，在 Hive 0.12 中，哈希功能比较差，0.13中的哈希更好一些。

以上就是我的12点经验，我希望这些能够帮到你，让你从 Hive 的嗡嗡声中逃离出来。


Linux AIO：一张 DVD 可体验多个 Ubuntu 分支

Summary: Linux AIO 由一群熟练的 GNU/Linux 开发者组成，他们将各种流行的 GNU/Linux 操作系统的几个主要分支打包到一个单一的 Live ISO 镜像中。

这个其实挺好的@！～很方便

方便用户挑选自己喜欢的，挺好

Linux AIO 团队的 Željko Popivoda 在4月6日宣布，Linux AIO Ubuntu 14.04.4 LTS Live DVD 发布了。

![](/data/attachment/album/201604/08/055955m8l46esz1vlvo8og.jpg)

如果你还不知道 [Linux AIO](http://linuxaio.net/) 是什么，这里是一个简单的介绍：

>
> [Linux AIO](http://linuxaio.net/) 由一群熟练的 GNU/Linux 开发者组成，他们将各种流行的 GNU/Linux 操作系统的几个主要分支打包到一个单一的 Live ISO 镜像中，支持 Ubuntu、Debian Live、Fedora、Linux Mint、Linux Mint Debian Edition (LMDE)、 Zorin OS、 ROSA、 PCLinuxOS、 Korora、 Porteus 等等发行版。
>
>
>

最近 Ubuntu LTS 14.04 已经更新其第四个维护版本，这次发布的 Linux AIO Ubuntu 14.04.4 LTS 也相应更新到了最新的版本。

在 Linux AIO Ubuntu 14.04.4 Live DVD 中，包含了 Ubuntu 14.04.4 LTS、Kubuntu 14.04.4 LTS、Xubuntu 14.04.4 LTS、Lubuntu 14.04.4 LTS 和 Ubuntu GNOME 14.04.4 LTS 等几个分支。

“你可以看到这里并没有 Ubuntu MATE ，而在 Linux AIO Ubuntu 14.04.2 中却有”，Željko Popivoda 说，“那是因为 Ubuntu MATE 并没有发布对应的版本，也许将来的 AIO 版本会包含它。”

Linux AIO Ubuntu 14.04.4 LTS 分为三个 DVD 镜像，支持两种不同架构：

* 32-bit (x86)：Ubuntu 14.04.4 LTS desktop i386, Kubuntu 14.04.4 LTS desktop i386, Ubuntu GNOME 14.04.4 LTS desktop i386, Xubuntu 14.04.4 LTS desktop i386, Lubuntu 14.04.4 LTS desktop i386
* 64-bit (x86\_64)：Ubuntu 14.04.4 LTS desktop amd64, Kubuntu 14.04.4 LTS desktop amd64, Ubuntu GNOME 14.04.4 LTS desktop amd64, Xubuntu 14.04.4 LTS desktop amd64, Lubuntu 14.04.4 LTS desktop amd64
* 混合版：Ubuntu 14.04.4 LTS desktop amd64, Kubuntu 14.04.4 LTS desktop amd64, Ubuntu GNOME 14.04.4 LTS desktop amd64, Xubuntu 14.04.4 LTS desktop i386, Lubuntu 14.04.4 LTS desktop i386

你可以到其[官网下载](http://linuxaio.net/downloads/linux-aio-ubuntu/lts-releases/) ISO 后写入到 USB 存储器或 DVD 光盘中。不过要注意，还不支持 UEFI。