Merge pull request #13 from LCTT/master

Update from LCTT
This commit is contained in:
chen ni 2019-07-02 09:04:20 +08:00 committed by GitHub
commit d8f0ea8f15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
105 changed files with 2554 additions and 1261 deletions

View File

@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11042-1.html)
[#]: subject: (Use Firefox Send with ffsend in Fedora)
[#]: via: (https://fedoramagazine.org/use-firefox-send-with-ffsend-in-fedora/)
[#]: author: (Sylvia Sánchez https://fedoramagazine.org/author/lailah/)
@ -12,19 +12,19 @@
![][1]
_ffsend_ 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 _ffsend_ 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。
`ffsend` 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 `ffsend` 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。
### 什么是 Firefox Send 和 ffsend
Firefox Send 是 Mozilla 的一个文件共享工具,它能将加密文件发送给其他用户。你可以在自己的服务器上安装 Send也可以使用 Mozilla 托管的链接 [send.firefox.com][2]。它最大支持 1GB 的文件,链接会在可配置的下载次数(默认值为 1或 24 小时后过期,然后会删除发送服务器上的所有文件。此工具仍_处于实验阶段_,因此不应在生产中使用或共享重要或敏感数据。
Firefox Send 是 Mozilla 的一个文件共享工具,它能将加密文件发送给其他用户。你可以在自己的服务器上安装 Send也可以使用 Mozilla 托管的链接 [send.firefox.com][2]。它最大支持 1GB 的文件,链接会在可配置的下载次数(默认值为 1或 24 小时后过期,然后会删除发送服务器上的所有文件。此工具仍*处于实验阶段*,因此不应在生产中使用或共享重要或敏感数据。
虽然 Firefox Send 本身就是工具,并且可以在 Web 中使用,但 _ffsend_ 是一个可以与脚本和参数一起使用的命令行程序。它有多种配置选项,并且可以在后台工作而无需任何人为干预。
虽然 Firefox Send 本身就是工具,并且可以在 Web 中使用,但 `ffsend` 是一个可以与脚本和参数一起使用的命令行程序。它有多种配置选项,并且可以在后台工作而无需任何人为干预。
### 它如何工作?
ffsend 可以上传和下载文件。远程主机可以使用 Firefox 工具或其他 Web 浏览器来下载文件。 Firefox Send 和 _ffsend_ 都不需要使用 Firefox。
`ffsend` 可以上传和下载文件。远程主机可以使用 Firefox 工具或其他 Web 浏览器来下载文件。 Firefox Send 和 `ffsend` 都不需要使用 Firefox。
值得一提 _ffsend_ 使用了客户端加密。这意味着文件在上传_前_被加密。链接中就有密钥,因此在共享时要小心,因为任何有链接的人都可以下载该文件。作为额外的保护,你可以使用以下参数使用密码保护文件:
值得一提 `ffsend` 使用了客户端加密。这意味着文件在上传*前*被加密。链接中就有密钥,因此在共享时要小心,因为任何有链接的人都可以下载该文件。作为额外的保护,你可以使用以下参数使用密码保护文件:
```
ffsend password URL -p PASSWORD
@ -34,24 +34,22 @@ ffsend password URL -p PASSWORD
还有一些值得一提的其他功能:
* 链接到期前可配置的下载限制,范围从 1 到 20 次之间
  * 内置解压和归档功能
  * 跟踪共享文件的历史记录
  * 检查或删除共享文件
  * 文件夹也可以按原样共享,也可以作为压缩文件共享
  * 生成 QR 码,便于在手机上下载
* 链接到期前可配置的下载限制,范围从 1 到 20 次之间
* 内置解压和归档功能
* 跟踪共享文件的历史记录
* 检查或删除共享文件
* 文件夹也可以按原样共享,也可以作为压缩文件共享
* 生成 QR 码,便于在手机上下载
### 如何在 Fedora 中安装
虽然 Fedora Send 可以在 Firefox 中使用而无需安装其他,但你需要安装 CLI 工具才能使用 _ffsend_。此工具在官方仓库中,因此你只需使用 _dnf_ 命令,并使用 _[sudo][3]_
虽然 Fedora Send 可以在 Firefox 中使用而无需安装其他,但你需要安装 CLI 工具才能使用 `ffsend`。此工具在官方仓库中,因此你只需使用 `dnf` 命令,并使用 [sudo][3]
```
$ sudo dnf install ffsend
```
之后,你可以在终端使用 _ffsend_
之后,你可以在终端使用 `ffsend`
### 上传文件
@ -66,7 +64,7 @@ Share link: https://send.firefox.com/download/05826227d70b9a4b/#RM_HSBq6kuyeBem
现在可以使用 “Share link” URL 轻松共享该文件。
## 下载文件
### 下载文件
下载文件和上传一样简单。
@ -75,7 +73,7 @@ $ ffsend download https://send.firefox.com/download/05826227d70b9a4b/#RM_HSBq6ku
Download complete
```
在下载之前,检查文件是否存在并获取有关它的信息会有用。 _ffsend_ 为此提供了 2 个方便的命令。
在下载之前,检查文件是否存在并获取有关它的信息会有用。`ffsend` 为此提供了 2 个方便的命令。
```
$ ffsend exists https://send.firefox.com/download/88a6324e2a99ebb6/#YRJDh8ZDQsnZL2KZIA-PaQ
@ -87,9 +85,9 @@ Downloads: 0 of 1
Expiry: 23h59m (86388s
```
## 上传历史
### 上传历史
_ffsend_ 还提供了一种查看使用工具上传的历史记录的方法。例如,如果你用脚本上传了大量文件并且想要跟踪每个文件的下载状态,那么这非常有用。
`ffsend` 还提供了一种查看使用工具上传的历史记录的方法。例如,如果你用脚本上传了大量文件并且想要跟踪每个文件的下载状态,那么这非常有用。
```
$ ffsend history
@ -98,7 +96,7 @@ LINK EXPIRY
2 https://send.firefox.com/download/KZIA-PaQ 23h54m
```
## 删除文件
### 删除文件
另一个有用的功能是删除文件。
@ -106,7 +104,7 @@ LINK EXPIRY
ffsend delete https://send.firefox.com/download/2d9faa7f34bb1478/#phITKvaYBjCGSRI8TJ9QNw
```
Firefox Send 是一项很棒的服务,_ffsend_ 使得它在终端使用起来非常方便。[Gitlab 仓库[4]中有关于 _ffsend_的更多示例和文档。
Firefox Send 是一项很棒的服务,`ffsend` 使得它在终端使用起来非常方便。[Gitlab 仓库][4]中有关于 `ffsend` 的更多示例和文档。
--------------------------------------------------------------------------------
@ -115,7 +113,7 @@ via: https://fedoramagazine.org/use-firefox-send-with-ffsend-in-fedora/
作者:[Sylvia Sánchez][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,140 @@
[#]: collector: "lujun9972"
[#]: translator: "qfzy1233"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-11028-1.html"
[#]: subject: "Top 5 Linux Distributions for Productivity"
[#]: via: "https://www.linux.com/blog/learn/2019/1/top-5-linux-distributions-productivity"
[#]: author: "Jack Wallen https://www.linux.com/users/jlwallen"
5 个最具生产力的 Linux 发行版
======
> 如果你正在寻找一个适合开发工作的完美环境,我敢说你找不到比 Pop!_OS 更好的选择。
![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_main.jpg?itok=2IKyg_7_)
必须承认的是这样的一个热门话题其实很难被总结的话题。为什么呢首先Linux 在就是一种有生产力的操作系统。由于它极强的可靠性和稳定的平台,使得完成工作变得很容易。其次为了衡量工作的效率,你需要考虑到哪项工作需要得到生产力方面的助推。是日常办公?开发类工作?学校事务?数据挖掘?或者是人力资源?你可以看到这个问题有多复杂。
然而,这并不意味着某些发行版无法更好地配置将底层操作系统呈现为一个有效的平台来完成工作。恰恰相反,许多发行版在偏离生产力这条道路上越走越远,所以你不会意识到你自己处在工作的窘境中,而是继续挖掘自己的潜力在工期结束之前拼命赶上进度。这些 Linux 发行版可以帮助你化繁为简,因此或许可以减少你工作流程中的痛点。
让我们来看一下这些发行版并为你找出适合你的最佳选择。为了更具条理,我按照生产力诉求把它们分成了几类。这项任务本身也是一种挑战,因为每个人在生产力提升上的需要是千差万别的。然而,我所关注的是下列的几项:
* 常规:适于那些只需要有效地完成多项工作的人。
* 设计:适于那些从事设计创造和图像处理的人。
* 开发:适于那些使用 Linux 桌面发行版来进行编程工作的人。
* 运维:适于那些需要一个发行版来促进其执行系统管理任务的人。
* 教育:适于那些需要桌面发行版可以助力他们在教育领域更高效的人。
诚然,有很多很多类别的发行版可供挑选,其中的很多可能用起来十分得心应手,但这五种或许是你最为需要的。
### 常规
对于常规的生产力诉求来说,你不会找到比 [Ubuntu][1] 更为高效的了。在这个类别中首推 Ubuntu 最主要的原因是因为它实现了桌面操作系统、软件、服务的无缝集成。你可能会问为什么我不选择同类别的 Linux Mint 呢?因为 Ubuntu 现在默认的的桌面环境为 GNOME 桌面,而它拥有 GNOME 许多扩展程序的优势的加成(图 1
![GNOME Clipboard][3]
*图 1运行中的 GNOME 桌面的剪切板管理工具。*
这些扩展程序在提升生产力方面做了很多努力(所以 Ubuntu 比 Linux Mint 获得了更多的认可)。但是 Ubuntu 不仅仅是装了一个普通的 GNOME 桌面。事实上,他们致力于将它改进的更为轻量化、更为高效、以及用户友好度更高、开箱即用。总而言之,由于 Ubuntu 正确的融合了多种特性,开箱即用,完善的软件支持(仅对工作方面而言),这些特性使它几乎成为了生产力领域最为完美的一个平台。
不管你是要写一篇文档制作一张电子表格写一个新的软件开发公司的网站设计商用的图形管理一个服务器或是网络抑或是在你的公司内从事人力资源管理工作Ubuntu 都可以满足你的需求。Ubuntu 桌面发行版也并不要求你耗费很大的精力才能开始开始开展工作……它直接就能使用(并且工作的十分优秀)。最后,得益于它是基于 Debian 的,使得在 Ubuntu 上安装第三方的软件十分简便。
很难不支持这一发行版独占生产力发行版列表的鳌头,尽管 Ubuntu 几乎已经成为几乎所有“某某类顶级发行版”列表的榜首。
### 设计
如果你正在寻求提升你的平面设计效率,你不能错过 [Fedora 设计套件][5]。这一 Fedora 衍生版是由负责 Fedora 相关的艺术作品的团队亲自操刀制作的。虽然其默认选择的应用程序并不是一个庞大的工具集合,但它所包含的工具都是创建和处理图像专用的。
有了 GIMP、Inkscape、Darktable、Krita、Entangle、Blender、Pitivi、Scribus 等应用程序(图 2你可以找到完成图像编辑工作所需要的一切。但是 Fedora 设计套件并不仅限于此。这个桌面平台还包括一堆教程涵盖了许多已安装的应用程序。对于任何想要尽可能提高效率的人来说这将是一些非常有用的信息。不过我要说的是GNOME 收藏夹中的教程并没有超乎[此页中][6]链接的内容。
![Fedora Design Suite Favorites][8]
*图 2Fedora 设计套件收藏夹菜单包含了许多工具,可以让你用于图形设计。*
那些使用数码相机的用户肯定会喜欢 Entangle 应用程序,它可以让你在电脑上控制单反相机。
### 开发
几乎所有的 Linux 发行版都是程序员的绝佳平台。然而,有一种特定的发行版脱颖而出,并超越了其他发行版,它将是你见过的用于编程类最有效率的工具之一。这个操作系统来自 [System76][9]LCTT 译注:一家美国的计算机制造商),名为 [Pop!\_OS][10]。Pop!\_OS 是专门为创作者定制的但不是针对艺术类。相反Pop!\_OS 面向专门从事开发、编程和软件制作的程序员。如果你需要一个既能完美的胜任开发工作又包含符合使用习惯的桌面操作系统的开发环境Pop!\_OS 将会是你的不二选择。(图 3
可能会让你感到惊讶(考虑到这个操作系统是多么“年轻”)的是 Pop!\_OS 也是你将使用的基于 GNOME 平台的最稳定系统的之一。这意味着 Pop!\_OS 不只是为创作者和创客准备的,也是为任何想要一个可靠的操作系统的人准备的。你可以下载针对你的硬件的专门 ISO 文件,这一点是许多用户十分欣赏的。如果你有英特尔硬件,[下载][10] Intel 或 AMD 的版本。如果你的显卡是 NVIDIA请下载该特定版本。不管怎样你肯定会得到针对不同平台进行特殊定制的稳定版本。
![Pop!_OS][12]
*图 3装有 GNOME 桌面的 Pop!_OS 一览。*
有趣的是,在 Pop!\_OS 中,你不会找到太多预装的开发工具。你也不会找到 IDE 或许多其他开发工具。但是,你可以在 Pop 商店中中找到所需的所有开发工具。
### 运维
如果你正在寻找适合系统管理的最具生产力的发行版,[Debian][13] 将会是你的不二之选。为什么这么说呢?因为 Debian 不仅仅拥有无与伦比的可靠性它也是众多能从苦海中将你解救出来的最好的一个发行版。Debian 是易用性和无限可能性的完美结合。最重要的是,因为它是许多其他发行版的基础,所以可以打赌,如果你需要一个任务的管理工具,那么它一定支持 Debian 系统。当然,我们讨论的是一般的系统管理任务,这意味着大多数时候你需要使用终端窗口 SSH 连接到服务器(图 4或者在浏览器上使用网络上基于 web 的 GUI 工具。既然如此为什么还要使用一个增加复杂性的桌面呢(比如 Fedora 中的 SELinux 或 openSUSE 中的 YaST所以应选择更为简洁易用的那一种。
![Debian][15]
*图 4在 Debian 系统上通过 SSH 连接到远程服务器。*
你可以选择你想要的不同的桌面(包括 GNOME、Xfce、KDE、Cinnamon、MATE、LXDE可以确保你所使用的桌面外观最适合你的工作习惯。
### 教育
如果你是一名老师或学生,抑或是其他从事与教育相关工作的人士,你需要适当的工具来提高生产力。之前,有 Edubuntu 这样的版本。这一版本位列教育类相关发行版排名的前列。然而,自从 Ubuntu 14.04 版之后这一发行版就再也没有更新。还好,现在有一款基于 openSUSE 的新的以教育为基础的发行版有望夺摘得桂冠。这一改版叫做 [openSUSE:Education-Li-f-e][16]Li-f-eLinux For Education - 图 5它基于 openSUSE Leap 42.1 (所以它可能稍微有一点过时)。
openSUSE:Education-Li-f-e 包含了以下工具:
* Brain Workshop大脑工坊一种基于 dual n-back 模式的大脑训练软件LCTT 译注dual n-back 训练是一种科学的智力训练方法,可以改善人的工作记忆和流体智力)
* GCompris一种针对青少年的教育软件包
* gElemental一款元素周期表查看工具
* iGNUit一款通用的记忆卡片工具
* Little Wizard基于 Pascal 语言的少儿编程开发环境
* Stellarium天文模拟器
* TuxMath数学入门游戏
* TuxPaint一款少儿绘画软件
* TuxType一款为少儿准备的打字入门软件
* wxMaxima一个跨平台的计算机代数系统
* Inkscape矢量图形编辑软件
* GIMP图像处理软件LCTT 译注:被誉为 Linux 上的 PhotoShop
* PencilGUI 模型制作工具
* Hugin全景照片拼接及 HDR 效果混合软件
![Education][18]
*图 5openSUSE:Education-Li-f-e 发行版拥有大量的工具可以帮你在学校中变得更为高效。*
同时还集成在 openSUSE:Education-Li-f-e 中的还有 [KIWI-LTSP Server][19] 。KIWI-LTSP 服务器是一个灵活的、经济高效的解决方案,旨在使全世界的学校、企业和组织能够轻松地安装和部署桌面工作站。虽然这可能不会直接帮助学生变得更具生产力,但它肯定会使教育机构在部署供学生使用的桌面时更有效率。有关配置 KIWI-LTSP 的更多信息,请查看 openSUSE [KIWI-LTSP 快速入门指南][20]。
--------------------------------------------------------------------------------
via: https://www.linux.com/blog/learn/2019/1/top-5-linux-distributions-productivity
作者:[Jack Wallen][a]
选题:[lujun9972][b]
译者:[qfzy1233](https://github.com/qfzy1233)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.linux.com/users/jlwallen
[b]: https://github.com/lujun9972
[1]: https://www.ubuntu.com/
[2]: /files/images/productivity1jpg
[3]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_1.jpg?itok=yxez3X1w "GNOME Clipboard"
[4]: /licenses/category/used-permission
[5]: https://labs.fedoraproject.org/en/design-suite/
[6]: https://fedoraproject.org/wiki/Design_Suite/Tutorials
[7]: /files/images/productivity2jpg
[8]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_2.jpg?itok=ke0b8qyH "Fedora Design Suite Favorites"
[9]: https://system76.com/
[10]: https://system76.com/pop
[11]: /files/images/productivity3jpg-0
[12]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_3_0.jpg?itok=8UkCUfsD "Pop!_OS"
[13]: https://www.debian.org/
[14]: /files/images/productivity4jpg
[15]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_4.jpg?itok=c9yD3Xw2 "Debian"
[16]: https://en.opensuse.org/openSUSE:Education-Li-f-e
[17]: /files/images/productivity5jpg
[18]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_5.jpg?itok=oAFtV8nT "Education"
[19]: https://en.opensuse.org/Portal:KIWI-LTSP
[20]: https://en.opensuse.org/SDB:KIWI-LTSP_quick_start
[21]: https://training.linuxfoundation.org/linux-courses/system-administration-training/introduction-to-linux

View File

@ -1,16 +1,16 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11023-1.html)
[#]: subject: (VSCodium: 100% Open Source Version of Microsoft VS Code)
[#]: via: (https://itsfoss.com/vscodium/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
VSCodiumMicrosoft VS Code 的 100% 开源版本
VSCodium100% 开源的 VS Code
======
_ **简介:VSCodium 是微软流行的 Visual Studio Code 编辑器的一个分支。它与 VS Code 完全相同唯一不同的是VSCodium 不跟踪你的使用数据。** _
> VSCodium 是微软流行的 Visual Studio Code 编辑器的一个分支。它与 VS Code 完全相同唯一不同的是VSCodium 不跟踪你的使用数据。
微软的 [Visual Studio Code][1] 是一个出色的编辑器,不仅对于 Web 开发人员,也适合其他程序员。由于它的功能,它被认为是最好的开源代码编辑器之一。
@ -18,19 +18,19 @@ _ **简介VSCodium 是微软流行的 Visual Studio Code 编辑器的一个
但它存在一个问题,对于普通用户而言可能不是问题,但对于纯粹开源主义者而言是重要的。
Microsoft 提供的即用二进制文件是开源的。
Microsoft 提供的二进制文件是开源的。
困惑么?让我解释下。
感到困惑么?让我解释下。
VS Code 的源码是在 MIT 许可下开源的。你可以在 [GitHub][3] 上访问它。但是,[Microsoft 创建的安装包含专有的跟踪程序][4]。
此跟踪基本上用来收集使用数据并将其发送给 Microsoft 以“帮助改进其产品和服务”。如今,远程报告在软件产品中很常见。即使 [Ubuntu 也这样做,但它透明度更高][5]。
你可以[在 VS Code 中禁用远程报告][6]但是你能完全信任微软吗?如果答案是否定的,那你有什么选择?
你可以[在 VS Code 中禁用远程报告][6]但是你能完全信任微软吗?如果答案是否定的,那你有什么选择?
你可以从源代码构建它,从而保持所有开源。但是[从源代码安装][7]并不总是如今最好的选择,因为我们习惯于使用二进制文件。
你可以从源代码构建它,从而保持全都是开源的。但是如今[从源代码安装][7]并不总是最好的选择,因为我们习惯于使用二进制文件。
另一种选择是使用 VSCodium
另一种选择是使用 VSCodium
### VSCodium100 开源形式的 Visual Studio Code
@ -38,7 +38,7 @@ VS Code 的源码是在 MIT 许可下开源的。你可以在 [GitHub][3] 上访
[VSCodium][9] 是微软 Visual Studio Code 的一个分支。该项目的唯一目的是为你提供现成的二进制文件,而没有 Microsoft 的远程收集代码。
这解决了你想在没有 Microsoft 的专有代码的情况下使用 VS Code 但你不习惯从源代码构建它的问题,
这解决了你想在去掉 Microsoft 的专有代码的情况下使用 VS Code ,而你又不习惯从源代码构建它的问题。
由于 [VSCodium 是 VS Code 的一个分支][11],它的外观和功能与 VS Code 完全相同。
@ -80,7 +80,7 @@ sudo apt update && sudo apt install codium
你可以在它的页面上找到[其他发行版的安装说明][15]。你还应该阅读[有关从 VS Code 迁移到 VSCodium 的说明][16]。
**你如何看待 VSCodium**
### 你如何看待 VSCodium
就个人而言,我喜欢 VSCodium 的概念。说的老套一点,它的初心是好的。我认为,致力于开源的 Linux 发行版甚至可能开始将其包含在官方仓库中。
@ -95,7 +95,7 @@ via: https://itsfoss.com/vscodium/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,72 @@
[#]: collector: (lujun9972)
[#]: translator: (wxy)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11026-1.html)
[#]: subject: (How to navigate the Kubernetes learning curve)
[#]: via: (https://opensource.com/article/19/6/kubernetes-learning-curve)
[#]: author: (Scott McCarty https://opensource.com/users/fatherlinux/users/fatherlinux)
如何跨越 Kubernetes 学习曲线
======
> Kubernetes 就像一辆翻斗车。它非常适合解决它所针对的问题,但你必须首先掌握其学习曲线。
![](https://img.linux.net.cn/data/attachment/album/201906/28/131501h8vydvd4tyx5gz5t.jpg)
在[为什么说 Kubernetes 是一辆翻斗车][2]中,我谈到了一个工具如何优雅地解决它所设计用来解决的问题 —— 只是你要学会如何使用它。在本系列的第 2 部分中,我将更深入地了解 Kubernetes 的学习曲线。
[Kubernetes][3] 的旅程通常从在一台主机上运行一个容器开始。你可以快速了解运行新版本软件的难易程度,与其他人分享该软件的难易程度,以及对于这些用户按照你预期方式运行它的难易程度。
但是你需要:
* 两个容器
* 两个主机
使用容器在端口 80 上启动一个 Web 服务器很容易,但是当你需要在端口 80 上启动第二个容器时会发生什么?当你构建生产环境时,需要容器化 Web 服务器在发生故障时转移到第二个主机时会发生什么?在任何一种情况下,这个答案简单来说就是你必须采用容器编排。
当你开始处理两个容器或两个主机问题时,你将不可避免地引入了复杂性,因此,这就是一个学习曲线。这个两个服务(容器的更通用说法)或两个主机的问题已经存在了很长时间,并且由此带来了复杂性。
从历史上看,这将涉及负载均衡、集群软件甚至集群文件系统。每个服务的配置逻辑都嵌入在每个系统(负载均衡、集群软件和文件系统)中。在负载平衡器后运行 60 或 70 个集群的服务是复杂的。添加另一个新服务也很复杂。更糟糕的是,撤下服务简直是一场噩梦。回想起我对生产环境中的 MySQL 和 Apache 服务器进行故障排除的日子,这些服务器的逻辑嵌入在三、四个或五个不同的地方,所有这些都采用不同的格式,让我头疼不已。
Kubernetes 使用一个软件优雅地解决了所有这些问题:
1. 两项服务(容器):✅
2. 两台服务器(高可用性):✅
3. 单一配置来源:✅
4. 标准配置格式:✅
5. 网络:✅
6. 储存:✅
7. 依赖关系(什么服务与哪些数据库对应):✅
8. 易于配置:✅
9. 轻松取消配置:✅(也许是 Kubernetes **最**强大的部分)
等等,这样初看起来 Kubernetes 非常优雅、非常强大。 **没错。**你可以在 Kubernetes 中建模一整个微型 IT 世界。
![Kubernetes business model][4]
所以,是的,就像开始使用巨型翻斗车(或任何专业设备)时,有一个学习曲线。使用 Kubernetes 还有一个学习曲线,但它值得,因为你可以用一个工具解决这么多问题。如果你对学习曲线感到担忧,请仔细考虑 IT 基础架构中的所有底层网络、存储和安全问题,并设想一下今天的解决方案 —— 这并不容易。特别是当你越来越快地引入越来越多的服务时。速度是当今的目标,因此要特别考虑配置和取消配置问题。
但是,不要混淆了建造或配置 Kubernetes 的学习曲线为你的翻斗车挑选合适的挡泥板可能很难LOL和使用它的学习曲线。学习用如此多的不同层次容器引擎、日志记录、监控、服务网格、存储、网络的技术来建立自己的 Kubernetes 有很多不同的选择,还有每六个月维护每个组件的更新选择,这可能不值得投资 —— 但学会使用它绝对是值得的。
我每天都与 Kubernetes 和容器泡在一起,即使这样我都很难跟踪几乎每天都在宣布的所有重大新项目。 但是,每一天我都对使用单一工具来模拟整个 IT 多个方面的运营优势感到兴奋。此外,记住 Kubernetes 已经成熟了很多,并将继续发展下去。与之前的 Linux 和 OpenStack 一样,每一层的接口和事实上的项目都将成熟并变得更容易选择。
在本系列的第三篇文章中,我将深入挖掘你在驾驶 Kubernetes “卡车”之前需要了解的内容。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/kubernetes-learning-curve
作者:[Scott McCarty][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/fatherlinux/users/fatherlinux
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/dumptruck_car_vehicle_storage_container_road.jpg?itok=TWK0CbX_ (Dump truck rounding a turn in the road)
[2]: https://linux.cn/article-11011-1.html
[3]: https://kubernetes.io/
[4]: https://opensource.com/sites/default/files/uploads/developer_native_experience_-_mapped_to_traditional_1.png (Kubernetes business model)

View File

@ -0,0 +1,99 @@
[#]: collector: (lujun9972)
[#]: translator: (hopefully2333)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11035-1.html)
[#]: subject: (Cisco to buy IoT security, management firm Sentryo)
[#]: via: (https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html)
[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
思科收购了物联网安全管理公司 Sentryo
======
> 买下 Sentryo 将给思科在工业物联网的异常和实时威胁检测两方面予以支持。
![IDG Worldwide][1]
为了扩展自己的物联网安全管理产品,思科计划收购 Sentryo这是一家总部位于法国的公司Sentryo 为工业物联网提供异常检测和实时威胁检测。
Sentryo 成立于 2014 年,产品包括 ICS CyberVision一种用于资产库存、网络监控和威胁情报的平台以及 CyberVision 网络边界传感器,这用于分析网络流量。
**更多关于物联网的信息:**
* [什么是物联网?物联网如何运行?][4]
* [什么是边缘计算,这会如何改变我们的网络?][5]
* [最强的物联网公司][6]
* [10 个值得关注的热门物联网创业公司][7]
* [在物联网领域赚钱的六种方法][8]
* [什么是数字双胞胎技术? [以及它为什么重要]][9]
* [区块链,以服务为中心的网络是物联网成功的关键][10]
* [物联网以网络和安全作为基础][11]
* [构建完整的物联网网络必须优先完成][12]
* [什么是工业物联网?[为什么风险如此之高]][13]
“我们通过思科的 IOx 应用框架将 Sentryo 的边缘传感器和我们的工业网络硬件相结合”,思科企业发展和思科投资的副总裁 Rob Salvagno 在一篇关于计划收购的博客中写道。
“我们相信连接是物联网项目的基础,通过释放网络的力量,我们可以大大提高运作的效率并发现新的商业机会。随着 Sentryo 的加入,思科可以为系统控制工程师提供更加深入的资产可见度,以此来对系统进行优化,检测异常并保护他们的网络。”
Gartner 对 Sentryo 的系统写道“ICS CyberVision 产品以其所有 OT 用户都能理解的方式提供对其客户 OT 网络的可视性,而不仅仅是 IT 技术人员。随着黑客和监管机构越来越关注工业控制系统,一个组织的 OT 拥有完整的可见性是至关重要的一件事。很多的 OT 网络不仅在地理上位置分散,而且也很复杂,由成千上万的组件组成。”
Frost & Sullivan 的工业分析师 Nandini Natarajan 表示Sentryo 的 ICS CyberVision 让企业能够确保其工业运作的连续性、动态弹性和安全性,并以此预防可能的网络攻击。“它将使用标签形式的独特的 ‘通用 OT 语言’ 来自动描述资产和通信流程以纯文本的方式描述每个资产在做什么。ICS CyberVision 可以让任何人都能立刻查看一台设备的类别和行为它利用人工智能算法提供很多不同的分析视图来让用户深入了解到一个典型的工业控制系统可以产生多么庞大的数据。Sentryo 可以轻松查看重要或相关的信息。”
Natarajan 表示除此之外Sentryo 的平台使用深度数据包检测DPI从工业设备之间的通信数据包里提取信息。DPI 引擎通过边缘计算架构进行部署,它可以运行在 Sentryo 传感器设备上也可以在已经安装好的网络设备上运行。因此Sentryo 可以将可见性和网络安全特性嵌入进工业网络中,而非部署带外监控网络。
Sentryo 的技术将扩大思科在物联网上的总体计划。在今年一月,思科推出了一整套的交换机、软件、开发工具和蓝图,这些东西将用于把物联网、基于意图联网的工业网络、传统信息安全、传统信息监控、应用开发支持融为一体。
这个新平台可以通过思科的 DNA 中心进行管理,让客户能将他们的物联网、工业网络控制和他们的商业 IT 世界融为一体。
DNA 中心是思科用于企业网络的中央管理工具,具有自动化、确保设置、结构配置、基于策略进行分割的功能。它也是该公司 IBN 计划的核心用于主动向客户提供动态自动化实施网络和策略变更的能力并在这个过程中确保数据的交付。IoT Field Network Director 是管理思科工业、连接网格路由器和终端的多服务网络的软件。
思科物联网业务部的高级副总裁兼总经理 Liz Centoni 表示,公司希望 Sentryo 的技术能以多种方式帮助物联网客户:
支持网络的被动 DPI 功能,这用于发现 IOT 和 OT 设备并且在设备和系统之间建立起通信模式。Sentryo 的传感器可以在思科的 IOx 框架里进行本地部署,并且可以内置到这些设备运行的工业网络中,而不是添加额外的硬件。
随着设备识别和通信模式的建立,思科将把 DNA 中心和身份识别服务引擎ISE集成到一起以便客户能够很轻松地定义分割策略。这种集成将使 OT 团队能够利用 IT 安全团队的专业知识来保护他们的环境,而不会对运营的流程造成风险。
由于这些物联网设备缺乏现代嵌入式软件和安全功能,网络分段将成为允许运作设备向合法系统进行通信的关键技术,并降低像我们看见的 WannaCry 和 Norsk Hydro 那样网络安全事件的风险。
据 Crunchbase 称Sentryo 的每年预计收入为 350 万美元,与 Cymmetria、Team8 和 Indegy 的竞争最为激烈。此次收购预期将在思科 2020 财年的第一季度 - 2019 年 10 月 26 日 - 结束前完成。思科并未详细披露此次收购的财务细节。
Sentryo 是思科今年的第二次收购。思科在今年一月收购了 Singularity 公司的网络分析技术。在 2018 年,思科收购了包含 Duo security software 在内的 6 家公司。
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html
作者:[Michael Cooney][a]
选题:[lujun9972][b]
译者:[hopefully2333](https://github.com/hopefully2333)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Michael-Cooney/
[b]: https://github.com/lujun9972
[1]: https://images.idgesg.net/images/article/2018/09/nwan_019_iiot-100771131-large.jpg
[2]: https://www.sentryo.net/
[3]: https://www.networkworld.com/article/3243928/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
[4]: https://www.networkworld.com/article/3207535/internet-of-things/what-is-the-iot-how-the-internet-of-things-works.html
[5]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
[6]: https://www.networkworld.com/article/2287045/internet-of-things/wireless-153629-10-most-powerful-internet-of-things-companies.html
[7]: https://www.networkworld.com/article/3270961/internet-of-things/10-hot-iot-startups-to-watch.html
[8]: https://www.networkworld.com/article/3279346/internet-of-things/the-6-ways-to-make-money-in-iot.html
[9]: https://www.networkworld.com/article/3280225/internet-of-things/what-is-digital-twin-technology-and-why-it-matters.html
[10]: https://www.networkworld.com/article/3276313/internet-of-things/blockchain-service-centric-networking-key-to-iot-success.html
[11]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html
[12]: https://www.networkworld.com/article/3276304/internet-of-things/building-iot-ready-networks-must-become-a-priority.html
[13]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
[14]: https://blogs.cisco.com/news/cisco-industrial-iot-news
[15]: https://www.globenewswire.com/news-release/2018/06/28/1531119/0/en/Sentryo-Named-a-Cool-Vendor-by-Gartner.html
[16]: https://www.linkedin.com/pulse/industrial-internet-things-iiot-decoded-nandini-natarajan/
[17]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
[18]: https://www.cisco.com/c/dam/en_us/solutions/iot/ihs-report.pdf
[19]: https://www.networkworld.com/article/3336454/cisco-goes-after-industrial-iot.html
[20]: https://www.networkworld.com/article/3202699/what-is-intent-based-networking.html
[21]: https://blogs.cisco.com/news/securing-the-internet-of-things-cisco-announces-intent-to-acquire-sentryo
[22]: https://blogs.cisco.com/security/talos/wannacry
[23]: https://www.securityweek.com/norsk-hydro-may-have-lost-40m-first-week-after-cyberattack
[24]: https://www.crunchbase.com/organization/sentryo#section-web-traffic-by-similarweb
[25]: https://www.facebook.com/NetworkWorld/
[26]: https://www.linkedin.com/company/network-world

View File

@ -1,22 +1,24 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11036-1.html)
[#]: subject: (Kubernetes basics: Learn how to drive first)
[#]: via: (https://opensource.com/article/19/6/kubernetes-basics)
[#]: author: (Scott McCarty https://opensource.com/users/fatherlinux/users/fatherlinux/users/fatherlinux)
Kubernetes 基础:首先学习如何使用
======
放弃专注于新项目,专注于获取你的 Kubernetes 翻斗车商业驾驶执照。
> 不要被新项目分心,而是专注于取得你的 Kubernetes 翻斗车驾驶执照。
![Truck steering wheel and dash][1]
在本系列的前两篇文章中,我解释了为何 Kubernetes [像翻斗车][2]并且要理解优雅、专业的工具,如 [Kubernetes][4](和翻斗车,起重机等)总是有[学习曲线][3]的。本文是下一步:学习如何驾驶。
在本系列的前两篇文章中,我解释了为何 Kubernetes [像翻斗车][2],并且想要理解像 [Kubernetes][4](和翻斗车,起重机等)这样优雅、专业工具总是有[学习曲线][3]的。本文是下一步:学习如何驾驶。
最近,我在 Reddit 上看到了一个关于[重要的 Kubernetes 项目][5]的帖子。人们似乎很想知道他们应该学习如何开始使用 Kubernetes。“驾驶翻斗车的类比”有助于确保问题保持正轨。帖子中的某个人提到你不应该运行自己的镜像仓库,除非你必须这样做,所以人们开始逐渐接受驱动 Kubernetes 而不是构建它
最近,我在 Reddit 上看到了一个关于[重要的 Kubernetes 项目][5]的帖子。人们似乎很想知道他们应该学习如何开始使用 Kubernetes。“驾驶翻斗车的类比”有助于确保这个问题回到轨道上去。在这个帖子中的某个人提到,除非必要,你不应该运行自己的镜像仓库,所以人们开始逐渐接受驾驭 Kubernetes 而不是构建它的想法
API 是 Kubernetes 的引擎和变速器。像翻斗车的方向盘、离合器、汽油和制动踏板一样,用于构建应用程序的 YAML 或 JSON 文件是机器的主要接口。当你第一次学习 Kubernetes 时,这应该是你的主要关注点。了解你的控制部件。不要被所有最新和最大的项目所左右。当你刚学会开车时,不要尝试驾驶实验性的翻斗车。相反,专注于基础知识。
API 是 Kubernetes 的引擎和变速器。像翻斗车的方向盘、离合器、汽油和制动踏板一样,用于构建应用程序的 YAML 或 JSON 文件是机器的主要接口。当你第一次学习 Kubernetes 时,这应该是你的主要关注点。了解你的控制部件。不要分心于最新和最大的那些项目。当你刚学会开车时,不要尝试驾驶实验性的翻斗车。相反,专注于基础知识。
### 定义状态和实际状态
@ -26,25 +28,25 @@ API 是 Kubernetes 的引擎和变速器。像翻斗车的方向盘、离合器
人类(开发人员/系统管理员/运维人员)使用他们提交给 Kubernetes API 的 YAML/JSON 文件指定定义的状态。然后Kubernetes 使用控制器来分析 YAML/JSON 中定义的新状态与集群中的实际状态之间的差异。
在上面的例子中Replication Controller 可以看到用户指定的三个 pod 之间的差异,其中一个 pod 正在运行,并调度另外两个 Pod。如果你登录 Kubernetes 并手动杀死其中一个 Pod它会不断启动另一个来替换它。在实际状态与定义的状态匹配之前Kubernetes 不会停止。这是非常强大的。
在上面的例子中Replication Controller 可以看到用户指定的三个 pod 之间的差异,其中一个 pod 正在运行,并调度另外两个 Pod。如果你登录 Kubernetes 并手动杀死其中一个 Pod它会不断启动另一个来替换它。在实际状态与定义的状态匹配之前Kubernetes 不会停止。这是非常强大的。
### **原语**
### 原语
接下来,你需要了解可以在 Kubernetes 中指定的原语。
![Kubernetes primitives][7]
它不仅仅有 Pods还有部署 Deployments、持久化卷声明 Persistent Volume Claims、服务 Services路由 routes 等。使用支持 Kubernetes 的平台 [OpenShift][8],你可以添加构建和 BuildConfigs。你大概需要一天左右的时间来了解这些原语。之后,当你的情况变得更加复杂时,你可以深入了解。
这些原语不仅仅有 Pod还有<ruby>部署<rt>Deployment</rt></ruby><ruby>持久化卷声明<rt>Persistent Volume Claim</rt></ruby><ruby>服务<rt>Service</rt></ruby><ruby>路由<rt>route</rt></ruby>等。使用支持 Kubernetes 的平台 [OpenShift][8],你可以添加<ruby>构建<rt>build</rt></ruby>和 BuildConfig。你大概需要一天左右的时间来了解这些原语。你可以在你的用例变得更加复杂时再深入了解。
### 将开发者映射到传统 IT 环境
### 将原生开发者映射到传统 IT 环境
最后,考虑这该如何映射到你在传统 IT 环境中的操作。
![Mapping developer-native to traditional IT environments][9]
尽管是一个技术问题,但用户一直在尝试解决业务问题。从历史上看,我们使用诸如 playbook 之类的东西将业务逻辑与单一语言的 IT 系统绑定起来。对于运维人员来说,这很不错,但是当你尝试将其扩展到开发人员时,它会变得更加繁琐。
尽管是一个技术问题,但用户一直在尝试解决业务问题。从历史上看,我们使用诸如<ruby>剧本<rt>playbook</rt></ruby>之类的东西将业务逻辑与单一语言的 IT 系统绑定起来。对于运维人员来说,这很不错,但是当你尝试将其扩展到开发人员时,它会变得更加繁琐。
直到 Kubernete 出现之前,我们从未能够以开发者的方式真正同时指定一组 IT 系统应如何表现和交互。如果你考虑一下,我们正在使用在 Kubernetes 中编写的 YAML/JSON 文件以非常便携和声明的方式扩展了管理存储、网络和计算资源的能力,但它们总会映射到某处的“真实”资源。我们不必以开发者身份担心它。
直到 Kubernete 出现之前,我们从未能够以原生开发者的方式真正同时指定一组 IT 系统应如何表现和交互。如果你考虑一下,我们正在使用在 Kubernetes 中编写的 YAML/JSON 文件以非常便携和声明的方式扩展了管理存储、网络和计算资源的能力,但它们总会映射到某处的“真实”资源。我们不必以开发者身份担心它。
因此,快放弃关注 Kubernetes 生态系统中的新项目,而是专注开始使用它。在下一篇文章中,我将分享一些可以帮助你使用 Kubernetes 的工具和工作流程。
@ -55,15 +57,15 @@ via: https://opensource.com/article/19/6/kubernetes-basics
作者:[Scott McCarty][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/fatherlinux/users/fatherlinux/users/fatherlinux
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/truck_steering_wheel_drive_car_kubernetes.jpg?itok=0TOzve80 (Truck steering wheel and dash)
[2]: https://opensource.com/article/19/6/kubernetes-dump-truck
[3]: https://opensource.com/article/19/6/kubernetes-learning-curve
[2]: https://linux.cn/article-11011-1.html
[3]: https://linux.cn/article-11026-1.html
[4]: https://opensource.com/resources/what-is-kubernetes
[5]: https://www.reddit.com/r/kubernetes/comments/bsoixc/what_are_the_essential_kubernetes_related/
[6]: https://opensource.com/sites/default/files/uploads/defined_state_-_actual_state.png (Defined state and actual state)

View File

@ -1,30 +1,30 @@
[#]: collector: (lujun9972)
[#]: translator: (murphyzhao)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11027-1.html)
[#]: subject: (Applications for writing Markdown)
[#]: via: (https://fedoramagazine.org/applications-for-writing-markdown/)
[#]: author: (Ryan Lerch https://fedoramagazine.org/author/ryanlerch/)
撰写 Markdown 的软件
三个在 Fedora 平台上撰写 Markdown 的软件
======
![][1]
Markdown 是一种轻量级标记语言,添加格式后以纯文本格式查看时依然保持可读性。Markdown和 Markdown 衍生物)被广泛用作 GitHub 和 pagure 等服务上文档标记的主要形式。根据设计,可以在文本编辑器中轻松创建和编辑 Markdown但是有许多编辑器可以提供 Markdown 标记的格式化预览,或提供 markdown 语法高亮显示。
Markdown 是一种轻量级标记语言,可以在添加格式后以纯文本格式查看时依然保持可读性。Markdown和 Markdown 衍生物)被广泛用作 GitHub 和 pagure 等服务上格式化文档的主要形式。根据设计,可以在文本编辑器中轻松创建和编辑 Markdown但是有许多编辑器可以提供 Markdown 标记的格式化预览,或提供 Markdown 语法高亮显示。
本文介绍了针对 Fedora 平台的 3 个桌面应用程序,以帮助编辑 Markdown。
### UberWriter
[UberWriter][2] 是一个小巧的 Markdown 编辑器和预览器,允许您编辑文本,并预览渲染的文档。
[UberWriter][2] 是一个小巧的 Markdown 编辑器和预览器,允许你以文本方式编辑,并预览渲染的文档。
![][3]
编辑器本身具有内置的内联预览,因此标记为粗体的文本以粗体显示。编辑器还提供图像、公式、脚注等标记的内联预览。按住 Ctrl 键单击其中的一个标记可以即时预览要显示的元素。
编辑器本身具有内置的内联预览,因此标记为粗体的文本以粗体显示。编辑器还提供图像、公式、脚注等标记的内联预览。按住 `Ctrl` 键单击其中的一个标记可以即时预览要显示的元素。
除了编辑器功能外UberWriter 还具有全屏模式和聚焦模式,有助于最大限度地减少干扰。焦点模式将以灰色显示除当前段落以外的所有内容,以帮助专注于文档中当前元素。
除了编辑器功能外UberWriter 还具有全屏模式和聚焦模式,有助于最大限度地减少干扰。焦点模式将以灰色显示除当前段落以外的所有内容,以帮助专注于文档中当前元素。
从第三方 Flathub 存储库安装 UberWriter 到 Fedora 平台。在将系统[设置为从 Flathub 安装][4]后,可以直接从 Software 应用程序中安装它。
@ -34,13 +34,13 @@ Marker 是一个 Markdown 编辑器,它提供了一个简单的文本编辑器
![][5]
此外Marker 允许以各种格式导出文档,包括 HTML、PDF 和开放文档格式ODF
此外Marker 允许以各种格式导出文档,包括 HTML、PDF 和开放文档格式ODF
从第三方 Flathub 存储库安装 Marker 到 Fedora 平台。在将系统[设置为从 Flathub 安装][4]后,可以直接从 Software 应用程序中安装它。
### Ghostwriter
以前的编辑更专注于最小的用户体验Ghostwriter 提供了更多的功能和选项。Ghostwriter 提供了一个文本编辑器,当以 Markdown 格式书写时,编辑器将 Markdown 部分样式化。粗体标记文本显示为粗体,标题标记显示为较大的字体,以帮助编写 Markdown 标记。
以前的编辑更专注于最小的用户体验Ghostwriter 提供了更多的功能和选项。Ghostwriter 提供了一个文本编辑器,当以 Markdown 格式书写时,编辑器将 Markdown 部分样式化。粗体标记文本显示为粗体,标题标记显示为较大的字体,以帮助编写 Markdown 标记。
![][6]
@ -60,8 +60,8 @@ via: https://fedoramagazine.org/applications-for-writing-markdown/
作者:[Ryan Lerch][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
译者:[murphyzhao](https://github.com/murphyzhao)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11022-1.html)
[#]: subject: (Personal assistant with Mycroft and Fedora)
[#]: via: (https://fedoramagazine.org/personal-assistant-with-mycroft-and-fedora/)
[#]: author: (Clément Verna https://fedoramagazine.org/author/cverna/)
@ -12,7 +12,7 @@
![][1]
还在找开源的私人助理么?[Mycroft][2] 让你运行开源服务,从而更好地控制你的数据。
> 想要找个开源的私人助理么?[Mycroft][2] 可以让你运行一个开源的服务,从而更好地控制你的数据。
### 在 Fedora 上安装 Mycroft
@ -29,9 +29,9 @@ $ cd mycroft-core
$ ./dev_setup.sh
```
安装脚本会提示用户帮助他完成安装过程。建议运行稳定版本并获取自动更新。
安装脚本会提示用户帮助他完成安装过程。建议运行稳定版本并获取自动更新。
当提示在本地安装 Mimic 文字转语音引擎时,请回答否。因为根据安装描述,这可能需要很长时间,并且 Mimic 有适合 Fedora 的 rpm 包,因此可以使用 dnf 进行安装。
当提示在本地安装 Mimic 文字转语音引擎时,请回答否。因为根据安装描述,这可能需要很长时间,并且 Mimic 有适合 Fedora 的 rpm 包,因此可以使用 `dnf` 进行安装。
```
$ sudo dnf install mimic
@ -63,12 +63,10 @@ Hey Mycroft, how are you ?
Hey Mycroft, what's the weather like ?
```
如果你对它是如何工作的感兴趣,_start-mycroft.sh_ 脚本提供了一个_命令行_选项,它能让你使用命令行交互。它也会显示用于调试的有用信息。
如果你对它是如何工作的感兴趣,`start-mycroft.sh` 脚本提供了一个命令行选项,它能让你使用命令行交互。它也会显示用于调试的有用信息。
Mycroft 总在学习新技能,并且有很多方法给 Mycroft 社区做[贡献][6]。
* * *
由 [Przemyslaw Marczynski][7] 摄影,发布于 [Unsplash][8]
--------------------------------------------------------------------------------
@ -78,7 +76,7 @@ via: https://fedoramagazine.org/personal-assistant-with-mycroft-and-fedora/
作者:[Clément Verna][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,93 @@
[#]: collector: (lujun9972)
[#]: translator: (wahailin)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11034-1.html)
[#]: subject: (Raspberry Pi 4 is here!)
[#]: via: (https://opensource.com/article/19/6/raspberry-pi-4)
[#]: author: (Ben Nuttall https://opensource.com/users/bennuttall)
树莓派 4 来袭!
======
![](https://img.linux.net.cn/data/attachment/album/201906/29/161918icu6zrn8qrg3p38u.png)
> 售价 35 美元起的新一代树莓派单板计算机,装载了 1.5 GHz 的 Arm 芯片,并支持双 HDMI 4K 显示,全吞吐量千兆以太网,以及更多新特性。
![Raspberry Pi 4 board][1]
树莓派的最新版本树莓派 4 代,已于近日(北京时间 6 月 24 日)发布,这早于此前预期。树莓派 4 装载了 1.5 GHz 的 Arm 芯片和 VideoCore GPU支持双 4K 显示输出,并引入了 USB 3 接口和全吞吐量千兆以太网,以及最高可达 4G 的多个可选 RAM 配置。
![Raspberry Pi 4 case][2]
树莓派 4 是非常强大的单板计算机,其起始售价依然是 35 美元。起始版的 RAM 配置为 1G2G RAM 配置的树莓派售价为 45 美元,顶配 4G RAM 的树莓派售价为 55 美元,采用这种差异化定价对树莓派尚属首次。
树莓派 4 的详细配置如下:
* 1.5 GHz 4 核心 64 位博通 BCM2711 A72 CPU
* VideoCore VI GPU
* 千兆以太网端口
* 1GB/2GB/4GB LPDDR4 SDRAM 内存
* 双 Micro-HDMI 接口
* 两个 USB 3 接口
* 两个 USB 2 接口
* 双频2.4 GHz 和 5 GHz无线网络
* 蓝牙 5.0
* USB Type C 电源接口
* CSI 摄像头接口
* DSI 显示接口
* MicroSD 卡槽
* PoE以太网供电供电针
* 完全兼容早期的树莓派产品
### USB 接口和网络
树莓派 4 板载了更高速率的 USB 3 接口;它通过 Type C 接口供电,并提供两个 USB 3 接口和两个 USB 2 接口。USB 3 接口可以为连接的硬盘和其它外部设备提供更高的速率。
![Raspberry Pi 4 USBs][3]
基于 BCM2835 的树莓派 1 到 3 代的芯片只有一个本地 USB 接口,并且没有以太网接口,因而需要使用板子的 USB 集线器给出更多的 USB 接口和以太网接口。树莓派 3B+ 增加了一个专用的局域网LAN芯片装载了千兆以太网但它受到 USB 2 速率的限制。树莓派 4 板载了专门的千兆以太网,并且由于它不再受到 USB 速率的限制,网络速度要快得多。
树莓派 4 采用了 3B+ 中已有的技术 —— 该技术使得树莓派 3B+ 成为了第一个带有双频无线网络的单板计算机,即可以同时连接 2.4 GHz 和 5 GHz 频率的网络。
### 显示
设计第一代树莓派时,其 CPU 和 GPU 性能的平衡大大偏向于 GPU。VideoCore IV 是一个非常强大的图形处理器,支持全高清 1080p 多媒体的处理,这就是为什么树莓派一直作为家庭媒体中心而广受欢迎的原因。树莓派 2 代在某种程度上进行了权衡修改,并将 CPU 的性能进行提升,将树莓派从单核发展成四核 ARM 芯片。而树莓派 4 代将 CPU 和 GPU 的性能都进行了大幅提升。新的 VideoCore VI GPU 支持 4K 视频,并允许通过板子上的两个 Micro HDMI 端口(板子特意保持了和旧有型号相同的尺寸)进行双显示输出,这里要用一个适配器或 Micro HDMI 转 full HDMI 的转换线连接到 HDMI 屏幕。
当你需要同时浏览多个窗口时需要用到更多的物理显示屏双显示的好处在此时就得到了绝佳体现。如果你正在编程你可能会在其中一个屏幕上编写代码构建网站或应用而在另一个屏幕上查看数据库、Web 浏览器、电子邮件或其他内容。这是树莓派首次可以不必将开发局限在一台显示器上,从而可以让你在需要时,在不同的屏幕上构建具有不同内容的基于树莓派的项目。
该树莓派还有一个显示器串行接口DSI),用于驱动另一个特殊的显示-这里并非指另一个监视器本身,而是通过一根挠性电缆连接的官方树莓派触摸屏显示器。
### Raspbian Buster
树莓派 4 发布后,紧接着更新了基于 Debian 的系统 Raspbian Buster而新的树莓派对 OpenGL ES 3 的支持,使我们在 Raspbian Buster 上为树莓派 4 开发任意软件成为可能。Buster 对界面进行了一些调整,并对很多软件进行了升级,其中包括 Python3.7。
![Raspbian Buster][4]
### 开源图形驱动程序
在过去的五年中Eric Anholt 一直致力于为树莓派编写开源图形驱动程序。现在Raspbian 可以使用这个驱动程序加速树莓派上的 Web 浏览、桌面图形和 3D 应用,这取代了以前需要的大量闭源代码。非常感谢 Eric 和博通的贡献。
按之前预计,树莓派 4 将于明年完成,但由于芯片设计比预期更早投入生产,树莓派 4 因而可以提早到现在发布。
* * *
树莓派 4 已经开始发售,你会选择哪个型号呢?在评论中说出你的想法吧。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/raspberry-pi-4
作者:[Ben Nuttall][a]
选题:[lujun9972][b]
译者:[wahailin](https://github.com/wahailin)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/bennuttall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/raspberry-pi-4_lead.jpg?itok=2bkk43om (Raspberry Pi 4 board)
[2]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-case.jpg (Raspberry Pi 4 case)
[3]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-usb.jpg (Raspberry Pi 4 USBs)
[4]: https://opensource.com/sites/default/files/uploads/raspbian-buster.png (Raspbian Buster)

View File

@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11031-1.html)
[#]: subject: (Using i3 with multiple monitors)
[#]: via: (https://fedoramagazine.org/using-i3-with-multiple-monitors/)
[#]: author: (Adam Šamalík https://fedoramagazine.org/author/asamalik/)
@ -12,13 +12,13 @@
![][1]
你在 Linux 工作站上使用多个显示器吗?一次看到很多东西可能是有益的。但在我们的工作中通常有比实际显示器更多的窗口 - 这是一件好事,因为一次看到太多东西可能会分散注意力。因此能够切换我们在单个显示器上看到的内容似乎很重要。
你在 Linux 工作站上使用多个显示器吗?一次看到很多东西可能是有益的。但在我们的工作中通常有比实际显示器更多的窗口 —— 这是一件好事,因为一次看到太多东西可能会分散注意力。因此能够切换我们在单个显示器上看到的内容似乎很重要。
让我们来谈谈 i3它是一个流行的平铺窗口管理器可以与多个显示器配合使用。并且有许多其他窗口管理器没有的便利功能它能够独立地在各个显示器上切换工作区。
让我们来看看 i3它是一个流行的平铺窗口管理器可以与多个显示器配合使用。并且有许多其他窗口管理器没有的便利功能它能够独立地在各个显示器上切换工作区。
### 快速介绍 i3
大约三年前,[Fedora Magazine 已经写了一篇关于 i3 的文章][2]。这是有史以来最受欢迎的文章之一!虽然情况并非总是如此,但 i3 非常稳定,而且篇文章如今也很准确。所以,这次不会重复太多,本篇只涵盖了让 i3 启动和运行,如果你是 i3 的新手,想要了解更多基础知识的话,欢迎你继续阅读。
大约三年前,[Fedora Magazine 已经写了一篇关于 i3 的文章][2]。这是有史以来最受欢迎的文章之一!虽然情况并非总是如此,但 i3 非常稳定,而且篇文章如今也很准确。所以,这次不会重复太多内容,本篇只涵盖了让 i3 启动和运行的极少内容,如果你是 i3 的新手,想要了解更多基础知识的话,欢迎你继续阅读。
要在系统上安装 i3请运行以下命令
@ -28,7 +28,7 @@ $ sudo dnf install i3
完成后,注销,然后在登录屏幕上选择 i3 作为窗口管理器,然后重新登录。
当你第一次运行 i3 时,系统会询问你是否要继续进行自动配置 - 在此处回答是。之后,你将被要求选择 “mod 键”。如果你在这里不确定,只需接受默认值,即将 Windows/Super 键设置为 mod 键。你将主要使用此键用于窗口管理器中的快捷方式。
当你第一次运行 i3 时,系统会询问你是否要继续进行自动配置 —— 在此处回答是。之后,你将被要求选择 “mod 键”。如果你不确定,只需接受默认值,即将 Windows/Super 键设置为 mod 键。你将主要使用此键用于窗口管理器中的快捷方式。
此时,你应该在底部看到一个小条和一个空白屏幕。我们来看看一些基本的快捷方式。
@ -72,7 +72,7 @@ $mod + shift + q
还有更多的快捷方式,但这些足够让你开始使用 i3。
要退出 i3退出登录
要退出 i3退出登录)按:
```
$mod + shift + e
@ -84,9 +84,9 @@ $mod + shift + e
现在我们已经启动并运行了 i3让我们把所有这些屏幕都用到
为此,我们需要使用命令行,因为 i3 非常轻量级,并且没有 gui 来管理其他屏幕。如果这听起来很难也不用担心,它实际上非常简单!
为此,我们需要使用命令行,因为 i3 非常轻量级,并且没有 GUI 来管理其他屏幕。如果这听起来很难也不用担心,它实际上非常简单!
我们将使用的命令称为 xrandr。如果你的系统上没有 xrandr请运行以下命令安装
我们将使用的命令称为 `xrandr`。如果你的系统上没有 `xrandr`,请运行以下命令安装:
```
$ sudo dnf install xrandr
@ -98,7 +98,7 @@ $ sudo dnf install xrandr
$ xrandr
```
输出列出了所有可用输出,并通过显示支持的分辨率指示哪些输出连接了屏幕(通过电缆连接的显示器)。好消息是,我们不需要关心使它们工作的分辨率。
输出列出了所有可用输出设备,并通过显示支持的分辨率指示哪些输出连接了屏幕(通过电缆连接的显示器)。好消息是,我们不需要关心使它们工作的分辨率。
这个例子显示了笔记本电脑的主屏幕(名为 eDP1以及连接到 HDMI-2 输出的第二个显示器,它位于笔记本电脑的右侧。要打开它,请运行以下命令:
@ -108,7 +108,7 @@ $ xrandr --output HDMI-2 --auto --right-of eDP1
就是这样!你的屏幕现已激活。
![Second screen active. The commands shown on this screenshot are slightly different than in the article, as they set a smaller resolution to make the screenshots more readable.][3]
![第二个屏幕激活。截屏上显示命令与文章中略有不同,它设置了更小的分辨率以使截屏适合阅读][3]
### 在多个屏幕上管理工作区
@ -122,11 +122,11 @@ $mod + NUMBER
你可以独立切换各个显示器上的工作区!
![Workspace 2 on the left screen, workspace 4 on the right screen.][4]
![工作空间 2 在左侧屏幕,工作空间 4 在右侧屏幕][4]
![Left screen switched to workspace 3, right screen still showing workspace 4.][5]
![左侧屏幕切换为工作空间 3右侧屏幕仍为工作空间 4][5]
![Right screen switched to workspace 4, left screen still showing workspace 3.][6]
![右侧屏幕切换为工作空间 5左侧屏幕仍为空间空间 3][6]
### 在显示器之间移动工作区
@ -138,7 +138,7 @@ $mod + shift + NUMBER
我们也可以将工作区移动到不同的屏幕。但是,此操作没有默认快捷方式,因此我们必须先创建它。
要创建自定义快捷方式,你需要在你选择的文本编辑器中打开配置文件(本文使用 _vim_
要创建自定义快捷方式,你需要在你选择的文本编辑器中打开配置文件(本文使用 `vim`
```
$ vim ~/.config/i3/config
@ -163,9 +163,9 @@ $mod + shift + r
$mod + p
```
![Workspace 2 with Firefox on the left screen][7]
![打开火狐浏览器的工作空间 2 在左侧][7]
![Workspace 2 with Firefox moved to the second screen][8]
![打开火狐浏览器的工作空间 2 移动到第二个屏幕][8]
就是这些了!享受你的新多显示器体验,并了解更多 i3欢迎阅读 Fedora Magazine 上之前关于 i3 的文章,或者查看官方 i3 文档。
@ -176,7 +176,7 @@ via: https://fedoramagazine.org/using-i3-with-multiple-monitors/
作者:[Adam Šamalík][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,97 @@
[#]: collector: (lujun9972)
[#]: translator: (wxy)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11033-1.html)
[#]: subject: (FreeDOS turns 25 years old: An origin story)
[#]: via: (https://opensource.com/article/19/6/freedos-anniversary)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
25 岁的 FreeDOS起源故事
======
> 操作系统的历史是开发人员共同造物的开源软件模型的很好例子。
![FreeDOS fish logo and command prompt on computer](https://img.linux.net.cn/data/attachment/album/201906/29/154802szbavz4a0fa8a27f.jpg)
6 月 29 日是 [FreeDOS][2] 25 周年的日子。不管对于哪个开源软件项目来说,这都是一个重要的里程碑,我为过去这 1/4 个世纪来我们在这方面所做的工作感到自豪。我也为我们如何构建 FreeDOS 感到自豪,因为它是开源软件模型如何工作的一个很好的例子。
在它的那个时代MS-DOS 是一个功能强大的操作系统。自从我的父母用新的 IBM 机器取代了老化的 Apple II 计算机以来,我已经使用 DOS 多年了。MS-DOS 提供了一个灵活的命令行,我非常喜欢它,它可以方便地操作我的文件。多年来,我学会了如何在 C 中编写自己的实用程序,以进一步扩展其命令行功能。
大约在 1994 年,微软宣布其下一代的 Windows 将取消 MS-DOS。但我喜欢 DOS即使我已经开始迁移到 Linux我仍然会启动到 MS-DOS 来运行一些 Linux 尚未拥有的应用程序。
我想,如果我们想留下 DOS我们需要自己编写一个。FreeDOS 就是这样诞生的。
1994 年 6 月 29 日,我向 Usenet 上的 comp.os.msdos.apps 新闻组发表了关于我的想法的一个小小公告:
> PD-DOS 项目公告:
>
> 几个月前我发布了有关启动公共域PD版本 DOS 的文章。当时对此的普遍支持很强烈,很多人都赞同:“开始编写吧!”所以,我…
>
> 宣布开发 PD-DOS 的首次尝试。我写了一个“清单”来描述这样的一个项目的目标和工作大纲,以及一个“任务列表”,它准确地显示了需要编码开发的内容。我会在这里发布,然后讨论。
>
虽然我宣布该项目为 PD-DOS“公共领域”的意思缩写是为了模仿 IBM 的“PC-DOS”但我们很快将名称改为 Free-DOS再后来又改为 FreeDOS。
我马上开始开发它。首先,我分享了我编写的用于扩展 DOS 命令行功能的实用程序。它们中的许多程序都重现了 MS-DOS 功能,包括 `CLS`、`DATE`、`DEL`、`FIND`、`HELP` 和 `MORE`。有些是我从 Unix 借来的新功能,比如 `TEE``TRCH`Unix 的 `tr` 的简单实现)。我贡献了十几个 FreeDOS 工具。
通过分享我的实用程序,我给了其他开发人员一个起点。通过在 [GNU 通用公共许可证][3]GNU GPL下共享我的源代码我隐含地允许其他人添加新功能并修复错误。
看到 FreeDOS 开始成型的其他开发人员联系了我并希望提供帮助。Tim Norman 是第一个人Tim 自愿编写命令行 shell`COMMAND.COM`,后来命名为 `FreeCOM`)。其他人贡献了复制或扩展了 DOS 命令行的实用程序。
我们尽快发布了第一个 alpha 版本。在宣布了 FreeDOS 后不到三个月,我们就有了一个集合了我们所编写的功能的 Alpha 1 发行版。当我们发布 Alpha 5 时FreeDOS 已经拥有了 60 多个实用程序。FreeDOS 包含了 MS-DOS 中从未想过的功能,包括通过 PPP 拨号驱动程序实现的互联网连接,以及使用主 VGA 监视器和辅助单色监视器的双显示器支持。
新的开发人员加入了该项目,我们很欢迎他们。到 1998 年 10 月,感谢 Pat VillaniFreeDOS 有了一个可以工作的内核。FreeDOS 还提供了许多新功能,不仅带来了与 MS-DOS 的同等性,而且超越了 MS-DOS包括 ANSI 支持和类似 Unix lpr 的打印后台处理程序。
你可能熟悉其他的里程碑版本。我们继续向 1.0 版本迈进,终于在 2006 年 9 月发布了 FreeDOS 1.0,在 2012 年 1 月发布了 FreeDOS 1.1,在 2016 年 12 月发布了 FreeDOS 1.2。而 MS-DOS 很久以前就停止了开发,因此我们在 1.0 发布之后不需要经常更新了。
如今FreeDOS 已经是一个非常现代的 DOS。我们已经超越了“经典 DOS”现在 FreeDOS 拥有许多开发工具,如编译器、汇编器和调试器。除了普通的 DOS Edit 编辑器之外,我们还有许多编辑器,包括 Fed、Pico、TDE 以及 Emacs 和 Vi 的一个版本。FreeDOS 支持网络,甚至还提供简单的图形 Web 浏览器Dillo。我们有大量的新工具包括许多可以让 Linux 用户感到熟悉的实用工具。
正因为开发人员的共同创造FreeDOS 才走到如今。本着开源软件的精神,我们通过修复错误和添加新功能为彼此的工作做出了贡献。我们将用户视为共同开发者;我们总能找到方法来吸引贡献者,无论是编写代码还是编写文档。我们基于优点达成共识。如果这听起来很熟悉,那是因为这些是开源软件的核心价值:透明度、协作、尽早发布、经常发布、精英管理和社区。这就是[开源方式][4]
我鼓励你下载 FreeDOS 1.2 并尝试一下。
### 更多资源
* [FreeDOS 官方网站][2]
* [FreeDOS wiki][5]
* [下载 FreeDOS 1.2][6]
* [FreeDOS 的免费电子书][7]
* [FreeDOS 的简单介绍][8]
* [FreeDOS 起源与革命][9]
* [4 个 FreeDOS 的有趣事实][10]
* [如何使用 FreeDOS 升级你的系统 BIOS][11]
* [庆祝 FreeDOS 24 岁生日:有用的命令速查表][12]
* [如何在 Linux 中运行 DOS 程序][13]
* [让 DOS 活到现在并通过开源来起步][14]
* [在树莓派上运行 DOS][15]
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/freedos-anniversary
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/freedos-fish-laptop-color.png?itok=vfv_Lpph (FreeDOS fish logo and command prompt on computer)
[2]: https://www.freedos.org/
[3]: https://www.gnu.org/licenses/licenses.en.html
[4]: https://opensource.com/open-source-way
[5]: http://wiki.freedos.org/
[6]: https://www.freedos.org/download/
[7]: https://www.freedos.org/ebook/
[8]:https://linux.cn/article-9983-1.html
[9]: https://opensource.com/article/17/10/freedos
[10]: https://opensource.com/article/17/6/freedos-still-cool-today
[11]: https://opensource.com/article/17/6/upgrade-bios-freedos
[12]: https://opensource.com/article/18/6/freedos-commands-cheat-sheet
[13]: https://linux.cn/article-9014-1.html
[14]: https://opensource.com/life/16/9/interview-jim-hall-freedos
[15]: https://linux.cn/article-9544-1.html

View File

@ -1,33 +1,29 @@
[#]: collector: (lujun9972)
[#]: translator: (heguagnzhi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11043-1.html)
[#]: subject: (Three Ways to Lock and Unlock User Account in Linux)
[#]: via: (https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
在Linux中锁定和解锁用户帐户的三种方法
在 Linux 中锁定和解锁用户帐户的三种方法
======
![](https://linux.cn/article-11043-1.html)
如果密码策略已经在你的组织中实施了,你无需看这篇文章了
如果你已经在你的组织中实施了某种密码策略,你无需看这篇文章了。但是在这种情况下,如果你给账户设置了 24 小时的锁定期,你需要手动解锁用户帐户
但是在这种情况下如果你设置了24小时的锁定期你需要手动解锁用户帐户。
本教程将帮助你在Linux中手动锁定和解锁用户帐户。
本教程将帮助你在 Linux 中手动锁定和解锁用户帐户。
这可以通过三种方式使用以下两个 Linux 命令来完成。
* **`passwd:`** passwd 命令用于更新用户的身份验证令牌。这个任务是通过调用 Linux-PAM 和 Libuser API 来实现。
* **`usermod:`** usermod 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等其他功能,
* `passwd`:用于更新用户的身份验证令牌。这个任务是通过调用 Linux PAM 和 libuser API 来实现。
* `usermod`:用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中等等功能。
为了说明这一点,我们选择 `daygeek` 用户帐户。让我们看看,怎么一步步来实现的。
请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们自己的帐户。
您可以使用 `id Command` 检查给定的用户帐户在系统中是否可用。是的,我的帐户在系统中是可用的。
请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们的帐户。你可以使用 `id` 命令检查给定的用户帐户在系统中是否可用。是的,我的这个帐户在我的系统中是可用的。
```
# id daygeek
@ -37,11 +33,9 @@ uid=2240(daygeek) gid=2243(daygeek) groups=2243(daygeek),2244(ladmin)
### 方法1: 如何使用 passwd 命令锁定、解锁和检查 Linux 中给定用户帐户的状态?
passwd 命令是 Linux 管理员经常使用的命令之一。
`passwd` 命令是 Linux 管理员经常使用的命令之一。它用于更新 `/etc/shadow` 文件中用户的身份验证令牌。
它用于更新 `/etc/shadow` 文件中用户的身份验证令牌。
使用 `-l` 开关运行 passwd 命令,锁定给定的用户帐户。
使用 `-l` 开关运行 `passwd` 命令,锁定给定的用户帐户。
```
# passwd -l daygeek
@ -50,22 +44,23 @@ Locking password for user daygeek.
passwd: Success
```
你可以通过 passwd 命令或从 /etc/shadow 文件中获取给定用户名来检查锁定的帐户状态。
你可以通过 `passwd` 命令或从 `/etc/shadow` 文件中获取给定用户名来检查锁定的帐户状态。
使用 passwd 命令检查用户帐户锁定状态。
使用 `passwd` 命令检查用户帐户锁定状态。
```
# passwd -S daygeek
or
# passwd --status daygeek
daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
```
将输出给定帐户密码状态的简短信息。
* **`LK:`**` ` 密码锁定
* **`NP:`**` ` 没有密码
* **`PS:`**` ` 密码设置
这将输出给定帐户密码状态的简短信息。
* `LK`:密码被锁定
* `NP`:没有设置密码
* `PS`:密码已设置
使用 `/etc/shadow` 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。
@ -74,7 +69,8 @@ daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
```
使用 `-u` 开关运行 passwd 命令,解锁给定的用户帐户。
使用 `-u` 开关运行 `passwd` 命令,可以解锁给定的用户帐户。
```
# passwd -u daygeek
@ -83,26 +79,25 @@ Unlocking password for user daygeek.
passwd: Success
```
### 方法2:如何使用 usermod 命令在 Linux 中锁定、解锁和检查给定用户帐户的状态?
### 方法2如何使用 usermod 命令在 Linux 中锁定、解锁和检查给定用户帐户的状态?
甚至usermod 命令也经常被 Linux 管理员使用
`usermod` 命令也经常被 Linux 管理员使用。`usermod` 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等
usermod 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。,
使用 `-L` 开关运行 usermod 命令,锁定给定的用户帐户。
使用 `-L` 开关运行 `usermod` 命令,锁定给定的用户帐户。
```
# usermod --lock daygeek
or
# usermod -L daygeek
```
你可以通过 passwd 命令或从 /etc/shadow 文件中获取给定用户名来检查锁定的帐户状态。
使用 passwd 命令检查用户帐户锁定状态。
你可以通过 `passwd` 命令或从 `/etc/shadow` 文件中获取给定用户名来检查锁定的帐户状态。
使用 `passwd` 命令检查用户帐户锁定状态。
```
# passwd -S daygeek
or
# passwd --status daygeek
daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
@ -110,11 +105,11 @@ daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
这将输出给定帐户密码状态的简短信息。
* **`LK:`**` ` Password locked
* **`NP:`**` ` No password
* **`PS:`**` ` Password set
* `LK`:密码被锁定
* `NP`:没有设置密码
* `PS`:密码已设置
使用 /etc/shadow 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。
使用 `/etc/shadow` 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。
```
# grep daygeek /etc/shadow
@ -122,29 +117,25 @@ daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
```
使用 `-U` 开关运行 usermod 命令以解锁给定的用户帐户。
使用 `-U` 开关运行 `usermod` 命令以解锁给定的用户帐户。
```
# usermod --unlock daygeek
or
# usermod -U daygeek
```
###方法-3:如何在 Linux 中使用 usermod 命令禁用、启用对给定用户帐户的 SSH 访问?
### 方法-3如何在 Linux 中使用 usermod 命令禁用、启用对给定用户帐户的 SSH 访问?
甚至usermod 命令也是经常被 Linux 管理员使用的命令。
`usermod` 命令也是经常被 Linux 管理员使用的命令。`usermod` 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。
usermod 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。,
或者,这可以通过将 `nologin` shell 分配给给定用户来完成。为此,可以运行以下命令。
替代的,锁定可以通过将 `nologin` shell 分配给给定用户来完成。为此,可以运行以下命令。
```
# usermod -s /sbin/nologin daygeek
```
You can check the locked user account details by greping the given user name from /etc/passwd file.
你可以通过从 /etc/passwd 文件中给定用户名来检查锁定的用户帐户详细信息。
你可以通过从 `/etc/passwd` 文件中给定用户名来检查锁定的用户帐户详细信息。
```
# grep daygeek /etc/passwd
@ -152,17 +143,15 @@ You can check the locked user account details by greping the given user name fro
daygeek:x:2240:2243::/home/daygeek:/sbin/nologin
```
我们可以通过分配回原来的 shell 来启用用户 ssh 访问。
我们可以通过分配回原来的 shell 来启用用户 ssh 访问。
```
# usermod -s /bin/bash daygeek
```
###如何使用 shell 脚本锁定、解锁和检查 Linux 中多个用户帐户的状态?
如果你想锁定/解锁多个帐户,那么你需要寻找脚本。
### 如何使用 shell 脚本锁定、解锁和检查 Linux 中多个用户帐户的状态?
如果你想锁定/解锁多个帐户,那么你需要找个脚本。
是的,我们可以编写一个小的 shell 脚本来执行这个操作。为此,请使用以下 shell 脚本。
@ -186,17 +175,17 @@ u5
#!/bin/bash
for user in `cat user-lists.txt`
do
passwd -l $user
passwd -l $user
done
```
将`user-lock.sh` 文件设置为可执行权限
`user-lock.sh` 文件设置为可执行权限。
```
# chmod + user-lock.sh
```
最后运行脚本来实现这一点
最后运行脚本来达成目标
```
# sh user-lock.sh
@ -221,7 +210,7 @@ passwd: Success
#!/bin/bash
for user in `cat user-lists.txt`
do
passwd -S $user
passwd -S $user
done
```
@ -231,7 +220,7 @@ done
# chmod + user-lock-status.sh
```
最后运行脚本来实现这一点
最后运行脚本来达成目标
```
# sh user-lock-status.sh
@ -243,7 +232,6 @@ u4 LK 2019-06-10 0 99999 7 -1 (Password locked.)
u5 LK 2019-06-10 0 99999 7 -1 (Password locked.)
```
使用下面的 shell 脚本来解锁多个用户。
```
@ -252,17 +240,17 @@ u5 LK 2019-06-10 0 99999 7 -1 (Password locked.)
#!/bin/bash
for user in `cat user-lists.txt`
do
passwd -u $user
passwd -u $user
done
```
设置 `user-unlock.sh` 可执行权限。
设置 `user-unlock.sh` 可执行权限。
```
# chmod + user-unlock.sh
```
最后运行脚本来实现这一点
最后运行脚本来达成目标
```
# sh user-unlock.sh
@ -279,7 +267,7 @@ Unlocking password for user u5.
passwd: Success
```
运行相同的 shell 脚本 `user-lock-status.sh` ,检查这些锁定的用户帐户在 Linux 中是否被解锁。
运行相同的 shell 脚本 `user-lock-status.sh`,检查这些锁定的用户帐户在 Linux 中是否被解锁。
```
# sh user-lock-status.sh
@ -290,6 +278,7 @@ u3 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
u4 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
u5 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
```
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/
@ -297,7 +286,7 @@ via: https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[heguangzhi](https://github.com/heguangzhi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,102 @@
[#]: collector: (lujun9972)
[#]: translator: (wahailin)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11039-1.html)
[#]: subject: (With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment)
[#]: via: (https://itsfoss.com/raspberry-pi-4/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
升级配置后,树莓派 4 瞄准了桌面市场
======
> 树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 4 GB并支持双 4k 显示。最新硬件配置下,你可以轻松将其作为桌面使用。起售价格依然和旧有型号一样,为 35 美元。
树莓派基金会已经发布了最新版的[树莓派 4B][1] 单板计算机。
在升级了几个重要特性后,树莓派 4 成为了 40 美元以下的[单板计算机][2]市场中最强大的产品。
![Raspberry Pi 4][3]
### 树莓派 4 的新特性
树莓派 4 开始支持双 4k 显示器设置 —— 如果你对此有所需求的话。除此外,它还配备了更强大的处理器,其搭载的 RAM 最高可达 4 GB这几乎可以媲美一个中端的便携电脑。
本次配置升级使树莓派可以参与[迷你 Linux 机][4]市场的竞争,而依旧 35 美元的起始售价使其比[其它单板计算机][2]更具优势。
树莓派 4 发布不久,各大主要的在线商店就几乎销售一空。那么,我们来看看它有哪些新卖点吧。
#### 树莓派 4 的核心配置
![Raspberry Pi 4 Tech Specs][5]
* 博通 BCM27111.5 GHz 64 位 4 核心 Cortex-A72ARM v8
* 顶配 4 GB RAM可选 RAM 配置为 1 GB2 GB 和 4 GB
* 无线网络和蓝牙 5.0
* 两个 USB 3.0 接口,两个 USB 2.0 接口
* 40 针 GPIO 引脚(向前兼容)
* 两个 Micro-HDMI 接口(支持 4k 显示)
* USB-C供电接口
* 千兆以太网
如果你想更深入的了解配置信息,可以参考树莓派网站的[官方技术规格][6]。
### 定价和可用性
树莓派 4 的板子起始售价为 35 美元根据可选配置不同1-4 GB售价也不同。
* 1 GB RAM 树莓派 4 售价35 美元
* 2 GB RAM 树莓派 4 售价45 美元
* 4 GB RAM 树莓派 4 售价55 美元
根据你所在国家或地区的不同,树莓派 4 有不同的供应商。现有库存即将售罄,如果你想购买一定尽快,否则就要再等上一段时日了,你还可以参考官方页面上的购买信息。
- [购买树莓派 4][1]
请注意,[运行树莓派需要额外的配件][7],这就是为什么官方提供了可选的基础套件,套件中包含了所有必需的支持配件。
#### 树莓派 4 桌面套件
![Raspberry Pi 4 Desktop Kit][9]
你可以在购买树莓派 4 时同时购买树莓派 4 的桌面套件外壳、键盘、鼠标、micro HDMI 线、USB-C 电源、用户指南以及[预装了 Rasbian 的 16 GB microSD 卡][10]。
![Raspberry Pi Branded Desktop Kit][11]
整组套件采用红白颜色设计,看起来很美观(如果你关心外观的话)。你可以在树莓派网站上获取更多的购买信息。
- [树莓派 4 桌面套件][12]
### 树莓派 4 的前景
拥有所有这些配置后,树莓派 4 无疑会成为同类产品中最好的之一。同样,相比购买入门级桌面计算机,购买树莓派 4 也会是更好的选择。你可以只花很便宜的价格,就能轻松访问文档、管理电子表格,以及完成更多其它操作。
我绝对会考虑购买树莓派 4 作为备用(但强大)的入门级桌面计算机,但不会配备 4k 显示器,但依据文档,树莓派 4 肯定是支持双 4k 显示设置的。
你怎么评价最新版的树莓派 4B? 欢迎在评论中说出你的想法。
--------------------------------------------------------------------------------
via: https://itsfoss.com/raspberry-pi-4/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[wahailin](https://github.com/wahailin)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
[2]: https://itsfoss.com/raspberry-pi-alternatives/
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4.jpeg?resize=800%2C449&ssl=1
[4]: https://itsfoss.com/linux-based-mini-pc/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-tech-specs.jpg?ssl=1
[6]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
[7]: https://itsfoss.com/things-you-need-to-get-your-raspberry-pi-working/
[8]: https://itsfoss.com/raspberry-pi-gets-ram-upgrade-in-the-same-price/
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-desktop-kit.jpg?resize=800%2C427&ssl=1
[10]: https://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-desktop-kit-official.jpg?ssl=1
[12]: https://www.raspberrypi.org/products/raspberry-pi-4-desktop-kit/

View File

@ -1,24 +1,26 @@
[#]: collector: (lujun9972)
[#]: translator: (chen-ni)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11040-1.html)
[#]: subject: (5 tiny Linux distros to try before you die)
[#]: via: (https://opensource.com/article/19/6/linux-distros-to-try)
[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/marcobravo)
5 个不容错过的微型 Linux 发行版
不容错过的 5 个微型 Linux 发行版
======
这些微型 Linux 发行版可以让你的老爷机复活、启动一个损坏的系统,或者是确保在公共电脑上进行安全的操作。
![Hand putting a Linux file folder into a drawer][1]
> 这些微型 Linux 发行版可以让你的老爷机复活,可以启动一个损坏的系统,或者是确保在公共电脑上进行安全的操作。
![](https://img.linux.net.cn/data/attachment/album/201907/01/123700uva8cagcqywwj8jv.jpg)
可供日常使用的 Linux 发行版比比皆是,不过其中有一些发行版常常被我们忽视,因为它们实在是太小了。但这些微型 Linux 发行版其实是一种非常强大的创新:使用一套完整的操作系统驱动一台只有不到 1 GB 存储空间和 512 MB 内存的计算机,真的是终极的黑客作风。
微型发行版的用法有很多种,比如说:
* 从垃圾桶边挽救回那些又老又慢的电脑。你可以继续使用那些本来已经计划报废的机器,直到它们彻底解体(而不是在刚开始感觉有点儿慢的时候就扔掉)。
* 使用 U盘 启动一个损坏的系统来恢复数据或者修复启动分区。
* 确保在安全和隐私的操作环境下使用公共电脑。如果使用 U 启动酒店大厅或者图书馆里的一台公共电脑,你是可以确定操作环境是安全的。
* 使用 U盘启动一个损坏的系统来恢复数据或者修复启动分区。
* 确保在安全和隐私的操作环境下使用公共电脑。如果使用 U 启动酒店大厅或者图书馆里的一台公共电脑,你是可以确定操作环境是安全的。
轻量级发行版有很多种,比如说 [Lubuntu][2]、[Peppermint OS][3] 和 [Bodhi][4],但是那些真正微型的发行版又有一些独到之处。下面就是你不容错过的五个微型发行版:
@ -28,21 +30,21 @@
[Tiny Core Linux][6] 小得近乎不可思议:终端版本只有 11 MB图形界面版本只有 16 MB。我翻了一下之前收集的旧 U盘最小的一个是 128 MB 的,也有 Tiny Core 镜像文件的八倍之大呢。
Tiny Core 默认包括只包括了基操作系统,你需要通过以太网下载需要的应用程序。由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。
Tiny Core 默认包括只包括了基本的操作系统,你需要通过以太网下载需要的应用程序。由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。
我使用过一个 128 MB 的 U盘 在一台只有 512 MB 内存的机器上运行了 Tiny Core对于一个只有 16 MB 的操作系统来说,效果算是非常棒了。只有在使用网页浏览器的时候速度才会变慢,但这主要是由于大部分现代网站太过复杂,而不是 Tiny Core 的问题。
我使用过一个 128 MB 的 U盘在一台只有 512 MB 内存的机器上运行了 Tiny Core对于一个只有 16 MB 的操作系统来说,效果算是非常棒了。只有在使用网页浏览器的时候速度才会变慢,但这主要是由于大部分现代网站太过复杂,而不是 Tiny Core 的问题。
如果不使用图形界面,运行 Tiny Core 就只需要 64 MB 的内存了。
#### 安装
[下载 Tiny Core][7] 并使用 **dd** 或者 [Etcher][8] 写入 U盘。
[下载 Tiny Core][7] 并使用 `dd` 或者 [Etcher][8] 写入 U盘。
你只需要点击屏幕底部启动栏上的 **Apps** 图标下载 **tc-install** 或者 **tc-install-GUI** 应用,就可以轻松安装 Tiny Core了。
![Tiny Core installer][9]
安装 Tiny Core 有几种不同的方式。你可以把它安装在一个格式化为 Linux 驱动的 U盘 里(这要求你的电脑支持使用 USB 驱动启动。大多数现代电脑都支持,但是在老一些的电脑上不太常见),或者安装在微软 FAT 文件系统的 U 里(这对于大多数不支持从 USB 驱动启动的电脑来说非常管用),或者甚至安装在一个现有 Linux 分区的一个文件夹里。
安装 Tiny Core 有几种不同的方式。你可以把它安装在一个格式化为 Linux 驱动的 U盘里这要求你的电脑支持使用 USB 驱动启动。大多数现代电脑都支持,但是在老一些的电脑上不太常见),或者安装在微软 FAT 文件系统的 U 里(这对于大多数不支持从 USB 驱动启动的电脑来说非常管用),或者甚至安装在一个现有 Linux 分区的一个文件夹里。
安装过程非常快,完成之后就可以重启计算机,进入到 Tiny Core Linux 系统中啦。
@ -76,9 +78,9 @@ Tiny Core 非常适合性能不佳的老爷机、用来通过网络启动的镜
如果你挑花了眼,只想赶紧选择一个版本尝试一下的话,那就 [下载滚动发布版本吧][14]。这个版本有差不多 50 MB 大小,每周都会更新。如果你爱上了 SliTaz而滚动发布版本又更新得 *过快* 了的话,可以再选择一个更符合你需求的版本。
下载好你选择的 SliTaz 镜像文件之后,你就可以用 **dd** 或者 [Etcher][8] 将它写入 U盘,然后重启。
下载好你选择的 SliTaz 镜像文件之后,你就可以用 `dd` 或者 [Etcher][8] 将它写入 U 盘,然后重启。
将 SliTaz 安装在 U 或者硬盘上需要通过 **TazPanel** 这个应用程序来实现。它会引导你对硬盘进行需要的分区,然后将 SliTaz 安装在你选择的地方。
将 SliTaz 安装在 U 或者硬盘上需要通过 **TazPanel** 这个应用程序来实现。它会引导你对硬盘进行需要的分区,然后将 SliTaz 安装在你选择的地方。
![SliTaz installer][15]
@ -88,16 +90,16 @@ SliTaz 的控制中心是 **TazPanel** 这个应用程序。如果你喜欢 Open
SliTaz 提供的应用程序可以满足大多数基本需求,如果你不是非常在意完成某一项任务必须使用哪一个应用程序的话,那么在 SliTaz 的软件仓库里应该可以找到你想要的应用。如果你有一些特别的需求(比如说想要使用 GIMP 2.10 而不是 GIMP 2.8),那么就需要学习如何生成 SliTaz 软件包了。好消息是,**tazpkg** 命令支持从好几种软件包格式转换过来,包括:
* Debian 软件包 (.deb, .udeb)
* RPM 软件包 (.rpm)
* Slackware 软件包 (.tgz)
* Puppy 软件包 (.sfs, .pet)
* NuTyX 软件包 (.cards.tar.xz)
* Arch 和 Alpine Linux 软件包 (.apk, .pkg.tar.gz, .pkg.tar.xz)
* OpenWrt 软件包 (.ipk, .opk)
* Paldo 软件包 (.tar.bz2)
* Void 软件包 (.xbps)
* Tiny Core 软件包 (.tce, .tcel, .tcem, .tcz)
* Debian 软件包.deb.udeb
* RPM 软件包.rpm
* Slackware 软件包.tgz
* Puppy 软件包.sfs.pet
* NuTyX 软件包.cards.tar.xz
* Arch 和 Alpine Linux 软件包.apk.pkg.tar.gz.pkg.tar.xz
* OpenWrt 软件包.ipk.opk
* Paldo 软件包.tar.bz2
* Void 软件包.xbps
* Tiny Core 软件包.tce.tcel.tcem .tcz
#### 结论
@ -117,7 +119,7 @@ Porteus 的基础镜像文件相对来说比较小,因此被称为是“微型
![Porteus installer][19]
你可以根据 [官方的安装指南][20] 将 Porteus 安装到一个 U盘 或者是内部硬盘里。这两种方式非常相似,都会使用一个不能被改变的压缩根文件系统。这是一种稳定的、受限制的文件系统,会根据你的使用被修改。你所做的变更和安装的应用程序在重启的时候都会被加载到内存里,从而还原你关机前的使用环境。
你可以根据 [官方的安装指南][20] 将 Porteus 安装到一个 U盘 或者是内部硬盘里。这两种方式非常相似,都会使用一个不变的压缩根文件系统。这是一种稳定的、受限制的文件系统,会根据你的使用被修改。你所做的变更和安装的应用程序在重启的时候都会被加载到内存里,从而还原你关机前的使用环境。
#### 应用程序
@ -137,7 +139,7 @@ Porteus 可以提供完整的 Linux 使用体验,却只使用了正常 Linux
#### 安装
[下载 Bodhi Linux][24],通过 **dd** 或者 [Etcher][8] 写入 U盘然后重启。
[下载 Bodhi Linux][24],通过 `dd` 或者 [Etcher][8] 写入 U盘然后重启。
Bodhi 安装器可以在 **设置** 页面的 **应用程序** 菜单里找到。安装程序用的是 **Ubiquity**,所以整个过程和安装 Ubuntu 是一样的。如果你没有安装过 Ubuntu 也不必担心,因为这是最好安装的发行版之一了。
@ -159,17 +161,17 @@ Bodhi Linux 相比一个标准的 Ubuntu 来说要小不少,但是相比其它
为了保证正常运行Puppy 会在第一次启动之后引导用户完成必要的设置步骤。整个过程涉及很多个窗口,但是一旦完成,你就会对一切功能了如指掌,然后再决定是否需要安装。
Puppy 几乎 300 MB 大小,并且在我测试的 1 GB 内存的机器上并不能正常运行,所以它并不是一个特别微型的 Linux 发行版。尽管如此,它仍然是一个非常棒的 1 GB 以下的操作系统,并且在该类系统里算是非常友好的一个。
Puppy 几乎 300 MB 大小,并且在我测试的 1 GB 内存的机器上并不能正常运行,所以它并不是一个特别微型的 Linux 发行版。尽管如此,它仍然是一个非常棒的 1 GB 以下的操作系统,并且在该类系统里算是非常友好的一个。
#### 安装
[下载 Puppy Linux][29],然后通过 **dd** or [Etcher][8] 写入 U盘,或者是刻录到 CD 或者 DVD 里,然后重启。
[下载 Puppy Linux][29],然后通过 `dd` 或 [Etcher][8] 写入 U 盘,或者是刻录到 CD 或者 DVD 里,然后重启。
![Puppy installer][30]
Puppy 几乎可以安装在支持任何一种数据格式的载体上。你可以在顶部启动栏里找到 **Puppy Installer** 安装程序,这个程序负责安装 Puppy 以及 Puppy 的应用程序。
Puppy 安装器会一步步引导你将系统安装在你提供的任何一种媒介上。Puppy 可以从 U盘、光盘、硬盘或者甚至是 SD 卡上启动。我曾经在一台没有硬盘、光驱出了故障,并且也无法从 USB 启动的计算机上成功运行了 Puppy。由于 Puppy 支持在任何载体上写入你的配置选项,我甚至可以在一个拥有永久数据存储的外部设备上使用它。
Puppy 安装器会一步步引导你将系统安装在你提供的任何一种媒介上。Puppy 可以从 U盘、光盘、硬盘或者甚至是 SD 卡上启动。我曾经在一台没有硬盘、光驱出了故障,并且也无法从 USB 启动的计算机上成功运行了 Puppy。由于 Puppy 支持在任何载体上写入你的配置选项,我甚至可以在一个拥有长期数据存储的外部设备上使用它。
#### 应用程序
@ -183,7 +185,7 @@ Puppy 是最早的微型 Linux。尽管它已经不是最微型的了却是
![SilverBlue, not tiny, but tiny-adjacent][32]
微型 Linux 这个概念是随着时间不断变化的。很久以前,微型 Linux 发行版意味着需要下载到 CD-R 里,从光驱启动,然后将修改写入外部媒介中。后来,你可以从 U 启动它,并且有专门用来记录永久修改的空间。现在的微型 Linux 不仅支持上面两种方法,还可以被直接安装在内部驱动或者文件夹里。
微型 Linux 这个概念是随着时间不断变化的。很久以前,微型 Linux 发行版意味着需要下载到 CD-R 里,从光驱启动,然后将修改写入外部媒介中。后来,你可以从 U 启动它,并且有专门用来记录永久修改的空间。现在的微型 Linux 不仅支持上面两种方法,还可以被直接安装在内部驱动或者文件夹里。
大家都没有想到 Linux 开创了容器的热潮 —— 容器里应用程序是在半虚拟化的环境中运行的一套独立的 Linux 系统。曾经只是属于喜欢优化硬盘空间或者重新利用老爷机的人们的小众爱好,很快成为了那些想要开发容器但又不想在应用程序上添加太多负载的人的强烈需求。那些在极简化的、不起眼的 Linux 发行版上所付出的辛苦,一夜之间以一种意想不到的方式得到了回报。
@ -193,7 +195,7 @@ Puppy 是最早的微型 Linux。尽管它已经不是最微型的了却是
#### 安装
[下载 Silverblue][34],然后通过 **dd** or [Etcher][8] 写入 U盘,或者是刻录到 CD 或者 DVD 里,然后重启。
[下载 Silverblue][34],然后通过 `dd` 琥或 [Etcher][8] 写入 U 盘,或者是刻录到 CD 或者 DVD 里,然后重启。
启动到 Silverblue 之后,使用 [Anaconda][35](标准的、友好的 Fedora 安装器)将它安装在一个内部硬盘里。
@ -201,9 +203,9 @@ Puppy 是最早的微型 Linux。尽管它已经不是最微型的了却是
#### 应用程序
Silverblue 安装应用的方式和传统意义上不同:它是在基础操作系统之上运行容器。具体来说,它使用 Flatpaks 运行 GUI 应用程序,使用 [Toolbox][37] 运行命令。
Silverblue 安装应用的方式和传统意义上不同:它是在基础操作系统之上运行容器。具体来说,它使用 Flatpak 运行 GUI 应用程序,使用 [Toolbox][37] 运行命令。
由于 Flatpaks 并非像传统的 Fedora RPM 软件包一样常见Silverblue 也提供了一种可以将 Fedora RPM 软件包转换成 Silverblue 形式的方法:**package layering**。
由于 Flatpak 并非像传统的 Fedora RPM 软件包一样常见Silverblue 也提供了一种可以将 Fedora RPM 软件包转换成 Silverblue 形式的方法:**软件包分层**。
#### 结论
@ -217,7 +219,7 @@ via: https://opensource.com/article/19/6/linux-distros-to-try
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[chen-ni](https://github.com/chen-ni)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,106 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (hopefully2333)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Cisco to buy IoT security, management firm Sentryo)
[#]: via: (https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html)
[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
Cisco to buy IoT security, management firm Sentryo
======
Buying Sentryo will give Cisco support for anomaly and real-time threat detection for the industrial internet of things.
![IDG Worldwide][1]
Looking to expand its IoT security and management offerings Cisco plans to acquire [Sentryo][2], a company based in France that offers anomaly detection and real-time threat detection for Industrial Internet of Things ([IIoT][3]) networks.
Founded in 2014 Sentryo products include ICS CyberVision an asset inventory, network monitoring and threat intelligence platform and CyberVision network edge sensors, which analyze network flows.
**More on IoT:**
* [What is the IoT? How the internet of things works][4]
* [What is edge computing and how its changing the network][5]
* [Most powerful Internet of Things companies][6]
* [10 Hot IoT startups to watch][7]
* [The 6 ways to make money in IoT][8]
* [What is digital twin technology? [and why it matters]][9]
* [Blockchain, service-centric networking key to IoT success][10]
* [Getting grounded in IoT networking and security][11]
* [Building IoT-ready networks must become a priority][12]
* [What is the Industrial IoT? [And why the stakes are so high]][13]
“We have incorporated Sentryos edge sensor and our industrial networking hardware with Ciscos IOx application framework,” wrote Rob Salvagno, Cisco vice president of Corporate Development and Cisco Investments in a [blog][14] about the proposed buy.
“We believe that connectivity is foundational to IoT projects and by unleashing the power of the network we can dramatically improve operational efficiencies and uncover new business opportunities. With the addition of Sentryo, Cisco can offer control systems engineers deeper visibility into assets to optimize, detect anomalies and secure their networks.”
Gartner [wrote][15] of Sentryos system: “ICS CyberVision product provides visibility into its customers'' OT networks in way all OT users will understand, not just technical IT staff. With the increased focus of both hackers and regulators on industrial control systems, it is vital to have the right visibility of an organizations OT. Many OT networks not only are geographically dispersed, but also are complex and consist of hundreds of thousands of components.”
Sentryo's ICS CyberVision lets enterprises ensure continuity, resilience and safety of their industrial operations while preventing possible cyberattacks, said [Nandini Natarajan][16] , industry analyst at Frost & Sullivan. "It automatically profiles assets and communication flows using a unique 'universal OT language' in the form of tags, which describe in plain text what each asset is doing. ICS CyberVision gives anyone immediate insights into an asset's role and behaviors; it offers many different analytic views leveraging artificial intelligence algorithms to let users deep-dive into the vast amount of data a typical industrial control system can generate. Sentryo makes it easy to see important or relevant information."
In addition, Sentryo's platform uses deep packet inspection (DPI) to extract information from communications among industrial assets, Natarajan said. This DPI engine is deployed through an edge-computing architecture that can run either on Sentryo sensor appliances or on network equipment that is already installed. Thus, Sentryo can embed visibility and cybersecurity features in the industrial network rather than deploying an out-of-band monitoring network, Natarajan said.
**[[Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][17] ]**
Sentryos technology will broaden [Ciscos][18] overarching IoT plan. In January it [launched][19] a family of switches, software, developer tools and blueprints to meld IoT and industrial networking with [intent-based networking][20] (IBN) and classic IT security, monitoring and application-development support.
The new platforms can be managed by Ciscos DNA Center, and Cisco IoT Field Network Director, letting customers fuse their IoT and industrial-network control with their business IT world.
DNA Center is Ciscos central management tool for enterprise networks, featuring automation capabilities, assurance setting, fabric provisioning and policy-based segmentation. It is also at the center of the companys IBN initiative offering customers the ability to automatically implement network and policy changes on the fly and ensure data delivery. The IoT Field Network Director is software that manages multiservice networks of Cisco industrial, connected grid routers and endpoints.
Liz Centoni, senior vice president and general manager of Cisco's IoT business group said the company expects the [Sentryo technology to help][21] IoT customers in a number of ways:
Network-enabled, passive DPI capabilities to discover IoT and OT assets, and establish communication patterns between devices and systems. Sentryos sensor is natively deployable on Ciscos IOx framework and can be built into the industrial network these devices run on instead of adding additional hardware.
As device identification and communication patterns are created, Cisco will integrate this with DNA Center and Identity Services Engine(ISE) to allow customers to easily define segmentation policy. This integration will allow OT teams to leverage IT security teams expertise to secure their environments without risk to the operational processes.
With these IoT devices lacking modern embedded software and security capabilities, segmentation will be the key technology to allow communication from operational assets to the rightful systems, and reduce risk of cyber security incidents like we saw with [WannaCry][22] and [Norsk Hydro][23].
According to [Crunchbase][24], Sentryo has $3.5M in estimated revenue annually and it competes most closely with Cymmetria, Team8, and Indegy. The acquisition is expected to close before the end of Ciscos Q1 Fiscal Year 2020 -- October 26, 2019. Financial details of the acquisition were not detailed.
Sentryo is Ciscos second acquisition this year. It bought Singularity for its network analytics technology in January. In 2018 Cisco bought six companies including Duo security software.
** **
Join the Network World communities on [Facebook][25] and [LinkedIn][26] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html
作者:[Michael Cooney][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Michael-Cooney/
[b]: https://github.com/lujun9972
[1]: https://images.idgesg.net/images/article/2018/09/nwan_019_iiot-100771131-large.jpg
[2]: https://www.sentryo.net/
[3]: https://www.networkworld.com/article/3243928/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
[4]: https://www.networkworld.com/article/3207535/internet-of-things/what-is-the-iot-how-the-internet-of-things-works.html
[5]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
[6]: https://www.networkworld.com/article/2287045/internet-of-things/wireless-153629-10-most-powerful-internet-of-things-companies.html
[7]: https://www.networkworld.com/article/3270961/internet-of-things/10-hot-iot-startups-to-watch.html
[8]: https://www.networkworld.com/article/3279346/internet-of-things/the-6-ways-to-make-money-in-iot.html
[9]: https://www.networkworld.com/article/3280225/internet-of-things/what-is-digital-twin-technology-and-why-it-matters.html
[10]: https://www.networkworld.com/article/3276313/internet-of-things/blockchain-service-centric-networking-key-to-iot-success.html
[11]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html
[12]: https://www.networkworld.com/article/3276304/internet-of-things/building-iot-ready-networks-must-become-a-priority.html
[13]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
[14]: https://blogs.cisco.com/news/cisco-industrial-iot-news
[15]: https://www.globenewswire.com/news-release/2018/06/28/1531119/0/en/Sentryo-Named-a-Cool-Vendor-by-Gartner.html
[16]: https://www.linkedin.com/pulse/industrial-internet-things-iiot-decoded-nandini-natarajan/
[17]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
[18]: https://www.cisco.com/c/dam/en_us/solutions/iot/ihs-report.pdf
[19]: https://www.networkworld.com/article/3336454/cisco-goes-after-industrial-iot.html
[20]: https://www.networkworld.com/article/3202699/what-is-intent-based-networking.html
[21]: https://blogs.cisco.com/news/securing-the-internet-of-things-cisco-announces-intent-to-acquire-sentryo
[22]: https://blogs.cisco.com/security/talos/wannacry
[23]: https://www.securityweek.com/norsk-hydro-may-have-lost-40m-first-week-after-cyberattack
[24]: https://www.crunchbase.com/organization/sentryo#section-web-traffic-by-similarweb
[25]: https://www.facebook.com/NetworkWorld/
[26]: https://www.linkedin.com/company/network-world

View File

@ -1,88 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (BitTorrent Client Deluge 2.0 Released: Heres Whats New)
[#]: via: (https://itsfoss.com/deluge-2-release/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
BitTorrent Client Deluge 2.0 Released: Heres Whats New
======
You probably already know that [Deluge][1] is one of the [best Torrent clients available for Linux users][2]. However, the last stable release was almost two years back.
Even though it was in active development, a major stable release wasnt there until recently. The latest version while we write this happens to be 2.0.2. So, if you havent downloaded the latest stable version do try it out.
In either case, if youre curious, let us talk about whats new.
![Deluge][3]
### Major improvements in Deluge 2.0
The new release introduces multi-user support which was a much needed addition.
In addition to that, there has been several performance improvements to handle more torrents with faster loading times.
Also, with version 2.0, Deluge used Python 3 with minimal support for Python 2.7. Even for the user interface, they migrated from GTK UI to GTK3.
As per the release notes, there are several more significant additions/improvements, which include:
* Multi-user support.
* Performance updates to handle thousands of torrents with faster loading times.
* A New Console UI which emulates GTK/Web UIs.
* GTK UI migrated to GTK3 with UI improvements and additions.
* Magnet pre-fetching to allow file selection when adding torrent.
* Fully support libtorrent 1.2 release.
* Language switching support.
* Improved documentation hosted on ReadTheDocs.
* AutoAdd plugin replaces built-in functionality.
### How to install or upgrade to Deluge 2.0
![][4]
You should follow the official [installation guide][5] (using PPA or PyPi) for any Linux distro. However, if you are upgrading, you should go through the note mentioned in the release note:
“_Deluge 2.0 is not compatible with Deluge 1.x clients or daemons so these will require upgrading too._ _Also_ _third-party Python scripts may not be compatible if they directly connect to the Deluge client and will need migrating._
So, they insist to always make a backup of your [config][6] before a major version upgrade to guard against data loss.
[][7]
Suggested read  Ubuntu's Snap Apps Website Gets Much Needed Improvements
And, if you are an author of a plugin, you need to upgrade it make it compatible with the new release.
Direct download app packages not yet available for Windows and Mac OS. However, the release note mentions that they are being worked on.
As an alternative, you can install them manually by following the [installation guide][5] in the updated official documentation.
**Wrapping Up**
What do you think about the latest stable release? Do you utilize Deluge as your BitTorrent client? Or do you find something else as a better alternative?
Let us know your thoughts in the comments below.
--------------------------------------------------------------------------------
via: https://itsfoss.com/deluge-2-release/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://dev.deluge-torrent.org/
[2]: https://itsfoss.com/best-torrent-ubuntu/
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/deluge.jpg?fit=800%2C410&ssl=1
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/Deluge-2-release.png?resize=800%2C450&ssl=1
[5]: https://deluge.readthedocs.io/en/latest/intro/01-install.html
[6]: https://dev.deluge-torrent.org/wiki/Faq#WheredoesDelugestoreitssettingsconfig
[7]: https://itsfoss.com/snap-store/

View File

@ -1,92 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (wahailin)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Raspberry Pi 4 is here!)
[#]: via: (https://opensource.com/article/19/6/raspberry-pi-4)
[#]: author: (Ben Nuttall https://opensource.com/users/bennuttall)
Raspberry Pi 4 is here!
======
A new version of the $35 computer features a 1.5GHz Arm chip and support
for dual-HDMI 4K displays, Gigabit Ethernet, and much more.
![Raspberry Pi 4 board][1]
The latest version of the Raspberry Pi—Raspberry Pi 4—was released today, earlier than anticipated, featuring a new 1.5GHz Arm chip and VideoCore GPU with some brand new additions: dual-HDMI 4K display output; USB3 ports; Gigabit Ethernet; and multiple RAM options up to 4GB.
![Raspberry Pi 4 case][2]
The Raspberry Pi 4 is a very powerful single-board computer and starts at the usual price of $35. That gets you the standard 1GB RAM, or you can pay $45 for the 2GB model or $55 for the 4GB model—premium-priced models are a first for Raspberry Pi.
The specs at-a-glance:
* 64-bit BCM2711 quad-core A72 CPU @ 1.5GHz
* VideoCore VI GPU
* Gigabit Ethernet port
* 1GB, 2GB, or 4GB LPDDR4 RAM
* Two Micro-HDMI ports
* Two USB3 ports
* Two USB2 ports
* Dual-band (2.4GHz and 5GHz) WiFi
* Bluetooth 5.0
* USB Type C power port
* CSI camera interface
* DSI display interface
* MicroSD card slot
* Power-over-Ethernet pins
* Full compatibility with all previous Raspberry Pi models
### USB and networking
The Raspberry Pi 4 has the benefit of having USB3; it's powered by a USB Type C cable and provides two USB3 ports and two USB2 ports. You can now connect USB3 hard drives and other peripherals and get faster connectivity.
![Raspberry Pi 4 USBs][3]
The BCM2835-based chip in Raspberry Pi 1 to 3 provided just one native USB port and no Ethernet, so a USB hub on the board provided more USB ports and an Ethernet port. The 3B+ added a dedicated LAN chip, which gave it Gigabit Ethernet, but this was limited to USB2 speeds. The Pi 4 has dedicated Gigabit Ethernet, and because it's no longer throttled over USB, its networking speeds are much faster.
The Pi 4 takes advantage of the technology built into the 3B+ that made it the first single-board computer with dual-band WiFi. This means you can connect to both 2.4GHz and 5GHz networks.
### Displays
When the first Raspberry Pi launched, the balance of its CPU and GPU performance was tipped heavily in favor of the GPU. The VideoCore IV was a very powerful graphics processor, capable of full-HD 1080p multimedia, which is why the Pi has always been popular as a home media center. The Pi 2 rebalanced things somewhat and brought the CPU in line, taking the Pi from a single-core to a quad-core Arm chip. The Pi 4 takes both factors a big step forward. The new VideoCore VI GPU gives the Pi 4K video and allows two displays via the board's two Micro-HDMI ports (selected to keep the board the same size), so you'll need an adapter or a Micro-to-full HDMI cable to use an HDMI monitor.
Dual displays are a godsend when you need more screen real estate to keep eye contact with multiple windows—if you're programming you might have your code on one screen and the website or app you're building; your database; your web browser; your emails, or anything else on the other. For the first time, development on Raspberry Pi won't be limited to a single monitor. It's also handy if you want to build a Pi-based project with different things on different screens.
The Pi also has a Display Serial Interface (DSI) port to drive another special display—not another monitor per se, but the official Raspberry Pi touch screen display connected via a flex cable.
### Raspbian Buster
This Raspberry Pi 4's launch coincides with a major Debian release, and the fact the new Pi supports OpenGL ES 3 means it makes sense for any software developed for the Pi 4 to target Raspbian Buster. Buster brings a few user interface tweaks and a whole host of software upgrades, including Python 3.7.
![Raspbian Buster][4]
### Open source graphics drivers
Over the last five years, Eric Anholt has been working to write open source graphics drivers for the Raspberry Pi. Now, Raspbian can use this driver to deliver accelerated web browsing, desktop graphics, and 3D applications on the Pi. This replaces a large chunk of closed-source code that was previously required. Huge thanks to Eric and Broadcom for this effort.
Previously, the Raspberry Pi 4 was expected to be yet another year away, but the chip design turned out to be ready for production much earlier than anticipated, so here it is!
* * *
_The Raspberry Pi 4 is on sale now. Which model will you opt for? Let us know your plans in the comments!_
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/raspberry-pi-4
作者:[Ben Nuttall][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/bennuttall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/raspberry-pi-4_lead.jpg?itok=2bkk43om (Raspberry Pi 4 board)
[2]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-case.jpg (Raspberry Pi 4 case)
[3]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-usb.jpg (Raspberry Pi 4 USBs)
[4]: https://opensource.com/sites/default/files/uploads/raspbian-buster.png (Raspbian Buster)

View File

@ -1,102 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (GraveAccent)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (5G will augment Wi-Fi, not replace it)
[#]: via: (https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html)
[#]: author: (Zeus Kerravala https://www.networkworld.com/author/Zeus-Kerravala/)
5G will augment Wi-Fi, not replace it
======
Jeff Lipton, vice president of strategy and corporate development at Aruba, adds a dose of reality to the 5G hype, discussing how it and Wi-Fi will work together and how to maximize the value of both.
![Thinkstock][1]
Theres arguably no technology topic thats currently hotter than [5G][2]. It was a major theme of the most recent [Mobile World Congress][3] show and has reared its head in other events such as Enterprise Connect and almost every vendor event I attend.
Some vendors have positioned 5G as a panacea to all network problems and predict it will eradicate all other forms of networking. Views like that are obviously extreme, but I do believe that 5G will have an impact on the networking industry and is something that network engineers should be aware of.
To help bring some realism to the 5G hype, I recently interviewed Jeff Lipton, vice president of strategy and corporate development at Aruba, a Hewlett Packard company, as I know HPE has been deeply involved in the evolution of both 5G and Wi-Fi.
**[ Also read:[The time of 5G is almost here][3] ]**
### Zeus Kerravala: 5G is being touted as the "next big thing." Do you see it that way?
**Jeff Lipton:** The next big thing is connecting "things" and generating actionable insights and context from those things. 5G is one of the technologies that serve this trend. Wi-Fi 6 is another — so are edge compute, Bluetooth Low Energy (BLE), artificial intelligence (AI) and machine learning (ML). These all are important, and they each have a place.
### Do you see 5G eclipsing Wi-Fi in the enterprise?
![Jeff Lipton, VP of strategy and corporate development, Aruba][4]
**Lipton:** No. 5G, like all cellular access, is appropriate if you need macro area coverage and high-speed handoffs. But its not ideal for most enterprise applications, where you generally dont need these capabilities. From a performance standpoint, [Wi-Fi 6][5] and 5G are roughly equal on most metrics, including throughput, latency, reliability, and connection density. Where they arent close is economics, where Wi-Fi is far better. I dont think many customers would be willing to trade Wi-Fi for 5G unless they need macro coverage or high-speed handoffs.
### Can Wi-Fi and 5G coexist? How would an enterprise use 5G and Wi-Fi together?
**Lipton:** Wi-Fi and 5G can and should be complementary. The 5G architecture decouples the cellular core and Radio Access Network (RAN). Consequently, Wi-Fi can be the enterprise radio front end and connect tightly with a 5G core. Since the economics of Wi-Fi — especially Wi-Fi 6 — are favorable and performance is extremely good, we envision many service providers using Wi-Fi as the radio front end for their 5G systems where it makes sense, as an alternative to Distributed Antenna (DAS) and small-cell systems.
Wi-Fi and 5G can and should be complementary." — Jeff Lipton
### If a business were considering moving to 5G only, how would this be done and how practical is it?
**Lipton:** To use 5G for primary in-building access, a customer would need to upgrade their network and virtually all of their devices. 5G provides good coverage outdoors, but cellular signals cant reliably penetrate buildings. And this problem will become worse with 5G, which partially relies on higher frequency radios. So service providers will need a way to provide indoor coverage. To provide this coverage, they propose deploying DAS or small-cell systems — paid for by the end customer. The customers would then connect their devices directly to these cellular systems and pay a service component for each device.
**[[Take this mobile device management course from PluralSight and learn how to secure devices in your company without degrading the user experience.][6] ]**
There are several problems with this approach. First, DAS and small-cell systems are significantly more expensive than Wi-Fi networks. And the cost doesnt stop with the network. Every device would need to have a 5G cellular modem, which costs tens of dollars wholesale and usually over a hundred dollars to an end user. Since few, if any MacBooks, PCs, printers or AppleTVs today have 5G modems, these devices would need to be upgraded. I dont believe many enterprises would be willing to pay this additional cost and upgrade most of their equipment for an unclear benefit.
### Are economics a factor in the 5G versus Wi-Fi debate?
**Lipton:** Economics is always a factor. Lets focus the conversation on in-building enterprise applications, since this is the use case some carriers intend to target with 5G. Weve already mentioned that upgrading to 5G would require enterprises to deploy expensive DAS or small-cell systems for in-building coverage, upgrade virtually all of their equipment to contain 5G modems, and pay service contracts for each of these devices. Its also important to understand 5G cellular networks and DAS systems operate over licensed spectrum, which is analogous to a private highway. Service providers paid billions of dollars for this spectrum, and this expense needs to be monetized and embedded in service costs. So, from both deployment and lifecycle perspectives, Wi-Fi economics are favorable to 5G.
### Are there any security implications of 5G versus Wi-Fi?
**Lipton:** Cellular technologies are perceived by some to be more secure than Wi-Fi, but thats not true. LTE is relatively secure, but it also has weak points. For example, LTE is vulnerable to a range of attacks, including data interception and device tracking, according to researchers at Purdue and the University of Iowa. 5G improves upon LTE security with multiple authentication methods and better key management.
Wi-Fi security isnt standing still either and continues to advance. Of course, Wi-Fi implementations that do not follow best practices, such as those without even basic password protection, are not optimal. But those configured with proper access controls and passwords are highly secure. With new standards — specifically, WPA3 and Enhanced Open — Wi-Fi network security has improved even further.
Its also important to keep in mind that enterprises have made enormous investments in security and compliance solutions tailored to their specific needs. With cellular networks, including 5G, enterprises lose the ability to deploy their chosen security and compliance solutions, as well as most visibility into traffic flows. While future versions of 5G will offer high-levels of customization with a feature called network slicing, enterprises would still lose the level of security and compliance customization they currently need and have.
### Any parting thoughts to add to the discussion around 5G versus Wi-Fi?
**Lipton:** The debate around Wi-Fi versus 5G misses the point. They each have their place, and they are in many ways complementary. The Wi-Fi and 5G markets both will grow, driven by the need to connect and analyze a growing number of things. If a customer needs macro coverage or high-speed handoffs and can pay the additional cost for these capabilities, 5G makes sense.
5G also could be a fit for certain industrial use cases where customers require physical network segmentation. But for the vast majority of enterprise customers, Wi-Fi will continue to prove its value as a reliable, secure, and cost-effective wireless access technology, as it does today.
**More about 802.11ax (Wi-Fi 6):**
* [Why 802.11ax is the next big thing in wireless][7]
* [FAQ: 802.11ax Wi-Fi][8]
* [Wi-Fi 6 (802.11ax) is coming to a router near you][9]
* [Wi-Fi 6 with OFDMA opens a world of new wireless possibilities][10]
* [802.11ax preview: Access points and routers that support Wi-Fi 6 are on tap][11]
Join the Network World communities on [Facebook][12] and [LinkedIn][13] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html
作者:[Zeus Kerravala][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Zeus-Kerravala/
[b]: https://github.com/lujun9972
[1]: https://images.idgesg.net/images/article/2019/05/wireless_connection_speed_connectivity_bars_cell_tower_5g_by_thinkstock-100796921-large.jpg
[2]: https://www.networkworld.com/article/3203489/what-is-5g-how-is-it-better-than-4g.html
[3]: https://www.networkworld.com/article/3354477/mobile-world-congress-the-time-of-5g-is-almost-here.html
[4]: https://images.idgesg.net/images/article/2019/06/headshot_jlipton_aruba-100798360-small.jpg
[5]: https://www.networkworld.com/article/3215907/why-80211ax-is-the-next-big-thing-in-wi-fi.html
[6]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Fmobile-device-management-big-picture
[7]: https://www.networkworld.com/article/3215907/mobile-wireless/why-80211ax-is-the-next-big-thing-in-wi-fi.html
[8]: https://%20https//www.networkworld.com/article/3048196/mobile-wireless/faq-802-11ax-wi-fi.html
[9]: https://www.networkworld.com/article/3311921/mobile-wireless/wi-fi-6-is-coming-to-a-router-near-you.html
[10]: https://www.networkworld.com/article/3332018/wi-fi/wi-fi-6-with-ofdma-opens-a-world-of-new-wireless-possibilities.html
[11]: https://www.networkworld.com/article/3309439/mobile-wireless/80211ax-preview-access-points-and-routers-that-support-the-wi-fi-6-protocol-on-tap.html
[12]: https://www.facebook.com/NetworkWorld/
[13]: https://www.linkedin.com/company/network-world

View File

@ -1,3 +1,4 @@
IEAST is translating
### Unleash Your Creativity Linux Programs for Drawing and Image Editing
By: [chabowski][1]
@ -74,11 +75,11 @@ And indeed, the skys the limit on how creative a user wants to be when using
(
_**2** votes, average: **5.00** out of 5_
_**2** votes, average: **5.00** out of 5_
)
_You need to be a registered member to rate this post._
_You need to be a registered member to rate this post._
Tags: [drawing][19], [Getting Started with Linux][20], [GIMP][21], [image editing][22], [Images][23], [InkScape][24], [KDE][25], [Krita][26], [Leap 42.3][27], [LibreOffice][28], [Linux Magazine][29], [Okular][30], [openSUSE][31], [PDF][32] Categories: [Desktop][33], [Expert Views][34], [LibreOffice][35], [openSUSE][36]

View File

@ -1,198 +0,0 @@
Translating by MjSeven
Manage your workstation with Ansible: Configure desktop settings
======
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/cube_innovation_process_block_container.png?itok=vkPYmSRQ)
In the [first article][1] of this series on using Ansible to configure a workstation, we set up a repository and configured a few basic things. In the [second part][2], we automated Ansible to apply settings automatically when changes are made to our repository. In this third (and final) article, we'll use Ansible to configure GNOME desktop settings.
This configuration will work only on newer distributions (such as Ubuntu 18.04, which I'll use in my examples). Older versions of Ubuntu will not work, as they ship with a version of `python-psutils` that is too old for Ansible's `dconf` module to work properly. If you're using a newer version of your Linux distribution, you should have no issues.
Before you begin, make sure you've worked through parts one and two of this series, as part three builds upon that groundwork. If you haven't already, download the GitHub repository you've been using in those first two articles. We'll add a few more features to it.
### Set a wallpaper and lock screen
First, we'll create a taskbook to hold our GNOME settings. In the root of the repository, you should have a file named `local.yml`. Add the following line to it:
```
- include: tasks/gnome.yml
```
The entire file should now look like this:
```
- hosts: localhost
  become: true
  pre_tasks:
    - name: update repositories
      apt: update_cache=yes
      changed_when: False
  tasks:
    - include: tasks/users.yml
    - include: tasks/cron.yml
    - include: tasks/packages.yml
    - include: tasks/gnome.yml
```
Basically, this added a reference to a file named `gnome.yml` that will be stored in the `tasks` directory inside the repository. We haven't created this file yet, so let's do that now. Create `gnome.yml` file in the `tasks` directory, and place the following content inside:
```
- name: Install python-psutil package
  apt: name=python-psutil
- name: Copy wallpaper file
  copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600
- name: Set GNOME Wallpaper
  become_user: jay
  dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"
```
Note that this code refers to my username (`jay`) several times, so make sure to replace every occurrence of `jay` with the username you use on your machine. Also, if you're not using Ubuntu 18.04 (as I am), you'll have to change the `apt` line to match the package manager for your chosen distribution and to confirm the name of the `python-psutil` package for your distribution, as it may be different.
`wallpaper.jpg` inside the `files` directory. This file must exist or the Ansible configuration will fail. Inside the `tasks` directory, create a subdirectory named `files`. Find a wallpaper image you like, name it `wallpaper.jpg`, and place it inside the `files` directory. If the file is a PNG image instead of a JPG, change the file extension in both the code and in the repository. If you're not feeling creative, I have an example wallpaper file in the
In the example tasks, I referred to a file namedinside thedirectory. This file must exist or the Ansible configuration will fail. Inside thedirectory, create a subdirectory named. Find a wallpaper image you like, name it, and place it inside thedirectory. If the file is a PNG image instead of a JPG, change the file extension in both the code and in the repository. If you're not feeling creative, I have an example wallpaper file in the [GitHub repository][3] for this article series that you can use.
Once you've made all these changes, commit everything to your GitHub repository, and push those changes. To recap, you should've completed the following:
* Modified the `local.yml` file to refer to the `tasks/gnome.yml` playbook
* Created the `tasks/gnome.yml` playbook with the content mentioned above
* Created a `files` directory inside the `tasks` directory, with an image file named `wallpaper.jpg` (or whatever you chose to call it).
Once you've completed those steps and pushed your changes back to the repository, the configuration should be automatically applied during its next scheduled run. (You may recall that we automated this in the previous article.) If you're in a hurry, you can apply the configuration immediately with the following command:
```
sudo ansible-pull -U https://github.com/<github_user>/ansible.git
```
If everything ran correctly, you should see your new wallpaper.
Let's take a moment to go through what the new GNOME taskbook does. First, we added a play to install the `python-psutil` package. If we don't add this, we can't use the `dconf` module, since it requires this package to be installed before we can modify GNOME settings. Next, we used the `copy` module to copy the wallpaper file to our `home` directory, and we named the resulting file starting with a period to hide it. If you'd prefer not to have this file in the root of your `home` directory, you can always instruct this section to copy it somewhere else—it will still work as long as you refer to it at the correct place. In the next play, we used the `dconf` module to change GNOME settings. In this case, we adjusted the `/org/gnome/desktop/background/picture-uri` key and set it equal to `file:///home/jay/.wallpaper.jpg`. Note the quotes in this section of the playbook—you must always use two single-quotes in `dconf` values, and you must also include double-quotes if the value is a string.
Now, let's take our configuration a step further and apply a background to the lock screen. Here's the GNOME taskbook again, but with two additional plays added:
```
- name: Install python-psutil package
  apt: name=python-psutil
- name: Copy wallpaper file
  copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600
- name: Set GNOME wallpaper
  dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"
- name: Copy lockscreenfile
  copy: src=files/lockscreen.jpg dest=/home/jay/.lockscreen.jpg owner=jay group=jay mode=600
- name: Set lock screen background
  become_user: jay
  dconf: key="/org/gnome/desktop/screensaver/picture-uri" value="'file:///home/jay/.lockscreen.jpg'"
```
As you can see, we're pretty much doing the same thing as we did with the wallpaper. We added two additional tasks, one to copy the lock screen image and place it in our `home` directory, and another to apply the setting to GNOME so it will be used. Again, be sure to change your username from `jay` and also name your desired lock screen picture `lockscreen.jpg` and copy it to the `files` directory. Once you've committed these changes to your repository, the new lock screen should be applied during the next scheduled Ansible run.
### Apply a new desktop theme
Setting the wallpaper and lock screen background is cool and all, but let's go even further and apply a desktop theme. First, let's add an instruction to our taskbook to install the package for the `arc` theme. Add the following code to the beginning of the GNOME taskbook:
```
- name: Install arc theme
  apt: name=arc-theme
```
Then, at the bottom, add the following play:
```
- name: Set GTK theme
  become_user: jay
  dconf: key="/org/gnome/desktop/interface/gtk-theme" value="'Arc'"
```
Did you see GNOME's GTK theme change right before your eyes? We added a play to install the `arc-theme` package via the `apt` module and another play to apply this theme to GNOME.
### Make other customizations
Now that you've changed some GNOME settings, feel free to add additional customizations on your own. Any setting you can tweak in GNOME can be automated this way; setting the wallpapers and the theme were just a few examples. You may be wondering how to find the settings that you want to change. Here's a trick that works for me.
First, take a snapshot of ALL your current `dconf` settings by running the following command on the machine you're managing:
```
dconf dump / > before.txt
```
This command exports all your current changes to a file named `before.txt`. Next, manually change the setting you want to automate, and capture the `dconf` settings again:
```
dconf dump / > after.txt
```
Now, you can use the `diff` command to see what's different between the two files:
```
diff before.txt after.txt
```
This should give you a list of keys that changed. While it's true that changing settings manually defeats the purpose of automation, what you're essentially doing is capturing the keys that change when you update your preferred settings, which then allows you to create Ansible plays to modify those settings so you'll never need to touch those settings again. If you ever need to restore your machine, your Ansible repository will take care of each and every one of your customizations. If you have multiple machines, or even a fleet of workstations, you only have to manually make the change once, and all other workstations will have the new settings applied and be completely in sync.
### Wrapping up
If you've followed along with this series, you should know how to set up Ansible to automate your workstation. These examples offer a useful baseline, and you can use the syntax and examples to make additional customizations. As you go along, you can continue to add new modifications, which will make your Ansible configuration grow over time.
I've used Ansible in this way to automate everything, including my user account and password; configuration files for Vim, tmux, etc.; desktop packages; SSH settings; SSH keys; and basically everything I could ever want to customize. Using this series as a starting point will pave the way for you to completely automate your workstations.
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/5/manage-your-workstation-ansible-part-3
作者:[Jay LaCroix][a]
选题:[lujun9972](https://github.com/lujun9972)
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://opensource.com/users/jlacroix
[1]:https://opensource.com/article/18/3/manage-workstation-ansible
[2]:https://opensource.com/article/18/3/manage-your-workstation-configuration-ansible-part-2
[3]:https://github.com/jlacroix82/ansible_article.git

View File

@ -0,0 +1,210 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How To Find The Port Number Of A Service In Linux)
[#]: via: (https://www.ostechnix.com/how-to-find-the-port-number-of-a-service-in-linux/)
[#]: author: (sk https://www.ostechnix.com/author/sk/)
How To Find The Port Number Of A Service In Linux
======
![Find The Port Number Of A Service In Linux OS][1]
You might often need to find the port names and numbers for some reasons. If so, youre in luck. Today, in this brief tutorial, we are going to see the easiest and quickest ways to find the port number of a service in Linux operating system. There could be many methods to do it, but I am aware of the following three methods only at present. Read on.
### Find The Port Number Of A Service In Linux
**Method 1 Using[Grep][2] command:**
To find the default port number of a given service in Linux using grep command, just run:
```
$ grep <port> /etc/services
```
For example, to find the default port of a SSH service, simply run:
```
$ grep ssh /etc/services
```
Its that simple. This command should work on most Linux distributions. Here is the sample output from my Arch Linux test box:
```
ssh 22/tcp
ssh 22/udp
ssh 22/sctp
sshell 614/tcp
sshell 614/udp
netconf-ssh 830/tcp
netconf-ssh 830/udp
sdo-ssh 3897/tcp
sdo-ssh 3897/udp
netconf-ch-ssh 4334/tcp
snmpssh 5161/tcp
snmpssh-trap 5162/tcp
tl1-ssh 6252/tcp
tl1-ssh 6252/udp
ssh-mgmt 17235/tcp
ssh-mgmt 17235/udp
```
As you can see in the above output, the default port number of SSH service is 22.
Let us find the port number of Apache web server. To do so, the command would be:
```
$ grep http /etc/services
# http://www.iana.org/assignments/port-numbers
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
https 443/tcp # http protocol over TLS/SSL
https 443/udp # http protocol over TLS/SSL
https 443/sctp # http protocol over TLS/SSL
gss-http 488/tcp
gss-http 488/udp
webcache 8080/tcp http-alt # WWW caching service
webcache 8080/udp http-alt # WWW caching service
[...]
```
How about FTP port number? Thats easy!
```
$ grep ftp /etc/services
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
tftp 69/tcp
[...]
```
**Method 2 Using getent command**
As you can see, the above commands shows all port names and numbers for the given search term “ssh”, “http” and “ftp”. That means, you will get a quite long output of all port names that matches with the given search term.
You can, however, narrow down the result to exact output using “getent” command like below:
```
$ getent services ssh
ssh 22/tcp
$ getent services http
http 80/tcp www www-http
$ getent services ftp
ftp 21/tcp
```
If you dont know the port name but the port number, simply replace the port name with number like below:
```
$ getent services 80
http 80/tcp
```
To display all port names and numbers, simply run:
```
$ getent services
```
* * *
**Suggested read:**
* [**How To Change Apache Default Port To A Custom Port**][3]
* [**How To Change FTP Default Port To A Custom Port**][4]
* [**How To Change SSH Default Port To A Custom Port**][5]
* * *
**Method 3 Using Whatportis Utility**
The **Whatportis** is a simple python script used to find port names and numbers. Unlike the above commands, this utility displays the output in a nice tabular column format.
Make sure you have installed PIP package manager. If not, refer the following link.
* [**How To Manage Python Packages Using Pip**][6]
Once installed PIP, run the following command to install Whatportis utility.
```
$ pip install whatportis
```
Now, you can find what port is associated with a service as shown below.
```
$ whatportis ssh
$ whatportis ftp
$ whatportis http
```
Sample output from my CentOS 7 server:
![][7]
Find The Port Number Of A Service In Linux
If you dont know the exact name of a service, use **like** flag to display the relevant results.
```
$ whatportis mysql --like
```
The above commands helped you to find what port is associated with a service. You can also find what service is associated with a port number like below.
```
$ whatportis 993
```
You can even display the results in **JSON** format.
```
$ whatportis 993 --json
```
![][8]
For more details, refer the GitHub repository.
* [**Whatportis GitHub Repository**][9]
And, thats all for now. You know now how to find the port names and numbers in Linux using three simple methods. If you know any other methods/commands, let me know in the comment section below. I will check and update this guide accordingly.
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/how-to-find-the-port-number-of-a-service-in-linux/
作者:[sk][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.ostechnix.com/author/sk/
[b]: https://github.com/lujun9972
[1]: https://www.ostechnix.com/wp-content/uploads/2018/06/Find-The-Port-Number-720x340.png
[2]: https://www.ostechnix.com/the-grep-command-tutorial-with-examples-for-beginners/
[3]: https://www.ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-1/
[4]: https://www.ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-2/
[5]: https://www.ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/
[6]: https://www.ostechnix.com/manage-python-packages-using-pip/
[7]: https://www.ostechnix.com/wp-content/uploads/2018/06/whatportis.png
[8]: https://www.ostechnix.com/wp-content/uploads/2018/06/whatportis-1.png
[9]: https://github.com/ncrocfer/whatportis

View File

@ -1,121 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (4 cool terminal multiplexers)
[#]: via: (https://fedoramagazine.org/4-cool-terminal-multiplexers/)
[#]: author: (Paul W. Frields https://fedoramagazine.org/author/pfrields/)
4 cool terminal multiplexers
======
![][1]
The Fedora OS is comfortable and easy for lots of users. It has a stunning desktop that makes it easy to get everyday tasks done. Under the hood is all the power of a Linux system, and the terminal is the easiest way for power users to harness it. By default terminals are simple and somewhat limited. However, a _terminal multiplexer_ allows you to turn your terminal into an even more incredible powerhouse. This article shows off some popular terminal multiplexers and how to install them.
Why would you want to use one? Well, for one thing, it lets you logout of your system while _leaving your terminal session undisturbed_. Its incredibly useful to logout of your console, secure it, travel somewhere else, then remotely login with SSH and continue where you left off. Here are some utilities to check out.
One of the oldest and most well-known terminal multiplexers is _screen._ However, because the code is no longer maintained, this article focuses on more recent apps. (“Recent” is relative — some of these have been around for years!)
### Tmux
The _tmux_ utility is one of the most widely used replacements for _screen._ It has a highly configurable interface. You can program tmux to start up specific kinds of sessions based on your needs. Youll find a lot more about tmux in this article published earlier:
> [Use tmux for a more powerful terminal][2]
Already a tmux user? You might like [this additional article on making your tmux sessions more effective][3].
To install tmux, use the _sudo_ command along with _dnf_ , since youre probably in a terminal already:
```
$ sudo dnf install tmux
```
To start learning, run the _tmux_ command. A single pane window starts with your default shell. Tmux uses a _modifier key_ to signal that a command is coming next. This key is **Ctrl+B** by default. If you enter **Ctrl+B, C** youll create a new window with a shell in it.
Heres a hint: Use **Ctrl+B, ?** to enter a help mode that lists all the keys you can use. To keep things simple, look for the lines starting with _bind-key -T prefix_ at first. These are keys you can use right after the modifier key to configure your tmux session. You can hit **Ctrl+C** to exit the help mode back to tmux.
To completely exit tmux, use the standard _exit_ command or _Ctrl+D_ keystroke to exit all the shells.
### Dvtm
You might have recently seen the Magazine article on [dwm, a dynamic window manager][4]. Like dwm, _dvtm_ is for tiling window management — but in a terminal. Its designed to adhere to the legacy UNIX philosophy of “do one thing well” — in this case managing windows in a terminal.
Installing dvtm is easy as well. However, if you want the logout functionality mentioned earlier, youll also need the _abduco_ package which handles session management for dvtm.
```
$ sudo dnf install dvtm abduco
```
The dvtm utility has many keystrokes already mapped to allow you to manage windows in the terminal. By default, it uses **Ctrl+G** as its modifier key. This keystroke tells dvtm that the following character is going to be a command it should process. For instance, **Ctrl+G, C** creates a new window and **Ctrl+G, X** removes it.
For more information on using dvtm, check out the dvtm [home page][5] which includes numerous tips and get-started information.
### Byobu
While _byobu_ isnt truly a multiplexer on its own — it wraps _tmux_ or even the older _screen_ to add functions — its worth covering here too. Byobu makes terminal multiplexers better for novices, by adding a help menu and window tabs that are slightly easier to navigate.
Of course its available in the Fedora repos as well. To install, use this command:
```
$ sudo dnf install byobu
```
By default the _byobu_ command runs _screen_ underneath, so you might want to run _byobu-tmux_ to wrap _tmux_ instead. You can then use the **F9** key to open up a help menu for more information to help you get started.
### Mtm
The _mtm_ utility is one of the smallest multiplexers youll find. In fact, its only about 1000 lines of code! You might find it helpful if youre in a limited environment such as old hardware, a minimal container, and so forth. To get started, youll need a couple packages.
```
$ sudo dnf install git ncurses-devel make gcc
```
Then clone the repository where mtm lives:
```
$ git clone https://github.com/deadpixi/mtm.git
```
Change directory into the _mtm_ folder and build the program:
```
$ make
```
You might receive a few warnings, but when youre done, youll have the very small _mtm_ utility. Run it with this command:
```
$ ./mtm
```
You can find all the documentation for the utility [on its GitHub page][6].
These are just some of the terminal multiplexers out there. Got one youd like to recommend? Leave a comment below with your tips and enjoy building windows in your terminal!
* * *
_Photo by _[ _Michael_][7]_ on [Unsplash][8]._
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/4-cool-terminal-multiplexers/
作者:[Paul W. Frields][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/pfrields/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2018/08/tmuxers-4-816x345.jpg
[2]: https://fedoramagazine.org/use-tmux-more-powerful-terminal/
[3]: https://fedoramagazine.org/4-tips-better-tmux-sessions/
[4]: https://fedoramagazine.org/lets-try-dwm-dynamic-window-manger/
[5]: http://www.brain-dump.org/projects/dvtm/#why
[6]: https://github.com/deadpixi/mtm
[7]: https://unsplash.com/photos/48yI_ZyzuLo?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[8]: https://unsplash.com/search/photos/windows?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: (arrowfeng)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,75 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to navigate the Kubernetes learning curve)
[#]: via: (https://opensource.com/article/19/6/kubernetes-learning-curve)
[#]: author: (Scott McCarty https://opensource.com/users/fatherlinux/users/fatherlinux)
How to navigate the Kubernetes learning curve
======
Kubernetes is like a dump truck. It's elegant for solving the problems
it's designed for, but you have to master the learning curve first.
![Dump truck rounding a turn in the road][1]
In _[Kubernetes is a dump truck][2]_, I talked about how a tool can be elegant for the problem it was designed to solve—once you learn how to use it. In part 2 of this series, I'm going a little deeper into the Kubernetes' learning curve.
The journey to [Kubernetes][3] often starts with running one container on one host. You quickly discover how easy it is to run new versions of software, how easy it is to share that software with others, and how easy it is for those users to run it the way you intended.
But then you need
* Two containers
* Two hosts
It's easy to fire up one web server on port 80 with a container, but what happens when you need to fire up a second container on port 80? What happens when you are building a production environment and you need the containerized web server to fail over to a second host? The short answer, in either case, is you have to move into container orchestration.
Inevitably, when you start to handle the two containers or two hosts problem, you'll introduce complexity and, hence, a learning curve. The two services (a more generalized version of a container) / two hosts problem has been around for a long time and has always introduced complexity.
Historically, this would have involved load balancers, clustering software, and even clustered file systems. Configuration logic for every service is embedded in every system (load balancers, cluster software, and file systems). Running 60 or 70 services, clustered, behind load balancers is complex. Adding another new service is also complex. Worse, decommissioning a service is a nightmare. Thinking back on my days of troubleshooting production MySQL and Apache servers with logic embedded in three, four, or five different places, all in different formats, still makes my head hurt.
Kubernetes elegantly solves all these problems with one piece of software:
1. Two services (containers): Check
2. Two servers (high availability): Check
3. Single source of configuration: Check
4. Standard configuration format: Check
5. Networking: Check
6. Storage: Check
7. Dependencies (what services talk to what databases): Check
8. Easy provisioning: Check
9. Easy de-provisioning: Check (perhaps Kubernetes' _most_ powerful piece)
Wait, it's starting to look like Kubernetes is pretty elegant and pretty powerful. _It is._ You can model an entire miniature IT universe in Kubernetes.
![Kubernetes business model][4]
So yes, there is a learning curve when starting to use a giant dump truck (or any professional equipment). There's also a learning curve to use Kubernetes, but it's worth it because you can solve so many problems with one tool. If you are apprehensive about the learning curve, think through all the underlying networking, storage, and security problems in IT infrastructure and envision their solutions today—they're not easier. Especially when you introduce more and more services, faster and faster. Velocity is the goal nowadays, so give special consideration to the provisioning and de-provisioning problem.
But don't confuse the learning curve for building or equipping Kubernetes (picking the right mud flaps for your dump truck can be hard, LOL) with the learning curve for using it. Learning to build your own Kubernetes with so many different choices at so many different layers (container engine, logging, monitoring, service mesh, storage, networking), and then maintaining updated selections of each component every six months, might not be worth the investment—but learning to use it is absolutely worth it.
I eat, sleep, and breathe Kubernetes and containers every day, and even I struggle to keep track of all the major new projects announced literally almost every day. But there isn't a day that I'm not excited about the operational benefits of having a single tool to model an entire IT miniverse. Also, remember Kubernetes has matured a ton and will continue to do so. Like Linux and OpenStack before it, the interfaces and de facto projects at each layer will mature and become easier to select.
In the third article in this series, I'll dig into what you need to know before you drive your Kubernetes "truck."
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/kubernetes-learning-curve
作者:[Scott McCarty][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/fatherlinux/users/fatherlinux
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/dumptruck_car_vehicle_storage_container_road.jpg?itok=TWK0CbX_ (Dump truck rounding a turn in the road)
[2]: https://opensource.com/article/19/6/kubernetes-dump-truck
[3]: https://kubernetes.io/
[4]: https://opensource.com/sites/default/files/uploads/developer_native_experience_-_mapped_to_traditional_1.png (Kubernetes business model)

View File

@ -0,0 +1,222 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Linux Package Managers Compared AppImage vs Snap vs Flatpak)
[#]: via: (https://www.ostechnix.com/linux-package-managers-compared-appimage-vs-snap-vs-flatpak/)
[#]: author: (editor https://www.ostechnix.com/author/editor/)
Linux Package Managers Compared AppImage vs Snap vs Flatpak
======
![3 Linux Package Managers Compared][1]
**Package managers** provide a way of packaging, distributing, installing, and maintaining apps in an operating system. With modern desktop, server and IoT applications of the Linux operating system and the hundreds of different distros that exist, it becomes necessary to move away from platform specific packaging methods to platform agnostic ones. This post explores 3 such tools, namely **AppImage** , **Snap** and **Flatpak** , that each aim to be the future of software deployment and management in Linux. At the end we summarize a few key findings.
### 1\. AppImage
**AppImage** follows a concept called **“One app = one file”**. This is to be understood as an AppImage being a regular independent “file” containing one application with everything it needs to run in the said file. Once made executable, the AppImage can be run like any application in a computer by simply double-clicking it in the users file system.[1]
It is a format for creating portable software for Linux without requiring the user to install the said application. The format allows the original developers of the software (upstream developers) to create a platform and distribution independent (also called a distribution-agnostic binary) version of their application that will basically run on any flavor of Linux.
AppImage has been around for a long time. **Klik** , a predecessor of AppImage was created by **Simon Peter** in 2004. The project was shut down in 2011 after not having passed the beta stage. A project named **PortableLinuxApps** was created by Simon around the same time and the format was picked up by a few portals offering software for Linux users. The project was renamed again in 2013 to its current name AppImage and a repository has been maintained in GitHub (project [link][2]) with all the latest changes to the same since 2018.[2][3]
Written primarily in **C** and donning the **MIT license** since 2013, AppImage is currently developed by **The AppImage project**. It is a very convenient way to use applications as demonstrated by the following features:
1. AppImages can run on virtually any Linux system. As mentioned before applications derive a lot of functionality from the operating system and a few common libraries. This is a common practice in the software world since if something is already done, there is no point in doing it again if you can pick and choose which parts from the same to use. The problem is that many Linux distros might not have all the files a particular application requires to run since it is left to the developers of that particular distro to include the necessary packages. Hence developers need to separately include the dependencies of the application for each Linux distro they are publishing their app for. Using the AppImage format developers can choose to include all the libraries and files that they cannot possibly hope the target operating system to have as part of the AppImage file. Hence the same AppImage format file can work on different operating systems and machines without needing granular control.
2. The one app one file philosophy means that user experience is simple and elegant in that users need only download and execute one file that will serve their needs for using the application.
3. **No requirement of root access**. System administrators will require people to have root access to stop them from messing with computers and their default setup. This also means that people with no root access or super user privileges cannot install the apps they need as they please. The practice is common in a public setting (such as library or university computers or on enterprise systems). The AppImage file does not require users to “install” anything and hence users need only download the said file and **make it executable** to start using it. This removes the access dilemmas that system administrators have and makes their job easier without sacrificing user experience.
4. **No effect on core operating system**. The AppImage-application format allows using applications with their full functionality without needing to change or even access most system files. Meaning whatever the applications do, the core operating system setup and files remain untouched.
5. An AppImage can be made by a developer for a particular version of their application. Any updated version is made as a different AppImage. Hence users if need be can **test multiple versions of the same application** by running different instances using different AppImages. This is an invaluable feature when you need to test your applications from an end-user POV to notice differences.
6. Take your applications where you go. As mentioned previously AppImages are archived files of all the files that an application requires and can be used without installing or even bothering about the distribution the system uses. Hence if you have a set of apps that you use regularly you may even mount a few AppImage files on a thumb drive and take it with you to use on multiple computers running multiple different distros without worrying whether theyll work or not.
Furthermore, the **AppImageKit** allows users from all backgrounds to build their own AppImages from applications they already have or for applications that are not provided an AppImage by their upstream developer.
The package manager is platform independent but focuses primarily on software distribution to end users on their desktops with a dedicated daemon **AppImaged** for integrating the AppImage formats into respective desktop environments. AppImage is supported natively now by a variety of distros such as Ubuntu, Debian, openSUSE, CentOS, Fedora etc. and others may set it up as per their needs. AppImages can also be run on servers with limited functionality via the CLI tools included.
To know more about AppImages, go to the official [**AppImage documentation**][3] page.
* * *
**Suggested read:**
* [**Search Linux Applications On AppImage, Flathub And Snapcraft Platforms**][4]
* * *
### 2\. Snappy
**Snappy** is a software deployment and package management system like AppImage or any other package manager for that instance. It is originally designed for the now defunct **Ubuntu Touch** Operating system. Snappy lets developers create software packages for use in a variety of Linux based distributions. The initial intention behind creating Snappy and deploying **“snaps”** on Ubuntu based systems is to obtain a unified single format that could be used in everything from IoT devices to full-fledged computer systems that ran some version of Ubuntu and in a larger sense Linux itself.[4]
The lead developer behind the project is **Canonical** , the same company that pilots the Ubuntu project. Ubuntu had native snap support from version 16.04 LTS with more and more distros supporting it out of the box or via a simple setup these days. If you use Arch or Debian or openSUSE youll find it easy to install support for the package manager using simple commands in the terminal as explained later in this section. This is also made possible by making the necessary snap platform files available on the respective repos.[5]
Snappy has the following important components that make up the entire package manager system.[6]
* **Snap** is the file format of the packages themselves. Individual applications that are deployed using Snappy are called “Snaps”. Any application may be packaged using the tools provided to make a snap that is intended to run on a different system running Linux. Snap, similar to AppImage is an all-inclusive file and contains all dependencies the application needs to run without assuming them to part of the target system.
* **Snapcraft** is the tool that lets developers make snaps of their applications. It is basically a command that is part of the snap system as well as a framework that will let you build your own snaps.
* **Snapd** is the background daemon that maintains all the snaps that are installed in your system. It integrates into the desktop environment and manages all the files and processes related to working with snaps. The snapd daemon also checks for updates normally **4 times a day** unless set otherwise.
* [**Snap Store**][5] is an online gallery of sorts that lets developers upload their snaps into the repository. Snap store is also an application discovery medium for users and will let users see and experience the application library before downloading and installing them.
The snapd component is written primarily in **C** and **Golang** whereas the Snapcraft framework is built using **Python**. Although both the modules use the GPLv3 license it is to be noted that snapd has proprietary code from Canonical for its server-side operations with just the client side being published under the GPL license. This is a major point of contention with developers since this involves developers signing a CLA form to participate in snap development.[7]
Going deeper into the finer details of the Snappy package manager the following may be noted:
1. Snaps as noted before are all inclusive and contain all the necessary files (dependencies) that the application needs to run. Hence, developers need not to make different snaps for the different distros that they target. Being mindful of the runtimes is all thats necessary if base runtimes are excluded from the snap.
2. Snappy packages are meant to support transactional updates. Such a transactional update is atomic and fully reversible, meaning you can use the application while its being updated and that if an update does not behave the way its supposed to, you can reverse the same with no other effects whatsoever. The concept is also called as **delta programming** in which only changes to the application are transmitted as an update instead of the whole package. An Ubuntu derivative called **Ubuntu Core** actually promises the snappy update protocol to the OS itself.[8]
3. A key point of difference between snaps and AppImages, is how they handle version differences. Using AppImages different versions of the application will have different AppImages allowing you to concurrently use 2 or more different versions of the same application at the same time. However, using snaps means conforming to the transactional or delta update system. While this means faster updates, it keeps you from running two instances of the same application at the same time. If you need to use the old version of an app youll need to reverse or uninstall the new version. Snappy does support a feature called [**“parallel install”**][6] which will let users accomplish similar goals, however, it is still in an experimental stage and cannot be considered to be a stable implementation. Snappy also makes use of channels meaning you can use the beta or the nightly build of an app and the stable version at the same time.[9]
4. Extensive support from major Linux distros and major developers including Google, Mozilla, Microsoft, etc.[4]
5. Snapd the desktop integration tool supports taking **“snapshots”** of the current state of all the installed snaps in the system. This will let users save the current configuration state of all the applications that are installed via the Snappy package manager and let users revert to that state whenever they desire so. The same feature can also be set to automatically take snapshots at a frequency deemed necessary by the user. Snapshots can be created using the **snap save command** in the snapd framework.[10]
6. Snaps are designed to be sandboxed during operation. This provides a much-required layer of security and isolation to users. Users need not worry about snap-based applications messing with the rest of the software on their computer. Sandboxing is implemented using three levels of isolation viz, **classic** , **strict** and **devmode**. Each level of isolation allows the app different levels of access within the file system and computer.[11]
On the flip side of things, snaps are widely criticized for being centered around **Canonicals modus operandi**. Most of the commits to the project are by Canonical employees or contractors and other contributors are required to sign a release form (CLA). The sandboxing feature, a very important one indeed from a security standpoint, is flawed in that the sandboxing actually requires certain other core services to run (such as Mir) while applications running the X11 desktop wont support the said isolation, hence making the said security feature irrelevant. Questionable press releases and other marketing efforts from Canonical and the “central” and closed app repository are also widely criticized aspects of Snappy. Furthermore, the file sizes of the different snaps are also **comparatively very large** compared to the app sizes of the packages made using AppImage.[7]
For more details, check [**Snap official documentation**][7].
* * *
**Related read:**
* [**Install Snap packages in Arch Linux, and Fedora**][8]
* * *
### 3\. Flatpak
Like the Snap/Snappy listed above, **Flatpak** is also a software deployment tool that aims to ease software distribution and use in Linux. Flatpak was previously known as **“xdg-app”** and was based on concept proposed by **Lennart Poettering** in 2004. The idea was to contain applications in a secure virtual sandbox allowing for using applications **without the need of root privileges** and without compromising on the systems security. **Alex** started tinkering with Klik (thought to be a former version of AppImage) and wanted to implement the concept better. **Alexander Larsson** who at the time was working with Red Hat wrote an implementation called xdg-app in 2015 that acted as a pre-cursor to the current Flatpak format.
Flatpak officially came out in 2016 with backing from Red Hat, Endless Computers and Collabora. **Flathub** is the official repository of all Flatpak application packages. At its surface Flatpak like the other is a framework for building and packaging distribution agnostic applications for Linux. It simply requires the developers to conform to a few desktop environment guidelines in order for the application to be successfully integrated into the Flatpak environment.
Targeted primarily at the three popular desktop implementations **FreeDesktop** , **KDE** , and **GNOME** , the Flatpak framework itself is written in **C** and works on a **LGPL** license. The maintenance repository can be accessed via the GitHub link **[here][9]**.
A few features of Flatpak that make it stand apart are mentioned below. Notice that features Flatpak shares with AppImage and Snappy are omitted here.
* Deep integration into popular Linux desktop environments such as GNOME & KDE so that users can simply use Flatpaks using Graphical software management tools instead of resorting to the terminal. Flatpak can be installed from the default repositories of major desktop environments now and once the apps themselves are set-up they can be used and provide features similar to normal desktop applications.[12][13]
* **Forward-compatibility** Flatpaks are built from the ground up keeping the operating systems core kernel and runtimes in mind. Hence, even if you upgrade or update your distro the Flatpaks you have should still work unless there is a core update. This is especially crucial for people who prefer staying on rolling betas or development versions of their distros. For such people, since the kinks of the OS itself isnt ironed out usually, the Flatpak application will run seamlessly without having to depend on the OS files or libraries for its operation.[13]
* **Sandboxing using Bubblewrap** snaps are also by default sandboxed in that they run in isolation from the rest of the applications running while youre using your computer. However, Flatpaks fully seal the application from accessing OS files and user files during its operation by default. This essentially means that system administrators can be certain that Flatpaks that are installed in their systems cannot exploit the computer and the files it contains whereas for end users this will mean that in order to access a few specific functions or user data root permission is required.[14]
* Flatpak supports decentralized distribution of application natively however the team behind Flatpak still maintains a central online repository of apps/Flatpaks called **Flathub**. Users may in fact configure Flatpak to use multiple remote repositories as they see necessary. As opposed to snap you can have multiple repositories.[13]
* Modular access through the sandbox. Although this capability comes at a great potential cost to the integrity of the system, Flatpak framework allows for channels to be created through the sandbox for exchange of specific information from within the sandbox to the host system or vice versa. The channel is in this case referred to as a portal. A con to this feature is discussed later in the section.[14]
One of the most criticized aspects of Flatpak however is its the sandbox feature itself. Sandboxing is how package managers such as Snappy and Flatpak implement important security features. Sandboxing essentially isolates the application from everything else in the system only allowing for user defined exchange of information from within the sandbox to outside. The flaw with the concept being that the sandbox cannot be inherently impregnable. Data has to be eventually transferred between the two domains and simple Linux commands can simply get rid of the sandbox restriction meaning that malicious applications might potentially jump out of the said sandbox.[15]
This combined with the worse than expected commitment to rolling out security updates for Flatpak has resulted in widespread criticism of the teams tall claim of providing a secure framework. The blog (named **flatkill** ) linked at the end of this guide in fact mentions a couple of exploits that were not addressed by the Flatpak team as soon as they shouldve been.[15]
For more details, I suggest you to read [**Flatpak official documentation**][10].
* * *
**Related read:**
* [**A Beginners Guide To Flatpak**][11]
* * *
### AppImage vs Snap vs Flatpak
The table attached below summarizes all the above findings into a concise and technical comparison of the three frameworks.
**Feature** | **AppImage** | **Snappy** | **Flatpak**
---|---|---|---
**Unique feature** | Not an appstore or repository, its simply put a packaging format for software distribution. | Led by Canonical (Same company as Ubuntu), features central app repository and active contribution from Canonical. | Features an app store called FlatHub, however, individuals may still host packages and distribute it.
**Target system** | Desktops and Servers. | Desktops, Servers, IoT devices, Embedded devices etc. | Desktops and limited function on servers.
**Libraries/Dependencies** | Base system. Runtimes optional, Libraries and other dependencies packaged. | Base system or via Plugins or can be packaged. | GNOME, KDE, Freedesktop bundled or custom bundled.
**Developers** | Community Driven led by Simon Peter. | Corporate driven by Canonical Ltd. | Community driven by flatpak team supported by enterprise.
**Written in** | C. | Golang, C and Python. | C.
**Initial release** | 2004. | 2014. | 2015.
**Sandboxing** | Can be implemented. | 3 modes strict, classic, and devmode with varying confinement capabilities. Runs in isolation. | Isolated but Uses system files to run applications by default.
**Sandboxing Platform** | Firejail, AppArmor, Bubblewrap. | AppArmor. | Bubblewrap.
**App Installation** | Not necessary. Will act as self mounted disc. | Installation using snapd. | Installed using flatpak client tools.
**App Execution** | Can be run after setting executing bit. | Using desktop integrated snap tools. Runs isolated with user defined resources. | Needs to be executed using flatpak command if CLI is used.
**User Privileges** | Can be run w/o root user access. | Can be run w/o root user access. | Selectively required.
**Hosting Applications** | Can be hosted anywhere by anybody. | Has to be hosted with Canonical servers which are proprietary. | Can be hosted anywhere by anybody.
**Portable Execution from non system locations** | Yes. | No. | Yes, after flatpak client is configured.
**Central Repository** | AppImageHub. | Snap Store. | Flathub.
**Running multiple versions of the app** | Possible, any number of versions simultaneously. | One version of the app in one channel. Has to be separately configured for more. | Yes.
**Updating applications** | Using CLI command AppImageUpdate or via an updater tool built into the AppImage. | Requires snapd installed. Supports delta updating, will automatically update. | Required flatpak installed. Update Using flatpak update command.
**Package sizes on disk** | Application remains archived. | Application remains archived. | Client side is uncompressed.
Here is a long tabular comparison of AppImage vs. Snap vs. Flatpak features. Please note that the comparison is made from an AppImage perspective.
* [**https://github.com/AppImage/AppImageKit/wiki/Similar-projects#comparison**][12]
### Conclusion
While all three of these platforms have a lot in common with each other and aim to be platform agnostic in approach, they offer different levels of competencies in a few areas. While Snaps can run on a variety of devices including embedded ones, AppImages and Flatpaks are built with the desktop user in mind. AppImages of popular applications on the other had have superior packaging sizes and portability whereas Flatpak really shines with its forward compatibility when its used in a set it and forget it system.
If there are any flaws in this guide, please let us know in the comment section below. We will update the guide accordingly.
**References:**
* **[1]** [**Concepts — AppImage documentation**][13]
* **[2]** [**Slashdot Point-and-klik Linux Software Installation**][14]
* **[3]** [**History of AppImage project**][15]
* **[4][Snapcraft Snaps are universal Linux packages][16]**
* **[5][Installing snapd Snap documentation][17]**
* **[6][Snap documentation][7]**
* **[7][On Snappy and Flatpak: business as usual in the Canonical propaganda department][18]**
* **[8][Snap Updates are getting smaller, heres why][19]**
* **[9][What Are Linux Snap Packages? Why Use Them?][20]**
* **[10][Snapshots Snap documentation][21]**
* **[11][Snap confinement Snap documentation][22]**
* **[12][Desktop Integration Flatpak documentation][23]**
* **[13][Introduction to Flatpak Flatpak documentation][24]**
* **[14][Sandbox Permissions Flatpak documentation][25]**
* **[15][Flatpak a security nightmare][26]**
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/linux-package-managers-compared-appimage-vs-snap-vs-flatpak/
作者:[editor][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.ostechnix.com/author/editor/
[b]: https://github.com/lujun9972
[1]: https://www.ostechnix.com/wp-content/uploads/2019/06/Linux-Package-Managers-Compared-1-720x340.png
[2]: https://github.com/AppImage/AppImageKit/blob/master/README.md
[3]: https://docs.appimage.org/
[4]: https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/
[5]: https://snapcraft.io/store
[6]: https://blog.ubuntu.com/2019/06/20/parallel-installs-test-and-run-multiple-instances-of-snaps
[7]: https://docs.snapcraft.io/
[8]: https://www.ostechnix.com/install-snap-packages-arch-linux-fedora/
[9]: https://github.com/flatpak/flatpak
[10]: http://docs.flatpak.org/en/latest/index.html
[11]: https://www.ostechnix.com/flatpak-new-framework-desktop-applications-linux/
[12]: https://github.com/AppImage/AppImageKit/wiki/Similar-projects#comparison
[13]: https://docs.appimage.org/introduction/concepts.html#one-app-one-file.
[14]: https://linux.slashdot.org/story/05/01/15/1815210/point-and-klik-linux-software-installation
[15]: https://github.com/AppImage/AppImageKit/wiki/History#timeline.
[16]: https://snapcraft.io/#
[17]: https://docs.snapcraft.io/installing-snapd
[18]: https://www.happyassassin.net/2016/06/16/on-snappy-and-flatpak-business-as-usual-in-the-canonical-propaganda-department/
[19]: https://blog.ubuntu.com/2017/08/01/snap-updates-are-getting-smaller-heres-why
[20]: https://www.feliciano.tech/blog/what-are-linux-snap-packages-why-use-them/
[21]: https://docs.snapcraft.io/snapshots
[22]: https://docs.snapcraft.io/snap-confinement
[23]: http://docs.flatpak.org/en/latest/desktop-integration.html?highlight=desktop%20integration
[24]: http://docs.flatpak.org/en/latest/introduction.html
[25]: http://docs.flatpak.org/en/latest/sandbox-permissions.html?highlight=sandboxing
[26]: https://flatkill.org/

View File

@ -1,110 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (wahailin)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment)
[#]: via: (https://itsfoss.com/raspberry-pi-4/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment
======
_**Brief: Raspberry Pi 4 is here with the upgraded technical specifications. You get up to 4 GB of RAM and you can connect two 4K displays with it. With the new hardware, you should be more comfortable using it as a desktop. Starting price remains the $35 like the previous models.**_
The Raspberry Pi Foundation has just launched the new [Raspberry Pi 4 Model B][1].
It comes with some impressive upgrades which makes one of the most powerful [single board computers][2] under $40.
![Raspberry Pi 4][3]
### Whats new in Raspberry Pi 4?
The Raspberry Pi 4 now supports a dual 4K monitor setup if that is what you are looking for. In addition to this, you get a more powerful processor which can be coupled with up to 4 GB of RAM. Thats almost equivalent to a mid-end laptop.
The upgraded specification makes it a competitor in the [Linux mini-PC][4] segment while the same price tag of $35 gives it an edge over [other single board computers][2].
Right after the launch, its almost out of stock at major online stores. So, let us take a look at what makes it so impressive.
#### Raspberry Pi 4 key specifications
![Raspberry Pi 4 Tech Specs][5]
* Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
* Up to 4GB RAM (choices are 1 GB, 2 GB and 4 GB)
* WiFi and Bluetooth 5.0
* 2 USB 3.0 and a USB 2.0 ports
* 40 pin GPIO header (backward compatible)
* 2 micro-HDMI ports (supports 4K displays)
* USB-C (power supply)
* Gigabit Ethernet
If you are curious to know more, do check out the [official tech specs][6] on their website.
### Pricing and availability
The pricing for just the Raspberry Pi 4 board starts from $35 and depending on the choice of RAM (1-4 GB), the cost shall vary.
* Raspberry Pi 4 with 1 GB RAM: $35
* Raspberry Pi 4 with 2 GB RAM: $45
* Raspberry Pi 4 with 4 GB RAM: $55
Raspberry Pi 4 is available from different vendors depending on your country. Its getting out of stock so you should either hurry up or wait for a few days/weeks. You can get purchase information on its official webpage.
[Buy Raspberry Pi 4][1]
You should note that [you need to have additional accessories in order to run Raspberry Pi][7]. This is why there are several starter kits available to give you all the necessary supporting accessories.
[][8]
Suggested read  Raspberry Pi Gets RAM Upgrade, In The Same Price
#### Raspberry Pi 4 desktop Kit
![Raspberry Pi 4 Desktop Kit][9]
You can also purchase the official Raspberry Pi 4 desktop kit that comes with a Raspberry Pi 4, its case, keyboard, mouse, micro HDMI cables, USB-C power supply, user guide and 16GB [microSD card with Raspbian installed][10].
![Raspberry Pi Branded Desktop Kit][11]
The entire kit is in red and white color and it looks pretty (if you care for the looks). You can get the purchase information on Raspberry Pi website.
[Raspberry Pi 4 Desktop Kit][12]
#### Raspberry Pi 4 is promising
With all that spec buff, it is definitely going to be one of the best out there. Also, instead of getting an entry-level desktop, Raspberry Pi 4 will be a better choice. You can easily access your documents, manage your spreadsheets, and do a lot of things at a cheaper price tag.
Im definitely considering to purchase the Raspberry Pi 4 as a spare (but a powerful) entry-level desktop. Well, I wont be going for the 4K dual monitor setup, but it surely is capable of that, at least on paper.
What do you think about the new Raspberry Pi 4 Model B? Let us know your thoughts in the comments below.
--------------------------------------------------------------------------------
via: https://itsfoss.com/raspberry-pi-4/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
[2]: https://itsfoss.com/raspberry-pi-alternatives/
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4.jpeg?resize=800%2C449&ssl=1
[4]: https://itsfoss.com/linux-based-mini-pc/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-tech-specs.jpg?ssl=1
[6]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
[7]: https://itsfoss.com/things-you-need-to-get-your-raspberry-pi-working/
[8]: https://itsfoss.com/raspberry-pi-gets-ram-upgrade-in-the-same-price/
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-desktop-kit.jpg?resize=800%2C427&ssl=1
[10]: https://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-desktop-kit-official.jpg?ssl=1
[12]: https://www.raspberrypi.org/products/raspberry-pi-4-desktop-kit/

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (chen-ni)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (LuuMing)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -0,0 +1,216 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to use Tig to browse Git logs)
[#]: via: (https://opensource.com/article/19/6/what-tig)
[#]: author: (Olaf Alders https://opensource.com/users/oalders/users/mbbroberg/users/marcobravo)
How to use Tig to browse Git logs
======
Tig is more than just a text-mode interface for Git. Here's how it can
enhance your daily workflow.
![A person programming][1]
If you work with Git as your version control system, you've likely already resigned yourself to the fact that Git is a complicated beast. It is a fantastic tool, but it can be cumbersome to navigate Git repositories. That's where a tool like [Tig][2] comes in.
From the [Tig man page][3]:
> Tig is an ncurses-based text-mode interface for git(1). It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.
This basically means that Tig provides a text-based user interface you can run in your terminal. Tig makes it easy to browse your Git logs, but it can do much more than just bounce you around from your last commit to a previous one.
![Tig screenshot][4]
Many of the examples in this quick introduction to Tig have been poached directly from its excellent man page. I highly recommend reading it to learn more.
### Install Tig
* Fedora and RHEL: **sudo dnf install tig**
* Ubuntu and Debian: **sudo apt install tig**
* MacOS: **brew install tig**
See the official [installation instructions][5] for even more options.
### Browse commits in your current branch
If you want to browse the latest commits in your branch, enter:
```
`tig`
```
That's it. This three-character command will launch a browser where you can navigate the commits in your current branch. You can think of it as a wrapper around **git log**.
To navigate the output, you can use the Up and Down arrow keys to move from one commit to another. Pressing the Return/Enter key will open a vertical split with the contents of the chosen commit on the right-hand side. You can continue to browse up and down in your commit history on the left-hand side, and your changes will appear on the right. Use **k** and **j** to navigate up and down by line and **-** and the Space Bar to page up and down on the right-hand side. Use **q** to exit the right-hand pane.
Searching on **tig** output is simple as well. Use **/** to search forward and **?** to search backward on both the left and right panes.
![Searching Tig][6]
That's enough to get you started navigating your commits. There are too many key bindings to cover here, but clicking **h** will display a Help menu where you can discover its navigation and command options. You can also use **/** and **?** to search the Help menu. Use **q** to exit Help.
![Tig Help][7]
### Browse revisions for a single file
Since Tig is a wrapper around **git log**, it conveniently accepts the same arguments that can be passed to **git log**. For instance, to browse the commit history for a single file, enter:
```
`tig README.md`
```
Compare this with the output of the Git command being wrapped to get a clearer view of how Tig enhances the output.
```
`git log README.md`
```
To include the patches in the raw Git output, you can add a **-p** option:
```
`git log -p README.md`
```
If you want to narrow the commits down to a specific date range, try something like this:
```
`tig --after="2017-01-01" --before="2018-05-16" -- README.md`
```
Again, you can compare this with the raw Git version:
```
`git log --after="2017-01-01" --before="2018-05-16" -- README.md`
```
### Browse who changed a file
Sometimes you want to find out who made a change to a file and why. The command:
```
`tig blame README.md`
```
is essentially a wrapper around **git blame**. As you would expect, it allows you to see who the last person was to edit a given line, and it also allows you to navigate to the commit that introduced the line. This is somewhat like the **:Gblame** command Vim's **vim-fugitive** plugin provides.
### Browse your stash
If you're like me, you may have a pile of edits in your stash. It's easy to lose track of them. You can view the latest item in your stash via: 
```
`git stash show -p stash@{0}`
```
You can find the second most recent item via:
```
`git stash show -p stash@{1}`
```
and so on. If you can recall these commands whenever you need them, you have a much sharper memory than I do.
As with the Git commands above, Tig makes it easy to enhance your Git output with a simple invocation:
```
`tig stash`
```
Try issuing this command in a repository with a populated stash. You'll be able to browse _and search_ your stash items, giving you a quick overview of everything you saved for a rainy day.
### Browse your refs
A Git ref is the hash of something you have committed. This includes files as well as branches. Using the **tig refs** command allows you to browse all of your refs and drill down to specific commits.
```
`tig refs`
```
When you're finished, use **q** to return to a previous menu.
### Browse git status
If you want to view which files have been staged and which are untracked, use **tig status**, a wrapper around **git status**.
![Tig status][8]
### Browse git grep
You can use the **grep** command to search for expressions in text files. The command **tig grep** allows you to navigate the output of **git grep**. For example:
```
`tig grep -i foo lib/Bar`
```
will navigate the output of a case-insensitive search for **foo** in the **lib/Bar** directory.
### Pipe output to Tig via STDIN
If you are piping a list of commit IDs to Tig, you must use the **\--stdin** flag so that **tig show** reads from stdin. Otherwise, **tig show** launches without input (rendering an empty screen).
```
`git rev-list --author=olaf HEAD | tig show --stdin`
```
### Add custom bindings
You can customize Tig with an [rc][9] file. Here's how you can configure Tig to your liking, using the example of adding some helpful custom key bindings.
Create a file in your home directory called **.tigrc**. Open **~/.tigrc** in your favorite editor and add:
```
# Apply the selected stash
bind stash a !?git stash apply %(stash)
# Drop the selected stash item
bind stash x !?git stash drop %(stash)
```
Run **tig stash** to browse your stash, as above. However, with these bindings in place, you can press **a** to apply an item from the stash to your repository and **x** to drop an item from the stash. Keep in mind that you'll need to perform these commands when browsing the stash _list_. If you're browsing a stash _item_, enter **q** to exit that view and press **a** or **x** to get the effect you want.
For more information, you can read more about [Tig key bindings][10].
### Wrapping up
I hope this has been a helpful demonstration of how Tig can enhance your daily workflow. Tig can do even more powerful things (such as staging lines of code), but that's outside the scope of this introductory article. There's enough information here to make you dangerous, but there's still more to explore.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/what-tig
作者:[Olaf Alders][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/oalders/users/mbbroberg/users/marcobravo
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_keyboard_laptop_development_code_woman.png?itok=vbYz6jjb (A person programming)
[2]: https://jonas.github.io/tig/
[3]: http://manpages.ubuntu.com/manpages/bionic/man1/tig.1.html
[4]: https://opensource.com/sites/default/files/uploads/tig.jpg (Tig screenshot)
[5]: https://jonas.github.io/tig/INSTALL.html
[6]: https://opensource.com/sites/default/files/uploads/tig-search.png (Searching Tig)
[7]: https://opensource.com/sites/default/files/uploads/tig-help.png (Tig Help)
[8]: https://opensource.com/sites/default/files/uploads/tig-status.png (Tig status)
[9]: https://en.wikipedia.org/wiki/Run_commands
[10]: https://github.com/jonas/tig/wiki/Bindings

View File

@ -0,0 +1,64 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (OpenAssessIt Tooklit helps improve website accessibility)
[#]: via: (https://opensource.com/article/19/6/openassessit-toolkit)
[#]: author: (Jeff Macharyas https://opensource.com/users/jeffmacharyas/users/petercheer)
OpenAssessIt Tooklit helps improve website accessibility
======
Open source application reports website accessibility problems in
human-readable format so it is easier to find and fix them.
![web development and design, desktop and browser][1]
People with disabilities often feel [excluded from society][2], despite laws like the Americans with Disabilities Act and the UK's Equality Act 2010 that were created to safeguard accessibility for people with different abilities. This is even true on the web. According to the [Web Accessibility Initiative][3]:
> _When websites and web tools are properly designed and coded, people with disabilities can use them. However, currently many sites and tools are developed with accessibility barriers that make them difficult or impossible for some people to use._
Unfortunately, because of poor website design decisions, a lot of content on the web (such as PDFs) is not accessible to people with hearing, sight, mobility, neurological, and other disabilities, and as the population rapidly ages, accessibility-related problems will increase.
Fortunately, many businesses, governments, and other organizations are taking strides to remedy inaccessible websites. There are two paths to achieving accessibility: fixing existing websites and doing the right things when sites are created. Fixing a website that has been in use for many years—with hundreds of pages, posts, images, and PDFs—can be a daunting task. Every element must be scrutinized for problems, and sometimes the fix is not obvious nor easy to accomplish.
There are many [tools][4] available to check and fix website accessibility issues, including [OpenAssessIt Toolkit][5], a new open source tool developed by [Joel Crawford-Smith][6], a self-described "relentless web accessibility fanatic" and "cat aficionado."
[OpenAssessIt][7] converts [Chrome Lighthouse][8] files into visual, human-readable web accessibility assessments. Lighthouse audits websites for accessibility issues and reports its findings as text that can be viewed in the browser or exported as a JSON file with valuable hidden data.
OpenAssessIt consumes Lighthouse's data-rich JSON files and outputs them in [Markdown][9], which is easy for people to read and edit. It also takes screenshots of each failing element and provides suggestions on how to fix each issue. Automated tools help detect accessibility issues, but a human must evaluate the validity and seriousness of each problem. "Seeing the issues visually [is] a good tool for training and development," Joel says.
The toolkit also includes [OpenDiffIt][10] to help prevent accidentally re-checking PDF files that have already been validated as accessible. It identifies new or modified PDF files by comparing user-generated CSV files from server logs or analytics, generating a unique hash for every file, and marking each one as New, Same, or Modified (based on the hash). By using OpenDiffIt, users can make sure all new or revised PDF files are validated without doing unnecessary work.
### OpenAssessIt development
Joel developed the OpenAssessIt Toolkit with Python, which he says "makes development fun."
OpenAssessIt is available as a native version that requires Python, headless Chrome, and Selenium, and as a simple Docker version, which doesn't require any Python knowledge to use. OpenDiffIt is only available as a Python version, but Joel says he hopes to make a Docker version available soon.
Joel concedes the OpenAssessIt Toolkit is still in a "primitive" stage and says it is a good option for people who don't have the money for big, enterprise-wide solutions. He hopes the software will be politely "roasted" by the open source community to help him improve it. He would also like help to give the tool a graphical user interface that is easier for less tech-savvy people to use.
Accessibility is an ongoing endeavor, and people like Joel Crawford-Smith are making the task less daunting by developing open source solutions.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/6/openassessit-toolkit
作者:[Jeff Macharyas][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jeffmacharyas/users/petercheer
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/web_browser_desktop_devlopment_design_system_computer.jpg?itok=pfqRrJgh (web development and design, desktop and browser)
[2]: https://rightsinfo.org/49-of-disabled-people-feel-excluded-from-society/
[3]: https://www.w3.org/WAI/
[4]: https://www.w3.org/WAI/ER/tools/
[5]: https://github.com/OpenAssessItToolkit
[6]: http://joelcrawfordsmith.com/
[7]: https://github.com/OpenAssessItToolkit/openassessit
[8]: https://developers.google.com/web/tools/lighthouse/
[9]: https://en.wikipedia.org/wiki/Markdown
[10]: https://github.com/OpenAssessItToolkit/opendiffit

View File

@ -0,0 +1,339 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (RPM packages explained)
[#]: via: (https://fedoramagazine.org/rpm-packages-explained/)
[#]: author: (Ankur Sinha "FranciscoD" https://fedoramagazine.org/author/ankursinha/)
RPM packages explained
======
![][1]
Perhaps the best known way the Fedora community pursues its [mission of promoting free and open source software and content][2] is by developing the [Fedora software distribution][3]. So its not a surprise at all that a very large proportion of our community resources are spent on this task. This post summarizes how this software is “packaged” and the underlying tools such as _rpm_ that make it all possible.
### RPM: the smallest unit of software
The editions and flavors ([spins][4]/[labs][5]/[silverblue][6]) that users get to choose from are all very similar. Theyre all composed of various software that is mixed and matched to work well together. What differs between them is the exact list of tools that goes into each. That choice depends on the use case that they target. The basic unit of all of these is an RPM package file.
RPM files are archives that are similar to ZIP files or tarballs. In fact, they uses compression to reduce the size of the archive. However, along with files, RPM archives also contain metadata about the package. This can be queried using the _rpm_ tool:
```
```
$ rpm -q fpaste
fpaste-0.3.9.2-2.fc30.noarch
$ rpm -qi fpaste
Name        : fpaste
Version     : 0.3.9.2
Release     : 2.fc30
Architecture: noarch
Install Date: Tue 26 Mar 2019 08:49:10 GMT
Group       : Unspecified
Size        : 64144
License     : GPLv3+
Signature   : RSA/SHA256, Thu 07 Feb 2019 15:46:11 GMT, Key ID ef3c111fcfc659b9
Source RPM  : fpaste-0.3.9.2-2.fc30.src.rpm
Build Date  : Thu 31 Jan 2019 20:06:01 GMT
Build Host  : buildhw-07.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : <https://pagure.io/fpaste>
Bug URL     : <https://bugz.fedoraproject.org/fpaste>
Summary     : A simple tool for pasting info onto sticky notes instances
Description :
It is often useful to be able to easily paste text to the Fedora
Pastebin at <http://paste.fedoraproject.org> and this simple script
will do that and return the resulting URL so that people may
examine the output. This can hopefully help folks who are for
some reason stuck without X, working remotely, or any other
reason they may be unable to paste something into the pastebin
$ rpm -ql fpaste
/usr/bin/fpaste
/usr/share/doc/fpaste
/usr/share/doc/fpaste/README.rst
/usr/share/doc/fpaste/TODO
/usr/share/licenses/fpaste
/usr/share/licenses/fpaste/COPYING
/usr/share/man/man1/fpaste.1.gz
```
```
When an RPM package is installed, the _rpm_ tools know exactly what files were added to the system. So, removing a package also removes these files, and leaves the system in a consistent state. This is why installing software using _rpm_ is preferred over installing software from source whenever possible.
### Dependencies
Nowadays, it is quite rare for software to be completely self-contained. Even [fpaste][7], a simple one file Python script, requires that the Python interpreter be installed. So, if the system does not have Python installed (highly unlikely, but possible), _fpaste_ cannot be used. In packager jargon, we say that “Python is a **run-time dependency** of _fpaste_“.
When RPM packages are built (the process of building RPMs is not discussed in this post), the generated archive includes all of this metadata. That way, the tools interacting with the RPM package archive know what else must must be installed so that fpaste works correctly:
```
```
$ rpm -q --requires fpaste
/usr/bin/python3
python3
rpmlib(CompressedFileNames) &amp;lt;= 3.0.4-1
rpmlib(FileDigests) &amp;lt;= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) &amp;lt;= 4.0-1
rpmlib(PayloadIsXz) &amp;lt;= 5.2-1
$ rpm -q --provides fpaste
fpaste = 0.3.9.2-2.fc30
$ rpm -qi python3
Name        : python3
Version     : 3.7.3
Release     : 3.fc30
Architecture: x86_64
Install Date: Thu 16 May 2019 18:51:41 BST
Group       : Unspecified
Size        : 46139
License     : Python
Signature   : RSA/SHA256, Sat 11 May 2019 17:02:44 BST, Key ID ef3c111fcfc659b9
Source RPM  : python3-3.7.3-3.fc30.src.rpm
Build Date  : Sat 11 May 2019 01:47:35 BST
Build Host  : buildhw-05.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : <https://www.python.org/>
Bug URL     : <https://bugz.fedoraproject.org/python3>
Summary     : Interpreter of the Python programming language
Description :
Python is an accessible, high-level, dynamically typed, interpreted programming
language, designed with an emphasis on code readability.
It includes an extensive standard library, and has a vast ecosystem of
third-party libraries.
The python3 package provides the "python3" executable: the reference
interpreter for the Python language, version 3.
The majority of its standard library is provided in the python3-libs package,
which should be installed automatically along with python3.
The remaining parts of the Python standard library are broken out into the
python3-tkinter and python3-test packages, which may need to be installed
separately.
Documentation for Python is provided in the python3-docs package.
Packages containing additional libraries for Python are generally named with
the "python3-" prefix.
$ rpm -q --provides python3
python(abi) = 3.7
python3 = 3.7.3-3.fc30
python3(x86-64) = 3.7.3-3.fc30
python3.7 = 3.7.3-3.fc30
python37 = 3.7.3-3.fc30
```
```
### Resolving RPM dependencies
While _rpm_ knows the required dependencies for each archive, it does not know where to find them. This is by design: _rpm_ only works on local files and must be told exactly where they are. So, if you try to install a single RPM package, you get an error if _rpm_ cannot find the packages run-time dependencies. This example tries to install a package downloaded from the Fedora package set:
```
```
$ ls
python3-elephant-0.6.2-3.fc30.noarch.rpm
$ rpm -qpi python3-elephant-0.6.2-3.fc30.noarch.rpm
Name        : python3-elephant
Version     : 0.6.2
Release     : 3.fc30
Architecture: noarch
Install Date: (not installed)
Group       : Unspecified
Size        : 2574456
License     : BSD
Signature   : (none)
Source RPM  : python-elephant-0.6.2-3.fc30.src.rpm
Build Date  : Fri 14 Jun 2019 17:23:48 BST
Build Host  : buildhw-02.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : <http://neuralensemble.org/elephant>
Bug URL     : <https://bugz.fedoraproject.org/python-elephant>
Summary     : Elephant is a package for analysis of electrophysiology data in Python
Description :
Elephant - Electrophysiology Analysis Toolkit Elephant is a package for the
analysis of neurophysiology data, based on Neo.
$ rpm -qp --requires python3-elephant-0.6.2-3.fc30.noarch.rpm
python(abi) = 3.7
python3.7dist(neo) &gt;= 0.7.1
python3.7dist(numpy) &gt;= 1.8.2
python3.7dist(quantities) &gt;= 0.10.1
python3.7dist(scipy) &gt;= 0.14.0
python3.7dist(six) &gt;= 1.10.0
rpmlib(CompressedFileNames) &amp;lt;= 3.0.4-1
rpmlib(FileDigests) &amp;lt;= 4.6.0-1
rpmlib(PartialHardlinkSets) &amp;lt;= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) &amp;lt;= 4.0-1
rpmlib(PayloadIsXz) &amp;lt;= 5.2-1
$ sudo rpm -i ./python3-elephant-0.6.2-3.fc30.noarch.rpm
error: Failed dependencies:
        python3.7dist(neo) &gt;= 0.7.1 is needed by python3-elephant-0.6.2-3.fc30.noarch
        python3.7dist(quantities) &gt;= 0.10.1 is needed by python3-elephant-0.6.2-3.fc30.noarch
```
```
In theory, one could download all the packages that are required for _python3-elephant_, and tell _rpm_ where they all are, but that isnt convenient. What if _python3-neo_ and _python3-quantities_ have other run-time requirements and so on? Very quickly, the **dependency chain** can get quite complicated.
#### Repositories
Luckily, _dnf_ and friends exist to help with this issue. Unlike _rpm_, _dnf_ is aware of **repositories**. Repositories are collections of packages, with metadata that tells _dnf_ what these repositories contain. All Fedora systems come with the default Fedora repositories enabled by default:
```
```
$ sudo dnf repolist
repo id              repo name                             status
fedora               Fedora 30 - x86_64                    56,582
fedora-modular       Fedora Modular 30 - x86_64               135
updates              Fedora 30 - x86_64 - Updates           8,573
updates-modular      Fedora Modular 30 - x86_64 - Updates     138
updates-testing      Fedora 30 - x86_64 - Test Updates      8,458
```
```
Theres more information on [these repositories][8], and how they [can be managed][9] on the Fedora quick docs.
_dnf_ can be used to query repositories for information on the packages they contain. It can also search them for software, or install/uninstall/upgrade packages from them:
```
```
$ sudo dnf search elephant
Last metadata expiration check: 0:05:21 ago on Sun 23 Jun 2019 14:33:38 BST.
============================================================================== Name &amp;amp; Summary Matched: elephant ==============================================================================
python3-elephant.noarch : Elephant is a package for analysis of electrophysiology data in Python
python3-elephant.noarch : Elephant is a package for analysis of electrophysiology data in Python
$ sudo dnf list \\*elephant\\*
Last metadata expiration check: 0:05:26 ago on Sun 23 Jun 2019 14:33:38 BST.
Available Packages
python3-elephant.noarch      0.6.2-3.fc30      updates-testing
python3-elephant.noarch      0.6.2-3.fc30              updates
```
```
#### Installing dependencies
When installing the package using _dnf_ now, it _resolves_ all the required dependencies, then calls _rpm_ to carry out the _transaction_:
```
```
$ sudo dnf install python3-elephant
Last metadata expiration check: 0:06:17 ago on Sun 23 Jun 2019 14:33:38 BST.
Dependencies resolved.
==============================================================================================================================================================================================
 Package                                      Architecture                     Version                                                        Repository                                 Size
==============================================================================================================================================================================================
Installing:
 python3-elephant                             noarch                           0.6.2-3.fc30                                                   updates-testing                           456 k
Installing dependencies:
 python3-neo                                  noarch                           0.8.0-0.1.20190215git49b6041.fc30                              fedora                                    753 k
 python3-quantities                           noarch                           0.12.2-4.fc30                                                  fedora                                    163 k
Installing weak dependencies:
 python3-igor                                 noarch                           0.3-5.20150408git2c2a79d.fc30                                  fedora                                     63 k
Transaction Summary
==============================================================================================================================================================================================
Install  4 Packages
Total download size: 1.4 M
Installed size: 7.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch.rpm                                                                                                  222 kB/s |  63 kB     00:00
(2/4): python3-elephant-0.6.2-3.fc30.noarch.rpm                                                                                                               681 kB/s | 456 kB     00:00
(3/4): python3-quantities-0.12.2-4.fc30.noarch.rpm                                                                                                            421 kB/s | 163 kB     00:00
(4/4): python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch.rpm                                                                                               840 kB/s | 753 kB     00:00
\----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                         884 kB/s | 1.4 MB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                      1/1
  Installing       : python3-quantities-0.12.2-4.fc30.noarch                                                                                                                              1/4
  Installing       : python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch                                                                                                                    2/4
  Installing       : python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch                                                                                                                 3/4
  Installing       : python3-elephant-0.6.2-3.fc30.noarch                                                                                                                                 4/4
  Running scriptlet: python3-elephant-0.6.2-3.fc30.noarch                                                                                                                                 4/4
  Verifying        : python3-elephant-0.6.2-3.fc30.noarch                                                                                                                                 1/4
  Verifying        : python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch                                                                                                                    2/4
  Verifying        : python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch                                                                                                                 3/4
  Verifying        : python3-quantities-0.12.2-4.fc30.noarch                                                                                                                              4/4
Installed:
  python3-elephant-0.6.2-3.fc30.noarch   python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch   python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch   python3-quantities-0.12.2-4.fc30.noarch
Complete!
```
```
Notice how dnf even installed _python3-igor_, which isnt a direct dependency of _python3-elephant_.
### DnfDragora: a graphical interface to DNF
While technical users may find _dnf_ straightforward to use, it isnt for everyone. [Dnfdragora][10] addresses this issue by providing a graphical front end to _dnf_.
![dnfdragora \(version 1.1.1-2 on Fedora 30\) listing all the packages installed on a system.][11]
From a quick look, dnfdragora appears to provide all of _dnf_s main functions.
There are other tools in Fedora that also manage packages. GNOME Software, and Discover are two examples. GNOME Software is focused on graphical applications only. You cant use the graphical front end to install command line or terminal tools such as _htop_ or _weechat_. However, GNOME Software does support the installation of [Flatpaks][12] and Snap applications which _dnf_ does not. So, they are different tools with different target audiences, and so provide different functions.
This post only touches the tip of the iceberg that is the life cycle of software in Fedora. This article explained what RPM packages are, and the main differences between using _rpm_ and using _dnf_.
In future posts, well speak more about:
* The processes that are needed to create these packages
* How the community tests them to ensure that they are built correctly
* The infrastructure that the community uses to get them to community users in future posts.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/rpm-packages-explained/
作者:[Ankur Sinha "FranciscoD"][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/ankursinha/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2019/06/rpm.png-816x345.jpg
[2]: https://docs.fedoraproject.org/en-US/project/#_what_is_fedora_all_about
[3]: https://getfedora.org
[4]: https://spins.fedoraproject.org/
[5]: https://labs.fedoraproject.org/
[6]: https://silverblue.fedoraproject.org/
[7]: https://src.fedoraproject.org/rpms/fpaste
[8]: https://docs.fedoraproject.org/en-US/quick-docs/repositories/
[9]: https://docs.fedoraproject.org/en-US/quick-docs/adding-or-removing-software-repositories-in-fedora/
[10]: https://src.fedoraproject.org/rpms/dnfdragora
[11]: https://fedoramagazine.org/wp-content/uploads/2019/06/dnfdragora-1024x558.png
[12]: https://fedoramagazine.org/getting-started-flatpak/

View File

@ -0,0 +1,209 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to Install and Use R on Ubuntu)
[#]: via: (https://itsfoss.com/install-r-ubuntu/)
[#]: author: (Sergiu https://itsfoss.com/author/sergiu/)
How to Install and Use R on Ubuntu
======
_**Brief: This tutorial teaches you to install R on Ubuntu. Youll also learn how to run your first R program in Ubuntu using various methods.**_
[R][1], together with Python, is the most commonly used programming language for statistical computing and graphics, making it easy to work with data. With the growing interest in data analysis, data visualization, data science (the machine learning craze), it is now more popular than ever and is a great tool for anyone looking to dive into this fields.
The good thing about R is that its syntax is pretty straight-forward and you can find many tutorials/guides on how R is used in the real world.
In this article, Ill cover how to install R on Ubuntu Linux. Ill also show you how to run your first R program in Linux.
![][2]
### Installing R on Ubuntu
**R** is included in the Ubuntu repositories. It can be easily installed using:
```
sudo apt install r-base
```
Do note that this may install a slightly older version. At the time of writing this article, Ubuntu offers version 3.4 whereas the latest is version 3.6.
_I advise sticking with whichever version Ubuntu provides unless you must use the newer version._
In order to get the latest version (or any specific version for that matter), you must use **[CRAN][3]** (The Comprehensive R Archive Network). This is a list of mirrors for downloading the latest version of R. Click on the next section to learn how to install the latest version of R on Ubuntu.
**How to install latest R version 3.6 on Ubuntu (click to expand)**
To get the R version 3.6, you need to add the mirror to your sources list. I have simplified it for you in this command:
```
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran35/"
```
Now you should add the key for the repository:
```
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
```
And then update the repository information and install R:
```
sudo apt update
sudo apt install r-base
```
Thats it.
[][4]
Suggested read  How to Create a Bootable Windows 10 USB in Linux
### Using R programming on Ubuntu
R has more than one use. Ill go over several methods you can use to run R programs.
#### Interactive Mode in R
After having installed **R**, you can run the console using:
```
R
```
This should open up the interactive mode:
![R Interactive Mode][5]
This R console is very similar to the **Python** and **Haskell** interactive prompts. You can enter any **R** command and you can do basic mathematical computations. For example:
```
> 20+40
[1] 60
> print ("Hello World!")
[1] "Hello World!"
```
You could test plotting too:
![R Plotting][6]
You can **quit** using **q()** or pressing **CTRL+c**. When doing so, you will be asked if you want to save a workspace ****image; a workspace ****is an environment for created variables.
#### Running R program with Rscript
The second way to run R programs is in directly on the Linux command line. You can do so using **RScript**, a utility included with **r-base**.
First, you have to save your R program to a file using your [favorite code editor on Linux][7]. The file extension should be .r.
This is my sample R program printing “Hello World”. I have saved it in a file name hello.r.
```
print("Hello World!")
a <- rnorm(100)
plot(a)
```
To run the R program, use the command like this:
```
Rscript hello.r
```
You should get back the output:
```
[1] "Hello World!"
```
The plot is going to be saved in the working directory, to a file named **Rplots.pdf**:
![Rplots.pdf][8]
**Note:** _**Rscript**_ _doesnt load the_ _**methods**_ _package by default. Make sure to [load it explicitly][9] in your script_.
#### Run R scripts with RStudio in Ubuntu
The most common way to use **R** is using [RStudio][10], a great cross-platform open source IDE. You can [install it using deb file in Ubuntu][11]. Download the deb file from the link below. Youll have to scroll down a bit to locate the DEB files for Ubuntu.
[Download RStudio for Ubuntu][12]
Once you download the DEB file, just double click on it to install it.
Once installed, search for it in the menu and start it. The home window of the application should pop up:
![RStudio Home][13]
Here you have a working console, just like the one you got in the terminal with the **R** command.
[][14]
Suggested read  Setting Up Python Environments In Linux and Unix Systems
To create a file, in the top bar click on **File** and select **New File &gt; Rscript** (or **CTRL+Shift+n)**:
![RStudio New File][15]
Press **CTRL+s** to save the file and choose a location and a name it:
![RStudio Save File][16]
After doing so, click on **Session &gt; Set Working Directory &gt; To Source File Location** to change the working directory to the location of your script:
![RStudio Working Directory][17]
You are now ready to go! Write in your code and click run. You should be able to see output both in the console and in the plotting window:
![RStudio Run][18]
**Wrapping Up**
In this article, I showed you step by step how to get started using the **R** programming language on an Ubuntu system. I covered several ways you can go about this: **R console** useful for testing, **Rscript** for the terminal lover, **RStudio** the IDE for your needs.
Whether you are willing to get into data science or simply love statistics, **R** is a good addition to your programming arsenal, being the perfect tool for analyzing data.
If you are absolutely new to R, let me recommend you this excellent book that will teach you fundamentals of R. Its available on Amazon Kindle.
Preview | Product | Price |
---|---|---|---
![Learn R in a Day][19] ![Learn R in a Day][19] | [Learn R in a Day][20] | | [Buy on Amazon][21]
Do you use **R**? Are you just getting into it? Let us know more about how and why you use or want to learn to use **R**!
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-r-ubuntu/
作者:[Sergiu][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/sergiu/
[b]: https://github.com/lujun9972
[1]: https://www.r-project.org/
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/install-r-on-ubuntu.jpg?resize=800%2C450&ssl=1
[3]: https://cran.r-project.org/
[4]: https://itsfoss.com/bootable-windows-usb-linux/
[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/r_interactive_mode.png?fit=800%2C516&ssl=1
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/r_plotting.jpg?fit=800%2C434&ssl=1
[7]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/rplots_pdf.png?fit=800%2C539&ssl=1
[9]: https://www.dummies.com/programming/r/how-to-install-load-and-unload-packages-in-r/
[10]: https://www.rstudio.com/
[11]: https://itsfoss.com/install-deb-files-ubuntu/
[12]: https://www.rstudio.com/products/rstudio/download/#download
[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_home.jpg?fit=800%2C603&ssl=1
[14]: https://itsfoss.com/python-setup-linux/
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_new_file.png?fit=800%2C392&ssl=1
[16]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_save_file.png?fit=800%2C258&ssl=1
[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_working_directory.png?fit=800%2C394&ssl=1
[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_run.jpg?fit=800%2C626&ssl=1
[19]: https://i1.wp.com/images-na.ssl-images-amazon.com/images/I/51oIJTbUlnL._SL160_.jpg?ssl=1
[20]: https://www.amazon.com/Learn-R-Day-Steven-Murray-ebook/dp/B00GC2LKOK?SubscriptionId=AKIAJ3N3QBK3ZHDGU54Q&tag=chmod7mediate-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00GC2LKOK (Learn R in a Day)
[21]: https://www.amazon.com/Learn-R-Day-Steven-Murray-ebook/dp/B00GC2LKOK?SubscriptionId=AKIAJ3N3QBK3ZHDGU54Q&tag=chmod7mediate-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00GC2LKOK (Buy on Amazon)

Some files were not shown because too many files have changed in this diff Show More