From e62bc63d519f6378393dd04b5f7462d032391991 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 28 Jun 2019 09:19:53 +0800 Subject: [PATCH 01/85] translating --- sources/tech/20190320 4 cool terminal multiplexers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20190320 4 cool terminal multiplexers.md b/sources/tech/20190320 4 cool terminal multiplexers.md index e8650b4f56..2dbdfc6770 100644 --- a/sources/tech/20190320 4 cool terminal multiplexers.md +++ b/sources/tech/20190320 4 cool terminal multiplexers.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 0d63731763d6d386cd7a9e1eef2bc5c13f6b6c8e Mon Sep 17 00:00:00 2001 From: hopefully2333 <787016457@qq.com> Date: Fri, 28 Jun 2019 22:41:57 +0800 Subject: [PATCH 02/85] Rename sources/news/20190606 Cisco to buy IoT security, management firm Sentryo.md to translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md --- ...20190606 Cisco to buy IoT security, management firm Sentryo.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20190606 Cisco to buy IoT security, management firm Sentryo.md (100%) diff --git a/sources/news/20190606 Cisco to buy IoT security, management firm Sentryo.md b/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md similarity index 100% rename from sources/news/20190606 Cisco to buy IoT security, management firm Sentryo.md rename to translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md From cdb708ff6730f67ad8f71e0f156d65a2a2a5616d Mon Sep 17 00:00:00 2001 From: hopefully2333 <787016457@qq.com> Date: Fri, 28 Jun 2019 22:49:19 +0800 Subject: [PATCH 03/85] translated by hopefully2333 translated by hopefully2333 --- ...y IoT security, management firm Sentryo.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md b/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md index cc90793305..8654707218 100644 --- a/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md +++ b/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md @@ -7,63 +7,63 @@ [#]: 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 +思科收购了物联网安全管理公司 Sentryo ====== -Buying Sentryo will give Cisco support for anomaly and real-time threat detection for the industrial internet of things. +买下 Sentryo 将给思科在工业互联网的异常和实时威胁检测两方面予以支持。 ![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. +为了扩展自己的物联网安全管理产品,思科计划收购 Sentryo,这是一家位于法国的公司,Sentryo 为工业互联网提供异常检测和实时威胁检测。 -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. +Sentryo 成立于 2014 年,产品包括 ICS CyberVision - 一种用于资产库存、网络监控和威胁情报的平台 - 以及 CyberVision 网络边界传感器,这用于分析网络流量。 -**More on IoT:** +**更多关于物联网的信息:** - * [What is the IoT? How the internet of things works][4] - * [What is edge computing and how it’s 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] + * [什么是物联网?物联网如何运行?][4] + * [什么是边缘计算,这会如何改变我们的网络?][5] + * [最强的物联网公司][6] + * [10 个值得关注的热门物联网创业公司][7] + * [在物联网领域赚钱的六种方法][8] + * [什么是数字双胞胎技术? [以及它为什么重要]][9] + * [区块链,以服务为中心的网络是物联网成功的关键][10] + * [物联网的网络和安全作为基础][11] + * [构建完整的物联网网络必须优先完成][12] + * [什么是工业互联网? [为什么风险如此之高]][13] -“We have incorporated Sentryo’s edge sensor and our industrial networking hardware with Cisco’s IOx application framework,” wrote Rob Salvagno, Cisco vice president of Corporate Development and Cisco Investments in a [blog][14] about the proposed buy. +“我们通过思科的 IOx 应用框架将 Sentryo 的边缘传感器和我们的工业网络硬件相结合”,思科企业发展和思科投资的副总裁 Rob Salvagno 在一篇关于计划收购的博客中写道。 -“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.” +“我们相信连接是物联网项目的基础,通过释放网络的力量,我们可以大大提高运作的效率并发现新的商业机会。随着 Sentryo 的加入,思科可以为系统控制工程师提供更加深入的资产可见度,以此来对系统进行优化,检测异常并保护他们的网络” -Gartner [wrote][15] of Sentryo’s 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 organization’s OT. Many OT networks not only are geographically dispersed, but also are complex and consist of hundreds of thousands of components.” +Gartner 对 Sentryo 的系统写道:“ICS CyberVision 这个产品为它的客户提供了可见性”所有的 OT 用户都将了解 OT 网络,而不仅仅是 IT 技术人员。随着黑客和监管机构越来越关注工业控制系统,一个组织的 OT 拥有完整的可见性是至关重要的一件事。很多的 OT 网络不仅在地理上位置分散,而且也很复杂,由成千上万的组件组成 -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." +Frost & Sullivan 的工业分析师 Nandini Natarajan 表示,Sentryo 的 ICS CyberVision 让企业能够确保其工业运作的连续性、动态弹性和安全性,并以此预防可能的网络攻击。“它将在标签的表单中使用一种独特的 ‘通用 OT 语言’ 来自动描述资产和通信流程,它会用纯文本的方式描述每个资产在做什么。ICS CyberVision 可以让任何人都能立刻查看一台设备的类别和行为;它利用人工智能算法提供很多不同的分析视图,来让用户深入了解到一个典型的工业控制系统可以产生多么庞大的数据。Sentryo 可以轻松查看重要或相关的信息” -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. +Natarajan 表示,除此之外,Sentryo 的平台使用深度数据包检测(DPI)从工业设备之间的通信数据包里提取信息。DPI 引擎通过边缘计算架构进行部署,它可以运行在 Sentryo 传感器设备上,也可以在已经安装好的网络设备上运行。因此,Sentryo 可以将可见性和网络安全特性嵌入进工业网络中,而非部署带外监控网络。 + +**[[好消息!好消息!通过 PluralSight 的综合在线课程,成为一名光荣的认证信息安全系统专家,现在免费提供 10 天试用!走过路过不要错过!][17] ]** -**[[Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][17] ]** +Sentryo 的技术将扩大思科在物联网上的总体计划。在今年一月,思科推出了一整套的交换机、软件、开发工具和蓝图,这些东西将用于把物联网、基于意图联网的工业网络、传统信息安全、传统信息监控、应用开发支持融为一体。 -Sentryo’s technology will broaden [Cisco’s][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. +这个新平台可以通过思科的 DNA 中心进行管理,让客户能将他们的物联网、工业网络控制和他们的商业 IT 世界融为一体。 -The new platforms can be managed by Cisco’s DNA Center, and Cisco IoT Field Network Director, letting customers fuse their IoT and industrial-network control with their business IT world. +DNA 中心是思科用于企业网络的中央管理工具,具有自动化、确保设置、结构配置、基于策略进行分割的功能。它也是公司 IBN 计划的核心,用于主动向客户提供动态自动化完成网络和策略变更的能力,并在这个过程中确保数据的交付。物联网领域网络的主管是软件,这个软件管理思科工业、连接的网格路由器、终端这多个业务的网络。 -DNA Center is Cisco’s 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 company’s 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 表示,公司希望 Sentryo 的技术能以多种方式帮助物联网客户: -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: +支持网络的被动 DPI 功能,这用于发现 IOT 和 OT 设备,并且在设备和系统之间建立起通信模式。Sentryo 的传感器可以在思科的 IOx 框架里进行本地部署,并且可以内置到这些设备运行的工业网络中,而不是添加额外的硬件。 -Network-enabled, passive DPI capabilities to discover IoT and OT assets, and establish communication patterns between devices and systems. Sentryo’s sensor is natively deployable on Cisco’s IOx framework and can be built into the industrial network these devices run on instead of adding additional hardware. +随着设备识别和通信模式的建立,思科将把 DNA 中心和身份识别服务引擎(ISE)集成到一起,以便客户能够很轻松地定义分割策略。这种集成将使 OT 团队能够利用 IT 安全团队的专业知识来保护他们的环境,而不会对运营的流程造成风险。 -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. +这些物联网设备缺乏现代嵌入式软件和安全功能,网络分段将成为允许运作设备向合法系统进行通信的关键技术,并降低像我们看见的 WannaCry 和 Norsk Hydro 那样网络安全事件的风险。 -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]. +据 Crunchbase 称,Sentryo 的每年预计收入为 350 万美元,与 Cymmetria,Team8,和 Indegy 的竞争最为激烈。此次收购预期将在思科 2020 财年的第一季度 - 2019 年 10 月 26 日 - 结束前完成。思科并未详细披露此次收购的财务细节。 -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 Cisco’s Q1 Fiscal Year 2020 -- October 26, 2019. Financial details of the acquisition were not detailed. - -Sentryo is Cisco’s second acquisition this year. It bought Singularity for its network analytics technology in January. In 2018 Cisco bought six companies including Duo security software. +Sentryo 是思科今年的第二次收购。思科在今年一月收购了 Singularity,这是为了这家公司的网络分析技术。在 2018 年,思科收购了包含 Duo security software 在内的 6 家公司。 ** ** -Join the Network World communities on [Facebook][25] and [LinkedIn][26] to comment on topics that are top of mind. +加入 Facebook 和 LinkedIn 上的网络世界社区,评论最重要的主题。 -------------------------------------------------------------------------------- @@ -71,7 +71,7 @@ via: https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-mana 作者:[Michael Cooney][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[hopefully2333](https://github.com/hopefully2333) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 03651137d9168a8596bf29664a53b28626f1e142 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 29 Jun 2019 00:53:33 +0800 Subject: [PATCH 04/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190628=20How=20to?= =?UTF-8?q?=20Install=20and=20Use=20R=20on=20Ubuntu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190628 How to Install and Use R on Ubuntu.md --- ...0628 How to Install and Use R on Ubuntu.md | 209 ++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 sources/tech/20190628 How to Install and Use R on Ubuntu.md diff --git a/sources/tech/20190628 How to Install and Use R on Ubuntu.md b/sources/tech/20190628 How to Install and Use R on Ubuntu.md new file mode 100644 index 0000000000..84699fbc8e --- /dev/null +++ b/sources/tech/20190628 How to Install and Use R on Ubuntu.md @@ -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. You’ll 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, I’ll cover how to install R on Ubuntu Linux. I’ll 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 +``` + +That’s 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. I’ll 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**_ _doesn’t 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. You’ll 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 > 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 > Set Working Directory > 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. It’s 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) From e03f4d03cd31d2c9cc8b53c1b9737fe4dbc5e296 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 29 Jun 2019 00:55:40 +0800 Subject: [PATCH 05/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190628=20FreeDOS?= =?UTF-8?q?=20turns=2025=20years=20old:=20An=20origin=20story?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md --- ...DOS turns 25 years old- An origin story.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md diff --git a/sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md b/sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md new file mode 100644 index 0000000000..16464c696a --- /dev/null +++ b/sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md @@ -0,0 +1,95 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: 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) + +FreeDOS turns 25 years old: An origin story +====== +The operating system's history is a great example of the open source +software model: developers working together to create something. +![FreeDOS fish logo and command prompt on computer][1] + +June 29 marks the 25th anniversary of [FreeDOS][2]. That's a major milestone for any open source software project, and I'm proud of the work that we've done on it over the past quarter century. I'm also proud of how we built FreeDOS because it is a great example of how the open source software model works. + +For its time, MS-DOS was a powerful operating system. I'd used DOS for years, ever since my parents replaced our aging Apple II computer with a newer IBM machine. MS-DOS provided a flexible command line, which I quite liked and that came in handy to manipulate my files. Over the years, I learned how to write my own utilities in C to expand its command-line capabilities even further. + +Around 1994, Microsoft announced that its next planned version of Windows would do away with MS-DOS. But I liked DOS. Even though I had started migrating to Linux, I still booted into MS-DOS to run applications that Linux didn't have yet. + +I figured that if we wanted to keep DOS, we would need to write our own. And that's how FreeDOS was born. + +On June 29, 1994, I made a small announcement about my idea to the comp.os.msdos.apps newsgroup on Usenet. + +> ANNOUNCEMENT OF PD-DOS PROJECT: +> A few months ago, I posted articles relating to starting a public domain version of DOS. The general support for this at the time was strong, and many people agreed with the statement, "start writing!" So, I have… +> +> Announcing the first effort to produce a PD-DOS. I have written up a "manifest" describing the goals of such a project and an outline of the work, as well as a "task list" that shows exactly what needs to be written. I'll post those here, and let discussion follow. + +While I announced the project as PD-DOS (for "public domain," although the abbreviation was meant to mimic IBM's "PC-DOS"), we soon changed the name to Free-DOS and later FreeDOS. + +I started working on it right away. First, I shared the utilities I had written to expand the DOS command line. Many of them reproduced MS-DOS features, including CLS, DATE, DEL, FIND, HELP, and MORE. Some added new features to DOS that I borrowed from Unix, such as TEE and TRCH (a simple implementation of Unix's tr). I contributed over a dozen FreeDOS utilities + +By sharing my utilities, I gave other developers a starting point. And by sharing my source code under the [GNU General Public License][3] (GNU GPL), I implicitly allowed others to add new features and fix bugs. + +Other developers who saw FreeDOS taking shape contacted me and wanted to help. Tim Norman was one of the first; Tim volunteered to write a command shell (COMMAND.COM, later named FreeCOM). Others contributed utilities that replicated or expanded the DOS command line. + +We released our first alpha version as soon as possible. Less than three months after announcing FreeDOS, we had an Alpha 1 distribution that collected our utilities. By the time we released Alpha 5, FreeDOS boasted over 60 utilities. And FreeDOS included features never imagined in MS-DOS, including internet connectivity via a PPP dial-up driver and dual-monitor support using a primary VGA monitor and a secondary Hercules Mono monitor. + +New developers joined the project, and we welcomed them. By October 1998, FreeDOS had a working kernel, thanks to Pat Villani. FreeDOS also sported a host of new features that brought not just parity with MS-DOS but surpassed MS-DOS, including ANSI support and a print spooler that resembled Unix lpr. + +You may be familiar with other milestones. We crept our way towards the 1.0 label, finally releasing FreeDOS 1.0 in September 2006, FreeDOS 1.1 in January 2012, and FreeDOS 1.2 in December 2016. MS-DOS stopped being a moving target long ago, so we didn't need to update as frequently after the 1.0 release. + +Today, FreeDOS is a very modern DOS. We've moved beyond "classic DOS," and now FreeDOS features lots of development tools such as compilers, assemblers, and debuggers. We have lots of editors beyond the plain DOS Edit editor, including Fed, Pico, TDE, and versions of Emacs and Vi. FreeDOS supports networking and even provides a simple graphical web browser (Dillo). And we have tons of new utilities, including many that will make Linux users feel at home. + +FreeDOS got where it is because developers worked together to create something. In the spirit of open source software, we contributed to each other's work by fixing bugs and adding new features. We treated our users as co-developers; we always found ways to include people, whether they were writing code or writing documentation. And we made decisions through consensus based on merit. If that sounds familiar, it's because those are the core values of open source software: transparency, collaboration, release early and often, meritocracy, and community. That's the [open source way][4]! + +I encourage you to download FreeDOS 1.2 and give it a try. + +### More resources + + * [FreeDOS website][2] + * [FreeDOS wiki][5] + * [Download FreeDOS 1.2][6] + * [Free ebooks about FreeDOS][7] + * [A gentle introduction to FreeDOS][8] + * [The origin and evolution of FreeDOS][9] + * [4 cool facts you should know about FreeDOS][10] + * [How to upgrade your system BIOS using FreeDOS][11] + * [Celebrating 24 years of FreeDOS: Useful commands cheat sheet][12] + * [How to run DOS programs in Linux][13] + * [Keeping DOS alive and kicking with open source][14] + * [Running DOS on the Raspberry Pi][15] + + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/6/freedos-anniversary + +作者:[Jim Hall][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/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://opensource.com/article/18/4/gentle-introduction-freedos +[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://opensource.com/article/17/10/run-dos-applications-linux +[14]: https://opensource.com/life/16/9/interview-jim-hall-freedos +[15]: https://opensource.com/article/18/3/can-you-run-dos-raspberry-pi From 9e41c704c06e43b7ee95ca77591039eac46136e8 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 29 Jun 2019 00:57:10 +0800 Subject: [PATCH 06/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190628=20Undo=20r?= =?UTF-8?q?eleases=20Live=20Recorder=205.0=20for=20Linux=20debugging?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md --- ...s Live Recorder 5.0 for Linux debugging.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md diff --git a/sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md b/sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md new file mode 100644 index 0000000000..4e383f1fe6 --- /dev/null +++ b/sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md @@ -0,0 +1,55 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Undo releases Live Recorder 5.0 for Linux debugging) +[#]: via: (https://www.networkworld.com/article/3405584/undo-releases-live-recorder-5-0-for-linux-debugging.html) +[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/) + +Undo releases Live Recorder 5.0 for Linux debugging +====== + +![André Gustavo Stumpf \(CC BY 2.0\)][1] + +Linux debugging has taken a giant step forward with the release of Live Recorder 5.0 from Undo. Just released on Wednesday, this product makes debugging on multi-process systems significantly easier. Based on flight recorder technology, it delves more deeply into processes to provide insight into what’s going on within each process. This includes memory, threads, program flow, service calls and more. To make this possible, Live Recorder 5.0's record, replay and debugging capabilities have been enhanced with the ability to: + + * Record the exact order in which processes altered shared memory variables. It is even possible to zero in on specific variables and skip backward to the last line of code in any process that altered the variable. + * Expose potential defects by randomizing thread execution to help reveal race conditions, crashes and other multi-threading defects. + * Record and replay the execution of individual Kubernetes and Docker containers to help resolve defects faster in microservices environments + + + +The Undo Live Recorder enables engineering teams to record and replay the execution of any software program -- no matter how complex -- and to diagnose and fix the root cause of any issue in test or production. + +Depending on your license, Live Recorder can be used on the command line with the **live-record** command that is somewhat similar to strace though, instead of printing system calls and signals, it creates an "Undo recording". Captured failings in recordings can then be debugged (far more effective than grappling with core dumps!). These recordings can also be can be shared with other members of the staff and can be replayed with the reversible debugger to further investigate the cause of the crash or other problem. + +The Undo Engine is supported on the following Linux distributions: + + * Red Hat Enterprise Linux 6.8, 6.9, 6.10, 7.4, 7.5, 7.6 and 8.0 + * Fedora 28, 29 and 30 + * SuSE Linux Enterprise Server 12.3, 12.4 and 15 + * Ubuntu 16.04 LTS, 18.04 LTS, 18.10 and 19.04 + + + +Undo is a fast-growing, venture-backed technology start-up based in San Francisco and Cambridge, UK. They claim that the Live Recorder provides 100% certainty about the factors that led to any software failure -- even in the most complex software environments. + +Join the Network World communities on [Facebook][2] and [LinkedIn][3] to comment on topics that are top of mind. + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3405584/undo-releases-live-recorder-5-0-for-linux-debugging.html + +作者:[Sandra Henry-Stocker][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/Sandra-Henry_Stocker/ +[b]: https://github.com/lujun9972 +[1]: https://images.idgesg.net/images/article/2019/06/flight_data_recorder-100800552-large.jpg +[2]: https://www.facebook.com/NetworkWorld/ +[3]: https://www.linkedin.com/company/network-world From 761411ac588871b29e175b2968135e069225ffe1 Mon Sep 17 00:00:00 2001 From: sea0 <4127401@qq.com> Date: Sat, 29 Jun 2019 08:39:48 +0800 Subject: [PATCH 07/85] Update and rename sources/news/20190624 Raspberry Pi 4 is here.md to translated/news/20190624 Raspberry Pi 4 is here.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- .../news/20190624 Raspberry Pi 4 is here.md | 92 ------------------ .../news/20190624 Raspberry Pi 4 is here.md | 95 +++++++++++++++++++ 2 files changed, 95 insertions(+), 92 deletions(-) delete mode 100644 sources/news/20190624 Raspberry Pi 4 is here.md create mode 100644 translated/news/20190624 Raspberry Pi 4 is here.md diff --git a/sources/news/20190624 Raspberry Pi 4 is here.md b/sources/news/20190624 Raspberry Pi 4 is here.md deleted file mode 100644 index bba028bf68..0000000000 --- a/sources/news/20190624 Raspberry Pi 4 is here.md +++ /dev/null @@ -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) diff --git a/translated/news/20190624 Raspberry Pi 4 is here.md b/translated/news/20190624 Raspberry Pi 4 is here.md new file mode 100644 index 0000000000..1d5e5a282a --- /dev/null +++ b/translated/news/20190624 Raspberry Pi 4 is here.md @@ -0,0 +1,95 @@ +[#]: 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) + +树莓派 4 来袭! +====== +售价 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 配置为 1G,2G 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 是一个非常强大的图形处理器,支持全高清 1080 p 多媒体的处理,这就是为什么树莓派一直作为家庭媒体中心而广受欢迎的原因。树莓派 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) +校对:[校对者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) From 14de4ceba7e1b1da65a02ecf547b4f1e87e63a92 Mon Sep 17 00:00:00 2001 From: sea0 <4127401@qq.com> Date: Sat, 29 Jun 2019 08:40:24 +0800 Subject: [PATCH 08/85] Update 20190624 Raspberry Pi 4 is here.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- translated/news/20190624 Raspberry Pi 4 is here.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20190624 Raspberry Pi 4 is here.md b/translated/news/20190624 Raspberry Pi 4 is here.md index 1d5e5a282a..cc384cb55d 100644 --- a/translated/news/20190624 Raspberry Pi 4 is here.md +++ b/translated/news/20190624 Raspberry Pi 4 is here.md @@ -39,7 +39,7 @@ -### USB接口和网络 +### USB 接口和网络 树莓派 4 板载了更高速率的 USB 3 接口;它通过 Type C 接口供电,并提供两个 USB 3 接口和两个 USB 2 接口。USB 3 接口可以为连接的硬盘和其它外部设备提供更高的速率。 From 8749664b14ee6a6041d81584142da9b463981691 Mon Sep 17 00:00:00 2001 From: chen ni Date: Sat, 29 Jun 2019 10:57:50 +0800 Subject: [PATCH 09/85] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iny Linux distros to try before you die.md | 268 ------------------ ...iny Linux distros to try before you die.md | 262 +++++++++++++++++ 2 files changed, 262 insertions(+), 268 deletions(-) delete mode 100644 sources/tech/20190625 5 tiny Linux distros to try before you die.md create mode 100644 translated/tech/20190625 5 tiny Linux distros to try before you die.md diff --git a/sources/tech/20190625 5 tiny Linux distros to try before you die.md b/sources/tech/20190625 5 tiny Linux distros to try before you die.md deleted file mode 100644 index 9217e4b512..0000000000 --- a/sources/tech/20190625 5 tiny Linux distros to try before you die.md +++ /dev/null @@ -1,268 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (chen-ni) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: 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 tiny Linux distros to try before you die -====== -Resurrect an ancient machine, boot a broken system, or ensure a safe -public computing session with these tiny Linux distros. -![Hand putting a Linux file folder into a drawer][1] - -There are plenty of Linux distributions out there to choose from when you're deciding what to run on a daily basis, yet some are so small that they get little notice. But tiny Linux distributions are powerful innovations: having an entire operating system drive a computer with less than 1GB of storage and half as much RAM is the ultimate software hack. - -Tiny distros have many uses, such as: - - * Save old and slow computers from the rubbish bin. Reject planned obsolescence and use computers until they fall apart, not just until they start to feel slow. - * Boot broken or corrupted systems from a thumb drive to recover data or repair boot partitions. - * Ensure a safe and private environment when on a public computer. If you boot a public computer in a hotel lobby or a library from a thumb drive, you'll know your operating environment is secure. - - - -There are plenty of lightweight distributions out there, like [Lubuntu][2], [Peppermint OS][3], and [Bodhi][4], but there's something special about the truly tiny. Here are five tiny distros you owe it to yourself to try. - -### Tiny Core - -![Tiny Core Linux][5] - -At 11MB for a text console and 16MB for a GUI, [Tiny Core Linux][6] is almost impossibly small. I dug through my collection of old thumb drives; the smallest one was 128MB, which is still eight times the size of Tiny Core's image. - -By default, Tiny Core includes the base OS, assuming you have an Ethernet connection to the internet so you can install only the applications you need. It's such an extremely efficient model that it doesn't even include an application to install the OS (although you can download it from the Tiny Core repository when you're ready to install). - -I've run Tiny Core from a 128MB thumb drive on a system with 512MB RAM, and the performance was excellent, as you might expect from an OS that takes only 16MB. Performance slows only when browsing the internet in a web browser, but the blame lies with the complexity of most modern websites more than Tiny Core. - -Without a GUI, Tiny Core runs well on a mere 64MB of RAM. - -#### Installation - -[Download Tiny Core][7] and write it to a thumb drive with **dd** or [Etcher][8]. - -Installing Tiny Core is easy, once you download the **tc-install** or **tc-install-GUI** application using the **Apps** icon in the launcher bar at the bottom of the screen. - -![Tiny Core installer][9] - -You have several options to install Tiny Core. You can install it to a thumb drive formatted as a Linux drive (this requires your computer to allow booting from a USB drive, which is common in most modern PCs but was less common for older ones), to a Microsoft FAT thumb drive (a hack for PCs that don't normally boot from USB drives), or even to a directory in an existing Linux partition. - -The installation is quick, and when you finish, you can reboot your computer and boot into your Tiny Core Linux OS. - -#### Applications - -Since it comes with little more than a text editor and a terminal, the first thing you should do is install some applications. The **Apps** icon in the bottom launcher bar displays all the Tiny Core packages available to you. The **Apps** repository also includes important drivers, so it's useful when you're looking to get a WiFi card or a printer working. - -When installing a new application or utility, you can choose between having the package load into Tiny Core at boot time or on demand. Choosing to load a package at boot makes it available to you immediately and still available after a reboot (as you would expect). Choosing to load it on demand means the package is available after Tiny Core downloads the package, but after a reboot, it won't be loaded into memory. This may keep your boot time fast and Tiny Core's footprint in RAM tiny, but it also means the package data isn't loaded into memory until you use it for the first time each session. - -The application selection is a good mix between user-centric apps, like office and graphics applications, and server-centric, such as [Samba][10] and web servers. - -Of course, once you start adding applications to Tiny Core, it becomes less tiny. Even the **Tiny Core Plus** image, which includes all WiFi drivers, on the Tiny Core website is only about 100MB, so "less tiny" is likely still well under 256MB or so. - -#### Bottom line - -Tiny Core is ideal for old computers with few resources, network boot images, and anyone who values applications over the OS. Tiny Core is a great weekend project: build the OS you want from 16MB until you have just as much of an OS as you need. - -### SliTaz - -![SliTaz Linux][11] - -The [SliTaz Linux][12] image is about 51MB, about four times the size of Tiny Core, with an impressive collection of drivers and applications included. In fact, if you didn't know better, you might think you booted into a 1GB Ubuntu image because everything you'd expect from a basic starter image is there: text editor, web browser, paint program, spreadsheet application, and so on. - -I've run SliTaz from a 128MB thumb drive on a system with 512MB RAM, and the performance was excellent. Performance slows when browsing heavy websites, but the included lightweight [Midori][13] browser keeps most sites loading quickly. - -At boot time, you can choose to run SliTaz without a GUI; it runs nicely on a mere 64MB of RAM. - -#### Installation - -There are many download options for SliTaz because its developers and community provide many variations for potential system limitations. For instance, there's a low RAM version for systems with as little as 24MB RAM, a version with Firefox instead of Midori, a version with no extra applications, and so on. - -If you're overwhelmed by options and just want to try it out, [download the rolling release][14]. This version is roughly 50MB and is updated weekly. If you fall in love with SliTaz, you can choose a download that's better for your needs—if the rolling release proves to be _too_ fresh for you. - -Once you've downloaded your choice of SliTaz image, write it to a thumb drive with **dd** or [Etcher][8] and reboot. - -Installing SliTaz to a thumb drive or hard drive is done through the **TazPanel** application. It guides you through partitioning your disk (as needed) and installs SliTaz to the destination you choose. - -![SliTaz installer][15] - -#### Applications - -The **TazPanel** application is SliTaz's control center. If you're a fan of OpenSUSE or Mageia (née Mandrake), you might find TazPanel familiar, at least in concept: it's a single application that provides access to system configuration, hardware detection, user and group management, system updates, and application installation. - -Available applications satisfy most basic requirements, meaning if you're not picky about which application you use to accomplish a task, then SliTaz's repositories probably have something for you. If you have specific requirements (GIMP 2.10 instead of GIMP 2.8, for instance), then you'll have to learn how to generate SliTaz packages. The good news is that the **tazpkg** command can convert from several packaging formats, including: - - * Debian packages (.deb, .udeb) - * RPM packages (.rpm) - * Slackware packages (.tgz) - * Puppy packages (.sfs, .pet) - * NuTyX packages (.cards.tar.xz) - * Arch and Alpine Linux packages (.apk, .pkg.tar.gz, .pkg.tar.xz) - * OpenWrt packages (.ipk, .opk) - * Paldo packages (.tar.bz2) - * Void packages (.xbps) - * Tiny Core packages (.tce, .tcel, .tcem, .tcz) - - - -#### Bottom line - -SliTaz is a fast, small Linux distribution with a centralized control panel that makes it easy to learn. Because its packaging tools can convert from other Linux packaging formats, its application selection is theoretically vast, making it easy for you to design your work environment with all your favorite tools. SliTaz is small but lethal, just like its arachnid logo. - -### Porteus - -![Porteus Linux][16] - -[Porteus][17] offers a few desktop options, with the smallest image around 270MB and the largest 350MB. That makes it one of the largest of tiny Linux images, but most of that space is dedicated to ensuring a smooth Linux desktop experience, to the point that you'll likely forget you're using a live distribution. Installing Porteus to an SSD drive or loading it to RAM during boot results in such a flawlessly smooth environment that you won't believe your OS occupies less space than half a CD-ROM. - -Porteus is tiny in the sense that its base image is comparatively small, but depending on the desktop you choose, it can easily require up to 1GB of RAM to run. While other tiny Linux distributions tend to capitalize on minimalist applications to preserve space and resources, Porteus expects you to use it as you would any other distribution. Install all your favorite apps and drivers and forget you're running on a tiny, compressed root filesystem. - -#### Installation - -Download Porteus from your [closest Porteus mirror][18], choosing from MATE, LXQT, LXDE, OpenBox, XFCE, Cinnamon, or KDE, depending upon your preference. If you have no preference, the MATE or KDE desktop are both good at balancing image size with a familiar-feeling desktop experience. - -![Porteus installer][19] - -opensource.com - -You can install Porteus to a thumb drive or an internal hard drive using the instructions in the [official installation guide][20]. The process is similar either way and results in a compressed root filesystem that never changes. It's a stable and contained filesystem upon which you overlay your changes as you use it. When you reboot, changes you make and applications you install are loaded into memory, so your environment is just as you left it. - -#### Applications - -Applications are called "modules" in Porteus lingo and are available from the [Unified Slackware Package Manager][21] (USM), which draws from five different Slackware repositories, meaning you have plenty of applications to choose from. - -#### Bottom line - -Porteus is a full Linux experience with a fraction of the space usually required. It's an excellent portable Linux distribution with lots of desktop options and lots of applications. - -### Bodhi Linux - -![Bodhi Linux][22] - -[Bodhi Linux][4] might not look tiny at first glance, with an ISO image of 740MB, but once it's installed, you'll be amazed at just how tiny it is. Bodhi runs smoothly on only 512MB of RAM but looks and feels like the desktop of tomorrow. Bodhi uses the [Enlightenment][23] desktop, a beautiful user interface that's lovingly crafted to be both small and powerful. - -Bodhi doesn't just use Enlightenment, though, it adds to it. Bodhi's configuration applications and system setting panels are custom interfaces to Enlightenment's sometimes overwhelming array of options. Bodhi makes some sane default choices for you and provides a subset of options. If you're a die-hard Enlightenment user, Bodhi's interpretation might not be pure enough for you, but for many users, Bodhi brings focus to the Enlightenment desktop. - -#### Installation - -[Download Bodhi Linux][24], write it to a thumb drive with **dd** or [Etcher][8], and reboot. - -The Bodhi installer is available from the **Applications** menu in the **Preferences** category. The installation application is **Ubiquity**, so the process is the same as installing Ubuntu. If you've never installed Ubuntu, don't worry; it's one of the easiest to install. - -![Bodhi installer][25] - -#### Applications - -Bodhi is based on the latest long term support (LTS) Ubuntu Linux release, so your available software knows almost no bounds. If it's available for Ubuntu Linux, Bohdi has access to it. - -#### Bottom line - -Bodhi Linux is a step down from the size of a typical Ubuntu install and a step up from many other minimalist Ubuntu environments because it uses Enlightenment. If you're looking for a Linux distribution that runs lighter than most without resorting to overlay filesystems and application modules, then Bodhi is the distribution for you. - -### Puppy Linux - -![Puppy Linux][26] - -Before there was Tiny Core or SliTaz or [AntiX][27] or Porteus, there was [Puppy Linux][28]. One of the original tiny Linux distributions, Puppy has endured for a decade and a half as a reliable, bootable OS for old computers and new users alike. - -Upon first boot, Puppy does its best to guide the user through any necessary steps to ensure everything works as expected. It's a lot of windows to wade through, but once you get through it all, you know without a doubt what works and what doesn't before you choose whether to install. - -Puppy is almost 300MB and failed to work on anything under 1GB RAM in my tests, so it's not exactly the tiniest Linux available. However, it's still a great, under-1GB operating system, and of the OSes in that category, it's one of the very friendliest. - -#### Installation - -[Download Puppy Linux][29] and write it to a thumb drive with **dd** or [Etcher][8] or burn it to a CD or DVD, then reboot. - -![Puppy installer][30] - -Puppy can install onto nearly anything that accepts data. The installer application, available from the top launcher bar, is called **Puppy Installer**, and it manages installing Puppy and applications for Puppy. - -Puppy Installer steps you through the process of installing the OS onto whatever media you have available. Puppy can boot from a thumb drive, an optical disc, a hard drive, and even an SD card. I've used Puppy on a computer with no hard drive whatsoever, no working optical drive, and no option to boot from USB. Because Puppy can write your configuration options to just about anything, I was able to use it with persistent data storage to an external device. - -#### Applications - -The **Puppy Installer** application is also used to install apps onto Puppy. Because Puppy is based on Ubuntu, there aren't likely to be any Linux packages missing from its repositories, and if there are, you can probably use a [Flatpak][31]. - -#### Bottom line - -Puppy is the original tiny Linux. While it's not the tiniest any more, it's by far the easiest. - -### Bonus: Silverblue - -![SilverBlue, not tiny, but tiny-adjacent][32] - -The concept of tiny Linux has changed over the years. Long ago, a tiny Linux distribution was something you downloaded onto a CD-R and ran from your optical drive while saving changes to external media. Later, it was something you ran from a thumb drive with dedicated space for persistent changes. Now it's all of those things plus the ability to install to internal drives or directories. - -What no one expected was for Linux to kick off the craze for containers, in which applications are self-contained Linux systems running in a para-virtualized environment. What was once a niche hobby for people who either loved to optimize disk space or who loved to resurrect ancient computers quickly became a salient requirement for developers who wanted to develop containers without adding too much overhead to their applications. All the work put into the minimalist, ephemeral Linux distributions suddenly paid off in an unexpected way. - -With the concept of what a root filesystem looks like, the Fedora Project's [Silverblue][33] experiment is an effort to create an immutable OS. It's an operating system that never changes and instead gets updates and application installs in the form of, essentially, containers. - -Silverblue at 2.1GB is by no means a tiny Linux distribution, but in many ways, it's a child of the tiny Linux and container movements. - -#### Installation - -[Download Silverblue][34] and write it to a thumb drive with **dd** or [Etcher][8] or burn it to a CD or DVD, then reboot. - -After booting into Silverblue, install it to an internal hard drive using [Anaconda][35], the standard, friendly Fedora Linux installer. - -![Anaconda installer][36] - -#### Applications - -Silverblue doesn't install applications in the traditional sense; instead, it runs containers over the top of its base OS. Specifically, it uses Flatpaks for GUI applications and [Toolbox][37] for commands. - -Because Flatpaks aren't nearly as common as traditional Fedora RPM packages, Silverblue also provides **package layering**, a way to convert Fedora RPM packages to Silverblue. - -#### Bottom line - -Silverblue could be a fun experiment testing out emerging technology, or it could be the future of the desktop OS. It's tiny only in the sense that its root filesystem remains the same size regardless of updates and applications added onto it, but it's worth looking at to see where the strange obsession with tiny distributions has delivered the Linux community and industry. Don't forget to tip your hat to the 11MB pioneers on your way out. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/19/6/linux-distros-to-try - -作者:[Seth Kenlon][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/seth/users/marcobravo -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer) -[2]: http://lubuntu.net -[3]: http://peppermintos.com -[4]: https://www.bodhilinux.com/ -[5]: https://opensource.com/sites/default/files/uploads/tinycore.jpg (Tiny Core Linux) -[6]: http://tinycorelinux.net/ -[7]: http://tinycorelinux.net/welcome.html -[8]: https://www.balena.io/etcher/ -[9]: https://opensource.com/sites/default/files/uploads/tc-install-gui.png (Tiny Core installer) -[10]: https://www.samba.org/ -[11]: https://opensource.com/sites/default/files/uploads/slitaz.jpg (SliTaz Linux) -[12]: http://www.slitaz.org/en/ -[13]: https://github.com/midori-browser/core -[14]: http://slitaz.org/en/get/#rolling -[15]: https://opensource.com/sites/default/files/uploads/slitaz-install.jpg (SliTaz installer) -[16]: https://opensource.com/sites/default/files/uploads/porteus.jpg (Porteus Linux) -[17]: http://www.porteus.org/ -[18]: http://porteus.org/porteus-mirrors.txt -[19]: https://opensource.com/sites/default/files/images/porteus-installer.png (Porteus installer) -[20]: http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/114-official-porteus-installation-guide.html -[21]: http://www.porteus.org/tutorials/9-modules/149-usm.html -[22]: https://opensource.com/sites/default/files/uploads/bodhi.jpg (Bodhi Linux) -[23]: https://www.enlightenment.org/ -[24]: https://www.bodhilinux.com/download -[25]: https://opensource.com/sites/default/files/uploads/bodhi-install.jpg (Bodhi installer) -[26]: https://opensource.com/sites/default/files/uploads/puppy.jpg (Puppy Linux) -[27]: https://antixlinux.com/ -[28]: http://puppylinux.com/ -[29]: http://puppylinux.com/index.html#download -[30]: https://opensource.com/sites/default/files/uploads/puppy-install.jpg (Puppy installer) -[31]: https://docs.fedoraproject.org/en-US/fedora-silverblue/getting-started/#flatpak -[32]: https://opensource.com/sites/default/files/uploads/silverblue.jpg (SilverBlue, not tiny, but tiny-adjacent) -[33]: https://silverblue.fedoraproject.org/ -[34]: https://silverblue.fedoraproject.org/download -[35]: https://fedoraproject.org/wiki/Anaconda -[36]: https://opensource.com/sites/default/files/uploads/silverblue-install.jpg (Anaconda installer) -[37]: https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/ diff --git a/translated/tech/20190625 5 tiny Linux distros to try before you die.md b/translated/tech/20190625 5 tiny Linux distros to try before you die.md new file mode 100644 index 0000000000..a0a2fa4f2d --- /dev/null +++ b/translated/tech/20190625 5 tiny Linux distros to try before you die.md @@ -0,0 +1,262 @@ +[#]: collector: (lujun9972) +[#]: translator: (chen-ni) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: 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 发行版 +====== +这些微型 Linux 发行版可以让你的老爷机复活、启动一个损坏的系统,或者是确保在公共电脑上进行安全的操作。 +![Hand putting a Linux file folder into a drawer][1] + +可供日常使用的 Linux 发行版比比皆是,不过其中有一些发行版常常被我们忽视,因为它们实在是太小了。但这些微型 Linux 发行版其实是一种非常强大的创新:使用一套完整的操作系统驱动一台只有不到 1 GB 存储空间和 512 MB 内存的计算机,真的是终极的黑客作风。 + +微型发行版的用法有很多种,比如说: + + * 从垃圾桶边挽救回那些又老又慢的电脑。你可以继续使用那些本来已经计划报废的机器,直到它们彻底解体(而不是在刚开始感觉有点儿慢的时候就扔掉)。 + * 使用 U盘 启动一个损坏的系统来恢复数据或者修复启动分区。 + * 确保在安全和隐私的操作环境下使用公共电脑。如果使用 U盘 启动酒店大厅或者图书馆里的一台公共电脑,你是可以确定操作环境是安全的。 + +轻量级发行版有很多种,比如说 [Lubuntu][2]、[Peppermint OS][3] 和 [Bodhi][4],但是那些真正微型的发行版又有一些独到之处。下面就是你不容错过的五个微型发行版: + +### Tiny Core + +![Tiny Core Linux][5] + +[Tiny Core Linux][6] 小得近乎不可思议:终端版本只有 11 MB,图形界面版本只有 16 MB。我翻了一下之前收集的旧 U盘,最小的一个是 128 MB 的,也有 Tiny Core 镜像文件的八倍之大呢。 + +Tiny Core 默认包括只包括了基础操作系统,你需要通过以太网下载需要的应用程序。由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。 + +我使用过一个 128 MB 的 U盘 在一台只有 512 MB 内存的机器上运行了 Tiny Core,对于一个只有 16 MB 的操作系统来说,效果算是非常棒了。只有在使用网页浏览器的时候速度才会变慢,但这主要是由于大部分现代网站太过复杂,而不是 Tiny Core 的问题。 + +如果不使用图形界面,运行 Tiny Core 就只需要 64 MB 的内存了。 + +#### 安装 + +[下载 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 系统中啦。 + +#### 应用程序 + +由于系统自带程序基本上只有一个文本编辑器和一个终端,你所要做的第一件事情就应该是安装一些应用程序。底部启动栏上的 **Apps** 图标展示了 Tiny Core 提供的所有软件包。**Apps** 软件仓库同时包含了一些重要的驱动程序,对于使用 WiFi 网卡或者是打印机等等都很有帮助。 + +在安装一个新的应用程序或者实用程序的时候,你可以选择在 Tiny Core 启动的时候就加载软件包,或者是需要的时候才加载。如果选择启动时加载,那么不仅该软件立即就可以使用,并且(不出所料地)下次重启之后也依然可用;如果选择需要时加载,那么在软件包下载完成之后仍然可以马上使用,但是重启之后就不会被自动加载到内存中了。这样可以保持很快的开机速度,并且只占用很少的内存,但同时也意味着每次开机之后,该应用的软件包只有在第一次被使用的时候才会被加载到内存中。 + +可供选择的应用程序同时包括像 office 和图像应用之类的用户端应用,以及像 [Samba][10] 和网站服务器这种的服务端应用。 + +当然了,随着你在 Tiny Core 上添加的应用程序越来越多,它就不那么“微型”了。不过在 Tiny Core 的网站上我们可以看到,即使是包括了所有 WiFi 驱动程序的 **Tiny Core Plus** 镜像文件也只有大约 100 MB,所以“不那么微型”也仍然很可能比 256 MB 要小很多。 + +#### 结论 + +Tiny Core 非常适合性能不佳的老爷机、用来通过网络启动的镜像文件,以及任何更看重应用而不是操作系统的人。Tiny Core 可以作为一个很好的周末工程来实践:从 16 MB 开始一步步搭建操作系统,直到你感觉这个操作系统已经足够满足你的需求了。 + +### SliTaz + +![SliTaz Linux][11] + +[SliTaz Linux][12] 的镜像文件有大约 51 MB 大小,差不多是 Tiny Core 的四倍,但是包含一整套出色的驱动程序和应用程序。事实上,如果事先不知道的话,你可能会以为是通过一个 1 GB 的 Ubuntu 镜像启动的,因为能想到的任何一个基本启动镜像应该有的东西都在这儿:文本编辑器、网页浏览器、绘画工具、表格工具等等。 + +我使用过一个 128 MB 的 U盘 在一个 512 MB 内存的机器上运行了 SliTaz,效果非常不错。浏览复杂网站的时候性能会下降,但是系统包含的轻量级浏览器 [Midori][13] 可以快速加载绝大多数网站。 + +你可以在启动的时候选择进入没有图形界面的 SliTaz,这样在仅仅只有 64 MB 的机器上也可以很好地运行。 + +#### 安装 + +可供下载的 SliTaz 有很多种,因为它的开发者和社区针对可能存在的限制提供了非常多的版本。比如说,有一种低内存版本可以在只有 24 MB 内存的机器上运行;有一种版本使用 Firefox 而不是 Midori;还有一种版本没有包含额外的应用程序,等等。 + +如果你挑花了眼,只想赶紧选择一个版本尝试一下的话,那就 [下载滚动发布版本吧][14]。这个版本有差不多 50 MB 大小,每周都会更新。如果你爱上了 SliTaz,而滚动发布版本又更新得 *过快* 了的话,可以再选择一个更符合你需求的版本。 + +下载好你选择的 SliTaz 镜像文件之后,你就可以用 **dd** 或者 [Etcher][8] 将它写入 U盘,然后重启。 + +将 SliTaz 安装在 U盘 或者硬盘上需要通过 **TazPanel** 这个应用程序来实现。它会引导你对硬盘进行需要的分区,然后将 SliTaz 安装在你选择的地方。 + +![SliTaz installer][15] + +#### 应用程序 + +SliTaz 的控制中心是 **TazPanel** 这个应用程序。如果你喜欢 OpenSUSE 或者 Mageia (最初被称为 Mandrake),那 TazPanel 对你来说应该不会陌生(至少在核心思想上):包括系统设置、硬件监测、用户和用户组的管理、系统升级、安装应用程序在内的这些功能,都在这一个应用程序内实现。 + +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) + +#### 结论 + +SliTaz 是一个快速而小巧的 Linux 发行版,并且非常容易上手(因为有一个中心化的控制面板)。由于它的软件包工具支持从其它格式的 Linux 软件包转换成自己的格式,它的应用程序理论上来说是非常丰富的,你可以很容易地使用喜欢的工具搭建自己的工作环境。SliTaz 很小,但是也非常具有杀伤力,正如它的蜘蛛 logo 所暗示的那样。 + +### Porteus + +![Porteus Linux][16] + +[Porteus][17] 提供了不同的桌面环境可供选择,最小的镜像文件大约在 270 MB 左右,最大的有 350 MB。它是微型 Linux 中镜像文件最大的一个,但是这些额外的空间都被用来确保一个非常顺畅的 Linux 桌面环境的体验,以至于你很可能会忘了自己是在使用一个 live 版本。如果将 Porteus 安装到 SSD 或者是在启动的时候加载到内存里的话,你就会得到一个如此天衣无缝地顺畅的环境,以至于不会相信你的操作系统所占用的空间只有不到半个 CD-ROM 的大小。 + +Porteus 的基础镜像文件相对来说比较小,因此被称为是“微型”,但是根据你选择的桌面环境版本,Porteus 有可能会需要 1 GB 之多的内存才可以运行。尽管其它微型 Linux 发行版倾向于通过精简应用程序来节约空间和资源,Porteus 却希望你像普通发行版一样来使用它。忘掉你是在使用一个微型的压缩根文件系统,尽情安装所有你喜欢的应用程序吧。 + +#### 安装 + +可以在 [离你最近的 Porteus 镜像网站][18] 上下载 Porteus,并且从 MATE、LXQT、LXDE、OpenBox、XFCE、Cinnamon 或者 KDE 里选择自己喜欢的桌面环境。如果没有特殊偏好,MATE 或者是 KDE 桌面都是不错的选择,他们可以提供熟悉的桌面环境体验,并且镜像文件又不至于太大。 + +![Porteus installer][19] + +你可以根据 [官方的安装指南][20] 将 Porteus 安装到一个 U盘 或者是内部硬盘里。这两种方式非常相似,都会使用一个不能被改变的压缩根文件系统。这是一种稳定的、受限制的文件系统,会根据你的使用被修改。你所做的变更和安装的应用程序在重启的时候都会被加载到内存里,从而还原你关机前的使用环境。 + +#### 应用程序 + +应用程序在 Porteus 里被称为“模块”,由 [Slackware 软件包统一管理器][21](USM)提供。USM 的资源涵盖五个不同的 Slackware 软件仓库,所以可供选择的应用还是很丰富的。 + +#### 结论 + +Porteus 可以提供完整的 Linux 使用体验,却只使用了正常 Linux 所需要空间的一小部分。这是一个配备了很多种可供选择的桌面环境和很多应用程序的出色的便携式 Linux 发行版。 + +### Bodhi Linux + +![Bodhi Linux][22] + +[Bodhi Linux][4] 的 ISO 镜像文件有 740 MB 大小,初看之下并不是很“微型”,不过一旦安装完成之后,你就会惊讶于它是多么微型了。Bodhi 在 512 MB 大小的内存上也可以顺畅运行,并且它的桌面环境看起来就像是来自未来一样。Bodhi 使用的是 [Enlightenment][23] 桌面,这是一个精心制作的优美的用户界面,小巧而强悍。 + +不过 Bodhi 并不只是简单地使用 Enlightenment,而是在此基础上增色不少。Bodhi 在配置型应用程序和系统设置面板上都进行了界面处理,避免了 Enlightenment 有时显得过于繁复的选项。Bodhi 替你做了一些很好的默认选择,并且只显示全部选项的一部分。如果你是一个 Enlightenment 狂热分子,那么 Bodhi 这样的做法对你来说可能显得不是很纯粹,但是对于大多数用户来说,Bodhi 这样做可以让人更加专注于 Enlightenment 桌面本身。 + +#### 安装 + +[下载 Bodhi Linux][24],通过 **dd** 或者 [Etcher][8] 写入 U盘,然后重启。 + +Bodhi 安装器可以在 **设置** 页面的 **应用程序** 菜单里找到。安装程序用的是 **Ubiquity**,所以整个过程和安装 Ubuntu 是一样的。如果你没有安装过 Ubuntu 也不必担心,因为这是最好安装的发行版之一了。 + +![Bodhi installer][25] + +#### 应用程序 + +Bodhi 是基于最新的 Ubuntu 长期维护发布版的,所以可供使用的应用程序简直数不胜数。只要是在 Ubuntu 上可以使用的应用,Bohdi 上就同样可以找到。 + +#### 结论 + +Bodhi Linux 相比一个标准的 Ubuntu 来说要小不少,但是相比其它微型 Ubuntu 环境来说又好一些(因为使用了 Enlightenment)。如果你在找一个比大多数发行版更轻量的 Linux 发行版,但是又不想使用 OverlayFS 或者是应用程序模块的话,那么 Bodhi 就是一个不错的选择了。 + +### Puppy Linux + +![Puppy Linux][26] + +早在 Tiny Core、SliTaz、[AntiX][27] 或者是 Porteus 诞生之前,就已经有 [Puppy Linux][28] 了。作为最早的微型 Linux 发行版之一,Puppy 已经历经了十五年风霜,并且无论是对于老爷机还是新用户来说始终都是一个可靠的、可启动的操作系统。 + +为了保证正常运行,Puppy 会在第一次启动之后引导用户完成必要的设置步骤。整个过程涉及很多个窗口,但是一旦完成,你就会对一切功能了如指掌,然后再决定是否需要安装。 + +Puppy 有几乎 300 MB 大小,并且在我测试的 1 GB 内存的机器上并不能正常运行,所以它并不是一个特别微型的 Linux 发行版。尽管如此,它仍然是一个非常棒的 1 GB 以下的操作系统,并且在该类系统里算是非常友好的一个。 + +#### 安装 + +[下载 Puppy Linux][29],然后通过 **dd** or [Etcher][8] 写入 U盘,或者是刻录到 CD 或者 DVD 里,然后重启。 + +![Puppy installer][30] + +Puppy 几乎可以安装在支持任何一种数据格式的载体上。你可以在顶部启动栏里找到 **Puppy Installer** 安装程序,这个程序负责安装 Puppy 以及 Puppy 的应用程序。 + +Puppy 安装器会一步步引导你将系统安装在你提供的任何一种媒介上。Puppy 可以从 U盘、光盘、硬盘,或者甚至是 SD 卡上启动。我曾经在一台没有硬盘、光驱出了故障,并且也无法从 USB 启动的计算机上成功运行了 Puppy。由于 Puppy 支持在任何载体上写入你的配置选项,我甚至可以在一个拥有永久数据存储的外部设备上使用它。 + +#### 应用程序 + +**Puppy 安装器** 这个应用同样被用来在 Puppy 上安装应用。由于 Puppy 是基于 Ubuntu 的,它的软件仓库几乎不会缺少任何一个 Linux 软件包,并且如果真的出现了这种情况的话,你也可以使用 [Flatpak][31]。 + +#### 结论 + +Puppy 是最早的微型 Linux。尽管它已经不是最微型的了,却是目前最易用的一个。 + +### 附赠:Silverblue + +![SilverBlue, not tiny, but tiny-adjacent][32] + +微型 Linux 这个概念是随着时间不断变化的。很久以前,微型 Linux 发行版意味着需要下载到 CD-R 里,从光驱启动,然后将修改写入外部媒介中。后来,你可以从 U盘 启动它,并且有专门用来记录永久修改的空间。现在的微型 Linux 不仅支持上面两种方法,还可以被直接安装在内部驱动或者文件夹里。 + +大家都没有想到 Linux 开创了容器的热潮 —— 容器里应用程序是在半虚拟化的环境中运行的一套独立的 Linux 系统。曾经只是属于喜欢优化硬盘空间或者重新利用老爷机的人们的小众爱好,很快成为了那些想要开发容器但又不想在应用程序上添加太多负载的人的强烈需求。那些在极简化的、不起眼的 Linux 发行版上所付出的辛苦,一夜之间以一种意想不到的方式得到了回报。 + +立足于根文件系统这个概念,Fedora 项目发起的 [Silverblue][33] 试验旨在创造一个不可修改的操作系统。该操作系统主要通过容器的形式来更新系统以及安装应用,系统本身永远不会改变。 + +2.1 GB 的 Silverblue 可不是一个微型 Linux 发行版,但是从某种程度上来说,它是微型 Linux 和容器运动的产物。 + +#### 安装 + +[下载 Silverblue][34],然后通过 **dd** or [Etcher][8] 写入 U盘,或者是刻录到 CD 或者 DVD 里,然后重启。 + +启动到 Silverblue 之后,使用 [Anaconda][35](标准的、友好的 Fedora 安装器)将它安装在一个内部硬盘里。 + +![Anaconda installer][36] + +#### 应用程序 + +Silverblue 安装应用的方式和传统意义上不同:它是在基础操作系统之上运行容器。具体来说,它使用 Flatpaks 运行 GUI 应用程序,使用 [Toolbox][37] 运行命令。 + +由于 Flatpaks 并非像传统的 Fedora RPM 软件包一样常见,Silverblue 也提供了一种可以将 Fedora RPM 软件包转换成 Silverblue 形式的方法:**package layering**。 + +#### 结论 + +Silverblue 可能是一个用来尝试前沿科技的有趣实验,或者也可能是桌面操作系统的未来。它之所以被称为微型,只是因为根文件系统的大小不会随着系统升级或者安装应用而改变。不过,透过 Silverblue 来看看对微型 Linux 的迷恋在带领着 Linux 社区和行业往哪个方向走,也是一件挺有意思的事情。对了,走之前不要忘了向 11 MB 大小的微型 Linux 先驱们脱帽致敬。 + + +-------------------------------------------------------------------------------- + +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) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth/users/marcobravo +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer) +[2]: http://lubuntu.net +[3]: http://peppermintos.com +[4]: https://www.bodhilinux.com/ +[5]: https://opensource.com/sites/default/files/uploads/tinycore.jpg (Tiny Core Linux) +[6]: http://tinycorelinux.net/ +[7]: http://tinycorelinux.net/welcome.html +[8]: https://www.balena.io/etcher/ +[9]: https://opensource.com/sites/default/files/uploads/tc-install-gui.png (Tiny Core installer) +[10]: https://www.samba.org/ +[11]: https://opensource.com/sites/default/files/uploads/slitaz.jpg (SliTaz Linux) +[12]: http://www.slitaz.org/en/ +[13]: https://github.com/midori-browser/core +[14]: http://slitaz.org/en/get/#rolling +[15]: https://opensource.com/sites/default/files/uploads/slitaz-install.jpg (SliTaz installer) +[16]: https://opensource.com/sites/default/files/uploads/porteus.jpg (Porteus Linux) +[17]: http://www.porteus.org/ +[18]: http://porteus.org/porteus-mirrors.txt +[19]: https://opensource.com/sites/default/files/images/porteus-installer.png (Porteus installer) +[20]: http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/114-official-porteus-installation-guide.html +[21]: http://www.porteus.org/tutorials/9-modules/149-usm.html +[22]: https://opensource.com/sites/default/files/uploads/bodhi.jpg (Bodhi Linux) +[23]: https://www.enlightenment.org/ +[24]: https://www.bodhilinux.com/download +[25]: https://opensource.com/sites/default/files/uploads/bodhi-install.jpg (Bodhi installer) +[26]: https://opensource.com/sites/default/files/uploads/puppy.jpg (Puppy Linux) +[27]: https://antixlinux.com/ +[28]: http://puppylinux.com/ +[29]: http://puppylinux.com/index.html#download +[30]: https://opensource.com/sites/default/files/uploads/puppy-install.jpg (Puppy installer) +[31]: https://docs.fedoraproject.org/en-US/fedora-silverblue/getting-started/#flatpak +[32]: https://opensource.com/sites/default/files/uploads/silverblue.jpg (SilverBlue, not tiny, but tiny-adjacent) +[33]: https://silverblue.fedoraproject.org/ +[34]: https://silverblue.fedoraproject.org/download +[35]: https://fedoraproject.org/wiki/Anaconda +[36]: https://opensource.com/sites/default/files/uploads/silverblue-install.jpg (Anaconda installer) +[37]: https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/ From 8795bf9a92459d0a0afb11448c3506f269e9bd39 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 14:05:00 +0800 Subject: [PATCH 10/85] PRF:20190624 Using i3 with multiple monitors.md @geekpi --- ...0190624 Using i3 with multiple monitors.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/translated/tech/20190624 Using i3 with multiple monitors.md b/translated/tech/20190624 Using i3 with multiple monitors.md index 96d3a4b6b9..3ac5b62007 100644 --- a/translated/tech/20190624 Using i3 with multiple monitors.md +++ b/translated/tech/20190624 Using i3 with multiple monitors.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Using i3 with multiple monitors) @@ -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/) 荣誉推出 From c081d7480027e2b33419e9014bffd63bc6437bc6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 14:05:28 +0800 Subject: [PATCH 11/85] PUB:20190624 Using i3 with multiple monitors.md @geekpi https://linux.cn/article-11031-1.html --- .../20190624 Using i3 with multiple monitors.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190624 Using i3 with multiple monitors.md (98%) diff --git a/translated/tech/20190624 Using i3 with multiple monitors.md b/published/20190624 Using i3 with multiple monitors.md similarity index 98% rename from translated/tech/20190624 Using i3 with multiple monitors.md rename to published/20190624 Using i3 with multiple monitors.md index 3ac5b62007..33eeeac1e2 100644 --- a/translated/tech/20190624 Using i3 with multiple monitors.md +++ b/published/20190624 Using i3 with multiple monitors.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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/) From 9d0a35dd9c672049a67066cadeb62910d7ff8458 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 29 Jun 2019 14:14:56 +0800 Subject: [PATCH 12/85] Rename sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md to sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md --- .../20190628 FreeDOS turns 25 years old- An origin story.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20190628 FreeDOS turns 25 years old- An origin story.md (100%) diff --git a/sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md b/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md similarity index 100% rename from sources/tech/20190628 FreeDOS turns 25 years old- An origin story.md rename to sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md From fa081608a4ce754f7c32983eb5772ccd23891d74 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 14:30:58 +0800 Subject: [PATCH 13/85] APL:20190628 FreeDOS turns 25 years old- An origin story --- .../20190628 FreeDOS turns 25 years old- An origin story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md b/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md index 16464c696a..6a316b000c 100644 --- a/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md +++ b/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (wxy) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 3672f2b5512395a72765a03f34edea467ed0a618 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 15:43:52 +0800 Subject: [PATCH 14/85] TSL&APL:20190628 FreeDOS turns 25 years old- An origin story.md --- ...DOS turns 25 years old- An origin story.md | 95 ------------------ ...DOS turns 25 years old- An origin story.md | 97 +++++++++++++++++++ 2 files changed, 97 insertions(+), 95 deletions(-) delete mode 100644 sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md create mode 100644 translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md diff --git a/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md b/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md deleted file mode 100644 index 6a316b000c..0000000000 --- a/sources/talk/20190628 FreeDOS turns 25 years old- An origin story.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (wxy) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: 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) - -FreeDOS turns 25 years old: An origin story -====== -The operating system's history is a great example of the open source -software model: developers working together to create something. -![FreeDOS fish logo and command prompt on computer][1] - -June 29 marks the 25th anniversary of [FreeDOS][2]. That's a major milestone for any open source software project, and I'm proud of the work that we've done on it over the past quarter century. I'm also proud of how we built FreeDOS because it is a great example of how the open source software model works. - -For its time, MS-DOS was a powerful operating system. I'd used DOS for years, ever since my parents replaced our aging Apple II computer with a newer IBM machine. MS-DOS provided a flexible command line, which I quite liked and that came in handy to manipulate my files. Over the years, I learned how to write my own utilities in C to expand its command-line capabilities even further. - -Around 1994, Microsoft announced that its next planned version of Windows would do away with MS-DOS. But I liked DOS. Even though I had started migrating to Linux, I still booted into MS-DOS to run applications that Linux didn't have yet. - -I figured that if we wanted to keep DOS, we would need to write our own. And that's how FreeDOS was born. - -On June 29, 1994, I made a small announcement about my idea to the comp.os.msdos.apps newsgroup on Usenet. - -> ANNOUNCEMENT OF PD-DOS PROJECT: -> A few months ago, I posted articles relating to starting a public domain version of DOS. The general support for this at the time was strong, and many people agreed with the statement, "start writing!" So, I have… -> -> Announcing the first effort to produce a PD-DOS. I have written up a "manifest" describing the goals of such a project and an outline of the work, as well as a "task list" that shows exactly what needs to be written. I'll post those here, and let discussion follow. - -While I announced the project as PD-DOS (for "public domain," although the abbreviation was meant to mimic IBM's "PC-DOS"), we soon changed the name to Free-DOS and later FreeDOS. - -I started working on it right away. First, I shared the utilities I had written to expand the DOS command line. Many of them reproduced MS-DOS features, including CLS, DATE, DEL, FIND, HELP, and MORE. Some added new features to DOS that I borrowed from Unix, such as TEE and TRCH (a simple implementation of Unix's tr). I contributed over a dozen FreeDOS utilities - -By sharing my utilities, I gave other developers a starting point. And by sharing my source code under the [GNU General Public License][3] (GNU GPL), I implicitly allowed others to add new features and fix bugs. - -Other developers who saw FreeDOS taking shape contacted me and wanted to help. Tim Norman was one of the first; Tim volunteered to write a command shell (COMMAND.COM, later named FreeCOM). Others contributed utilities that replicated or expanded the DOS command line. - -We released our first alpha version as soon as possible. Less than three months after announcing FreeDOS, we had an Alpha 1 distribution that collected our utilities. By the time we released Alpha 5, FreeDOS boasted over 60 utilities. And FreeDOS included features never imagined in MS-DOS, including internet connectivity via a PPP dial-up driver and dual-monitor support using a primary VGA monitor and a secondary Hercules Mono monitor. - -New developers joined the project, and we welcomed them. By October 1998, FreeDOS had a working kernel, thanks to Pat Villani. FreeDOS also sported a host of new features that brought not just parity with MS-DOS but surpassed MS-DOS, including ANSI support and a print spooler that resembled Unix lpr. - -You may be familiar with other milestones. We crept our way towards the 1.0 label, finally releasing FreeDOS 1.0 in September 2006, FreeDOS 1.1 in January 2012, and FreeDOS 1.2 in December 2016. MS-DOS stopped being a moving target long ago, so we didn't need to update as frequently after the 1.0 release. - -Today, FreeDOS is a very modern DOS. We've moved beyond "classic DOS," and now FreeDOS features lots of development tools such as compilers, assemblers, and debuggers. We have lots of editors beyond the plain DOS Edit editor, including Fed, Pico, TDE, and versions of Emacs and Vi. FreeDOS supports networking and even provides a simple graphical web browser (Dillo). And we have tons of new utilities, including many that will make Linux users feel at home. - -FreeDOS got where it is because developers worked together to create something. In the spirit of open source software, we contributed to each other's work by fixing bugs and adding new features. We treated our users as co-developers; we always found ways to include people, whether they were writing code or writing documentation. And we made decisions through consensus based on merit. If that sounds familiar, it's because those are the core values of open source software: transparency, collaboration, release early and often, meritocracy, and community. That's the [open source way][4]! - -I encourage you to download FreeDOS 1.2 and give it a try. - -### More resources - - * [FreeDOS website][2] - * [FreeDOS wiki][5] - * [Download FreeDOS 1.2][6] - * [Free ebooks about FreeDOS][7] - * [A gentle introduction to FreeDOS][8] - * [The origin and evolution of FreeDOS][9] - * [4 cool facts you should know about FreeDOS][10] - * [How to upgrade your system BIOS using FreeDOS][11] - * [Celebrating 24 years of FreeDOS: Useful commands cheat sheet][12] - * [How to run DOS programs in Linux][13] - * [Keeping DOS alive and kicking with open source][14] - * [Running DOS on the Raspberry Pi][15] - - - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/19/6/freedos-anniversary - -作者:[Jim Hall][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/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://opensource.com/article/18/4/gentle-introduction-freedos -[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://opensource.com/article/17/10/run-dos-applications-linux -[14]: https://opensource.com/life/16/9/interview-jim-hall-freedos -[15]: https://opensource.com/article/18/3/can-you-run-dos-raspberry-pi diff --git a/translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md b/translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md new file mode 100644 index 0000000000..cf7b377559 --- /dev/null +++ b/translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md @@ -0,0 +1,97 @@ +[#]: collector: (lujun9972) +[#]: translator: (wxy) +[#]: reviewer: (wxy) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: 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) + +FreeDOS 25 岁:起源故事 +====== + +> 操作系统的历史是开发人员共同造物的开源软件模型的很好例子。 + +![FreeDOS fish logo and command prompt on computer][1] + +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 Villani,FreeDOS 有了一个可以工作的内核。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 From 1449d32ff427583689d8a57ea4a8e6e4c45f9203 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 15:48:17 +0800 Subject: [PATCH 15/85] PUB:20190628 FreeDOS turns 25 years old- An origin story.md @wxy https://linux.cn/article-11033-1.html --- ...0190628 FreeDOS turns 25 years old- An origin story.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename {translated/talk => published}/20190628 FreeDOS turns 25 years old- An origin story.md (96%) diff --git a/translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md b/published/20190628 FreeDOS turns 25 years old- An origin story.md similarity index 96% rename from translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md rename to published/20190628 FreeDOS turns 25 years old- An origin story.md index cf7b377559..bf11ae7964 100644 --- a/translated/talk/20190628 FreeDOS turns 25 years old- An origin story.md +++ b/published/20190628 FreeDOS turns 25 years old- An origin story.md @@ -1,18 +1,18 @@ [#]: collector: (lujun9972) [#]: translator: (wxy) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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) -FreeDOS 25 岁:起源故事 +25 岁的 FreeDOS:起源故事 ====== > 操作系统的历史是开发人员共同造物的开源软件模型的很好例子。 -![FreeDOS fish logo and command prompt on computer][1] +![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 感到自豪,因为它是开源软件模型如何工作的一个很好的例子。 From 2888f4f730aa2a5b1543a130360aeeddb39c727c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 16:18:58 +0800 Subject: [PATCH 16/85] PRF:20190624 Raspberry Pi 4 is here.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @wahailin 翻译的不错~ --- .../news/20190624 Raspberry Pi 4 is here.md | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/translated/news/20190624 Raspberry Pi 4 is here.md b/translated/news/20190624 Raspberry Pi 4 is here.md index cc384cb55d..56b768771e 100644 --- a/translated/news/20190624 Raspberry Pi 4 is here.md +++ b/translated/news/20190624 Raspberry Pi 4 is here.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (wahailin) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Raspberry Pi 4 is here!) @@ -9,7 +9,10 @@ 树莓派 4 来袭! ====== -售价 35 美元起的新一代树莓派计算机,装载了 1.5 GHz 的 Arm 芯片,并支持双 HDMI 4K 显示,全吞吐量千兆以太网,以及更多新特性。 + +![](https://img.linux.net.cn/data/attachment/album/201906/29/161918icu6zrn8qrg3p38u.png) + +> 售价 35 美元起的新一代树莓派单板计算机,装载了 1.5 GHz 的 Arm 芯片,并支持双 HDMI 4K 显示,全吞吐量千兆以太网,以及更多新特性。 ![Raspberry Pi 4 board][1] @@ -37,38 +40,33 @@ * 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 速率的限制,网络速度要快得多。 +基于 BCM2835 的树莓派 1 到 3 代的芯片只有一个本地 USB 接口,并且没有以太网接口,因而需要使用板子的 USB 集线器给出更多的 USB 接口和以太网接口。树莓派 3B+ 增加了一个专用的局域网(LAN)芯片,装载了千兆以太网,但它受到 USB 2 速率的限制。树莓派 4 板载了专门的千兆以太网,并且由于它不再受到 USB 速率的限制,网络速度要快得多。 - -树莓派 4 采用了 3B+ 中已有的技术,这项技术使得树莓派 3B+ 成为了第一个带有双频无线网络的单板计算机,即可以同时连接 2.4 GHz 和 5 GHz 频率的网络。 +树莓派 4 采用了 3B+ 中已有的技术 —— 该技术使得树莓派 3B+ 成为了第一个带有双频无线网络的单板计算机,即可以同时连接 2.4 GHz 和 5 GHz 频率的网络。 ### 显示 -设计第一代树莓派时,其 CPU 和 GPU 性能的平衡大大偏向于 GPU。VideoCore IV 是一个非常强大的图形处理器,支持全高清 1080 p 多媒体的处理,这就是为什么树莓派一直作为家庭媒体中心而广受欢迎的原因。树莓派 2 代在某种程度上进行了权衡修改,并将 CPU 的性能进行提升,将树莓派从单核发展成四核 ARM 芯片。而树莓派 4 代将 CPU 和 GPU 的性能都进行了大幅提升。新的 VideoCore VI GPU 支持 4K 视频,并允许通过板子的两个 Micro HDMI 端口(板子特意保持了和旧有型号相同的尺寸)进行双显示输出,这里要用一个适配器或 Micro HDMI 转 full HDMI 的转换线连接到 HDMI 屏幕。 - -当你需要同时浏览多个窗口时,需要用到更多的物理显示屏,双显示的好处在此时就得到了绝佳体现。如果你正在编程,你可能会在其中一个屏幕上编写代码,构建网站或应用,而在另一个屏幕上查看数据库、Web 浏览器、电子邮件或其他内容。这是树莓派首次可以不必将开发局限在一台显示器上,从而可以让你在需要时,在不同的屏幕上构建具有不同内容的基于树莓派的项目。 +设计第一代树莓派时,其 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),用于驱动另一个特殊的显示-这里并非指另一个监视器本身,而是通过一根挠性电缆连接的官方树莓派触摸屏显示器。 +该树莓派还有一个显示器串行接口(DSI),用于驱动另一个特殊的显示-这里并非指另一个监视器本身,而是通过一根挠性电缆连接的官方树莓派触摸屏显示器。 ### Raspbian Buster -树莓派 4 发布后,紧接着更新了基于 Debian 的系统 Raspbian Buster,而新的树莓派对 OpenGL ES 3 的支持,使我们在 Raspbian Buster 上为树莓派 4 开发任意软件成为可能。 Buster 对界面进行了一些调整,并对很多软件进行了升级,其中包括 Python3.7。 +树莓派 4 发布后,紧接着更新了基于 Debian 的系统 Raspbian Buster,而新的树莓派对 OpenGL ES 3 的支持,使我们在 Raspbian Buster 上为树莓派 4 开发任意软件成为可能。Buster 对界面进行了一些调整,并对很多软件进行了升级,其中包括 Python3.7。 ![Raspbian Buster][4] ### 开源图形驱动程序 -在过去的五年中,Eric Anholt 一直致力于为树莓派编写开源图形驱动程序。现在,Raspbian 可以使用这个驱动程序加速树莓派上的 Web 浏览、桌面图形和 3D 应用,这取代了以前需要的大量封闭源代码。非常感谢 Eric 和 博通 的贡献。 +在过去的五年中,Eric Anholt 一直致力于为树莓派编写开源图形驱动程序。现在,Raspbian 可以使用这个驱动程序加速树莓派上的 Web 浏览、桌面图形和 3D 应用,这取代了以前需要的大量闭源代码。非常感谢 Eric 和博通的贡献。 按之前预计,树莓派 4 将于明年完成,但由于芯片设计比预期更早投入生产,树莓派 4 因而可以提早到现在发布。 @@ -83,7 +81,7 @@ via: https://opensource.com/article/19/6/raspberry-pi-4 作者:[Ben Nuttall][a] 选题:[lujun9972][b] 译者:[wahailin](https://github.com/wahailin) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 5cc5df1516301884f19f52df5bd962ee2f270e94 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Jun 2019 16:19:37 +0800 Subject: [PATCH 17/85] PUB:20190624 Raspberry Pi 4 is here.md @wahailin https://linux.cn/article-11034-1.html --- .../news => published}/20190624 Raspberry Pi 4 is here.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20190624 Raspberry Pi 4 is here.md (98%) diff --git a/translated/news/20190624 Raspberry Pi 4 is here.md b/published/20190624 Raspberry Pi 4 is here.md similarity index 98% rename from translated/news/20190624 Raspberry Pi 4 is here.md rename to published/20190624 Raspberry Pi 4 is here.md index 56b768771e..3aab50ec31 100644 --- a/translated/news/20190624 Raspberry Pi 4 is here.md +++ b/published/20190624 Raspberry Pi 4 is here.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (wahailin) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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) From 36043a6f277e65b8fdeac79315de2a4f1d7d375a Mon Sep 17 00:00:00 2001 From: darksun Date: Sat, 29 Jun 2019 21:48:13 +0800 Subject: [PATCH 18/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190624=20Linux=20?= =?UTF-8?q?Package=20Managers=20Compared=20=E2=80=93=20AppImage=20vs=20Sna?= =?UTF-8?q?p=20vs=20Flatpak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md --- ... Compared - AppImage vs Snap vs Flatpak.md | 222 ++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md diff --git a/sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md b/sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md new file mode 100644 index 0000000000..df5686d0a5 --- /dev/null +++ b/sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md @@ -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 they’ll 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 you’ll 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 that’s 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 you’ll 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 **Canonical’s 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 won’t 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 isn’t 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 you’re 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 it’s 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 team’s 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 should’ve 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, here’s 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/ From a08995287e7ff24b802fd2fd02cce3c08d47e3e0 Mon Sep 17 00:00:00 2001 From: darksun Date: Sat, 29 Jun 2019 21:57:56 +0800 Subject: [PATCH 19/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020180620=20How=20To?= =?UTF-8?q?=20Find=20The=20Port=20Number=20Of=20A=20Service=20In=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md --- ...d The Port Number Of A Service In Linux.md | 210 ++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md diff --git a/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md new file mode 100644 index 0000000000..7004a4350a --- /dev/null +++ b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md @@ -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, you’re 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 /etc/services +``` + +For example, to find the default port of a SSH service, simply run: + +``` +$ grep ssh /etc/services +``` + +It’s 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? That’s 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 don’t 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 don’t 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, that’s 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 From d6eac7076ae441b79053b5da55bae0236501ffa8 Mon Sep 17 00:00:00 2001 From: lctt-bot Date: Sat, 29 Jun 2019 17:00:40 +0000 Subject: [PATCH 20/85] Revert "translating by arrowfeng" This reverts commit 62c587d2b2fdd1c2b5bc8eb8fe75d94fbfd42ab9. --- sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md b/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md index d25298583c..4420b034e6 100644 --- a/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md +++ b/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: (arrowfeng) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From e25a7e8e62227ae8f1cd911a33498d8d7e5b74fc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Jun 2019 11:49:15 +0800 Subject: [PATCH 21/85] PRF:20190606 Cisco to buy IoT security, management firm Sentryo.md @hopefully2333 --- ...y IoT security, management firm Sentryo.md | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md b/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md index 8654707218..ebc87c919a 100644 --- a/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md +++ b/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (hopefully2333) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Cisco to buy IoT security, management firm Sentryo) @@ -9,12 +9,13 @@ 思科收购了物联网安全管理公司 Sentryo ====== -买下 Sentryo 将给思科在工业互联网的异常和实时威胁检测两方面予以支持。 +> 买下 Sentryo 将给思科在工业物联网的异常和实时威胁检测两方面予以支持。 + ![IDG Worldwide][1] -为了扩展自己的物联网安全管理产品,思科计划收购 Sentryo,这是一家位于法国的公司,Sentryo 为工业互联网提供异常检测和实时威胁检测。 +为了扩展自己的物联网安全管理产品,思科计划收购 Sentryo,这是一家总部位于法国的公司,Sentryo 为工业物联网提供异常检测和实时威胁检测。 -Sentryo 成立于 2014 年,产品包括 ICS CyberVision - 一种用于资产库存、网络监控和威胁情报的平台 - 以及 CyberVision 网络边界传感器,这用于分析网络流量。 +Sentryo 成立于 2014 年,产品包括 ICS CyberVision(一种用于资产库存、网络监控和威胁情报的平台)以及 CyberVision 网络边界传感器,这用于分析网络流量。 **更多关于物联网的信息:** @@ -25,29 +26,25 @@ Sentryo 成立于 2014 年,产品包括 ICS CyberVision - 一种用于资产 * [在物联网领域赚钱的六种方法][8] * [什么是数字双胞胎技术? [以及它为什么重要]][9] * [区块链,以服务为中心的网络是物联网成功的关键][10] - * [物联网的网络和安全作为基础][11] + * [物联网以网络和安全作为基础][11] * [构建完整的物联网网络必须优先完成][12] - * [什么是工业互联网? [为什么风险如此之高]][13] - - + * [什么是工业物联网?[为什么风险如此之高]][13] “我们通过思科的 IOx 应用框架将 Sentryo 的边缘传感器和我们的工业网络硬件相结合”,思科企业发展和思科投资的副总裁 Rob Salvagno 在一篇关于计划收购的博客中写道。 -“我们相信连接是物联网项目的基础,通过释放网络的力量,我们可以大大提高运作的效率并发现新的商业机会。随着 Sentryo 的加入,思科可以为系统控制工程师提供更加深入的资产可见度,以此来对系统进行优化,检测异常并保护他们的网络” +“我们相信连接是物联网项目的基础,通过释放网络的力量,我们可以大大提高运作的效率并发现新的商业机会。随着 Sentryo 的加入,思科可以为系统控制工程师提供更加深入的资产可见度,以此来对系统进行优化,检测异常并保护他们的网络。” -Gartner 对 Sentryo 的系统写道:“ICS CyberVision 这个产品为它的客户提供了可见性”所有的 OT 用户都将了解 OT 网络,而不仅仅是 IT 技术人员。随着黑客和监管机构越来越关注工业控制系统,一个组织的 OT 拥有完整的可见性是至关重要的一件事。很多的 OT 网络不仅在地理上位置分散,而且也很复杂,由成千上万的组件组成 +Gartner 对 Sentryo 的系统写道:“ICS CyberVision 产品以其所有 OT 用户都能理解的方式提供对其客户 OT 网络的可视性,而不仅仅是 IT 技术人员。随着黑客和监管机构越来越关注工业控制系统,一个组织的 OT 拥有完整的可见性是至关重要的一件事。很多的 OT 网络不仅在地理上位置分散,而且也很复杂,由成千上万的组件组成。” -Frost & Sullivan 的工业分析师 Nandini Natarajan 表示,Sentryo 的 ICS CyberVision 让企业能够确保其工业运作的连续性、动态弹性和安全性,并以此预防可能的网络攻击。“它将在标签的表单中使用一种独特的 ‘通用 OT 语言’ 来自动描述资产和通信流程,它会用纯文本的方式描述每个资产在做什么。ICS CyberVision 可以让任何人都能立刻查看一台设备的类别和行为;它利用人工智能算法提供很多不同的分析视图,来让用户深入了解到一个典型的工业控制系统可以产生多么庞大的数据。Sentryo 可以轻松查看重要或相关的信息” +Frost & Sullivan 的工业分析师 Nandini Natarajan 表示,Sentryo 的 ICS CyberVision 让企业能够确保其工业运作的连续性、动态弹性和安全性,并以此预防可能的网络攻击。“它将使用标签形式的独特的 ‘通用 OT 语言’ 来自动描述资产和通信流程,以纯文本的方式描述每个资产在做什么。ICS CyberVision 可以让任何人都能立刻查看一台设备的类别和行为;它利用人工智能算法提供很多不同的分析视图,来让用户深入了解到一个典型的工业控制系统可以产生多么庞大的数据。Sentryo 可以轻松查看重要或相关的信息。” Natarajan 表示,除此之外,Sentryo 的平台使用深度数据包检测(DPI)从工业设备之间的通信数据包里提取信息。DPI 引擎通过边缘计算架构进行部署,它可以运行在 Sentryo 传感器设备上,也可以在已经安装好的网络设备上运行。因此,Sentryo 可以将可见性和网络安全特性嵌入进工业网络中,而非部署带外监控网络。 - -**[[好消息!好消息!通过 PluralSight 的综合在线课程,成为一名光荣的认证信息安全系统专家,现在免费提供 10 天试用!走过路过不要错过!][17] ]** -Sentryo 的技术将扩大思科在物联网上的总体计划。在今年一月,思科推出了一整套的交换机、软件、开发工具和蓝图,这些东西将用于把物联网、基于意图联网的工业网络、传统信息安全、传统信息监控、应用开发支持融为一体。 +Sentryo 的技术将扩大思科在物联网上的总体计划。在今年一月,思科推出了一整套的交换机、软件、开发工具和蓝图,这些东西将用于把物联网、基于意图联网的工业网络、传统信息安全、传统信息监控、应用开发支持融为一体。 这个新平台可以通过思科的 DNA 中心进行管理,让客户能将他们的物联网、工业网络控制和他们的商业 IT 世界融为一体。 -DNA 中心是思科用于企业网络的中央管理工具,具有自动化、确保设置、结构配置、基于策略进行分割的功能。它也是公司 IBN 计划的核心,用于主动向客户提供动态自动化完成网络和策略变更的能力,并在这个过程中确保数据的交付。物联网领域网络的主管是软件,这个软件管理思科工业、连接的网格路由器、终端这多个业务的网络。 +DNA 中心是思科用于企业网络的中央管理工具,具有自动化、确保设置、结构配置、基于策略进行分割的功能。它也是该公司 IBN 计划的核心,用于主动向客户提供动态自动化实施网络和策略变更的能力,并在这个过程中确保数据的交付。IoT Field Network Director 是管理思科工业、连接网格路由器和终端的多服务网络的软件。 思科物联网业务部的高级副总裁兼总经理 Liz Centoni 表示,公司希望 Sentryo 的技术能以多种方式帮助物联网客户: @@ -55,15 +52,11 @@ DNA 中心是思科用于企业网络的中央管理工具,具有自动化、 随着设备识别和通信模式的建立,思科将把 DNA 中心和身份识别服务引擎(ISE)集成到一起,以便客户能够很轻松地定义分割策略。这种集成将使 OT 团队能够利用 IT 安全团队的专业知识来保护他们的环境,而不会对运营的流程造成风险。 -这些物联网设备缺乏现代嵌入式软件和安全功能,网络分段将成为允许运作设备向合法系统进行通信的关键技术,并降低像我们看见的 WannaCry 和 Norsk Hydro 那样网络安全事件的风险。 +由于这些物联网设备缺乏现代嵌入式软件和安全功能,网络分段将成为允许运作设备向合法系统进行通信的关键技术,并降低像我们看见的 WannaCry 和 Norsk Hydro 那样网络安全事件的风险。 -据 Crunchbase 称,Sentryo 的每年预计收入为 350 万美元,与 Cymmetria,Team8,和 Indegy 的竞争最为激烈。此次收购预期将在思科 2020 财年的第一季度 - 2019 年 10 月 26 日 - 结束前完成。思科并未详细披露此次收购的财务细节。 +据 Crunchbase 称,Sentryo 的每年预计收入为 350 万美元,与 Cymmetria、Team8 和 Indegy 的竞争最为激烈。此次收购预期将在思科 2020 财年的第一季度 - 2019 年 10 月 26 日 - 结束前完成。思科并未详细披露此次收购的财务细节。 -Sentryo 是思科今年的第二次收购。思科在今年一月收购了 Singularity,这是为了这家公司的网络分析技术。在 2018 年,思科收购了包含 Duo security software 在内的 6 家公司。 - -** ** - -加入 Facebook 和 LinkedIn 上的网络世界社区,评论最重要的主题。 +Sentryo 是思科今年的第二次收购。思科在今年一月收购了 Singularity 公司的网络分析技术。在 2018 年,思科收购了包含 Duo security software 在内的 6 家公司。 -------------------------------------------------------------------------------- @@ -72,7 +65,7 @@ via: https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-mana 作者:[Michael Cooney][a] 选题:[lujun9972][b] 译者:[hopefully2333](https://github.com/hopefully2333) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fc4183b94b80b89fa88a85fd529756a8fc9a138f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Jun 2019 11:49:43 +0800 Subject: [PATCH 22/85] PUB:20190606 Cisco to buy IoT security, management firm Sentryo.md @hopefully2333 https://linux.cn/article-11035-1.html --- ...0606 Cisco to buy IoT security, management firm Sentryo.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20190606 Cisco to buy IoT security, management firm Sentryo.md (99%) diff --git a/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md b/published/20190606 Cisco to buy IoT security, management firm Sentryo.md similarity index 99% rename from translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md rename to published/20190606 Cisco to buy IoT security, management firm Sentryo.md index ebc87c919a..302ea5e3f4 100644 --- a/translated/news/20190606 Cisco to buy IoT security, management firm Sentryo.md +++ b/published/20190606 Cisco to buy IoT security, management firm Sentryo.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (hopefully2333) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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/) From ef059f1fba1bd7a9c2e6de7bcf124506429a1ef3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Jun 2019 14:09:49 +0800 Subject: [PATCH 23/85] PRF:20190606 Kubernetes basics- Learn how to drive first.md @geekpi --- ...rnetes basics- Learn how to drive first.md | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md b/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md index 6ead832f0d..ebf7a7b766 100644 --- a/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md +++ b/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Kubernetes basics: Learn how to drive first) @@ -9,14 +9,16 @@ 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,还有部署Deployment持久化卷声明Persistent Volume Claim服务Service路由route等。使用支持 Kubernetes 的平台 [OpenShift][8],你可以添加构建build和 BuildConfig。你大概需要一天左右的时间来了解这些原语。你可以在你的用例变得更加复杂时再深入了解。 -### 将开发者映射到传统 IT 环境 +### 将原生开发者映射到传统 IT 环境 最后,考虑这该如何映射到你在传统 IT 环境中的操作。 ![Mapping developer-native to traditional IT environments][9] -尽管是一个技术问题,但用户一直在尝试解决业务问题。从历史上看,我们使用诸如 playbook 之类的东西将业务逻辑与单一语言的 IT 系统绑定起来。对于运维人员来说,这很不错,但是当你尝试将其扩展到开发人员时,它会变得更加繁琐。 +尽管是一个技术问题,但用户一直在尝试解决业务问题。从历史上看,我们使用诸如剧本playbook之类的东西将业务逻辑与单一语言的 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) From 420343f3438456e42ca15a3ad956775c889cbf5b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Jun 2019 14:10:18 +0800 Subject: [PATCH 24/85] PUB:20190606 Kubernetes basics- Learn how to drive first.md @geekpi https://linux.cn/article-11036-1.html --- .../20190606 Kubernetes basics- Learn how to drive first.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190606 Kubernetes basics- Learn how to drive first.md (98%) diff --git a/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md b/published/20190606 Kubernetes basics- Learn how to drive first.md similarity index 98% rename from translated/tech/20190606 Kubernetes basics- Learn how to drive first.md rename to published/20190606 Kubernetes basics- Learn how to drive first.md index ebf7a7b766..2e93d2d5d9 100644 --- a/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md +++ b/published/20190606 Kubernetes basics- Learn how to drive first.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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) From 3ac5f8aab60404e4ef295dafca09eb24a2ada0af Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 00:02:08 +0800 Subject: [PATCH 25/85] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20201906?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20170410 Writing a Time Series Database from Scratch.md | 0 .../{ => 201906}/20170414 5 projects for Raspberry Pi at home.md | 0 .../20180324 Memories of writing a parser for man pages.md | 0 ... Resize Active-Primary root Partition Using GParted Utility.md | 0 ...ript To Securely Create A Bootable USB Device From ISO File.md | 0 ...180831 Get desktop notifications from Emacs shell commands .md | 0 .../{ => 201906}/20180914 A day in the life of a log message.md | 0 ... A Real-Time Web Server Log Analyzer And Interactive Viewer.md | 0 .../20190111 Top 5 Linux Distributions for Productivity.md | 0 ... Good Open Source Speech Recognition-Speech-to-Text Systems.md | 0 ...hain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md | 0 ...uild a mobile particulate matter sensor with a Raspberry Pi.md | 0 .../20190404 Running LEDs in reverse could cool computers.md | 0 ...Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md | 0 published/{ => 201906}/20190409 5 Linux rookie mistakes.md | 0 published/{ => 201906}/20190409 5 open source mobile apps.md | 0 ...409 VSCodium- 100- Open Source Version of Microsoft VS Code.md | 0 .../20190410 How we built a Linux desktop app with Electron.md | 0 .../{ => 201906}/20190411 Be your own certificate authority.md | 0 ...7 Inter-process communication in Linux- Sockets and signals.md | 0 .../20190422 4 open source apps for plant-based diets.md | 0 .../20190423 Edge computing is in most industries- future.md | 0 ...Epic Games Store is Now Available on Linux Thanks to Lutris.md | 0 .../20190423 How to identify same-content files on Linux.md | 0 .../20190427 Monitoring CPU and GPU Temperatures on Linux.md | 0 .../20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md | 0 ...w To Install-Uninstall Listed Packages From A File In Linux.md | 0 ...90508 Why startups should release their code as open source.md | 0 .../20190509 5 essential values for the DevOps mindset.md | 0 ...e Given Package Is Installed Or Not On Debian-Ubuntu System.md | 0 .../20190517 10 Places Where You Can Buy Linux Computers.md | 0 ...0190517 Using Testinfra with Ansible to verify server state.md | 0 published/{ => 201906}/20190520 Getting Started With Docker.md | 0 ...0520 When IoT systems fail- The risk of having bad IoT data.md | 0 ...190520 Zettlr - Markdown Editor for Writers and Researchers.md | 0 ...522 French IT giant Atos enters the edge-computing business.md | 0 .../20190522 Securing telnet connections with stunnel.md | 0 .../20190525 4 Ways to Run Linux Commands in Windows.md | 0 .../{ => 201906}/20190527 20- FFmpeg Commands For Beginners.md | 0 .../20190527 5 GNOME keyboard shortcuts to be more productive.md | 0 .../{ => 201906}/20190527 A deeper dive into Linux permissions.md | 0 .../20190527 Dockly - Manage Docker Containers From Terminal.md | 0 ...ilable Security Updates On Red Hat (RHEL) And CentOS System.md | 0 .../{ => 201906}/20190527 How to write a good C main function.md | 0 published/{ => 201906}/20190529 NVMe on Linux.md | 0 ...0 A short primer on assemblers, compilers, and interpreters.md | 0 .../20190531 Learn Python with these awesome resources.md | 0 ...20190531 Unity Editor is Now Officially Available for Linux.md | 0 .../{ => 201906}/20190531 Why translation platforms matter.md | 0 ...4 How To Verify NTP Setup (Sync) is Working or Not In Linux.md | 0 .../20190604 Kubernetes is a dump truck- Here-s why.md | 0 ...stalled Security Updates on Redhat (RHEL) And CentOS System.md | 0 .../20190605 How to navigate the Kubernetes learning curve.md | 0 ...20190606 Cisco to buy IoT security, management firm Sentryo.md | 0 .../20190606 How Linux can help with your spelling.md | 0 .../20190606 Kubernetes basics- Learn how to drive first.md | 0 published/{ => 201906}/20190607 5 reasons to use Kubernetes.md | 0 ... Python data pipeline, data breach detection, and more news.md | 0 .../{ => 201906}/20190610 Applications for writing Markdown.md | 0 ...0190610 Expand And Unexpand Commands Tutorial With Examples.md | 0 .../20190610 Graviton- A Minimalist Open Source Code Editor.md | 0 ...610 Neofetch - Display Linux system Information In Terminal.md | 0 ...creen Command Examples To Manage Multiple Terminal Sessions.md | 0 ...x Applications On AppImage, Flathub And Snapcraft Platforms.md | 0 published/{ => 201906}/20190610 Try a new game on Free RPG Day.md | 0 published/{ => 201906}/20190610 Welcoming Blockchain 3.0.md | 0 .../20190612 Installing alternative versions of RPMs in Fedora.md | 0 ...e for musicians and music lovers- Headphone, amps, and more.md | 0 ...190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md | 0 .../20190614 How to send email from the Linux command line.md | 0 .../20190614 Personal assistant with Mycroft and Fedora.md | 0 published/{ => 201906}/20190617 Exploring -run on Linux.md | 0 .../{ => 201906}/20190619 Get the latest Ansible 2.8 in Fedora.md | 0 .../20190621 Bash Script to Monitor Memory Usage on Linux.md | 0 ... Open Source Slack Alternative Mattermost Gets -50M Funding.md | 0 published/{ => 201906}/20190624 Raspberry Pi 4 is here.md | 0 .../{ => 201906}/20190624 Using i3 with multiple monitors.md | 0 .../20190628 FreeDOS turns 25 years old- An origin story.md | 0 78 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 201906}/20170410 Writing a Time Series Database from Scratch.md (100%) rename published/{ => 201906}/20170414 5 projects for Raspberry Pi at home.md (100%) rename published/{ => 201906}/20180324 Memories of writing a parser for man pages.md (100%) rename published/{ => 201906}/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md (100%) rename published/{ => 201906}/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md (100%) rename published/{ => 201906}/20180831 Get desktop notifications from Emacs shell commands .md (100%) rename published/{ => 201906}/20180914 A day in the life of a log message.md (100%) rename published/{ => 201906}/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md (100%) rename published/{ => 201906}/20190111 Top 5 Linux Distributions for Productivity.md (100%) rename published/{ => 201906}/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md (100%) rename published/{ => 201906}/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md (100%) rename published/{ => 201906}/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md (100%) rename published/{ => 201906}/20190404 Running LEDs in reverse could cool computers.md (100%) rename published/{ => 201906}/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md (100%) rename published/{ => 201906}/20190409 5 Linux rookie mistakes.md (100%) rename published/{ => 201906}/20190409 5 open source mobile apps.md (100%) rename published/{ => 201906}/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md (100%) rename published/{ => 201906}/20190410 How we built a Linux desktop app with Electron.md (100%) rename published/{ => 201906}/20190411 Be your own certificate authority.md (100%) rename published/{ => 201906}/20190417 Inter-process communication in Linux- Sockets and signals.md (100%) rename published/{ => 201906}/20190422 4 open source apps for plant-based diets.md (100%) rename published/{ => 201906}/20190423 Edge computing is in most industries- future.md (100%) rename published/{ => 201906}/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md (100%) rename published/{ => 201906}/20190423 How to identify same-content files on Linux.md (100%) rename published/{ => 201906}/20190427 Monitoring CPU and GPU Temperatures on Linux.md (100%) rename published/{ => 201906}/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md (100%) rename published/{ => 201906}/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md (100%) rename published/{ => 201906}/20190508 Why startups should release their code as open source.md (100%) rename published/{ => 201906}/20190509 5 essential values for the DevOps mindset.md (100%) rename published/{ => 201906}/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md (100%) rename published/{ => 201906}/20190517 10 Places Where You Can Buy Linux Computers.md (100%) rename published/{ => 201906}/20190517 Using Testinfra with Ansible to verify server state.md (100%) rename published/{ => 201906}/20190520 Getting Started With Docker.md (100%) rename published/{ => 201906}/20190520 When IoT systems fail- The risk of having bad IoT data.md (100%) rename published/{ => 201906}/20190520 Zettlr - Markdown Editor for Writers and Researchers.md (100%) rename published/{ => 201906}/20190522 French IT giant Atos enters the edge-computing business.md (100%) rename published/{ => 201906}/20190522 Securing telnet connections with stunnel.md (100%) rename published/{ => 201906}/20190525 4 Ways to Run Linux Commands in Windows.md (100%) rename published/{ => 201906}/20190527 20- FFmpeg Commands For Beginners.md (100%) rename published/{ => 201906}/20190527 5 GNOME keyboard shortcuts to be more productive.md (100%) rename published/{ => 201906}/20190527 A deeper dive into Linux permissions.md (100%) rename published/{ => 201906}/20190527 Dockly - Manage Docker Containers From Terminal.md (100%) rename published/{ => 201906}/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md (100%) rename published/{ => 201906}/20190527 How to write a good C main function.md (100%) rename published/{ => 201906}/20190529 NVMe on Linux.md (100%) rename published/{ => 201906}/20190530 A short primer on assemblers, compilers, and interpreters.md (100%) rename published/{ => 201906}/20190531 Learn Python with these awesome resources.md (100%) rename published/{ => 201906}/20190531 Unity Editor is Now Officially Available for Linux.md (100%) rename published/{ => 201906}/20190531 Why translation platforms matter.md (100%) rename published/{ => 201906}/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md (100%) rename published/{ => 201906}/20190604 Kubernetes is a dump truck- Here-s why.md (100%) rename published/{ => 201906}/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md (100%) rename published/{ => 201906}/20190605 How to navigate the Kubernetes learning curve.md (100%) rename published/{ => 201906}/20190606 Cisco to buy IoT security, management firm Sentryo.md (100%) rename published/{ => 201906}/20190606 How Linux can help with your spelling.md (100%) rename published/{ => 201906}/20190606 Kubernetes basics- Learn how to drive first.md (100%) rename published/{ => 201906}/20190607 5 reasons to use Kubernetes.md (100%) rename published/{ => 201906}/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md (100%) rename published/{ => 201906}/20190610 Applications for writing Markdown.md (100%) rename published/{ => 201906}/20190610 Expand And Unexpand Commands Tutorial With Examples.md (100%) rename published/{ => 201906}/20190610 Graviton- A Minimalist Open Source Code Editor.md (100%) rename published/{ => 201906}/20190610 Neofetch - Display Linux system Information In Terminal.md (100%) rename published/{ => 201906}/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md (100%) rename published/{ => 201906}/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md (100%) rename published/{ => 201906}/20190610 Try a new game on Free RPG Day.md (100%) rename published/{ => 201906}/20190610 Welcoming Blockchain 3.0.md (100%) rename published/{ => 201906}/20190612 Installing alternative versions of RPMs in Fedora.md (100%) rename published/{ => 201906}/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md (100%) rename published/{ => 201906}/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md (100%) rename published/{ => 201906}/20190614 How to send email from the Linux command line.md (100%) rename published/{ => 201906}/20190614 Personal assistant with Mycroft and Fedora.md (100%) rename published/{ => 201906}/20190617 Exploring -run on Linux.md (100%) rename published/{ => 201906}/20190619 Get the latest Ansible 2.8 in Fedora.md (100%) rename published/{ => 201906}/20190621 Bash Script to Monitor Memory Usage on Linux.md (100%) rename published/{ => 201906}/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md (100%) rename published/{ => 201906}/20190624 Raspberry Pi 4 is here.md (100%) rename published/{ => 201906}/20190624 Using i3 with multiple monitors.md (100%) rename published/{ => 201906}/20190628 FreeDOS turns 25 years old- An origin story.md (100%) diff --git a/published/20170410 Writing a Time Series Database from Scratch.md b/published/201906/20170410 Writing a Time Series Database from Scratch.md similarity index 100% rename from published/20170410 Writing a Time Series Database from Scratch.md rename to published/201906/20170410 Writing a Time Series Database from Scratch.md diff --git a/published/20170414 5 projects for Raspberry Pi at home.md b/published/201906/20170414 5 projects for Raspberry Pi at home.md similarity index 100% rename from published/20170414 5 projects for Raspberry Pi at home.md rename to published/201906/20170414 5 projects for Raspberry Pi at home.md diff --git a/published/20180324 Memories of writing a parser for man pages.md b/published/201906/20180324 Memories of writing a parser for man pages.md similarity index 100% rename from published/20180324 Memories of writing a parser for man pages.md rename to published/201906/20180324 Memories of writing a parser for man pages.md diff --git a/published/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md b/published/201906/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md similarity index 100% rename from published/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md rename to published/201906/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md diff --git a/published/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md b/published/201906/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md similarity index 100% rename from published/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md rename to published/201906/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md diff --git a/published/20180831 Get desktop notifications from Emacs shell commands .md b/published/201906/20180831 Get desktop notifications from Emacs shell commands .md similarity index 100% rename from published/20180831 Get desktop notifications from Emacs shell commands .md rename to published/201906/20180831 Get desktop notifications from Emacs shell commands .md diff --git a/published/20180914 A day in the life of a log message.md b/published/201906/20180914 A day in the life of a log message.md similarity index 100% rename from published/20180914 A day in the life of a log message.md rename to published/201906/20180914 A day in the life of a log message.md diff --git a/published/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md b/published/201906/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md similarity index 100% rename from published/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md rename to published/201906/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md diff --git a/published/20190111 Top 5 Linux Distributions for Productivity.md b/published/201906/20190111 Top 5 Linux Distributions for Productivity.md similarity index 100% rename from published/20190111 Top 5 Linux Distributions for Productivity.md rename to published/201906/20190111 Top 5 Linux Distributions for Productivity.md diff --git a/published/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md b/published/201906/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md similarity index 100% rename from published/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md rename to published/201906/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md diff --git a/published/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md b/published/201906/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md similarity index 100% rename from published/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md rename to published/201906/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md diff --git a/published/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md b/published/201906/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md similarity index 100% rename from published/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md rename to published/201906/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md diff --git a/published/20190404 Running LEDs in reverse could cool computers.md b/published/201906/20190404 Running LEDs in reverse could cool computers.md similarity index 100% rename from published/20190404 Running LEDs in reverse could cool computers.md rename to published/201906/20190404 Running LEDs in reverse could cool computers.md diff --git a/published/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md b/published/201906/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md similarity index 100% rename from published/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md rename to published/201906/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md diff --git a/published/20190409 5 Linux rookie mistakes.md b/published/201906/20190409 5 Linux rookie mistakes.md similarity index 100% rename from published/20190409 5 Linux rookie mistakes.md rename to published/201906/20190409 5 Linux rookie mistakes.md diff --git a/published/20190409 5 open source mobile apps.md b/published/201906/20190409 5 open source mobile apps.md similarity index 100% rename from published/20190409 5 open source mobile apps.md rename to published/201906/20190409 5 open source mobile apps.md diff --git a/published/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md b/published/201906/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md similarity index 100% rename from published/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md rename to published/201906/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md diff --git a/published/20190410 How we built a Linux desktop app with Electron.md b/published/201906/20190410 How we built a Linux desktop app with Electron.md similarity index 100% rename from published/20190410 How we built a Linux desktop app with Electron.md rename to published/201906/20190410 How we built a Linux desktop app with Electron.md diff --git a/published/20190411 Be your own certificate authority.md b/published/201906/20190411 Be your own certificate authority.md similarity index 100% rename from published/20190411 Be your own certificate authority.md rename to published/201906/20190411 Be your own certificate authority.md diff --git a/published/20190417 Inter-process communication in Linux- Sockets and signals.md b/published/201906/20190417 Inter-process communication in Linux- Sockets and signals.md similarity index 100% rename from published/20190417 Inter-process communication in Linux- Sockets and signals.md rename to published/201906/20190417 Inter-process communication in Linux- Sockets and signals.md diff --git a/published/20190422 4 open source apps for plant-based diets.md b/published/201906/20190422 4 open source apps for plant-based diets.md similarity index 100% rename from published/20190422 4 open source apps for plant-based diets.md rename to published/201906/20190422 4 open source apps for plant-based diets.md diff --git a/published/20190423 Edge computing is in most industries- future.md b/published/201906/20190423 Edge computing is in most industries- future.md similarity index 100% rename from published/20190423 Edge computing is in most industries- future.md rename to published/201906/20190423 Edge computing is in most industries- future.md diff --git a/published/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md b/published/201906/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md similarity index 100% rename from published/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md rename to published/201906/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md diff --git a/published/20190423 How to identify same-content files on Linux.md b/published/201906/20190423 How to identify same-content files on Linux.md similarity index 100% rename from published/20190423 How to identify same-content files on Linux.md rename to published/201906/20190423 How to identify same-content files on Linux.md diff --git a/published/20190427 Monitoring CPU and GPU Temperatures on Linux.md b/published/201906/20190427 Monitoring CPU and GPU Temperatures on Linux.md similarity index 100% rename from published/20190427 Monitoring CPU and GPU Temperatures on Linux.md rename to published/201906/20190427 Monitoring CPU and GPU Temperatures on Linux.md diff --git a/published/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md b/published/201906/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md similarity index 100% rename from published/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md rename to published/201906/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md diff --git a/published/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md b/published/201906/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md similarity index 100% rename from published/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md rename to published/201906/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md diff --git a/published/20190508 Why startups should release their code as open source.md b/published/201906/20190508 Why startups should release their code as open source.md similarity index 100% rename from published/20190508 Why startups should release their code as open source.md rename to published/201906/20190508 Why startups should release their code as open source.md diff --git a/published/20190509 5 essential values for the DevOps mindset.md b/published/201906/20190509 5 essential values for the DevOps mindset.md similarity index 100% rename from published/20190509 5 essential values for the DevOps mindset.md rename to published/201906/20190509 5 essential values for the DevOps mindset.md diff --git a/published/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md b/published/201906/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md similarity index 100% rename from published/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md rename to published/201906/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md diff --git a/published/20190517 10 Places Where You Can Buy Linux Computers.md b/published/201906/20190517 10 Places Where You Can Buy Linux Computers.md similarity index 100% rename from published/20190517 10 Places Where You Can Buy Linux Computers.md rename to published/201906/20190517 10 Places Where You Can Buy Linux Computers.md diff --git a/published/20190517 Using Testinfra with Ansible to verify server state.md b/published/201906/20190517 Using Testinfra with Ansible to verify server state.md similarity index 100% rename from published/20190517 Using Testinfra with Ansible to verify server state.md rename to published/201906/20190517 Using Testinfra with Ansible to verify server state.md diff --git a/published/20190520 Getting Started With Docker.md b/published/201906/20190520 Getting Started With Docker.md similarity index 100% rename from published/20190520 Getting Started With Docker.md rename to published/201906/20190520 Getting Started With Docker.md diff --git a/published/20190520 When IoT systems fail- The risk of having bad IoT data.md b/published/201906/20190520 When IoT systems fail- The risk of having bad IoT data.md similarity index 100% rename from published/20190520 When IoT systems fail- The risk of having bad IoT data.md rename to published/201906/20190520 When IoT systems fail- The risk of having bad IoT data.md diff --git a/published/20190520 Zettlr - Markdown Editor for Writers and Researchers.md b/published/201906/20190520 Zettlr - Markdown Editor for Writers and Researchers.md similarity index 100% rename from published/20190520 Zettlr - Markdown Editor for Writers and Researchers.md rename to published/201906/20190520 Zettlr - Markdown Editor for Writers and Researchers.md diff --git a/published/20190522 French IT giant Atos enters the edge-computing business.md b/published/201906/20190522 French IT giant Atos enters the edge-computing business.md similarity index 100% rename from published/20190522 French IT giant Atos enters the edge-computing business.md rename to published/201906/20190522 French IT giant Atos enters the edge-computing business.md diff --git a/published/20190522 Securing telnet connections with stunnel.md b/published/201906/20190522 Securing telnet connections with stunnel.md similarity index 100% rename from published/20190522 Securing telnet connections with stunnel.md rename to published/201906/20190522 Securing telnet connections with stunnel.md diff --git a/published/20190525 4 Ways to Run Linux Commands in Windows.md b/published/201906/20190525 4 Ways to Run Linux Commands in Windows.md similarity index 100% rename from published/20190525 4 Ways to Run Linux Commands in Windows.md rename to published/201906/20190525 4 Ways to Run Linux Commands in Windows.md diff --git a/published/20190527 20- FFmpeg Commands For Beginners.md b/published/201906/20190527 20- FFmpeg Commands For Beginners.md similarity index 100% rename from published/20190527 20- FFmpeg Commands For Beginners.md rename to published/201906/20190527 20- FFmpeg Commands For Beginners.md diff --git a/published/20190527 5 GNOME keyboard shortcuts to be more productive.md b/published/201906/20190527 5 GNOME keyboard shortcuts to be more productive.md similarity index 100% rename from published/20190527 5 GNOME keyboard shortcuts to be more productive.md rename to published/201906/20190527 5 GNOME keyboard shortcuts to be more productive.md diff --git a/published/20190527 A deeper dive into Linux permissions.md b/published/201906/20190527 A deeper dive into Linux permissions.md similarity index 100% rename from published/20190527 A deeper dive into Linux permissions.md rename to published/201906/20190527 A deeper dive into Linux permissions.md diff --git a/published/20190527 Dockly - Manage Docker Containers From Terminal.md b/published/201906/20190527 Dockly - Manage Docker Containers From Terminal.md similarity index 100% rename from published/20190527 Dockly - Manage Docker Containers From Terminal.md rename to published/201906/20190527 Dockly - Manage Docker Containers From Terminal.md diff --git a/published/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md b/published/201906/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md similarity index 100% rename from published/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md rename to published/201906/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md diff --git a/published/20190527 How to write a good C main function.md b/published/201906/20190527 How to write a good C main function.md similarity index 100% rename from published/20190527 How to write a good C main function.md rename to published/201906/20190527 How to write a good C main function.md diff --git a/published/20190529 NVMe on Linux.md b/published/201906/20190529 NVMe on Linux.md similarity index 100% rename from published/20190529 NVMe on Linux.md rename to published/201906/20190529 NVMe on Linux.md diff --git a/published/20190530 A short primer on assemblers, compilers, and interpreters.md b/published/201906/20190530 A short primer on assemblers, compilers, and interpreters.md similarity index 100% rename from published/20190530 A short primer on assemblers, compilers, and interpreters.md rename to published/201906/20190530 A short primer on assemblers, compilers, and interpreters.md diff --git a/published/20190531 Learn Python with these awesome resources.md b/published/201906/20190531 Learn Python with these awesome resources.md similarity index 100% rename from published/20190531 Learn Python with these awesome resources.md rename to published/201906/20190531 Learn Python with these awesome resources.md diff --git a/published/20190531 Unity Editor is Now Officially Available for Linux.md b/published/201906/20190531 Unity Editor is Now Officially Available for Linux.md similarity index 100% rename from published/20190531 Unity Editor is Now Officially Available for Linux.md rename to published/201906/20190531 Unity Editor is Now Officially Available for Linux.md diff --git a/published/20190531 Why translation platforms matter.md b/published/201906/20190531 Why translation platforms matter.md similarity index 100% rename from published/20190531 Why translation platforms matter.md rename to published/201906/20190531 Why translation platforms matter.md diff --git a/published/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md b/published/201906/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md similarity index 100% rename from published/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md rename to published/201906/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md diff --git a/published/20190604 Kubernetes is a dump truck- Here-s why.md b/published/201906/20190604 Kubernetes is a dump truck- Here-s why.md similarity index 100% rename from published/20190604 Kubernetes is a dump truck- Here-s why.md rename to published/201906/20190604 Kubernetes is a dump truck- Here-s why.md diff --git a/published/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md b/published/201906/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md similarity index 100% rename from published/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md rename to published/201906/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md diff --git a/published/20190605 How to navigate the Kubernetes learning curve.md b/published/201906/20190605 How to navigate the Kubernetes learning curve.md similarity index 100% rename from published/20190605 How to navigate the Kubernetes learning curve.md rename to published/201906/20190605 How to navigate the Kubernetes learning curve.md diff --git a/published/20190606 Cisco to buy IoT security, management firm Sentryo.md b/published/201906/20190606 Cisco to buy IoT security, management firm Sentryo.md similarity index 100% rename from published/20190606 Cisco to buy IoT security, management firm Sentryo.md rename to published/201906/20190606 Cisco to buy IoT security, management firm Sentryo.md diff --git a/published/20190606 How Linux can help with your spelling.md b/published/201906/20190606 How Linux can help with your spelling.md similarity index 100% rename from published/20190606 How Linux can help with your spelling.md rename to published/201906/20190606 How Linux can help with your spelling.md diff --git a/published/20190606 Kubernetes basics- Learn how to drive first.md b/published/201906/20190606 Kubernetes basics- Learn how to drive first.md similarity index 100% rename from published/20190606 Kubernetes basics- Learn how to drive first.md rename to published/201906/20190606 Kubernetes basics- Learn how to drive first.md diff --git a/published/20190607 5 reasons to use Kubernetes.md b/published/201906/20190607 5 reasons to use Kubernetes.md similarity index 100% rename from published/20190607 5 reasons to use Kubernetes.md rename to published/201906/20190607 5 reasons to use Kubernetes.md diff --git a/published/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md b/published/201906/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md similarity index 100% rename from published/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md rename to published/201906/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md diff --git a/published/20190610 Applications for writing Markdown.md b/published/201906/20190610 Applications for writing Markdown.md similarity index 100% rename from published/20190610 Applications for writing Markdown.md rename to published/201906/20190610 Applications for writing Markdown.md diff --git a/published/20190610 Expand And Unexpand Commands Tutorial With Examples.md b/published/201906/20190610 Expand And Unexpand Commands Tutorial With Examples.md similarity index 100% rename from published/20190610 Expand And Unexpand Commands Tutorial With Examples.md rename to published/201906/20190610 Expand And Unexpand Commands Tutorial With Examples.md diff --git a/published/20190610 Graviton- A Minimalist Open Source Code Editor.md b/published/201906/20190610 Graviton- A Minimalist Open Source Code Editor.md similarity index 100% rename from published/20190610 Graviton- A Minimalist Open Source Code Editor.md rename to published/201906/20190610 Graviton- A Minimalist Open Source Code Editor.md diff --git a/published/20190610 Neofetch - Display Linux system Information In Terminal.md b/published/201906/20190610 Neofetch - Display Linux system Information In Terminal.md similarity index 100% rename from published/20190610 Neofetch - Display Linux system Information In Terminal.md rename to published/201906/20190610 Neofetch - Display Linux system Information In Terminal.md diff --git a/published/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md b/published/201906/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md similarity index 100% rename from published/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md rename to published/201906/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md diff --git a/published/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md b/published/201906/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md similarity index 100% rename from published/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md rename to published/201906/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md diff --git a/published/20190610 Try a new game on Free RPG Day.md b/published/201906/20190610 Try a new game on Free RPG Day.md similarity index 100% rename from published/20190610 Try a new game on Free RPG Day.md rename to published/201906/20190610 Try a new game on Free RPG Day.md diff --git a/published/20190610 Welcoming Blockchain 3.0.md b/published/201906/20190610 Welcoming Blockchain 3.0.md similarity index 100% rename from published/20190610 Welcoming Blockchain 3.0.md rename to published/201906/20190610 Welcoming Blockchain 3.0.md diff --git a/published/20190612 Installing alternative versions of RPMs in Fedora.md b/published/201906/20190612 Installing alternative versions of RPMs in Fedora.md similarity index 100% rename from published/20190612 Installing alternative versions of RPMs in Fedora.md rename to published/201906/20190612 Installing alternative versions of RPMs in Fedora.md diff --git a/published/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md b/published/201906/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md similarity index 100% rename from published/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md rename to published/201906/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md diff --git a/published/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md b/published/201906/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md similarity index 100% rename from published/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md rename to published/201906/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md diff --git a/published/20190614 How to send email from the Linux command line.md b/published/201906/20190614 How to send email from the Linux command line.md similarity index 100% rename from published/20190614 How to send email from the Linux command line.md rename to published/201906/20190614 How to send email from the Linux command line.md diff --git a/published/20190614 Personal assistant with Mycroft and Fedora.md b/published/201906/20190614 Personal assistant with Mycroft and Fedora.md similarity index 100% rename from published/20190614 Personal assistant with Mycroft and Fedora.md rename to published/201906/20190614 Personal assistant with Mycroft and Fedora.md diff --git a/published/20190617 Exploring -run on Linux.md b/published/201906/20190617 Exploring -run on Linux.md similarity index 100% rename from published/20190617 Exploring -run on Linux.md rename to published/201906/20190617 Exploring -run on Linux.md diff --git a/published/20190619 Get the latest Ansible 2.8 in Fedora.md b/published/201906/20190619 Get the latest Ansible 2.8 in Fedora.md similarity index 100% rename from published/20190619 Get the latest Ansible 2.8 in Fedora.md rename to published/201906/20190619 Get the latest Ansible 2.8 in Fedora.md diff --git a/published/20190621 Bash Script to Monitor Memory Usage on Linux.md b/published/201906/20190621 Bash Script to Monitor Memory Usage on Linux.md similarity index 100% rename from published/20190621 Bash Script to Monitor Memory Usage on Linux.md rename to published/201906/20190621 Bash Script to Monitor Memory Usage on Linux.md diff --git a/published/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md b/published/201906/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md similarity index 100% rename from published/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md rename to published/201906/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md diff --git a/published/20190624 Raspberry Pi 4 is here.md b/published/201906/20190624 Raspberry Pi 4 is here.md similarity index 100% rename from published/20190624 Raspberry Pi 4 is here.md rename to published/201906/20190624 Raspberry Pi 4 is here.md diff --git a/published/20190624 Using i3 with multiple monitors.md b/published/201906/20190624 Using i3 with multiple monitors.md similarity index 100% rename from published/20190624 Using i3 with multiple monitors.md rename to published/201906/20190624 Using i3 with multiple monitors.md diff --git a/published/20190628 FreeDOS turns 25 years old- An origin story.md b/published/201906/20190628 FreeDOS turns 25 years old- An origin story.md similarity index 100% rename from published/20190628 FreeDOS turns 25 years old- An origin story.md rename to published/201906/20190628 FreeDOS turns 25 years old- An origin story.md From cbd3da015495c3c2b960617a7eea5e3f8eb302ea Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 1 Jul 2019 08:56:13 +0800 Subject: [PATCH 26/85] translated --- .../20190320 4 cool terminal multiplexers.md | 121 ----------------- .../20190320 4 cool terminal multiplexers.md | 122 ++++++++++++++++++ 2 files changed, 122 insertions(+), 121 deletions(-) delete mode 100644 sources/tech/20190320 4 cool terminal multiplexers.md create mode 100644 translated/tech/20190320 4 cool terminal multiplexers.md diff --git a/sources/tech/20190320 4 cool terminal multiplexers.md b/sources/tech/20190320 4 cool terminal multiplexers.md deleted file mode 100644 index 2dbdfc6770..0000000000 --- a/sources/tech/20190320 4 cool terminal multiplexers.md +++ /dev/null @@ -1,121 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: 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_. It’s 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. You’ll 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 you’re 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** you’ll create a new window with a shell in it. - -Here’s 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. It’s 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, you’ll 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_ isn’t truly a multiplexer on its own — it wraps _tmux_ or even the older _screen_ to add functions — it’s 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 it’s 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 you’ll find. In fact, it’s only about 1000 lines of code! You might find it helpful if you’re in a limited environment such as old hardware, a minimal container, and so forth. To get started, you’ll 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 you’re done, you’ll 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 you’d 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 diff --git a/translated/tech/20190320 4 cool terminal multiplexers.md b/translated/tech/20190320 4 cool terminal multiplexers.md new file mode 100644 index 0000000000..fd35fce491 --- /dev/null +++ b/translated/tech/20190320 4 cool terminal multiplexers.md @@ -0,0 +1,122 @@ +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: 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 款很酷的终端复用器 +====== + +![][1] + +Fedora 系统对很多用户来说都很舒适。它有一个令人惊叹的桌面,可以轻松地完成日常任务。表面之下有 Linux 系统的全部功能,终端是高级用户使用它们的最简单的方法。默认的终端简单且功能有限。但是,_终端复用器_能让你的终端变得非常强大。本文展示了一些流行的终端多路复用器以及如何安装它们。 + + +你为什么要用它?嗯,首先,它可以让你注销你的系统,同时_让你的终端会话不受干扰_。退出你的控制台,加密它,在其他地方旅行时通过远程登录 SSH 继续之前的操作是非常有用的。这里有一些工具可以看下。 + +最古老和最知名的终端多路复用器之一是 _screen_。但是,由于代码不再维护,本文将重点介绍最近的应用。 (“最近的”是相对的,其中一些已存在多年!) + +### Tmux + +_tmux_ 是 _screen_ 的最广泛使用的替换之一。它有高度可配置的接口。你可以根据需要对 tmux 进行编程以启动特定类型的会话。在前面发表的这篇文章中你会发现更多关于 tmux 的信息: + +> [使用 tmux 实现更强大的终端][2] + +已经是 tmux 用户?你可能会喜欢[这篇使你的 tmux 会话更有效的文章][3]。 + +要安装 tmux,由于你可能已经在终端中,请使用 _dnf_ 并带上 _sudo_: + +``` +$ sudo dnf install tmux +``` + +要开始学习,请运行 _tmux_ 命令。单窗格窗口以你的默认 shell 启动。tmux 使用_修饰键_来表示接下来会发出命令。默认情况下,此键为 **Ctrl+B**。如果输入 **Ctrl+B, C**,你将创建一个带有 shell 的新窗口。 + +提示:使用 **Ctrl+B, ?** 进入帮助模式,会列出你可以使用的所有键。为了简单起见,你先查看 _bind-key -T prefix_ 开头的行。这些是你可以在修饰键之后立即使用的键,可以用来配置你的 tmux 会话。你可以按 **Ctrl+C** 退出帮助模式回 tmux。 + +要完全退出 tmux,请使用标准 _exit_ 命令或 _Ctrl+D_ 退出所有 shell。 + +### Dvtm + +你可能最近在 Fedroa Magzine上看到过一篇 [dwm,一个动态窗口管理器][4]的文章。像 dwm 一样,_dvtm_ 用于平铺窗口管理,但是用在终端中。它的设计坚持 UNIX 的“做好一件事”的理念,在这里是管理终端中的窗口。 + +安装 dvtm 也很简单。但是,如果你想要前面提到的注销功能,你还需要 _abduco_ 包来处理 dvtm 的会话管理。 + +``` +$ sudo dnf install dvtm abduco +``` + +dvtm 已经映射了许多管理终端窗口的按键。默认情况下,它使用 **Ctrl+G** 作为其修饰键。这个按键告诉 dvtm 接下来的字符将成为它应该处理的命令。例如, **Ctrl+G, C** 创建一个新窗口,**Ctrl+G, X** 将其关闭。 + +有关使用 dvtm 的更多信息,请查看 dvtm 的[主页][5],其中包含大量提示和入门信息。 + +### Byobu + +虽然 _byobu_ 本身并不是真正的多路复用器 - 它封装了 _tmux_ 甚至更老的 _screen_ 来添加功能,但它也值得在这里一提。通过帮助菜单和窗口选项卡,以便更加容易地找到功能,Byobu 使终端复用器更适合初学者。 + +当然它也可以在 Fedora 仓库中找到。要安装它,请使用以下命令: + +``` +$ sudo dnf install byobu +``` + +默认情况下,_byobu_ 会在内部运行 _screen_,因此你可能希望运行 _byobu-tmux_ 来封装 _tmux_。你可以使用 **F9** 键打开帮助菜单以获取更多信息,来帮助你入门。 + +### Mtm + +_mtm_ 是你可以找到的最小的复用器之一。事实上,它只有大约 1000 行代码!如果你处于受限的环境(例如旧硬件、最小容器等)中,你可能会发现它很有用。要开始使用,你需要安装一些包。 + +``` +$ sudo dnf install git ncurses-devel make gcc +``` + +然后克隆 mtm 所在的仓库: + +``` +$ git clone https://github.com/deadpixi/mtm.git +``` + +进入 _mtm_ 文件夹并构建程序: + +``` +$ make +``` + +你可能会收到一些警告,但完成后,你将会有一个非常小的 _mtm_ 程序。使用以下命令运行它: + +``` +$ ./mtm +``` + +你可以在 [GitHub 页面][6]上找到该程序的所有文档。 + +这里只是一些终端复用器。你有想推荐的么?请在下面留下你的评论,享受在终端中创建窗口吧! + +* * * + +_由 _[ _Michael_][7]_ 拍摄,发布于 [Unsplash][8]。_ + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/4-cool-terminal-multiplexers/ + +作者:[Paul W. Frields][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者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 From ab66f12c51150022da182a27727e6965f16d3583 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 1 Jul 2019 08:59:13 +0800 Subject: [PATCH 27/85] translating --- ... BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md index 52fcdc0569..446bf11a92 100644 --- a/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md +++ b/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From e05218fa5d408139c0ac68e8f8ae4f70020dccf5 Mon Sep 17 00:00:00 2001 From: sea0 <4127401@qq.com> Date: Mon, 1 Jul 2019 10:17:13 +0800 Subject: [PATCH 28/85] Update and rename sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md to translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- ...berry Pi 4 Takes Aim at Desktop Segment.md | 110 ------------------ ...berry Pi 4 Takes Aim at Desktop Segment.md | 105 +++++++++++++++++ 2 files changed, 105 insertions(+), 110 deletions(-) delete mode 100644 sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md create mode 100644 translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md diff --git a/sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md b/sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md deleted file mode 100644 index 2148648ee4..0000000000 --- a/sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md +++ /dev/null @@ -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] - -### What’s 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. That’s 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, it’s 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. It’s 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. - -I’m definitely considering to purchase the Raspberry Pi 4 as a spare (but a powerful) entry-level desktop. Well, I won’t 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/ diff --git a/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md b/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md new file mode 100644 index 0000000000..2810363cc3 --- /dev/null +++ b/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md @@ -0,0 +1,105 @@ +[#]: 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/) + +升级配置后,树莓派 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] + + * 博通 BCM2711,1.5 GHz 64 位 4 核心 Cortex-A72(ARM v8) + * 顶配 4 GB RAM(可选 RAM 配置为 1 GB,2 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) +校对:[校对者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/ From 617c3a6d7e376d9da4a5b3da73cc6c0947f42e5d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 11:32:52 +0800 Subject: [PATCH 29/85] PRF:20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md @wahailin --- ...berry Pi 4 Takes Aim at Desktop Segment.md | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md b/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md index 2810363cc3..3f88a45a60 100644 --- a/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md +++ b/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (wahailin) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment) @@ -10,7 +10,7 @@ 升级配置后,树莓派 4 瞄准了桌面市场 ====== -_**概要:树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 4 GB,并支持双 4k 显示。最新硬件配置下,您可以轻松将其作为桌面使用。起售价格依然和旧有型号一样,为 35 美元。**_ +> 树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 4 GB,并支持双 4k 显示。最新硬件配置下,你可以轻松将其作为桌面使用。起售价格依然和旧有型号一样,为 35 美元。 树莓派基金会已经发布了最新版的[树莓派 4B][1] 单板计算机。 @@ -20,7 +20,7 @@ _**概要:树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 ### 树莓派 4 的新特性 -树莓派 4 开始支持双 4k 显示器设置 - 如果您对此有所需求的话。除此外,它还配备了更强大的处理器,其搭载的 RAM 最高可达 4 GB,这几乎可以媲美一个中端的便携电脑。 +树莓派 4 开始支持双 4k 显示器设置 —— 如果你对此有所需求的话。除此外,它还配备了更强大的处理器,其搭载的 RAM 最高可达 4 GB,这几乎可以媲美一个中端的便携电脑。 本次配置升级使树莓派可以参与[迷你 Linux 机][4]市场的竞争,而依旧 35 美元的起始售价使其比[其它单板计算机][2]更具优势。 @@ -30,7 +30,7 @@ _**概要:树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 ![Raspberry Pi 4 Tech Specs][5] - * 博通 BCM2711,1.5 GHz 64 位 4 核心 Cortex-A72(ARM v8) + * 博通 BCM2711,1.5 GHz 64 位 4 核心 Cortex-A72(ARM v8) * 顶配 4 GB RAM(可选 RAM 配置为 1 GB,2 GB 和 4 GB) * 无线网络和蓝牙 5.0 * 两个 USB 3.0 接口,两个 USB 2.0 接口 @@ -39,8 +39,7 @@ _**概要:树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 * USB-C(供电接口) * 千兆以太网 - -如果您想更深入的了解配置信息,可以参考树莓派网站的[官方技术规格][6]。 +如果你想更深入的了解配置信息,可以参考树莓派网站的[官方技术规格][6]。 ### 定价和可用性 @@ -50,33 +49,31 @@ _**概要:树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 * 2 GB RAM 树莓派 4 售价:45 美元 * 4 GB RAM 树莓派 4 售价:55 美元 +根据你所在国家或地区的不同,树莓派 4 有不同的供应商。现有库存即将售罄,如果你想购买一定尽快,否则就要再等上一段时日了,你还可以参考官方页面上的购买信息。 -根据您所在国家或地区的不同,树莓派 4 有不同的供应商。现有库存即将售罄,如果您想购买一定尽快,否则就要再等上一段时日了,您还可以参考官方页面上的购买信息。 - -[购买树莓派 4][1] +- [购买树莓派 4][1] 请注意,[运行树莓派需要额外的配件][7],这就是为什么官方提供了可选的基础套件,套件中包含了所有必需的支持配件。 - #### 树莓派 4 桌面套件 ![Raspberry Pi 4 Desktop Kit][9] -您可以在购买树莓派 4 时同时购买树莓派 4 的桌面套件:外壳、键盘、鼠标、micro HDMI 线、USB-C 电源、用户指南以及[预装了 Rasbian 的 16 GB microSD 卡][10]。 +你可以在购买树莓派 4 时同时购买树莓派 4 的桌面套件:外壳、键盘、鼠标、micro HDMI 线、USB-C 电源、用户指南以及[预装了 Rasbian 的 16 GB microSD 卡][10]。 ![Raspberry Pi Branded Desktop Kit][11] -整组套件采用红白颜色设计,看起来很美观(如果您关心外观的话)。您可以在树莓派网站上获取更多的购买信息。 +整组套件采用红白颜色设计,看起来很美观(如果你关心外观的话)。你可以在树莓派网站上获取更多的购买信息。 -[树莓派 4 桌面套件][12] +- [树莓派 4 桌面套件][12] -#### 树莓派 4 的前景 +### 树莓派 4 的前景 -拥有所有这些配置后,树莓派 4 无疑会成为同类产品中最好的之一。同样,相比购买入门级桌面计算机,购买树莓派 4 也会是更好的选择。您可以只花很便宜的价格,就能轻松访问文档,管理电子表格,以及完成更多其它操作。 +拥有所有这些配置后,树莓派 4 无疑会成为同类产品中最好的之一。同样,相比购买入门级桌面计算机,购买树莓派 4 也会是更好的选择。你可以只花很便宜的价格,就能轻松访问文档、管理电子表格,以及完成更多其它操作。 我绝对会考虑购买树莓派 4 作为备用(但强大)的入门级桌面计算机,但不会配备 4k 显示器,但依据文档,树莓派 4 肯定是支持双 4k 显示设置的。 -您怎么评价最新版的树莓派 4B? 欢迎在评论中说出您的想法。 +你怎么评价最新版的树莓派 4B? 欢迎在评论中说出你的想法。 -------------------------------------------------------------------------------- @@ -85,7 +82,7 @@ via: https://itsfoss.com/raspberry-pi-4/ 作者:[Ankush Das][a] 选题:[lujun9972][b] 译者:[wahailin](https://github.com/wahailin) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d5ab3c6d69a1480986b1f630ca6bf9bc213f8471 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 11:33:47 +0800 Subject: [PATCH 30/85] PUB:20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md @wahailin https://linux.cn/article-11039-1.html --- ...aded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md (98%) diff --git a/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md b/published/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md similarity index 98% rename from translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md rename to published/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md index 3f88a45a60..54d28b5d1f 100644 --- a/translated/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md +++ b/published/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (wahailin) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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/) From 5afc2fb71928f4d294ab8b4787daa81e3ffe6625 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 12:36:35 +0800 Subject: [PATCH 31/85] PRF:20190625 5 tiny Linux distros to try before you die.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chen-ni 翻译的很棒! --- ...iny Linux distros to try before you die.md | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/translated/tech/20190625 5 tiny Linux distros to try before you die.md b/translated/tech/20190625 5 tiny Linux distros to try before you die.md index a0a2fa4f2d..f6e000a269 100644 --- a/translated/tech/20190625 5 tiny Linux distros to try before you die.md +++ b/translated/tech/20190625 5 tiny Linux distros to try before you die.md @@ -1,24 +1,26 @@ [#]: collector: (lujun9972) [#]: translator: (chen-ni) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: 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/) 荣誉推出 From ef948d70b41ff8e77f06a903ea8132dbd8b704ff Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 12:37:50 +0800 Subject: [PATCH 32/85] PUB:20190625 5 tiny Linux distros to try before you die.md @chen-ni https://linux.cn/article-11040-1.html --- .../20190625 5 tiny Linux distros to try before you die.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190625 5 tiny Linux distros to try before you die.md (99%) diff --git a/translated/tech/20190625 5 tiny Linux distros to try before you die.md b/published/20190625 5 tiny Linux distros to try before you die.md similarity index 99% rename from translated/tech/20190625 5 tiny Linux distros to try before you die.md rename to published/20190625 5 tiny Linux distros to try before you die.md index f6e000a269..1105ff0e52 100644 --- a/translated/tech/20190625 5 tiny Linux distros to try before you die.md +++ b/published/20190625 5 tiny Linux distros to try before you die.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (chen-ni) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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) From 3085229786c3e06535de5e8973c25897e818b7de Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 12:50:14 +0800 Subject: [PATCH 33/85] PRF:20190531 Use Firefox Send with ffsend in Fedora.md @geekpi --- ... Use Firefox Send with ffsend in Fedora.md | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md b/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md index 87175d5d90..90385fb2fe 100644 --- a/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md +++ b/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Use Firefox Send with ffsend in Fedora) @@ -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/) 荣誉推出 From 50c176db3edf06d7d06a851abb0d0074c4d1f79e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 12:50:49 +0800 Subject: [PATCH 34/85] PUB:20190531 Use Firefox Send with ffsend in Fedora.md @geekpi https://linux.cn/article-11042-1.html --- .../20190531 Use Firefox Send with ffsend in Fedora.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190531 Use Firefox Send with ffsend in Fedora.md (98%) diff --git a/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md b/published/20190531 Use Firefox Send with ffsend in Fedora.md similarity index 98% rename from translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md rename to published/20190531 Use Firefox Send with ffsend in Fedora.md index 90385fb2fe..e5c11d0d8d 100644 --- a/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md +++ b/published/20190531 Use Firefox Send with ffsend in Fedora.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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/) From e1fec066776adfab254998f8dff5c7160001b15a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 17:03:37 +0800 Subject: [PATCH 35/85] PRF:20190621 Three Ways to Lock and Unlock User Account in Linux.md @heguangzhi --- ...o Lock and Unlock User Account in Linux.md | 117 ++++++++---------- 1 file changed, 53 insertions(+), 64 deletions(-) diff --git a/translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md b/translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md index f80cbbd40a..f0e4e8ba94 100644 --- a/translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md +++ b/translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md @@ -1,33 +1,29 @@ [#]: collector: (lujun9972) [#]: translator: (heguagnzhi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: 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/) 荣誉推出 From ab3e54720bb07e0e3ae358e6f634767968927bde Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Jul 2019 17:04:07 +0800 Subject: [PATCH 36/85] PUB:20190621 Three Ways to Lock and Unlock User Account in Linux.md @heguangzhi https://linux.cn/article-11043-1.html --- ...621 Three Ways to Lock and Unlock User Account in Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190621 Three Ways to Lock and Unlock User Account in Linux.md (99%) diff --git a/translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md b/published/20190621 Three Ways to Lock and Unlock User Account in Linux.md similarity index 99% rename from translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md rename to published/20190621 Three Ways to Lock and Unlock User Account in Linux.md index f0e4e8ba94..870285a844 100644 --- a/translated/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md +++ b/published/20190621 Three Ways to Lock and Unlock User Account in Linux.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (heguagnzhi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: 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/) From 7b504f5720d3d8f89f081268afe6325e9993cacd Mon Sep 17 00:00:00 2001 From: GraveAccent Date: Mon, 1 Jul 2019 18:25:35 +0800 Subject: [PATCH 37/85] TSL:20190604 5G will augment Wi-Fi, not replace it.md --- ...4 5G will augment Wi-Fi, not replace it.md | 102 ----------------- ...4 5G will augment Wi-Fi, not replace it.md | 103 ++++++++++++++++++ 2 files changed, 103 insertions(+), 102 deletions(-) delete mode 100644 sources/talk/20190604 5G will augment Wi-Fi, not replace it.md create mode 100644 translated/talk/20190604 5G will augment Wi-Fi, not replace it.md diff --git a/sources/talk/20190604 5G will augment Wi-Fi, not replace it.md b/sources/talk/20190604 5G will augment Wi-Fi, not replace it.md deleted file mode 100644 index 76346907f3..0000000000 --- a/sources/talk/20190604 5G will augment Wi-Fi, not replace it.md +++ /dev/null @@ -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] - -There’s arguably no technology topic that’s 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 it’s not ideal for most enterprise applications, where you generally don’t 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 aren’t close is economics, where Wi-Fi is far better. I don’t 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 can’t 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 doesn’t 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 don’t 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. Let’s focus the conversation on in-building enterprise applications, since this is the use case some carriers intend to target with 5G. We’ve 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. It’s 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 that’s 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 isn’t 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. - -It’s 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 diff --git a/translated/talk/20190604 5G will augment Wi-Fi, not replace it.md b/translated/talk/20190604 5G will augment Wi-Fi, not replace it.md new file mode 100644 index 0000000000..1daab85194 --- /dev/null +++ b/translated/talk/20190604 5G will augment Wi-Fi, not replace it.md @@ -0,0 +1,103 @@ +[#]: 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 会增强 Wi-Fi,而不是取代它 +====== +Aruba 战略和企业发展副总裁 Jeff Lipton 为 5G 炒作增添了一些干货,讨论了它和 Wi-Fi 如何协同工作以及如何最大化两者的价值。 +![Thinkstock][1] + +可以说没有技术主题比 [5G][2] 更热。 这是最近 [移动世界大会][3] 节目的一个主题,并且已经在其他活动中占据了主导地位,例如 Enterprise Connect 和我参加的几乎所有供应商活动。 + +一些供应商将 5G 定位为解决所有网络问题的灵丹妙药,并预测它将消除所有其他形式的网络。 像这样的观点显然是极端的,但我相信 5G 会对网络行业产生影响,网络工程师应该意识到这一点。 + +为了帮助为5G炒作带来一些现实感,我最近采访了一家惠普公司 Aruba 的战略和企业发展副总裁 Jeff Lipton,因为我知道惠普已经深入参与了 5G 和 Wi-Fi 的发展。 + +**[ 另见:[5G 时代几乎已经来了][3] ]** + +### Zeus Kerravala: 5G 被吹捧为“下一件大事”。你是这样看的吗? + +**Jeff Lipton:** 接下来的重点是连接“事物”并从这些事物中产生可操作的见解和背景。5G 是服务于这一趋势的技术之一。Wi-Fi 6 是另一个,还有边缘计算,蓝牙低功耗(BLE),人工智能(AI)和机器学习(ML)。这一切都很重要,全都有自己的用武之地。 + +### 你是否在企业中看到 5G 的风头盖过 Wi-Fi? + +![Jeff Lipton, VP of strategy and corporate development, Aruba][4] + +**Lipton:** 与所有蜂窝接入一样,如果你需要宏观区域覆盖和高速切换,使用 5G 是合适的。但对于大多数企业级应用程序而言,它通常不需要这些功能。从性能角度来看,[Wi-Fi 6][5] 和 5G 在大多数指标上大致相等,包括吞吐量,延迟,可靠性和连接密度。它们并不相似的地方在经济方面,Wi-Fi要好得多。我不认为很多客户愿意用 Wi-Fi 交换 5G,除非他们需要宏观覆盖或高速切换。 + +### Wi-Fi 和 5G 可以共存吗? 企业如何一起使用 5G 和 Wi-Fi? + +**Lipton:** Wi-Fi 和 5G 可以并且应该是互补的。 5G 架构将蜂窝核心和无线接入网络(RAN)分离。 因此,Wi-Fi 可以是企业无线电前端,并与 5G 核心紧密连接。 由于 Wi-Fi 的经济性 - 特别是 Wi-Fi 6 - 是有利的并且性能非常好,我们设想许多服务提供商在有可行的地方使用 Wi-Fi 作为其 5G 系统的无线电前端,充当分布式天线(DAS)和小型蜂窝系统的替代。 + +“Wi-Fi 和 5G 可以并且应该是互补的。” — Jeff Lipton + +### 如果一个企业打算完全转向 5G,那将如何实现以及它的实用性如何? + +**Lipton:** 为了将 5G 用于主要的室内访问,客户需要升级其网络和几乎所有设备。 5G 在室外提供良好的覆盖,但蜂窝信号不能可靠地穿透建筑物。 5G 会使这个问题变得更糟,因为它部分依赖于更高频率的无线电。因此,服务提供商需要一种提供室内覆盖的方法。为了提供这种覆盖,他们会部署 DAS 或小型蜂窝系统 - 由终端客户支付。然后,客户将他们的设备直连到这些蜂窝系统,并为每个设备支付服务合同。 + +**[[上 PluralSight 学习移动设备管理课程,了解如何在不降低用户体验的情况下保护公司中的设备。][6]]** + +这种方法存在一些问题。首先,DAS 和小型蜂窝系统比 Wi-Fi 网络贵得多。 并且成本不会因网络而停止。 每台设备都需要一台 5G 蜂窝调制解调器,批发价格高达数十美元,而终端用户通常需要花费一百多美元。 由于目前很少或者没有 MacBook、PC、打印机、AppleTV 有 5G 调制解调器,因此需要对这些设备进行升级。我不相信很多企业会愿意支付这笔额外费用并升级他们的大部分设备以获得不明确的好处。 + +### 经济是 5G 与 Wi-Fi 之争的一个要素吗? + +**Lipton:** 经济始终是一个要素。让我们将对话集中在室内企业级应用程序上,因为这是一些运营商打算用 5G 定位的用例。 我们已经提到升级到 5G 将要求企业部署昂贵的 DAS 或小型蜂窝系统用于室内覆盖,几乎将所有设备升级到包含 5G 调制解调器,并为每个设备支付服务合同。理解 5G 蜂窝网络和 DAS 系统在许可频谱上运行也很重要,这类似于私人高速公路。 服务提供商为此频谱支付了数十亿美元,这笔费用需要货币化并嵌入服务成本中。 因此,从部署和生命周期的角度来看,Wi-Fi 在经济上比 5G 有利。 + +### 5G 与 Wi-Fi 有任何安全隐患吗? + +**Lipton:** 一些人认为蜂窝技术比Wi-Fi更安全,但事实并非如此。LTE 相对安全,但也有弱点。例如,普渡大学和爱荷华大学的研究人员表示,LTE 容易受到一系列攻击,包括数据拦截和设备跟踪。5G 通过多种认证方法和更好的密钥管理改进了 LTE 安全性。 + +Wi-Fi 的安全性也没有停滞不前而是继续发展。当然,不遵循最佳实践的 Wi-Fi 实现,例如那些甚至没有基本密码保护的实现,并不是最佳的。但那些配置了适当的访问控制和密码的人是非常安全的。 随着新标准 - 特别是 WPA3 和增强开放(Enhanced Open) - Wi-Fi网络安全性进一步提高。 + +同样重要的是要记住,企业已根据其特定需求对安全性和合规性解决方案进行了大量投资。对于包括 5G 在内的蜂窝网络,企业将失去部署所选安全性和合规性解决方案的能力,以及对流量流的大多数可见性。 虽然 5G 的未来版本将通过称为网络切片的功能提供高级别的自定义,但企业仍将失去他们目前需要和拥有的安全性和合规性定制级别。 + +### 关于 5G 与 Wi-Fi 之间的讨论有什么最后的想法? + +**Lipton:** 围绕 Wi-Fi 与 5G 的争论忽略了这一点。它们都有自己的用武之地,而且它们在很多方面都是互补的。由于需要连接和分析越来越多的东西,Wi-Fi 和 5G 市场都将增长。如果客户需要宏覆盖或高速切换,并且可以为这些功能支付额外成本,那么 5G 是可行的。 + +5G 也适用于客户需要物理网络分段的某些工业用例。但对于绝大多数企业客户而言,Wi-Fi 将继续像现在一样证明自己作为可靠,安全且经济高效的无线接入技术的价值。 + +**更多关于 802.11ax (Wi-Fi 6):** + + * [为什么 802.11ax 是无线网络的下一件大事][7] + * [FAQ: 802.11ax Wi-Fi][8] + * [Wi-Fi 6 (802.11ax) 正在来到你附件的路由器][9] + * [带有 OFDMA 的 Wi-Fi 6 打开了一个全新的无线可能性世界][10] + * [802.11ax 预览:支持 Wi-Fi 6 的接入点和路由器随时可用][11] + + + +加入 [Facebook][12] 和 [LinkedIn][13] 上的 network world 社区,评论你认为最重要的话题。 + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html + +作者:[Zeus Kerravala][a] +选题:[lujun9972][b] +译者:[GraveAccent](https://github.com/graveaccent) +校对:[校对者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 \ No newline at end of file From 23b0b0a8b416d4a0fc3e0d266a0a41091a725e3b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 2 Jul 2019 00:25:18 +0800 Subject: [PATCH 38/85] PRF:20190301 Emacs for (even more of) the win.md @oneforalone --- ...190301 Emacs for (even more of) the win.md | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/translated/tech/20190301 Emacs for (even more of) the win.md b/translated/tech/20190301 Emacs for (even more of) the win.md index 16313fc019..cfec191579 100644 --- a/translated/tech/20190301 Emacs for (even more of) the win.md +++ b/translated/tech/20190301 Emacs for (even more of) the win.md @@ -1,58 +1,58 @@ [#]: collector: (lujun9972) [#]: translator: (oneforalone) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Emacs for (even more of) the win) [#]: via: (https://so.nwalsh.com/2019/03/01/emacs) [#]: author: (Norman Walsh https://so.nwalsh.com) -Emacs 的胜利(或是更多) +Emacs 的胜利(或是大胜) ====== +![](https://img.linux.net.cn/data/attachment/album/201907/02/002550x2ol48004hx6e0od.jpg) + 我天天用 Emacs,但我却从意识到。但是每当我用 Emacs 时,它都给我带来了很多乐趣。 ->如果你是个职业作家……Emacs 与其它的编辑器的相比就如皓日与群星一样。不仅更大、更亮,它轻而易举就让其他所有的东西都消失了。 +> 如果你是个职业作家……Emacs 与其它的编辑器的相比就如皓日与群星一样。不仅更大、更亮,它轻而易举就让其他所有的东西都消失了。 -我用 [Emacs][1] 已有二十多年了。我用它来写几乎所有的东西(Scala 和 Java 我用 [IntelliJ][2])。看邮件的话我是能在 Emacs 里看就在里面看。 +我用 [Emacs][1] 已有二十多年了。我用它来写几乎所有的东西(我用 [IntelliJ][2] 编辑 Scala 和 Java )。看邮件的话我是能在 Emacs 里看就在里面看。 -尽管我用 Emacs 已有数十年,我在新年前后才意识到,在过去10年或更长时间里,我对 Emacs 的使用几乎没有什么变化。当然,新的编辑模式出现了,我就会选一两个插件,几年前我确实是用了 [Helm][3],但大多数时候,它只是完成了我需要的所有繁重工作,日复一日,没有抱怨,也没有妨碍我。一方面,这证明了它有多好。另一方面,这是一个邀请,让我深入挖掘,看看我错过了什么。 +尽管我用 Emacs 已有数十年,我在新年前后才意识到,在过去十几年里,我对 Emacs 的使用几乎没有什么变化。当然,新的编辑模式出现了,我就会选一两个插件,几年前我确实是用了 [Helm][3],但大多数时候,它只是完成了我需要的所有繁重工作,日复一日,没有抱怨,也没有妨碍我。一方面,这证明了它有多好。另一方面,这是一个邀请,让我深入挖掘,看看我错过了什么。 于此同时,我也决定从以下几方面改进我的工作方式: - * **更好的议程管理** 我在工作中负责几个项目,这些项目有定期和临时的会议;有些我是我主持的,有些我只要参加就可以。 +* **更好的议程管理** 我在工作中负责几个项目,这些项目有定期和临时的会议;有些我是我主持的,有些我只要参加就可以。 -我意识到我对开会变得草率起来了了。坐在一个有会议要开的房间里实在是太容易了,但实际上你可以阅读电子邮件,处理其他事情。(我强烈反对在会议中“禁止携带笔记本电脑”的这条规定,但这就是另一个话题。) + 我意识到我对参加会议变得有些敷衍。往会议室里一坐很简单,但实际上我是在阅读电子邮件或处理其他事情。(我强烈反对在会议中“禁止携带笔记本电脑”的这条规定,但这是另一个话题。) -草率地去开会有几个问题。首先,这是对主持会议的人和其他参与者的不尊重。实际上这是不这么做的完美理由,但我还有意识到令一个问题:它忽视了会议的成本。 + 敷衍地去参加会议有几个问题。首先,这是对主持会议的人和其他参会者的不尊重。实际上这是不应该这么做的充分理由,但我还有意识到另一个问题:它掩盖了会议的成本。 -如果你在开会,但同时还要回复电子邮件,也许还要改 bug,那么这个会议就不需要花费任何东西(或同样多的钱)。如果会议成本低廉,那么会议数量将会更多。 + 如果你在开会,但同时回复了一封电子邮件,也许修复了一个 bug,那么这个会议就没什么成本(或没那么多)。如果会议成本低廉,那么会议数量将会更多。 -我想要少点、短些的会议。我不想忽视它们的成本,我想让开会变得很有价值,除非绝对必要,否则就可以避免。 + 我想要更少、更短的会议。我不想掩盖它们的成本,我想让开会变得很有价值,除非绝对必要,否则就干脆不要开。 -有时,开会是很有必要的。而且我认为一个简短的会能够很快的解决问题。但是,如果我一天有十个短会的话,那还是不要说我做了些有成果的事吧。 + 有时,开会是绝对有必要的。而且我认为一个简短的会有时候能够很快的解决问题。但是,如果我一天要开十个短会的话,那我觉得还是不要假装取得了什么效果吧。 -我决定在我参加的所有的会上做笔记。我并不是说一定要做会议记录,而是我在做某种会议记录。这会让我把注意力集中在开会上,而忽略其他事。 + 我决定在我参加的所有的会上做笔记。我并不是说一定要做会议记录,但是我肯定会花上几分钟。这会让我把注意力集中在开会上,而忽略其他事。 - * **更好的时间管理** 我有很多要做和想做的事,或工作的或私人的。之前,我有在问题清单和邮件进程(Emacs 和 [Gmail][4] 中,用于一些稍微不同的提醒)、日历、手机上各种各样的“待办事项列表”和小纸片上记录过它们。可能还有其他地方。 +* **更好的时间管理** 无论是工作的或私人的,我有很多要做和想做的事。我一直在问题列表中跟踪其中的一些,一些在保存的电子邮件线索中(Emacs 和 [Gmail][4] 中,用于一些稍微不同的提醒),还有一些在日历、手机上各种各样的“待办事项列表”和小纸片上。可能还有其他地方。 -我决定把它们放在一起。不是说我认为有一个地方就最好或更好,而是说我想完成两件事。首先,把它们都放在一个地方,我能够对我把精力放在哪里有一个更好、更全面的看法。第二,也是因为我想养成一个习惯。固定的或有规律的倾向或行为,尤指难以放弃的。记录、跟踪并保存它们。 + 我决定把它们放在一起。不是说我认为放到一个一致的地方就更好,而是我想完成两件事:首先,把它们都集中在一个地方,我能够更好更全面地了解我在哪里投入了更多的精力;其次,我想养成一个记录、跟踪并保存它们的习惯(习惯指“固定或规律的倾向或做法,尤指难以放弃的倾向或做法”)。 - * **更好的说明** 如果你在某些科学或工程领域工作,你就会养成记笔记的习惯。唉,我没有。但我决定这么做。 +* **更好的问责制** 如果你在某些科学或工程领域工作,你就会养成记笔记的习惯。唉,我没有。但我决定这么做。 -我对法律上鼓励装订页面或做永久标记并不感兴趣。我感兴趣的是养成做记录的习惯。我的目标是有一个地方记下想法和设计草图等。如果我突然有了灵感,或者我想到了一个不在测试套件中的边缘案例,我希望我的本能是把它写在我的日志中,而不是草草写在一张小纸片上,或者向自己保证我会记住它。 + 我对法律上鼓励使用装订页面或用永久记号笔涂抹并不感兴趣。我感兴趣的是养成做记录的习惯。我的目标是有一个地方记下想法和设计草图等。如果我突然有了灵感,或者我想到了一个不在测试套件中的边缘情况,我希望我的直觉是把它写在我的日志中,而不是草草写在一张小纸片上,或者自己觉得自己会记住它。 +这些决心让我很快或多或少指向了 [Org][6] 模式。Org 模式有一个庞大的、活跃的、忠诚的用户社区。我以前也用过它(顺带一提,我都[写过][7]关于它的文章,在几年前),我花了很长的一段时间(将 [MarkLogic 集成][8]到其中。(这在过去的一两个星期里得到了回报!) +但我从没正经用过 Org 模式。 -这些决心让我很快或多或少地转到了 [Org][6]。Org 有一个庞大的、活跃的、忠诚的用户社区。我以前也用过它(顺带一提,我有[写过][7]它,至少在几年前),我花了很长的一段时间(将 [MarkLogic 集成][8]到其中。(天哪,这在过去的一两个星期里得到了回报!) +我现在正在用它。我用了几分钟,我把所有要做的事情都记录下来,我还记了日记。我不确定我争论或列表它的所有功能能有多大价值,你可以通过网页快速地搜索找到很多。 -但我从没用过 Org。 +如果你用 Emacs,那你也应该用 Org 模式。如果没用过 Emacs,我相信你不会是第一个因 Org 模式而使用 Emacs 的人。Org 模式可以做很多。它需要一点时间来学习方法和快捷键,但我认为这是值得的。(如果你的口袋中有一台 [iOS][9] 设备,我推荐你在路上使用 [beorg][10] 来记录。) -我现在正在用它。我用了几分钟,我把所有要做的事情都记录下来,我还记了日记。我不确定我试图对它进行边界或列举它的所有特性有多大价值,你可以通过网页快速地搜索找到很多。 - -如果你用 Emacs,那你也应该用 Org。如果没用过Emacs,我相信你不会是第一个因 Org 而使用 Emacs 的人。Org 可以做很多。它需要一点时间来学习你的方法和快捷键,但我认为这是值得的。(如果你的口袋中有一台 [iOS][9] 设备,我推荐你在忙的时候使用 [beorg][10] 来记录。) - -当然,我想出了如何[将 XML 从其中提取出来][11]⊕“working out” 确实是“用 elisp 来编程”的一种有趣的拼写方式。然后,如何将它转换回我的 weblog 期望的标记(当然,在 Emacs 中按下一个按钮就可以做到)。这是第一次用 Org 写的帖子。这也不会是最后一次。 +当然,我想出了如何[将 XML 从其中提取出来][11](“working out” 确实是“用 elisp 来编程”的一种有趣的魔法)然后,如何将它转换回我的博客用的标记(当然,在 Emacs 中按下一个按钮就可以做到)。这是用 Org 模式写的第一篇帖子。这也不会是最后一次。 附注:生日快乐,[小博客][12]。 @@ -63,7 +63,7 @@ via: https://so.nwalsh.com/2019/03/01/emacs 作者:[Norman Walsh][a] 选题:[lujun9972][b] 译者:[oneforalone](https://github.com/oneforalone) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 51d43fb0eae64d866368aa493f70f7893bf2b8c8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 2 Jul 2019 00:28:54 +0800 Subject: [PATCH 39/85] PUB:20190301 Emacs for (even more of) the win.md @oneforalone https://linux.cn/article-11046-1.html --- .../20190301 Emacs for (even more of) the win.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20190301 Emacs for (even more of) the win.md (98%) diff --git a/translated/tech/20190301 Emacs for (even more of) the win.md b/published/20190301 Emacs for (even more of) the win.md similarity index 98% rename from translated/tech/20190301 Emacs for (even more of) the win.md rename to published/20190301 Emacs for (even more of) the win.md index cfec191579..7da7ab6a51 100644 --- a/translated/tech/20190301 Emacs for (even more of) the win.md +++ b/published/20190301 Emacs for (even more of) the win.md @@ -1,13 +1,13 @@ [#]: collector: (lujun9972) [#]: translator: (oneforalone) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-11046-1.html) [#]: subject: (Emacs for (even more of) the win) [#]: via: (https://so.nwalsh.com/2019/03/01/emacs) [#]: author: (Norman Walsh https://so.nwalsh.com) -Emacs 的胜利(或是大胜) +Emacs 的(更多)胜利 ====== ![](https://img.linux.net.cn/data/attachment/album/201907/02/002550x2ol48004hx6e0od.jpg) From 3bb4c603b7a2c2769099a423f07785b50d8d878c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 2 Jul 2019 00:51:42 +0800 Subject: [PATCH 40/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190701=20Ubuntu?= =?UTF-8?q?=20or=20Fedora:=20Which=20One=20Should=20You=20Use=20and=20Why?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md --- ...edora- Which One Should You Use and Why.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md diff --git a/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md new file mode 100644 index 0000000000..9b6b7727f3 --- /dev/null +++ b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md @@ -0,0 +1,190 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Ubuntu or Fedora: Which One Should You Use and Why) +[#]: via: (https://itsfoss.com/ubuntu-vs-fedora/) +[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) + +Ubuntu or Fedora: Which One Should You Use and Why +====== + +_**Brief: Ubuntu or Fedora? What’s the difference? Which is better? Which one should you use? Read this comparison of Ubuntu and Fedora.**_ + +[Ubuntu][1] and [Fedora][2] are one of the most popular Linux distributions out there. Making a decision to choose between using Ubuntu and Fedora is not an easy one. I’ll try to help you in making your decision by comparing various features of Ubuntu and Fedora. + +Do note that this comparison is primarily from the desktop point of view. I am not going to focus on the container specific versions of Fedora or Ubuntu. + +### Ubuntu vs Fedora: Which one is better? + +![Ubuntu Vs Fedora][3] + +Almost all Linux distributions differ from one another primarily on these points: + + * Base distribution (Debian, Red Hat, Arch or from scratch) + * Installation + * Supported desktop environments + * Package management, software support and updates + * Hardware support + * Development team (backed by corporate or created by hobbyists) + * Release cycle + * Community and support + + + +Let’s see how similar or how different are Ubuntu and Fedora from each other. Once you know that, it should be perhaps easier for you to make a choice. + +#### Installation + +Ubuntu’s Ubiquity installer is one of easiest installers out there. I believe that it played an important role in Ubuntu’s popularity because when Ubuntu was just created in 2004, installing Linux itself was considered a huge task. + +The Ubuntu installer allows you to install Ubuntu in around 10 minutes. In most cases, it can identify Windows installed on your system and allows you to dual boot Ubuntu and Windows in a matter of clicks. + +You can also install updates and third-party codecs while installing Ubuntu. That’s an added advantage. + +![Ubuntu Installer][4] + +Fedora uses Anaconda installer. This too simplifies the installation process with the easy to use interface. + +![Fedora Installer | Image Credit Fedora Magazine][5] + +Fedora also provides a media writer tool for downloading and creating the live USB of Fedora on Windows operating system. When I last tried to use it around two years ago, it didn’t work and I had to use the regular live USB creating software. + +In my experience, installing Ubuntu is easier than installing Fedora. That doesn’t mean installing Fedora is a complex process. Just that Ubuntu is simpler. + +#### Desktop environments + +Both Ubuntu and Fedora use GNOME desktop environment by default. + +![GNOME Desktop in Fedora][6] + +While Fedora uses the stock GNOME desktop, Ubuntu has customized it to look and behave like its previous Unity desktop. + +![GNOME desktop customized by Ubuntu][7] + +Apart from GNOME, both Ubuntu and Fedora offer several other desktop variants. + +Ubuntu has Kubuntu, Xubuntu, Lubuntu etc., offering various desktop flavors. While they are the official flavor of Ubuntu, they are not directly developed by Ubuntu team from Canonical. The teams are separate. + +Fedora offers various desktop choices in the form of [Fedora Spins][8]. Unlike Kubuntu, Lubuntu etc,. they are not created and maintained by separate team. They are from core Fedora team. + +#### Package management and software availability + +Ubuntu uses APT package manager to provide and manage software (applications, libraries and other required codes) while Fedora uses DNF package manager. + +[][9] + +Suggested read  System76 Galago Pro: Specs, Price And Release Date + +[Ubuntu has vast software repositories][10] allowing you to easily install thousands of programs, both FOSS and non-FOSS, easily. Fedora on the other hand focuses on providing only open source software. This is changing in the new versions but Fedora’s repositories are still not as big as that of Ubuntu. + +Some third party software developer also provide click-to-install, .exe like packages for Linux. In Ubuntu, these packages are in .deb format and while Fedora supports .rpm packages. + +Most software vendors provide both DEB and RPM files for Linux users but I have experienced that sometimes software vendor only provide DEB file. For example, SEO tool [Screaming Frog][11] has only DEB packages. It’s extremely rare that a software is available in RPM but not in DEB format. + +#### Hardware support + +Linux in general has its fair share of trouble with some WiFi adapters and graphics cards. Both Ubuntu and Fedora are impacted from that. Take the example of Nvidia. It’s [open source Nouveau driver often results in troubles like system hanging at boot][12]. + +Ubuntu provides an easy way of installing additional proprietary drivers. This results in better hardware support in many cases. + +![Installing proprietary driver is easier in Ubuntu][13] + +Fedora, on the other hand, sticks to open source software and thus installing proprietary drivers on Fedora becomes a difficult task. + +#### Support and userbase + +Both Ubuntu and Fedora provide support through community forums. Ubuntu has two main forums: [UbuntuForums][14] and [Ask Ubuntu][15]. Fedora has one main forum [Ask Fedora][16]. + +In terms of userbase, Fedora has a large following. However, Ubuntu is more popular and has a larger following than Fedora. + +The popularity of Ubuntu has prompted a number of websites and blogs focused primarily on Ubuntu. This way, you get more troubleshooting tips and learning material on Ubuntu than Fedora. + +#### Release cycle + +A new Fedora version is released every six months and each Fedora release is supported for nine months only. Which means that between six to nine months, you must perform an upgrade. Upgrading Fedora version is simple but it does require a good internet connection. Not everyone can be happy with 1.5 GB of version upgrades every nine months. + +Ubuntu has two versions: regular release and the long term support (LTS) release. Regular release is similar to Fedora. It’s released at the interval of six months and is supported for nine months. + +The LTS release comes at an interval of two years and is supported for five years. Regular releases bring new features, new software versions while the LTS release holds on to the older versions. This makes it a great choice for people who don’t like frequent changes and prefer stability. + +#### Solid base distributions + +Ubuntu is based on [Debian][17]. Debian is one of the biggest community project and one of the most respected project in the [free software][18] world. + +Fedora is a community project from Red Hat. Red Hat is an enterprise focused Linux distribution. Fedora works as a ‘testing ground’ ([upstream][19] in technical term) for new features before those features are included in Red Hat Enterprise Linux. + +[][20] + +Suggested read  How To Manage StartUp Applications In Ubuntu + +#### Backed by enterprises + +Both Ubuntu and Fedora are backed by their parent corporations. Ubuntu is from [Canonical][21] while Fedora is from [Red Hat][22] (now [part of IBM][23]). Enterprise backing is important because it ensures that the Linux distribution is well-maintained. + +Hobbyists distributions created by a group of individuals often crumble under workload. You might have seen reasonably popular distribution projects being shutdown for this sole reason. [Antergos][24], Korora are just some of the many such examples where distributions were discontinued because the developers couldn’t get enough free time to work on the project. + +The fact that both Ubuntu and Fedora are supported by a two Linux-based enterprises makes them a viable choice over other independent distributions. + +#### Ubuntu vs Fedora as server + +The comparison between Ubuntu and Fedora was primarily aimed at desktop users so far. But a discussion about Linux is not complete until you include servers. + +![Ubuntu Server][25] + +Ubuntu is not only popular on desktop, it also has a good presence on the server side. If you are familiar with Ubuntu as desktop, you might not feel uncomfortable with Ubuntu server edition. I started with Ubuntu desktop and now my websites are hosted on Linux servers running Ubuntu. + +Fedora too has server edition and some people use it as well. But most sysadmins won’t prefer a server that has to be upgraded and rebooted every nine months. + +Knowing Fedora helps you in using Red Hat Enterprise Linux (RHEL). RHEL is a paid product and you’ll have to purchase a subscription. If you want an operating system for running server that is close to Fedora/Red Hat, I advise using CentOS. [CentOS][26] is also a community project affiliated with Red Hat but this one is focused on servers. + +#### Conclusion + +As you can see, both Ubuntu and Fedora are similar to each other on several points. Ubuntu does take lead when it comes to software availability, driver installation and online support. And _**these are the points that make Ubuntu a better choice, specially for inexperienced Linux users.**_ + +If you want to get familiar with Red Hat, Fedora is a good starting point. If you have some experience with Linux or if you want to use only open source software, Fedora is an excellent choice. + +In the end, it is really up to you to decide if you want to use Fedora or Ubuntu. I would suggest creating live USB of both distributions or try them out in virtual machine. + +What’s your opinion on Ubuntu vs Fedora? Which distribution do you prefer and why? Do share your views in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/ubuntu-vs-fedora/ + +作者:[Abhishek Prakash][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/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://ubuntu.com/ +[2]: https://getfedora.org/ +[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-vs-fedora.png?resize=800%2C450&ssl=1 +[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2018/03/install-linux-inside-windows-10.jpg?resize=800%2C479&ssl=1 +[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/07/fedora-installer.png?resize=800%2C598&ssl=1 +[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/gnome-desktop-fedora.png?resize=800%2C450&ssl=1 +[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/03/applications_menu.jpg?resize=800%2C450&ssl=1 +[8]: https://spins.fedoraproject.org/ +[9]: https://itsfoss.com/system-76-galago-pro/ +[10]: https://itsfoss.com/ubuntu-repositories/ +[11]: https://www.screamingfrog.co.uk/seo-spider/#download +[12]: https://itsfoss.com/fix-ubuntu-freezing/ +[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/02/software_updates_additional_drivers_nvidia.png?resize=800%2C523&ssl=1 +[14]: https://ubuntuforums.org/ +[15]: https://askubuntu.com/ +[16]: https://ask.fedoraproject.org/ +[17]: https://www.debian.org/ +[18]: https://www.fsf.org/ +[19]: https://en.wikipedia.org/wiki/Upstream_(software_development) +[20]: https://itsfoss.com/manage-startup-applications-ubuntu/ +[21]: https://canonical.com/ +[22]: https://www.redhat.com/en +[23]: https://itsfoss.com/ibm-red-hat-acquisition/ +[24]: https://itsfoss.com/antergos-linux-discontinued/ +[25]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-server.png?resize=800%2C232&ssl=1 +[26]: https://centos.org/ From d31b0d6aeacd9b39d4baca0f896b6f51cd263541 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 2 Jul 2019 00:52:34 +0800 Subject: [PATCH 41/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190701=20Learn=20?= =?UTF-8?q?how=20to=20Record=20and=20Replay=20Linux=20Terminal=20Sessions?= =?UTF-8?q?=20Activity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md --- ...Replay Linux Terminal Sessions Activity.md | 292 ++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md diff --git a/sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md b/sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md new file mode 100644 index 0000000000..bf076d08ea --- /dev/null +++ b/sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md @@ -0,0 +1,292 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Learn how to Record and Replay Linux Terminal Sessions Activity) +[#]: via: (https://www.linuxtechi.com/record-replay-linux-terminal-sessions-activity/) +[#]: author: (Pradeep Kumar https://www.linuxtechi.com/author/pradeep/) + +Learn how to Record and Replay Linux Terminal Sessions Activity +====== + +Generally, all Linux administrators use **history** command to track which commands were executed in previous sessions, but there is one limitation of history command is that it doesn’t store the command’s output. There can be some scenarios where we want to check commands output of previous session and want to compare it with current session. Apart from this, there are some situations where we are troubleshooting the issues on Linux production boxes and want to save all terminal session activities for future reference, so in such cases script command become handy. + + + +Script is a command line tool which is used to capture or record your Linux server terminal sessions activity and later the recorded session can be replayed using scriptreplay command. In this article we will demonstrate how to install script command line tool and how to record Linux server terminal session activity and then later we will see how the recorded session can be replayed using **scriptreplay** command. + +### Installation of Script tool on RHEL 7/ CentOS 7 + +Script command is provided by the rpm package “**util-linux**”, in case it is not installed on your CentOS 7 / RHEL 7 system , run the following yum command, + +``` +[root@linuxtechi ~]# yum install util-linux -y +``` + +**On RHEL 8 / CentOS 8** + +Run the following dnf command to install script utility on RHEL 8 and CentOS 8 system, + +``` +[root@linuxtechi ~]# dnf install util-linux -y +``` + +**Installation of Script tool on Debian based systems (Ubuntu / Linux Mint)** + +Execute the beneath apt-get command to install script utility + +``` +root@linuxtechi ~]# apt-get install util-linux -y +``` + +### How to Use script utility + +Use of script command is straight forward, type script command on terminal then hit enter, it will start capturing your current terminal session activities inside a file called “**typescript**” + +``` +[root@linuxtechi ~]# script +Script started, file is typescript +[root@linuxtechi ~]# +``` + +To stop recording the session activities, type exit command and hit enter. + +``` +[root@linuxtechi ~]# exit +exit +Script done, file is typescript +[root@linuxtechi ~]# +``` + +Syntax of Script command: + +``` +~ ] # script {options} {file_name} +``` + +Different options used in script command, + +![options-script-command][1] + +Let’s start recording of your Linux terminal session by executing script command and then execute couple of command like ‘**w**’, ‘**route -n**’ , ‘[**df -h**][2]’ and ‘**free-h**’, example is shown below + +![script-examples-linux-server][3] + +As we can see above, terminal session logs are saved in the file “typescript” + +Now view the contents of typescript file using [cat][4] / vi command, + +``` +[root@linuxtechi ~]# ls -l typescript +-rw-r--r--. 1 root root 1861 Jun 21 00:50 typescript +[root@linuxtechi ~]# +``` + +![typescript-file-content-linux][5] + +Above confirms that whatever commands we execute on terminal that have been saved inside the file “typescript” + +### Use Custom File name in script command + +Let’s assume we want to use our customize file name to script command, so specify the file name after script command, in the below example we are using a file name “session-log-(current-date-time).txt” + +``` +[root@linuxtechi ~]# script sessions-log-$(date +%d-%m-%Y-%T).txt +Script started, file is sessions-log-21-06-2019-01:37:39.txt +[root@linuxtechi ~]# +``` + +Now run the commands and then type exit, + +``` +[root@linuxtechi ~]# exit +exit +Script done, file is sessions-log-21-06-2019-01:37:39.txt +[root@linuxtechi ~]# +``` + +### Append the commands output to script file + +Let assume script command had already recorded the commands output to a file called session-log.txt file and now we want to append output of new sessions commands output to this file, then use “**-a**” command in script command + +``` +[root@linuxtechi ~]# script -a sessions-log.txt +Script started, file is sessions-log.txt +[root@linuxtechi ~]# xfs_info /dev/mapper/centos-root +meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2746624 blks + = sectsz=512 attr=2, projid32bit=1 + = crc=1 finobt=0 spinodes=0 +data = bsize=4096 blocks=10986496, imaxpct=25 + = sunit=0 swidth=0 blks +naming =version 2 bsize=4096 ascii-ci=0 ftype=1 +log =internal bsize=4096 blocks=5364, version=2 + = sectsz=512 sunit=0 blks, lazy-count=1 +realtime =none extsz=4096 blocks=0, rtextents=0 +[root@linuxtechi ~]# exit +exit +Script done, file is sessions-log.txt +[root@linuxtechi ~]# +``` + +To view updated session’s logs, use “cat session-log.txt ” + +### Capture commands output to script file without interactive shell + +Let’s assume we want to capture commands output to a script file, then use **-c** option, example is shown below, + +``` +[root@linuxtechi ~]# script -c "uptime && hostname && date" root-session.txt +Script started, file is root-session.txt + 01:57:40 up 2:30, 3 users, load average: 0.00, 0.01, 0.05 +linuxtechi +Fri Jun 21 01:57:40 EDT 2019 +Script done, file is root-session.txt +[root@linuxtechi ~]# +``` + +### Run script command in quiet mode + +To run script command in quiet mode use **-q** option, this option will suppress the script started and script done message, example is shown below, + +``` +[root@linuxtechi ~]# script -c "uptime && date" -q root-session.txt + 02:01:10 up 2:33, 3 users, load average: 0.00, 0.01, 0.05 +Fri Jun 21 02:01:10 EDT 2019 +[root@linuxtechi ~]# +``` + +Record Timing information to a file and capture commands output to a separate file, this can be achieved in script command by passing timing file (**–timing**) , example is shown below, + +Syntax: + +~ ]# script -t <timing-file-name>  {file_name} + +``` +[root@linuxtechi ~]# script --timing=timing.txt session.log +Script started, file is session.log +[root@linuxtechi ~]# uptime + 02:27:59 up 3:00, 3 users, load average: 0.00, 0.01, 0.05 +[root@linuxtechi ~]# date +Fri Jun 21 02:28:02 EDT 2019 +[root@linuxtechi ~]# free -h + total used free shared buff/cache available +Mem: 3.9G 171M 2.0G 8.6M 1.7G 3.3G +Swap: 3.9G 0B 3.9G +[root@linuxtechi ~]# whoami +root +[root@linuxtechi ~]# exit +exit +Script done, file is session.log +[root@linuxtechi ~]# +[root@linuxtechi ~]# ls -l session.log timing.txt +-rw-r--r--. 1 root root 673 Jun 21 02:28 session.log +-rw-r--r--. 1 root root 414 Jun 21 02:28 timing.txt +[root@linuxtechi ~]# +``` + +### Replay recorded Linux terminal session activity + +Now replay the recorded terminal session activities using scriptreplay command, + +**Note:** Scriptreplay is also provided by rpm package “**util-linux**”. Scriptreplay command requires timing file to work. + +``` +[root@linuxtechi ~]# scriptreplay --timing=timing.txt session.log +``` + +Output of above command would be something like below, + + + +### Record all User’s Linux terminal session activities + +There are some business critical Linux servers where we want keep track on all users activity, so this can be accomplished using script command, place the following content in /etc/profile file , + +``` +[root@linuxtechi ~]# vi /etc/profile +…………………………………………………… +if [ "x$SESSION_RECORD" = "x" ] +then +timestamp=$(date +%d-%m-%Y-%T) +session_log=/var/log/session/session.$USER.$$.$timestamp +SESSION_RECORD=started +export SESSION_RECORD +script -t -f -q 2>${session_log}.timing $session_log +exit +fi +…………………………………………………… +``` + +Save & exit the file. + +Create the session directory under /var/log folder, + +``` +[root@linuxtechi ~]# mkdir /var/log/session +``` + +Assign the permissions to session folder, + +``` +[root@linuxtechi ~]# chmod 777 /var/log/session/ +[root@linuxtechi ~]# +``` + +Now verify whether above code is working or not. Login to ordinary user to linux server, in my I am using pkumar user, + +``` +~ ] # ssh root@linuxtechi +root@linuxtechi's password: +[root@linuxtechi ~]$ uptime + 04:34:09 up 5:06, 3 users, load average: 0.00, 0.01, 0.05 +[root@linuxtechi ~]$ date +Fri Jun 21 04:34:11 EDT 2019 +[root@linuxtechi ~]$ free -h + total used free shared buff/cache available +Mem: 3.9G 172M 2.0G 8.6M 1.7G 3.3G +Swap: 3.9G 0B 3.9G +[root@linuxtechi ~]$ id +uid=1001(pkumar) gid=1002(pkumar) groups=1002(pkumar) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 +[root@linuxtechi ~]$ whoami +pkumar +[root@linuxtechi ~]$ exit + +Login as root and view user’s linux terminal session activity + +[root@linuxtechi ~]# cd /var/log/session/ +[root@linuxtechi session]# ls -l | grep pkumar +-rw-rw-r--. 1 pkumar pkumar 870 Jun 21 04:34 session.pkumar.19785.21-06-2019-04:34:05 +-rw-rw-r--. 1 pkumar pkumar 494 Jun 21 04:34 session.pkumar.19785.21-06-2019-04:34:05.timing +[root@linuxtechi session]# +``` + +![Session-output-file-linux][6] + +We can also use scriptreplay command to replay user’s terminal session activities, + +``` +[root@linuxtechi session]# scriptreplay --timing session.pkumar.19785.21-06-2019-04\:34\:05.timing session.pkumar.19785.21-06-2019-04\:34\:05 +``` + +That’s all from this tutorial, please do share your feedback and comments in the comments section below. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/record-replay-linux-terminal-sessions-activity/ + +作者:[Pradeep Kumar][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.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lujun9972 +[1]: https://www.linuxtechi.com/wp-content/uploads/2019/06/options-script-command.png +[2]: https://www.linuxtechi.com/11-df-command-examples-in-linux/ +[3]: https://www.linuxtechi.com/wp-content/uploads/2019/06/script-examples-linux-server-1024x736.jpg +[4]: https://www.linuxtechi.com/cat-command-examples-for-beginners-in-linux/ +[5]: https://www.linuxtechi.com/wp-content/uploads/2019/06/typescript-file-content-linux-1024x794.jpg +[6]: https://www.linuxtechi.com/wp-content/uploads/2019/06/Session-output-file-linux-1024x353.jpg From 984b7654c06721264fcca9999ad2e31fa4e8d648 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 2 Jul 2019 00:53:25 +0800 Subject: [PATCH 42/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190701=20Get=20mo?= =?UTF-8?q?dular=20with=20Python=20functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190701 Get modular with Python functions.md --- ...90701 Get modular with Python functions.md | 337 ++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 sources/tech/20190701 Get modular with Python functions.md diff --git a/sources/tech/20190701 Get modular with Python functions.md b/sources/tech/20190701 Get modular with Python functions.md new file mode 100644 index 0000000000..a424323503 --- /dev/null +++ b/sources/tech/20190701 Get modular with Python functions.md @@ -0,0 +1,337 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Get modular with Python functions) +[#]: via: (https://opensource.com/article/19/7/get-modular-python-functions) +[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/xd-deng/users/nhuntwalker/users/don-watkins) + +Get modular with Python functions +====== +Minimize your coding workload by using Python functions for repeating +tasks. +![OpenStack source code \(Python\) in VIM][1] + +Are you confused by fancy programming terms like functions, classes, methods, libraries, and modules? Do you struggle with the scope of variables? Whether you're a self-taught programmer or a formally trained code monkey, the modularity of code can be confusing. But classes and libraries encourage modular code, and modular code can mean building up a collection of multipurpose code blocks that you can use across many projects to reduce your coding workload. In other words, if you follow along with this article's study of [Python][2] functions, you'll find ways to work smarter, and working smarter means working less. + +This article assumes enough Python familiarity to write and run a simple script. If you haven't used Python, read my [intro to Python][3] article first. + +### Functions + +Functions are an important step toward modularity because they are formalized methods of repetition. If there is a task that needs to be done again and again in your program, you can group the code into a function and call the function as often as you need it. This way, you only have to write the code once, but you can use it as often as you like. + +Here is an example of a simple function: + + +``` +#!/usr/bin/env python3 + +import time + +def Timer(): +        print("Time is " + str(time.time() ) ) +``` + +Create a folder called **mymodularity** and save the function code as **timestamp.py**. + +In addition to this function, create a file called **__init__.py** in the **mymodularity** directory. You can do this in a file manager or a Bash shell: + + +``` +`$ touch mymodularity/__init__.py` +``` + +You have now created your own Python library (a "module," in Python lingo) in your Python package called **mymodularity**. It's not a very useful module, because all it does is import the **time** module and print a timestamp, but it's a start. + +To use your function, treat it just like any other Python module. Here's a small application that tests the accuracy of Python's **sleep()** function, using your **mymodularity** package for support. Save this file as **sleeptest.py** _outside_ the **mymodularity** directory (if you put this _into_ **mymodularity**, then it becomes a module in your package, and you don't want that). + + +``` +#!/usr/bin/env python3 + +import time +from mymodularity import timestamp + +print("Testing Python sleep()...") + +# modularity +timestamp.Timer() +time.sleep(3) +timestamp.Timer() +``` + +In this simple script, you are calling your **timestamp** module from your **mymodularity** package (twice). When you import a module from a package, the usual syntax is to import the module you want from the package and then use the _module name + a dot + the name of the function you want to call_ (e.g., **timestamp.Timer()**). + +You're calling your **Timer()** function twice, so if your **timestamp** module were more complicated than this simple example, you'd be saving yourself quite a lot of repeated code. + +Save the file and run it: + + +``` +$ python3 ./sleeptest.py +Testing Python sleep()... +Time is 1560711266.1526039 +Time is 1560711269.1557732 +``` + +According to your test, the sleep function in Python is pretty accurate: after three seconds of sleep, the timestamp was successfully and correctly incremented by three, with a little variance in microseconds. + +The structure of a Python library might seem confusing, but it's not magic. Python is _programmed_ to treat a folder full of Python code accompanied by an **__init__.py** file as a package, and it's programmed to look for available modules in its current directory _first_. This is why the statement **from mymodularity import timestamp** works: Python looks in the current directory for a folder called **mymodularity**, then looks for a **timestamp** file ending in **.py**. + +What you have done in this example is functionally the same as this less modular version: + + +``` +#!/usr/bin/env python3 + +import time +from mymodularity import timestamp + +print("Testing Python sleep()...") + +# no modularity +print("Time is " + str(time.time() ) ) +time.sleep(3) +print("Time is " + str(time.time() ) ) +``` + +For a simple example like this, there's not really a reason you wouldn't write your sleep test that way, but the best part about writing your own module is that your code is generic so you can reuse it for other projects. + +You can make the code more generic by passing information into the function when you call it. For instance, suppose you want to use your module to test not the _computer's_ sleep function, but a _user's_ sleep function. Change your **timestamp** code so it accepts an incoming variable called **msg**, which will be a string of text controlling how the **timestamp** is presented each time it is called: + + +``` +#!/usr/bin/env python3 + +import time + +# updated code +def Timer(msg): +    print(str(msg) + str(time.time() ) ) +``` + +Now your function is more abstract than before. It still prints a timestamp, but what it prints for the user is undefined. That means you need to define it when calling the function. + +The **msg** parameter your **Timer** function accepts is arbitrarily named. You could call the parameter **m** or **message** or **text** or anything that makes sense to you. The important thing is that when the **timestamp.Timer** function is called, it accepts some text as its input, places whatever it receives into a variable, and uses the variable to accomplish its task. + +Here's a new application to test the user's ability to sense the passage of time correctly: + + +``` +#!/usr/bin/env python3 + +from mymodularity import timestamp + +print("Press the RETURN key. Count to 3, and press RETURN again.") + +input() +timestamp.Timer("Started timer at ") + +print("Count to 3...") + +input() +timestamp.Timer("You slept until ") +``` + +Save your new application as **response.py** and run it: + + +``` +$ python3 ./response.py +Press the RETURN key. Count to 3, and press RETURN again. + +Started timer at 1560714482.3772075 +Count to 3... + +You slept until 1560714484.1628013 +``` + +### Functions and required parameters + +The new version of your timestamp module now _requires_ a **msg** parameter. That's significant because your first application is broken because it doesn't pass a string to the **timestamp.Timer** function: + + +``` +$ python3 ./sleeptest.py +Testing Python sleep()... +Traceback (most recent call last): +  File "./sleeptest.py", line 8, in <module> +    timestamp.Timer() +TypeError: Timer() missing 1 required positional argument: 'msg' +``` + +Can you fix your **sleeptest.py** application so it runs correctly with the updated version of your module? + +### Variables and functions + +By design, functions limit the scope of variables. In other words, if a variable is created within a function, that variable is available to _only_ that function. If you try to use a variable that appears in a function outside the function, an error occurs. + +Here's a modification of the **response.py** application, with an attempt to print the **msg** variable from the **timestamp.Timer()** function: + + +``` +#!/usr/bin/env python3 + +from mymodularity import timestamp + +print("Press the RETURN key. Count to 3, and press RETURN again.") + +input() +timestamp.Timer("Started timer at ") + +print("Count to 3...") + +input() +timestamp.Timer("You slept for ") + +print(msg) +``` + +Try running it to see the error: + + +``` +$ python3 ./response.py +Press the RETURN key. Count to 3, and press RETURN again. + +Started timer at 1560719527.7862902 +Count to 3... + +You slept for 1560719528.135406 +Traceback (most recent call last): +  File "./response.py", line 15, in <module> +    print(msg) +NameError: name 'msg' is not defined +``` + +The application returns a **NameError** message because **msg** is not defined. This might seem confusing because you wrote code that defined **msg**, but you have greater insight into your code than Python does. Code that calls a function, whether the function appears within the same file or if it's packaged up as a module, doesn't know what happens inside the function. A function independently performs its calculations and returns what it has been programmed to return. Any variables involved are _local_ only: they exist only within the function and only as long as it takes the function to accomplish its purpose. + +#### Return statements + +If your application needs information contained only in a function, use a **return** statement to have the function provide meaningful data after it runs. + +They say time is money, so modify your timestamp function to allow for an imaginary charging system: + + +``` +#!/usr/bin/env python3 + +import time + +def Timer(msg): +    print(str(msg) + str(time.time() ) ) +    charge = .02 +    return charge +``` + +The **timestamp** module now charges two cents for each call, but most importantly, it returns the amount charged each time it is called. + +Here's a demonstration of how a return statement can be used: + + +``` +#!/usr/bin/env python3 + +from mymodularity import timestamp + +print("Press RETURN for the time (costs 2 cents).") +print("Press Q RETURN to quit.") + +total = 0 + +while True: +    kbd = input() +    if kbd.lower() == "q": +        print("You owe $" + str(total) ) +        exit() +    else: +        charge = timestamp.Timer("Time is ") +        total = total+charge +``` + +In this sample code, the variable **charge** is assigned as the endpoint for the **timestamp.Timer()** function, so it receives whatever the function returns. In this case, the function returns a number, so a new variable called **total** is used to keep track of how many changes have been made. When the application receives the signal to quit, it prints the total charges: + + +``` +$ python3 ./charge.py +Press RETURN for the time (costs 2 cents). +Press Q RETURN to quit. + +Time is 1560722430.345412 + +Time is 1560722430.933996 + +Time is 1560722434.6027434 + +Time is 1560722438.612629 + +Time is 1560722439.3649364 +q +You owe $0.1 +``` + +#### Inline functions + +Functions don't have to be created in separate files. If you're just writing a short script specific to one task, it may make more sense to just write your functions in the same file. The only difference is that you don't have to import your own module, but otherwise the function works the same way. Here's the latest iteration of the time test application as one file: + + +``` +#!/usr/bin/env python3 + +import time + +total = 0 + +def Timer(msg): +    print(str(msg) + str(time.time() ) ) +    charge = .02 +    return charge + +print("Press RETURN for the time (costs 2 cents).") +print("Press Q RETURN to quit.") + +while True: +    kbd = input() +    if kbd.lower() == "q": +        print("You owe $" + str(total) ) +        exit() +    else: +        charge = Timer("Time is ") +        total = total+charge +``` + +It has no external dependencies (the **time** module is included in the Python distribution), and produces the same results as the modular version. The advantage is that everything is located in one file, and the disadvantage is that you cannot use the **Timer()** function in some other script you are writing unless you copy and paste it manually. + +#### Global variables + +A variable created outside a function has nothing limiting its scope, so it is considered a _global_ variable. + +An example of a global variable is the **total** variable in the **charge.py** example used to track current charges. The running total is created outside any function, so it is bound to the application rather than to a specific function. + +A function within the application has access to your global variable, but to get the variable into your imported module, you must send it there the same way you send your **msg** variable. + +Global variables are convenient because they seem to be available whenever and wherever you need them, but it can be difficult to keep track of their scope and to know which ones are still hanging around in system memory long after they're no longer needed (although Python generally has very good garbage collection). + +Global variables are important, though, because not all variables can be local to a function or class. That's easy now that you know how to send variables to functions and get values back. + +### Wrapping up functions + +You've learned a lot about functions, so start putting them into your scripts—if not as separate modules, then as blocks of code you don't have to write multiple times within one script. In the next article in this series, I'll get into Python classes. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/get-modular-python-functions + +作者:[Seth Kenlon][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/seth/users/xd-deng/users/nhuntwalker/users/don-watkins +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/openstack_python_vim_1.jpg?itok=lHQK5zpm (OpenStack source code (Python) in VIM) +[2]: https://www.python.org/ +[3]: https://opensource.com/article/17/10/python-101 From 7c2a2b7779d4832e8a3ec9967a7c469177a5d2e2 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 2 Jul 2019 00:55:05 +0800 Subject: [PATCH 43/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190701=20How=20to?= =?UTF-8?q?=20use=20to=20infrastructure=20as=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190701 How to use to infrastructure as code.md --- ...01 How to use to infrastructure as code.md | 373 ++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 sources/tech/20190701 How to use to infrastructure as code.md diff --git a/sources/tech/20190701 How to use to infrastructure as code.md b/sources/tech/20190701 How to use to infrastructure as code.md new file mode 100644 index 0000000000..8b8d931d0f --- /dev/null +++ b/sources/tech/20190701 How to use to infrastructure as code.md @@ -0,0 +1,373 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (How to use to infrastructure as code) +[#]: via: (https://opensource.com/article/19/7/infrastructure-code) +[#]: author: (Michael Zamot https://opensource.com/users/mzamot) + +How to use to infrastructure as code +====== +As your servers and applications grow, it becomes harder to maintain and +keep track of them if you don't treat your infrastructure as code. +![Magnifying glass on code][1] + +My previous article about [setting up a homelab][2] described many options for building a personal lab to learn new technology. Regardless of whichever solution you choose, as your servers and applications grow, it will become harder and harder to maintain and keep track of them if you don't establish control. To avoid this, it's essential to treat your infrastructure as code. + +This article is about infrastructure as code (IaC) best practices and includes a sample project automating the deployment of two virtual machines (VMs) and installing [Keepalived][3] and [Nginx][4] while implementing these practices. You can find all the [code for this project][5] on GitHub. + +### Why is IaC important? Aren't my scripts enough? + +No, scripts are not enough. Over time, scripts become hard to maintain and hard to keep track of. IaC can help you maintain uniformity and scalability while saving lots of time that you would waste if you did every task manually. + +One of the problems with the culture of managing servers manually or partially automated is the lack of consistency and control, which (more often than not) causes configuration drifts and undocumented changes to applications or servers. If a server or a virtual machine has to be replaced, it's time-consuming to manually install every piece of software and do every bit of configuration. + +With IaC, hundreds of servers can be provisioned, deployed, and configured, usually from a centralized location, and every configuration can be tracked in a version-control system. If a configuration file has to be modified, instead of connecting to every server, the file can be altered locally and the code pushed to the version-control system. The same is true with scaling up or replacing damaged servers. The entire infrastructure is managed centrally, all the code is kept in a version-control repository like Git, and any changes required by the servers are done using this code alone. No more unique unicorns! (Sorry, unicorns!) + +One of IaC's main benefits is its integration with [CI/CD][6] tools like [Jenkins][7], which allows you to test more often and create deployment pipelines that automate moving versions of applications from one environment to the next. + +### So, how do you start? + +Start by doing an inventory of every application, service, and configuration needed by a server; review every piece of software installed, collect the configuration files, verify their parameters, and find where you can replicate the server. + +When you have identified everything you need, remember: + + * Use version control; everything should be tracked using version control. + * Code everything; nothing should be done manually. Use code to describe the desired state. + * Idempotence. Every result from the code you write should always yield the same result, no matter how many times it is executed. + * Make your code modular. + * Test, test, test + * Again: Use version control. Don't _ever_ forget this. + + + +#### Prerequisites + +You need two virtual machines with CentOS 7 installed. SSH login with keys should be working. + +Create a directory called **homelab**. This will be your work directory, and this tutorial will refer to it as **$PWD**. Create two other directories inside this directory: **roles** and **group_vars**: + + +``` +$ mkdir -p homelab/{roles,group_vars} +$ cd homelab +``` + +#### Version control + +The first best practice is to always keep track of everything: automation, configuration files, templates. Version-control systems like Git make it easy for users to collaborate by providing a centralized repository where all the code, configurations, templates, etc. can be found. It also lets users review or restore older versions of files. + +If you don't have one, create an account in GitHub or GitLab (or use any other version-control provider of your choice). + +Inside **$PWD**, initialize your Git repo: + + +``` +$ echo "# IaC example" >> README.md +$ git init +$ git add README.md +$ git commit -m "First commit" +$ git remote add origin <your Git URL> +$ git push -u origin master +``` + +#### Code everything + +The main idea of IaC is to manage—as much as possible—all your infrastructure with code. Any change required in a server, application, or configuration must be defined in the code. Configuration files can be converted into templates to enable greater flexibility and reusability. Settings specific to applications or servers must also be coded, usually in variable files. + +When creating the automation, it is crucial to remember idempotence: No matter how many times the code is executed, it should always have the same result. Same input, same result. For example, when writing a piece of code that modifies a file, you must ensure that if the same code is executed again, the file will look the same. + +The following steps are automated, and the code is idempotent. + +### Modularity + +When writing infrastructure as code, it is imperative to think about reusability. Most of the code you write should be reusable and scalable. + +When writing [Ansible][8] roles, the best approach is to follow the Unix philosophy: "Write programs that do one thing and do it well." Therefore, create multiple roles, one for each piece of software: 1) a "base" or "common" role that prepares each VM regardless of its purpose; 2) a role to install and configure Keepalived (for high availability); 3) a role to install and configure Nginx (web server). This method allows each role to be reused for different kinds of servers and will save a lot of coding in the future. + +#### Create the base role + +This role will prepare the VM with all the steps it needs after it is provisioned. Think about any configurations or software each server needs; they should go in this module. In this example, the base role will: + + * Change the hostname + * Install security updates + * Enable [EPEL][9] and install utilities + * Customize the welcome message + + + +Create the basic role skeleton inside **$PWD/roles**: + + +``` +`$ ansible-galaxy init --offline base` +``` + +The main file for the role is **$PWD/roles/base/tasks/main.yml**. Modify it with the following content: + + +``` +\--- +# We set the hostname to the value in the inventory +\- name: Change hostname +  hostname: +    name: "{{ inventory_hostname }}" + +\- name: Update the system +  yum: +    name: "*" +    state: latest + +\- name: Install basic utilities +  yum: +    name: ['epel-release', 'tmux', 'vim', 'wget', 'nfs-utils'] +    state: present + +\- name: Copy motd +  template: +    src: motd.j2 +    dest: /etc/motd +``` + +Create the template file that will replace **/etc/motd** by creating the file **$PWD/roles/base/templates/motd.j2** + + +``` +UNAUTHORIZED ACCESS TO THIS DEVICE IS PROHIBITED + +You must have explicit, authorized permission to access or configure "{{ inventory_hostname }}". Unauthorized attempts and actions to access or use this system may result in civil and/or criminal penalties. All activities performed on this device are logged and monitored. +``` + +Every task in this code is idempotent. No matter how many times the code is executed, it will always yield exactly the same result. Notice how **/etc/motd** is modified; if the file were modified by adding or appending content (instead of using a template), it would have failed the idempotence rule, because a new line would be added every time it was executed. + +#### Create the Keepalived role + +You could create a role that includes both **Keepalived** and **Nginx**. But what would happen if you ever needed to install Keepalived without a web server? The code would have to be duplicated, wasting time, effort, and simplicity. Keeping roles minimal and straightforward is the way to go. + +The automation code should always handle configuration files so they can be tracked in your version-control system. But how do you handle configuration files when settings can have different values per host? Use templates! Templates allow you to use variables and facts, giving you flexibility with the benefits of uniformity. + +Create the Keepalived role skeleton within **$PWD/roles**: + + +``` +`$ ansible-galaxy init --offline keepalived` +``` + +Modify the main task file **$PWD/roles/keepalived/tasks/main.yml** as follows: + + +``` +\--- +\- name: Install keepalived +  yum: +    name: "keepalived" +    state: latest + +\- name: Configure keepalived with the right settings +  template: +    src: keepalived.j2 +    dest: /etc/keepalived/keepalived.conf +  notify: restart keepalived +``` + +**$PWD/roles/keepalived/handlers/main.yml**: + + +``` +\--- +# handlers file for keepalived +\- name: restart keepalived +  service: +    name: keepalived +    enabled: yes +    state: restarted +``` + +And create the configuration template file **$PWD/roles/keepalived/templates/keepalived.j2**: + + +``` +#### File handled by Ansible. + +vrrp_script chk_nginx { +  script "pidof nginx" # check the nginx process +  interval 2 # every 2 seconds +  weight 2 # add 2 points if OK +} + +vrrp_instance LAB { +  interface {{ keepalived_nic }} # interface to monitor +  state {{ keepalived_state }} +  virtual_router_id {{ keepalived_vri }} +  priority {{ keepalived_priority }} +  virtual_ipaddress { +    {{ keepalived_vip }} +  } +  track_script { +    chk_nginx +  } +} +``` + +The Keepalived configuration file was converted into a template. It is a typical Keepalived configuration file, but instead of hardcoding values, it is parameterized. + +When automating infrastructure and configuration files, it's vital to analyze application configuration files carefully, noting which values are the same across the environments and which settings are unique to each server. Again, every time the template is processed, it should yield the same result. Create variables, use Ansible facts; this adds up to modularity and flexibility. + +#### Create the Nginx role + +This simple role will install and configure Nginx using a template, following the same principles discussed above. A template will be used for this role to generate an **index.html** with the host's internet protocol (IP). [Other facts][10] can be used, too. + +Modify the main task file **$PWD/roles/nginx/tasks/main.yml** as follows: + + +``` +\--- +# tasks file for nginx +\- name: Install nginx +  yum: +    name: 'nginx' +    state: 'latest' +  notify: start nginx + +\- name: Create web directory +  file: +    path: /var/www +    state: directory +    mode: '0755' + +\- name: Create index.html +  template: +    src: index.html.j2 +    dest: /var/www/index.html + +\- name: Configure nginx +  template: +    src: lb.conf.j2 +    dest: /etc/nginx/conf.d/lb.conf +  notify: restart nginx +``` + +Modify the main task file **$PWD/roles/nginx/handlers/main.yml** as follows: + + +``` +\--- +\- name: start nginx +  systemd: +    name: 'nginx' +    state: 'started' +    enabled: yes + +\- name: restart nginx +  systemd: +    name: 'nginx' +    state: 'restarted' +``` + +And create the following two configuration template files:  + +**$PWD/roles/nginx/templates/site.conf.j2:** + + +``` +server { +  listen {{ keepalived_vip }}:80; +  root /var/www; +  location / { +  } +} +``` + +**$PWD/roles/nginx/templates/index.html.j2**: + + +``` +`Hello, my ip is {{ ansible_default_ipv4.address }}` +``` + +### Put it all together + +You've created several roles; they are ready to be used, so create a playbook to use them. + +Create a file called **$PWD/main.yml**: + + +``` +\--- +\- hosts: webservers +  become: yes +  roles: + - base +  - nginx +  - keepalived +``` + +This file defines what roles go where. If more roles are available, they can be included to create different combinations as needed. Some servers can be web servers only, for example. This flexibility is one of the main reasons it's so essential to write minimal functional units. + +The previous roles require variables to work. Ansible is really flexible and lets you define variable files. This example creates a file called **all inside group_vars** (**$PWD/group_vars/all**). If more flexibility is needed, variables can be defined per host inside a folder called **host_vars**: + + +``` +\--- +keepalived_nic: eth0 +keepalived_vri: 51 +keepalived_vip: 192.168.2.180 +``` + +Configure **keepalived_nic** with your preferred Keepalived interface, usually **eth0**. The variable **keepalived_vip** should have the IP needed to use as a virtual IP. + +And finally, define the inventory. This inventory should keep track of your entire infrastructure. It's best to use dynamic inventories that gather all the information directly from the hypervisor so it doesn't have to be updated manually. Create a file called **inventory** with a section called **webservers** containing information about the two VMs: + + +``` +[webservers] +webserver01  ansible_user=centos ansible_host=192.168.2.101 keepalived_state=MASTER keepalived_priority=101 +webserver02  ansible_user=centos ansible_host=192.168.2.102 keepalived_state=BACKUP keepalived_priority=100 +``` + +The variable **ansible_user** should have the user Ansible will use to connect to the server. The variable **keepalived_state** should indicate if the host will be configured as a Master or Backup (as required in the Keepalived template file). Finally, set the variable **keepalived_priority** here because the master should have a higher priority than the backup. + +And that's it; you've automated configuration of two VMs, installing Keepalived and Nginx. + +Now save your changes: + + +``` +$ git add . +$ git commit -m "IaC playbook" +$ git push -u origin master +``` + +and deploy: + + +``` +`$ ansible-playbook -i inventory main.yml` +``` + +This project investigated basic IaC concepts, but it doesn't end here. Learn more by exploring how to do automated server provisioning, unit testing, and integration with CI/CD tools and pipelines. It's a long process, but it's worth it, both technically and career-wise. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/infrastructure-code + +作者:[Michael Zamot][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/mzamot +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/find-file-linux-code_magnifying_glass_zero.png?itok=E2HoPDg0 (Magnifying glass on code) +[2]: https://opensource.com/article/19/3/home-lab +[3]: https://www.keepalived.org/ +[4]: https://www.nginx.com/ +[5]: https://github.com/mzamot/os-homelab-example +[6]: https://en.wikipedia.org/wiki/CI/CD +[7]: https://jenkins.io/ +[8]: https://www.ansible.com/ +[9]: https://fedoraproject.org/wiki/EPEL +[10]: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variables-discovered-from-systems-facts From e03b6cdabe2ae1025bea478567a92625b73e5471 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 2 Jul 2019 00:57:21 +0800 Subject: [PATCH 44/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190701=20Tempered?= =?UTF-8?q?=20Networks=20simplifies=20secure=20network=20connectivity=20an?= =?UTF-8?q?d=20microsegmentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md --- ...work connectivity and microsegmentation.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md diff --git a/sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md b/sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md new file mode 100644 index 0000000000..5cf40e865d --- /dev/null +++ b/sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md @@ -0,0 +1,99 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Tempered Networks simplifies secure network connectivity and microsegmentation) +[#]: via: (https://www.networkworld.com/article/3405853/tempered-networks-simplifies-secure-network-connectivity-and-microsegmentation.html) +[#]: author: (Linda Musthaler https://www.networkworld.com/author/Linda-Musthaler/) + +Tempered Networks simplifies secure network connectivity and microsegmentation +====== +Tempered Networks’ Identity Defined Network platform uses the Host Identity Protocol to partition and isolate the network into trusted microsegments, providing an easy and cost-effective way to secure the network. +![Thinkstock][1] + +The TCP/IP protocol is the foundation of the internet and pretty much every single network out there. The protocol was designed 45 years ago and was originally only created for connectivity. There’s nothing in the protocol for security, mobility, or trusted authentication. + +The fundamental problem with TCP/IP is that the IP address within the protocol represents both the device location and the device identity on a network. This dual functionality of the address lacks the basic mechanisms for security and mobility of devices on a network. + +This is one of the reasons networks are so complicated today. To connect to things on a network or over the internet, you need VPNs, firewalls, routers, cell modems, etc. and you have all the configurations that come with ACLs, VLANs, certificates, and so on. The nightmare grows exponentially when you factor in internet of things (IoT) device connectivity and security. It’s all unsustainable at scale. + +Clearly, we need a more efficient and effective way to take on network connectivity, mobility, and security. + +**[ Also read: [What is microsegmentation? How getting granular improves network security][2] | Get regularly scheduled insights: [Sign up for Network World newsletters][3] ]** + +The Internet Engineering Task Force (IETF) tackled this problem with the Host Identity Protocol (HIP). It provides a method of separating the endpoint identifier and the locator roles of IP addresses. It introduces a new Host Identity (HI) name space, based on public keys, from which endpoint identifiers are taken. HIP uses existing IP addressing and forwarding for locators and packet delivery.The protocol is compatible with IPv4 and IPv6 applications and utilizes a customized IPsec tunnel mode for confidentiality, authentication, and integrity of network applications. + +Ratified by IETF in 2015, HIP represents a new security networking layer within the OSI stack. Think of it as Layer 3.5. It’s a flip of the trust model where TCP/IP is inherently promiscuous and will answer to anything that wants to talk to a device on that network. In contrast, HIP is a trust protocol that will not answer to anything on the network unless that connection has been authenticated and authorized based on its cryptographic identity. It is, in effect, a form of a [software-defined perimeter][4] around specific network resources. This is also known as [microsegmentation][5]. + +![][6] + +### Tempered Networks’ IDN platform creates segmented, encrypted network + +[Tempered Networks][7] has created a platform utilizing the HIP and a variety of technologies that partitions and isolates the network into trusted microsegments. Tempered Networks’ Identity Defined Networking (IDN) platform is deployed as an overlay technology that layers on top of any IP network. The HIP was designed to be both forward and backward compatible with any IP network without having to make any changes to the underlay network. The overlay network creates a direct tunnel between the two things you want to connect. + +**[ [Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][8] ]** + +The IDN platform uses three components to create a segmented and encrypted network: an orchestration engine called the Conductor, the HIPrelay identity-based router, and HIP Services enforcement points. + +The Conductor is a centralized orchestration and intelligence engine that connects, protects, and disconnects any resource globally through a single pane of glass. The Conductor is used to define and enforce policies for HIP Services. Policy configuration is done in a simple point-and-click manner. The Conductor is available as a physical or virtual appliance or in the Amazon Web Services (AWS) cloud. + +HIP Services provide software-based policy enforcement, enabling secure connectivity among IDN-protected devices, as well as cloaking, segmentation, identity-based routing, and IP mobility. They can be deployed on or in-line to any device or system and come in the form of HIPswitch hardware, HIPserver, HIPclient, Cloud HIPswitch, or Virtual HIPswitch. HIP Services also can be embedded in customer hardware or applications. + +Placing HIPswitches in front of any connected device renders the device HIP-enabled and immediately microsegments the traffic, isolating inbound and outbound traffic from the underlying network. HIPswitches deployed on the network automatically register with the Conductor using their cryptographic identity. + +HIPrelay works with the HIP Service-enabled endpoints to deliver peer-to-peer connectivity for any device or system across all networks and transport options. Rather than using Layer 3 or 4 rule sets or traditional routing protocols, HIPrelay routes and connects encrypted communications based on provable cryptographic identities traversing existing infrastructure. + +It sounds complicated, but it really isn’t. A use case example should demonstrate the ease and power of this solution. + +### Use case: Smart Ships + +An international cruise line recently installed Tempered Networks’ IDN solution to provide tighter security around its critical maritime systems. Prior to deployment, the systems for fuel, propulsion, navigation, ballast, weather, and incinerators were on a flat Layer 2 network, which basically allowed authorized users of the network to see everything. + +Given that vendors of the different maritime systems had access to their own system, the lack of microsegmentation allowed them to see the other systems as well. The cruise line needed a simple way to segment access to these different systems — isolating them from each other — and they wanted to do it without having to put the ships in dry dock for the network reconfiguration. + +The original configuration looked like this: + +![][9] + +The company implemented microsegmentation of the network based on the functionality of the systems. This isolated and segmented vendor access to only their own systems — everything else was hidden to them. The implementation involved installing HIPrelay identity routing in the cloud, several HIPswitch wireless devices onboard the ships, and HIPclient software on the vendors’ and crew members’ devices. The Conductor appliance that managed the entire deployment was installed in AWS. + +All of that was done without impacting the underlying network, and no dry dock time was required for the deployment. In addition, the cruise line was able to eliminate internal firewalls and VPNs that had previously been used for segmentation and remote access. The resulting configuration looks like this: + +![][10] + +The color coding of the illustration above indicates what systems are now able to directly see and communicate with their corresponding controllers and sensors. Everything else on the network is hidden from view of those systems. + +The acquisition cost of the Tempered Networks’ solution was one-tenth that of a traditional microsegmentation solution. The deployment time was 2 FTE days per ship compared to the 40 FTE days a traditional solution would have needed. No additional staffing was required to support the solution, and no changes were made to the underlying network. + +### A time-tested microsegmentation solution + +This technology came out of Boeing and was deployed for over 12 years within their manufacturing facilities until 2014, when Boeing allowed the technology to become commercialized. Tempered Networks took the HIP and developed the full platform with easy, centralized management. It was purpose-built to provide secure connectivity to networks. The solution has been successfully deployed in industrial domains such as the utilities sector, oil and gas, electricity generation, and aircraft manufacturing, as well as in enterprise domains and healthcare. + +Join the Network World communities on [Facebook][11] and [LinkedIn][12] to comment on topics that are top of mind. + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3405853/tempered-networks-simplifies-secure-network-connectivity-and-microsegmentation.html + +作者:[Linda Musthaler][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/Linda-Musthaler/ +[b]: https://github.com/lujun9972 +[1]: https://images.idgesg.net/images/article/2018/01/network_security_hacker_virus_crime-100745979-large.jpg +[2]: https://www.networkworld.com/article/3236448/lan-wan/what-to-consider-when-deploying-a-next-generation-firewall.html +[3]: https://www.networkworld.com/newsletters/signup.html +[4]: https://www.networkworld.com/article/3359363/software-defined-perimeter-brings-trusted-access-to-multi-cloud-applications-network-resources.html +[5]: https://www.networkworld.com/article/3247672/what-is-microsegmentation-how-getting-granular-improves-network-security.html +[6]: https://images.idgesg.net/images/article/2019/07/hip-slide-100800735-large.jpg +[7]: https://www.temperednetworks.com/ +[8]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr +[9]: https://images.idgesg.net/images/article/2019/07/cruise-ship-before-100800736-large.jpg +[10]: https://images.idgesg.net/images/article/2019/07/cruise-ship-after-100800738-large.jpg +[11]: https://www.facebook.com/NetworkWorld/ +[12]: https://www.linkedin.com/company/network-world From b5fb98a086ec35dcfaa7f9b56e5dab536164142f Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 2 Jul 2019 08:51:30 +0800 Subject: [PATCH 45/85] translated --- ... Deluge 2.0 Released- Here-s What-s New.md | 88 ------------------- ... Deluge 2.0 Released- Here-s What-s New.md | 83 +++++++++++++++++ 2 files changed, 83 insertions(+), 88 deletions(-) delete mode 100644 sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md create mode 100644 translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md diff --git a/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md deleted file mode 100644 index 446bf11a92..0000000000 --- a/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (BitTorrent Client Deluge 2.0 Released: Here’s What’s New) -[#]: via: (https://itsfoss.com/deluge-2-release/) -[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) - -BitTorrent Client Deluge 2.0 Released: Here’s What’s 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 wasn’t there – until recently. The latest version while we write this happens to be 2.0.2. So, if you haven’t downloaded the latest stable version – do try it out. - -In either case, if you’re curious, let us talk about what’s 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/ diff --git a/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md new file mode 100644 index 0000000000..7c04b906fc --- /dev/null +++ b/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md @@ -0,0 +1,83 @@ +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (BitTorrent Client Deluge 2.0 Released: Here’s What’s New) +[#]: via: (https://itsfoss.com/deluge-2-release/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) + +BitTorrent 客户端 Deluge 2.0 发布:新功能介绍 +====== + +你可能已经知道 [Deluge][1] 是[最适合 Linux 用户的 Torrent 客户端][2]之一。然而,最近的稳定版本差不多是两年前的了。 + +尽管它在积极开发中,但直到最近才出了一个主要的稳定版本。我们写这篇文章时,最新版本恰好是 2.0.2。所以,如果你还没有下载最新的稳定版本,请尝试一下。 + +不管如何,如果你好奇的话,让我们谈下有哪些新的功能。 + +![Deluge][3] + +### Deluge 2.0 的主要改进 + +新版本引入了多用户支持,这是一个非常需要的功能。 + +除此之外,还有一些性能改进可以更快地加载更多的种子。 + +此外,在 2.0 版本中,Deluge 使用了 Python 3,对 Python 2.7 提供最低支持。即使是用户界面,他们也从 GTK UI 迁移到了 GTK3。 + +根据发行说明,还有一些更重要的补充/改进,包括: + + * 多用户支持。 +  * 性能提升,可以更快地加载数千个种子。 +  * 一个模拟 GTK/Web UI 的新控制台 UI。 +  * GTK UI 迁移到 GTK3,并伴随 UI 改进和补充。 +  * 磁链预获取功能以便在添加种子时选择文件。 +  * 完全支持 libtorrent 1.2。 +  * 语言切换支持。 +  * 改进了在 ReadTheDocs 托管的文档。 +  * AutoAdd 插件取代了内置功能。 + + + +### 如何安装或升级到 Deluge 2.0 + +![][4] + +对于任何 Linux 发行版,你都应该遵循官方[安装指南][5](使用 PPA 或 PyPi)。但是,如果你要升级,你应该留意发行说明中提到的: + +“_Deluge 2.0与 Deluge 1.x 客户端或守护进程不兼容,因此这些也需要升级。如果第三方脚本直接连接到 Deluge 客户端,那么可能也不兼容且需要迁移。_” + +因此,坚持在升级主版本之前备份你的[配置][6]以免数据丢失。 + +而且,如果你是插件作者,那么需要升级它以使其与新版本兼容。 + +直接下载的安装包尚不包含 Windows 和 Mac OS。但是,说明中提到他们正在进行中。 + +除此之外,你可以按照更新后的官方文档中的[安装指南][5]来手动安装它们。 + +**总结** + +你如何看待最新的稳定版本?你是否将 Deluge 用作 BitTorrent 客户端?或者你是否找到了其他更好的选择? + +请在下面的评论栏告诉我们你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/deluge-2-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者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 From 56399b7bc8449adb0d6278e64c7ebbd9a52f45f2 Mon Sep 17 00:00:00 2001 From: chen ni Date: Tue, 2 Jul 2019 09:05:52 +0800 Subject: [PATCH 46/85] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=EF=BC=9A20190625=20The=20innovation=20delusion.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20190625 The innovation delusion.md | 93 ------------------- .../tech/20190625 The innovation delusion.md | 88 ++++++++++++++++++ 2 files changed, 88 insertions(+), 93 deletions(-) delete mode 100644 sources/tech/20190625 The innovation delusion.md create mode 100644 translated/tech/20190625 The innovation delusion.md diff --git a/sources/tech/20190625 The innovation delusion.md b/sources/tech/20190625 The innovation delusion.md deleted file mode 100644 index 53f7ffb412..0000000000 --- a/sources/tech/20190625 The innovation delusion.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (chen-ni) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (The innovation delusion) -[#]: via: (https://opensource.com/open-organization/19/6/innovation-delusion) -[#]: author: (Jim Whitehurst https://opensource.com/users/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans) - -The innovation delusion -====== -Innovation is a messy process. Our stories about it aren't. We shouldn't -confuse the two. -![gears and lightbulb to represent innovation][1] - -If [traditional planning is dead][2], then why do so many organizations still invest in planning techniques optimized for the Industrial Revolution? - -One reason might be that we trick ourselves into thinking innovation is the kind of thing we can accomplish with a structured, linear process. When we do this, I think we're confusing our _stories_ about innovation with the _process_ of innovation itself—and the two are very different. - -The _process_ of innovation is chaotic and unpredictable. It doesn't operate according to clean, regimented timelines. It's filled with iterative phases, sudden changes in direction, various starts and stops, dead ends, (hopefully productive) failures, and unknowable variables. It's messy. - -But the stories we tell ourselves about innovation, including the books and articles we read about great inventions and the tales we tell each other about our successes in the workplace, tidy that process up. Think about how many social media posts you've seen that feature nothing but the "high points." - -That's the nature of good storytelling. It takes a naturally scattered collection of moments and puts them neatly into a beginning, middle, and end. It smoothes out all the rough patches and makes a result seem inevitable from the start, despite whatever moments of uncertainty, panic, even despair we experienced along the way. - -We shouldn't confuse messy process with simplified story. When we do, we might mistakenly assume we can approach innovation challenges with the same practices we bring to neat and linear processes. In other words, we apply a set of management techniques appropriate for one set of activities (for more rote, mechanical, and prescriptive tasks) to a set of activities they aren't really suited for (more creative, non-linear work requiring autonomy and experimentation). - -If traditional planning is dead, then why do so many organizations still invest in planning techniques optimized for the Industrial Revolution? - -### An innovation story - -Here's [one of my favorite examples][2] of how this idea in action. - -In the 1970s, the British motorcycle industry was desperately trying to figure out why its U.S. market share was plummeting while Honda's was skyrocketing. The company hired my former employer, the Boston Consulting Group, to help them figure out what was going wrong. BCG gathered some historical data, reviewed a two-decade sequence of events, and developed a neat, linear story explaining Honda's success. - -Honda, [BCG concluded][3], had executed an ingenious strategy: enter the U.S market with smaller motorcycles it could sell at lower cost, use the economies of scale it had developed in the Japense market to set low prices and grow a market, then further leverage those economies of scale to grow their share in the States as demand grew. By all accounts, Honda had done it brilliantly, playing to its strengths while thoroughly and accurately assessing the new, target U.S. consumer. It had outsmarted, outflanked, and outperformed competitors with a well-executed plan. - -It _sounded_ great. But the reality was much less straightforward. - -Yes, Honda _did_ want to enter the U.S. motorcycle market. It initially attempted to [copy its competitors there][4], building the larger bikes Americans seemed to favor. But bikes like that weren't one of Honda's strengths, and their versions had reliability issues. To make matters worse, their models didn't look much different than other offerings already in the market, so they weren't standing out. Suffice it to say, sales were not booming. - -But in a happy coincidence, Honda's Japanese representatives visiting the States had brought their own motorcycles with them. Those bikes were different than the ones the company was attempting to sell to the American market. They were smaller, zippier, less bulky, more efficient, and generally less expensive. Sears took notice, contacted the reps, and the companies struck a deal that let Sears carry this new motorcycle—called the "Super Cub"—in its American stores. - -And the rest, as they say, is history. The Super Cub would go on to become the [best-selling motorized vehicle of all time][5], and Honda [continues to produce it today][6]. - -In hindsight, the events that brought the Super Cub to the U.S. seem logical, almost boring. But Honda owed its success less to an ingenious master plan and much more to serendipity and happenstance than most people care to admit. - -When success depends on things we don't or can't predict, is getting exactly what you've planned for good enough? - -### Open (and messy) innovation - -Organizations (and especially leaders) like to think that success is always planned—that they've become masters of chaos and can almost predict the future. But they're often making those assessments with the benefit of hindsight, telling the stories of their haphazard journey in a way that organizes the chaos, essentially reflecting on a period of uncertainty and saying "we meant to do that." - -But as I said, we shouldn't assume those stories are mirror reflections of the innovation process itself and build future initiatives or experiments on that mistaken assumption. - -Imagine another motorcycle manufacturer looking to replicate Honda's success with the Super Cub by following BCG's narrative to the letter. Because the _story_ of Honda's success seems so logical and linear, the new company might assume it could use similar processes and get the same results: plan objectives, prescribe behaviors, and execute against knowable outcomes. But we know that Honda didn't really win its market with that kind of "plan, prescribe, execute" mentality. It won through flexibility and a bit of blind luck—something more like "[try, learn, modify][7]." - -When we're able to appreciate and accept that the innovation process is messy, we allow ourselves to think differently about approaching innovation in our organizations. We can begin building the kinds of open and agile organizations capable of _responding to innovation as it happens_ instead of over-investing resources into pre-formed plans that try to _force_ innovation into a linear timeline. - -I saw this kind of approach several years ago, when Red Hat released a new version of a product that included a major technology update. [Version 5.4 of Red Hat Enterprise Linux][8] was the first to include full support for a technology called the Kernel-based Virtual Machine (or "KVM"). For us it was a significant innovation that promised to deliver immense value not only to customers and partners, but also to open source software communities. - -The technology was evolving quickly. Luckily, because we're an open organization, we were adaptable enough to respond to that innovation as it was happening and help our customers and partners take advantage of it. It was too important, and the competitive landscape too volatile, to justify withholding just so we could "save" it for a milestone moment like version 6.0. - -When you go back and review [the archived release notes][9] for Red Hat Enterprise Linux, you'll see that it doesn't "read" like a typical software innovation tale. A game-changing development pops up at an unpredicted and unremarkable moment (version 5.4), rather than a pre-planned blockbuster milestone (version 6.0). In hindsight, we now know that KVM _was_ the kind of "big bang" advancement that could have warranted a milestone release name like "6.0." But that's just not how the innovation process unfolded. - -Don't get me wrong, organizations still need to maintain operational excellence and perform execution-oriented tasks well. But [different kinds of challenges require different kinds of approaches][10], and we need to get better at building flexible organizations just as capable of [responding to the unforeseen or unknowable][11]. - -An organization great at planning (and executing against that plan) will quite likely get the results it planned for. But when success depends on things we _don't_ or _can't_ predict, is getting exactly what you've planned for good enough? - --------------------------------------------------------------------------------- - -via: https://opensource.com/open-organization/19/6/innovation-delusion - -作者:[Jim Whitehurst][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/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation) -[2]: https://www.youtube.com/watch?v=8MCbJmZQM9c -[3]: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/235319/0532.pdf -[4]: http://www.howardyu.org/the-revolutionary-approach-honda-took-to-rise-above-competition/ -[5]: https://autoweek.com/article/motorcycles/first-ride-honda-super-cub-c125-abs-all-new-and-still-super-cute -[6]: https://www.autoblog.com/2019/02/13/2019-honda-super-cub-first-ride-review/ -[7]: https://opensource.com/open-organization/18/3/try-learn-modify -[8]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.4_release_notes/index -[9]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.0_release_notes/index -[10]: https://opensource.com/open-organization/19/4/managed-enabled-empowered -[11]: https://www.linkedin.com/pulse/how-plan-world-full-unknowns-jim-whitehurst/ diff --git a/translated/tech/20190625 The innovation delusion.md b/translated/tech/20190625 The innovation delusion.md new file mode 100644 index 0000000000..8e20ad0d98 --- /dev/null +++ b/translated/tech/20190625 The innovation delusion.md @@ -0,0 +1,88 @@ +[#]: collector: (lujun9972) +[#]: translator: (chen-ni) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (The innovation delusion) +[#]: via: (https://opensource.com/open-organization/19/6/innovation-delusion) +[#]: author: (Jim Whitehurst https://opensource.com/users/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans) + +创新的幻觉 +====== +创新是一种混乱的过程,但是关于创新的故事却很有条理。我们不应该把两者搞混了。 +![gears and lightbulb to represent innovation][1] + +如果说 [传统的规划方法已经消亡了][2],为什么这么多机构还在孜孜不倦地运用那些针对工业革命所设计的规划方法呢? + +其中的一个原因是,我们错误地认为创新是可以通过结构化的、线性的过程实现的。我觉得这样做是在混淆关于创新的 **故事** 和创新这个 **过程** 本身 —— 两者是截然不同的东西。 + +创新的过程是混乱和不可预测的,并不遵循井然有序的时间线。过程中充满了重复迭代、突然的改变方向、各式各样的启动和终止、死胡同、失败(但愿是有用的失败),以及很多不可知的变量。创新是混乱的。 + +但是关于创新的故事却让事情显得很简单,从讲述伟大发明的书籍和文章,到我们(简化了整个过程之后)讲述自己在工作上的成功都是这样。想想你在社交媒体上读的帖子里,有多少都只写了最好的、最愉快的部分吧。 + +好故事就是这样。我们把一些原本分散的时间点干净利落地整理到一起,有开头、有发展、也有结尾。尽管我们一路上经历了很多没有把握、恐慌、甚至是绝望的时刻,在故事里这些坎坷却都被抹平了,让事情看起来像是从一开始就注定是成功的。 + +我们不应该把混乱的过程和简化了的故事搞混。否则,我们会错误地认为可以使用在简单线性过程中所使用的同样的方法迎接创新的挑战。换句话说,我们将适用于一种类型的活动(比较偏死记硬背、机械和规则性的任务)的管理技术应用在了并不适用的另一种类型的活动(更加有创造性的、非线性的工作,需要自主性和试验)上。 + +### 一个创新的故事 + +下面这个故事可以很好地说明这一点。这是我 [最喜欢举的例子][2] 之一。 + +在 1970 年代,英国的摩托车行业怎么也想不明白为什么他们在美国的市场份额急剧下降,而本田公司的市场份额却急速攀升。他们雇佣了波士顿咨询公司(刚好是我之前的雇主)帮助他们找出问题所在。波士顿咨询搜集了一些历史数据,回看了二十年的历史事件,总结出了一个井井有条的、线性的故事,可以很好地解释本田公司的成功。 + +[波士顿咨询的结论是][3],本田公司使用了一个巧妙的策略:通过一种可以以更低价格销售的偏小型摩托车进入美国市场,并且借助于他们在日本本土市场发展出来的规模经济,在美国市场使用低价策略发展市场份额,然后等到需求进一步增长的时候,再利用更大的规模经济发展他们在美国的市场份额。在所有人的眼中,本田公司都表现得非常出色,不仅发挥了自己的优势,还非常透彻和精准地理解了新的目标顾客:美国消费者。他们智胜一筹,通过一个执行得很好的计划占领了先机,胜过了竞争对手们。 + +这个故事 **听上去** 很厉害,但是实际情况没有这么简单。 + +没错,本田公司 **确实** 是想进入美国摩托车市场。他们最初是想 [效仿在美国的竞争对手][4],也制造美国人似乎更喜欢的大型摩托车。但是大型摩托车并不是本田公司的强项,他们生产的大型摩托车存在可靠性上的问题。更糟的是,他们的产品和市面上的其它产品没有什么差别,所以并不能脱颖而出。简单来说,他们的产品销售额表现平平。 + +但是在一次奇妙的巧合里,本田公司出访美国的日本代表们带了几辆自己开的摩托车。这些摩托车和本田公司试图在美国市场上销售的摩托车完全不同,它们更为小巧灵活、不那么笨重、更有效率,并且一般来说也更便宜。西尔斯公司(LCTT 译注:美国零售业巨头)注意到了这些小巧的摩托车,并且和日本代表达成了一项协议,让西尔斯公司可以在他们在美国的商店里出售这种被称为“超级幼兽”的新型摩托车。 + +剩下的故事已经载入史册。超级幼兽成为了 [史上最畅销的机动车][5],并且本田公司 [至今仍然在生产超级幼兽][6]。 + +事后看来,将超级幼兽带到美国的一连串事件似乎很有逻辑,近乎无聊了。但是本田公司的成功和“巧妙的计划”没有什么关系,而更应该归功于一些(大多数人不愿意承认的)机缘巧合。 + +### 开放(并且混乱的)创新 + +机构(特别是领导们)喜欢把成功说成是一件计划之内的事情 - 好像成功人士可以驾驭混乱,并且几乎可以预测未来。但是这些言论都是事后诸葛亮罢了,他们在讲述自己充满偶然性的经历的时候会刻意将无序的事情整理一番,对于毫无确定性的事情也会说“我们就是想要那么做的”。 + +但是正如我前面说的,我们不应该相信这些故事是创新过程的真实还原,也不应该在这种错误的假设的基础之上去构建未来的方案或者实验。 + +试想有另一家摩托车制造商想要复制本田公司在超级幼兽上的成功,就逐字逐句地照搬波士顿咨询总结的故事。由于本田公司成功的 **故事** 听上去是如此有逻辑,并且是线性的,这家新公司也许会假定他们可以通过类似的程序得到同样的结果:制定目标、谋划行动,然后针对可预期的结果进行执行。但是我们知道本田公司并不是真的靠这种“制定、谋划、执行”的方式赢得他们的市场份额的。他们是通过灵活性和一点运气获得成功的 - 更像是“尝试、学习、修改”。 + +当我们可以真正理解并且接受“创新过程是混乱的”这个事实的时候,我们就可以换种方式思考如何让我们的机构实现创新了。与其将资源浪费在预先制定的计划上,**强迫** 创新以一种线性时间线的方式发生,我们不如去构建一些开放并且敏捷的机构,可以 **在创新发生的时候做出及时的响应**。 + +几年前红帽公司发布一个包含了重大技术升级的产品的新版本的时候,我就看到了这样的方法。[红帽企业级 Linux 5.4 版本][8] 首次完全支持了一种被称为"基于内核的虚拟机"(KVM)的技术。这对于我们来说是一个重大的创新,不仅可以为顾客和合作伙伴带来巨大的价值,也有望为开源社区带来巨大的价值。 + +这项技术正在快速演进。幸运的事,因为我们是一个开放的机构,我们具有足够的适应能力,可以在这项创新发生的时候做出响应,从而帮助我们的顾客和合作伙伴可以更好地利用它。这项技术太重要了,并且竞争格局也太不稳定了,以至于我们没有理由要等到像 6.0 版本这样的里程碑时刻才出手。 + +如果你回看红帽企业级 Linux [已经存档的发行说明][9],你会发现它读起来并不像一个典型的软件创新的故事。一次改变游戏规则的进展突然出现在一个没有预测到的、并不起眼的时刻(5.4 版本),而不是一个事先计划好的重要里程碑时刻(6.0 版本)。事后看来,我们现在知道 KVM 这种“大爆炸”级别的进步是足够担得起 “6.0 版本”这样的里程碑式的名字的。但是创新并不是按照这样的剧本发生的。 + +不要误解我,机构仍然需要保持出色的运转,高效完成执行性的任务。但是 [不同的挑战需要不同的方法去应对][10],我们需要能够更好地建立灵活的机构,以及对 [意想不到和不可知的事情][11] 能够做出更好的响应。 + +一个在计划工作(以及按照计划执行)上做得很出色的公司很可能会得到他们计划要得到的结果。但是如果成功还取决于我们没有预测或者无法预测的的事情,那么仅仅精准地按照计划执行是不是就不够了? + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/19/6/innovation-delusion + +作者:[Jim Whitehurst][a] +选题:[lujun9972][b] +译者:[chen-ni](https://github.com/chen-ni) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation) +[2]: https://www.youtube.com/watch?v=8MCbJmZQM9c +[3]: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/235319/0532.pdf +[4]: http://www.howardyu.org/the-revolutionary-approach-honda-took-to-rise-above-competition/ +[5]: https://autoweek.com/article/motorcycles/first-ride-honda-super-cub-c125-abs-all-new-and-still-super-cute +[6]: https://www.autoblog.com/2019/02/13/2019-honda-super-cub-first-ride-review/ +[7]: https://opensource.com/open-organization/18/3/try-learn-modify +[8]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.4_release_notes/index +[9]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.0_release_notes/index +[10]: https://opensource.com/open-organization/19/4/managed-enabled-empowered +[11]: https://www.linkedin.com/pulse/how-plan-world-full-unknowns-jim-whitehurst/ From 81c92f9c411874564779d4be2a5a26cf41a76ab1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 2 Jul 2019 09:14:39 +0800 Subject: [PATCH 47/85] translating --- ...and Open Source Trello Alternative OpenProject 9 Released.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md b/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md index 8c5c5decf9..35ba13853d 100644 --- a/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md +++ b/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 6064fdbd6b32553f9dd3cf147d64333e5316ce12 Mon Sep 17 00:00:00 2001 From: zionfuo Date: Tue, 2 Jul 2019 10:03:42 +0800 Subject: [PATCH 48/85] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=EF=BC=9A20190702=20Blockchain=202.0=20=E2=80=93=20Public=20Vs?= =?UTF-8?q?=20Private=20Blockchain=20Comparison=20[Part=207]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7] --- ...Vs Private Blockchain Comparison [Part 7].md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md diff --git a/translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md b/translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md new file mode 100644 index 0000000000..eba0bc472f --- /dev/null +++ b/translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md @@ -0,0 +1,69 @@ +# 区块链 2.0:公有链 Vs 私有链(七) + +![](https://cdn.nlark.com/yuque/0/2019/png/241708/1558488910255-ef5f4381-c3a0-4a43-bb6f-c6890b808d32.png) + +[区块链 2.0](https://www.ostechnix.com/blockchain-2-0-an-introduction/) 系列的前一篇文章探索了[智能合同的现状](https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/)。这篇文章旨在揭示可以创建的不同类型的区块链。每个协议都用于与众不同的应用程序,并且根据用例的不同,每个应用程序所遵循的协议也不同。现在,让我们比较一下公有链、开源软件与私有链、专有技术。 + +正如我们所知,基于区块链的分布式账本的基本三层结构如下: + +![图1 – 区块链分布式账本的基本结构](https://cdn.nlark.com/yuque/0/2019/png/241708/1558488910943-95ae93e1-6e34-40e7-bff5-0ffdb384c103.png#align=left&display=inline&height=389&originHeight=389&originWidth=744&size=0&status=done&width=744)](http://www.ostechnix.com/wp-content/uploads/2019/04/blockchain-architecture.png) +图1 – 区块链分布式账本的基本结构 + +这里提到的类型之间的差异主要是因为底层区块链的协议。该协议规定了参与者的规则和参与的方式。 + +阅读本文时,请记住以下几点事项: + +- 任何平台的产生都是为了解决需求而生。技术应该采取最好的方向。例如,区块链具有巨大的应用价值,其中一些可能需要丢弃在其他设置中看起来很重要的功能。在这方面,**分布式存储**就是最好的例子。 +- 区块链基本上是数据库系统,通过时间戳和区块的形式组织数据来跟踪信息。此类区块链的创建者可以选择谁有权产出这些区块并进行修改。 +- 区块链也可以“中心化”,设置不同的参与程度,可以得出那些参与者是符合条件的“中心”节点。 + +大多数区块链要么是公有的,要么是私有的。一般来说,公有链可以被认为是开源软件的等价物,大多数私有链可以被视为源自公有链的专有平台。下图应该会让大多数人明显地看出基本的区别。 + +![图2 – 公有链/私有链与开源/专有技术的对比](https://cdn.nlark.com/yuque/0/2019/png/241708/1558488910996-6cd845e3-22d7-4edd-b35e-bee59ffb99f8.png#align=left&display=inline&height=390&originHeight=358&originWidth=684&size=0&status=done&width=746)](http://www.ostechnix.com/wp-content/uploads/2019/04/Public-vs-Private-blockchain-comparison.png) +图2 – 公有链/私有链与开源/专有技术的对比 + +虽然这是最受欢迎的理解。但是这并不是说所有的私有链都是从公有链中衍生出来的。 + +## 公有链 + +公有链可以被视为是一个开放的平台或网络。任何拥有专业知识和计算资源的人都可以参与其中。这将产生以下影响: + +- 任何人都可以加入公有链网络并参与到其中。“参与者” 所需要的只是稳定的网络资源和计算资源。 +- 参与包括了读取、写入、验证和交易期间的共识。比特币矿工就是很好的例子。作为网络的参与者,矿工会得到比特币作为回报。 +- 平台完全去中心,完全冗余。 +- 由于去中心化,没有一个主体可以完全控制分类账中记录的数据。所有 (或大多数) 参与者都需要通过验证区块的方式检查数据。 +- 这意味着,一旦信息被验证和记录,就不能轻易改变。即使这样,也不可能留下痕迹。 +- 在比特币和莱特币等平台上,参与者的身份仍然是匿名的。设计这些平台的目的是保护和保护用户身份。这主要是由上层协议栈提供的功能。 +- 在BITCOIN和LITECOIN等平台上,参与者的身份仍然是匿名的。这些平台的设计旨在保护和保护用户身份。这主要是由上层协议栈提供的功能。 +- 公有链有比特币、莱特币、以太坊等不同的网络。 +- 广泛的去中心化意味着,区块链分布式网络与实现的交易相比,在交易上获得共识可能需要一段时间,并且吞吐量对于旨在每时刻推动大量交易的大型企业来说可能是一个挑战。 +- 开放式参与,使比特币等公有链中的大量参与者,往往会增加对计算设备和能源成本的初始投资。 + + +## 私有链 + +相比之下,私有链是被许可的区块链。含义: + +- 参与网络的许可受到限制,并由监督网络的所有者或机构主持。这意味着,即使个人能够存储数据并进行交易 (例如,发送和接收付款),这些交易的验证和存储也只能由选定的参与者来完成。 +- 参与者一旦获得中心机构的许可,将受到条款的限制。例如,在金融机构运营的私有链网络中,并不是每个客户都可以访问整个区块链的分布式账本,甚至在那些获得许可的客户中, 不是每个人都能访问所有的东西。在这种情况下,中心机构将授予访问选择服务的权限。这通常被称为 “通道”。 +- 与公有链相比,这种系统具有更大的吞吐量能力,也展示了更快的交易速度,因为区块只需要由少数几个人验证。 +- 公有链以设计安全著称。他们的实现依靠以下几点: + - 匿名参与者 + - 多个节点上的分布式和冗余的加密存储 + - 创建和更改数据需要大量的共识 + +私有链通常在其协议中没有任何特征。这使得该系统仅与目前使用的大多数基于云的数据库系统一样安全。 + +## 智者的观点 + +需要注意的一点是,它们被命名为 public 或 private (或 open 或 close) 的事实与底层代码库无关。在这两种情况下,平台所基于的代码或文字基础可能是公开的,也可能不是公开的。R3 是一家 DLT (**D**istributed **L**edger **T**echnology) 公司,领导着由 200 多家跨国机构组成的公有财团。他们的目标是在金融和商业领域进一步发展区块链和相关分布式账本技术。Corda 是这一共同努力的产物。R3 将 corda 定义为专门为企业构建的区块链平台。同样的代码库是开源的,鼓励世界各地的开发人员为这个项目做出贡献。然而,考虑到 corda 面临的业务性质和旨在满足的需求,corda 将被归类为许可的封闭区块链平台。这意味着企业可以在部署后选择网络的参与者,并通过使用本机可用的智能合约工具选择这些参与者可以访问的信息类型。 + +虽然像比特币和以太坊这样的公有链对这个领域的广泛认知和发展负有责任,这是一个现实, 仍然可以争辩说,为企业或商业环境中的特定用例设计的私有链将在短期内引领货币投资。这些都是我们大多数人在不久的将来会看到以实际方式运用起来的平台。 + +阅读本系列中写一篇文章是有关Hyperledger项目的。 + +- [**Blockchain 2.0 – An Introduction To Hyperledger Project (HLP)**](https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/) + +我们正在研究更多有趣的区块链技术话题。敬请期待! + +[https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/](https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/) From ed3da4f2aa96a8d1a837f09246ce6bf4804b7632 Mon Sep 17 00:00:00 2001 From: zionfuo Date: Tue, 2 Jul 2019 10:18:50 +0800 Subject: [PATCH 49/85] =?UTF-8?q?=E7=BF=BB=E8=AF=91=EF=BC=9A20190505=20Blo?= =?UTF-8?q?ckchain=202.0=20-=20Public=20Vs=20Private=20Blockchain=20Compar?= =?UTF-8?q?ison=20-Part=207.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md --- ...Vs Private Blockchain Comparison -Part 7.md} | 47 +++++++++++++++---- 1 file changed, 37 insertions(+), 10 deletions(-) rename translated/tech/{20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md => 20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md} (74%) diff --git a/translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md b/translated/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md similarity index 74% rename from translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md rename to translated/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md index eba0bc472f..51ab44b6c5 100644 --- a/translated/tech/20190702 Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7].md +++ b/translated/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md @@ -1,12 +1,22 @@ -# 区块链 2.0:公有链 Vs 私有链(七) +[#]: collector: (lujun9972) +[#]: translator: (zionfuo) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7]) +[#]: via: (https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/) +[#]: author: (editor https://www.ostechnix.com/author/editor/) -![](https://cdn.nlark.com/yuque/0/2019/png/241708/1558488910255-ef5f4381-c3a0-4a43-bb6f-c6890b808d32.png) +区块链 2.0:公有链 Vs 私有链(七) +====== -[区块链 2.0](https://www.ostechnix.com/blockchain-2-0-an-introduction/) 系列的前一篇文章探索了[智能合同的现状](https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/)。这篇文章旨在揭示可以创建的不同类型的区块链。每个协议都用于与众不同的应用程序,并且根据用例的不同,每个应用程序所遵循的协议也不同。现在,让我们比较一下公有链、开源软件与私有链、专有技术。 +![Public vs Private blockchain][1] + +[**区块链 2.0**][2]系列的前一篇文章探索了[**智能合同的现状**][3]。这篇文章旨在揭示可以创建的不同类型的区块链。每个协议都用于与众不同的应用程序,并且根据用例的不同,每个应用程序所遵循的协议也不同。现在,让我们比较一下公有链、开源软件与私有链、专有技术。 正如我们所知,基于区块链的分布式账本的基本三层结构如下: -![图1 – 区块链分布式账本的基本结构](https://cdn.nlark.com/yuque/0/2019/png/241708/1558488910943-95ae93e1-6e34-40e7-bff5-0ffdb384c103.png#align=left&display=inline&height=389&originHeight=389&originWidth=744&size=0&status=done&width=744)](http://www.ostechnix.com/wp-content/uploads/2019/04/blockchain-architecture.png) +![][4] 图1 – 区块链分布式账本的基本结构 这里提到的类型之间的差异主要是因为底层区块链的协议。该协议规定了参与者的规则和参与的方式。 @@ -19,12 +29,12 @@ 大多数区块链要么是公有的,要么是私有的。一般来说,公有链可以被认为是开源软件的等价物,大多数私有链可以被视为源自公有链的专有平台。下图应该会让大多数人明显地看出基本的区别。 -![图2 – 公有链/私有链与开源/专有技术的对比](https://cdn.nlark.com/yuque/0/2019/png/241708/1558488910996-6cd845e3-22d7-4edd-b35e-bee59ffb99f8.png#align=left&display=inline&height=390&originHeight=358&originWidth=684&size=0&status=done&width=746)](http://www.ostechnix.com/wp-content/uploads/2019/04/Public-vs-Private-blockchain-comparison.png) +![][5] 图2 – 公有链/私有链与开源/专有技术的对比 虽然这是最受欢迎的理解。但是这并不是说所有的私有链都是从公有链中衍生出来的。 -## 公有链 +### 公有链 公有链可以被视为是一个开放的平台或网络。任何拥有专业知识和计算资源的人都可以参与其中。这将产生以下影响: @@ -40,7 +50,7 @@ - 开放式参与,使比特币等公有链中的大量参与者,往往会增加对计算设备和能源成本的初始投资。 -## 私有链 +### 私有链 相比之下,私有链是被许可的区块链。含义: @@ -54,7 +64,7 @@ 私有链通常在其协议中没有任何特征。这使得该系统仅与目前使用的大多数基于云的数据库系统一样安全。 -## 智者的观点 +### 智者的观点 需要注意的一点是,它们被命名为 public 或 private (或 open 或 close) 的事实与底层代码库无关。在这两种情况下,平台所基于的代码或文字基础可能是公开的,也可能不是公开的。R3 是一家 DLT (**D**istributed **L**edger **T**echnology) 公司,领导着由 200 多家跨国机构组成的公有财团。他们的目标是在金融和商业领域进一步发展区块链和相关分布式账本技术。Corda 是这一共同努力的产物。R3 将 corda 定义为专门为企业构建的区块链平台。同样的代码库是开源的,鼓励世界各地的开发人员为这个项目做出贡献。然而,考虑到 corda 面临的业务性质和旨在满足的需求,corda 将被归类为许可的封闭区块链平台。这意味着企业可以在部署后选择网络的参与者,并通过使用本机可用的智能合约工具选择这些参与者可以访问的信息类型。 @@ -62,8 +72,25 @@ 阅读本系列中写一篇文章是有关Hyperledger项目的。 -- [**Blockchain 2.0 – An Introduction To Hyperledger Project (HLP)**](https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/) +- [**Blockchain 2.0 – An Introduction To Hyperledger Project (HLP)**][6] 我们正在研究更多有趣的区块链技术话题。敬请期待! +-------------------------------------------------------------------------------- -[https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/](https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/) +via: https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/ + +作者:[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/04/Public-Vs-Private-Blockchain-720x340.png +[2]: https://www.ostechnix.com/blockchain-2-0-an-introduction/ +[3]: https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/ +[4]: http://www.ostechnix.com/wp-content/uploads/2019/04/blockchain-architecture.png +[5]: http://www.ostechnix.com/wp-content/uploads/2019/04/Public-vs-Private-blockchain-comparison.png +[6]: https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/ From b0858b62f1240fd57acd2d99c145b77f02531cde Mon Sep 17 00:00:00 2001 From: LuMing <784315443@qq.com> Date: Tue, 2 Jul 2019 10:22:09 +0800 Subject: [PATCH 50/85] translated --- ...acking down library injections on Linux.md | 139 ------------------ ...acking down library injections on Linux.md | 131 +++++++++++++++++ 2 files changed, 131 insertions(+), 139 deletions(-) delete mode 100644 sources/tech/20190626 Tracking down library injections on Linux.md create mode 100644 translated/tech/20190626 Tracking down library injections on Linux.md diff --git a/sources/tech/20190626 Tracking down library injections on Linux.md b/sources/tech/20190626 Tracking down library injections on Linux.md deleted file mode 100644 index 14b93d7258..0000000000 --- a/sources/tech/20190626 Tracking down library injections on Linux.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (LuuMing) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Tracking down library injections on Linux) -[#]: via: (https://www.networkworld.com/article/3404621/tracking-down-library-injections-on-linux.html) -[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/) - -Tracking down library injections on Linux -====== -Library injections are less common on Linux than they are on Windows, but they're still a problem. Here's a look at how they work and how to identify them. -![Sandra Henry-Stocker][1] - -While not nearly commonly seen on Linux systems, library (shared object files on Linux) injections are still a serious threat. On interviewing Jaime Blasco from AT&T's Alien Labs, I've become more aware of how easily some of these attacks are conducted. - -In this post, I'll cover one method of attack and some ways that it can be detected. I'll also provide some links that will provide more details on both attack methods and detection tools. First, a little background. - -**[ Two-Minute Linux Tips: [Learn how to master a host of Linux commands in these 2-minute video tutorials][2] ]** - -### Shared library vulnerability - -Both DLL and .so files are shared library files that allow code (and sometimes data) to be shared by various processes. Commonly used code might be put into one of these files so that it can be reused rather than rewritten many times over for each process that requires it. This also facilitates management of commonly used code. - -Linux processes often make use of many of these shared libraries. The **ldd** (display shared object dependencies) command can display these for any program file. Here are some examples: - -``` -$ ldd /bin/date - linux-vdso.so.1 (0x00007ffc5f179000) - libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f02bea15000) - /lib64/ld-linux-x86-64.so.2 (0x00007f02bec3a000) -$ ldd /bin/netstat - linux-vdso.so.1 (0x00007ffcb67cd000) - libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f45e5d7b000) - libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f45e5b90000) - libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f45e5b1c000) - libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f45e5b16000) - /lib64/ld-linux-x86-64.so.2 (0x00007f45e5dec000) - libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f45e5af5000) -``` - -The **linux-vdso.so.1** file (which may have a different name on some systems) is one that the kernel automatically maps into the address space of every process. Its job is to find and locate other shared libraries that the process requires. - -One way that this library-loading mechanism is exploited is through the use of an environment variable called **LD_PRELOAD**. As Jaime Blasco explains in his research, "LD_PRELOAD is the easiest and most popular way to load a shared library in a process at startup. This environmental variable can be configured with a path to the shared library to be loaded before any other shared object." - -To illustrate how easily this is done, I created an extremely simple shared library and assigned it to my (formerly non-existent) LD_PRELOAD environment variable. Then I used the **ldd** command to see how this would affect a commonly used Linux command. - -**[ [Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][3] ]** - -``` -$ export LD_PRELOAD=/home/shs/shownum.so -$ ldd /bin/date - linux-vdso.so.1 (0x00007ffe005ce000) - /home/shs/shownum.so (0x00007f1e6b65f000) <== there it is - libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1e6b458000) - /lib64/ld-linux-x86-64.so.2 (0x00007f1e6b682000) -``` - -Note that doing nothing more than assigning my new library to LD_PRELOAD now affects any process that I run. - -Since the libraries specified by the LD_PRELOAD setting are the first to load (following linux-vdso.so.1), those libraries could significantly change a process. They could, for example, redirect system calls to their own resources or make unexpected changes in how the process being run behaves. - -### The osquery tool can detect library injections - -The **osquery** tool (downloadable from [osquery.io][4] is a tool that provides a very unique way of looking at Linux systems. It basically represents the operating system as a high-performance relational database. And, as you probably suspect, that means it can be queried and SQL tables created that provide details on such things as: - - * Running processes - * Loaded kernel modules - * Open network connections - - - -One kernel table that provides information on running processes is called **process_envs**. It provides details on environment variables used by various processes. With a fairly complicated query provided by Jaime Blasco, you can get osquery to identify processes that are using LD_PRELOAD. - -Note that this query pulls data from the **process_envs** table. The attack ID (T1055) is a reference to [Mitre's explanation of the attack method][5]: - -``` -SELECT process_envs.pid as source_process_id, process_envs.key as environment_variable_key, process_envs.value as environment_variable_value, processes.name as source_process, processes.path as file_path, processes.cmdline as source_process_commandline, processes.cwd as current_working_directory, 'T1055' as event_attack_id, 'Process Injection' as event_attack_technique, 'Defense Evasion, Privilege Escalation' as event_attack_tactic FROM process_envs join processes USING (pid) WHERE key = 'LD_PRELOAD'; -``` - -Note that the LD_PRELOAD environment variable is at times used legitimately. Various security monitoring tools, for example, could use it, as might developers while they are troubleshooting, debugging or doing performance analysis. However, its use is still quite uncommon and should be viewed with some suspicion. - -It's also worth noting that osquery can be used interactively or be run as a daemon (osqueryd) for scheduled queries. See the reference at the bottom of this post for more on this. - -You might also be able to locate use of LD_PRELOAD by examining users' environment settings. If LD_PRELOAD is configured in a user account, you might determine that with a command like this (after asssuming the individual's identity): - -``` -$ env | grep PRELOAD -LD_PRELOAD=/home/username/userlib.so -``` - -If you've not previously heard of osquery, don't take it too hard. It's now in the process of becoming a more popular tool. Just last week, in fact, the Linux Foundation announced its intention to support the osquery commmunity with a brand-new [osquery foundation][6]. - -#### Wrap-up - -While library injection remains a serious threat, it's helpful to know that some excellent tools are available to help detect its use on your systems. - -#### Additional resources - -Links to important references and tools: - - * [Hunting for Linux library injection with osquery][7] from AT&T Cybersecurity - * [Linux: How's My Memory?][8] from TrustedSec - * [Download site for osquery][4] - * [osquery schema][9] - * [osqueryd (osquery deamon)][10] - * [Mitre's attack framework][11] - * [New osquery foundation announced][6] - - - -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/3404621/tracking-down-library-injections-on-linux.html - -作者:[Sandra Henry-Stocker][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/Sandra-Henry_Stocker/ -[b]: https://github.com/lujun9972 -[1]: https://images.idgesg.net/images/article/2019/06/dll-injection-100800196-large.jpg -[2]: https://www.youtube.com/playlist?list=PL7D2RMSmRO9J8OTpjFECi8DJiTQdd4hua -[3]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr -[4]: https://osquery.io/ -[5]: https://attack.mitre.org/techniques/T1055/ -[6]: https://www.linuxfoundation.org/press-release/2019/06/the-linux-foundation-announces-intent-to-form-new-foundation-to-support-osquery-community/ -[7]: https://www.alienvault.com/blogs/labs-research/hunting-for-linux-library-injection-with-osquery -[8]: https://www.trustedsec.com/2018/09/linux-hows-my-memory/ -[9]: https://osquery.io/schema/3.3.2 -[10]: https://osquery.readthedocs.io/en/stable/deployment/configuration/#schedule -[11]: https://attack.mitre.org/ -[12]: https://www.facebook.com/NetworkWorld/ -[13]: https://www.linkedin.com/company/network-world diff --git a/translated/tech/20190626 Tracking down library injections on Linux.md b/translated/tech/20190626 Tracking down library injections on Linux.md new file mode 100644 index 0000000000..b747c959bd --- /dev/null +++ b/translated/tech/20190626 Tracking down library injections on Linux.md @@ -0,0 +1,131 @@ +[#]: collector: (lujun9972) +[#]: translator: (LuuMing) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Tracking down library injections on Linux) +[#]: via: (https://www.networkworld.com/article/3404621/tracking-down-library-injections-on-linux.html) +[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/) + +追溯 Linux 上的库注入 +====== +库注入Library injections在 Linux 上不如 Windows 上常见,但它仍然是一个问题。下来看看它们如何工作的,以及如何鉴别它们。 +![Sandra Henry-Stocker][1] + +尽管在 Linux 系统上几乎见不到,但库(Linux 上的共享目标文件)注入仍是一个严峻的威胁。在采访了来自 AT&T 公司 Alien 实验室的 Jaime Blasco 后,我更加意识到了其中一些攻击是多么的易实施。 + +在这篇文章中,我会介绍一种攻击方法和它的几种检测手段。我也会提供一些展示攻击细节的链接和一些检测工具。首先,引入一个小小的背景。 + +### 共享库漏洞 + +DLL 和 .so 文件都是允许代码(有时候是数据)被不同的进程共享的共享库文件。公用的代码可以放进一个文件中使得每个需要它的进程可以重新使用而不是多次被重写。这也促进了对公用代码的管理。 + +Linux 进程经常使用这些共享库。`ldd`(显示共享对象依赖)命令可以为任何程序显示共享库。这里有一些例子: + +``` +$ ldd /bin/date + linux-vdso.so.1 (0x00007ffc5f179000) + libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f02bea15000) + /lib64/ld-linux-x86-64.so.2 (0x00007f02bec3a000) +$ ldd /bin/netstat + linux-vdso.so.1 (0x00007ffcb67cd000) + libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f45e5d7b000) + libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f45e5b90000) + libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f45e5b1c000) + libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f45e5b16000) + /lib64/ld-linux-x86-64.so.2 (0x00007f45e5dec000) + libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f45e5af5000) +``` + +`linux-vdso.so.1` (在一些系统上也许会有不同的名字)是内核自动映射到每个进程地址空间的文件。它的工作是找到并定位进程所需的其他共享库。 + +利用这种库加载机制的一种方法是通过使用 `LD_PRELOAD` 环境变量。正如 Jaime Blasco 在他的研究中所解释的那样,“`LD_PRELOAD` 是最简单且最受欢迎的方法来在进程启动时加载共享库。可以使用共享库的路径配置环境变量,以便在加载其他共享对象之前加载该共享库。” + +为了展示有多简单,我创建了一个极其简单的共享库并且赋值给我的(之前不存在) `LD_PRELOAD` 环境变量。之后我使用 `ldd` 命令查看它对于常用 Linux 命令的影响。 + +``` +$ export LD_PRELOAD=/home/shs/shownum.so +$ ldd /bin/date + linux-vdso.so.1 (0x00007ffe005ce000) + /home/shs/shownum.so (0x00007f1e6b65f000) <== there it is + libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1e6b458000) + /lib64/ld-linux-x86-64.so.2 (0x00007f1e6b682000) +``` + +注意,仅仅将新的库赋给 `LD_PRELOAD` 就影响到了运行的任何程序。 + +通过设置 `LD_PRELOAD` 指定的共享库首先被加载(紧随 linux-vdso.so.1),这些库可以极大程度上改变一个进程。例如,它们可以重定向系统调用到它们自己的资源,或对程序运行的行为方式进行意想不到的更改。 + +### osquery 工具可以检测库注入 + +`osquery` 工具(可以在 [osquery.io][4]下载)提供了一个非常独特的方式来照看 Linux 系统。它基本上将操作系统表示为高性能关系数据库。然后,也许你会猜到,这就意味着它可以用来查询并且生成 SQL 表,该表提供了诸如以下的详细信息: + + * 运行中的进程 + * 加载的内核模块 + * 进行的网络链接 + +一个提供了进程信息的内核表叫做 `process_envs`。它提供了各种进程使用环境变量的详细信息。Jaime Blasco 提供了一个相当复杂的查询,可以使用 `osquery` 标识使用 `LD_PRELOAD` 的进程。 + +注意,这个查询是从 `process_envs` 表中获取数据。攻击 ID(T1055)参考 [Mitre 对攻击方法的解释][5]。 + +``` +SELECT process_envs.pid as source_process_id, process_envs.key as environment_variable_key, process_envs.value as environment_variable_value, processes.name as source_process, processes.path as file_path, processes.cmdline as source_process_commandline, processes.cwd as current_working_directory, 'T1055' as event_attack_id, 'Process Injection' as event_attack_technique, 'Defense Evasion, Privilege Escalation' as event_attack_tactic FROM process_envs join processes USING (pid) WHERE key = 'LD_PRELOAD'; +``` + +注意 `LD_PRELOAD` 环境变量有时是合法使用的。例如,各种安全监控工具可能会使用到它,因为开发人员需要进行故障排除、调试或性能分析。然而,它的使用仍然很少见,应当加以防范。 + +同样值得注意的是 osquery 可以交互使用或是作为定期查询的守护进程去运行。了解更多请查阅文章末尾给出的参考。 + +你也能够通过查看用户的环境设置定位到 `LD_PRELOAD` 的使用。如果 `LD_PRELOAD` 使用用户账户配置,你可以使用这样的命令来查看(在认证了个人身法之后): + +``` +$ env | grep PRELOAD +LD_PRELOAD=/home/username/userlib.so +``` + +如果你之前没有听说过 osquery,别太在意。它正在成为一个更受欢迎的工具。事实上就在上周,Linux 基金会宣布用新的 [osquery 基金会][6]支持 osquery 社区。 + +#### 总结 + +尽管库注入是一个严重的威胁,但了解一些优秀的工具来帮助你检测它是否存在是很有帮助的。 + +#### 扩展阅读 + +重要的参考和工具的链接: + + * [用 osquery 追寻 Linux 库注入][7],AT&T 网络安全 + * [Linux:我的内存怎么了?][8],TrustedSec + * [osquery 下载网站][4] + * [osquery 关系模式][9] + * [osqueryd(osquery 守护进程)][10] + * [Mitre 的攻击框架][11] + * [新的 osquery 基金会宣布][6] + +在 [Facebook][12] 和 [LinkedIn][13] 上加入网络会议参与讨论。 + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3404621/tracking-down-library-injections-on-linux.html + +作者:[Sandra Henry-Stocker][a] +选题:[lujun9972][b] +译者:[LuuMing](https://github.com/LuuMing) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.networkworld.com/author/Sandra-Henry_Stocker/ +[b]: https://github.com/lujun9972 +[1]: https://images.idgesg.net/images/article/2019/06/dll-injection-100800196-large.jpg +[2]: https://www.youtube.com/playlist?list=PL7D2RMSmRO9J8OTpjFECi8DJiTQdd4hua +[3]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr +[4]: https://osquery.io/ +[5]: https://attack.mitre.org/techniques/T1055/ +[6]: https://www.linuxfoundation.org/press-release/2019/06/the-linux-foundation-announces-intent-to-form-new-foundation-to-support-osquery-community/ +[7]: https://www.alienvault.com/blogs/labs-research/hunting-for-linux-library-injection-with-osquery +[8]: https://www.trustedsec.com/2018/09/linux-hows-my-memory/ +[9]: https://osquery.io/schema/3.3.2 +[10]: https://osquery.readthedocs.io/en/stable/deployment/configuration/#schedule +[11]: https://attack.mitre.org/ +[12]: https://www.facebook.com/NetworkWorld/ +[13]: https://www.linkedin.com/company/network-world From 93f82ff8ea26adbaee6f76b4bfb288f0660fa0af Mon Sep 17 00:00:00 2001 From: zionfuo Date: Tue, 2 Jul 2019 10:46:41 +0800 Subject: [PATCH 51/85] =?UTF-8?q?=E7=BF=BB=E8=AF=91=EF=BC=9A20190505=20Blo?= =?UTF-8?q?ckchain=202.0=20-=20Public=20Vs=20Private=20Blockchain=20Compar?= =?UTF-8?q?ison=20-Part=207.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s Private Blockchain Comparison -Part 7.md | 106 ------------------ 1 file changed, 106 deletions(-) delete mode 100644 sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md diff --git a/sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md b/sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md deleted file mode 100644 index a954e8514e..0000000000 --- a/sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7]) -[#]: via: (https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/) -[#]: author: (editor https://www.ostechnix.com/author/editor/) - -Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7] -====== - -![Public vs Private blockchain][1] - -The previous part of the [**Blockchain 2.0**][2] series explored the [**the state of Smart contracts**][3] now. This post intends to throw some light on the different types of blockchains that can be created. Each of these are used for vastly different applications and depending on the use cases, the protocol followed by each of these differ. Now let us go ahead and learn about **Public vs Private blockchain comparison** with Open source and proprietary technology. - -The fundamental three-layer structure of a blockchain based distributed ledger as we know is as follows: - -![][4] - -Figure 1 – Fundamental structure of Blockchain-based ledgers - -The differences between the types mentioned here is attributable primarily to the protocol that rests on the underlying blockchain. The protocol dictates rules for the participants and the behavior of the blockchain in response to the said participation. - -Remember to keep the following things in mind while reading through this article: - - * Platforms such as these are always created to solve a use-case requirement. There is no one direction that the technology should take that is best. Blockchains for instance have tremendous applications and some of these might require dropping features that seem significant in other settings. **Decentralized storage** is a major example in this regard. - * Blockchains are basically database systems keeping track of information by timestamping and organizing data in the form of blocks. Creators of such blockchains can choose who has the right to make these blocks and perform alterations. - * Blockchains can be “centralized” as well, and participation in varying extents can be limited to those who this “central authority” deems eligible. - - - -Most blockchains are either **public** or **private**. Broadly speaking, public blockchains can be considered as being the equivalent of open source software and most private blockchains can be seen as proprietary platforms deriving from the public ones. The figure below should make the basic difference obvious to most of you. - -![][5] - -Figure 2 – Public vs Private blockchain comparison with Open source and Proprietary Technology - -This is not to say that all private blockchains are derived from open public ones. The most popular ones however usually are though. - -### Public Blockchains - -A public blockchain can be considered as a **permission-less platform** or **network**. Anyone with the knowhow and computing resources can participate in it. This will have the following implications: - - * Anyone can join and participate in a public blockchain network. All the “participant” needs is a stable internet connection along with computing resources. - * Participation will include reading, writing, verifying, and providing consensus during transactions. An example for participating individuals would be **Bitcoin miners**. In exchange for participating in the network the miners are paid back in Bitcoins in this case. - * The platform is decentralized completely and fully redundant. - * Because of the decentralized nature, no one entity has complete control over the data recorded in the ledger. To validate a block all (or most) participants need to vet the data. - * This means that once information is verified and recorded, it cannot be altered easily. Even if it is, its impossible to not leave marks. - * The identity of participants remains anonymous by design in platforms such as **BITCOIN** and **LITECOIN**. These platforms by design aim for protecting and securing user identities. This is primarily a feature provided by the overlying protocol stack. - * Examples for public blockchain networks are **BITCOIN** , **LITECOIN** , **ETHEREUM** etc. - * Extensive decentralizations mean that gaining consensus on transactions might take a while compared to what is typically possible over blockchain ledger networks and throughput can be a challenge for large enterprises aiming for pushing a very high number of transactions every instant. - * The open participation and often the high number of such participants in open chains such as bitcoin add up to considerable initial investments in computing equipment and energy costs. - - - -### Private Blockchain - -In contrast, a private blockchain is a **permissioned blockchain**. Meaning: - - * Permission to participate in the network is restricted and is presided over by the owner or institution overseeing the network. Meaning even though an individual will be able to store data and transact (send and receive payments for example), the validation and storage of these transactions will be done only by select participants. - * Participation even once permission is given by the central authority will be limited by terms. For instance, in case of a private blockchain network run by a financial institution, not every customer will have access to the entire blockchain ledger, and even among those with the permission, not everyone will be able to access everything. Permissions to access select services will be given by the central figure in this case. This is often referred to as **“channeling”**. - * Such systems have significantly larger throughput capabilities and also showcase much faster transaction speeds compared to their public counterparts because a block of information only needs to be validated by a select few. - * Security by design is something the public blockchains are renowned for. They achieve this -by: - * Anonymizing participants, - * Distributed & redundant but encrypted storage on multiple nodes, - * Mass consensus required for creating and altering data. - - - -Private blockchains usually don’t feature any of these in their protocol. This makes the system only as secure as most cloud-based database systems currently in use. - -### A note for the wise - -An important point to note is this, the fact that they’re named public or private (or open or closed) has nothing to do with the underlying code base. The code or the literal foundations on which the platforms are based on may or may not be publicly available and or developed in either of these cases. **R3** is a **DLT** ( **D** istributed **L** edger **T** echnology) company that leads a public consortium of over 200 multinational institutions. Their aim is to further development of blockchain and related distributed ledger technology in the domain of finance and commerce. **Corda** is the product of this joint effort. R3 defines corda as a blockchain platform that is built specially for businesses. The codebase for the same is open source and developers all over the world are encouraged to contribute to the project. However, given its business facing nature and the needs it is meant to address, corda would be categorized as a permissioned closed blockchain platform. Meaning businesses can choose the participants of the network once it is deployed and choose the kind of information these participants can access through the use of natively available smart contract tools. - -While it is a reality that public platforms like Bitcoin and Ethereum are responsible for the widespread awareness and development going on in the space, it can still be argued that private blockchains designed for specific use cases in enterprise or business settings is what will lead monetary investments in the short run. These are the platforms most of us will see implemented the near future in practical ways. - -Read the next guide about Hyperledger project in this series. - - * [**Blockchain 2.0 – An Introduction To Hyperledger Project (HLP)**][6] - - - -We are working on many interesting topics on Blockchain technology. Stay tuned! - --------------------------------------------------------------------------------- - -via: https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/ - -作者:[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/04/Public-Vs-Private-Blockchain-720x340.png -[2]: https://www.ostechnix.com/blockchain-2-0-an-introduction/ -[3]: https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/ -[4]: http://www.ostechnix.com/wp-content/uploads/2019/04/blockchain-architecture.png -[5]: http://www.ostechnix.com/wp-content/uploads/2019/04/Public-vs-Private-blockchain-comparison.png -[6]: https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/ From d0bdd710411a579644da8d633e02d7c06b5d84fa Mon Sep 17 00:00:00 2001 From: chen ni Date: Tue, 2 Jul 2019 10:57:07 +0800 Subject: [PATCH 52/85] =?UTF-8?q?=E7=94=B3=E9=A2=86=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...190701 Ubuntu or Fedora- Which One Should You Use and Why.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md index 9b6b7727f3..e369693ea7 100644 --- a/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md +++ b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chen-ni) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 366b47982ce9eec4387d0808494ba7f5620bdce8 Mon Sep 17 00:00:00 2001 From: "qfzy1233@163.com" Date: Tue, 2 Jul 2019 11:14:36 +0800 Subject: [PATCH 53/85] Update 20190618 A beginner-s guide to Linux permissions.md --- ...A beginner-s guide to Linux permissions.md | 54 +++++++++---------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/sources/tech/20190618 A beginner-s guide to Linux permissions.md b/sources/tech/20190618 A beginner-s guide to Linux permissions.md index 5de5c372cb..e37ba4877e 100644 --- a/sources/tech/20190618 A beginner-s guide to Linux permissions.md +++ b/sources/tech/20190618 A beginner-s guide to Linux permissions.md @@ -7,84 +7,82 @@ [#]: via: (https://opensource.com/article/19/6/understanding-linux-permissions) [#]: author: (Bryant Son https://opensource.com/users/brson/users/greg-p/users/tj) -A beginner's guide to Linux permissions +Linux 权限入门指南 ====== -Linux security permissions designate who can do what with a file or -directory. +Linux安全权限能够指定谁可以对文件或目录执行什么操作。 ![Hand putting a Linux file folder into a drawer][1] -One of the main benefits of Linux systems is that they are known to be less prone to security vulnerabilities and exploits than other systems. Linux definitely gives users more flexibility and granular controls over its file systems' security permissions. This may imply that it's critical for Linux users to understand security permissions. That isn't necessarily true, but it's still wise for beginning users to understand the basics of Linux permissions. +与其他系统相比而言 Linux 系统的众多优点中最为主要一个便是Linux 系统有着更少的安全漏洞和被攻击的隐患。Linux无疑为用户提供了更为灵活和精细化的文件系统安全权限控制。这可能意味着Linux用户理解安全权限是至关重要的。虽然这并不一定是必要的,但是对于初学者来说,理解Linux权限的基本知识仍是一个明智之选。 -### View Linux security permissions +### 查看 Linux 安全权限 -To start learning about Linux permissions, imagine we have a newly created directory called **PermissionDemo**. Run **cd** inside the directory and use the **ls -l** command to view the Linux security permissions. If you want to sort them by time modified, add the **-t** option. +在开始 Linux 权限的相关学习之前,假设我们新建了一个名为 **PermissionDemo**的目录。使用 **cd** 命令进入这个目录,然后使用 **ls -l** 命令查看 Linux 安全管理权限信息。如果你想以时间为序排列,加上 **-t** 选项 ``` `ls -lt` ``` -Since there are no files inside this new directory, this command returns nothing. +因为这一目录下没有文件,所以这一命令执行不会返回结果。 ![No output from ls -l command][2] -To learn more about the **ls** option, access its man page by entering **man ls** on the command line. +要了解关于 **ls** 命令的更多信息,请通过在命令行中输入 **man ls** 来查看命令手册。 ![ls man page][3] -Now, let's create two files: **cat.txt** and **dog.txt** with empty content; this is easy to do using the **touch** command. Let's also create an empty directory called **Pets** with the **mkdir** command. We can use the **ls -l** command again to see the permissions for these new files. + 现在,让我们创建两个名为 **cat.txt** 和 **dog.txt** 的空白文件;这一步使用 **touch** 命令将更为简便。然后继续使用 **mkdir** 命令创建一个名为 **Pets** 的空目录。我们可以再次使用**ls -l**命令查看这些新文件的权限。 ![Creating new files and directory][4] -We need to pay attention to two sections of output from this command. +我们需要留意这个命令输出结果的两个部分。 -### Who has permission? +### 谁拥有权限? -The first thing to examine indicates _who_ has permission to access the file/directory. Note the section highlighted in the red box below. The first column refers to the _user_ who has access, while the second column refers to the _group_ that has access. +首先要注意的是 _who_ 具有访问文件/目录的权限。请注意下面红色框中突出显示的部分。第一列是指具有访问权限的 _user(用户)_ ,而第二列是指具有访问权限的 _group(组)_ 。 ![Output from -ls command][5] -There are three main types of users: **user** , **group** ; and **other** (essentially neither a user nor a group). There is one more: **all** , which means practically everyone. +用户的类型主要有三种:**user**、**group**;和**other**(本质上既不是用户也不是组)。还有一个**all**,意思是几乎所有人。 ![User types][6] -Because we are using **root** as the user, we can access any file or directory because **root** is the superuser. However, this is generally not the case, and you will probably be restricted to your username. A list of all users is stored in the **/etc/passwd** file. +由于我们使用 **root** 作为当前用户,所以我们可以访问任何文件或目录,因为 **root** 是超级用户。然而,通常情况并非如此,您可能会被限定使用您的普通用户登录。所有的用户都存储在 **/etc/passwd** 文件中。 ![/etc/passwd file][7] -Groups are maintained in the **/etc/group** file. + “组“的相关信息保存在 **/etc/group** 文件中。 ![/etc/passwd file][8] -### What permissions do they have? +### 他们有什么权限? -The other section of the output from **ls -l** that we need to pay attention to relates to enforcing permissions. Above, we confirmed that the owner and group permissions for the files dog.txt and cat.txt and the directory Pets we created belong to the **root** account. We can use that information about who owns what to enforce permissions for the different user ownership types, as highlighted in the red box below. +我们需要注意的是 **ls -l** 命令输出结果的另一部分与执行权限有关。以上,我们查看了创建的dog.txt 和 cat.txt文件以及Pets目录的所有者和组权限都属于 **root** 用户。我们可以通过这一信息了解到不同用户组所拥有的相应权限,如下面的红色框中的标示。 ![Enforcing permissions for different user ownership types][9] -We can dissect each line into five bits of information. The first part indicates whether it is a file or a directory; files are labeled with a **-** (hyphen), and directories are labeled with **d**. The next three parts refer to permissions for **user** , **group** , and **other** , respectively. The last part is a flag for the [**access-control list**][10] (ACL), a list of permissions for an object. +我们可以把每一行分解成五部分。第一部分标志着它是文件还是目录;文件用 **-** (连字符)标记,目录用 **d** 来标记。接下来的三个部分分别是**user**、**group**和**other**的对应权限。最后一部分是[**access-control list**][10] (ACL)(访问控制列表)的标志,是记录着特定用户或者用户组对该文件的操作权限的列表。 ![Different Linux permissions][11] -Linux permission levels can be identified with letters or numbers. There are three privilege types: - - * **read** : r or 4 - * **write:** w or 2 - * **executable:** e or 1 - +Linux 的权限级别可以用字母或数字标识。有三种权限类型: + * **read(读):** r or 4 + * **write(写):** w or 2 + * **executable(可执行):** x or 1 +(LCTT译注:原文此处对应的字母标示 **x** 误写为 **e** 已更正) ![Privilege types][12] -The presence of each letter symbol ( **r** , **w** , or **x** ) means that the permission exists, while **-** indicates it does not. In the example below, the file is readable and writeable by the owner, only readable if the user belongs to the group, and readable and executable by anyone else. Converted to numeric notation, this would be 645 (see the image below for an explanation of how this is calculated). +每个字母符号(**r**、**w**或**x**)表示有该项权限,而 **-** 表示无该项权限。在下面的示例中,文件的所有者可读可写,用户组成员仅可读,其他人可读可执行。转换成数字表示法,对应的是645(如何计算,请参见下图的图示)。 ![Permission type example][13] -Here are a few more examples: +以下是一些示例: ![Permission type examples][14] -Test your knowledge by going through the following exercises. +完成下面的测试,检查你是否掌握了权限管理相关的知识。 ![Permission type examples][15] @@ -94,7 +92,7 @@ via: https://opensource.com/article/19/6/understanding-linux-permissions 作者:[Bryant Son][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[译者ID](https://github.com/qfzy1233) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 4940b92cfaabdcaba2f6027f50dfee1602456bb1 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Tue, 2 Jul 2019 11:20:18 +0800 Subject: [PATCH 54/85] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20190618 A beginner-s guide to Linux permissions.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20190618 A beginner-s guide to Linux permissions.md (100%) diff --git a/sources/tech/20190618 A beginner-s guide to Linux permissions.md b/translated/tech/20190618 A beginner-s guide to Linux permissions.md similarity index 100% rename from sources/tech/20190618 A beginner-s guide to Linux permissions.md rename to translated/tech/20190618 A beginner-s guide to Linux permissions.md From df46a53ce9f18da3fae98793577471413dfcb412 Mon Sep 17 00:00:00 2001 From: guevaraya Date: Tue, 2 Jul 2019 12:23:31 +0800 Subject: [PATCH 55/85] translating by guevaraya MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 申请翻译 --- sources/tech/20190628 How to Install and Use R on Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20190628 How to Install and Use R on Ubuntu.md b/sources/tech/20190628 How to Install and Use R on Ubuntu.md index 84699fbc8e..abbbeef6a2 100644 --- a/sources/tech/20190628 How to Install and Use R on Ubuntu.md +++ b/sources/tech/20190628 How to Install and Use R on Ubuntu.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (guevaraya) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 7f65d0171584d59cfb3d2177aee7fc3ddc7ed8b3 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Tue, 2 Jul 2019 14:32:29 +0800 Subject: [PATCH 56/85] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md index c7dc93c70a..42676f7a14 100644 --- a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md +++ b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md @@ -1,3 +1,4 @@ +qfzy1233 is translating [#]: collector: (lujun9972) [#]: translator: ( ) [#]: reviewer: ( ) From 951079d49d74956784a6e040dc503aad129f3cae Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Tue, 2 Jul 2019 14:34:13 +0800 Subject: [PATCH 57/85] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Zorin OS Becomes Even More Awesome With Zorin 15 Release.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md index 42676f7a14..f5342383bc 100644 --- a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md +++ b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md @@ -1,6 +1,5 @@ -qfzy1233 is translating [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (qfzy1233) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From a9c765250b384a1d779858e6937a11bb4749d7ae Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Tue, 2 Jul 2019 14:48:17 +0800 Subject: [PATCH 58/85] Update 20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md --- ... Zorin OS Becomes Even More Awesome With Zorin 15 Release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md index f5342383bc..c7dc93c70a 100644 --- a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md +++ b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: (qfzy1233) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 1f8574f16ba00f79bda2d4e317d6b84ef45b87d9 Mon Sep 17 00:00:00 2001 From: "qfzy1233@163.com" Date: Tue, 2 Jul 2019 14:55:39 +0800 Subject: [PATCH 59/85] =?UTF-8?q?Revert=20"=E7=BF=BB=E8=AF=91=E5=AE=8C?= =?UTF-8?q?=E6=88=90"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4940b92cfaabdcaba2f6027f50dfee1602456bb1. --- .../tech/20190618 A beginner-s guide to Linux permissions.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated => sources}/tech/20190618 A beginner-s guide to Linux permissions.md (100%) diff --git a/translated/tech/20190618 A beginner-s guide to Linux permissions.md b/sources/tech/20190618 A beginner-s guide to Linux permissions.md similarity index 100% rename from translated/tech/20190618 A beginner-s guide to Linux permissions.md rename to sources/tech/20190618 A beginner-s guide to Linux permissions.md From 4098f2e740d924b6b8b7253f2b08ee2744ab7646 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Tue, 2 Jul 2019 15:09:17 +0800 Subject: [PATCH 60/85] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20190618 A beginner-s guide to Linux permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {sources => translated}/tech/20190618 A beginner-s guide to Linux permissions.md (99%) diff --git a/sources/tech/20190618 A beginner-s guide to Linux permissions.md b/translated/tech/20190618 A beginner-s guide to Linux permissions.md similarity index 99% rename from sources/tech/20190618 A beginner-s guide to Linux permissions.md rename to translated/tech/20190618 A beginner-s guide to Linux permissions.md index e37ba4877e..29154e0709 100644 --- a/sources/tech/20190618 A beginner-s guide to Linux permissions.md +++ b/translated/tech/20190618 A beginner-s guide to Linux permissions.md @@ -92,7 +92,7 @@ via: https://opensource.com/article/19/6/understanding-linux-permissions 作者:[Bryant Son][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/qfzy1233) +译者:[qfzy1233](https://github.com/qfzy1233) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8455d8d0433510b06a5e47d73accdb1b8344ff4a Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Jul 2019 00:52:10 +0800 Subject: [PATCH 61/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190703=20How=20to?= =?UTF-8?q?=20Manually=20Install=20Security=20Updates=20on=20Debian/Ubuntu?= =?UTF-8?q?=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190703 How to Manually Install Security Updates on Debian-Ubuntu.md --- ...stall Security Updates on Debian-Ubuntu.md | 251 ++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 sources/tech/20190703 How to Manually Install Security Updates on Debian-Ubuntu.md diff --git a/sources/tech/20190703 How to Manually Install Security Updates on Debian-Ubuntu.md b/sources/tech/20190703 How to Manually Install Security Updates on Debian-Ubuntu.md new file mode 100644 index 0000000000..4dff50d061 --- /dev/null +++ b/sources/tech/20190703 How to Manually Install Security Updates on Debian-Ubuntu.md @@ -0,0 +1,251 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (How to Manually Install Security Updates on Debian/Ubuntu?) +[#]: via: (https://www.2daygeek.com/manually-install-security-updates-ubuntu-debian/) +[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/) + +How to Manually Install Security Updates on Debian/Ubuntu? +====== + +Installing a package in Linux from command line is a simple task. + +In a single command or combining of multiple commands could make you to complete your task easily. + +The same can be done for security updates as well. + +In this tutorial, we will show you how to check available security update and install them on Debian based systems such as Ubuntu, LinuxMint, etc,. + +It can be done using three methods. All these methods are described in this article in details. + +As a Linux administrator, you should keep your system up-to-date, that makes your system more secure. It protects your system against unwanted attack. + +If you are not able to patch entire system with all updates due to some application dependency. At-least, you should install only security patches to make your system 100% compliance. + +### How to Install unattended-upgrades package in Debian/Ubuntu? + +By default `unattended-upgrades` package should be installed on your system. But in case if it’s not installed use the following command to install it. + +Use **[APT-GET Command][1]** or **[APT Command][2]** to install unattended-upgrades package. + +``` +$ sudo apt-get install unattended-upgrades +or +$ sudo apt install unattended-upgrades +``` + +### Method-1: How to Check if any Security Updates are available in Debian/Ubuntu? + +It’s always a good practice to check list of available security updates before performing the patch installation. It will give you the list of packages that are going to be updated in your system. + +**What’s dry run?** Most of the Linux commands have a dry run option, which stimulate the actual output but nothing will be downloaded or installed. + +To do so, you need to add `--dry-run` option with unattended-upgrades command. + +``` +$ sudo unattended-upgrade --dry-run -d + +Initial blacklisted packages: +Initial whitelisted packages: +Starting unattended upgrades script +Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic +Using (^linux-image-[0-9]+\.[0-9\.]+-.*|^linux-headers-[0-9]+\.[0-9\.]+-.*|^linux-image-extra-[0-9]+\.[0-9\.]+-.*|^linux-modules-[0-9]+\.[0-9\.]+-.*|^linux-modules-extra-[0-9]+\.[0-9\.]+-.*|^linux-signed-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-headers-[0-9]+\.[0-9\.]+-.*|^gnumach-image-[0-9]+\.[0-9\.]+-.*|^.*-modules-[0-9]+\.[0-9\.]+-.*|^.*-kernel-[0-9]+\.[0-9\.]+-.*|^linux-backports-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-tools-[0-9]+\.[0-9\.]+-.*|^linux-cloud-tools-[0-9]+\.[0-9\.]+-.*) regexp to find kernel packages +Using (^linux-image-4\.15\.0\-51\-generic$|^linux-headers-4\.15\.0\-51\-generic$|^linux-image-extra-4\.15\.0\-51\-generic$|^linux-modules-4\.15\.0\-51\-generic$|^linux-modules-extra-4\.15\.0\-51\-generic$|^linux-signed-image-4\.15\.0\-51\-generic$|^kfreebsd-image-4\.15\.0\-51\-generic$|^kfreebsd-headers-4\.15\.0\-51\-generic$|^gnumach-image-4\.15\.0\-51\-generic$|^.*-modules-4\.15\.0\-51\-generic$|^.*-kernel-4\.15\.0\-51\-generic$|^linux-backports-modules-.*-4\.15\.0\-51\-generic$|^linux-modules-.*-4\.15\.0\-51\-generic$|^linux-tools-4\.15\.0\-51\-generic$|^linux-cloud-tools-4\.15\.0\-51\-generic$) regexp to find running kernel packages +Checking: apt ([]) +adjusting candidate version: apt=1.6.6ubuntu0.1 +Checking: apt-utils ([]) +adjusting candidate version: apt-utils=1.6.6ubuntu0.1 +Checking: bash ([]) +. +. +Checking: xxd ([, ]) +pkgs that look like they should be upgraded: binutils +binutils-common +binutils-x86-64-linux-gnu +cpp +cpp-7 +dbus +dbus-user-session +dbus-x11 +firefox +firefox-locale-en +g++ +g++-7 +gcc +gcc-7 +gcc-7-base +gcc-8-base +libasan4 +libatomic1 +libbinutils +libcc1-0 +libcilkrts5 +libdbus-1-3 +libdbus-1-dev +libgcc-7-dev +libgcc1 +libgfortran4 +libgomp1 +libitm1 +liblsan0 +libmpx2 +libquadmath0 +libstdc++-7-dev +libstdc++6 +libtsan0 +libubsan0 +vim-common +vim-tiny +xxd +``` + +If the above command output says **“No packages found that can be upgraded unattended and no pending auto-removals”** in the Terminal, this implies your System is up-to-date. + +### How to Install available Security Updates in Debian/Ubuntu? + +If your got any package updates in the above command output. Then run the following command to install them. + +``` +$ sudo unattended-upgrade -d +``` + +Alternatively this can be done from apt-get command. It’s bit tricky. However, i would suggest users to go with first option. + +### Method-2: How to Check if any Security Updates are available in Debian/Ubuntu Using apt-get Command? + +Run the following command to check list of available security updates in your Debian/Ubuntu system + +``` +$ sudo apt-get -s dist-upgrade | grep "^Inst" | grep -i securi + +Inst libquadmath0 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libitm1 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst gcc-8-base [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libmpx2:amd64 libgcc1:amd64 libtsan0:amd64 liblsan0:amd64 libgomp1:amd64 libatomic1:amd64 libcc1-0:amd64 libstdc++6:amd64 ] +Inst libgcc1 [1:8.2.0-1ubuntu2~18.04] (1:8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libmpx2:amd64 libtsan0:amd64 liblsan0:amd64 libgomp1:amd64 libatomic1:amd64 libcc1-0:amd64 libstdc++6:amd64 ] +Inst libmpx2 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libtsan0:amd64 liblsan0:amd64 libgomp1:amd64 libatomic1:amd64 libcc1-0:amd64 libstdc++6:amd64 ] +Inst liblsan0 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libtsan0:amd64 libgomp1:amd64 libatomic1:amd64 libcc1-0:amd64 libstdc++6:amd64 ] +Inst libtsan0 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libgomp1:amd64 libatomic1:amd64 libcc1-0:amd64 libstdc++6:amd64 ] +Inst libcc1-0 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libgomp1:amd64 libatomic1:amd64 libstdc++6:amd64 ] +Inst libatomic1 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libgomp1:amd64 libstdc++6:amd64 ] +Inst libgomp1 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libstdc++6:amd64 ] +Inst libstdc++6 [8.2.0-1ubuntu2~18.04] (8.3.0-6ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst libdbus-1-dev [1.12.2-1ubuntu1] (1.12.2-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst dbus-user-session [1.12.2-1ubuntu1] (1.12.2-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst dbus-x11 [1.12.2-1ubuntu1] (1.12.2-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst dbus [1.12.2-1ubuntu1] (1.12.2-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libdbus-1-3 [1.12.2-1ubuntu1] (1.12.2-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst xxd [2:8.0.1453-1ubuntu1] (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst vim-tiny [2:8.0.1453-1ubuntu1] (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst vim-common [2:8.0.1453-1ubuntu1] (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [all]) +Inst binutils-x86-64-linux-gnu [2.30-21ubuntu1~18.04] (2.30-21ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [binutils:amd64 ] +Inst binutils-common [2.30-21ubuntu1~18.04] (2.30-21ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [binutils:amd64 libbinutils:amd64 ] +Inst binutils [2.30-21ubuntu1~18.04] (2.30-21ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [libbinutils:amd64 ] +Inst libbinutils [2.30-21ubuntu1~18.04] (2.30-21ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst libasan4 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libubsan0 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libcilkrts5 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst g++-7 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst gcc-7 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libstdc++-7-dev [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libgcc-7-dev [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst libgfortran4 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst cpp-7 [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) [] +Inst gcc-7-base [7.3.0-27ubuntu1~18.04] (7.4.0-1ubuntu1~18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst cpp [4:7.3.0-3ubuntu2.1] (4:7.4.0-1ubuntu2.3 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst firefox [67.0.1+build1-0ubuntu0.18.04.1] (67.0.2+build2-0ubuntu0.18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst firefox-locale-en [67.0.1+build1-0ubuntu0.18.04.1] (67.0.2+build2-0ubuntu0.18.04.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst gcc [4:7.3.0-3ubuntu2.1] (4:7.4.0-1ubuntu2.3 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +Inst g++ [4:7.3.0-3ubuntu2.1] (4:7.4.0-1ubuntu2.3 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64]) +``` + +### How to Install available Security Updates in Debian/Ubuntu Using apt-get Command? + +If you found any package updates in the above output. Finally run the following command to install them. + +``` +$ sudo apt-get -s dist-upgrade | grep "^Inst" | grep -i securi | awk -F " " {'print $2'} | xargs apt-get install +``` + +Alternatively this can be done from apt command. It’s bit tricky. However, i would suggest users to go with first option. + +### Method-3: How to Check if any Security Updates are available in Debian/Ubuntu Using apt Command? + +Run the following command to check list of available security updates in your Debian/Ubuntu system + +``` +$ sudo apt list --upgradable | grep -e "-security" + +binutils/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.2 amd64 [upgradable from: 2.30-21ubuntu1~18.04] +binutils-common/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.2 amd64 [upgradable from: 2.30-21ubuntu1~18.04] +binutils-x86-64-linux-gnu/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.2 amd64 [upgradable from: 2.30-21ubuntu1~18.04] +cpp/bionic-updates,bionic-security 4:7.4.0-1ubuntu2.3 amd64 [upgradable from: 4:7.3.0-3ubuntu2.1] +cpp-7/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +dbus/bionic-updates,bionic-security 1.12.2-1ubuntu1.1 amd64 [upgradable from: 1.12.2-1ubuntu1] +dbus-user-session/bionic-updates,bionic-security 1.12.2-1ubuntu1.1 amd64 [upgradable from: 1.12.2-1ubuntu1] +dbus-x11/bionic-updates,bionic-security 1.12.2-1ubuntu1.1 amd64 [upgradable from: 1.12.2-1ubuntu1] +firefox/bionic-updates,bionic-security 67.0.2+build2-0ubuntu0.18.04.1 amd64 [upgradable from: 67.0.1+build1-0ubuntu0.18.04.1] +firefox-locale-en/bionic-updates,bionic-security 67.0.2+build2-0ubuntu0.18.04.1 amd64 [upgradable from: 67.0.1+build1-0ubuntu0.18.04.1] +g++/bionic-updates,bionic-security 4:7.4.0-1ubuntu2.3 amd64 [upgradable from: 4:7.3.0-3ubuntu2.1] +g++-7/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +gcc/bionic-updates,bionic-security 4:7.4.0-1ubuntu2.3 amd64 [upgradable from: 4:7.3.0-3ubuntu2.1] +gcc-7/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +gcc-7-base/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +gcc-8-base/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libasan4/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +libatomic1/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libbinutils/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.2 amd64 [upgradable from: 2.30-21ubuntu1~18.04] +libcc1-0/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libcilkrts5/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +libdbus-1-3/bionic-updates,bionic-security 1.12.2-1ubuntu1.1 amd64 [upgradable from: 1.12.2-1ubuntu1] +libdbus-1-dev/bionic-updates,bionic-security 1.12.2-1ubuntu1.1 amd64 [upgradable from: 1.12.2-1ubuntu1] +libgcc-7-dev/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +libgcc1/bionic-updates,bionic-security 1:8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 1:8.2.0-1ubuntu2~18.04] +libgfortran4/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +libgomp1/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libitm1/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +liblsan0/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libmpx2/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libquadmath0/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libstdc++-7-dev/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +libstdc++6/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libtsan0/bionic-updates,bionic-security 8.3.0-6ubuntu1~18.04.1 amd64 [upgradable from: 8.2.0-1ubuntu2~18.04] +libubsan0/bionic-updates,bionic-security 7.4.0-1ubuntu1~18.04.1 amd64 [upgradable from: 7.3.0-27ubuntu1~18.04] +vim-common/bionic-updates,bionic-updates,bionic-security,bionic-security 2:8.0.1453-1ubuntu1.1 all [upgradable from: 2:8.0.1453-1ubuntu1] +vim-tiny/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.1 amd64 [upgradable from: 2:8.0.1453-1ubuntu1] +xxd/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.1 amd64 [upgradable from: 2:8.0.1453-1ubuntu1] +``` + +### How to Install available Security Updates in Debian/Ubuntu Using apt Command? + +If you found any package updates in the above output. Finally run the following command to install them. + +``` +$ sudo apt list --upgradable | grep -e "-security" | awk -F "/" '{print $1}' | xargs apt install +``` + +Also, the following file will give you the packages update count. + +``` +$ sudo cat /var/lib/update-notifier/updates-available + +190 packages can be updated. +39 updates are security updates. +``` + +-------------------------------------------------------------------------------- + +via: https://www.2daygeek.com/manually-install-security-updates-ubuntu-debian/ + +作者:[Magesh Maruthamuthu][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.2daygeek.com/author/magesh/ +[b]: https://github.com/lujun9972 +[1]: https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/ +[2]: https://www.2daygeek.com/apt-command-examples-manage-packages-debian-ubuntu-systems/ From d7c6f580e4a2ef4fab43c372f6802a821e083ecd Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Jul 2019 00:52:51 +0800 Subject: [PATCH 62/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190702=20Jupyter?= =?UTF-8?q?=20and=20data=20science=20in=20Fedora?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190702 Jupyter and data science in Fedora.md --- ...0702 Jupyter and data science in Fedora.md | 246 ++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 sources/tech/20190702 Jupyter and data science in Fedora.md diff --git a/sources/tech/20190702 Jupyter and data science in Fedora.md b/sources/tech/20190702 Jupyter and data science in Fedora.md new file mode 100644 index 0000000000..7126376617 --- /dev/null +++ b/sources/tech/20190702 Jupyter and data science in Fedora.md @@ -0,0 +1,246 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Jupyter and data science in Fedora) +[#]: via: (https://fedoramagazine.org/jupyter-and-data-science-in-fedora/) +[#]: author: (Avi Alkalay https://fedoramagazine.org/author/aviram/) + +Jupyter and data science in Fedora +====== + +![][1] + +In the past, kings and leaders used oracles and magicians to help them predict the future — or at least get some good advice due to their supposed power to perceive hidden information. Nowadays, we live in a society obsessed with quantifying everything. So we have data scientists to do this job. + +Data scientists use statistical models, numerical techniques and advanced algorithms that didn’t come from statistical disciplines, along with the data that exist on databases, to find, to infer, to predict data that doesn’t exist yet. Sometimes this data is about the future. That is why we do a lot of predictive analytics and prescriptive analytics. + +Here are some questions to which data scientists help find answers: + + 1. Who are the students with high propensity to abandon the class? For each one, what are the reasons for leaving? + 2. Which house has a price above or below the fair price? What is the fair price for a certain house? + 3. What are the hidden groups that my clients classify themselves? + 4. Which future problems this premature child will develop? + 5. How many calls will I get in my call center tomorrow 11:43 AM? + 6. My bank should or should not lend money to this customer? + + + +Note how the answer to all these question is not sitting in any database waiting to be queried. These are all data that still doesn’t exist and has to be calculated. That is part of the job we data scientists do. + +Throughout this article you’ll learn how to prepare a Fedora system as a Data Scientist’s development environment and also a production system. Most of the basic software is RPM-packaged, but the most advanced parts can only be installed, nowadays, with Python’s _pip_ tool. + +### Jupyter — the IDE + +Most modern data scientists use Python. And an important part of their work is EDA (exploratory data analysis). EDA is a manual and interactive process that retrieves data, explores its features, searches for correlations, and uses plotted graphics to visualize and understand how data is shaped and prototypes predictive models. + +Jupyter is a web application perfect for this task. Jupyter works with Notebooks, documents that mix rich text including beautifully rendered math formulas (thanks to [mathjax][2]), blocks of code and code output, including graphics. + +Notebook files have extension _.ipynb_, which means Interactive Python Notebook. + +#### Setting up and running Jupyter + +First, install essential packages for Jupyter ([using][3] _[sudo][3]_): + +``` +$ sudo dnf install python3-notebook mathjax sscg +``` + +You might want to install additional and optional Python modules commonly used by data scientists: + +``` +$ sudo dnf install python3-seaborn python3-lxml python3-basemap python3-scikit-image python3-scikit-learn python3-sympy python3-dask+dataframe python3-nltk +``` + +Set a password to log into Notebook web interface and avoid those long tokens. Run the following command anywhere on your terminal: + +``` +$ mkdir -p $HOME/.jupyter +$ jupyter notebook password +``` + +Now, type a password for yourself. This will create the file _$HOME/.jupyter/jupyter_notebook_config.json_ with your encrypted password. + +Next, prepare for SSLby generating a self-signed HTTPS certificate for Jupyter’s web server: + +``` +$ cd $HOME/.jupyter; sscg +``` + +Finish configuring Jupyter by editing your _$HOME/.jupyter/jupyter_notebook_config.json_ file. Make it look like this: + +``` +{ + "NotebookApp": { + "password": "sha1:abf58...87b", + "ip": "*", + "allow_origin": "*", + "allow_remote_access": true, + "open_browser": false, + "websocket_compression_options": {}, + "certfile": "/home/aviram/.jupyter/service.pem", + "keyfile": "/home/aviram/.jupyter/service-key.pem", + "notebook_dir": "/home/aviram/Notebooks" + } +} +``` + +The parts in red must be changed to match your folders. Parts in blue were already there after you created your password. Parts in green are the crypto-related files generated by _sscg_. + +Create a folder for your notebook files, as configured in the _notebook_dir_ setting above: + +``` +$ mkdir $HOME/Notebooks +``` + +Now you are all set. Just run Jupyter Notebook from anywhere on your system by typing: + +``` +$ jupyter notebook +``` + +Or add this line to your _$HOME/.bashrc_ file to create a shortcut command called _jn_: + +``` +alias jn='jupyter notebook' +``` + +After running the command _jn_, access __ from any browser on the network to see the Jupyter user interface. You’ll need to use the password you set up earlier. Start typing some Python code and markup text. This is how it looks: + +![Jupyter with a simple notebook][4] + +In addition to the IPython environment, you’ll also get a web-based Unix terminal provided by _terminado_. Some people might find this useful, while others find this insecure. You can disable this feature in the config file. + +### JupyterLab — the next generation of Jupyter + +JupyterLab is the next generation of Jupyter, with a better interface and more control over your workspace. It’s currently not RPM-packaged for Fedora at the time of writing, but you can use _pip_ to get it installed easily: + +``` +$ pip3 install jupyterlab --user +$ jupyter serverextension enable --py jupyterlab +``` + +Then run your regular _jupiter notebook_ command or _jn_ alias. JupyterLab will be accessible from __**. + +### Tools used by data scientists + +In this section you can get to know some of these tools, and how to install them. Unless noted otherwise, the module is already packaged for Fedora and was installed as prerequisites for previous components. + +#### **Numpy** + +_Numpy_ is an advanced and C-optimized math library designed to work with large in-memory datasets. It provides advanced multidimensional matrix support and operations, including math functions as log(), exp(), trigonometry etc. + +#### Pandas + +In this author’s opinion, Python is THE platform for data science mostly because of Pandas. Built on top of numpy, Pandas makes easy the work of preparing and displaying data. You can think of it as a no-UI spreadsheet, but ready to work with much larger datasets. Pandas helps with data retrieval from a SQL database, CSV or other types of files, columns and rows manipulation, data filtering and, to some extent, data visualization with matplotlib. + +#### Matplotlib + +Matplotlib is a library to plot 2D and 3D data. It has great support for notations in graphics, labels and overlays + +![matplotlib pair of graphics showing a cost function searching its optimal value through a gradient descent algorithm][5] + +#### Seaborn + +Built on top of matplotlib, Seaborn’s graphics are optimized for a more statistical comprehension of data. It automatically displays regression lines or Gauss curve approximations of plotted data. + +![Linear regression visualised with SeaBorn][6] + +#### [StatsModels][7] + +StatsModels provides algorithms for statistical and econometrics data analysis such as linear and logistic regressions. Statsmodel is also home for the classical family of [time series algorithms][8] known as ARIMA. + +![Normalized number of passengers across time \(blue\) and ARIMA-predicted number of passengers \(red\)][9] + +#### Scikit-learn + +The central piece of the machine-learning ecosystem, [scikit][10] provides predictor algorithms for [regression][11] (Elasticnet, Gradient Boosting, Random Forest etc) and [classification][11] and clustering (K-means, DBSCAN etc). It features a very well designed API. Scikit also has classes for advanced data manipulation, dataset split into train and test parts, dimensionality reduction and data pipeline preparation. + +#### XGBoost + +XGBoost is the most advanced regressor and classifier used nowadays. It’s not part of scikit-learn, but it adheres to scikit’s API. [XGBoost][12] is not packaged for Fedora and should be installed with pip. [XGBoost can be accelerated with your nVidia GPU][13], but not through its _pip_ package. You can get this if you compile it yourself against CUDA. Get it with: + +``` +$ pip3 install xgboost --user +``` + +#### Imbalanced Learn + +[imbalanced-learn][14] provides ways for under-sampling and over-sampling data. It is useful in fraud detection scenarios where known fraud data is very small when compared to non-fraud data. In these cases data augmentation is needed for the known fraud data, to make it more relevant to train predictors. Install it with _pip_: + +``` +$ pip3 install imblearn --user +``` + +#### NLTK + +The [Natural Language toolkit][15], or NLTK, helps you work with human language data for the purpose of building chatbots (just to cite an example). + +#### SHAP + +Machine learning algorithms are very good on predicting, but aren’t good at explaining why they made a prediction. [SHAP][16] solves that, by analyzing trained models. + +![Where SHAP fits into the data analysis process][17] + +Install it with _pip_: + +``` +$ pip3 install shap --user +``` + +#### [Keras][18] + +Keras is a library for deep learning and neural networks. Install it with _pip_: + +``` +$ sudo dnf install python3-h5py +$ pip3 install keras --user +``` + +#### [TensorFlow][19] + +TensorFlow is a popular neural networks builder. Install it with _pip_: + +``` +$ pip3 install tensorflow --user +``` + +* * * + +_Photo courtesy of [FolsomNatural][20] on [Flickr][21] (CC BY-SA 2.0)._ + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/jupyter-and-data-science-in-fedora/ + +作者:[Avi Alkalay][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/aviram/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2019/06/jupyter-816x345.jpg +[2]: http://mathjax.org +[3]: https://fedoramagazine.org/howto-use-sudo/ +[4]: https://avi.alkalay.net/articlefiles/2018/07/jupyter-fedora.png +[5]: https://fedoramagazine.org/wp-content/uploads/2019/06/gradient-descent-cost-function-optimization.png +[6]: https://seaborn.pydata.org/_images/regression_marginals.png +[7]: https://www.statsmodels.org/ +[8]: https://www.statsmodels.org/stable/examples/index.html#stats +[9]: https://fedoramagazine.org/wp-content/uploads/2019/06/time-series.png +[10]: https://scikit-learn.org/stable/ +[11]: https://scikit-learn.org/stable/supervised_learning.html#supervised-learning +[12]: https://xgboost.ai +[13]: https://xgboost.readthedocs.io/en/latest/gpu/index.html +[14]: https://imbalanced-learn.readthedocs.io +[15]: https://www.nltk.org +[16]: https://github.com/slundberg/shap +[17]: https://raw.githubusercontent.com/slundberg/shap/master/docs/artwork/shap_diagram.png +[18]: https://keras.io +[19]: https://www.tensorflow.org +[20]: https://www.flickr.com/photos/87249144@N08/ +[21]: https://www.flickr.com/photos/87249144@N08/45871861611/ From e28cdd627e93f24bff680bee41598808f1cc586d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Jul 2019 00:54:38 +0800 Subject: [PATCH 63/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190702=20Make=20L?= =?UTF-8?q?inux=20stronger=20with=20firewalls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190702 Make Linux stronger with firewalls.md --- ...0702 Make Linux stronger with firewalls.md | 276 ++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100644 sources/tech/20190702 Make Linux stronger with firewalls.md diff --git a/sources/tech/20190702 Make Linux stronger with firewalls.md b/sources/tech/20190702 Make Linux stronger with firewalls.md new file mode 100644 index 0000000000..d558f16931 --- /dev/null +++ b/sources/tech/20190702 Make Linux stronger with firewalls.md @@ -0,0 +1,276 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Make Linux stronger with firewalls) +[#]: via: (https://opensource.com/article/19/7/make-linux-stronger-firewalls) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) + +Make Linux stronger with firewalls +====== +Learn how firewalls work and which settings to tweak for better Linux +security. +![People working together to build ][1] + +Everyone's heard of firewalls, even if only as a plot device in a TV cybercrime drama. Many people also know that their computer is (likely) running a firewall, but fewer people understand how to take control of their firewall when necessary. + +Firewalls block unwanted network traffic, but different networks have different threat levels. For instance, if you're at home, you probably trust the other computers and devices on your network a lot more than when you're out at the local café using public WiFi. You can hope your computer differentiates between a trusted network and an untrusted one, or you can learn to manage, or at least verify, your security settings yourself. + +### How firewalls work + +Communication between devices on a network happens through gateways called _ports_. Port, in this context, doesn't mean a physical connection like a USB port or an HDMI port. In network lingo, a port is an entirely virtual concept representing pathways for a specific type of data to either arrive at or depart from a computer. This system could have been called anything, like "connections" or "doorways," but they were named ports at least [as early as 1981][2], and that's the name in use today. The point is, there's nothing special about any port; they're just a way to designate an address where data transference may happen. + +Back in 1972, [a list of port numbers][3] (then called "sockets") was published, and this has since evolved into a set of well-known standard port numbers that help manage specific kinds of traffic. For instance, you access ports 80 and 443 on a daily basis when you visit a website, because most everyone on the internet has agreed, implicitly or explicitly, that data is transferred from web servers over those ports. You can test this theory by opening a web browser and navigating to a website with a nonstandard port appended to the URL. For instance, if you navigate to **example.com:42**, your request is denied because example.com does not serve a website at port 42. + +![Navigating to a nonstandard port produces an error][4] + +If you revisit the same website at port 80, you get a website, as expected. You can specify port 80 with **:80** at the end of the URL, but because port 80 is the standard port for HTTP traffic, your web browser assumes port 80 by default. + +When a computer, like a web server, expects traffic at a specific port, it's acceptable (and necessary) to have the port open for traffic. The danger is leaving ports open that you have no reason to expect traffic on, and that's exactly what a firewall is for. + +### Install firewalld + +There are many interfaces for firewall configuration. This article covers [**firewalld**][5], which integrates with Network Manager on the desktop and **firewall-cmd** in the terminal. Many Linux distributions ship with these tools installed. If yours doesn't, you can either take this article as general advice for firewall management and apply it to what you use, or you can install **firewalld**. + +On Ubuntu, for instance, you must enable the **universe** repository, deactivate the default **ufw** firewall, and then install **firewalld**: + + +``` +$ sudo systemctl disable ufw +$ sudo add-apt-repository universe +$ sudo apt install firewalld +``` + +Fedora, CentOS, RHEL, OpenSUSE, and many others include **firewalld** by default. + +Regardless of your distribution, for a firewall to be effective, it must be active and set to be loaded at boot. The less you have to think about firewall maintenance, the better. + + +``` +`$ sudo systemctl enable --now firewalld` +``` + +### Choose your zone with Network Manager + +You probably connect to many different networks every day. You're on one network at work, another at the café, and yet another at home. Your computer can detect which network you use more frequently than others, but it doesn't know which you trust. + +A firewall _zone_ contains presets deciding what ports to open and close. Using zones, you can choose a policy that makes the most sense for the network you're currently on. + +To see a list of available zones, open the Network Manager Connection Editor, found in your Applications menu, or with the **nm-connection-editor &** command. + +![Network Manager Connection Editor][6] + +From the list of network connections, double-click on your current network. + +In the network configuration window that appears, click the General tab. + +In the General panel, click the drop-down menu next to Firewall Zone for a list of all available zones. + +![Firewall zones][7] + +You can get this same list with this terminal command: + + +``` +`$ sudo firewall-cmd --get-zones` +``` + +The zone titles indicate what their designers had in mind when creating them, but you can get the specifics of any zone with this terminal command: + + +``` +$ sudo firewall-cmd --zone work --list-all +work +  target: default +  icmp-block-inversion: no +  interfaces: +  sources: +  services: ssh dhcpv6-client +  ports: +  protocols: +  [...] +``` + +In this example, the **work** zone is configured to permit SSH and DHCPv6-client incoming traffic but drops any other incoming traffic not explicitly requested by the user. (In other words, the **work** zone doesn't block HTTP response traffic when you visit a website, but it _does_ deny an HTTP request on your port 80.) + +View each zone to get familiar with the traffic each one allows. The most common ones are: + + * **Work:** Use this one when on a network you mostly trust. SSH, DHCPv6, and mDNS are permitted, and you can add more as needed. This zone is meant to be a starting point for a custom work environment based on your daily office requirements. + * **Public:** For networks you do not trust. This zone is the same as the work zone, but presumably, you would not add the same exceptions as your work zone. + * **Drop:** All incoming connections are dropped with no response given. This is as close to a stealth mode as you can get without shutting off networking entirely because only outgoing network connections are possible (even a casual port scanner could detect your computer from outgoing traffic, though, so don't mistake this zone for a cloaking device). This is arguably the safest zone when on public WiFi, and definitely the best when you have reason to believe a network is hostile. + * **Block:** All incoming connections are rejected with a message declaring that the requested port is prohibited. Only network connections you initiate are possible. This is a "friendly" version of the drop zone because, even though no port is open for incoming traffic, a port verbosely declines an uninitiated connection. + * **Home:** Use this when you trust other computers on the network. Only selected incoming connections are accepted, and you can add more as needed. + * **Internal:** Similar to the work zone, this is intended for internal networks where you mostly trust the other computers. You can open more ports and services as needed but still maintain a different rule set than you have on your work zone. + * **Trusted:** All network connections are accepted. Good for troubleshooting or on networks you absolutely trust. + + + +### Assigning a zone to a network + +You can assign a zone to any network connection you make. Furthermore, you can assign a different zone to each network interface (Ethernet cable, WiFi, and so on) that attaches to each network. + +Select the zone you want and click the Save button to commit the change. + +![Setting a new zone][8] + +The easiest way to get into the habit of assigning a zone to a network interface is to tend to the networks you use most often. Assign the home zone to your home network, the work zone to your work network, and the public network to your favorite library or café network. + +Once you have assigned a zone to all your usual networks, make an effort to assign a zone to the next new network you join, whether it's a new café or your mate's home network. Assigning zones is the best way to reinforce your own awareness that networks are not all equal and that you're not any more secure than anybody else just because you run Linux. + +### Default zone + +Rather than prompting you for a zone every time you join a new network, firewalld assigns any unknown network a default zone. Open a terminal and type this command to get your default zone: + + +``` +$ sudo firewall-cmd --get-default +public +``` + +In this example, the public zone is the default. It's expected that you will keep the public zone highly restrictive, so it's a pretty safe zone to assign unknown networks. However, you can set your own default instead. + +For instance, if you're more paranoid than most, or if you know that you frequent networks you have reason to distrust, you can assign a highly restrictive zone as default: + + +``` +$ sudo firewall-cmd --set-default-zone drop +success +$ sudo firewall-cmd --get-default +drop +``` + +Now any new network you join will be subject to the drop zone rules unless you manually change it to something less restrictive. + +### Customizing zones by opening ports and services + +Firewalld's developers don't intend for their zone definitions to satisfy the needs of all the different networks and levels of trust in existence. They're just starting points for you to use and customize. + +You don't have to know much about firewalls to be able to open and close ports based on the kinds of network activity you know you generate. + +#### Predefined services + +The simplest way to add permissions to your firewall is to add a predefined service. Strictly speaking, there's no such thing as a "service" as far as your firewall knows, because firewalls understand port numbers and protocol types. However, firewalld provides collections of ports and protocols based on standards and conventions. + +For example, if you're a web developer and want to open your computer up on your local network so your colleagues can see the website you're building, you would add the **http** and **https** services. If you're a gamer and you're running the open source [murmur][9] voice-chat server for your guild, then you'd add the **murmur** service. There are many other services available, which you can view with this command: + + +``` +$ sudo firewall-cmd --get-services +amanda-client amanda-k5-client bacula bacula-client \ +bgp bitcoin bitcoin-rpc ceph cfengine condor-collector \ +ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch \ +freeipa-ldap freeipa-ldaps ftp [...] +``` + +If you see a service you need, add it to your current firewall configuration, for example: + + +``` +`$ sudo firewall-cmd --add-service murmur` +``` + +This command opens all the ports and protocols needed for a particular service _within your default zone_, but only until you reboot your computer or restart your firewall. To make your changes permanent, use the **\--permanent** flag: + + +``` +`$ sudo firewall-cmd --add-service murmur --permanent` +``` + +You can also issue the command for a zone other than your default: + + +``` +`$ sudo firewall-cmd --add-service murmur --permanent --zone home` +``` + +#### Ports + +Sometimes you want to allow traffic for something that just isn't defined by firewalld's services. Maybe you're setting up a nonstandard port for a common service or you need to open an arbitrary port. + +For example, maybe you're running the open source [virtual tabletop][10] software [MapTool][11]. Since you're running the MapTool server and there's no industry standard governing which port MapTool runs on, you can decide what port it uses and then "poke a hole" in your firewall to allow traffic on that port. + +The process is basically the same as for services: + + +``` +`$ sudo firewall-cmd --add-port 51234/tcp` +``` + +This command opens port 51234 to incoming TCP connections _in your default zone_, but only until you reboot your computer or restart your firewall. To make your changes permanent, use the **\--permanent** flag: + + +``` +`$ sudo firewall-cmd --add-port 51234/tcp --permanent` +``` + +You can also issue the command for a zone other than your default: + + +``` +`$ sudo firewall-cmd --add-port 51234/tcp --permanent --zone home` +``` + +Allowing traffic through your computer is different from letting traffic through your router"s firewall. Your router probably has a different interface for its own embeded firewall (though the principle is the same), which is outside the scope of this article. + +### Removing ports and services + +If you decide a service or a port is no longer needed, you can restart your firewall to clear your changes, unless you use the **\--permanent** flag. + +If you made your changes permanent, use the **\--remove-port** or **\--remove-service** flag: + + +``` +`$ sudo firewall-cmd --remove-port 51234/tcp --permanent` +``` + +You can remove ports and services from a zone other than your default zone by specifying a zone in your command: + + +``` +`$ sudo firewall-cmd --remove-service murmur --permanent --zone home` +``` + +### Custom zones + +You can use and abuse the default zones provided by firewalld, but you also have the freedom to create your own. For instance, if it makes sense for you to have a zone specific to gaming, then you can create one and switch over to it only while gaming. + +To create a new, empty zone, create a new zone called **game** and reload the firewall rules so that your new zone becomes active: + + +``` +$ sudo firewall-cmd --new-zone game --permanent +success +$ sudo firewall-cmd --reload +``` + +Once it's created and active, you can customize it with all the services and ports you need to have open for game night. + +### Diligence + +Start thinking about your firewall strategy today. Start slow, and build up some sane defaults that make sense for you. It may take time before you make it a habit to think about your firewall and understand which network services you use, but with a little exploration, you can strengthen your Linux workstation no matter what your environment. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/make-linux-stronger-firewalls + +作者:[Seth Kenlon][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/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BUSINESS_buildtogether.png?itok=9Tvz64K5 (People working together to build ) +[2]: https://tools.ietf.org/html/rfc793 +[3]: https://tools.ietf.org/html/rfc433 +[4]: https://opensource.com/sites/default/files/uploads/web-port-nonstandard.png (Navigating to a nonstandard port produces an error) +[5]: https://firewalld.org/ +[6]: https://opensource.com/sites/default/files/uploads/nm-connection-editor.png (Network Manager Connection Editor) +[7]: https://opensource.com/sites/default/files/uploads/nm-zone.png (Firewall zones) +[8]: https://opensource.com/sites/default/files/uploads/nm-set.png (Setting a new zone) +[9]: https://www.mumble.com/ +[10]: https://opensource.com/article/18/5/maptool +[11]: https://github.com/RPTools From b6bdd979ee2755510d2a2ca3f4f3678d25abb636 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Jul 2019 00:55:47 +0800 Subject: [PATCH 64/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190702=20What=20m?= =?UTF-8?q?akes=20a=20good=20code=20review=20in=20DevOps=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190702 What makes a good code review in DevOps.md --- ...What makes a good code review in DevOps.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sources/tech/20190702 What makes a good code review in DevOps.md diff --git a/sources/tech/20190702 What makes a good code review in DevOps.md b/sources/tech/20190702 What makes a good code review in DevOps.md new file mode 100644 index 0000000000..0979cf09b1 --- /dev/null +++ b/sources/tech/20190702 What makes a good code review in DevOps.md @@ -0,0 +1,84 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (What makes a good code review in DevOps?) +[#]: via: (https://opensource.com/article/19/7/code-reviews-devops) +[#]: author: (Patrick Housley https://opensource.com/users/patrickhousley/users/juliegund/users/ghaff) + +What makes a good code review in DevOps? +====== +Well-run code reviews balance the freedom to innovate rapidly with code +quality and security. +![Pair programming][1] + +Improving the software development lifecycle, the speed we deliver software to customers, and the quality of that software are all great premises of [DevOps][2]. They are goals that the tools and techniques prescribed by the DevOps movement attempt to achieve. As a developer, I feel freer to make changes rapidly, not just to source code, but also to infrastructure and configuration code. As a DevOps practitioner, my goal is to balance that freedom with quality and security. How? One tool we can use is code reviews. + +Code reviews are not a new concept. They are often used as a manual gate-check for code changes before merging them to the trunk branch. This helps ensure quality and security by preventing developers from working in vacuums. It can also help ensure the entire team is aware of what's going on in their project. Much like anything in technology, there are many different ways to implement code reviews, and there can be some confusion around how to operate code reviews and what the goals of a code review are. Let's start by looking at who on the team should be doing the reviewing in code reviews. + +### Who should be reviewing code? + +It is easy to assume that the more senior developers on the team should be the ones reviewing code before it makes it to the trunk branch. That is only partly true. Everyone on the team should feel empowered and obligated to take time out of their day to review the code going into the repositories they work in most often. Why? It's all about perspective, and the more people we have engaging in code review, the more perspectives we can take advantage of. + +A developer's perspective when reviewing code is derived from a culmination of their years of experience as well as their _unique_ experiences. Unique experiences help diversify the team and can be a source of new, innovative solutions. Having more years of experience does not necessarily equate to having a diverse set of unique experiences. How does this fit into the junior-senior developer dynamic as applied to code reviews? Before we get too deep into the title war, let's first define what we mean by "code review." + +### Code review is a conversation + +Take a moment and think about what a code review means to you. Is it a manual gate to ensure the quality of the code making it to your trunk branch? Is it a chance to have the more senior developers, or maybe the developers more familiar with the area of the code base, review the code? These would all be good answers, but there is a better one. + +_Code reviews are a chance for you, the committer, and your peers to have a conversation about the changes being made before they are merged to the trunk branch._ + +Our goal should be simply to talk about the changes being made. It sounds simple, but, like any digital conversation, we simple humans always try to imply tone to the words we read. I have seen junior developers take seemingly innocuous questioning in a code review as a call to action. Instead of engaging in conversation, they immediately change the code. I think we all can say we have seen more senior developers use poor wording that implies improper tone in their code reviews and conversations around code changes. Many open source communities are trying to address this through Code of Conduct declarations. I have been privy to a solution for this issue that I still use today and recommend to all developers of every level: comment tagging. + +#### Comment tagging + +My previous example of a junior developer taking a question as a call to action doesn't come from thin air. I noticed this behavior some years ago when I would make comments or ask questions on pull requests as part of a code review. It really upset me at the time, because I was trying to have an honest conversation, not trying to imply the developer did anything wrong or needed to change the code. Luckily, I had great leadership that was able to help find the problem and come up with a solution. That solution was to start tagging our comments in the pull requests using the tags: _comment_, _question_, _blocker_, and _recommended_. It would look something like: + +> [comment] I think you meant to use the forEach prototype method here instead of map. +> [blocker] This constructor is too large and should be broken up into individual, specialized methods. +> [question] Is this method needed in this class with the merging of feature X? Feature x makes this a global utility method. +> [recommended] You could add a test case here to check for negative outcomes. This would help ensure future code changes do not break our expectations. + +It may seem simple, maybe even extreme, but it really helped spark conversations in our code reviews. Junior developers felt more empowered to have and stick to their opinions in the face of questioning from more senior developers. More importantly, they also felt empowered to question and comment in code reviews for changes made by more senior developers. + +### Leave your title at the door + +Through our discussion of who should be doing the reviewing in code reviews and what a code review is, one thing should be clear: the junior and senior titles mean very little. In fact, they can detract from the overall goal of code reviews, as was the case in the experience I described above. The concept is very simple: _No matter how senior you are, you can still make mistakes, and no matter how junior you are, you can still provide valuable and innovative solutions._ + +We will leave the comparison of what makes a junior and senior developer for another article. For now, let's get back to our code review conversation. We have covered the what and why of code reviews, but just as important is the when. When should you be doing code review? How often? + +### Code-review continuously + +I have seen code reviews performed in many ways over the past few years. Not long ago, I was on a team that did weekly, one-hour meetings for code review. Today, my team operates code reviews on an ongoing basis as part of our pull request process. In case you are not familiar with them, pull requests are a process commonly found in [Git][3] tooling like GitHub and GitLab where a developer makes a formal request to have the changes in their branch merged into another branch. + +How you and your team operate may be different, and you should always strive to find what works best for your team and project. My team and those around me use code reviews for two purposes: to formalize the code review process and to block merges to trunk based on automated code-quality checks. While we are having our conversation about the code changes in the pull request, our continuous integration pipeline is operating in the background to perform a sanity build of the project, run tests, linting, and static code analysis. The results are provided back to the pull request and help influence our code review. + +How often do we have these code reviews and pull requests? As often as possible. Complying with lean development practices indicates we make small commits and merges often. If that's the case, multiple pull requests happen daily, and many conversations happen continuously. This can become a little overwhelming but, if the changes being made are small, theoretically the conversations are also small, short, and sweet. + +### Put it all together + +Team dynamics will always play a substantial role in how practices like code reviews are performed. I typically like to start my day off by seeing what pull requests are open and what discussions are happening. It provides a nice, gradual start to my day, and I can catch up on what people are working on. I will typically go back throughout the day, as I take breaks from what I am working on, to check for more pull requests. This works great for me and might work well for you, so I encourage you to give it a try. + +No matter how you decide to conduct your code reviews, I typically discourage the one hour a week meeting. First, it can work counter to the lean development practice of committing small and often. Developers may wait to do any merging or open pull requests until code review. By that time, the code is not fresh in their mind, and things in the project may have changed that affect the changes they are making. Second, if your team is more than two developers, an hour meeting will probably not be long enough to adequately review all the changes from all the team members that need to go in. This could lead to changes being merged without code review, and that could be detrimental to code quality and security. + +Instead of using that one hour to dig through code changes, I find it better to talk higher-level. It's always good for a team to come together and discuss how they are architecting their code, how their features may affect or tie into each other, and what blockers they might be having. All in all, communication is key, and continuous code review should work to drive more communication. + +Is DevOps fundamentally about changing culture in an IT organization? That seemingly simple... + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/code-reviews-devops + +作者:[Patrick Housley][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/patrickhousley/users/juliegund/users/ghaff +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/collab-team-pair-programming-code-keyboard.png?itok=kBeRTFL1 (Pair programming) +[2]: https://opensource.com/resources/devops +[3]: https://opensource.com/resources/what-is-git From 65b7b632c20fc57aa8f2dff476c961b6bf5e412f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Jul 2019 00:56:48 +0800 Subject: [PATCH 65/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190702=20One=20CI?= =?UTF-8?q?/CD=20pipeline=20per=20product=20to=20rule=20them=20all?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190702 One CI-CD pipeline per product to rule them all.md --- ...D pipeline per product to rule them all.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/tech/20190702 One CI-CD pipeline per product to rule them all.md diff --git a/sources/tech/20190702 One CI-CD pipeline per product to rule them all.md b/sources/tech/20190702 One CI-CD pipeline per product to rule them all.md new file mode 100644 index 0000000000..2a7fcb31de --- /dev/null +++ b/sources/tech/20190702 One CI-CD pipeline per product to rule them all.md @@ -0,0 +1,136 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (One CI/CD pipeline per product to rule them all) +[#]: via: (https://opensource.com/article/19/7/cicd-pipeline-rule-them-all) +[#]: author: (Willy-Peter Schaub https://opensource.com/users/wpschaub/users/bclaster/users/matt-micene/users/barkerd427) + +One CI/CD pipeline per product to rule them all +====== +Is the idea of a unified continuous integration and delivery pipeline a +pipe dream? +![An intersection of pipes.][1] + +When I joined the cloud ops team, responsible for cloud operations and engineering process streamlining, at WorkSafeBC, I shared my dream for one instrumented pipeline, with one continuous integration build and continuous deliveries for every product. + +According to Lukas Klose, [flow][2] (within the context of software engineering) is "the state of when a system produces value at a steady and predictable rate." I think it is one of the greatest challenges and opportunities, especially in the complex domain of emergent solutions. Strive towards a continuous and incremental delivery model with consistent, efficient, and quality solutions, building the right things and delighting our users. Find ways to break down our systems into smaller pieces that are valuable on their own, enabling teams to deliver value incrementally. This requires a change of mindset for both business and engineering. + +### Continuous integration and delivery (CI/CD) pipeline + +The CI/CD pipeline is a DevOps practice for delivering code changes more often, consistently, and reliably. It enables agile teams to increase _deployment frequency_ and decrease _lead time for change_, _change-failure rate_, and _mean time to recovery_ key performance indicators (KPIs), thereby improving _quality_ and delivering _value_ faster. The only prerequisites are a solid development process, a mindset for quality and accountability for features from ideation to deprecation, and a comprehensive pipeline (as illustrated below). + +![Prerequisites for a solid development process][3] + +It streamlines the engineering process and products to stabilize infrastructure environments; optimize flow; and create consistent, repeatable, and automated tasks. This enables us to turn complex tasks into complicated tasks, as outlined by Dave Snowden's [Cynefin Sensemaking][4] model, reducing maintenance costs and increasing quality and reliability. + +Part of streamlining our flow is to minimize waste for the [wasteful practice types][5] Muri (overloaded), Mura (variation), and Muda (waste). + + * **Muri:** avoid over-engineering, features that do not link to business value, and excessive documentation + * **Mura:** improve approval and validation processes (e.g., security signoffs); drive the [shift-left][6] initiative to push unit testing, security vulnerability scanning, and code quality inspection; and improve risk assessment + * **Muda:** avoid waste such as technical debt, bugs, and upfront, detailed documentation + + + +It appears that 80% of the focus and intention is on products that provide an integrated and collaborative engineering system that can take an idea and plan, develop, test, and monitor your solutions. However, a successful transformation and engineering system is only 5% about products, 15% about process, and 80% about people. + +There are many products at our disposal. For example, Azure DevOps offers rich support for continuous integration (CI), continuous delivery (CD), extensibility, and integration with open source and commercial off-the-shelve (COTS) software as a service (SaaS) solutions such as Stryker, SonarQube, WhiteSource, Jenkins, and Octopus. For engineers, it is always a temptation to focus on products, but remember that they are only 5% of our journey. + +![5% about products, 15% about process, 80% about people][7] + +The biggest challenge is breaking down a process based on decades of rules, regulations, and frustrating areas of comfort: "_It is how we have always done it; why change?_"  + +The friction between people in development and operation results in a variety of fragmented, duplicated, and incessant integration and delivery pipelines. Development wants access to everything, to iterate continuously, to enable users, and to release continuously and fast. Operations wants to lock down everything to protect the business and users and drive quality. This inadvertently and often entails processes and governance that are hard to automate, which results in slower-than-expected release cycles. + +Let us explore the pipeline with snippets from a recent whiteboard discussion. + +The variation of pipelines is difficult and costly to support; the inconsistency of versioning and traceability complicates live site incidents, and continuous streamlining of the development process and pipelines is a challenge. + +![Improving quality and visibility of pipelines][8] + +I advocate a few principles that enable one universal pipeline per product: + + * Automate everything automatable + * Build once + * Maintain continuous integration and delivery + * Maintain continuous streamlining and improvement + * Maintain one build definition + * Maintain one release pipeline definition + * Scan for vulnerabilities early and often, and _fail fast_ + * Test early and often, and _fail fast_ + * Maintain traceability and observability of releases + + + +If I poke the hornet's nest, however, the most important principle is to _keep it simple_. If you cannot explain the reason (_what_, _why_) and the process (_how_) of your pipelines, you do not understand your engineering process. Most of us are not looking for the best, ultramodern, and revolutionary pipeline—we need one that is functional, valuable, and an enabler for engineering. Tackle the 80%—the culture, people, and their mindset—first. Ask your CI/CD knights in shining armor, with their TLA (two/three-lettered acronym) symbols on their shield, to join the might of practical and empirical engineering. + +### Unified pipeline + +Let us walk through one of our design practice whiteboard sessions. + +![CI build/CD release pipeline][9] + +Define one CI/CD pipeline with one build definition per application that is used to trigger _pull-request pre-merge validation_ and _continuous integration_ builds. Generate a _release_ build with debug information and upload to the [Symbol Server][10]. ****This enables developers to debug locally and remotely in production without having to worry which build and symbols they need to load—the symbol server performs that magic for us. + +![Breaking down the CI build pipeline][11] + +Perform as many validations as possible in the build—_shift left_—allowing feature teams to fail fast, continuously raise the overall product quality, and include invaluable evidence for the reviewers with every pull request. Do you prefer a pull request with a gazillion commits? Or a pull request with a couple of commits and supporting evidence such as security vulnerabilities, test coverage, code quality, and [Stryker][12] mutant remnants? Personally, I vote for the latter. + +![Breaking down the CD release pipeline][13] + +Do not use build transformation to generate multiple, environment-specific builds. Create one build and perform release-time _transformation_, _tokenization_, and/or XML/JSON _value replacement_. In other words, _shift-right_ the environment-specific configuration. + +![Shift-right the environment-specific configuration][14] + +Securely store release configuration data and make it available to both Dev and Ops teams based on the level of _trust_ and _sensitivity_ of the data. Use the open source Key Manager, Azure Key Vault, AWS Key Management Service, or one of many other products—remember, there are many hammers in your toolkit! + +![Dev-QA-production pipeline][15] + +Use _groups_ instead of _users_ to move approver management from multiple stages across multiple pipelines to simple group membership. + +![Move approver management to simple group membership][16] + +Instead of duplicating pipelines to give teams access to their _areas of interest_, create one pipeline and grant access to _specific stages_ of the delivery environments. + +![Pipeline with access to specific delivery stages][17] + +Last, but not least, embrace pull requests to help raise insight and transparency into your codebase, improve the overall quality, collaborate, and release pre-validation builds into selected environments; e.g., the Dev environment. + +Here is a more formal view of the whole whiteboard sketch. + +![The full pipeline][18] + +So, what are your thoughts and learnings with CI/CD pipelines? Is my dream of _one pipeline to rule them all_ a pipe dream? + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/cicd-pipeline-rule-them-all + +作者:[Willy-Peter Schaub][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/wpschaub/users/bclaster/users/matt-micene/users/barkerd427 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LAW-Internet_construction_9401467_520x292_0512_dc.png?itok=RPkPPtDe (An intersection of pipes.) +[2]: https://continuingstudies.sauder.ubc.ca/courses/agile-delivery-methods/ii861 +[3]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-2.png (Prerequisites for a solid development process) +[4]: https://en.wikipedia.org/wiki/Cynefin_framework +[5]: https://www.lean.org/lexicon/muda-mura-muri +[6]: https://en.wikipedia.org/wiki/Shift_left_testing +[7]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-3.png (5% about products, 15% about process, 80% about people) +[8]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-4_0.png (Improving quality and visibility of pipelines) +[9]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-5_0.png (CI build/CD release pipeline) +[10]: https://en.wikipedia.org/wiki/Microsoft_Symbol_Server +[11]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-6.png (Breaking down the CI build pipeline) +[12]: https://stryker-mutator.io/ +[13]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-7.png (Breaking down the CD release pipeline) +[14]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-8.png (Shift-right the environment-specific configuration) +[15]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-9.png (Dev-QA-production pipeline) +[16]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-10.png (Move approver management to simple group membership) +[17]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-11.png (Pipeline with access to specific delivery stages) +[18]: https://opensource.com/sites/default/files/uploads/devops_pipeline_pipe-12.png (The full pipeline) From 11ad2e6bca129436ae5c3d5b088c41c1ed30c2c3 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Jul 2019 00:58:05 +0800 Subject: [PATCH 66/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190702=20SD-WAN?= =?UTF-8?q?=20Buyers=20Should=20Think=20Application=20Performance=20as=20w?= =?UTF-8?q?ell=20as=20Resiliency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/talk/20190702 SD-WAN Buyers Should Think Application Performance as well as Resiliency.md --- ...ation Performance as well as Resiliency.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sources/talk/20190702 SD-WAN Buyers Should Think Application Performance as well as Resiliency.md diff --git a/sources/talk/20190702 SD-WAN Buyers Should Think Application Performance as well as Resiliency.md b/sources/talk/20190702 SD-WAN Buyers Should Think Application Performance as well as Resiliency.md new file mode 100644 index 0000000000..3bddd4cdc3 --- /dev/null +++ b/sources/talk/20190702 SD-WAN Buyers Should Think Application Performance as well as Resiliency.md @@ -0,0 +1,49 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (SD-WAN Buyers Should Think Application Performance as well as Resiliency) +[#]: via: (https://www.networkworld.com/article/3406456/sd-wan-buyers-should-think-application-performance-as-well-as-resiliency.html) +[#]: author: (Zeus Kerravala https://www.networkworld.com/author/Zeus-Kerravala/) + +SD-WAN Buyers Should Think Application Performance as well as Resiliency +====== + +![istock][1] + +As an industry analyst, not since the days of WAN Optimization have I seen a technology gain as much interest as I am seeing with [SD-WANs][2] today. Although full deployments are still limited, nearly every network manager, and often many IT leaders I talk to, are interested in it. The reason for this is two-fold – the WAN has grown in importance for cloud-first enterprises and is badly in need of an overhaul. This hasn’t gone unnoticed by the vendor community as there has been an explosion of companies bringing a broad range of SD-WAN offerings to market. The great news for buyers is that there is no shortage of choices. The bad news is there are too many choices and making the right decision difficult. + +One area of differentiation for SD-WAN vendors is how they handle application performance.  I think of the SD-WAN market as being split into two categories – basic and advanced SD-WANs.  A good analogy is to think of the virtualization market.  There are many vendors that offer hypervisors – in fact there are a number of free ones.  So why do companies pay a premium for VMware? It’s because VMware offers many advanced features and capabilities that make its solution do more than just virtualize servers. + +Similarly, basic SD-WAN solutions do a great job of helping to lower costs and to increase application resiliency through path selection capabilities but do nothing to improve application performance. One myth that needs busting is that all SD-WANs make your applications perform better. That’s simply not true as application availability and performance are two different things. It’s possible to have great performance and poor availability or high availability with lackluster performance.  + +Consider the case where a business runs a hybrid WAN and voice and video traffic is sent over the MPLS connection and broadband is used for other traffic. If the MPLS link becomes congested, but doesn’t go down, most SD-WAN solutions will continue to send video and voice over it, which obviously degrades the performance. If multiple broadband connections are used, the chances of congestion related issues are even more likely.  + +This is an important point for IT professionals to understand. The business justification for SD-WAN was initially built around saving money but if application performance suffers, the entire return on investment (ROI) for the project might as well be tossed out the window.  For many companies, the network is the business, so a poor performing network means equally poor performing applications which results lost productivity, lower revenues and possibly brand damage from customer experience issues.  + +I’ve talked to many organizations that had digital initiatives fail because the network wasn’t transformed. For example, a luxury retailer implemented a tablet program for in store personnel to be able to show merchandise to customers. High end retail is almost wholly impulse purchases so the more inventory that can be shown to a customer, the larger the resulting sales. The WAN that was in place was causing the mobile application to perform poorly causing the digital initiative to have a negative effect. Instead of driving sales, the mobile initiative was chasing customers from the store.  The idea was right but the poor performing WAN caused the project to fail. + +SD-WAN decision makers need to look to suppliers that have specific technologies integrated into it that can act when congestion occurs.  A great example of this is the Silver Peak [Unity EdgeConnect™][3] SD-WAN edge platform with [path conditioning][4], [traffic shaping][5] and sub-second link failover. This ensures the best possible quality for all critical applications, even when an underlying link experiences congestion or an outage, even for [voice and video over broadband][6]. This is a foundational component of advanced SD-WAN providers as they offer the same resiliency and cost benefits as a basic SD-WAN but also ensure application performance remains high.  + +The SD-WAN era is here, and organizations should be aggressive with deployments as it will transform the WAN and make it a digital transformation enabler. Decision makers should choose their provider carefully and ensure the vendor also improves application performance.  Without it, the digital initiatives will likely fail and negate any ROI the company was hoping to realize. + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3406456/sd-wan-buyers-should-think-application-performance-as-well-as-resiliency.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/07/istock-157647179-100800860-large.jpg +[2]: https://www.silver-peak.com/sd-wan/sd-wan-explained +[3]: https://www.silver-peak.com/products/unity-edge-connect +[4]: https://www.silver-peak.com/products/unity-edge-connect/path-conditioning +[5]: https://www.silver-peak.com/products-solutions/unity/traffic-shaping +[6]: https://www.silver-peak.com/sd-wan/voice-video-over-broadband From f52ab282610a4a5f92a4912ac054fc79120ae6d9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 3 Jul 2019 08:50:50 +0800 Subject: [PATCH 67/85] translated --- ...ello Alternative OpenProject 9 Released.md | 85 ------------------- ...ello Alternative OpenProject 9 Released.md | 80 +++++++++++++++++ 2 files changed, 80 insertions(+), 85 deletions(-) delete mode 100644 sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md create mode 100644 translated/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md diff --git a/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md b/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md deleted file mode 100644 index 35ba13853d..0000000000 --- a/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md +++ /dev/null @@ -1,85 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Free and Open Source Trello Alternative OpenProject 9 Released) -[#]: via: (https://itsfoss.com/openproject-9-release/) -[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) - -Free and Open Source Trello Alternative OpenProject 9 Released -====== - -[OpenProject][1] is a collaborative open source project management software. It’s an alternative to proprietary solutions like [Trello][2] and [Jira][3]. - -You can use it for free if it’s for personal use and you set it up (and host it) on your own server. This way, you control your data. - -Of course, you get access to premium features and priority help if you are a [Cloud or Enterprise edition user][4]. - -The OpenProject 9 release emphasizes on new board views, package list view, and work templates. - -If you didn’t know about this, you can give it a try. But, if you are an existing user – you should know what’s new before migrating to OpenProject 9. - -### What’s New in OpenProject 9? - -Here are some of the major changes in the latest release of OpenProject. - -#### Scrum & Agile Boards - -![][5] - -For Cloud and Enterprise editions, there’s a new [scrum][6] and [agile][7] board view. You also get to showcase your work in a [kanban-style][8] fashion, making it easier to support your agile and scrum teams. - -The new board view makes it easy to know who’s assigned for the task and update the status in a jiffy. You also get different board view options like basic board, status board, and version boards. - -#### Work Package templates - -![Work Package Template][9] - -You don’t have to create everything from scratch for every unique work package. So, instead, you just keep a template – so that you can use it whenever you need to create a new work package. It will save a lot of time. - -#### New Work Package list view - -![Work Package View][10] - -In the work package list, there’s a subtle new addition that lets you view the avatars of the assigned people for a specific work. - -#### Customizable work package view for my page - -Your own page to display what you are working on (and the progress) shouldn’t be always boring. So, now you get the ability to customize it and even add a Gantt chart to visualize your work. - -[][11] - -Suggested read Ubuntu 12.04 Has Reached End of Life - -**Wrapping Up** - -For detailed instructions on migrating and installation, you should follow the [official announcement post][12] covering all the essential details for the users. - -Also, we would love to know about your experience with OpenProject 9, let us know about it in the comments section below! If you use some other project management software, feel free to suggest it to us and rest of your fellow It’s FOSS readers. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/openproject-9-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://www.openproject.org/ -[2]: https://trello.com/ -[3]: https://www.atlassian.com/software/jira -[4]: https://www.openproject.org/pricing/ -[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/open-project-9-scrum-agile.jpeg?fit=800%2C517&ssl=1 -[6]: https://en.wikipedia.org/wiki/Scrum_(software_development) -[7]: https://en.wikipedia.org/wiki/Agile_software_development -[8]: https://en.wikipedia.org/wiki/Kanban -[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/work-package-template.jpg?ssl=1 -[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/work-package-view.jpg?fit=800%2C454&ssl=1 -[11]: https://itsfoss.com/ubuntu-12-04-end-of-life/ -[12]: https://www.openproject.org/openproject-9-new-scrum-agile-board-view/ diff --git a/translated/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md b/translated/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md new file mode 100644 index 0000000000..699331d982 --- /dev/null +++ b/translated/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md @@ -0,0 +1,80 @@ +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Free and Open Source Trello Alternative OpenProject 9 Released) +[#]: via: (https://itsfoss.com/openproject-9-release/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) + +替代 Trello 的免费开源 OpenProject 9 发布了 +====== + +[OpenProject][1] 是一个开源项目协作管理软件。它是 [Trello][2] 和 [Jira][3] 等专有方案的替代品。 + +如果个人使用,你可以免费使用它,并在你自己的服务器上进行设置(并托管它)。这样,你就可以控制数据。 + +当然,如果你是[云或企业版用户][4],那么你可以使用高级功能和更优先的帮助。 + +OpenProject 9 的重点是新的看板试图,包列表视图和工作模板。 + +如果你对此不了解,可以尝试一下。但是,如果你是现有用户 - 在迁移到 OpenProject 9 之前,你应该知道这些新功能。 + +### OpenProject 9 有什么新功能? + +以下是最新版 OpenProjec t的一些主要更改。 + +#### Scrum 和敏捷看板 + +![][5] + +对于云和企业版,有一个新的 [scrum][6] 和[敏捷][7]看板视图。你还可以 [kanban 风格][8]方式展示你的工作,从而更轻松地支持你的敏捷和 scrum 团队。 + +新的看板视图使你可以轻松了解为该任务分配的人员并快速更新状态。你还有不同的看板视图选项,如基本看板、状态看板和版本看板。 + +#### 工作包模板 + +![Work Package Template][9] + +你不必为每个独立的工作包从头开始创建所有内容。而是,你只需保留一个模板,这样你就可以在需要创建新工作包时使用它。这将节省大量时间。 + +#### 新的工作包列表视图 + +![Work Package View][10] + +在工作包列表中,有一个微小的新增功能,可让你查看特定工作的已分配人员的头像。 + +#### “我的”页面的可自定义工作包视图 + +“我的”页面显示你正在处理的内容(以及进度),它不应该一直很无聊。因此,现在你可以自定义它,甚至可以添加甘特图来可视化你的工作。 + +**总结** + +有关迁移和安装的详细说明,请参阅[官方的公告帖][12],其中包含了必要的细节。 + +另外,我们很想知道你使用 OpenProject 9 的经历,请在下面的评论栏告诉我们!如果你使用其他一些项目管理软件,请随时向我们和其他 FOSS 读者推荐。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/openproject-9-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者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.openproject.org/ +[2]: https://trello.com/ +[3]: https://www.atlassian.com/software/jira +[4]: https://www.openproject.org/pricing/ +[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/open-project-9-scrum-agile.jpeg?fit=800%2C517&ssl=1 +[6]: https://en.wikipedia.org/wiki/Scrum_(software_development) +[7]: https://en.wikipedia.org/wiki/Agile_software_development +[8]: https://en.wikipedia.org/wiki/Kanban +[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/work-package-template.jpg?ssl=1 +[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/work-package-view.jpg?fit=800%2C454&ssl=1 +[12]: https://www.openproject.org/openproject-9-new-scrum-agile-board-view/ From 7742b8482e37f24a31dadcb1c06b87727d75c4f9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 3 Jul 2019 08:57:54 +0800 Subject: [PATCH 68/85] translating --- ...0180620 How To Find The Port Number Of A Service In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md index 7004a4350a..d934e10782 100644 --- a/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md +++ b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 1e295d466062aa2ed92d8b591ac097f65c915781 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Wed, 3 Jul 2019 11:19:39 +0800 Subject: [PATCH 69/85] translating by qfzy1233 translating by qfzy1233 --- ... Zorin OS Becomes Even More Awesome With Zorin 15 Release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md index c7dc93c70a..f5342383bc 100644 --- a/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md +++ b/sources/news/20190606 Zorin OS Becomes Even More Awesome With Zorin 15 Release.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (qfzy1233) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 7a16a401ae12b5ebb4d17230de460773030c4c37 Mon Sep 17 00:00:00 2001 From: chen ni Date: Wed, 3 Jul 2019 12:32:56 +0800 Subject: [PATCH 70/85] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...edora- Which One Should You Use and Why.md | 190 ------------------ ...edora- Which One Should You Use and Why.md | 182 +++++++++++++++++ 2 files changed, 182 insertions(+), 190 deletions(-) delete mode 100644 sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md create mode 100644 translated/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md diff --git a/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md deleted file mode 100644 index e369693ea7..0000000000 --- a/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md +++ /dev/null @@ -1,190 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (chen-ni) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Ubuntu or Fedora: Which One Should You Use and Why) -[#]: via: (https://itsfoss.com/ubuntu-vs-fedora/) -[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) - -Ubuntu or Fedora: Which One Should You Use and Why -====== - -_**Brief: Ubuntu or Fedora? What’s the difference? Which is better? Which one should you use? Read this comparison of Ubuntu and Fedora.**_ - -[Ubuntu][1] and [Fedora][2] are one of the most popular Linux distributions out there. Making a decision to choose between using Ubuntu and Fedora is not an easy one. I’ll try to help you in making your decision by comparing various features of Ubuntu and Fedora. - -Do note that this comparison is primarily from the desktop point of view. I am not going to focus on the container specific versions of Fedora or Ubuntu. - -### Ubuntu vs Fedora: Which one is better? - -![Ubuntu Vs Fedora][3] - -Almost all Linux distributions differ from one another primarily on these points: - - * Base distribution (Debian, Red Hat, Arch or from scratch) - * Installation - * Supported desktop environments - * Package management, software support and updates - * Hardware support - * Development team (backed by corporate or created by hobbyists) - * Release cycle - * Community and support - - - -Let’s see how similar or how different are Ubuntu and Fedora from each other. Once you know that, it should be perhaps easier for you to make a choice. - -#### Installation - -Ubuntu’s Ubiquity installer is one of easiest installers out there. I believe that it played an important role in Ubuntu’s popularity because when Ubuntu was just created in 2004, installing Linux itself was considered a huge task. - -The Ubuntu installer allows you to install Ubuntu in around 10 minutes. In most cases, it can identify Windows installed on your system and allows you to dual boot Ubuntu and Windows in a matter of clicks. - -You can also install updates and third-party codecs while installing Ubuntu. That’s an added advantage. - -![Ubuntu Installer][4] - -Fedora uses Anaconda installer. This too simplifies the installation process with the easy to use interface. - -![Fedora Installer | Image Credit Fedora Magazine][5] - -Fedora also provides a media writer tool for downloading and creating the live USB of Fedora on Windows operating system. When I last tried to use it around two years ago, it didn’t work and I had to use the regular live USB creating software. - -In my experience, installing Ubuntu is easier than installing Fedora. That doesn’t mean installing Fedora is a complex process. Just that Ubuntu is simpler. - -#### Desktop environments - -Both Ubuntu and Fedora use GNOME desktop environment by default. - -![GNOME Desktop in Fedora][6] - -While Fedora uses the stock GNOME desktop, Ubuntu has customized it to look and behave like its previous Unity desktop. - -![GNOME desktop customized by Ubuntu][7] - -Apart from GNOME, both Ubuntu and Fedora offer several other desktop variants. - -Ubuntu has Kubuntu, Xubuntu, Lubuntu etc., offering various desktop flavors. While they are the official flavor of Ubuntu, they are not directly developed by Ubuntu team from Canonical. The teams are separate. - -Fedora offers various desktop choices in the form of [Fedora Spins][8]. Unlike Kubuntu, Lubuntu etc,. they are not created and maintained by separate team. They are from core Fedora team. - -#### Package management and software availability - -Ubuntu uses APT package manager to provide and manage software (applications, libraries and other required codes) while Fedora uses DNF package manager. - -[][9] - -Suggested read  System76 Galago Pro: Specs, Price And Release Date - -[Ubuntu has vast software repositories][10] allowing you to easily install thousands of programs, both FOSS and non-FOSS, easily. Fedora on the other hand focuses on providing only open source software. This is changing in the new versions but Fedora’s repositories are still not as big as that of Ubuntu. - -Some third party software developer also provide click-to-install, .exe like packages for Linux. In Ubuntu, these packages are in .deb format and while Fedora supports .rpm packages. - -Most software vendors provide both DEB and RPM files for Linux users but I have experienced that sometimes software vendor only provide DEB file. For example, SEO tool [Screaming Frog][11] has only DEB packages. It’s extremely rare that a software is available in RPM but not in DEB format. - -#### Hardware support - -Linux in general has its fair share of trouble with some WiFi adapters and graphics cards. Both Ubuntu and Fedora are impacted from that. Take the example of Nvidia. It’s [open source Nouveau driver often results in troubles like system hanging at boot][12]. - -Ubuntu provides an easy way of installing additional proprietary drivers. This results in better hardware support in many cases. - -![Installing proprietary driver is easier in Ubuntu][13] - -Fedora, on the other hand, sticks to open source software and thus installing proprietary drivers on Fedora becomes a difficult task. - -#### Support and userbase - -Both Ubuntu and Fedora provide support through community forums. Ubuntu has two main forums: [UbuntuForums][14] and [Ask Ubuntu][15]. Fedora has one main forum [Ask Fedora][16]. - -In terms of userbase, Fedora has a large following. However, Ubuntu is more popular and has a larger following than Fedora. - -The popularity of Ubuntu has prompted a number of websites and blogs focused primarily on Ubuntu. This way, you get more troubleshooting tips and learning material on Ubuntu than Fedora. - -#### Release cycle - -A new Fedora version is released every six months and each Fedora release is supported for nine months only. Which means that between six to nine months, you must perform an upgrade. Upgrading Fedora version is simple but it does require a good internet connection. Not everyone can be happy with 1.5 GB of version upgrades every nine months. - -Ubuntu has two versions: regular release and the long term support (LTS) release. Regular release is similar to Fedora. It’s released at the interval of six months and is supported for nine months. - -The LTS release comes at an interval of two years and is supported for five years. Regular releases bring new features, new software versions while the LTS release holds on to the older versions. This makes it a great choice for people who don’t like frequent changes and prefer stability. - -#### Solid base distributions - -Ubuntu is based on [Debian][17]. Debian is one of the biggest community project and one of the most respected project in the [free software][18] world. - -Fedora is a community project from Red Hat. Red Hat is an enterprise focused Linux distribution. Fedora works as a ‘testing ground’ ([upstream][19] in technical term) for new features before those features are included in Red Hat Enterprise Linux. - -[][20] - -Suggested read  How To Manage StartUp Applications In Ubuntu - -#### Backed by enterprises - -Both Ubuntu and Fedora are backed by their parent corporations. Ubuntu is from [Canonical][21] while Fedora is from [Red Hat][22] (now [part of IBM][23]). Enterprise backing is important because it ensures that the Linux distribution is well-maintained. - -Hobbyists distributions created by a group of individuals often crumble under workload. You might have seen reasonably popular distribution projects being shutdown for this sole reason. [Antergos][24], Korora are just some of the many such examples where distributions were discontinued because the developers couldn’t get enough free time to work on the project. - -The fact that both Ubuntu and Fedora are supported by a two Linux-based enterprises makes them a viable choice over other independent distributions. - -#### Ubuntu vs Fedora as server - -The comparison between Ubuntu and Fedora was primarily aimed at desktop users so far. But a discussion about Linux is not complete until you include servers. - -![Ubuntu Server][25] - -Ubuntu is not only popular on desktop, it also has a good presence on the server side. If you are familiar with Ubuntu as desktop, you might not feel uncomfortable with Ubuntu server edition. I started with Ubuntu desktop and now my websites are hosted on Linux servers running Ubuntu. - -Fedora too has server edition and some people use it as well. But most sysadmins won’t prefer a server that has to be upgraded and rebooted every nine months. - -Knowing Fedora helps you in using Red Hat Enterprise Linux (RHEL). RHEL is a paid product and you’ll have to purchase a subscription. If you want an operating system for running server that is close to Fedora/Red Hat, I advise using CentOS. [CentOS][26] is also a community project affiliated with Red Hat but this one is focused on servers. - -#### Conclusion - -As you can see, both Ubuntu and Fedora are similar to each other on several points. Ubuntu does take lead when it comes to software availability, driver installation and online support. And _**these are the points that make Ubuntu a better choice, specially for inexperienced Linux users.**_ - -If you want to get familiar with Red Hat, Fedora is a good starting point. If you have some experience with Linux or if you want to use only open source software, Fedora is an excellent choice. - -In the end, it is really up to you to decide if you want to use Fedora or Ubuntu. I would suggest creating live USB of both distributions or try them out in virtual machine. - -What’s your opinion on Ubuntu vs Fedora? Which distribution do you prefer and why? Do share your views in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/ubuntu-vs-fedora/ - -作者:[Abhishek Prakash][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/abhishek/ -[b]: https://github.com/lujun9972 -[1]: https://ubuntu.com/ -[2]: https://getfedora.org/ -[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-vs-fedora.png?resize=800%2C450&ssl=1 -[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2018/03/install-linux-inside-windows-10.jpg?resize=800%2C479&ssl=1 -[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/07/fedora-installer.png?resize=800%2C598&ssl=1 -[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/gnome-desktop-fedora.png?resize=800%2C450&ssl=1 -[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/03/applications_menu.jpg?resize=800%2C450&ssl=1 -[8]: https://spins.fedoraproject.org/ -[9]: https://itsfoss.com/system-76-galago-pro/ -[10]: https://itsfoss.com/ubuntu-repositories/ -[11]: https://www.screamingfrog.co.uk/seo-spider/#download -[12]: https://itsfoss.com/fix-ubuntu-freezing/ -[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/02/software_updates_additional_drivers_nvidia.png?resize=800%2C523&ssl=1 -[14]: https://ubuntuforums.org/ -[15]: https://askubuntu.com/ -[16]: https://ask.fedoraproject.org/ -[17]: https://www.debian.org/ -[18]: https://www.fsf.org/ -[19]: https://en.wikipedia.org/wiki/Upstream_(software_development) -[20]: https://itsfoss.com/manage-startup-applications-ubuntu/ -[21]: https://canonical.com/ -[22]: https://www.redhat.com/en -[23]: https://itsfoss.com/ibm-red-hat-acquisition/ -[24]: https://itsfoss.com/antergos-linux-discontinued/ -[25]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-server.png?resize=800%2C232&ssl=1 -[26]: https://centos.org/ diff --git a/translated/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md b/translated/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md new file mode 100644 index 0000000000..5850ac7963 --- /dev/null +++ b/translated/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md @@ -0,0 +1,182 @@ +[#]: collector: (lujun9972) +[#]: translator: (chen-ni) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Ubuntu or Fedora: Which One Should You Use and Why) +[#]: via: (https://itsfoss.com/ubuntu-vs-fedora/) +[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) + +你应该选择 Ubuntu 还是 Fedora? +====== + +_**摘要:选择 Ubuntu 还是 Fedora?它们的区别是什么?哪一个更好?你应该使用哪一个?看看这篇对比 Ubuntu 和 Fedora 的文章吧。**_ + +Ubuntu 和 Fedora 都是最流行的 Linux 发行版之一,在两者之间做出选择实非易事。在这篇文章里,我会对比一下 Ubuntu 和 Fedora 的不同特点,帮助你进行决策。 + +请注意,这篇文章主要是从桌面版的角度进行对比的。Fedora 或者 Ubuntu 针对容器的特殊版本不会被考虑在内。 + +### Ubuntu vs Fedora: 哪一个更好? + +![Ubuntu Vs Fedora][3] + +不同 Linux 发行版之间的区别主要体现在以下几个方面: + + * 基础发行版(Debian、红帽、Arch,或者是从头做起) + * 安装方式 + * 支持的桌面环境 + * 软件包管理、软件支持和更新 + * 硬件支持 + * 开发团队(由企业支持,还是由业余爱好者创建) + * 发布周期 + * 社区和线上支持 + +下面我们来看一下 Ubuntu 和 Fedora 之间的相似之处和不同之处。掌握了这些信息之后,也许就更容易在两者之间做出选择了。 + +#### 安装方式 + +Ubuntu 的 Ubiquity 安装器是最好用的安装器之一。我认为这是让 Ubuntu 如此流行的重要原因之一,因为在 2004 年 Ubuntu 刚刚诞生的时候,安装 Linux 还是一个很庞大的工程。 + +Ubuntu 安装器可以让你在大约 10 分钟左右完成安装。大多数情况下,它还可以识别出机器里安装的 Windows 系统,并且只需要几下点击就可以实现 Ubuntu 和 Windows 的双系统启动。 + +锦上添花的是,在安装 Ubuntu 的过程中你还可以进行系统更新,或者是安装第三方编译码器。 + +![Ubuntu Installer][4] + +Fedora 使用的是 Anaconda 安装器,拥有简单易用的界面,同样简化了安装过程。 + +![Fedora Installer | Image Credit Fedora Magazine][5] + +Fodora 还提供了一个可以在 Windows 操作系统上下载并创建 Fedora live USB 的写入工具。不过我在大约两年前尝试使用它的时候并不成功,最后使用了一个常规的创建 live USB 的软件。 + +根据我的经验,安装 Ubuntu 要比安装 Fedora 容易一些。不过这并不是说安装 Fedora 有多困难,只是 Ubuntu 更简单而已。 + +#### 桌面环境 + +Ubuntu 和 Fedora 默认都使用 GNOME 桌面环境。 + +![GNOME Desktop in Fedora][6] + +Fedora 使用的是 stock GNOME 桌面,而 Ubuntu 则在此基础上做了个性化调整,让它看起来就像 Ubuntu 之前使用的 Unity 桌面环境。 + +![GNOME desktop customized by Ubuntu][7] + +除了 GNOME,Ubuntu 和 Fedora 都提供了一些其它桌面环境的版本。 + +Ubuntu 有 Kubuntu、Xubuntu、Lubuntu 等版本,分别提供不同的桌面环境。虽然它们都是 Ubuntu 的官方版本,但是却不是由 Canonical 的 Ubuntu 团队直接开发的,而是由另外的团队开发。 + +Fedora 通过 [Fedora Spins][8] 的方式提供了一些不同桌面环境的版本。和 Kubuntu、Lubuntu 等版本不同的是,这些版本并非由独立团队开发,而是由 Fedora 核心团队开发的。 + +#### 软件包管理和可用软件数量 + +Ubuntu 使用 APT 软件包管理器提供软件并进行管理(包括应用程序、库,以及其它所需代码),而 Fedora 使用 DNF 软件包管理器。 + +[][9] + +[Ubuntu 拥有庞大的软件仓库][10],能够让你轻松安装数以千计的程序,包括 FOSS(LCTT 译注:Free and Open-Source Software 的缩写,自由开源软件)和非 FOSS 的软件。Fedora 则只专注于提供开源软件。虽然这一点在最近的版本里有所转变,但是 Fedora 的软件仓库在规模上仍然比 Ubuntu 的要逊色一些。 + +一些第三方软件开发者为 Linux 提供像 .exe 文件一样可以点击安装的软件包。在 Ubuntu 里这些软件包是 .deb 格式的,在 Fedora 里是 .rpm 格式的。 + +大多数软件供应商都为 Linux 用户提供 DEM 和 RPM 文件,但是我也经历过供应商只提供 DEB 文件的情况。比如说 SEO 工具 [Screaming Frog][11] 就只提供 DEB 软件包。反过来,一个软件只有 RPM 格式但是没有 DEB 格式这种情况就极其罕见了。 + +#### 硬件支持 + +一般来说,Linux 在 WiFi 适配器和显卡的兼容性上容易出现问题,Ubuntu 和 Fedora 都受此影响。以 Nvidia 为例,它的 [开源驱动程序 Nouveau 经常会引发系统启动时假死机之类的问题][12]。 + +在 Ubuntu 上你可以轻松安装专有驱动程序作为补充。在很多情况下,这样可以获得对硬件更好的支持。 + +![Installing proprietary driver is easier in Ubuntu][13] + +Fedora 则坚持使用开源软件,所以在 Fedora 上安装专有驱动程序就比较困难了。 + +#### 线上支持和用户群 + +Ubuntu 和 Fedora 都通过社区论坛提供了很好的线上支持。Ubuntu 主要有两个论坛:[UbuntuForums][14] 和 [Ask Ubuntu][15]。Fedora 主要的论坛则是 [Ask Fedora][16]。 + +就用户群体而言,Fedora 有着庞大的用户数量。不过 Ubuntu 更为流行,用户数量甚至更为庞大。 + +Ubuntu 的流行催生了很多专注于 Ubuntu 的网站和博客。所以相比 Fedora,你可以得到更多关于 Ubuntu 的故障排除指导和学习材料。 + +#### 发布周期 + +Fedora 每六个月发布一个新版本,每个版本有九个月的支持周期。也就是说,你必须在六个月到九个月之间进行一次系统升级。进行 Fedora 版本升级并不是一件困难的事情,但是需要良好的网络连接。并非所有人都喜欢每九个月进行一次 1.5 GB 的版本升级。 + +Ubuntu 有两种版本:常规发布版本和长期支持(LTS)发布版本。常规版本和 Fedora 比较类似,每隔六个月发布一次,有九个月的支持周期。 + +而长期支持发布版本则每两年发布一次,有五年的支持周期。常规发布版本探索新功能特性和新的软件版本,而长期支持发布版本则支持旧版本软件。对于不喜欢经常改变、青睐稳定性的人来说,这是一个很好的选择。 + +#### 强大的基础发行版 + +Ubuntu 是基于 [Debian][17] 发行版的。Debian 是最大的社区项目之一,并且也是 [自由软件][18] 世界里最受尊敬的项目之一。 + +Fedora 则是红帽公司的一个社区项目。红帽公司是一个专注于 Linux 发行版的公司。Fedora 充当了一个“试验田”的角色(用技术术语来说叫做“上游”),用来在红帽企业级 Linux 发布新功能之前对这些新功能进行试验。 + +#### 在背后支持的企业 + +Ubuntu 和 Fedora 都有来自母公司的支持。Ubuntu 源自 [Canonical][21] 公司,而 Fedora 源自 [红帽公司][22](现在是 [IBM 的一部分][23])。背后企业的支持非常重要,因为可以确保 Linux 发行版良好的维护。 + +有一些发行版是由一群独立的业余爱好者们共同创建的,但是在工作负荷之下经常会崩溃。你也许见过一些还算比较流行的发行版项目仅仅是因为这个原因而终止了。很多这样的发行版由于开发者没有足够的业余时间可以投入到项目上而不得不终止,比如 [Antergos][24] 和 Korora。 + +Ubuntu 和 Fedora 的背后都有基于 Linux 的企业的支持,这让它们比其它独立的发行版更胜一筹。 + +#### Ubuntu vs Fedora:服务端 + +到目前为止,我们在 Ubuntu 和 Fedora 之间的对比主要都集中在桌面端。不过如果不考虑一下服务端的话,对 Linux 的讨论就不能算是完整的。 + +![Ubuntu Server][25] + +Ubuntu 不仅在桌面端很流行,在服务端也有很强的存在感。如果你能够在桌面端熟练使用 Ubuntu,那么也不会对 Ubuntu 服务器版本感到陌生。我就是从使用 Ubuntu 桌面端开始的,现在我的网站都运行在 Ubuntu 服务器上。 + +Fedora 同样有服务端版本,并且也有人在使用。但是大多数系统管理者不会喜欢一个每九个月就需要重启升级的服务器。 + +学习 Fedora 可以更好地帮助你使用红帽企业级 Linux(RHEL)。RHEL 是一个付费产品,你需要购买订阅才可以使用。如果你希望在服务器上运行一个和 Fedora 或者红帽类似的操作系统,我推荐使用 CentOS。[CentOS][26] 同样是红帽公司附属的一个社区项目,但是专注于服务端。 + +#### 结论 + +你可以看到,Ubuntu 和 Fedora 有很多相似之处。不过就可用软件数量、驱动安装和线上支持来说,Ubuntu 的确更有优势。**Ubuntu 也因此成为了一个更好的选择,尤其是对于没有经验的 Linux 新手而言。** + +如果你想要熟悉红帽的话,Fedora 是一个很好的开始。如果你对 Linux 有一定经验,或者是只想要使用开源软件,Fedora 就是一个很棒的选择。 + +最终还是需要你自己来决定是使用 Fedora 还是 Ubuntu。我会建议为两个发行版分别创建一个 live USB,并且在虚拟机上体验一下。 + +你对于 Ubuntu vs Fedora 的看法是什么呢?你更喜欢哪一个发行版,为什么?在评论里分享你的看法吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/ubuntu-vs-fedora/ + +作者:[Abhishek Prakash][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/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://ubuntu.com/ +[2]: https://getfedora.org/ +[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-vs-fedora.png?resize=800%2C450&ssl=1 +[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2018/03/install-linux-inside-windows-10.jpg?resize=800%2C479&ssl=1 +[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/07/fedora-installer.png?resize=800%2C598&ssl=1 +[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/gnome-desktop-fedora.png?resize=800%2C450&ssl=1 +[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/03/applications_menu.jpg?resize=800%2C450&ssl=1 +[8]: https://spins.fedoraproject.org/ +[9]: https://itsfoss.com/system-76-galago-pro/ +[10]: https://itsfoss.com/ubuntu-repositories/ +[11]: https://www.screamingfrog.co.uk/seo-spider/#download +[12]: https://itsfoss.com/fix-ubuntu-freezing/ +[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/02/software_updates_additional_drivers_nvidia.png?resize=800%2C523&ssl=1 +[14]: https://ubuntuforums.org/ +[15]: https://askubuntu.com/ +[16]: https://ask.fedoraproject.org/ +[17]: https://www.debian.org/ +[18]: https://www.fsf.org/ +[19]: https://en.wikipedia.org/wiki/Upstream_(software_development) +[20]: https://itsfoss.com/manage-startup-applications-ubuntu/ +[21]: https://canonical.com/ +[22]: https://www.redhat.com/en +[23]: https://itsfoss.com/ibm-red-hat-acquisition/ +[24]: https://itsfoss.com/antergos-linux-discontinued/ +[25]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-server.png?resize=800%2C232&ssl=1 +[26]: https://centos.org/ From 0812bf69ec9e4bbd1e8d692dc877cfadf926d061 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 3 Jul 2019 15:21:49 +0800 Subject: [PATCH 71/85] Rename sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md to sources/news/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md --- ...0190628 Undo releases Live Recorder 5.0 for Linux debugging.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{talk => news}/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md (100%) diff --git a/sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md b/sources/news/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md similarity index 100% rename from sources/talk/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md rename to sources/news/20190628 Undo releases Live Recorder 5.0 for Linux debugging.md From 570b2e6414b832c36a6c7435d2e25963f5950d54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Jul 2019 15:56:35 +0800 Subject: [PATCH 72/85] PRF:20190619 Leading in the Python community.md @chen-ni --- ...0190619 Leading in the Python community.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/translated/tech/20190619 Leading in the Python community.md b/translated/tech/20190619 Leading in the Python community.md index 69c82b8d4c..632f7938bb 100644 --- a/translated/tech/20190619 Leading in the Python community.md +++ b/translated/tech/20190619 Leading in the Python community.md @@ -1,43 +1,44 @@ [#]: collector: (lujun9972) [#]: translator: (chen-ni) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Leading in the Python community) [#]: via: (https://opensource.com/article/19/6/naomi-ceder-python-software-foundation) [#]: author: (Don Watkins https://opensource.com/users/don-watkins) -Python 社区的领袖 +领导 Python 社区 ====== -对话现任 Python 软件基金会董事会主席 Naomi Ceder -![Hands together around the word trust][1] +> 对话现任 Python 软件基金会董事会主席 Naomi Ceder。 + +![](https://img.linux.net.cn/data/attachment/album/201907/03/155715vrhkvapiiia9i3zp.jpg) 和开源软件世界的很多其他领袖一样,[Python 软件基金会][3](PSF)的董事会主席 [Naomi Ceder][2] 通过一种不同寻常的方式走进了 Python 世界。正如她在 2017 年 PyCon España 大会上的 [keynote][4] 的标题所说,她是因为这个编程语言而来,因为这个社区而留下的。在我们和她的一次近期的交流中,她分享了自己成为 Python 社区领袖的历程,并且就“是什么让 Python 如此特别”这个问题提供了一些独到的见解。 ### 从授课到编程 -Naomi 的职业生涯是从古典文学开始的。她取得了拉丁文和古希腊文的博士学位,并且辅修了印欧语言学。在一家私立学校教授拉丁语的同时,她开始接触了计算机,学习如何编程、如何拆机进行升级或者维修。1995 年,她开始在 [Yggdrasil Linux][5] 系统上开发开源软件,并且帮助建立了印第安纳州韦恩堡的 [Linux 用户小组][6] +Naomi 的职业生涯是从古典文学开始的。她取得了拉丁文和古希腊文的博士学位,并且辅修了印欧语言学。在一家私立学校教授拉丁语的同时,她开始接触了计算机,学习如何编程、如何拆机进行升级或者维修。1995 年,她开始在 [Yggdrasil Linux][5] 系统上开发开源软件,并且帮助建立了印第安纳州韦恩堡的 [Linux 用户小组][6]。 作为一名教师,Naomi 相信在中学教授编程课程是非常重要的,因为等到大多数人上大学的时候,他们已经认为编程和科技相关的职业已经不是自己可以从事的了。她表示,更早地教授相关课程有助于增加科技人才的供给,提高人才的多元化和经验的广度,从而更好地满足行业需求。 -大约在 2001 年前后,她决定从学习人类语言转向研究计算机语言,并同时教授计算机课程和管理学校的 IT 系统。在 2001 年的 Linux World 大会上听了一整天 PSF 主席 Guido Van Rossum 关于 Python 的演讲之后,她对 Python 的热情被点燃了。在那个时候,Python 还只是一门晦涩难懂的语言,但是她是如此喜欢 Python,以至于在她的学校开始使用 Python 记录学生信息、进行系统管理。 +大约在 2001 年前后,她决定从学习人类语言转向研究计算机语言,并同时教授计算机课程和管理学校的 IT 系统。在 2001 年的 Linux World 大会上听了一整天时任 PSF 主席 Guido Van Rossum (LCTT 译注:也是 Python 创始人)关于 Python 的演讲之后,她对 Python 的热情被点燃了。在那个时候,Python 还只是一门晦涩难懂的语言,但是她是如此喜欢 Python,以至于在她的学校开始使用 Python 记录学生信息、进行系统管理。 ### 领导 Python 社区 Naomi 表示,“社区是 Python 成功背后的关键因素。开源软件的核心思想是分享,很少有人真的喜欢一个人坐在那儿盯着屏幕写代码。真正的满足来源于和别人交流想法,并且共同创造一些东西。” -她在第一届 [PyCon][7] 大会上发表了演讲,并且从此之后一直是一名参与者和领导者。她组织了一些 birds-of-a-feather 讨论会(LCTT 译注:一种在大会参与者之间进行的基于兴趣的小规模讨论活动)、PyCon 和 PyCon UK 大会的海报展示会、教育峰会,以及 PyCon 大会的西班牙语频道。 +她在第一届 [PyCon][7] 大会上发表了演讲,并且从此之后一直是一名参与者和领导者。她组织了一些 趣味相投birds-of-a-feather 讨论会(LCTT 译注:birds-of-a-feather,一种在大会参与者之间进行的基于兴趣的非正式小规模讨论活动)、PyCon 和 PyCon UK 大会的海报展示会、教育峰会,以及 PyCon 大会的西班牙语频道。 -她同时是 *[The Quick Python Book][9]* 一书的作者,并且联合创立了 [Trans\*Code][10],“英国唯一一个专注于变性者的问题和机遇的黑客节”(LCTT 译注:黑客节是一种让软件开发、设计、项目管理等相关人员相聚在一起,针对软件项目进行高强度合作的活动)。Naomi 表示,“随着科技能够提供越来越多的机遇,确保传统意义上的边缘化群体能够同等地享受到这些机遇成为了一件更为重要的事情。” +她同时是 《[The Quick Python Book][9]》一书的作者,并且联合创立了 [Trans*Code][10],“英国唯一一个专注于变性者的问题和机遇的黑客节”(LCTT 译注:黑客节hack event是一种让软件开发、设计、项目管理等相关人员相聚在一起,针对软件项目进行高强度合作的活动)。Naomi 表示,“随着科技能够提供越来越多的机遇,确保传统意义上的边缘化群体能够同等地享受到这些机遇成为了一件更为重要的事情。” ### 通过 PSF 进行贡献 作为 PSF 的董事会主席,Naomi 积极地参与着该组织对 Python 语言和其使用者的支持工作。除了赞助 PyCon 大会的举办之外,PSF 基金会还为世界各地的小型聚会、大型会议和研习会提供资助。2018 年,该组织发放的资助接近 335000 美元,其中大多数款项的金额都在 500 美元到 5000 美元之间。 -PSF 的短期目标是成为一个由专业员工维护的可持续的、稳定的、成熟的非盈利机构。它的长期目标包括发展可以提供对 Python 开发工作有效支持的各种资源,以及扩展该组织对全世界范围内 Python 教育工作的支持。 +PSF 的短期目标是成为一个由专业人员维护的可持续的、稳定的、成熟的非盈利机构。它的长期目标包括发展可以提供对 Python 开发工作有效支持的各种资源,以及扩展该组织对全世界范围内 Python 教育工作的支持。 -这些工作都需要来自社区的经济上的支持。Naomi 表示,PSF “最大的资金来源是 PyCon 大会。为了确保 PSF 的可持续性,我们同事也关注使用 Python 的企业的赞助,这是我们增长最快的部分。”会员价格是每年 99 美元,并且 [捐款和募捐人][12] 同样也在帮助维持该组织的工作。 +这些工作都需要来自社区的经济上的支持。Naomi 表示,PSF “最大的资金来源是 PyCon 大会。为了确保 PSF 的可持续性,我们同时也关注使用 Python 的企业的赞助,这是我们增长最快的部分。”会员费是每年 99 美元,并且 [捐款和募捐人][12] 同样也在帮助维持该组织的工作。 你可以在 PSF 的 [年度报告][13] 中了解该组织的更多工作情况。 @@ -48,7 +49,7 @@ via: https://opensource.com/article/19/6/naomi-ceder-python-software-foundation 作者:[Don Watkins][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/) 荣誉推出 From 65c11b3f1d0f779b6cb96f6c0986957e00122700 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Jul 2019 15:57:24 +0800 Subject: [PATCH 73/85] PUB:20190619 Leading in the Python community.md @chen-ni https://linux.cn/article-11049-1.html --- .../20190619 Leading in the Python community.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190619 Leading in the Python community.md (98%) diff --git a/translated/tech/20190619 Leading in the Python community.md b/published/20190619 Leading in the Python community.md similarity index 98% rename from translated/tech/20190619 Leading in the Python community.md rename to published/20190619 Leading in the Python community.md index 632f7938bb..9e75b8db87 100644 --- a/translated/tech/20190619 Leading in the Python community.md +++ b/published/20190619 Leading in the Python community.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (chen-ni) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-11049-1.html) [#]: subject: (Leading in the Python community) [#]: via: (https://opensource.com/article/19/6/naomi-ceder-python-software-foundation) [#]: author: (Don Watkins https://opensource.com/users/don-watkins) From dcd9a40b5437a92738b22dcdebb9afae05533709 Mon Sep 17 00:00:00 2001 From: chen ni Date: Wed, 3 Jul 2019 16:02:59 +0800 Subject: [PATCH 74/85] =?UTF-8?q?=E7=94=B3=E9=A2=86=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20190702 Jupyter and data science in Fedora.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20190702 Jupyter and data science in Fedora.md b/sources/tech/20190702 Jupyter and data science in Fedora.md index 7126376617..a80c3b462f 100644 --- a/sources/tech/20190702 Jupyter and data science in Fedora.md +++ b/sources/tech/20190702 Jupyter and data science in Fedora.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chen-ni) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 8659816c4a2aeaf8a940d4b3e90a663561117888 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Jul 2019 16:35:01 +0800 Subject: [PATCH 75/85] PRF:20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md @geekpi --- ... Deluge 2.0 Released- Here-s What-s New.md | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md index 7c04b906fc..8e2e5ef13c 100644 --- a/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md +++ b/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (BitTorrent Client Deluge 2.0 Released: Here’s What’s New) @@ -12,33 +12,27 @@ BitTorrent 客户端 Deluge 2.0 发布:新功能介绍 你可能已经知道 [Deluge][1] 是[最适合 Linux 用户的 Torrent 客户端][2]之一。然而,最近的稳定版本差不多是两年前的了。 -尽管它在积极开发中,但直到最近才出了一个主要的稳定版本。我们写这篇文章时,最新版本恰好是 2.0.2。所以,如果你还没有下载最新的稳定版本,请尝试一下。 +尽管它仍在积极开发中,但直到最近才出了一个主要的稳定版本。我们写这篇文章时,最新版本恰好是 2.0.2。所以,如果你还没有下载最新的稳定版本,请尝试一下。 -不管如何,如果你好奇的话,让我们谈下有哪些新的功能。 - -![Deluge][3] +不管如何,如果你感兴趣的话,让我们看看有哪些新的功能。 ### Deluge 2.0 的主要改进 -新版本引入了多用户支持,这是一个非常需要的功能。 - -除此之外,还有一些性能改进可以更快地加载更多的种子。 +新版本引入了多用户支持,这是一个非常需要的功能。除此之外,还有一些性能改进可以更快地加载更多的种子。 此外,在 2.0 版本中,Deluge 使用了 Python 3,对 Python 2.7 提供最低支持。即使是用户界面,他们也从 GTK UI 迁移到了 GTK3。 根据发行说明,还有一些更重要的补充/改进,包括: - * 多用户支持。 -  * 性能提升,可以更快地加载数千个种子。 -  * 一个模拟 GTK/Web UI 的新控制台 UI。 -  * GTK UI 迁移到 GTK3,并伴随 UI 改进和补充。 -  * 磁链预获取功能以便在添加种子时选择文件。 -  * 完全支持 libtorrent 1.2。 -  * 语言切换支持。 -  * 改进了在 ReadTheDocs 托管的文档。 -  * AutoAdd 插件取代了内置功能。 - - +* 多用户支持。 +* 性能提升,可以更快地加载数千个种子。 +* 一个模拟 GTK/Web UI 的新控制台 UI。 +* GTK UI 迁移到 GTK3,并带有 UI 改进和补充。 +* 磁链预获取功能可以在添加种子时选择文件。 +* 完全支持 libtorrent 1.2。 +* 语言切换支持。 +* 改进了在 ReadTheDocs 托管的文档。 +* AutoAdd 插件取代了内置功能。 ### 如何安装或升级到 Deluge 2.0 @@ -46,17 +40,15 @@ BitTorrent 客户端 Deluge 2.0 发布:新功能介绍 对于任何 Linux 发行版,你都应该遵循官方[安装指南][5](使用 PPA 或 PyPi)。但是,如果你要升级,你应该留意发行说明中提到的: -“_Deluge 2.0与 Deluge 1.x 客户端或守护进程不兼容,因此这些也需要升级。如果第三方脚本直接连接到 Deluge 客户端,那么可能也不兼容且需要迁移。_” +> “_Deluge 2.0 与 Deluge 1.x 客户端或守护进程不兼容,因此这些也需要升级。如果第三方脚本直接连接到 Deluge 客户端,那么可能也不兼容且需要迁移。_” -因此,坚持在升级主版本之前备份你的[配置][6]以免数据丢失。 - -而且,如果你是插件作者,那么需要升级它以使其与新版本兼容。 +因此,坚持在升级主版本之前备份你的[配置][6]以免数据丢失。而且,如果你是插件作者,那么需要升级它以使其与新版本兼容。 直接下载的安装包尚不包含 Windows 和 Mac OS。但是,说明中提到他们正在进行中。 除此之外,你可以按照更新后的官方文档中的[安装指南][5]来手动安装它们。 -**总结** +### 总结 你如何看待最新的稳定版本?你是否将 Deluge 用作 BitTorrent 客户端?或者你是否找到了其他更好的选择? @@ -69,7 +61,7 @@ via: https://itsfoss.com/deluge-2-release/ 作者:[Ankush Das][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/) 荣誉推出 From 6c2325620202642910a5103edfeea00ca8d855d4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Jul 2019 16:35:37 +0800 Subject: [PATCH 76/85] PUB:20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md @geekpi https://linux.cn/article-11050-1.html --- ...itTorrent Client Deluge 2.0 Released- Here-s What-s New.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md (97%) diff --git a/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/published/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md similarity index 97% rename from translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md rename to published/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md index 8e2e5ef13c..7f100cfc52 100644 --- a/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md +++ b/published/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-11050-1.html) [#]: subject: (BitTorrent Client Deluge 2.0 Released: Here’s What’s New) [#]: via: (https://itsfoss.com/deluge-2-release/) [#]: author: (Ankush Das https://itsfoss.com/author/ankush/) From 9f153d2ba85c0311fb49f3d619a9798f5f17e678 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Jul 2019 16:56:43 +0800 Subject: [PATCH 77/85] PRF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @robsean 请翻译完自己读一遍是否通顺。有时候原文词不达意,我们应该根据理解补完和整理一下。 --- ...emove Unwanted or Junk Files) on Ubuntu.md | 69 ++++++++----------- 1 file changed, 27 insertions(+), 42 deletions(-) diff --git a/translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md b/translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md index c8ddd01d91..5b21251a8c 100644 --- a/translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md +++ b/translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md @@ -1,34 +1,30 @@ [#]: collector: (lujun9972) [#]: translator: (robsean) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu) [#]: via: (https://www.2daygeek.com/linux-remove-delete-unwanted-junk-files-free-up-space-ubuntu-mint-debian/) [#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/) -5种简单的方法来在 Ubuntu 上释放空间(移除不想要的或没有用的文件) +5 种在 Ubuntu 上释放空间的简单方法 ====== -我们中的大多数人可能在系统磁盘存储不足的情况下执行这个操作。 +![](https://img.linux.net.cn/data/attachment/album/201907/03/165641h0xy91x9109wz19w.jpg) -我们中的大多数人可能在 Linux 系统磁盘存储不足的情况下执行这个操作。 +大多数人可能在系统磁盘存储不足的情况下执行释放空间这个操作,也可能在 Linux 系统磁盘存储满了的情况下执行这个操作。 -它应该被经常执行,来为安装一个新的应用程序和处理其它文件弥补磁盘存储空间。 - -内务处理是 Linux 管理员的一个日常任务,管理员允许内务处理在阈值下维持磁盘利用率。 +它应该被经常执行,来为安装一个新的应用程序和处理其它文件弥补磁盘存储空间。保持可用空间是 Linux 管理员的一个日常任务,以允许磁盘利用率维持在阈值之下。 这里有一些我们可以清理我们系统空间的方法。 -当你有 TB 级存储容量时,不需要清理你的系统。 - -但是,如果你空间有限,那么释放磁盘空间,变的不可避免。 +当你有 TB 级存储容量时,可能不需要清理你的系统。但是,如果你空间有限,那么释放磁盘空间就变的不可避免。 在这篇文章中,我将向你展示一些最容易的或简单的方法来清理你的 Ubuntu 系统,获得更多空间。 ### 在 Ubuntu 系统上如何检查可用的空间? -在你的系统上使用 **[df 命令][1]** 来检查当前磁盘利用率。 +在你的系统上使用 [df 命令][1] 来检查当前磁盘利用率。 ``` $ df -h @@ -42,17 +38,12 @@ tmpfs 997M 0 997M 0% /sys/fs/cgroup ``` 图形界面用户可以使用“磁盘利用率分析器工具”来查看当前利用率。 -[![][2]![][2]][3] -### 1) 移除不再需要的软件包 +![][3] -下面的命令移除系统不再需要依赖的库和软件包。 +#### 1) 移除不再需要的软件包 -这些软件包自动地安装来使一个被安装软件包满足的依赖关系。 - -同样,它移除安装在系统中的旧的 Linux 内核。 - -它移除不再被系统需要的孤立的软件包,但是不清除它们。 +下面的命令移除系统不再需要的依赖库和软件包。这些软件包是自动安装的,以使一个安装的软件包满足依赖关系。同样,它也会移除安装在系统中的 Linux 旧内核。它会移除不再被系统需要的孤儿软件包,但是不会清除它们。 ``` $ sudo apt-get autoremove @@ -71,7 +62,7 @@ After this operation, 189 MB disk space will be freed. Do you want to continue? [Y/n] ``` -为清除它们,与命令一起使用 `--purge` 选项。 +为清除它们,可以与命令一起使用 `--purge` 选项。 ``` $ sudo apt-get autoremove --purge @@ -90,26 +81,21 @@ After this operation, 189 MB disk space will be freed. Do you want to continue? [Y/n] ``` -### 2) 清空回收站 +#### 2) 清空回收站 -这可能有风险,你可能有大量的无用数据存在于你的回收站中。 - -它占用你的系统空间。这是最好的一个方法来在你的系统上清理这些无用的数据,并获取一些可用的空间。 +有可能你的回收站里面有大量的无用数据。它会占用你的系统空间。最好解决方法之一是在你的系统上清理这些无用的数据,以获取一些可用的空间。 为清理这些,简单地使用文件管理器来清空你的回收站。 -[![][2]![][2]][4] -### 3) 清理 APT 缓存文件 +![][4] -Ubuntu 使用 **[APT 命令][5]** (高级软件包工具)用于软件包管理,像:安装,移除,搜索等等。 +#### 3) 清理 APT 缓存文件 -默认情况下,每个 Linux 操作系统在它们各自的命令保留下载和安装的软件包的缓冲。 +Ubuntu 使用 [APT 命令][5](高级软件包工具)用于软件包管理,如:安装、移除、搜索等等。 -Ubuntu 也做相同的事,它以缓冲的形式在你的磁盘上保留它下载和安装的每次更新。 +一般 Linux 操作系统会在各自的目录下保留下载和安装的软件包的缓冲文件。 -Ubuntu 在 /var/cache/apt/archives 目录中保留 DEB 软件包的缓冲文件。 - -随着时间推移,这些缓存可能快速增长,并在你的系统上占有很多空间。 +Ubuntu 也一样,它在你的磁盘上以缓冲的形式保留它下载和安装的每次更新。Ubuntu 在 `/var/cache/apt/archives` 目录中保留 DEB 软件包的缓冲文件。随着时间推移,这些缓存可能快速增长,并在你的系统上占有很多空间。 运行下面的命令来检查当前 APT 缓存文件的使用率。 @@ -118,30 +104,29 @@ $ sudo du -sh /var/cache/apt 147M /var/cache/apt ``` -它清理过时的 deb 软件包。我想说,一点都清理不干净。 +下面的命令会清理过时的 deb 软件包。我想说,一点都清理不干净。 ``` $ sudo apt-get autoclean ``` -它移除所有在 apt 缓存中的软件包。 +下面的命令会移除所有在 apt 缓存中的软件包。 ``` $ sudo apt-get clean ``` -### 4) 卸载不使用的应用程序 +#### 4) 卸载不使用的应用程序 -我可能要求你来检查在你的系统上安装的软件包和游戏,,删除它们,如果你很少使用。 +这需要你来检查在你的系统上安装的软件包和游戏,删除它们,如果你很少使用的话。 -这可以简单地完成,通过 “Ubuntu 软件中心”。 -[![][2]![][2]][6] +这可以通过 “Ubuntu 软件中心” 简单地做到。 -### 5) 清理缩略图缓存 +![][6] -缓存文件夹是程序存储它们可能再次需要的数据的地方,它是为速度保留的,而不是必需保留的。它可以被再次生成或再次下载。 +#### 5) 清理缩略图缓存 -假如它真的填满你的硬盘,那么你可以删除一些东西而不用担心。 +缓存文件夹是程序存储它们可能再次需要的数据的地方,它是为速度保留的,而不是必需保留的。它可以被再次生成或再次下载。假如它真的填满了你的硬盘,那么你可以删除一些东西而不用担心。 运行下面的命令来检查当前 APT 缓存的利用率。 @@ -163,7 +148,7 @@ via: https://www.2daygeek.com/linux-remove-delete-unwanted-junk-files-free-up-sp 作者:[Magesh Maruthamuthu][a] 选题:[lujun9972][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 2a3890962ac2bdf2c49a42a4618b252446395fca Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Jul 2019 16:57:56 +0800 Subject: [PATCH 78/85] PUB @robsean https://linux.cn/article-11051-1.html --- ...Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md (98%) diff --git a/translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md b/published/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md similarity index 98% rename from translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md rename to published/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md index 5b21251a8c..530d71d66e 100644 --- a/translated/tech/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md +++ b/published/20190610 5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (robsean) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-11051-1.html) [#]: subject: (5 Easy Ways To Free Up Space (Remove Unwanted or Junk Files) on Ubuntu) [#]: via: (https://www.2daygeek.com/linux-remove-delete-unwanted-junk-files-free-up-space-ubuntu-mint-debian/) [#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/) From d97c01c8a806f517ac7092544bb2cd2e0c83b6f0 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 4 Jul 2019 00:53:47 +0800 Subject: [PATCH 79/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190703=20Parse=20?= =?UTF-8?q?arguments=20with=20Python?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190703 Parse arguments with Python.md --- .../20190703 Parse arguments with Python.md | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 sources/tech/20190703 Parse arguments with Python.md diff --git a/sources/tech/20190703 Parse arguments with Python.md b/sources/tech/20190703 Parse arguments with Python.md new file mode 100644 index 0000000000..73933c53ed --- /dev/null +++ b/sources/tech/20190703 Parse arguments with Python.md @@ -0,0 +1,200 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Parse arguments with Python) +[#]: via: (https://opensource.com/article/19/7/parse-arguments-python) +[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/notsag) + +Parse arguments with Python +====== +Parse Python like a pro with the argparse module. +![COBOL punch card][1] + +If you're using [Python][2] for any amount of development, you have probably issued a command in a terminal, even if only to launch a Python script or install a Python module with [pip][3]. Commands may be simple and singular: + + +``` +`$ ls` +``` + +Commands also might take an argument: + + +``` +`$ ls example` +``` + +Commands can also have options or flags: + + +``` +`$ ls --color example` +``` + +Sometimes options also have arguments: + + +``` +`$ sudo firewall-cmd  --list-all --zone home` +``` + +### Arguments + +The POSIX shell automatically splits whatever you type as a command into an array. For instance, here is a simple command: + + +``` +`$ ls example` +``` + +The command **ls** is position **$0**, and the argument **example** is in position **$1**. + +You _could_ write a loop to iterate over each item; determine whether it is the command, an option, or an argument; and take action accordingly. Luckily, a module called [argparse][4] already exists for that. + +### Argparse + +The argparse module is easy to integrate into your Python programs and has several convenience features. For instance, if your user changes the order of options or uses one option that takes no arguments (called a _Boolean_, meaning the option toggles a setting on or off) and then another that requires an argument (such as **\--color red**, for example), argparse can handle the variety. If your user forgets an option that's required, the argparse module can provide a friendly error message. + +Using argparse in your application starts with defining what options you want to provide your user. There are several different kinds of arguments you can accept, but the syntax is consistent and simple. + +Here's a simple example: + + +``` +#!/usr/bin/env python +import argparse +import sys + +def getOptions(args=sys.argv[1:]): +    parser = argparse.ArgumentParser(description="Parses command.") +    parser.add_argument("-i", "--input", help="Your input file.") +    parser.add_argument("-o", "--output", help="Your destination output file.") +    parser.add_argument("-n", "--number", type=int, help="A number.") +    parser.add_argument("-v", "--verbose",dest='verbose',action='store_true', help="Verbose mode.") +    options = parser.parse_args(args) +    return options +``` + +This code sample creates a function called **getOptions** and tells Python to look at each potential argument preceded by some recognizable string (such as **\--input** or **-i**). Any option that Python finds is returned out of the function as an **options** object (**options** is an arbitrary name and has no special meaning; it's just a data object containing a summary of all the arguments that the function has parsed). + +By default, any argument given by the user is seen by Python as a string. If you need to ingest an integer (a number), you must specify that an option expects **type=int**, as in the **\--number** option in the sample code. + +If you have an argument that just turns a feature on or off, then you must use the **boolean** type, as with the **\--verbose** flag in the sample code. This style of option simply stores **True** or **False**, specifying whether or not the user used the flag. If the option is used, then **stored_true** is activated. + +Once the **getOptions** function runs, you can use the contents of the **options** object and have your program make decisions based on how the user invoked the command. You can see the contents of **options** with a test print statement. Add this to the bottom of your example file: + + +``` +`print(getOptions())` +``` + +Then run the code with some arguments: + + +``` +$ python3 ./example.py -i foo -n 4 +Namespace(input='foo', number=4, output=None, verbose=False) +``` + +### Retrieving values + +The **options** object in the sample code contains any value provided by the user (or a derived Boolean value) in keys named after the long option. In the sample code, for instance, the **\--number** option can be retrieved by looking at **options.number**. + + +``` +options = getOptions(sys.argv[1:]) + +if options.verbose: +    print("Verbose mode on") +else: +    print("Verbose mode off") + +print(options.input) +print(options.output) +print(options.number) + +# Insert Useful Python Code Here... +``` + +The Boolean option, **\--verbose** in the example, is determined by testing whether **options.verbose** is True (meaning the user did use the **\--verbose** flag) or False (the user did not use the **\--verbose** flag), and taking some action accordingly. + +### Help and feedback + +Argparse also includes a built-in **\--help** (**-h** for short) option that provides a helpful tip on how the command is used. This is derived from your code, so it takes no extra work to generate this help system: + + +``` +$ ./example.py --help +usage: example.py [-h] [-i INPUT] [-o OUTPUT] [-n NUMBER] [-v] + +Parses command. + +optional arguments: +  -h, --help            show this help message and exit +  -i INPUT, --input INPUT +                        Your input file. +  -o OUTPUT, --output OUTPUT +                        Your destination output file. +  -n NUMBER, --number NUMBER +                        A number. +  -v, --verbose         Verbose mode. +``` + +### Python parsing like a pro + +This a simple example that demonstrates how to deal with parsing arguments in a Python application and how to quickly and efficiently document their syntax. The next time you write a quick Python script, give it some options with argparse. You'll thank yourself later, and your command will feel less like a quick hack and more like a "real" Unix command! + +Here's the sample code, which you can use for testing: + + +``` +#!/usr/bin/env python3 +# GNU All-Permissive License +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved.  This file is offered as-is, +# without any warranty. + +import argparse +import sys + +def getOptions(args=sys.argv[1:]): +    parser = argparse.ArgumentParser(description="Parses command.") +    parser.add_argument("-i", "--input", help="Your input file.") +    parser.add_argument("-o", "--output", help="Your destination output file.") +    parser.add_argument("-n", "--number", type=int, help="A number.") +    parser.add_argument("-v", "--verbose",dest='verbose',action='store_true', help="Verbose mode.") +    options = parser.parse_args(args) +    return options + +options = getOptions(sys.argv[1:]) + +if options.verbose: +    print("Verbose mode on") +else: +    print("Verbose mode off") + +print(options.input) +print(options.output) +print(options.number) +``` + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/parse-arguments-python + +作者:[Seth Kenlon][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/seth/users/notsag +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/cobol-card-punch-programming-code.png?itok=6W6PUqUi (COBOL punch card) +[2]: https://www.python.org/ +[3]: https://pip.pypa.io/en/stable/installing/ +[4]: https://pypi.org/project/argparse/ From eec74c28c8ccac117822cb11e8d45f8856cdc3c3 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 4 Jul 2019 00:54:24 +0800 Subject: [PATCH 80/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190703=206=20open?= =?UTF-8?q?=20source=20web=20browser=20alternatives?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20190703 6 open source web browser alternatives.md --- ... 6 open source web browser alternatives.md | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 sources/tech/20190703 6 open source web browser alternatives.md diff --git a/sources/tech/20190703 6 open source web browser alternatives.md b/sources/tech/20190703 6 open source web browser alternatives.md new file mode 100644 index 0000000000..3a965cc74c --- /dev/null +++ b/sources/tech/20190703 6 open source web browser alternatives.md @@ -0,0 +1,199 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (6 open source web browser alternatives) +[#]: via: (https://opensource.com/article/19/7/open-source-browsers) +[#]: author: (Bryant Son https://opensource.com/users/brson/users/lauren-pritchett/users/scottnesbitt) + +6 open source web browser alternatives +====== +Chrome and Firefox are on the list, but you'll find some other +interesting options, too. +![web development and design, desktop and browser][1] + +Open source web browsers have come a long way since Microsoft dominated the web browser market with its closed source Internet Explorer (IE). For many years, IE was the standard browser for Microsoft's Windows operating system, while Safari (also closed source) was the default browser for MacOS. Then Mozilla's introduction of Firefox, followed by Google's release of Chrome, sparked a revolution in open source internet browsers. Those two are extremely well known but are not the only open source browsers available. + +This article introduces seven open source browsers, summarizes their features, and shares how you can contribute to them. + +Name / Link to Contribute | License | Supported OSes +---|---|--- +[Brave][2] | MPL 2.0 | All +[Chrome/Chromium][3] | BSD | All +[Firefox][4] | MPL 2.0 | All +[Konqueror][5] | GPL | Linux +[Lynx][6] | GPL | Linux, Windows, DOS +[Midori][7] | LGPL | Linux, Windows + +### Brave + +The [Brave browser][8] was created with the goal of blocking all but user-approved advertisements and website trackers. [Brendan Eich][9], the creator of JavaScript and a co-founder of the Mozilla Foundation, leads the Brave project as the CEO and a co-founder. + +**Pros of Brave:** + + * No ads or web trackers + * Speed + * Security + * Chromium [extension support][10] + * Bugs are tracked in [Brave QA central][11] + + + +**Cons of Brave:** + + * The opt-in micro-payment system to support content creators has an unclear pathway to get your payments to your intended recipient + + + +You can find Brave's source code (available under the Mozilla Public License) in its extensive [GitHub repositories][2] (there are 140 repos as of this writing). + +### Chrome/Chromium + +[Google Chrome][12], inarguably, is the most [widely used][13] internet browser—open source or otherwise. I remember when Google introduced the first version of Chrome. Mozilla Firefox, which came out much earlier, was riding a wave of popularity. The first version of Chrome was so slow, buggy, and disappointing, which led me to think it wouldn't be successful. But, boy, I was wrong. Chrome got better and better, and the browser eventually surpassed Firefox's browser market share. Google Chrome is still known as a "memory hog" due to its heavy random access memory (RAM) utilization. Regardless, Chrome is by far the most popular browser, and it's loved by many due to its simplicity and speed. + +**Pros of Google Chrome/Chromium:** + + * Simplicity + * Speed + * Many useful built-in features + + + +**Cons of Google Chrome/Chromium:** + + * Heavy memory usage + * Chrome (not Chromium) has proprietary code + + + +Chromium, which is the open source project behind the Chrome browser, is available under the Berkeley Software Distribution (BSD) license. Note that the Chrome browser also has some closed source code. To contribute, visit the [Contributing to Chromium][14] page. + +### Firefox + +Although Chrome is now the most popular browser, [Mozilla Firefox][15] is the one that started the whole open source web browser sensation. Before Mozilla Firefox, Internet Explorer seemed to be undefeatable. But the birth of Firefox shook that belief. One interesting bit of trivia is that its co-founder [Blake Ross][16] was only 19 years old when Firefox was released. + +**Pros of Mozilla Firefox:** + + * Security + * Many extensions are available + * Uniform user experience across different systems + + + +**Cons of Mozilla Firefox:** + + * Heavy memory usage + * Some HTML5 compatibility issue + + + +Firefox's source code is available under the Mozilla Public License (MPL), and it maintains comprehensive guidelines on [how to contribute][4]. + +### Konqueror + +[Konqueror][17] may not be the most well-known internet browser, and that is okay because it is responsible for KHTML, the browser engine forked by Apple and then Google for the Safari and Chrome browsers (and subsequently used by Brave, Vivaldi, and several other browsers). Today, Konqueror can use either its native KHTML engine or the Chromium fork. Konqueror is maintained by the international [KDE][18] free software community, and it's easy to find on most Linux desktops. + +**Pros of Konqueor:** + + * Pre-installed on many Linux desktops + * Fast and efficient + * Built-in ad-blocker and pop-up blocker + * Customizable URL shortcuts + * Doubles as a file manager, man page viewer, and much more + + + +**Cons of Konqueror:** + + * Primarily runs in Linux + * Requires several KDE libraries to be installed + + + +Konqueror's source code is available under the GNU Public License (GPL). You can find its detailed [documentation][19] and [source code][5] on the KDE website. + +### Lynx + +Ah, [Lynx][20]. Lynx is a unique browser as it is entirely text-based. It is also the oldest web browser still in use and still under development. You might think, "who would use a text-based browser?" But it works, and there is a big community supporting this special open source browser. + +**Pros of Lynx:** + + * Extremely lightweight + * Extremely minimal + * Extremely secure + * Supports DOS and Windows + * Ideal for testing and safe browsing + + + +**Cons of Lynx:** + + * Nothing but text + + + +Lynx's source code is available under the GNU Public License (GPL) and maintained on [GitHub][6]. + +### Midori + +If you hear "Midori," you might think of a green-hued cocktail. But the [Midori browser][21] is an open source, lightweight browser. If you want a simple and lightweight browser, Midori might be an interesting one to look at. But note that there is no stable release for this browser, and it is known to be quite buggy. + +**Pros of Midori:** + + * Simple + * Lightweight + + + +**Cons of Midori:** + + * Still no stable release + * Buggy + * Almost no extensions + * No process isolation + + + +Midori's source code is available under the GNU Lesser General Public License (LGPL) and maintained on [GitHub][7]. + +* * * + +Do you know another open source browser that I should have mentioned on this list? Please share it in the comments. + +Web browsers that run in a terminal window are alive and kicking. They're niche, but still get the... + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/19/7/open-source-browsers + +作者:[Bryant Son][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/brson/users/lauren-pritchett/users/scottnesbitt +[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://github.com/brave +[3]: https://www.chromium.org/Home +[4]: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction +[5]: https://kde.org/applications/internet/org.kde.konqueror/development +[6]: https://github.com/kurtchen/Lynx +[7]: https://github.com/midori-browser/core +[8]: https://brave.com +[9]: https://en.wikipedia.org/wiki/Brendan_Eich +[10]: https://support.brave.com/hc/en-us/articles/360017909112-How-can-I-add-extensions-to-Brave- +[11]: https://community.brave.com/c/legacy/qa +[12]: https://www.google.com/chrome/ +[13]: https://www.statista.com/statistics/544400/market-share-of-internet-browsers-desktop/ +[14]: https://chromium.googlesource.com/chromium/src/+/master/docs/contributing.md +[15]: https://www.mozilla.org/firefox/ +[16]: https://en.wikipedia.org/wiki/Blake_Ross +[17]: https://kde.org/applications/internet/org.kde.konqueror +[18]: https://kde.org +[19]: https://docs.kde.org/stable5/en/applications/konqueror/index.html +[20]: http://lynx.browser.org/ +[21]: https://www.midori-browser.org/ From 8b3fdcbfc0cc888d68f2ed046fa3829cb513ece7 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 4 Jul 2019 00:55:11 +0800 Subject: [PATCH 81/85] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020190703=20An=20eco?= =?UTF-8?q?-friendly=20internet=20of=20disposable=20things=20is=20coming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/talk/20190703 An eco-friendly internet of disposable things is coming.md --- ...internet of disposable things is coming.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/talk/20190703 An eco-friendly internet of disposable things is coming.md diff --git a/sources/talk/20190703 An eco-friendly internet of disposable things is coming.md b/sources/talk/20190703 An eco-friendly internet of disposable things is coming.md new file mode 100644 index 0000000000..8d1e827aa8 --- /dev/null +++ b/sources/talk/20190703 An eco-friendly internet of disposable things is coming.md @@ -0,0 +1,92 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (An eco-friendly internet of disposable things is coming) +[#]: via: (https://www.networkworld.com/article/3406462/an-eco-friendly-internet-of-disposable-things-is-coming.html) +[#]: author: (Patrick Nelson https://www.networkworld.com/author/Patrick-Nelson/) + +An eco-friendly internet of disposable things is coming +====== +Researchers are creating a non-hazardous, bacteria-powered miniature battery that can be implanted into shipping labels and packaging to monitor temperature and track packages in real time. +![Thinkstock][1] + +Get ready for a future of disposable of internet of things (IoT) devices, one that will mean everything is connected to networks. It will be particularly useful in logistics, being used in single-use plastics in retail packaging and throw-away shippers’ carboard boxes. + +How it will happen? The answer is when non-hazardous, disposable bio-batteries make it possible. And that moment might be approaching. Researchers say they’re closer to commercializing a bacteria-powered miniature battery that they say will propel the IoDT. + +**[ Learn more: [Download a PDF bundle of five essential articles about IoT in the enterprise][2] ]** + +The “internet of disposable things is a new paradigm for the rapid evolution of wireless sensor networks,” says Seokheun Choi, an associate professor at Binghamton University, [in an article on the school’s website][3]. + +“Current IoDTs are mostly powered by expensive and environmentally hazardous batteries,” he says. Those costs can be significant in any kind of large-scale deployment, he says. And furthermore, with exponential growth, the environmental concerns would escalate rapidly. + +The miniaturized battery that Choi’s team has come up with is uniquely charged through power created by bacteria. It doesn’t have metals and acids in it. And it’s designed specifically to provide energy to sensors and radios in single-use IoT devices. Those could be the kinds of sensors ideal for supply-chain logistics where the container is ultimately going to end up in a landfill, creating a hazard. + +Another use case is real-time analysis of packaged food, with sensors monitoring temperature and location, preventing spoilage and providing safer food handling. For example, a farm product could be tracked for on-time delivery, as well as have its temperature measured, all within the packaging, as it moves from packaging facility to consumer. In the event of a food-borne illness outbreak, say, one can quickly find out where the product originated—which apparently is hard to do now. + +Other use cases could be battery-impregnated shipping labels that send real-time data to the internet. Importantly, in both use cases, packaging can be discarded without added environmental concerns. + +### How the bacteria-powered batteries work + +A slow release of nutrients provide the energy to the bacteria-powered batteries, which the researchers say can last up to eight days. “Slow and continuous reactions” convert the microbial nutrients into “long standing power,” they say in [their paper's abstract][4]. + +“Our biobattery is low-cost, disposable, and environmentally-friendly,” Choi says. + +Origami, the Japanese paper-folding skill used to create objects, was an inspiration for a similar microbial-based battery project the group wrote about last year in a paper. This one is liquid-based and not as long lasting. A bacteria-containing liquid was absorbed along the porous creases in folded paper, creating the paper-delivered power source, perhaps to be used in a shipping label. + +“Low-cost microbial fuel cells (MFCs) can be done efficiently by using a paper substrate and origami techniques,” [the group wrote then][5]. + +Scientists, too, envisage electronics now printed on circuit boards (PCBs) and can be toxic on disposal being printed entirely on eco-friendly paper. Product cycles, such as those found now in mobile devices and likely in future IoT devices, are continually getting tighter—thus PCBs are increasingly being disposed. Solutions are needed, experts say. + +Put the battery in the paper, too, is the argument here. And while you’re at it, get the biodegradation of the used-up biobattery to help break-down the organic-matter paper. + +Ultimately, Choi believes that the power-creating bacteria could even be introduced naturally by the environment—right now it’s added on by the scientists. + +**More on IoT:** + + * [What is the IoT? How the internet of things works][6] + * [What is edge computing and how it’s changing the network][7] + * [Most powerful Internet of Things companies][8] + * [10 Hot IoT startups to watch][9] + * [The 6 ways to make money in IoT][10] + * [What is digital twin technology? [and why it matters]][11] + * [Blockchain, service-centric networking key to IoT success][12] + * [Getting grounded in IoT networking and security][2] + * [Building IoT-ready networks must become a priority][13] + * [What is the Industrial IoT? [And why the stakes are so high]][14] + + + +Join the Network World communities on [Facebook][15] and [LinkedIn][16] to comment on topics that are top of mind. + +-------------------------------------------------------------------------------- + +via: https://www.networkworld.com/article/3406462/an-eco-friendly-internet-of-disposable-things-is-coming.html + +作者:[Patrick Nelson][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/Patrick-Nelson/ +[b]: https://github.com/lujun9972 +[1]: https://images.techhive.com/images/article/2017/04/green-data-center-intro-100719502-large.jpg +[2]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html +[3]: https://www.binghamton.edu/news/story/1867/everything-will-connect-to-the-internet-someday-and-this-biobattery-could-h +[4]: https://www.sciencedirect.com/science/article/abs/pii/S0378775319305580 +[5]: https://www.sciencedirect.com/science/article/pii/S0960148117311606 +[6]: https://www.networkworld.com/article/3207535/internet-of-things/what-is-the-iot-how-the-internet-of-things-works.html +[7]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html +[8]: https://www.networkworld.com/article/2287045/internet-of-things/wireless-153629-10-most-powerful-internet-of-things-companies.html +[9]: https://www.networkworld.com/article/3270961/internet-of-things/10-hot-iot-startups-to-watch.html +[10]: https://www.networkworld.com/article/3279346/internet-of-things/the-6-ways-to-make-money-in-iot.html +[11]: https://www.networkworld.com/article/3280225/internet-of-things/what-is-digital-twin-technology-and-why-it-matters.html +[12]: https://www.networkworld.com/article/3276313/internet-of-things/blockchain-service-centric-networking-key-to-iot-success.html +[13]: https://www.networkworld.com/article/3276304/internet-of-things/building-iot-ready-networks-must-become-a-priority.html +[14]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html +[15]: https://www.facebook.com/NetworkWorld/ +[16]: https://www.linkedin.com/company/network-world From 99d87b057b82e456e7321585aa25bdc5b094bbac Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 4 Jul 2019 08:51:24 +0800 Subject: [PATCH 82/85] translated --- ...d The Port Number Of A Service In Linux.md | 210 ------------------ ...d The Port Number Of A Service In Linux.md | 195 ++++++++++++++++ 2 files changed, 195 insertions(+), 210 deletions(-) delete mode 100644 sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md create mode 100644 translated/tech/20180620 How To Find The Port Number Of A Service In Linux.md diff --git a/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md deleted file mode 100644 index d934e10782..0000000000 --- a/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md +++ /dev/null @@ -1,210 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: 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, you’re 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 /etc/services -``` - -For example, to find the default port of a SSH service, simply run: - -``` -$ grep ssh /etc/services -``` - -It’s 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? That’s 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 don’t 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 don’t 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, that’s 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 diff --git a/translated/tech/20180620 How To Find The Port Number Of A Service In Linux.md b/translated/tech/20180620 How To Find The Port Number Of A Service In Linux.md new file mode 100644 index 0000000000..3f42a4cb4c --- /dev/null +++ b/translated/tech/20180620 How To Find The Port Number Of A Service In Linux.md @@ -0,0 +1,195 @@ +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: 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/) + +如何在 Linux 中查找服务的端口号 +====== + +![Find The Port Number Of A Service In Linux OS][1] + +由于某些原因,你可能经常需要查找端口名称和端口号。如果是这样,你很幸运。今天,在这个简短的教程中,我们将看到在 Linux 系统中最简单、最快捷的查找服务端口号的方法。可能有很多方法可以做到,但我目前只知道以下三种方法。请继续阅读。 + +### 在 Linux 中查找服务的端口号 + +**方法1:使用 [grep][2] 命令** + +要使用 grep 命令在 Linux 中查找指定服务的默认端口号,只需运行: + +``` +$ grep /etc/services +``` + +例如,要查找 SSH 服务的默认端口,只需运行: + +``` +$ grep ssh /etc/services +``` + +就这么简单。此命令应该适用于大多数 Linux 发行版。以下是我的 Arch Linux 测试机中的示例输出: + +``` +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 +``` + +正如你在上面的输出中所看到的,SSH 服务的默认端口号是 22。 + +让我们找到 Apache Web 服务器的端口号。为此,命令是: + +``` +$ 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 +[...] +``` + +FTP 端口号是什么?这很简单! + +``` +$ 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 +[...] +``` + +**方法 2:使用 getent 命令** + +如你所见,上面的命令显示指定搜索词 “ssh”、“http” 和 “ftp” 的所有端口名称和数字。这意味着,你将获得与给定搜索词匹配的所有端口名称的相当长的输出。 + +但是,你可以使用 “getent” 命令精确输出结果,如下所示: + +``` +$ getent services ssh +ssh 22/tcp + +$ getent services http +http 80/tcp www www-http + +$ getent services ftp +ftp 21/tcp +``` + +如果你不知道端口名称,但是知道端口号,那么你只需将端口名称替换为数字: + +``` +$ getent services 80 +http 80/tcp +``` + +要显示所有端口名称和端口号,只需运行: + +``` +$ getent services +``` + +**方法 3:使用 Whatportis 程序** + +**Whatportis** 是一个简单的 python 脚本,来用于查找端口名称和端口号。与上述命令不同,此程序以漂亮的表格形式输出。 + +确保已安装 PIP 包管理器。如果没有,请参考以下链接。 + + * [**如何使用 Pip 管理 Python 包**][6] + + + +安装 PIP 后,运行以下命令安装 Whatportis 程序。 + +``` +$ pip install whatportis +``` + +现在,你可以找到与服务关联的端口,如下所示。 + +``` +$ whatportis ssh + +$ whatportis ftp + +$ whatportis http +``` + +我的 CentOS 7 服务器的示例输出: + +![][7] + +在 Linux 中查找服务的端口号 + +如果你不知道服务的确切名称,请使用 **–like** 标志来显示相关结果。 + +``` +$ whatportis mysql --like +``` + +上述命令帮助你查找与服务关联的端口。你还可以找到与端口号相关联的服务,如下所示。 + +``` +$ whatportis 993 +``` + +你甚至可以以 **JSON** 格式显示结果。 + +``` +$ whatportis 993 --json +``` + +![][8] + +有关更多详细信息,请参阅 GitHub 仓库。 + + * [**Whatportis GitHub 仓库**][9] + + + +就是这些了。你现在知道了如何使用三种简单方法在 Linux 中查找端口名称和端口号。如果你知道任何其他方法/命令,请在下面的评论栏告诉我。我会查看并更相应地更新本指南。 + +-------------------------------------------------------------------------------- + +via: https://www.ostechnix.com/how-to-find-the-port-number-of-a-service-in-linux/ + +作者:[sk][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者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/ +[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 From 3ac8e27f3dcac296bb2c9193fdaf70a68a052371 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 4 Jul 2019 08:55:45 +0800 Subject: [PATCH 83/85] translating --- sources/tech/20190627 How to use Tig to browse Git logs.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sources/tech/20190627 How to use Tig to browse Git logs.md b/sources/tech/20190627 How to use Tig to browse Git logs.md index 1b0c88752e..e9dd941109 100644 --- a/sources/tech/20190627 How to use Tig to browse Git logs.md +++ b/sources/tech/20190627 How to use Tig to browse Git logs.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -9,8 +9,7 @@ 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. +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 fbe8b2d0192fcde10982e2c85ac947f514a8d504 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 4 Jul 2019 12:51:26 +0800 Subject: [PATCH 84/85] PRF:20190320 4 cool terminal multiplexers.md @geekpi --- .../20190320 4 cool terminal multiplexers.md | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/translated/tech/20190320 4 cool terminal multiplexers.md b/translated/tech/20190320 4 cool terminal multiplexers.md index fd35fce491..b7bbcd914a 100644 --- a/translated/tech/20190320 4 cool terminal multiplexers.md +++ b/translated/tech/20190320 4 cool terminal multiplexers.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (4 cool terminal multiplexers) @@ -12,50 +12,49 @@ ![][1] -Fedora 系统对很多用户来说都很舒适。它有一个令人惊叹的桌面,可以轻松地完成日常任务。表面之下有 Linux 系统的全部功能,终端是高级用户使用它们的最简单的方法。默认的终端简单且功能有限。但是,_终端复用器_能让你的终端变得非常强大。本文展示了一些流行的终端多路复用器以及如何安装它们。 +Fedora 系统对很多用户来说都很舒适。它有一个令人惊叹的桌面,可以轻松地完成日常任务。而在这光鲜的表面之下是由 Linux 系统提供的支持,而终端是高级用户使用这些底层能力的最简单方法。默认的终端简单且功能有限。但是,*终端复用器*能让你的终端变得非常强大。本文展示了一些流行的终端多路复用器以及如何安装它们。 +为什么要用它?嗯,首先,它可以让你注销你的系统,而同时*让你的终端会话不受干扰*。退出你的控制台,这样安全,在其他地方旅行时通过远程登录 SSH 继续之前的操作是非常有用的。这里有一些工具可以看下。 -你为什么要用它?嗯,首先,它可以让你注销你的系统,同时_让你的终端会话不受干扰_。退出你的控制台,加密它,在其他地方旅行时通过远程登录 SSH 继续之前的操作是非常有用的。这里有一些工具可以看下。 - -最古老和最知名的终端多路复用器之一是 _screen_。但是,由于代码不再维护,本文将重点介绍最近的应用。 (“最近的”是相对的,其中一些已存在多年!) +最古老和最知名的终端多路复用器之一是 `screen`。但是,由于其代码不再维护,本文将重点介绍最近的应用。 (“最近的”是相对而言的,其中一些已存在多年!) ### Tmux -_tmux_ 是 _screen_ 的最广泛使用的替换之一。它有高度可配置的接口。你可以根据需要对 tmux 进行编程以启动特定类型的会话。在前面发表的这篇文章中你会发现更多关于 tmux 的信息: +`tmux` 是 `screen` 最广泛使用的替代品之一。它有高度可配置的接口。你可以根据需要对 `tmux` 进行编程以启动特定类型的会话。在前面发表的这篇文章中你会发现更多关于 tmux 的信息: -> [使用 tmux 实现更强大的终端][2] +- [使用 tmux 实现更强大的终端][2] -已经是 tmux 用户?你可能会喜欢[这篇使你的 tmux 会话更有效的文章][3]。 +已经是 `tmux` 用户?你可能会喜欢[这篇使你的 tmux 会话更有效的文章][3]。 -要安装 tmux,由于你可能已经在终端中,请使用 _dnf_ 并带上 _sudo_: +要安装 `tmux`,由于你可能已经在终端中,请带上 `sudo` 使用 `dnf`: ``` $ sudo dnf install tmux ``` -要开始学习,请运行 _tmux_ 命令。单窗格窗口以你的默认 shell 启动。tmux 使用_修饰键_来表示接下来会发出命令。默认情况下,此键为 **Ctrl+B**。如果输入 **Ctrl+B, C**,你将创建一个带有 shell 的新窗口。 +要开始学习,请运行 `tmux` 命令。单窗格窗口以你的默认 shell 启动。tmux 使用*修饰键*来表示接下来会发出命令。默认情况下,此键为 `Ctrl+B`。如果输入 `Ctrl+B, C`,你将创建一个带有 shell 的新窗口。 -提示:使用 **Ctrl+B, ?** 进入帮助模式,会列出你可以使用的所有键。为了简单起见,你先查看 _bind-key -T prefix_ 开头的行。这些是你可以在修饰键之后立即使用的键,可以用来配置你的 tmux 会话。你可以按 **Ctrl+C** 退出帮助模式回 tmux。 +提示:使用 `Ctrl+B, ?` 进入帮助模式,会列出你可以使用的所有键。为了简单起见,你先查看 `bind-key -T prefix` 开头的行。这些是你可以在修饰键之后立即使用的键,可以用来配置你的 `tmux` 会话。你可以按 `Ctrl+C` 退出帮助模式回 `tmux`。 -要完全退出 tmux,请使用标准 _exit_ 命令或 _Ctrl+D_ 退出所有 shell。 +要完全退出 `tmux`,请使用标准 `exit` 命令或 `Ctrl+D` 退出所有 shell。 ### Dvtm -你可能最近在 Fedroa Magzine上看到过一篇 [dwm,一个动态窗口管理器][4]的文章。像 dwm 一样,_dvtm_ 用于平铺窗口管理,但是用在终端中。它的设计坚持 UNIX 的“做好一件事”的理念,在这里是管理终端中的窗口。 +你可能最近在 Fedroa Magzine 上看到过一篇 [dwm,一个动态窗口管理器][4]的文章。像 `dwm` 一样,`dvtm` 用于平铺窗口管理,但是是用在终端中。它的设计坚持 UNIX 的“做好一件事”的理念,在这里是管理终端中的窗口。 -安装 dvtm 也很简单。但是,如果你想要前面提到的注销功能,你还需要 _abduco_ 包来处理 dvtm 的会话管理。 +安装 `dvtm` 也很简单。但是,如果你想要前面提到的注销功能,你还需要 `abduco` 包来处理 dvtm 的会话管理。 ``` $ sudo dnf install dvtm abduco ``` -dvtm 已经映射了许多管理终端窗口的按键。默认情况下,它使用 **Ctrl+G** 作为其修饰键。这个按键告诉 dvtm 接下来的字符将成为它应该处理的命令。例如, **Ctrl+G, C** 创建一个新窗口,**Ctrl+G, X** 将其关闭。 +`dvtm` 已经映射了许多管理终端窗口的按键。默认情况下,它使用 `Ctrl+G` 作为其修饰键。这个按键告诉 `dvtm` 接下来的字符将成为它应该处理的命令。例如, `Ctrl+G, C` 创建一个新窗口,`Ctrl+G, X` 将其关闭。 -有关使用 dvtm 的更多信息,请查看 dvtm 的[主页][5],其中包含大量提示和入门信息。 +有关使用 `dvtm` 的更多信息,请查看 `dvtm` 的[主页][5],其中包含大量提示和入门信息。 ### Byobu -虽然 _byobu_ 本身并不是真正的多路复用器 - 它封装了 _tmux_ 甚至更老的 _screen_ 来添加功能,但它也值得在这里一提。通过帮助菜单和窗口选项卡,以便更加容易地找到功能,Byobu 使终端复用器更适合初学者。 +虽然 `byobu` 本身并不是真正的多路复用器 —— 它封装了 `tmux` 甚至更老的 `screen` 来添加功能,但它也值得在这里一提。通过帮助菜单和窗口选项卡,以便更加容易地找到那些功能,`byobu` 使终端复用器更适合初学者。 当然它也可以在 Fedora 仓库中找到。要安装它,请使用以下命令: @@ -63,29 +62,29 @@ dvtm 已经映射了许多管理终端窗口的按键。默认情况下,它使 $ sudo dnf install byobu ``` -默认情况下,_byobu_ 会在内部运行 _screen_,因此你可能希望运行 _byobu-tmux_ 来封装 _tmux_。你可以使用 **F9** 键打开帮助菜单以获取更多信息,来帮助你入门。 +默认情况下,`byobu` 会在内部运行 `screen`,因此你可能希望运行 `byobu-tmux` 来封装 `tmux`。你可以使用 `F9` 键打开帮助菜单以获取更多信息,来帮助你入门。 ### Mtm -_mtm_ 是你可以找到的最小的复用器之一。事实上,它只有大约 1000 行代码!如果你处于受限的环境(例如旧硬件、最小容器等)中,你可能会发现它很有用。要开始使用,你需要安装一些包。 +`mtm` 是你可以找到的最小的复用器之一。事实上,它只有大约 1000 行代码!如果你处于受限的环境(例如旧硬件、最小容器等)中,你可能会发现它很有用。要开始使用,你需要安装一些包。 ``` $ sudo dnf install git ncurses-devel make gcc ``` -然后克隆 mtm 所在的仓库: +然后克隆 `mtm` 所在的仓库: ``` $ git clone https://github.com/deadpixi/mtm.git ``` -进入 _mtm_ 文件夹并构建程序: +进入 `mtm` 文件夹并构建程序: ``` $ make ``` -你可能会收到一些警告,但完成后,你将会有一个非常小的 _mtm_ 程序。使用以下命令运行它: +你可能会收到一些警告,但完成后,你将会有一个非常小的 `mtm` 程序。使用以下命令运行它: ``` $ ./mtm @@ -95,10 +94,6 @@ $ ./mtm 这里只是一些终端复用器。你有想推荐的么?请在下面留下你的评论,享受在终端中创建窗口吧! -* * * - -_由 _[ _Michael_][7]_ 拍摄,发布于 [Unsplash][8]。_ - -------------------------------------------------------------------------------- via: https://fedoramagazine.org/4-cool-terminal-multiplexers/ @@ -106,7 +101,7 @@ via: https://fedoramagazine.org/4-cool-terminal-multiplexers/ 作者:[Paul W. Frields][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/) 荣誉推出 From 99499a06ea5fdfa403ab05cd09ca2f01d3bb8f54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 4 Jul 2019 12:52:03 +0800 Subject: [PATCH 85/85] PUB:20190320 4 cool terminal multiplexers.md @geekpi https://linux.cn/article-11054-1.html --- .../20190320 4 cool terminal multiplexers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20190320 4 cool terminal multiplexers.md (98%) diff --git a/translated/tech/20190320 4 cool terminal multiplexers.md b/published/20190320 4 cool terminal multiplexers.md similarity index 98% rename from translated/tech/20190320 4 cool terminal multiplexers.md rename to published/20190320 4 cool terminal multiplexers.md index b7bbcd914a..2b7ba72802 100644 --- a/translated/tech/20190320 4 cool terminal multiplexers.md +++ b/published/20190320 4 cool terminal multiplexers.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-11054-1.html) [#]: subject: (4 cool terminal multiplexers) [#]: via: (https://fedoramagazine.org/4-cool-terminal-multiplexers/) [#]: author: (Paul W. Frields https://fedoramagazine.org/author/pfrields/)