Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating

This commit is contained in:
geekpi 2020-04-13 08:37:16 +08:00
commit ebdd41bc71
37 changed files with 2420 additions and 1367 deletions

View File

@ -0,0 +1,142 @@
[#]: collector: (lujun9972)
[#]: translator: (MFGJT)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12095-1.html)
[#]: subject: (Best Audio Editors For Linux)
[#]: via: (https://itsfoss.com/best-audio-editors-linux)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
Linux 上的最佳音频编辑工具推荐
======
在 Linux 上,有很多种音频编辑器可供你选用。不论你是一个专业的音乐制作人,还是只想学学怎么做出超棒的音乐的爱好者,这些强大的音频编辑器都是很有用的工具。
对于专业级的使用,我总是建议使用 [DAW][1](数码音频工作站)。但并不是每个人都需要全部的功能,所以你也应该了解一些最简单的音频编辑器。
在本文中,我们将讨论几款 DAW 和基础的音频编辑器,而且它们都是在 Linux 和(可能)其它操作系统上可以使用的**自由开源**的解决方案。
### Linux 上的最佳音频编辑器
![Best audio editors and DAW for Linux][2]
我们不会关注 DAW 提供的所有功能,而只是关注基本的音频编辑功能。不过,你仍然可以把以下内容看作是 Linux 的最佳 DAW 名单。
**安装说明:**你可以在 AppCenter 或软件中心中找到所有提到的音频编辑器或 DAW。如果你在这两个地方没有找到它们请前往它们的官方网站获取更多信息。
#### 1、Audacity
![Audacity audio editor][3]
[Audacity](https://www.audacityteam.org/) 是 Linux 中最基本音频编辑器之一,但是它也很强大。它是一个自由开源的跨平台工具。肯定已经有很多人了解这个软件了。
现在的它相比它最初流行的时候有了很大的改进。我记得我以前试着通过从音频中去除人声来制作卡拉 OK 伴奏。现在有些时候,你仍然可以这么做。
**特性:**
它还支持包含 VST 效果的插件。当然,你不应该期望它支持 VST 乐器。
* 通过麦克风或混音器进行现场录制
* 支持同时从多种音频格式的多个文件中批量导出/导入内容
* 支持 LADSPA、LV2、Nyquist、VST 和 Audio Unit 的效果插件
* 使用简单,带有剪切、粘贴、删除和拷贝的功能
* 可观测声音频率的频谱模式
#### 2、LMMS
![LMMS audio editor][4]
[LMMS](https://lmms.io/) 是一个自由开源的(跨平台)数码音频工作站。它包括所有基本的音频编辑功能以及许多高级功能。
你可以混音、组合音频,或使用 VST 设备创造音频。LMMS 支持这些功能。此外它还自带一些样本音频、预设、VST 设备和特效来帮助你起步。此外,你还可以得到一个频谱分析仪,以便进行高级的音频编辑工作。
**特性:**
* 基于 MIDI 的音符回放
* 支持 VST 设备
* 原生支持多采样
* 内置压缩器、限制器、延迟功能、混响功能、失真功能和低音增强器
#### 3、Ardour
![Ardour audio editor][5]
[Ardour](https://ardour.org/) 是另一个自由开源的数码音频工作站。只要你有音频接口Ardour 就支持它的使用。当然,你也可以无限地添加多声道音轨。这些多声道音轨也可以被指派到不同的混音带,以方便编辑和录音。
你也可以导入一个视频,编辑其中的音频,然后导出新的视频。它提供了许多内置插件,并且支持 VST 插件。
**特性:**
* 非线性编辑
* 垂直窗口堆叠,便于导航
* <ruby>静默消除功能<rt>strip silence</rt></ruby><ruby>推拉修剪功能<rt>push-pull trimming</rt></ruby>,和用以短暂片段或基于基于音符开始的编辑的 Rhythm Ferret。
#### 4、Cecilia
![Cecilia audio editor][6]
[Cecilia](http://ajaxsoundstudio.com/software/cecilia/) 不是一个普通的音频编辑器。它的使用者一般是音效设计师或者正在努力成为音效设计师的人。 Cecilia 实际上是一个音频信号处理环境。它可以让你的作品余音绕梁。
你还可以得到内置的音效与合成模组和插件。Cecilia 为一个明确的目的而生:如果你正在找音效设计工具,这是你的不二之选!
**特性:**
* 利用模块来完成更多工作UltimateGrainer —— 最先进的颗粒化处理工具RandomAccumulator —— 记录变量速度的累加器UpDistoRes——通过上采样和谐振低通滤波器创造失真效果的工具
* 自动保存调制设定
#### 5、Mixxx
![Mixxx audio DJ][7]
如果你想要在混合和录制一些东西的同时能够有一个虚拟的 DJ 工具,[Mixxx](https://www.mixxx.org/) 将是完美的工具。你可以用到 BPM、音调并使用主同步功能来匹配歌曲的节奏和节拍。另外不要忘记它也是一个 Linux 的自由开源的软件。
它还支持自定义 DJ 设备。所以,如果你有 DJ 设备或者 MIDI你可以用这个工具录制你的现场混音。
**特性:**
* 播送和录制你的歌曲的 DJ 混音
* 可以连接到你的设备并且现场演奏
* 音调检测和 BPM 检测
#### 6、Rosegarden
![Rosegarden audio editor][9]
[Rosegarden](https://www.rosegardenmusic.com/) 是另一个令人赞叹的 Linux 的自由开源的音频编辑器。它既不是一个功能齐全的 DAW也不是一个基本的音频编辑工具。它是两者的混合体并带有一些缩减的功能。
我不会向专业人士推荐这款软件,但如果你经营家庭音乐工作室或只是想体验一下,这将是 Linux 上可以安装的最好的音频编辑器之一。
**特性:**
* 乐谱编辑
* 录音、混音以及采样
### 小结
这些是你可以找到的 Linux 上的最棒的一些音频编辑器了。不论你是需要 DAW一个剪切/粘贴的编辑工具,或者仅仅想要一个拥有基础的混音和录音功能的音频编辑工具,上述软件都能够满足你的需求。
如果在这篇文章中我们遗漏了你最喜欢的一些音频工具,可以在原文下方评论中回复告诉我们。
--------------------------------------------------------------------------------
via: https://itsfoss.com/best-audio-editors-linux
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[MFGJT](https://github.com/MFGJT)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://en.wikipedia.org/wiki/Digital_audio_workstation
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/01/linux-audio-editors-800x450.jpeg?resize=800%2C450&ssl=1
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/audacity-audio-editor.jpg?fit=800%2C591&ssl=1
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/lmms-daw.jpg?fit=800%2C472&ssl=1
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/ardour-audio-editor.jpg?fit=800%2C639&ssl=1
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/01/cecilia.jpg?fit=800%2C510&ssl=1
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/01/mixxx.jpg?fit=800%2C486&ssl=1
[8]: https://itsfoss.com/dj-mixxx-2/
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/rosegarden.jpg?fit=800%2C391&ssl=1
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/linux-audio-editors.jpeg?fit=800%2C450&ssl=1

View File

@ -1,47 +1,47 @@
[#]: collector: "lujun9972"
[#]: translator: "tinyeyeser "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: translator: "tinyeyeser"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-12103-1.html"
[#]: subject: "Control the firewall at the command line"
[#]: via: "https://fedoramagazine.org/control-the-firewall-at-the-command-line/"
[#]: author: "Paul W. Frields https://fedoramagazine.org/author/pfrields/"
命令行下玩转防火墙Fedora
在 Fedora 命令行下玩转防火墙
======
![][1]
![](https://img.linux.net.cn/data/attachment/album/202004/12/123040ghxuicphyhsoppch.jpg)
网络防火墙,顾名思义:为了阻止不需要的网络连接而设置的防护性屏障。在与外界建立连接或是提供网络服务时常常会用到。例如,在学校或是咖啡厅里使用笔记本电脑时,你一定不想某个陌生人窥探你的电脑。
每个 Fedora 系统都内置了一款防火墙。这是 Linux 内核网络功能的一部分。本文介绍如何通过 *firewall-cmd* 命令修改防火墙的配置。
每个 Fedora 系统都内置了一款防火墙。这是 Linux 内核网络功能的一部分。本文介绍如何通过 `firewall-cmd` 命令修改防火墙的配置。
### 网络基础
本文并不教授计算机网络的[所有知识][2],但还是会简单介绍一些网络基础。
网络中的所有计算机都有一个 *IP 地址*,可以把它想象成一个邮箱地址,有了邮箱地址,邮件才知道发往何处。每台计算机还会拥有一组*端口*端口号范围从0到65535。同样的你可以把这些端口想象成用来连接邮箱地址的连接点。
网络中的所有计算机都有一个 *IP 地址*,可以把它想象成一个邮箱地址,有了邮箱地址,邮件才知道发往何处。每台计算机还会拥有一组*端口*,端口号范围从 0 65535。同样的你可以把这些端口想象成用来连接邮箱地址的连接点。
通常情况下,端口会是一个标准端口号或是根据应用程序的应答要求选定的一个端口范围。例如,一台 web server 通常会保留 80 端口用于 HTTP 通信443 端口用于 HTTPS。小于1024的端口主要用于系统或常见用途1024-49151端口用于注册49152及以上端口多为临时使用只短时间启用)。
通常情况下,端口会是一个标准端口号或是根据应用程序的应答要求选定的一个端口范围。例如,一台 Web 服务器通常会保留 80 端口用于 HTTP 通信443 端口用于 HTTPS。小于 1024 的端口主要用于系统或常见用途1024-49151 端口是已经注册的49152 及以上端口多为临时使用(只限短时间使用)。
互联网传输中最常见的两个协议,[TCP][4] 和 [UDP][5]。当要传输的数据很重要不能有丢包时就使用TCP协议如果数据包没有按顺序到达还需要重组为正确的顺序。UDP协议则更多用于对时间敏感的服务为了保证时效性有时允许丢失部分数据。
互联网传输中最常见的两个协议,[TCP][4] 和 [UDP][5]。当要传输的数据很重要,不能有丢包时,就使用 TCP 协议如果数据包没有按顺序到达还需要重组为正确的顺序。UDP 协议则更多用于对时间敏感的服务,为了保证时效性,有时允许丢失部分数据。
系统中运行的应用,例如 web server会保留一些端口例如上文提到的80和443。在网络传输过程中主机会为传输的两端建立一个链接一端是源地址和源端口另一端是目的地址和目的端口。
系统中运行的应用,例如 Web 服务器,会保留一些端口(例如上文提到的 80 和 443。在网络传输过程中主机会为传输的两端建立一个链接一端是源地址和源端口另一端是目的地址和目的端口。
网络防火墙就是基于地址、端口及其他标准的一组规则集,来对网络数据的传输进行屏蔽或阻断的。通过 *fire-cmd* 命令,我们就可以查看或修改防火墙的工作配置。
网络防火墙就是基于地址、端口及其他标准的一组规则集,来对网络数据的传输进行屏蔽或阻断的。通过 `firewall-cmd` 命令,我们就可以查看或修改防火墙的工作配置。
### 防火墙域zone
为了验证防火墙是否开启,使用 *firewall-cmd* 命令,输入时要加上[sudo](https://fedoramagazine.org/howto-use-sudo/)。(通常,在运行了[PolicyKit](https://en.wikipedia.org/wiki/Polkit)的环境中,你也可以不加 *sudo*
为了验证防火墙是否开启,使用 `firewall-cmd` 命令,输入时要加上 [sudo](https://fedoramagazine.org/howto-use-sudo/)。(通常,在运行了 [PolicyKit](https://en.wikipedia.org/wiki/Polkit) 的环境中,你也可以不加 `sudo`
```
$ sudo firewall-cmd --state
running
```
firewalld 服务支持任意数量的域。每个域都可以拥有独立的配置和防护规则。一台 Fedora 工作站的外部接口(例如 WIFI 或有线网卡)其默认域为 *FedoraWorkstation*
firewalld 服务支持任意数量的域。每个域都可以拥有独立的配置和防护规则。一台 Fedora 工作站的外部接口(例如 WIFI 或有线网卡)其默认域为 `FedoraWorkstation`
要看有哪些域是激活状态,可以使用 *get-active-zones* 选项。在本示例中,有两个网卡,有线以太网卡 *wlp2s0* 和虚拟( libvirt )桥接网卡 *virbr0*
要看有哪些域是激活状态,可以使用 `-get-active-zones` 选项。在本示例中,有两个网卡,有线以太网卡 `wlp2s0` 和虚拟libvirt桥接网卡 `virbr0`
```
$ sudo firewall-cmd --get-active-zones
@ -60,58 +60,54 @@ $ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop external home internal libvirt public trusted work
```
查询默认域中防火墙放行了哪些系统,使用 *list-services* 选项。下例给出了一个定制系统的查询结果,你可以看到与常见的结果有些不同。
查询默认域中防火墙放行了哪些系统,使用 `-list-services` 选项。下例给出了一个定制系统的查询结果,你可以看到与常见的结果有些不同。
```
$ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh
```
该系统对外开启了四个服务。每个服务都对应一个常见端口。例如 *ssh* 服务对应 22 端口。
该系统对外开启了四个服务。每个服务都对应一个常见端口。例如 `ssh` 服务对应 22 端口。
如果要查看当前域中防火墙还开启了哪些端口,可以使用 *list-ports* 选项。当然,你也可以随时对其他域进行查询:
如果要查看当前域中防火墙还开启了哪些端口,可以使用 `--list-ports` 选项。当然,你也可以随时对其他域进行查询:
```
$ sudo firewall-cmd --list-ports --zone=FedoraWorkstation
1025-65535/udp 1025-65535/tcp
```
结果表明,从 1025 到 65535 端口包含UDP和TCP默认都是开启的。
结果表明,从 1025 到 65535 端口(包含 UDP TCP默认都是开启的。
### 修改域、端口及服务
以上的配置都是预先设计好的防火墙策略design decision*。是为了确保新手用户安装的应用都能够正常访问网络。如果你确定自己心里有数,想要一个保护性更强的策略,可以将接口放入 _FedoraServer_明确禁止所有端口的访问。_**警告**:如果你的服务器之前是联网状态,这么做可能会导致连接中断,那你就得到机房里去修改更多的配置项!)_
以上的配置都是预先设计好的防火墙策略。是为了确保新手用户安装的应用都能够正常访问网络。如果你确定自己心里有数,想要一个保护性更强的策略,可以将接口放入 `FedoraServer` 域,明确禁止所有端口的访问。**警告**:如果你的服务器之前是联网状态,这么做可能会导致连接中断,那你就得到机房里去修改更多的配置项!
```
$ sudo firewall-cmd --change-interface=<ifname> --zone=FedoraServer
success
```
* _*本文并不讨论如何制定防火墙策略Fedora社区里已经有很多讨论了。你大可以按照自身需要来修改配置。_
**本文并不讨论如何制定防火墙策略Fedora 社区里已经有很多讨论了。你大可以按照自身需要来修改配置。**
如果你想要开放某个服务的常见端口,可以将该服务加入默认域(或使用 _-zone_ 指定一个不同的域)。还可以一次性将其加入多个域。下例开放了 HTTP 和 HTTPS 的常见端口80、443
如果你想要开放某个服务的常见端口,可以将该服务加入默认域(或使用 `--zone` 指定一个不同的域)。还可以一次性将其加入多个域。下例开放了 HTTP 和 HTTPS 的常见端口 80、443
```
$ sudo firewall-cmd --add-service=http --add-service=https
success
```
并非所有的服务都有默认端口,不过大部分都是有的。使用 _get-services_ 选项可以查看完整列表。
并非所有的服务都有默认端口,不过大部分都是有的。使用 `-get-services` 选项可以查看完整列表。
如果你想指定某个特定端口号,可以直接用数字和协议进行配置。(多数情况下,_add-service_ 和 _add-port_ 这两个选项是合在一起使用的下例开启的是UDP协议的网络启动服务
如果你想指定某个特定端口号,可以直接用数字和协议进行配置。(多数情况下,`-add-service` 和 `-add-port` 这两个选项是合在一起使用的)下例开启的是 UDP 协议的网络启动服务:
```
$ sudo firewall-cmd --add-port=67/udp
success
```
**重要**:如果想要在系统重启或是 firewalld 服务重启后,配置仍然生效,**必须**在命令中加上 _permanent_ 选项。本文中的例子只是临时修改了配置,下次遇到系统重启或是 firewalld 服务重启,这些配置就失效了。
**重要**:如果想要在系统重启或是 firewalld 服务重启后,配置仍然生效,**必须**在命令中加上 `-permanent` 选项。本文中的例子只是临时修改了配置,下次遇到系统重启或是 firewalld 服务重启,这些配置就失效了。
以上只是 _firewall-cmd_ 和 firewalld 服务诸多功能中的一小部分。firewalld 项目的[主页][8]还有更多信息值得你去探索和尝试。
* * *
_Photo by [Jakob Braun][9] on [Unsplash][10]._
以上只是 `firewall-cmd` 和 firewalld 服务诸多功能中的一小部分。firewalld 项目的[主页][8]还有更多信息值得你去探索和尝试。
--------------------------------------------------------------------------------
@ -120,7 +116,7 @@ via: https://fedoramagazine.org/control-the-firewall-at-the-command-line/
作者:[Paul W. Frields][a]
选题:[lujun9972][b]
译者:[tinyeyeser](https://github.com/tinyeyeser)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,182 @@
[#]: collector: (lujun9972)
[#]: translator: (messon007)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12093-1.html)
[#]: subject: (The Keyring Concept in Ubuntu: What is It and How to Use it?)
[#]: via: (https://itsfoss.com/ubuntu-keyring/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
解读 Ubuntu 里的密钥环概念
======
![][3]
如果你用过 Ubuntu 或者其他的 Linux 发行版里的[自动登录功能][1], 你可能遇到过这种弹出消息:
> 请输入密码以解锁你的登录密钥环
>
> 登录密钥环在你登录系统时未解锁。
![Enter Password To Unlock Your Login Keyring Ubuntu][2]
如果你一直点击取消,它会不断弹出几次才会消失。你可能想知道,为什么你会一直看到这个密钥环信息呢?
让我来告诉你吧。它其实不是错误,而是一个安全特性。
奇怪吗?下面就让我来解释下 Linux 里的密钥环概念。
### Linux 里的密钥环是什么。为什么需要它?
在现实生活中你为什么要用钥匙环(也叫[钥匙链][4])?你用它把一把或多把钥匙串到一起, 以便于携带和查找。
Linux 里也是类似的。密钥环特性使你的系统可以将各种密码放在一起,并将其保存在一个地方。
大多数 Linux 桌面环境,如 GNOME、KDE、Xfce 等采用 [GNOME 密钥环][5]来提供这个功能。
该密钥环保存了 ssh 密钥、GPG 密钥以及使用此功能的应用程序(例如 Chromium 浏览器)的密钥。默认情况下,**“密钥环”通过主密码来保护**,该密码通常是帐户的登录密码。
系统上的每个用户都有自己的密钥环,(通常)密码与用户帐户本身的密码相同。当你使用密码登录系统时,你的密匙环将使用你帐户的密码自动解锁。
当你[启用 Ubuntu 中的自动登录功能时][1]时,就有问题了。这意味着你无需输入密码即可登录系统。在这种情况下,你的密钥环不会自动解锁。
#### 密钥环是一个安全特性
记得我说过密钥环是一个安全特性吗?现在想象一下你在 Linux 电脑上开启了自动登录功能。有权访问你电脑的任何人无需密码就能进入你的系统。但是你可能不会在意,因为你只是用它来访问互联网。
但是,如果你在 Ubuntu 中使用 Chromium 或 [Google Chrome][6] 之类的浏览器,并使用它来保存各种网站的登录密码,那么你将遇到麻烦。任何人都可以使用浏览器并利用你在浏览器中保存的密码登录网站。这不很危险吗?
这就是为什么当你使用 Chrome 时,它将反复地提示你先解锁密钥环。这确保了只有知道密钥环密码(即账户密码)的人才能使用在浏览器中保存的密码来登录它们相关的网站。
如果你反复取消解锁密钥环的提示,它最终将消失,并允许你使用浏览器。但是,保存的密码将不会被解锁,你在 Chromium/Chome 浏览器上将会看到“同步暂停”的提示。
![Sync paused in Google Chrome][7]
#### 如果密钥环一直存在,为什么你从来没有见过它呢?
如果你在你的 Linux 系统上从没见过它的话,这个问题就很有道理。
如果你从没有用过自动登录功能(或者修改你的账户密码),你可能都没有意识到这个特性的存在。
这是因为当你通过你的密码登录系统时,你的密钥环被你的账户密码自动解锁了。
Ubuntu和其他发行版在执行普通的管理任务如修改用户、安装新软件等需要输入密码无论你是否是自动登录的。但是对于日常任务像使用浏览器它不需要输入密码因为密钥环已经被解锁了。
当你切换到自动登录时,你不再需要输入登录密码。这意味着密钥环没有被自动解锁,因此当你使用利用了密钥环特性的浏览器时,它将提示你来解锁密钥环。
#### 你可以轻松地管理密钥环和密码
这个密钥环放在哪里?它的核心是一个守护任务(一个后台自动运行的程序)。
别担心。你不必通过终端来操作守护任务。大多数桌面环境都自带一个可以和这个守护进程进行交互的图形化应用程序。KDE 上有 KDE 钱包GNOME 和其他桌面上叫做“密码和密钥”(之前叫 [Seahorse][8])。
![Password And Keys App in Ubuntu][9]
你可以用这个 GUI 程序来查看哪些应用程序在用密钥环来管理/保护密码。
你可以看到,我的系统有自动创建的登录密钥环。也有一个存储 GPG 和 SSH 密钥的密钥环。那个[证书][10]用来保存证书机构颁发的证书(如 HTTPS 证书)。
![Password and Keys application in Ubuntu][11]
你也可以使用这个应用程序来手动保存网站的密码。例如我创建了一个新的叫做“Test”的被密码保护的密钥环并手动存储了一个密码。
这比在一个文本文件中保存一批密码要好一些。至少在这种情况下,你的密码只有在你通过密码解锁了密钥环时才允许被看到。
![Saving New Password Seahorse][12]
这里有一个潜在的问题,如果你格式化你的系统,手动保存的密码必然会丢失。通常,你会备份你的个人文件,但并不是所有的用户特定数据,如密钥环文件。
有一种办法能解决它。密钥环数据通常保存在 `~/.local/share/keyrings` 目录。在这里你可以看到所有的密钥环,但是你不能直接看到它们的内容。如果你移除密钥环的密码(我会在这篇文章的后面描述操作步骤),你可以像一个普通的文本文件一样读取密钥环的内容。你可以将这个解锁后的密钥环文件完整地复制下来,并在其他的 Linux 机器上运行“密码和密钥”应用程序导入到其中。
总结一下目前为止所学的内容:
* 大多数 Linux 系统缺省已经安装并激活了密钥环特性
* 系统上的每个用户都拥有他自己的密钥环
* 密钥环通常是用账户密码锁定的(保护)
* 当你通过密码登录时密钥环会被自动解锁
* 对于自动登录,密钥环不会自动解锁,因此当你试图使用依赖密钥环的应用程序时会被提示先解锁它
* 并不是所有的浏览器或应用程序利用了密钥环特性
* Linux 上)安装一个 GUI 程序可以和密钥环交互
* 你可以用密钥环来手动存储加密格式的密码
* 你可以自己修改密钥环密码
* 你可以通过导出(需要先解锁密钥环)并导入到其他计算机上的方式来获取手工保存的密码。
### 修改密钥环密码
假设你修改了你的账户密码。当你登录时,你的系统试图通过新的登录密码来自动解锁密钥环。但是密钥环还在使用老的登录密码。
这种情况下,你可以修改密钥环密码为新的登录密码,这样密码环才能在你登录系统时自动解锁。
从菜单中打开“密码和密钥”应用程序:
![Look for Password and Keys app in the menu][9]
在“Login”密钥环上右击并点击“修改密码”
![Change Keyring Password][13]
#### 如果你不记得老的登录密码怎么办?
你可能知道在 [Ubuntu 上重置忘记的密码很容易][14]。但是密钥环在这种场景下还是有问题。你修改了账户密码,但是你不记得仍然被密钥环使用的老的账户密码。
你不能修改它因为你不知道老的密码。怎么办?
这种情况下,你将不得不移除整个密钥环。你可以通过“密码和密钥”应用程序来操作:
![Delete Keyring Ubuntu][15]
它会提示你进行确认:
![Delete Keyring][16]
另外,你也可以手动删除 `~/.local/share/keyrings` 目录下的密钥环文件。
老的密钥环文件被移除后,你再打开 Chrome/Chromium 时,它会提示你创建一个新的密钥环。
![New Keyring Password][17]
你可以用新的登录密码,密钥环就会被自动解锁了。
### 禁用密钥环密码
在你想用自动登录但又不想手动解锁密钥环时,你可以把禁用密钥环密码作为一个规避方法。记住你正在禁用一个安全特性,因此请三思。
操作步骤和修改密钥环相似。打开“密码和密钥”应用程序,然后修改密钥环密码。
技巧在于当它提示修改密码时,不要输入新密码,而是点击“继续”按钮。这将移除密钥环的密码。
![Disable Keyring password by not setting any password at all][18]
这种方法,密钥环没有密码保护,并将一直处于解锁状态。
--------------------------------------------------------------------------------
via: https://itsfoss.com/ubuntu-keyring/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[messon007](https://github.com/messon007)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/ubuntu-automatic-logon/
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/enter-password-to-unlock-your-login-keyring-ubuntu.jpg?ssl=1
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/keyring-concept-ubuntu-1.png?ssl=1
[4]: https://en.wikipedia.org/wiki/Keychain
[5]: https://wiki.archlinux.org/index.php/GNOME/Keyring
[6]: https://itsfoss.com/install-chrome-ubuntu/
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/sync-paused-keyring-ubuntu.jpg?ssl=1
[8]: https://wiki.debian.org/Seahorse
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/password-and-keys-app-ubuntu.jpg?ssl=1
[10]: https://help.ubuntu.com/lts/serverguide/certificates-and-security.html
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/keyring-pasword-ubuntu.png?ssl=1
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/saving-new-password-seahorse.png?ssl=1
[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/change-keyring-password.png?ssl=1
[14]: https://itsfoss.com/how-to-hack-ubuntu-password/
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/delete-keyring-ubuntu.jpg?ssl=1
[16]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/delete-keyring.jpg?ssl=1
[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/new-keyring-password.jpg?ssl=1
[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/disable-keyring-password-ubuntu.png?ssl=1

View File

@ -1,22 +1,22 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12099-1.html)
[#]: subject: (Using data from spreadsheets in Fedora with Python)
[#]: via: (https://fedoramagazine.org/using-data-from-spreadsheets-in-fedora-with-python/)
[#]: author: (Paul W. Frields https://fedoramagazine.org/author/pfrields/)
在 Fedora 中使用 Python 读取电子表格中的数据
使用 Python 读取电子表格中的数据
======
![][1]
[Python][2] 是最流行、功能最强大的编程语言之一。由于它是免费和开源的,因此每个人都可以使用。大多数 Fedora 系统都已安装了该语言。Python 可用于多种任务,其中包括处理逗号分隔值(**CSV**数据。CSV 文件通常作为表格启动。本文介绍了如何在 Python 3 中处理 CSV 数据。
[Python][2] 是最流行、功能最强大的编程语言之一。由于它是自由开源的,因此每个人都可以使用。大多数 Fedora 系统都已安装了该语言。Python 可用于多种任务,其中包括处理逗号分隔值(CSV数据。CSV文件一开始往往是以表格或电子表格的形式出现。本文介绍了如何在 Python 3 中处理 CSV 数据。
CSV 数据正是它听起来的样子。CSV 文件一次包含一行数据数值之间用逗号分隔。每行由相同的_字段_定义。简短的 CSV 文件通常易于阅读和理解。但是较长的数据或具有更多字段的数据文件可能很难用肉眼解析,因此在这种情况下计算机做得更好。
CSV 数据正如其名。CSV 文件按行放置数据,数值之间用逗号分隔。每行由相同的*字段*定义。简短的 CSV 文件通常易于阅读和理解。但是较长的数据文件或具有更多字段的数据文件可能很难用肉眼解析,因此在这种情况下计算机做得更好。
这是一个简单的示例,其中的字段是 _Name _、_ Email_ 和 _Country_。在此例中CSV 数据将字段定义作为第一行,尽管并非总是如此。
这是一个简单的示例,其中的字段是 `Name`、`Email` 和 `Country`。在此例中CSV 数据将字段定义作为第一行,尽管并非总是如此。
```
Name,Email,Country
@ -27,9 +27,9 @@ Bernard Jones,bjones@example.com,UK
### 从电子表格读取 CSV
Python 包含了一个 _csv_ 模块,它可读取和写入 CSV 数据。大多数电子表格应用,无论是原生(例如 Excel 或 Numbers还是基于 Web 的(例如 Google Sheet都可以导出 CSV 数据。实际上,许多其他可发布表格报告的服务也导出为 CSV例如PayPal
Python 包含了一个 `csv` 模块,它可读取和写入 CSV 数据。大多数电子表格应用,无论是原生(例如 Excel 或 Numbers还是基于 Web 的(例如 Google Sheet都可以导出 CSV 数据。实际上,许多其他可发布表格报告的服务也可以导出为 CSV例如PayPal
Python _csv_ 模块有一个名为 _DictReader_ 的内置读取器方法,它可以将每个数据行作为有序字典 OrderedDict 处理。它需要一个文件对象访问 CSV 数据。因此,如果上面的文件在当前目录中为 _example.csv_,那么以下代码段是获取此数据的一种方法:
Python `csv` 模块有一个名为 `DictReader` 的内置读取器方法,它可以将每个数据行作为有序字典 `OrderedDict` 处理。它需要一个文件对象访问 CSV 数据。因此,如果上面的文件在当前目录中为 `example.csv`,那么以下代码段是获取此数据的一种方法:
```
f = open('example.csv', 'r')
@ -40,7 +40,7 @@ for row in d:
data.append(row)
```
现在,内存中的 _data_ 对象是 OrderedDict 对象的列表:
现在,内存中的 `data` 对象是 `OrderedDict` 对象的列表:
```
[OrderedDict([('Name', 'John Q. Smith'),
@ -63,7 +63,7 @@ USA
bjones@example.com
```
顺便说一句,如果你需要处理没有字段名标题行的 CSV 文件,那么 _DictReader_ 类可以让你定义它们。在上面的示例中,添加 _fieldnames_ 参数并传递一系列名称:
顺便说一句,如果你需要处理没有字段名标题行的 CSV 文件,那么 `DictReader` 类可以让你定义它们。在上面的示例中,添加 `fieldnames` 参数并传递一系列名称:
```
d = DictReader(f, fieldnames=['Name', 'Email', 'Country'])
@ -71,9 +71,9 @@ d = DictReader(f, fieldnames=['Name', 'Email', 'Country'])
### 真实例子
我最近想从一长串人中随机选择一名赢家。我从电子表格中提取的 CSV 数据是一个简单的名称和邮件地址列表。
我最近想从一长串人员名单中随机选择一个中奖者。我从电子表格中提取的 CSV 数据是一个简单的名字和邮件地址列表。
幸运的是Python 有一个有用的 _random_ 模块,可以很好地生成随机值。该模块 _Random_ 类中的 _randrange_ 函数正是我需要的。你可以给它一个常规的数字范围(例如整数),以及它们之间的步长值。然后,该函数会生成一个随机结果,这意味着我可以在数据的总行数范围内获得一个随机整数(或行号)。
幸运的是Python 有一个有用的 `random` 模块,可以很好地生成随机值。该模块 `Random` 类中的 `randrange` 函数正是我需要的。你可以给它一个常规的数字范围(例如整数),以及它们之间的步长值。然后,该函数会生成一个随机结果,这意味着我可以在数据的总行数范围内获得一个随机整数(或者说是行号)。
这个小程序运行良好:
@ -94,9 +94,7 @@ print('Email address:', winner['Email'])
显然这个例子非常简单。电子表格本身包含了复杂的分析数据的方法。但是如果你想在电子表格应用之外做某事Python 或许是一种技巧!
* * *
_由 [Isaac Smith][3] 拍摄,发表于 [Unsplash][4]。_
题图由 [Isaac Smith][3] 拍摄,发表于 [Unsplash][4]。
--------------------------------------------------------------------------------
@ -105,7 +103,7 @@ via: https://fedoramagazine.org/using-data-from-spreadsheets-in-fedora-with-pyth
作者:[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/) 荣誉推出

View File

@ -0,0 +1,93 @@
[#]: collector: (lujun9972)
[#]: translator: (wxy)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12096-1.html)
[#]: subject: (IEEE Standards Association Launches an Open Source Collaboration Platform)
[#]: via: (https://itsfoss.com/ieee-open-source-collaboration-platform/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
IEEE 标准协会推出开源协作平台
======
> IEEE 标准协会宣布了一个基于 GitLab 的开源协作平台。
![](https://img.linux.net.cn/data/attachment/album/202004/10/222910vjpiqd6lqqm6riqp.jpg)
[IEEE][1] 是世界上最大的技术专业组织,致力于推动技术的发展。<ruby>IEEE 标准协会<rt>the IEEE Standards Association</rt></ruby>IEEE SA是 IEEE 内部的一个组织,负责制定全球各行业的标准。
IEEE 标准协会SA提出了一个开源协作平台即 [IEEE SA Open][2]。
技术上来说,它是一个自托管的 GitLab 实例,结合了 [Mattermost][3](一个 [Slack 的替代品][4])和 [GitLab Pages][5]。[其官方博文][6]对此进一步解释道:
> 该平台使独立软件开发者、初创企业、业界、学术机构等能够在一个协作、安全、负责任的环境中创建、测试、管理和部署创新项目。
### 它有什么不同或有用的地方?
这个平台最主要的吸引力应该是 IEEE 的会员网络、技术专长和资源。
IEEE 主席 [Robert Fish][7],也曾(在接受 Radio Kan 的采访时)简单地提到它有什么不同之处,以及为什么 IEEE 想要使用它。
> 如今,世界上大部分的基础设施都是由软件运行的,而这些软件需要符合通信网络、电网、农业等方面的标准。
这是有道理的 —— 如果我们想提高标准化技术,这在很大程度上取决于软件。所以,这听起来肯定是要对创新的开源项目进行标准化,让它们也能为潜在的资本机会做好准备。
IEEE 还澄清说:
> 随着软件在当今世界越来越普遍道德规范、可靠性、透明度和民主治理成为必须具备的条件。IEEE 在赋予开源项目这些属性方面有着得天独厚的优势。
虽然听起来很好,但 IEEE 的开源平台究竟能提供什么?让我们一起来看看这个问题。
### IEEE SA Open 概览
![][8]
首先,它对所有人开放并且完全免费使用。你只需要创建一个 [IEEE 帐户][9],然后[登录到这个开源平台][10]就可以开始。
除了与 IEEE 广泛的会员网络相关的好处之外,你还可以期望其开源社区经理或社区成员提供指导性支持。
![Ieee Gitlab][11]
该平台提供了标准和非标准项目的用例,你可以尝试一下。
因为选择将 GitLab 与 Mattermost 和 Pages 结合起来,你可以获得一些有用的功能,它们是:
* 项目规划和管理功能
* 源代码管理
* 测试、代码质量和持续集成功能
* Docker 容器注册库和 Kubernetes 集成
* 应用程序的发布和交付功能
* 集成了 Mattermost 聊天论坛的斜线命令(完全支持 Android 和 iPhone 应用程序)
* 能够弥合标准制定和开源社区之间的差距,以便以更快的速度推进灵活和创造性的技术解决方案
* 安全的开放空间,并有严格的行为准则。
### 小结
显然,有更多的平台来潜在地放大开源项目的曝光率是一件好事 —— 因此IEEE 的举措听起来很有希望。
你对此有何看法?让我知道你的想法吧!
--------------------------------------------------------------------------------
via: https://itsfoss.com/ieee-open-source-collaboration-platform/
作者:[Ankush Das][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://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://www.ieee.org/about/index.html
[2]: https://standards.ieee.org/content/ieee-standards/en/initiatives/opensource/
[3]: https://mattermost.com/
[4]: https://itsfoss.com/open-source-slack-alternative/
[5]: https://docs.gitlab.com/ee/user/project/pages/
[6]: https://spectrum.ieee.org/the-institute/ieee-products-services/ieee-standards-association-launches-a-platform-for-open-source-collaboration
[7]: https://www.linkedin.com/in/robertsfish/
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/ieee-opensource.jpg?ssl=1
[9]: https://www.ieee.org/profile/public/createwebaccount/showRegister.html
[10]: https://opensource.ieee.org/
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/ieee-gitlab.jpg?ssl=1

View File

@ -0,0 +1,161 @@
[#]: collector: (lujun9972)
[#]: translator: (MjSeven)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12092-1.html)
[#]: subject: (Scheduling tasks on Linux using the at command)
[#]: via: (https://www.networkworld.com/article/3535808/scheduling-tasks-on-linux-using-the-at-command.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
使用 at 命令在 Linux 上安排任务
======
> at 命令可以很容易地安排 Linux 任务在你选择的任何时间或日期运行,让我们来看看它能为你做什么。
![][0]
当你希望命令或脚本在某个特定时间运行时,你不需要将手指放在键盘上盘旋等待按下回车键,或者是在特定时间坐在办公桌前。相反,你可以通过 `at` 命令来设置任务。在本文中,我们将研究如何使用 `at` 来安排任务,如何精确地选择任务希望运行的时间,以及如何使用 `at` 来查看安排运行的任务。
### at vs cron
对于那些使用 cron 在 Linux 系统上安排任务的人来说,`at` 命令类似于 cron因为你可以在选定的时间调度任务但是 cron 用于定期运行的作业 —— 甚至是每年仅一次。大多数 cron 作业的频率都设置为每天、每周或每月运行一次,不过你可以控制运行的频率和时间。
另一方面,`at` 命令用于仅运行一次的任务。想在午夜重启系统?没问题,只要你有适当的权限,`at` 可以为你完成此操作。如果你希望系统在每个星期六凌晨 2 点重启,那么改用 cron。
### 使用 at
`at` 命令很容易使用,只需记住几件事。一个简单使用 `at` 的例子类似于这样:
```
$ at 5:00PM
at> date >> thisfile
at> <EOT>
```
在输入 `at` 和应该运行命令的时间,`at` 会提示你在设定时间会运行该命令(此例中是 `date` 命令)。输入 `^D``Ctrl + d`)来完成请求。
假设我们在下午 5 点之前设置这个 `at` 命令,那么这个日期和时间将在当天下午 5 点添加到名为 `thisfile` 文件的末尾。否则,该命令将在第二天下午 5 点运行。
`at` 命令进行交互时,可以输入多个命令。如果你要同时运行多个命令,只需输入多个命令行即可:
```
$ at 6:22
warning: commands will be executed using /bin/sh
at> echo first >> thisfile
at> echo second >> thisfile
at> <EOT>
```
在上面的命令中,我们使用了一个普通的用户账户,将一些简单的文本添加到该用户主目录的文件中。如果在上午 6:22 之后运行这些命令,那么命令会在第二天运行,因为 6:22 表示上午 6:22。如果你想在下午 6:22 运行,使用 `6:22 PM` 或者 `18:22`。`6:22 PM` 这样也是可以工作的。
你也可以通过使用 `at` 来安排命令在指定的日期或时间运行,例如 `10:00AM April 15 2021``noon + 5 days`(从今天起 5 天内的中午运行),以下是一些例子:
```
at 6PM tomorrow
at noon April 15 2021
at noon + 5 days
at 9:15 + 1000 days
```
在指定要运行的命令并按下 `^D` 后,你会注意到 `at` 命令为每个请求分配了一个作业编号,这个数字将显示在 `at` 命令的作业队列中。
```
$ at noon + 1000 days
warning: commands will be executed using /bin/sh
at> date >> thisfile
at> <EOT>
job 36 at Tue Dec 27 12:00:00 2022 <== job # is 36
```
### 检查队列
你可以使用 `atq`at queue命令来查看 `at` 作业队列:
```
$ atq
32 Thu Apr 2 03:06:00 2020 a shs
35 Mon Apr 6 12:00:00 2020 a shs
36 Tue Dec 27 12:00:00 2022 a shs
34 Thu Apr 2 18:00:00 2020 a shs
```
如果你需要取消队列中的一个作业,使用 `atrm`at remove命令和作业编号
```
$ atrm 32
$ atq
35 Mon Apr 6 12:00:00 2020 a shs
36 Tue Dec 27 12:00:00 2022 a shs
34 Thu Apr 2 18:00:00 2020 a shs
```
你可以使用 `at -c` 命令来查看安排任务的详细信息,其它详细信息(活动的搜索路径等)也可以看到,但是输出的最后一行将显示计划运行的命令。
```
$ at -c 36 | tail -6
cd /home/shs || {
echo 'Execution directory inaccessible' >&2
exit 1
}
date >> thisfile
```
注意,该命令显示首先会测试是否可以通过 `cd` 命令进入用户目录。如果不可以,作业将退出并显示错误。如果可以,则运行在 `at` 中指定的命令。它将命令视为 “进入 `/home/shs` 或退出并显示错误”。
### 以 root 身份运行作业
要以 root 身份运行 `at` 作业,只需将 `sudo` 与你的 `at` 命令一起使用,如下所示:
```
$ sudo at 8PM
[sudo] password for shs:
warning: commands will be executed using /bin/sh
at> reboot now
at> <EOT>
job 37 at Wed Apr 1 16:00:00 2020
```
注意root 的任务以 `root` 作为执行者显示在队列中。
```
35 Mon Apr 6 12:00:00 2020 a shs
36 Tue Dec 27 12:00:00 2022 a shs
37 Wed Apr 1 20:00:00 2020 a root <==
```
### 运行脚本
你还可以使用 `at` 命令来运行脚本,这里有一个例子:
```
$ at 4:30PM
warning: commands will be executed using /bin/sh
at> bin/tryme
at> <EOT>
```
### 禁止使用 at 命令
`/etc/at.deny` 文件提供了一种禁止用户使用 `at` 命令的方法。默认情况下,它可能会包含一个不允许的账户列表,例如 `ftp``nobody`。可以使用 `/etc/at.allow` 文件执行相反的操作,但是通常只配置 `at.deny` 文件。
### 总结
当你要安排一项一次性任务时,无论你是希望在今天下午或几年后运行,`at` 命令都是通用且易于使用的。
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3535808/scheduling-tasks-on-linux-using-the-at-command.html
作者:[Sandra Henry-Stocker][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Sandra-Henry_Stocker/
[b]: https://github.com/lujun9972
[0]: https://images.idgesg.net/images/article/2019/08/gettyimages-140389307-100808283-large.jpg
[1]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE22140&utm_content=sidebar (ITAAS and Corporate Storage Strategy)
[2]: https://www.facebook.com/NetworkWorld/
[3]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,112 @@
[#]: collector: (lujun9972)
[#]: translator: (HankChow)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12098-1.html)
[#]: subject: (How to Go Full Dark Mode in Ubuntu 20.04)
[#]: via: (https://itsfoss.com/dark-mode-ubuntu/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
在 Ubuntu 20.04 中完全进入深色模式
======
> 深色模式是 Ubuntu 20.04 最受瞩目的[新功能][1]之一了。任何版本的 Ubuntu 都可以通过[安装深色主题][2]让用户界面拥有一个深色的外观,但在 Ubuntu 20.04 中,这个过程变得更简单。
![](https://img.linux.net.cn/data/attachment/album/202004/11/200841gvvaja25jaz5z7hv.jpg)
在 Ubuntu 20.04 中,无需额外安装主题,默认主题(称为 Yaru本身就带有三种模式其中就包括深色模式。
下面我会展示如何将 Ubuntu 系统完全设置为深色模式。
### 在 Ubuntu 20.04 打开深色模式
- [video](https://player.vimeo.com/video/405726943)
这个步骤是在 GNOME 桌面上进行的,如果你[使用的是其它桌面][4],你看到的可能会和下面的截图不一样。
按下 super 键(或 Windows 键),然后输入 “settings”就可以找到系统设置。
![Search for Settings][5]
在系统设置中,进入“<ruby>外观<rt>Appearance</rt></ruby>”部分,就可以看到<ruby>浅色<rt>light</rt></ruby><ruby>标准<rt>standard</rt></ruby><ruby>深色<rt>dark</rt></ruby>三个选项。既然要使用深色模式,那自然而然要选择“深色”这个选项了。
![Enable Dark Theme in Ubuntu][6]
完成设置以后,使用了 GTK3 的应用程序都可以跟随深色模式。因此你会看到系统中包括文本编辑器、终端、LibreOffice 等在内的大多数应用程序都已经切换成深色了。但未使用 GTK3 的应用程序可能并没有跟随进入深色模式,下面我会展示如何更完整地进入深色模式。
### 继续调整,进入完整深色模式
这个时候你会发现shell 主题、屏幕顶部面板中的消息托盘和系统托盘还仍然保持在原有的模式当中。
![No Dark Shell by default in Ubuntu][7]
现在就需要使用 [GNOME 扩展][8]安装 Yaru 深色 shell 主题了。[在 Ubuntu 中通过 Ctrl+Alt+T 打开终端][9],然后执行以下这个命令安装浏览器扩展:
```
sudo apt install chrome-gnome-shell
```
进入[扩展页面][10]启用这个扩展:
![Enable User Themes GNOME Extension][11]
执行以下命令安装 [GNOME 调整工具][12]
```
sudo apt install gnome-tweaks
```
打开 GNOME 调整工具,进入“<ruby>外观<rt>Appearance</rt></ruby>”部分,就可以看到 shell 主题的选项,现在只需要把它启用就可以了。
![Enable Yaru Dark Shell Theme in Ubuntu][13]
设置完之后再观察一下,桌面通知、消息托盘、系统托盘等等都已经进入深色模式了。
![Yaru Dark Shell Theme in Ubuntu][14]
现在感觉好多了。但你可能还会注意到,在使用浏览器访问网站的时候,很多网站都使用了白色的背景色。如果期望网站方提供深色模式,那是很不现实的,但我们可以自己实现这一件事。
你需要用到的东西就是诸如 [Dark Reader][15] 这样的浏览器扩展。《[在 Firefox 中启用深色模式][16]》这篇文章中也有讨论过这个浏览器扩展,它的使用过程并不复杂,如果你使用的浏览器是 Firefox、Chrome 或 [Ubuntu 下的 Chromium][17],就可以直接安装[其官方网站][15]上列出的扩展。
Dark Reader 安装完成后,就会以深色模式打开网站了。
![Its FOSS Homepage in Dark Mode with Dark Reader][18]
当然,有些外部的第三方应用程序可能仍然是浅色状态。如果它们自己附带了深色模式的选项,就需要手动启用它们的深色模式。
如今,深色模式在非开发者人群中也越来越流行了。按照以上的步骤,你就可以轻松进入深色模式。
请享受深色模式。
--------------------------------------------------------------------------------
via: https://itsfoss.com/dark-mode-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[HankChow](https://github.com/HankChow)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/ubuntu-20-04-release-features/
[2]: https://itsfoss.com/install-themes-ubuntu/
[3]: https://www.youtube.com/c/itsfoss?sub_confirmation=1
[4]: https://itsfoss.com/find-desktop-environment/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/settings-search-ubuntu-20-04.jpg?ssl=1
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/enable-dark-theme-ubuntu.png?ssl=1
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/no-dark-shell-ubuntu.jpg?ssl=1
[8]: https://itsfoss.com/gnome-shell-extensions/
[9]: https://itsfoss.com/ubuntu-shortcuts/
[10]: https://extensions.gnome.org/extension/19/user-themes/
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/enable-user-themes-gnome.jpg?ssl=1
[12]: https://itsfoss.com/gnome-tweak-tool/
[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/ubuntu-yaru-dark-shell-theme.jpeg?ssl=1
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/yaru-dark-shell-theme-ubuntu.jpg?ssl=1
[15]: https://darkreader.org/
[16]: https://itsfoss.com/firefox-dark-mode/
[17]: https://itsfoss.com/install-chromium-ubuntu/
[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/01/itsfoss_dark_mode.jpg?ssl=1

View File

@ -1,91 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Remember Unity8 from Ubuntu? UBports is Renaming it to Lomiri)
[#]: via: (https://itsfoss.com/unity8-lomiri/)
[#]: author: (John Paul https://itsfoss.com/author/john/)
Remember Unity8 from Ubuntu? UBports is Renaming it to Lomiri
======
Ever since Ubuntu abandoned the Unity project, UBports continued the maintenance and development of Unity. On February 27th 2020, [UBports][1] announced that they are giving Unity8 a new branding in the form of Lomiri.
### Unity8 is now Lomiri
![Unity8 in action | Image Credit: UBports][2]
[UBports announced][3] that the Unity8 desktop environment would be renamed as Lomiri. They gave three reasons for this fairly drastic announcement.
First, they want to avoid confusion with the [Unity game engine][4]. Quite a few people confused the two. UBports noted that they are frequently receiving questions regarding “how to import 3D models and meshes into our shell”. When you search “Unity” in your favorite search engine, most of the top links are for the game engine.
The second reason for the name change has to do with the new effort to package Unity8 for Debian. Unfortunately, many of the Unity8s dependencies have Ubuntu in the name, for example, _**ubuntu-ui-toolkit**_. Debian packagers warned that packages that have Ubuntu in the name may not be accepted into [Debian][5].
Finally, UBports said the name change would improve verbal communications. Saying Unity8 repeatedly can be a mouthful. People would not have to worry about confusing “users of Ubuntu Unity and Unity (the game engine)”.
UBports went on to stress that the name change was not “triggered by any action from Canonical or the Ubuntu community, legal or otherwise”.
They noted that this name change was the perfect time for them to switch to [GitHub alternative GitLab][6] for their development.
Interestingly, the announcement did not explain how they picked Lomiri as the new name. All they said is that “We went through many different names before settling on Lomiri. All of them had problems with pronunciation, availability, or other related issues.”
UBports noted that most Ubuntu Touch users would be unaffected by the name change. Developers and power users might notice some changes, but UBports “will strive to maintain backwards compatibility within Ubuntu Touch for the foreseeable future”.
### What Exactly is Being Renamed?
![][7]
According to the announcement, packages that have either Ubuntu or Unity in the title will be affected. For example,
* **unity8**, containing the shell, will become **lomiri**
* **ubuntu-ui-toolkit** will become **lomiri-ui-toolkit**
* **ubuntu-download-manager** will become **lomiri-download-manager**
On top of this, interfaces call will change, as well. “For example, the **Ubuntu.Components** QML import will change to **Lomiri.Components**.” For the sake of backwards compatibility, Ubuntu Touch images will not change too much. “Developers will only need to update to the new API when theyd like to package their apps for other distributions.”
### What Will Stay the Same?
Since renaming packages can cause quite a few cascading problems, UBports wants to limit the number of packages they change. They dont expect the following things to change.
* Packages that dont use the “Ubuntu” or “Unity” names
* Ubuntu Touch will remain the same
* Any components which are already used by other projects and accepted into other distributions
### Final Thoughts
![][8]
Overall, I think this change will be good for Ubuntu Touch in the long run. I understand why [Canonical][9] picked the Unity name for their convergence desktop, but I think the desktop environment was overshadowed by the game engine from the beginning. This will give them room to breathe and also free up valuable coding time. The less time spent replying to questions about 3D models the more time that can be spent creating a convergent desktop.
If you have any further questions or concerns about the name change, you visit the [UBports forms][10]. They have set up a thread specifically for this topic.
Dont hesitate to share our views on it in the comment section.
--------------------------------------------------------------------------------
via: https://itsfoss.com/unity8-lomiri/
作者:[John Paul][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/john/
[b]: https://github.com/lujun9972
[1]: https://ubports.com/
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/02/unity8_ubports.png?ssl=1
[3]: https://ubports.com/blog/ubports-blog-1/post/lomiri-new-name-same-great-unity8-265
[4]: https://en.wikipedia.org/wiki/Unity_(game_engine)
[5]: https://www.debian.org/
[6]: https://itsfoss.com/github-alternatives/
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/Unity8-lomiri.png?ssl=1
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/ubports.jpeg?ssl=1
[9]: https://canonical.com/
[10]: https://forums.ubports.com/topic/3874/unity8-is-now-lomiri

View File

@ -1,82 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Linux Foundation prepares for disaster, new anti-tracking data set, Mozilla goes back to mobile OSes, and more open source news)
[#]: via: (https://opensource.com/article/20/3/news-march-14)
[#]: author: (Scott Nesbitt https://opensource.com/users/scottnesbitt)
Linux Foundation prepares for disaster, new anti-tracking data set, Mozilla goes back to mobile OSes, and more open source news
======
Catch up on the biggest open source headlines from the past two weeks.
![][1]
In this edition of our open source news roundup, we take a look at the Linux Foundation's disaster relief project, DuckDuckGo's anti-tracking tool, open textbooks, and more!
### Linux Foundation unveils Project OWL
When a disaster happens, it's vital to keep communications links up and running. One way to do that is with [mesh networks][2]. The Linux Foundation [has unveiled][3] Project OWL to "help build mesh network nodes for global emergency communications networks."
Short for _Organisation, Whereabouts, and Logistics_, OWL is firmware for Internet of Things (IoT) devices that "can quickly turn a cheap wireless device into a DuckLink, a mesh network node". Those devices can connect to other, similar devices around them. OWL also provides an analytics tool that responders can use for "coordinating resources, learning about weather patterns, and communicating with civilians who would otherwise be cut off."
### New open source tool to block web trackers
It's no secret that sites all over the web track their visitors. Often, it's shocking how much of that goes on and what a threat to your privacy that is. To help web browser developers better protect their users, the team behind search engine DuckDuckGo is "[sharing data it's collected about online trackers with other companies so they can also protect your privacy][4]."
That dataset is called Tracker Radar and it "details 5,326 internet domains used by 1,727 companies and organizations that track you online". Browser Radar is different from other tracker databases in that it "annotates data with other information, like whether blocking a tracker is likely to break a website, so anyone using it can pick the best balance of privacy and convenience."
Tracker Radar's dataset is [available on GitHub][5]. The repository also links to the code for the [crawler][6] and [detector][7] that work with the data.
### Oregon Tech embracing open textbooks
With the cost of textbooks taking an increasingly large bite out of the budgets of university students, more and more schools are turning to open textbooks to cut those costs. By embracing open textbooks, the Oregon Institute of Technology has [save students $400,000][8] over the last two years.
The school offers open textbooks for 26 courses, ranging "from chemistry and biology, to respiratory care, sociology and engineering." Although the textbooks are free, university librarian John Schoppert points out that the materials are of a high quality and that faculty members have been "developing lab manuals and open-licensed textbooks where they hadnt existed before and improved on others materials."
### Mozilla to help update feature phone OS
A few years ago, Mozilla tried to break into the world of mobile operating systems with Firefox OS. While that effort didn't pan out, Firefox OS found new life powering low-cost feature phones under the name KaiOS. Mozilla's [jumping back into the game][9] by helping "modernize the browser engine that's core to the software."
KaiOS is built upon a four-year-old version of Mozilla's Gecko browser engine. Updating Gecko will "improve security, make apps run faster and more smoothly, and open [KaiOS to] more-sophisticated apps and WebGL 2.0 for better games graphics." Mozilla said its collaboration will include "Mozilla's help with test engineering and adding new low-level Gecko abilities."
#### In other news
* [CERN adopts Mattermost, an open source messaging app][10]
* [Open-source software analyzes economics of biofuels, bioproducts][11]
* [Netflix releases Dispatch for crisis management orchestration][12]
* [FreeNAS and TrueNAS are merging][13]
* [Smithsonian 3D Scans NASA Space Shuttle Discovery And Makes It Open Source][14]
Thanks, as always, to Opensource.com staff members and [Correspondents][15] for their help this week.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/3/news-march-14
作者:[Scott Nesbitt][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/scottnesbitt
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/weekly_news_roundup_tv.png?itok=tibLvjBd
[2]: https://en.wikipedia.org/wiki/Mesh_networking
[3]: https://www.smartcitiesworld.net/news/news/linux-announces-open-source-project-to-aid-disaster-relief-5102
[4]: https://www.cnet.com/news/privacy-focused-duckduckgo-launches-new-effort-to-block-online-tracking/
[5]: https://github.com/duckduckgo/tracker-radar
[6]: https://github.com/duckduckgo/tracker-radar-collector
[7]: https://github.com/duckduckgo/tracker-radar-detector
[8]: https://www.heraldandnews.com/news/local_news/oregon-tech-turns-to-open-source-materials-to-save-students/article_ba641e79-3034-5b9a-a8f7-b5872ddc998e.html
[9]: https://www.cnet.com/news/mozilla-helps-modernize-feature-phones-powered-by-firefox-tech/
[10]: https://joinup.ec.europa.eu/collection/open-source-observatory-osor/news/cern-uses-mattermost
[11]: http://www.biomassmagazine.com/articles/16848/open-source-software-analyzes-economics-of-biofuels-bioproducts
[12]: https://jaxenter.com/netflix-dispatch-crisis-management-orchestration-169381.html
[13]: https://liliputing.com/2020/03/freenas-and-turenas-are-merging-open-source-operating-systems-for-network-attached-storage.html
[14]: https://www.forbes.com/sites/tjmccue/2020/03/04/smithsonian-3d-scans-the-nasa-space-shuttle-discovery-and-makes-it-open-source/#39aa0f243ecd
[15]: https://opensource.com/correspondent-program

View File

@ -1,60 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Tools for monitoring, introvert inclusion, and more industry trends)
[#]: via: (https://opensource.com/article/20/3/monitoring-introvert-industry-trends)
[#]: author: (Tim Hildred https://opensource.com/users/thildred)
Tools for monitoring, introvert inclusion, and more industry trends
======
A weekly look at open source community and industry trends.
![Person standing in front of a giant computer screen with numbers, data][1]
As part of my role as a senior product marketing manager at an enterprise software company with an open source development model, I publish a regular update about open source community, market, and industry trends for product marketers, managers, and other influencers. Here are five of my and their favorite articles from that update.
## [Top six open source tools for monitoring][2]
> These tools are widely used in the tech industry, and they all have their benefits. Most of these solutions, however, require skilled implementation and ongoing manual maintenance that can be a burden for DevOps teams and a distraction from the business. Theres no one solution that can cater to all of your requirements, since each tool focuses on one or two specific aspects of observability and analysis. By mixing these tools together, you can derive a unique solution for your individual business needs. 
**The impact**: If a container falls over in the cluster and there is no open source monitoring tool to see it, did it really happen?
## [Introvert environment: What can we do?][3]
> An example is its inclusive team dynamics programme, which consists of both information and guidance on everyday practices. Each team is required to appoint an inclusion champion, who ensures all members are given the space to contribute to discussions. Leaders are also encouraged not to speak first during meetings.
**The impact**: If it is hard for you not to speak for a while in a meeting, that probably indicates you should be doing it more often. Will new WFH policies make this harder, or easier? Only time will tell.
## [The difference between API Gateways and service mesh][4]
> The service connectivity capabilities that service mesh provides are conflicting with the API connectivity features that an API gateway provides. However, because the ones provided by service mesh are more inclusive (L4 + L7, all TCP traffic, not just HTTP and not just limited to APIs but to every service), they are in a way more complete. But as we can see from the diagram above, there are also use cases that service mesh does not provide, and that is the “API as a product” use case as well as the full API management lifecycle, which still belong to the API gateway pattern.
**The impact**: Another way of saying this is you can't make money from your service mesh directly, unlike your APIs.
## [Open Policy Agents mission to secure the cloud][5]
> While the cost of implementing OPA is a little high today, the technology pays for itself by providing more control and helping to secure systems. As OPA continues to be refined, we can expect implementation costs to fall, making an investment in OPA easier to justify.
**The impact**: Compliance is expensive; large investments in it only make sense if non-compliance is even more so.
_I hope you enjoyed this list and come back next week for more open source community, market, and industry trends._
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/3/monitoring-introvert-industry-trends
作者:[Tim Hildred][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/thildred
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_metrics_analytics_desktop_laptop.png?itok=9QXd7AUr (Person standing in front of a giant computer screen with numbers, data)
[2]: https://devops.com/top-six-open-source-tools-for-monitoring-kubernetes-and-docker/
[3]: https://www.raconteur.net/hr/introverts-workplace
[4]: https://www.cncf.io/blog/2020/03/06/the-difference-between-api-gateways-and-service-mesh/
[5]: https://thenewstack.io/open-policy-agents-mission-to-secure-the-cloud/

View File

@ -1,78 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (With npm Acquisition, Microsoft is Set to Own the Largest Software Registry in the World)
[#]: via: (https://itsfoss.com/microsoft-npm-acquisition/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
With npm Acquisition, Microsoft is Set to Own the Largest Software Registry in the World
======
Microsoft has been betting big on open source for past few years. Apart from open sourcing a few things here and there, Microsoft is contributing a lot to Linux kernel (for its Azure cloud platform).
To further strengthen its position in the open source world, [Microsoft acquired the popular open source code hosting platform GitHub for $7.5 billion][1].
Now Microsoft owned GitHub [has acquired][2] [npm][3] ( short for Node Package Manager). npm is the [worlds largest software registry][4] with [more than 1.3 million packages that have 75 billion downloads a month][5].
![][6]
If you are not familiar, npm is a package manager for JavaScript programming language, primarily the hugely popular open source [Node.js][7].
Though npm has scope of private repository for enterprises, most of the 1.3 million packages are open source and/or used in various open source projects.
Both node.js and npm are used by big software and IT companies like IBM, Yahoo and big corporations like Netflix and PayPal.
In case you are wondering, the acquisition amount has not been disclosed by either party.
### Microsofts proposed plan for npm
![][8]
GitHub CEO Nat Friedman assured that Microsoft intends to keep the npm registry available as open-source and free to developers.
Once the acquisition is complete, Microsoft is going to invest in the registry infrastructure and platform. It plans to improve the core experience of npm by adding new features like Workspaces, as well as bringing improvements to publishing and multi-factor authentication.
Microsoft also intends to integrate GitHub and npm so that developers could trace a change from a GitHub pull request to the npm package version that fixed it.
### Part of a larger plan
First, [Microsoft bought GitHub][1], the platform that had the largest open source repositories and now npm, the largest software registry. Clearly, Microsoft is tightening its grip around open source projects. This could allow Microsoft to dictate the policies around these open source projects in future.
When Microsoft acquired GitHub, several open source developers moved to [alternate platforms like GitLab][9] but GitHub remained the first choice for the developers. Microsoft did introduce some innovative features like security advisories, [package registry][10], [sponsorship][11] etc. Microsoft is expanding GitHub by forming communities around it specially in developing countries. Recently, [GitHub announced its Indian subsidiary][12] to specially attract young developers to its platform.
So now Microsoft owns the professional social network [LinkedIn][13], developer oriented GitHub and npm. This indicates that Microsoft will continue its shopping spree and will acquire more open source related projects that have substantial developer population.
What could be next then? WordPress because it is the [most popular open source CMS][14] and [runs 33% of the websites][15] on the internet?
While we wait and watch for Microsofts next move, why not share your views on this development? Comment section is all yours.
--------------------------------------------------------------------------------
via: https://itsfoss.com/microsoft-npm-acquisition/
作者:[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://itsfoss.com/microsoft-github/
[2]: https://github.blog/2020-03-16-npm-is-joining-github/
[3]: https://www.npmjs.com/
[4]: https://www.linux.com/news/state-union-npm/
[5]: https://www.zdnet.com/article/microsoft-buys-javascript-developer-platform-npm-plans-to-integrate-it-with-github/
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/microsoft-github-npm.jpg?ssl=1
[7]: https://nodejs.org/en/
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/github-npm.jpg?ssl=1
[9]: https://itsfoss.com/github-alternatives/
[10]: https://github.blog/2019-05-10-introducing-github-package-registry/
[11]: https://itsfoss.com/github-sponsors-program/
[12]: https://github.blog/2020-02-12-announcing-github-india/
[13]: https://www.linkedin.com/
[14]: https://itsfoss.com/open-source-cms/
[15]: https://wordpress.org/news/2019/03/one-third-of-the-web/

View File

@ -1,98 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (OBS Studio 25.0 is Here With Vulkan-based Games Capture Feature and More)
[#]: via: (https://itsfoss.com/obs-studio-25-release/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
OBS Studio 25.0 is Here With Vulkan-based Games Capture Feature and More
======
_**Brief: Open source screen recording and streaming software OBS Studio 25.0 has just been released and it brings the ability to capture Vulkan-based games with game capture among other new features.**_
![][1]
If you are into recording your desktop or streaming it, you might have heard of [OBS][2] (Open Broadcaster Software) Studio. Its one of the [best screen recorder tools on Linux][3] and other operating systems.
But OBS is more than just a simple screen recorder. It also provides all the stuff you need for streaming your recordings.
### New features in OBS Studio 25.0
![OBS 25.0][4]
OBS Studio has released its latest version 25.0 with plenty of new features to make your recording and streaming experience better. Lets take a look at some of the main new features:
* Capture Vulkan-based games with game capture
* New capture method to window capture which allows capturing browsers, browser-based windows, and UWP programs
* Advanced scene collection importing allows you to import from other common streaming programs
* Media source hotkeys to allow control of playback
* Ability to drag and drop URLs to create browser sources
* Support for the [SRT protocol][5]
* Ability to lock volume values of audio sources in the mixer
* Support for certain devices that can automatically rotate their camera output such as the Logitech StreamCam
* System tray icon to show when the recording is paused
* Help icons when an property has a tooltip associated with it
Apart from there, there are plenty of bug features and minor changes that you may follow in the [release notes][6].
### Install OBS Studio 25.0 on Linux
OBS Studio is a cross-platform software and is also available for Windows and macOS in addition to Linux. You can download it from its official website.
[Download OBS Studio 25.0][7]
For Linux, you can grab the source code and build it your self. I know thats not very convenient for everyone. The good news is that you can install the latest OBS version using Snap or Flatpak packages.
On Ubuntu or any other [Linux distribution with Snap support][8], you can use the following command:
```
sudo snap install obs-studio
```
If your distribution supports Fltapak packages, you can get it from Flathub website:
[OBS Studio on Flathub][9]
For Ubuntu users, there is also the official PPA for easily installing it. In a terminal, you can enter the following command one by one:
```
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio
```
You can [learn about deleting PPA here][10].
Personally, I havent used OBS much though I have heard great stuff about it. I dont live stream but I do record my desktop to create tutorial and information Linux videos on I[ts FOSS YouTube channel][11] (you should subscribe to it if you havent already). For that, I [use Kazam][12] which I find simpler to use.
Do you use OBS Studio? Which features you like the most? Do share your views.
--------------------------------------------------------------------------------
via: https://itsfoss.com/obs-studio-25-release/
作者:[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://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/obs_logo_icon_small.png?resize=150%2C150&ssl=1
[2]: https://obsproject.com/
[3]: https://itsfoss.com/best-linux-screen-recorders/
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/obs-25-ubuntu.png?ssl=1
[5]: https://en.wikipedia.org/wiki/Secure_Reliable_Transport
[6]: https://github.com/obsproject/obs-studio/releases/tag/25.0.0
[7]: https://obsproject.com/download
[8]: https://itsfoss.com/install-snap-linux/
[9]: https://flathub.org/apps/details/com.obsproject.Studio
[10]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
[11]: https://www.youtube.com/channel/UCEU9D6KIShdLeTRyH3IdSvw
[12]: https://itsfoss.com/kazam-screen-recorder/

View File

@ -1,70 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (npm joins GitHub, building operators in Kubernetes, and more industry trends)
[#]: via: (https://opensource.com/article/20/3/npm-github-operators-kubernetes-industry-trends)
[#]: author: (Tim Hildred https://opensource.com/users/thildred)
npm joins GitHub, building operators in Kubernetes, and more industry trends
======
A weekly look at open source community and industry trends.
![Person standing in front of a giant computer screen with numbers, data][1]
As part of my role as a senior product marketing manager at an enterprise software company with an open source development model, I publish a regular update about open source community, market, and industry trends for product marketers, managers, and other influencers. Here are five of my and their favorite articles from that update.
## [npm is joining GitHub][2]
> Looking further ahead, well integrate GitHub and npm to improve the security of the open source software supply chain, and enable you to trace a change from a GitHub pull request to the npm package version that fixed it. Open source security is an important global issue, and with the recent launch of the [GitHub Security Lab][3] and GitHubs built-in [security advisories][4], we are well-positioned to make a difference. In addition, [GitHub Sponsors][5] has already paid out millions of dollars to open source contributors, and were excited to explore tasteful ways to extend it to the npm ecosystem.
**The impact**: Open source supply chain security is a big problem that probably needs a lot more resources thrown at it.
## [Why and how to build operators in Kubernetes][6]
> For cluster administrators managing large clusters, this proliferation of development methodologies and management interfaces can be problematic. The class of applications that Operators were developed to manage are almost always part of a larger application stack, with dependencies between them. If we have a lot of Operators written in different ways running on our clusters, how can we ensure they will interoperate with each other, and how do we validate and test them?
**The impact**: This illustrates two cool things about open source. First, the alternating waves of innovation and consolidation. Second, the empowering of affected parties to address their own challenges.
## [Automation for improved security frameworks][7]
> In recent years weve seen the posts of CIO and CTO elevated to boardroom level, with senior figures in IT now influencing corporate strategy. Due to a heightened awareness of cybersecurity, it wont be long before the board looks to CSO and CISO executives for strategic direction.
**The impact**: This statement has gotten truer over the last several weeks. More activity is being pushed online than ever before; keeping that activity secure is integral to making it all profitable. Security people need to be able to say "no" at the highest possible level.
## [Interoperability of open source tools: The emergence of interfaces][8]
> Being non-opinionated about the adoption of specific technologies and the methodologies of distributing its primitive resources, were the main axes of Kubernetes evolution. Additionally, the proliferation of solutions from multiple vendors played an instrumental role in the emergence of interfaces and it served as the engine for further development and innovation.
**The impact**: Kubernetes may be the only large-scale open source project where competition is hot. Even still, competitors need to be able to work together and interfaces are the points that separate collaboration and competition.
## [Do you operate OpenStack? Take this survey.][9]
> Direct feedback from the individuals and organizations operating OpenStack helps the upstream development community know what features to prioritize and which bugs to fix first, among other important learnings on how the software is being used. Each of the official project teams has the opportunity to add a question to the survey as well as review anonymized data and trends to further influence their roadmaps.
**The impact**: Not every community participant can or will provide feedback on bug reports or feature requests. In that case, it is important to provide multiple ways to get feedback and meet users where they are.
_I hope you enjoyed this list and come back next week for more open source community, market, and industry trends._
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/3/npm-github-operators-kubernetes-industry-trends
作者:[Tim Hildred][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/thildred
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_metrics_analytics_desktop_laptop.png?itok=9QXd7AUr (Person standing in front of a giant computer screen with numbers, data)
[2]: https://github.blog/2020-03-16-npm-is-joining-github/
[3]: https://securitylab.github.com
[4]: https://help.github.com/en/github/managing-security-vulnerabilities/creating-a-security-advisory
[5]: https://github.com/sponsors
[6]: https://devops.com/day-2-for-the-operator-ecosystem/
[7]: https://www.infosecurity-magazine.com/opinions/automation-governance-culture/
[8]: https://medium.com/@kgamanji/interoperability-of-open-source-tools-the-emergence-of-interfaces-f3b7a90891e4
[9]: https://superuser.openstack.org/articles/operate-openstack-take-the-survey-heres-why-it-matters/

View File

@ -1,93 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (IEEE Standards Association Launches an Open Source Collaboration Platform)
[#]: via: (https://itsfoss.com/ieee-open-source-collaboration-platform/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
IEEE Standards Association Launches an Open Source Collaboration Platform
======
_**Brief: IEEE Standards Association has announced a GitLab-based open source collaboration platform. Read how is it different and what advantages it has.**_
[IEEE][1] is the worlds largest technical professional organization dedicated to advancing technology. The IEEE Standards Association (IEEE SA) is an organization within IEEE that develops global standards in a broad range of industries.
The IEEE Standards Association (SA) has come up with an open-source collaboration platform i.e [IEEE SA Open][2].
It is technically a self-hosted GitLab instance combined with [Mattermost][3] (a [slack alternative][4]) and [GitLab Pages][5]. To describe it further, the [official blog post][6] mentioned:
> The platform enables independent software developers, startups, industry, academic institutions, and others to create, test, manage, and deploy innovative projects in a collaborative, safe, and responsible environment.
### How is it different or useful?
The main key attraction for this platform would be IEEEs members network, technical expertise, and resources.
IEEE President, [Robert Fish][7], also mentions in brief (during an interview with Radio Kan) how its different and why IEEE wanted to go with it:
> Today, much of the worlds infrastructure is run by software, and that software needs to comply with standards in communications networking, electrical grids, agriculture, and the like.
It makes sense if we want to improve standardizing technologies, it highly depends on the software. So, this definitely sounds like something to standardize innovative open-source projects to gear them up for potential capital opportunities as well.
IEEE also clarified that:
> As software becomes increasingly prevalent in the world today, ethical alignment, reliability, transparency, and democratic governance become must-haves. IEEE is uniquely positioned to endow open-source projects with these attributes.
While this sounds good, what exactly the open-source platform by the IEEE offer? Lets take a look at that:
### IEEE SA Open: Quick overview
![][8]
To start with, it is open to all and completely free to use. You just need to create an [IEEE account][9] and then [sign in to the open-source platform][10] to get started.
Along with the benefits associated with IEEEs extensive network of Members, you can also expect guidance support from their open-source community managers or community members.
![Ieee Gitlab][11]
The platform presents use cases for both standard and non-standard projects, so you can give it a try.
For its choice to go with GitLab combined with Mattermost and Pages, you get a couple of useful features, they are:
* Project planning and management features
* Source code management
* Testing, code quality, and continuous integration features
* Docker container registry and Kubernetes integration
* Application release and delivery features
* Integrated Mattermost chat forum w/slash commands; (Android and iPhone apps are fully supported)
* Capable of bridging the gap between Standards development and open source communities to allow for the advancement of nimble and creative technical solutions at a faster pace
* A safe open space with an enforced code of conduct
### Wrapping Up
Its obviously a good thing to have more platforms to potentially amplify the exposure of open-source projects hence, IEEEs initiative sounds promising to start with.
What do you think about it? Let me know your thoughts!
--------------------------------------------------------------------------------
via: https://itsfoss.com/ieee-open-source-collaboration-platform/
作者:[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.ieee.org/about/index.html
[2]: https://standards.ieee.org/content/ieee-standards/en/initiatives/opensource/
[3]: https://mattermost.com/
[4]: https://itsfoss.com/open-source-slack-alternative/
[5]: https://docs.gitlab.com/ee/user/project/pages/
[6]: https://spectrum.ieee.org/the-institute/ieee-products-services/ieee-standards-association-launches-a-platform-for-open-source-collaboration
[7]: https://www.linkedin.com/in/robertsfish/
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/ieee-opensource.jpg?ssl=1
[9]: https://www.ieee.org/profile/public/createwebaccount/showRegister.html
[10]: https://opensource.ieee.org/
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/ieee-gitlab.jpg?ssl=1

View File

@ -0,0 +1,74 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (IBM taps new leaders for hybrid cloud battles ahead)
[#]: via: (https://www.networkworld.com/article/3536654/ibm-taps-new-leaders-for-hybrid-cloud-battles-ahead.html)
[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
IBM taps new leaders for hybrid cloud battles ahead
======
IBM installs Arvind Krishna as CEO, and appoints Red Hat execs to round out new cloud-oriented team
Stephen Lawson/IDG
Amid the business chaos COVID-19 is causing, IBM has set its course by [installing][1] Arvind Krishna as CEO and Red Hat CEO Jim Whitehurst as IBM president.  The company also named Red Hat veteran Paul Cormier as CEO of Red Hat.
Krishna replaces long-time CEO Virginia Rometty, who will  retire at the end of the year, and the package of executive moves solidifies the team that will lead Big Blue into to [hybrid-cloud][2] world where it will battle Amazon, Google and Microsoft.
[[Get regularly scheduled insights by signing up for Network World newsletters.]][3]
Right now, though, that team must also compete in the face the COVID-19 pandemic, an issue [Krishna][4] mentioned in a [letter he posted on LinkedIn][5] on his first day on the job, April 6.
“During this challenging time, we all need to have empathy, solidarity, and understanding for each other…If theres one thing that this public health crisis has brought to light it is the ever essential role of IBM in the world. We are the backbone of some of the most critical systems of the world. Our technologies and services help banks run credit-card transactions, businesses run supply chains, telcos connect customers, healthcare providers improve patient care, and companies and cities tackle cyberthreats,” Krishna wrote.
IBM has been part of the technology community that is helping address COVID-19.  For example, [IBM Research][6] has been developing cloud and AI-powered technologies that can help researchers battle against coronavirus, in part by accelerating COVID-19 drug discovery. 
IBM is also leading the [COVID-19 High Performance Computing Consortium][7] with AWS, Google, HPE, and Microsoft as well as US National Labs, NASA, and others to bring [high-performance computing][8] systems together to help researchers run massive modeling calculations.
While COVID-19 is a focus for now, the long term-goal is developing cloud technologies.
[][9]
“I believe we can make IBM the most trusted technology partner of the 21st century. For this to happen, we have to ensure that IBM continues to innovate and lead in the transformational journeys our clients are on. Hybrid cloud and AI are two dominant forces driving change for our clients and must have the maniacal focus of the entire company,” he stated.
### Linux, Kubernetes and containers
Krishna also wrote about IBMs strategic cloud directions going forward. “First, we have to deepen our understanding of IBMs two strategic battles: the journey to hybrid cloud and AI. We all need to understand and leverage IBMs sources of competitive advantage. Namely, our open source and security leadership, our deep expertise and trust, and the fact that we enable clients to build mission-critical applications once and run them anywhere,” Krishna stated.
IBM also has to win the battle for architecting the cloud. “Theres a unique window of opportunity for IBM and Red Hat to establish [Linux][10], containers and Kubernetes as the new standard. We can make Red Hat OpenShift the default choice for hybrid cloud in the same way that Red Hat Enterprise Linux is the default choice for the operating system,” Krishna stated.
When IBM closed its [acquisition][11] of Red Hat last July for $34 billion it was clear it would take on the hybrid-cloud market and now, especially with the current executive team in place, that path is set more solidly.
Krishna, 57, was a principal architect of IBMs $34 billion acquisition of Red Hat last year and was IBMs senior vice president of Cloud and Cognitive Software. Red Hat said Cormier drove more than 25 acquisitions at Red Hat and is credited with pioneering the subscription model that transformed Red Hat from an open-source disruptor to an enterprise-technology mainstay.
Also as part of the new team, IBM said it tapped Bank of America telecom and cloud-technology executive Howard Boville as senior vice president of cloud platform, overseeing the IBM Cloud.
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/3536654/ibm-taps-new-leaders-for-hybrid-cloud-battles-ahead.html
作者:[Michael Cooney][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Michael-Cooney/
[b]: https://github.com/lujun9972
[1]: https://www.networkworld.com/article/3518795/ibms-ceo-virginia-rometty-to-be-replaced-by-its-cloud-red-hat-chiefs.html
[2]: https://www.networkworld.com/article/3233132/what-is-hybrid-cloud-computing.html
[3]: https://www.networkworld.com/newsletters/signup.html
[4]: https://www.cnbc.com/video/2020/04/06/watch-cnbcs-full-interview-with-new-ibm-ceo-arvind-krishna.html?linkId=85936703
[5]: https://www.linkedin.com/pulse/my-first-day-ceo-our-journey-together-arvind-krishna/?trackingId=SRWcJy7mSzagoHDTJX%2Br2Q%3D%3D
[6]: https://www.ibm.com/thought-leadership/covid19/
[7]: https://www.networkworld.com/article/3533426/covid-19-tech-giants-government-agencies-add-supercomputing-to-the-fight.html
[8]: https://www.networkworld.com/article/3534725/the-ins-and-outs-of-high-performance-computing-as-a-service.html
[9]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE22140&utm_content=sidebar (ITAAS and Corporate Storage Strategy)
[10]: https://www.networkworld.com/article/3215226/what-is-linux-uses-featres-products-operating-systems.html
[11]: https://www.networkworld.com/article/3317517/the-ibm-red-hat-deal-what-it-means-for-enterprises.html
[12]: https://www.facebook.com/NetworkWorld/
[13]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,73 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (New Linux integrity checker from Microsoft, Raspberry Pi smart TV replacement from KDE, and more open source news)
[#]: via: (https://opensource.com/article/20/4/news-april-11)
[#]: author: (Ben Cotton https://opensource.com/users/bcotton)
New Linux integrity checker from Microsoft, Raspberry Pi smart TV replacement from KDE, and more open source news
======
Catch up on the biggest open source headlines from the past two weeks.
![][1]
In this edition of our open source news roundup, we take a look at GNOME Foundation's new contributor program, a new Linux integrity checker from Microsoft, a free software alternative to smart TVs, and more!
### GNOME Foundation launches a new contributor program
A key part of keeping open source communities vibrant and healthy is bringing in new contributors. To help promote this, the GNOME Foundation and Endless teamed up to launch the inaugural [Community Engagement Challenge][2]. Phase one launched this week by opening the call for submitting project applications. Candidate projects should be aimed at bringing beginners into open source and encouraging ongoing participation in open source communities. Projects dont have to be coding, they can also be games, videos, written materials, and so on.
A panel of judges will select 20 projects to participate in phase two, where ideas will be turned into proofs of concept. At each phase, cash prizes will be awarded. [Proposals][3] are due July 1, 2020.
### Microsoft announces code integrity checker for Linux
When you run a program, you want it to be the one you think youre running. This week, Microsoft announced [Integrity Policy Enforcement][4] (IPE), a Linux Security Model released under the GPLv2.
IPE is targeted toward specific-purpose devices like network firewalls, not for general-purpose computing. It provides runtime verification that the code being executed matches the desired version. This allows administrators to detect and block altered binaries.
IPE is currently in the Request for Comments stage on the [linux-security-module][5] mailing list.
### KDE announces Plasma Bigscreen
I recently bought a new TV and, if you havent been in the market lately, its hard to find “dumb” televisions. I didnt want a smart TV because I worry about the manufacturer abandoning the software and what the device might do with my data. So KDEs recent [Plasma Bigscreen][6] announcement caught my eye.
Plasma Bigscreen takes the KDE Plasma interface I use every day and combines it with [Mycroft AI][7] to turn single-board computers into a smart TV. The beta, released last month, includes support for the Raspberry Pi 4 (Model B).
### In other news
* [IVPN for Android is now available on F-Droid][8]
* [IBM gives Outreachy $50,000 grant][9]
* [Warren For President Tech Team open source many of their projects][10]
* [Firefox 75.0 is released with a redesigned address bar and distribution via Flatpak][11]
* [LineageOS releases version 17.1 based on Android 10][12]
* [Linux kernel 5.6 released][13]
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/news-april-11
作者:[Ben Cotton][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/bcotton
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/weekly_news_roundup_tv.png?itok=tibLvjBd
[2]: https://www.gnome.org/challenge
[3]: https://surveys.gnome.org/index.php/986379?lang=en
[4]: https://microsoft.github.io/ipe/
[5]: https://lore.kernel.org/linux-security-module/20200406181045.1024164-1-deven.desai@linux.microsoft.com/T/#m297116cd00666428c2ae3e627ff39653ebb691fb
[6]: https://dot.kde.org/2020/03/26/plasma-tv-presenting-plasma-bigscreen
[7]: https://mycroft.ai/
[8]: https://www.ivpn.net/blog/ivpn-for-android-is-now-available-on-f-droid
[9]: https://developer.ibm.com/blogs/ibm-second-open-source-community-grant-outreachy/
[10]: https://medium.com/@teamwarren/open-source-tools-from-the-warren-for-president-tech-team-f1f27d2c7551
[11]: https://www.mozilla.org/en-US/firefox/75.0/releasenotes/
[12]: https://lineageos.org/Changelog-24/
[13]: https://lore.kernel.org/lkml/CAHk-=wi9ZT7Stg-uSpX0UWQzam6OP9Jzz6Xu1CkYu1cicpD5OA@mail.gmail.com/

View File

@ -1,74 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (15 years of Git: How to get started or learn something new)
[#]: via: (https://opensource.com/article/20/4/get-started-git)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
15 years of Git: How to get started or learn something new
======
On Git's 15th anniversary, learn why it is a major component in keeping
the software industry running.
![Scissors cutting open access to files][1]
If there's anything that's changed software in the past two decades, [Git][2] is at the top of the list.
If you don't use Git personally, you might think it's just a tech fad, an incidental darling among developers just because it was created by the same person who started the [Linux][3] project itself. There may be some truth to that, but Git does manage to achieve some feats that no other industry has managed. With Git, developers spread all over the world are able to work on the same code, literally at the same time, with a history of every change made, and then merge all the work together to result in a finished product. The complexity is enormous, and so the tool itself can get complex, but in the end, it's a major component in keeping the software industry running.
Whether you know Git or not, you'll very likely encounter it should you dig deep enough into open source software or enter into computer science. Whether you use Git to just download an installer package or whether you interface with it daily to manage code, learning more about it is elucidating and empowering.
### Git terminology
As with any specialized tool, there's a lot of jargon in Git. Terms like "clone" and "merge" and "rebase" are mysterious at best, and at worst can feel almost exclusionary. Trying to understand what all of these terms mean can be overwhelming, but not if you take a little guidance from Matthew Broberg's excellent [Git Terminology 101][4] article. In just one quick read, you'll be able to listen in on conversations about Git with real comprehension.
### Getting started with Git
If you need to know how to use Git, then my own [introductory article series about using Git][5] is a great place to start. The articles are several years old now, but as with so many Linux and UNIX technologies, the interface hasn't changed significantly, so the articles are as relevant today as they were when I wrote them. The series introduces you to the most basic concepts of Git, and steps you through the process of creating a repository, committing files, restoring files, merging branches, and much more.
### Common Git services
One of the most common uses of Git is a public Git hosting service, such as GitLab and GitHub. In his [How to clone, modify, add, and delete files in Git][6] article, Kedar Vijay Kulkarni demonstrates the everyday tasks most developers perform with Git. This isn't required reading for non-developers, but it's a must for anyone who wants to contribute to a project on a public Git hosting service. This article addresses Github specifically because it's one of the most common platforms today, but the principles apply to any web front-end for Git, including popular open source frameworks like [GitLab][7], [Gogs][8], and [Gitea][9].
### Try this Git walkthrough
Do you prefer a guided tour to aimless exploration? Sometimes the easiest way to learn something is to mimic someone else's exact steps. You know the end result is a guaranteed success, so you have confidence while performing the exercise, and your brain and fingers get the benefit of repetition, which builds memory. If that's your learning style, then follow along with Alan Formy-Duvall's [practical learning exercise for Git][10] and find out what a successful Git session feels like.
### Git apps
Believe it or not, Git has more interfaces than text you type into a terminal. Obviously there are the web interfaces of Git hosts online, but you can use Git clients on your computer, too. For just a light layer of assistance, read Jesse Duffield's article about [Lazygit][11] or Olaf Anders' article about [Tig][12]. For the full graphical application experience, read my article about [Git-cola][13], [Sparkleshare][14], and [still others][15]. And yes, there are even [interfaces for your mobile devices][16]!
### Learn more about Git
Knowledge is power, so don't let Git be a mystery to you. Whether you use it directly or you only know it by name or you'd never heard of it before, now's a great time to learn about Git. There are great resources out there to help you understand how it works, why it works, and why people love it so much.  Dive in, take it at your own pace, and learn to love Git!
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/get-started-git
作者:[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/document_free_access_cut_security.png?itok=ocvCv8G2 (Scissors cutting open access to files)
[2]: https://en.wikipedia.org/wiki/Git
[3]: https://opensource.com/resources/linux
[4]: https://opensource.com/article/19/2/git-terminology
[5]: https://opensource.com/life/16/7/stumbling-git
[6]: https://opensource.com/article/18/2/how-clone-modify-add-delete-git-files
[7]: https://about.gitlab.com/install/
[8]: https://gogs.io/
[9]: https://gitea.io/en-us/
[10]: https://opensource.com/article/19/5/practical-learning-exercise-git
[11]: https://opensource.com/article/20/3/lazygit
[12]: https://opensource.com/article/19/6/what-tig
[13]: https://opensource.com/article/20/3/git-cola
[14]: https://opensource.com/article/19/4/file-sharing-git
[15]: https://opensource.com/life/16/8/graphical-tools-git
[16]: https://opensource.com/article/19/4/calendar-git#mobile

View File

@ -0,0 +1,99 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (5 open source activities while you work from home)
[#]: via: (https://opensource.com/article/20/4/open-source-activities)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
5 open source activities while you work from home
======
Work-life balance is important whether you're working from home
temporarily or it's your usual mode of earning a living.
![Person in a field of dandelions][1]
The mythos of the remote home office or the exciting archetype of the digital nomad are as appealing as they are dangerous. It's great to be able to avoid a commute, to be able to stay comfortable at home while getting lots of work done, and to be master of your own schedule. But along with those liberties, you inherit the responsibility of remembering to be a normal, functioning human being. Believe it or not, the two aren't mutually exclusive. You can do both, but you have to work at it. Here are some ideas on how.
### Plant something
![Seeeduino in the garden][2]
You may have an abundance of little ones to care for during the day, and if you do, you should read our [article][3] about fun open source projects for kids and parents. If you don't, or if you're just keen to try caring for something that's quiet, then you might find it satisfying to plant something.
I used to think gardening was something you did as a way to establish a routine: each morning, you wake up and tend to your plants before you start your day, each evening you might pull weeds, and so on. Now that I have a garden, I realize that it's more like a low-stress puzzle. Learning to tend to plants is a little like learning to program. You learn the basics first, you learn to debug (literally, in the case of aphids), and then you learn how to optimize growth and maybe even [how to automate plant care][4].
If you're not attracted to gardening, there are plenty of other [outdoor projects][5] that are useful in getting you outdoors with a purpose and encouraging you to go back out for more.
### Go for a walk
![Walking][6]
The phrases "go for a walk" or "get some fresh air" are so common that they seem trite, but that doesn't make the result any less valid. Getting outside your usual workspace is vital for clarity and drive, but sometimes going outside feels a little pointless. You can only walk around the block so many times before the journey loses excitement.
If you need a goal for ambling around your neighborhood, you can download a handy app called [StreetComplete][7]. It's a quest-based app that presents you with points of interest in your area with incomplete [Open Street Map][8] data. You can help crowdsource better open source maps by verifying and providing information through the app. Suddenly, that aimless meandering you don't really want to do is a fun quest for you and your family.
### Diversify
![Mini stapler][9]
Being in an office can present exciting challenges, whether it's because you're in a dynamic industry or in a petty fight with a colleague over ownership of a stapler. When you work from home, your daily routine can get pretty, well, routine. If that's the case, it might be time to diversify.
If you've been meaning to [get involved with open source][10], now's a great time for it.
If you suspect you might be artistic (or even if you're convinced you're not, but you have something you want to express), then maybe it's time to finally learn how to create some [digital imagery][11].
Or maybe you're curious about programming. It might be easier than you think and given enough free time, you might even end up with [your own game written in Python][12].
### Make some music
![Music keyboardas][13]
Artistic expression is important, whether you're working from home or living with someone who's bored at home. The great thing about music is that you don't need to be _musical_ to [make some really cool noise][14]. In fact, you can make some [wild sounds on a Raspberry Pi][15], if you have one lying around.
If you happen to be musical, though, you can have a go at a digital audio workstation like [Qtractor][16] or [Rosegarden][17]. For inspiration, read about a [professional composer][18] and the music festival he created.
### Refurbish
![Old computers][19]
I don't like it when good things go to waste, especially computers. Read about [refurbishing old computers][20] and [really old computers][21], and then rummage around in your attic to find one for your own experiments.
### Meet the challenge
Being stuck at home for long periods of time, whether it's for a few weeks or the better part of your career, can be challenging. However, open source is a vast landscape of opportunity. Explore and find the parts of it that appeal to you. You can build a hobby, and maybe even a career, out of all the fun things you can do with other people's toys.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/open-source-activities
作者:[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/OSDC_dandelion_520x292.png?itok=-xhFQvUj (Person in a field of dandelions)
[2]: https://opensource.com/sites/default/files/uploads/diversions_seeeduino.jpg (Seeeduino in the garden)
[3]: https://opensource.com/article/19/12/kids-students-education
[4]: https://opensource.com/article/17/3/arduino-garden-projects
[5]: https://opensource.com/article/19/5/hardware-outdoors
[6]: https://opensource.com/sites/default/files/uploads/diversions_walk.jpg (Walking)
[7]: https://opensource.com/article/20/1/streetcomplete-crowdsource-maps
[8]: https://opensource.com/article/17/8/openstreetmap
[9]: https://opensource.com/sites/default/files/uploads/diversions_stapler.jpg (Mini stapler)
[10]: https://opensource.com/article/17/10/open-source-cats
[11]: https://opensource.com/life/12/6/design-without-debt-five-tools-for-designers
[12]: https://opensource.com/article/17/10/python-101
[13]: https://opensource.com/sites/default/files/uploads/diversions_keyboards.jpg (Music keyboards)
[14]: https://opensource.com/life/16/2/linux-multimedia-studio
[15]: https://opensource.com/article/20/3/sonic-pi
[16]: https://opensource.com/article/17/6/qtractor-audio
[17]: https://opensource.com/article/18/3/make-sweet-music-digital-audio-workstation-rosegarden
[18]: https://opensource.com/article/20/2/linux-open-source-music
[19]: https://opensource.com/sites/default/files/uploads/diversions_old-computers.jpg (Old computers)
[20]: https://opensource.com/article/19/7/how-make-old-computer-useful-again
[21]: https://opensource.com/article/20/2/restore-old-computer-linux

View File

@ -1,156 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (MFGJT)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Best Audio Editors For Linux)
[#]: via: (https://itsfoss.com/best-audio-editors-linux)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
Best Audio Editors For Linux
======
Youve got a lot of choices when it comes to audio editors for Linux. No matter whether you are a professional music producer or just learning to create awesome music, the audio editors will always come in handy.
Well, for professional-grade usage, a [DAW][1] (Digital Audio Workstation) is always recommended. However, not everyone needs all the functionalities, so you should know about some of the most simple audio editors as well.
In this article, we will talk about a couple of DAWs and basic audio editors which are available as **free and open source** solutions for Linux and (probably) for other operating systems.
### Top Audio Editors for Linux
![Best audio editors and DAW for Linux][2]
We will not be focusing on all the functionalities that DAWs offer but the basic audio editing capabilities. You may still consider this as the list of best DAW for Linux.
**Installation instruction:** You will find all the mentioned audio editors or DAWs in your AppCenter or Software center. In case, you do not find them listed, please head to their official website for more information.
#### 1\. Audacity
![audacity audio editor][3]
Audacity is one of the most basic yet a capable audio editor available for Linux. It is a free and open-source cross-platform tool. A lot of you must be already knowing about it.
It has improved a lot when compared to the time when it started trending. I do recall that I utilized it to “try” making karaokes by removing the voice from an audio file. Well, you can still do it but it depends.
**Features:**
It also supports plug-ins that include VST effects. Of course, you should not expect it to support VST Instruments.
* Live audio recording through a microphone or a mixer
* Export/Import capability supporting multiple formats and multiple files at the same time
* Plugin support: LADSPA, LV2, Nyquist, VST and Audio Unit effect plug-ins
* Easy editing with cut, paste, delete and copy functions.
* Spectogram view mode for analyzing frequencies
#### 2\. LMMS
![][4]
LMMS is a free and open source (cross-platform) digital audio workstation. It includes all the basic audio editing functionalities along with a lot of advanced features.
You can mix sounds, arrange them, or create them using VST instruments. It does support them. Also, it comes baked in with some samples, presets, VST Instruments, and effects to get started. In addition, you also get a spectrum analyzer for some advanced audio editing.
**Features:**
* Note playback via MIDI
* VST Instrument support
* Native multi-sample support
* Built-in compressor, limiter, delay, reverb, distortion and bass enhancer
#### 3\. Ardour
![Ardour audio editor][5]
Ardour is yet another free and open source digital audio workstation. If you have an audio interface, Ardour will support it. Of course, you can add unlimited multichannel tracks. The multichannel tracks can also be routed to different mixer tapes for the ease of editing and recording.
You can also import a video to it and edit the audio to export the whole thing. It comes with a lot of built-in plugins and supports VST plugins as well.
**Features:**
* Non-linear editing
* Vertical window stacking for easy navigation
* Strip silence, push-pull trimming, Rhythm Ferret for transient and note onset-based editing
#### 4\. Cecilia
![cecilia audio editor][6]
Cecilia is not an ordinary audio editor application. It is meant to be used by sound designers or if you are just in the process of becoming one. It is technically an audio signal processing environment. It lets you create ear-bending sound out of them.
You get in-build modules and plugins for sound effects and synthesis. It is tailored for a specific use if that is what you were looking for look no further!
**Features:**
* Modules to achieve more (UltimateGrainer A state-of-the-art granulation processing, RandomAccumulator Variable speed recording accumulator,
UpDistoRes Distortion with upsampling and resonant lowpass filter)
* Automatic Saving of modulations
#### 5\. Mixxx
![Mixxx audio DJ ][7]
If you want to mix and record something while being able to have a virtual DJ tool, [Mixxx][8] would be a perfect tool. You get to know the BPM, key, and utilize the master sync feature to match the tempo and beats of a song. Also, do not forget that it is yet another free and open source application for Linux!
It supports custom DJ equipment as well. So, if you have one or a MIDI you can record your live mixes using this tool.
**Features**
* Broadcast and record DJ Mixes of your song
* Ability to connect your equipment and perform live
* Key detection and BPM detection
#### 6\. Rosegarden
![rosegarden audio editor][9]
Rosegarden is yet another impressive audio editor for Linux which is free and open source. It is neither a fully featured DAW nor a basic audio editing tool. It is a mixture of both with some scaled down functionalities.
I wouldnt recommend this for professionals but if you have a home studio or just want to experiment, this would be one of the best audio editors for Linux to have installed.
**Features:**
* Music notation editing
* Recording, Mixing, and samples
### Wrapping Up
These are some of the best audio editors you could find out there for Linux. No matter whether you need a DAW, a cut-paste editing tool, or a basic mixing/recording audio editor, the above-mentioned tools should help you out.
Did we miss any of your favorite? Let us know about it in the comments below.
--------------------------------------------------------------------------------
via: https://itsfoss.com/best-audio-editors-linux
作者:[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://en.wikipedia.org/wiki/Digital_audio_workstation
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/01/linux-audio-editors-800x450.jpeg?resize=800%2C450&ssl=1
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/audacity-audio-editor.jpg?fit=800%2C591&ssl=1
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/lmms-daw.jpg?fit=800%2C472&ssl=1
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/ardour-audio-editor.jpg?fit=800%2C639&ssl=1
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/01/cecilia.jpg?fit=800%2C510&ssl=1
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/01/mixxx.jpg?fit=800%2C486&ssl=1
[8]: https://itsfoss.com/dj-mixxx-2/
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/rosegarden.jpg?fit=800%2C391&ssl=1
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/01/linux-audio-editors.jpeg?fit=800%2C450&ssl=1

View File

@ -1,179 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Navigating man pages in Linux)
[#]: via: (https://www.networkworld.com/article/3519853/navigating-man-pages-in-linux.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
Navigating man pages in Linux
======
The man pages on a Linux system can do more than provide information on particular commands. They can help discover commands you didn't realize were available.
[Hello I'm Nik][1] [(CC0)][2]
Man pages provide essential information on Linux commands and many users refer to them often, but theres a lot more to the man pages than many of us realize.
You can always type a command like “man who” and get a nice description of how the man command works, but exploring commands that you might not know could be even more illuminating. For example, you can use the man command to help identify commands to handle some unusually challenging task or to show options that can help you use a command you already know in new and better ways.
Lets navigate through some options and see where we end up.
[MORE ON NETWORK WORLD: Linux: Best desktop distros for newbies][3]
### Using man to identify commands
The man command can help you find commands by topic. If youre looking for a command to count the lines in a file, for example, you can provide a keyword. In the example below, weve put the keyword in quotes and added blanks so that we dont get commands that deal with “accounts” or “accounting” along with those that do some counting for us.
```
$ man -k ' count '
anvil (8postfix) - Postfix session count and request rate control
cksum (1) - checksum and count the bytes in a file
sum (1) - checksum and count the blocks in a file
timer_getoverrun (2) - get overrun count for a POSIX per-process timer
```
To show commands that relate to new user accounts, we might try a command like this:
```
$ man -k "new user"
newusers (8) - update and create new users in batch
useradd (8) - create a new user or update default new user information
zshroadmap (1) - informal introduction to the zsh manual The Zsh Manual, …
```
Just to be clear, the third item in the list above makes a reference to “new users” liking the material and is not a command for setting up, removing or configuring user accounts. The man command is simply matching words in the command description, acting very much like the apropos command. Notice the numbers in parentheses after each command listed above. These relate to the man page sections that contain the commands.
### Identifying the manual sections
The man command sections divide the commands into categories. To list these categories, type “man man” and look for descriptions like those below. You very likely wont have Section 9 commands on your system.
[][4]
```
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g.
man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
```
Man pages cover more than what we typically think of as “commands”. As you can see from the above descriptions, they cover system calls, library calls, special files and more.
The listing below shows where man pages are actually stored on Linux systems. The dates on these directories will vary because, with updates, some of these sections will get new content while others will not.
```
$ ls -ld /usr/share/man/man?
drwxr-xr-x 2 root root 98304 Feb 5 16:27 /usr/share/man/man1
drwxr-xr-x 2 root root 65536 Oct 23 17:39 /usr/share/man/man2
drwxr-xr-x 2 root root 270336 Nov 15 06:28 /usr/share/man/man3
drwxr-xr-x 2 root root 4096 Feb 4 10:16 /usr/share/man/man4
drwxr-xr-x 2 root root 28672 Feb 5 16:25 /usr/share/man/man5
drwxr-xr-x 2 root root 4096 Oct 23 17:40 /usr/share/man/man6
drwxr-xr-x 2 root root 20480 Feb 5 16:25 /usr/share/man/man7
drwxr-xr-x 2 root root 57344 Feb 5 16:25 /usr/share/man/man8
```
Note that the man page files are generally **gzipped** to save space. The man command unzips them as needed whenever you use the man command.
```
$ ls -l /usr/share/man/man1 | head -10
total 12632
lrwxrwxrwx 1 root root 9 Sep 5 06:38 [.1.gz -> test.1.gz
-rw-r--r-- 1 root root 563 Nov 7 05:07 2to3-2.7.1.gz
-rw-r--r-- 1 root root 592 Apr 23 2016 411toppm.1.gz
-rw-r--r-- 1 root root 2866 Aug 14 10:36 a2query.1.gz
-rw-r--r-- 1 root root 2361 Sep 9 15:13 aa-enabled.1.gz
-rw-r--r-- 1 root root 2675 Sep 9 15:13 aa-exec.1.gz
-rw-r--r-- 1 root root 1142 Apr 3 2018 aaflip.1.gz
-rw-r--r-- 1 root root 3847 Aug 14 10:36 ab.1.gz
-rw-r--r-- 1 root root 2378 Aug 23 2018 ac.1.gz
```
### Listing man pages by section
Even just looking at the first 10 man pages in Section 1 (as shown above), you are likely to see some commands that are new to you maybe **a2query** or **aaflip** (shown above).
An even better strategy for exploring commands is to list commands by section without looking at the files themselves but, instead, using a man command that shows you the commands and provides a brief description of each.
In the command below, the **-s 1** instructs man to display information on commands in section 1. The **-k .** makes the command work for all commands rather than specifying a particular keyword; without this, the man command would come back and ask “What manual page do you want?” So, use a keyword to select a group of related commands or a dot to show all commands in a section.
```
$ man -s 1 -k .
2to3-2.7 (1) - Python2 to Python3 converter
411toppm (1) - convert Sony Mavica .411 image to ppm
as (1) - the portable GNU assembler.
baobab (1) - A graphical tool to analyze disk usage
busybox (1) - The Swiss Army Knife of Embedded Linux
cmatrix (1) - simulates the display from "The Matrix"
expect_dislocate (1) - disconnect and reconnect processes
red (1) - line-oriented text editor
enchant (1) - a spellchecker
```
### How many man pages are there?
If youre curious about how many man pages there are in each section, you can count them by section with a command like this:
```
$ for num in {1..8}
> do
> man -s $num -k . | wc -l
> done
2382
493
2935
53
441
11
245
919
```
The exact number may vary, but most Linux systems will have a similar number of commands. If we use a command that adds these numbers together, we can see that the system that this command is running on has nearly 7,500 man pages. Thats a lot of commands, system calls, etc.
```
$ for num in {1..8}
> do
> num=`man -s $num -k . | wc -l`
> tot=`expr $num + $tot`
> echo $tot
> done
2382
2875
5810
5863
6304
6315
6560
7479 <=== total
```
Theres a lot you can learn by reading man pages, but exploring them in other ways can help you become aware of commands you may not have known were available on your system.
Join the Network World communities on [Facebook][5] and [LinkedIn][6] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3519853/navigating-man-pages-in-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://unsplash.com/photos/YiRQIglwYig
[2]: https://creativecommons.org/publicdomain/zero/1.0/
[3]: https://www.networkworld.com/slideshow/153439/linux-best-desktop-distros-for-newbies.html#tk.nww-infsb
[4]: https://www.networkworld.com/article/3440100/take-the-intelligent-route-with-consumption-based-storage.html?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE21620&utm_content=sidebar ( Take the Intelligent Route with Consumption-Based Storage)
[5]: https://www.facebook.com/NetworkWorld/
[6]: https://www.linkedin.com/company/network-world

View File

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

View File

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

View File

@ -0,0 +1,77 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (My Linux Story: From 8-bit enthusiast to Unix sysadmin)
[#]: via: (https://opensource.com/article/20/4/linux-story)
[#]: author: (James Farrell https://opensource.com/users/jamesf)
My Linux Story: From 8-bit enthusiast to Unix sysadmin
======
How my early interest in computers got me hooked on a career as a
sysadmin and Linux fan.
![Person typing on a 1980's computer][1]
It all started in the mid-1980s with an [Apple ][c][2] that my parents purchased for our family. Although I enjoyed playing games, I quickly became fascinated with BASIC programming and how useful it could be for work and fun. This was an era when computers were viewed as little more than typewriters, so people with "advanced computer skills" could easily use them to their advantage.
One example was using BASIC and a dot matrix printer to auto-generate punishment assignments. When I was assigned to write out 200 times some apologetic statements, I asked my teacher if it could be typed out. On confirmation, I wrote a 5 line BASIC program to generate it for me. Another example of subtle trickery was using non-WYSIWYG word processors, such as AppleWorks for micro-manipulation of fonts, line spacing, and margins to "stretch" term papers out to the required length.
My obsession with computers quickly lead to an Apple ][gs with a RAM drive card and an x86 PC co-processor card. Modems and BBSs were getting hot, and having a dual-hardware system like this gave me all sorts of options for software. However, modem speeds of 2400bps put a real damper on getting anything more than a few KBs of fun downloads per day. I stuck with Apple as a hobby for some time, but that was soon to change.
### Venturing into Unix
My undergraduate program was BS in Computer Information Systems (CIS) and my graduate degree was MS in Computer Science. My undergraduate education program put me mostly into PCs and a little into timeshare mainframes. The real fun began in my graduate programs, where dial-in access to Unix machines with internet connections opened a whole new world of exploration. Although I still used my dual-processor ][gs for modem work and writing and printing papers, Unix systems really grabbed my attention with their general-access Telnet-based games, FTP archives, online email, and C programming. Gopher was popular and growing with people like me who were bound to plain terminal interfaces.
My graduate program took a fateful turn for the better when I was assigned to the academic computing department, which was charged with running computer services for the school. The students had access to [Ultrix][3]-based systems with X Window terminals. Most were grayscale, as color processing was then a CPU intensive task and really affected system performance. The few color systems were nice, but those machines just dragged.
This was a really fun time for me, as I was given root access to systems and assigned to system and network maintenance. I had some excellent mentors, and this strongly influenced my decision to get into system administration rather than programming (although I still really love programming to this day).
### From Unix to Linux
Scarcity is the mother of invention, and we students often got creative when we had to share the scant resources of the school's computer systems. We had three to five times more students than we had Ultrix workstations, so finding resources (especially at project delivery time) was often a challenge. There was a bank of 56k [PPP][4] modems available for remote system access when graphical displays were not needed. However, finding a machine with spare resources and sharing the system for source compilation often resulted in slow progress. Like most, I found working at night often helped, but I needed something else to let me iterate more quickly.
Then one of the school's sysadmins suggested I check out a Unix system that was freely available. This was Linux, made available as 3.5" floppy images. Given our school's blazing fast T1 line, it was easy for me to search newsgroups and other sources to learn how to download it. It was all 32-bit Intel PC-based, a class of equipment that I did not own.
Luckily, my work at the school gave me access to junk piles of old computers, so the wheels started turning.
I found enough discarded PCs to build a solid 80386 PC with some decent RAM (I am sure well under 1GB), a workable graphic display, a thin-net (coax) Ethernet card, and a hard disk. The images I had were Linux kernel 0.98, and I don't recall it being part of an official distribution (it might have been SLS). What I do remember is that it came on a series of floppy images—the first booted the kernel and a minimal installer, next it formatted the drive, and then it asked for each successive floppy image to install the core GNU utilities. After the core was installed and the system bootable, you would download and install other package images, like compilers and such.
This was a serious boon to me in my academic career. With no X Window server display running, this PC seriously outperformed the Ultrix workstations I had access to at school. I was allowed to connect this machine to the academic network, mount the school's student Network File System (NFS) shares, and access the internet directly. Since my graduate program used [GCC][5] (and sometimes Perl 4) for most student work, I could do my development work locally. This gave me exclusive access to a key resource that enabled me to iterate more quickly on my projects.
All was not perfect, however. The hardware was a tiny bit unstable (likely why it was discarded), but I could deal with that. What really got me was how much Linux and Ultrix differed at the OS and system library level. I began to appreciate what it meant to port software to other platforms; I was free to develop wherever I wanted, but I had to deliver my projects as Ultrix compiled binaries. The C code that ran perfectly on one platform would crash on the other. This was very frustrating, but probably my rudest awakening was early Linux's handling of null-pointer dereferencing. Linux seemed happy to pass over these as a virtual no-op, but Ultrix promptly dumped core on [SIGSEGV][6]. This was quite a thing to find out when my first port to the target platform happened days before my project was due! This also made my exploration of C++ quite challenging, as my careless use of malloc()/free() along with automatic [constructor and destructor][7] processing peppered my projects with null pointer bombs all over the place.
Toward the end of my graduate program, I upgraded to a complete beast of a workstation—an Intel 486DX2 66MHz with SCSI hard drives, a CD-ROM drive, a 1024x768 RGB monitor, and a 16550 UART serial card perfectly matched to my new US Robotics V.Everything modem. It could dual-boot Windows and Linux, but more importantly, the graphics card and processor allowed a much more pleasant (and faster) development environment. The old 386 was still in service back at the school, but most of my heavy work and hacking now happened at home.
Similar to [Mike Harris' story][8] about Linux in the '90s, I really got into those CD bundles that were popular at the time. There was a new Micro Center computer store close to where I lived, and it was a goldmine of hobby PC parts, phenomenal technical books, and every conceivable Linux (and free Unix) CD archive. I remember [Yggdrasil][9] and [Slackware][10] being some of my favorite distributions. What was really incredible was the enormous size of CD storage—650MB! This was an essential resource for getting access to software. Yes, you could download the bits at 56k, but that was quite limiting. Not to mention the fact that most people could not afford to archive that much idle data for later perusal.
### And on to today
This is what kicked off my more than 25 years of system administration and open source software fun. Linux has been an important part of both my career and personal development. Nowadays, I am still heavily into Linux (mostly CentOS, RedHat, and Ubuntu), but often have fun with the likes of [FreeBSD][11] and other cool open source offerings.
My forays into Linux led me to Opensource.com, where I hope to give back a little and help bootstrap new generations of hands-on computer fun.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/linux-story
作者:[James Farrell][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/jamesf
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/1980s-computer-yearbook.png?itok=eGOYEKK- (Person typing on a 1980's computer)
[2]: https://en.wikipedia.org/wiki/Apple_IIc
[3]: https://en.wikipedia.org/wiki/Ultrix
[4]: https://en.wikipedia.org/wiki/Point-to-Point_Protocol
[5]: https://en.wikipedia.org/wiki/GNU_Compiler_Collection
[6]: https://en.wikipedia.org/wiki/Segmentation_fault
[7]: https://www.tutorialspoint.com/cplusplus/cpp_constructor_destructor.htm
[8]: https://opensource.com/article/19/11/learning-linux-90s
[9]: https://en.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X
[10]: http://slackware.com
[11]: https://www.freebsd.org/

View File

@ -0,0 +1,84 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (GNOME Announces Community Engagement Challenge Offering up to $65,000 in Rewards)
[#]: via: (https://itsfoss.com/gnome-community-engagement-challenge/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
GNOME Announces Community Engagement Challenge Offering up to $65,000 in Rewards
======
Its always good to see several competitions or challenges trying to promote Free and Open-Source Software (FOSS) more than ever.
In a recent effort by GNOME with the help of [Endless][1], they announced the inaugural GNOME Community Engagement Challenge.
This Community Challenge is a part of their original announcement of [coding education challenge for which GNOME was granted $500,000 funding by Endless][2] last year.
The three-phase challenge aims to attract new developers to engage with FOSS and potentially create new/unique solutions that would gain more traction from the next-gen coders.
The challenge will involve up to $65,000 in cash prizes. Sounds exciting, right? Lets take a look at some of the details involved in the challenge.
![][3]
### Why The GNOME Community Engagement Challenge?
In their official [press release][4], they mentioned their primary motive for the challenge:
> “Through the Challenge we hope to reach a diverse audience, to encourage beginning coders to get involved with the FOSS community to help ensure that free software is available long into the future,” said Neil McGovern, GNOME Foundation Executive Director. “What better way to do that than to reach out to the community itself to come up with creative ways to inspire the next generation?”
As Neil mentioned above, its definitely a good idea to reach out to more people (community) to look for creative ways to promote and work on FOSS projects that will leave a significant impact on the open-source community.
And, rewarding for the ideas in the form of a challenge will easily get the attention needed.
### Heres How The Community Challenge Works
To quote the official announcement:
> The Challenge will ask entrants to devise creative ways to promote open-source software to coders typically in high school and college. How a submission will achieve this goal has deliberately been left open-ended to encourage unique, novel approaches.
So, theres no particular constraint for the type of ideas or projects you can propose and submit. But, it would be wise to read the usual [terms and conditions][5] to know about the submission rules, eligibility, requirements, prize details, and more.
Here are the key information about the three phases of the challenge as per the announcement:
* The **first phase** of the Challenge asks entrants to submit a written proposal for their concept no later than **July 1, 2020**. Twenty entries will be chosen to move to the next round and receive **$1000 each**.
* The **second phase** of the Challenge will require proof of concept, with four entries receiving **$5000** and moving onto the final round.
* The final round will call for a deliverable end product, with the winner receiving **$15,000** and the second place finisher receiving **$10,000**.
They plan to announce the winner of the challenge in the spring of 2021.
You can take a look at their [challenge FAQ][6] and the [official webpage][7] for more details before starting to submit your entry on **April 9th**. The last date of submission is **July 1, 2020**.
Head to their website to get started and explore more about the challenge.
[GNOME Community Engagement Challenge][7]
### Wrapping Up
I think this is a perfect opportunity for developers to get started with FOSS projects that will end up rewarding them with a good amount of money and help the community at the same time.
What do you think about the community engagement challenge by GNOME? Feel free to let me know your thoughts in the comments below.
--------------------------------------------------------------------------------
via: https://itsfoss.com/gnome-community-engagement-challenge/
作者:[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.endlessnetwork.com/
[2]: https://itsfoss.com/endless-gnome-coding-education-challenge/
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/gnome-community-challenge.png?ssl=1
[4]: https://www.gnome.org/news/2020/04/gnome-foundation-and-endless-launch-inaugural-community-engagement-challenge/
[5]: https://www.gnome.org/challenge/terms/
[6]: https://www.gnome.org/challenge/faq/
[7]: https://www.gnome.org/challenge/

View File

@ -0,0 +1,111 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Heres How to Find Out Which Desktop Environment You are Using)
[#]: via: (https://itsfoss.com/find-desktop-environment/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
Heres How to Find Out Which Desktop Environment You are Using
======
If you are a new Linux user and seeking help in one of the Linux forums, you may be asked this question:
_**“Which desktop environment are you using?”**_
You have an idea about what a desktop environment is but how do you know which one are you using? Ill tell you how to find it out. Ill show the command line method first because that is applicable to [all kind of Linux distributions][1]. Ill also show the graphical way of getting this information.
### Check which desktop environment you are using
![][2]
You can [use the echo command in Linux][3] to display the value of XDG_CURRENT_DESKTOP variable in the terminal.
Open the terminal and copy paste this command:
```
echo $XDG_CURRENT_DESKTOP
```
For example, it shows that I am using [GNOME desktop][4] in [Ubuntu 20.04][5]:
```
[email protected]:~$ echo $XDG_CURRENT_DESKTOP
ubuntu:GNOME
```
While this command quickly tells you which desktop environment is being used, it doesnt give any other information.
Knowing the version of desktop environment (also called DE) could be important in some cases. Each new version of a software brings new features or removes some. [GNOME 3.36][6] introduces a Do Not Disturb option to toggle off all the desktop notifications.
Suppose you read about this new Do Not Disturb feature. You verify that you are using GNOME and yet you dont see this option in your GNOME desktop. If you could check the GNOME desktop version you have installed on your system, that could make things clear for you.
Ill show you the commands to check the desktop environments version first because you can use it in any Linux, running desktop environment.
### How to get desktop environment version
Unlike getting the name of desktop environment. getting its version number is not straightforward because there is no standard command or environment variable that could give this information.
One way to get the desktop environment information in Linux is by using a tool like [Screenfetch][7]. This [command line tool displays the logo of your Linux distribution in ascii format][8] along with a few basic system information. Desktop environment version is one of them.
In Ubuntu based distributions, you can install Screenfetch by [enabling Universe repository][9] and then using this command:
```
sudo apt install screenfetch
```
For other Linux distributions, please use your systems package manager to install this program.
Once installed, simply type screenfetch in the terminal and it should show the desktop environment version along with other system information.
![Check Desktop Environment Version][10]
As you can see in the above image, my system is using GNOME 3.36.1 (basically GNOME 3.36). You can also [check the Linux kernel version][11] and other details here.
Please keep in mind that it is not necessary that Screenfetch will display the desktop environment version. I checked its source code and it has lots of if-else code to get the version information from a number of sources and parameters in various desktop environments. If it can find nothing on version, it just displays the DE name.
### Using GUI to check desktop environment version
Almost all desktop environments provide basic system details in their Settings-About section.
The one major problem is that most DEs look different and thus I cannot show the exact steps for each of them. I am going to show it for GNOME and I let you discover it in your desktop.
So, search for Settings in the menu (press Windows key and search):
![Search for Settings application][12]
In here, go to the bottom to find the About section. Click on it and you should have the desktop environment along with its version.
![Check Desktop Environment in Ubuntu][13]
As you can see, it shows that my system is using GNOME 3.36.
I hope you find this quick beginner tip useful. If you have questions or suggestions, please leave a comment below.
--------------------------------------------------------------------------------
via: https://itsfoss.com/find-desktop-environment/
作者:[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://itsfoss.com/what-is-linux/
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/check-desktop-environment.jpg?ssl=1
[3]: https://linuxhandbook.com/echo-command/
[4]: https://www.gnome.org/
[5]: https://itsfoss.com/ubuntu-20-04-release-features/
[6]: https://itsfoss.com/gnome-3-36-release/
[7]: https://github.com/KittyKatt/screenFetch
[8]: https://itsfoss.com/display-linux-logo-in-ascii/
[9]: https://itsfoss.com/ubuntu-repositories/
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/check-desktop-environment-version.jpg?ssl=1
[11]: https://itsfoss.com/find-which-kernel-version-is-running-in-ubuntu/
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/08/applications_menu_settings.jpg?ssl=1
[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/check-desktop-environment-ubuntu.jpg?ssl=1

View File

@ -0,0 +1,75 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to set up a remote school environment for kids with Linux)
[#]: via: (https://opensource.com/article/20/4/school-home-linux)
[#]: author: (Alan Formy-Duval https://opensource.com/users/alanfdoss)
How to set up a remote school environment for kids with Linux
======
Repurpose an old computer to support the new home-schooler in your life.
![Image by Alan Formy-Duvall][1]
COVID-19 has suddenly thrown all of us into a new and challenging situation. Many of us are now working full-time from home, and for a lot of us (especially people who aren't used to working remotely), this is taking some getting used to.
Another group that is similarly challenged is our kids. They can't go to school or participate in their regular after-school activities. My daughter's elementary school closed its classrooms and is teaching through an online, web-based learning portal instead. And one of her favorite extracurricular activities—a coding school where she has been learning Scratch and just recently "graduated" to WoofJShas also gone to an online-only format.
We are fortunate that so many of our children's activities can be done online now, as this is the only way they will be able to learn, share, and socialize for at least the next several months.
### Setting up a temporary homeschool environment
When our daughter's school went to an online-only format, we realized she needed a place and some tools to do her work. So we cleaned off her desk and cleared the toys from the floor around it to make an "office" for her. We also realized she would need a computer. While I could have shopped online and ordered a new computer (and spent at least several hundred dollars—if not more than $1,000—in the process), I chose an alternative and put an old, unused laptop back to work.
If you have an unused computer sitting around and are willing to do a bit of tech work, you, too, can set something up to get your kids online. Here's how I did it.
### The hardware
While my daughter already has her own small IT department (as I like to say), it consists of some gaming systems, a tablet, and a Chromebook. Even her Chromebook has just an 11.6" screen and a small keyboard, so none of her devices are really quite adequate for full-time school duty.
So we found ourselves in a pinch. She really needed a desktop-capable computer system with a decent-sized screen, a full keyboard, a good-quality microphone, a set of speakers, and a headphone jack. And having an external video connector helps if you decide one screen isn't enough.
I didn't have a spare desktop, but I did have a laptop: a Lenovo G550 with a Pentium Dual-Core T4500 2.3GHz processor and 4GB RAM. I replaced its aging 5400RPM spindle hard drive with a 240GB solid-state drive. The laptop has a 15.6" screen, which is much easier to view than the small screens on her other devices, and a comfortable, full-size keyboard. Its CPU scores a bit better in PassMark's benchmarks (913 vs. 674) than the 1.6GHz Intel Celeron N3060 Dual-Core in the Chromebook.
However, it is 10 years old, certainly on the edge of usability by today's standards. But, thanks to the efficiency of the Linux operating system, it gets the job done. I installed the latest version (v31) of [Fedora Workstation][2], but many other distributions will work just fine. If you really want to eke out every drop of performance, you could use one of the [lightweight Linux distributions][3]. The only area that required a little extra effort with Fedora was the wireless; I had to install the driver for the Broadcom WiFi hardware. But really, this was only a few extra steps and a restart, and it was good to go.
Linux supports all of the other hardware in the laptop. My daughter prefers a full-sized mouse over the touchpad, so I attached one. She likes the keyboard on this laptop, but if she wants an external keyboard, there are enough USB ports to hook one up.
It has a traditional 3.5mm audio jack, so she can use headphones. I recommend giving children decibel-limited headphones to protect their hearing.
Even though this laptop has a 15.6" widescreen display, I think having a second monitor gives the best experience. I have a spare that I might hook up to the external VGA connector.
### The software
My daughter's school set up an online learning portal. The benefit is that students just need a supported web browser to log on and get to work, and I thank the school for its efforts and choice of a vendor-agnostic solution. Most Linux distributions include the Mozilla Firefox web browser installed by default, and Linux provides a full operating system, so I can install any applications she might need. Fedora is also updated regularly (unlike the old Windows Vista that came with the laptop and is no longer supported).
![][4]
Scratch running on Fedora
Her extracurricular coding school is using the Zoom client. I'm happy to report that it was an easy [install with RPM][5] and works great on Fedora 31.
### Success!
My daughter has no trouble using her new laptop. She likes the [GNOME desktop][6], particularly the fact that it "Looks like Dad's!" This is turning out to be a great experiment in practical (and under-pressure) use of a Linux desktop.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/school-home-linux
作者:[Alan Formy-Duval][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/alanfdoss
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/homeschool.jpg?itok=vYEd9NON (Image by Alan Formy-Duvall)
[2]: https://getfedora.org/en/workstation/
[3]: https://opensource.com/article/19/6/linux-distros-to-try
[4]: https://opensource.com/sites/default/files/scratch.jpg
[5]: https://zoom.us/download?os=linux
[6]: https://www.gnome.org/

View File

@ -0,0 +1,152 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Print double-sided documents at home with this simple Bash script)
[#]: via: (https://opensource.com/article/20/4/print-duplex-bash-script)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
Print double-sided documents at home with this simple Bash script
======
Use this script and save yourself the hassle and wasted paper of trying
to manually load and print double-sided documents.
![bash logo on green background][1]
We have a laser printer at home. This Hewlett Packard LaserJet Pro CP1525nw Color Printer is an older model, but it has been a great workhorse that prints reliably and in color. I [put it on our home network][2] a few years ago using our [Raspberry Pi][3] as a print server.
The LaserJet has been a great addition to my home office. Since [I launched my company][4] last year, I have relied on this little laser printer to print handouts and other materials for client meetings, workshops, and training sessions.
My only gripe with this printer is that it prints single-sided only. If you want to print double-sided, you need to set up a custom print job to do it yourself. That's inconvenient and requires manual steps. In LibreOffice, I need to specifically set up the print job to print the odd-numbered pages first, then reload the paper before printing the even-numbered pages on the other side—but in reverse order.
![LibreOffice print dialog][5]
If I need to print a PDF that someone has sent me, the process is the same. For a four-page document, I first need to print pages 1 and 3, then reload the paper and print pages 2 and 4 in reverse order. In the GNOME print dialog, you need to select "Page Setup" to print odd pages or even pages.
![Gnome print dialog][6]
![Gnome page setup][7]
Regardless of how I print, the overall process is to print the odd-numbered pages, reload the stack of printed pages into the paper tray, then print the even-numbered pages in reverse order. If I'm printing a four-page document, printing the even-numbered pages in reverse order means page 4 prints on the back of page 3 and page 2 prints on the back of page 1. Imagine my frustration in those few instances when I forgot to select the option to print in reverse order when printing the even-numbered pages and ruined a long print job.
Similarly, it's easy to forget how to deal with documents that have an odd number of pages. In a five-page document, you first print pages 1, 3, and 5. But when you reload the printed pages into the printer, you don't want page 5. Instead, you only want to load pages 1 and 3. Otherwise, page 4 will print on the back of page 5, page 2 will print on the back of page 3, and nothing gets printed on the back of page 1.
To make things easier and more reliable, I wrote a simple Bash script that automates printing duplex. This is basically a wrapper to print odd-numbered pages, remind me to reload the pages (and remove the last page if needed), then print the even-numbered pages.
Whenever I need to print a document as duplex, I first convert the document to PDF. This is very easy to do. In LibreOffice, there's a toolbar icon to export directly as PDF. You can also navigate under **File— Export As—Export as PDF** to do the same. Or in any other application, there's usually a **Save to PDF** feature. When in doubt, GNOME supports printing to a PDF file instead of a printer.
![Libre Office toolbar][8]
![Export as PDF][9]
### How it works
Once I've saved to PDF, I let my Bash script do the rest. This really just automates the **lpr** commands to make printing easier. It prints odd pages first, prompts me to reload the paper, then prints the even pages. If the document has an odd number of pages, it also reminds me to remove the last page when I reload the printed pages. It's pretty simple.
The only "programming" part of the script is determining the page count, and figuring out if that's an even or odd number. Both of those are easy to do.
To determine the page count, I use the **pdfinfo** command. This generates useful info about a PDF document. Here's some sample output:
```
$ pdfinfo All\ training\ -\ catalog.pdf
Creator:        Writer
Producer:       LibreOffice 6.3
CreationDate:   Fri Oct 18 16:06:07 2019 CDT
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          11
Encrypted:      no
Page size:      612 x 792 pts (letter)
Page rot:       0
File size:      65623 bytes
Optimized:      no
PDF version:    1.5
```
That output is very easy to parse. To get the page count, I use an AWK one-line script to look for **Pages:** and print the second field.
```
`pages=$( pdfinfo "$1" | awk '/^Pages:/ {print $2}' )`
```
To figure out if this is an odd or even number, I use the modulo (**%**) arithmetic operator to divide by two and tell me the remainder. The modulo of two will always be zero for an even number, and one for an odd number. I use this simple test to determine if the document has an odd number of pages, so I'll need to remove the last page before printing the rest of the document:
```
`if [ $(( $pages % 2 )) -ne 0 ] ; then`
```
With that, writing the **print-duplex.sh** Bash script is a simple matter of calling **lpr** with the correct options to send output to my printer (**lpr -P "HP_LaserJet_CP1525nw"**), to print odd-numbered pages (**-o page-set=odd**) or even-numbered pages (**-o page-set=even**), and to print in reverse order (**-o outputorder=reverse**).
### Bash script
```
#!/bin/sh
# print-duplex.sh
# simple wrapper to print duplex
cat&lt;&lt;EOF
$1 ($pages pages)
\-------------------------------------------------------------------------------
Printing odd pages first
Please wait for job to finish printing...
\-------------------------------------------------------------------------------
EOF
lpr -P "HP_LaserJet_CP1525nw" -o page-set=odd "$1"
sleep $pages
cat&lt;&lt;EOF
===============================================================================
Put paper back into the printer in EXACT OUTPUT ORDER (face down in tray)
then press ENTER
===============================================================================
EOF
pages=$( pdfinfo "$1" | awk '/^Pages:/ {print $2}' )
if [ $(( $pages % 2 )) -ne 0 ] ; then
  echo '!! Remove the last page - this document has an odd number of pages'
fi
echo -n '&gt;'
read x
cat&lt;&lt;EOF
\-------------------------------------------------------------------------------
Printing even pages
Please wait for job to finish printing...
\-------------------------------------------------------------------------------
EOF
lpr -P "HP_LaserJet_CP1525nw" -o page-set=even -o outputorder=reverse "$1"
```
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/print-duplex-bash-script
作者:[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/bash_command_line.png?itok=k4z94W2U (bash logo on green background)
[2]: https://opensource.com/article/18/3/print-server-raspberry-pi
[3]: https://opensource.com/resources/raspberry-pi
[4]: https://opensource.com/article/19/9/business-creators-open-source-tools
[5]: https://opensource.com/sites/default/files/uploads/print_dialog_-_libreoffice_0.png (LibreOffice print dialog)
[6]: https://opensource.com/sites/default/files/uploads/print_dialog_-_gnome_0.png (Gnome print dialog)
[7]: https://opensource.com/sites/default/files/uploads/print_dialog_-_gnome_-_page_setup.png (Gnome page setup)
[8]: https://opensource.com/sites/default/files/uploads/toolbar_-_export_as_pdf_-_libreoffice.png (Libre Office toolbar)
[9]: https://opensource.com/sites/default/files/uploads/file_-_export_as_pdf_-_libreoffice.png (Export as PDF)

View File

@ -0,0 +1,142 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Use Emacs Org mode to easily create LaTeX documents)
[#]: via: (https://opensource.com/article/20/4/emacs-org-mode)
[#]: author: (Peter Prevos https://opensource.com/users/danderzei)
Use Emacs Org mode to easily create LaTeX documents
======
You can use LaTeX for scientific and technical documents without all of
the confusing commands and syntax you would normally need.
![Filing cabinet for organization][1]
LaTeX is a powerful system, especially for writing scientific and technical documents. But writing documents in LaTeX can be confusing because you need to know a lot of commands, and your text is littered with backslashes, curly braces, and other syntax distractions. But being productive as a writer requires that you focus on the text's content instead of how it looks. Fortunately, the [GNU Emacs][2] Org mode extension makes it easy to write plain-text documents and seamlessly export them to LaTeX and PDF.
[Org mode][3] is a built-in Emacs extension that helps you keep notes, maintain to-do lists, manage projects, and author documents with a fast and effective plain-text system. Emacs also comes with [AUCTeX][4], an extensible package for writing TeX files in Emacs. AUCTeX has a preview module that shows the results of what you type, but I find it distracting because it draws my attention away from the document's content to its design. Writing text in Org mode is my preferred option because the source remains a plain-text file with minimal typesetting elements. The text is independent of its result because Org mode can export it to multiple formats, including LaTeX and PDF.
Emacs is known for being difficult to use with a steep learning curve. But Emacs is only difficult when you want to fine-tune the default settings. By following a minimalist approach to using the vanilla GNU Emacs, this article will get you quickly and easily on your way to writing beautiful documents without any complex configuration.
### First steps
Before you begin, [install Emacs][5] and a fully functioning version of [LaTeX][6] on your computer.
Next, you need to learn some conventions. In Emacs lingo, the abbreviation **C-c** means to enter **Ctrl+C** on your keyboard. The abbreviation **M-x** means **Alt+X**. The M stands for the mod key, which no longer exists in modern systems. The **S** prefix indicates the **Shift** key.
The **find-file** function, which you start with the **C-x C-f** keystroke combination, creates a new document or opens an existing document. Entering this function opens a dialog in the mini-buffer at the bottom of the screen, which is where Emacs communicates with the user. Type the name of the file you want to create or open into the mini-buffer. Emacs is sensitive to file extensions, so make sure that the name of your document ends in **.org**.
In Emacs speak, opening or creating a file is called ["visiting" a file][7]. Visiting a file means reading its contents into an Emacs buffer so that it is available for editing. Emacs generates a new buffer for each file you visit.
### Writing prose with Org mode
Once you're visiting a file, you can start typing your text the same way you would in any text editor or word processor. Some conventions: Begin the file with **#+TITLE:** to denote the title of the document and **#+AUTHOR** for your name. These options are used when exporting the file. Org mode recognizes a range of [export settings][8] to configure the output. For example, to suppress the table of contents, enter **#+OPTIONS: toc:nil**.
Org mode has its own Markdown-like conventions to format your document. [Headlines][9] start with one or more asterisks. Org mode can [collapse a headline][10] to render parts of it invisible with the **TAB** or **S-TAB** keys. You can make words ***bold***, **/italic/**, **_underlined_**, or **=verbatim=**. The Org manual describes the many options for [rich text][11].
One minor issue with plain-vanilla Emacs that you will quickly notice is it does not wrap lines at the end of the visible screen. Emacs has several line-wrapping functions, and [Visual Line mode][12] is the most useful for writing long-form text. To activate this mode, use **M-x** and enter **visual-line-mode** in the mini-buffer at the bottom of the screen. The **M-x** keyboard shortcut enables executing functions for which there is no direct keyboard shortcut.
Adding [images][13] is as easy as adding a link to the image file within double square brackets:
```
`[[file:path_to_image.png]]`
```
Org has a great system for [formatting tables][14] in plain ASCII. Any line with **|** is considered part of a table. The vertical line is also the column separator. A line starting with **|-** is rendered as a horizontal rule, and rows before the first horizontal rule are header lines. A table might look like this in the source file:
```
| Name  |   id | Age |
|-------+------+-----|
| Peter | 1234 |  50 |
| Sue   | 4321 |  54 |
```
Both images and tables are preceded with **#+CAPTION:** to add a [caption][15]. Advanced options are also available to control float placement and size of figures.
Emacs has extensive [editing functions][16] to make you more efficient when typing text. Spell checking, thesaurus, auto-completion, and an undo tree are just some of the tools that help you write efficiently.
### Adding LaTeX snippets to Org
In addition to the text itself, Org mode-text can include simple LaTeX commands, such as **\newpage**, within the text. Equations in standard LaTeX syntax are placed between dollar signs **$e^{i\pi} + 1 = 0$**. The **org-latex-preview** function (**C-c C-x C-l**) shows a [preview][17] of any LaTeX equations within the text buffer. Last, you can also add complete LaTeX snippets to insert complex content. The code has to be placed in an export block:
```
#+BEGIN_EXPORT latex
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,6)
\put(2,2.2){\line(1,0){6}}
\put(2,2.2){\circle{2}}
\put(6,2.2){\oval(4,2)[r]}
\end{picture}
#+END_EXPORT
```
### Exporting to LaTeX
Org mode includes a powerful export module to convert your files to many formats using the powerful [Pandoc][18] software. Start the export module with the **org-export-dispatch** function, which you can run with the **C-c C-e** keyboard shortcut. The dispatch will split your screen and provide a range of options.
First, Pandoc converts the Org mode file to a LaTeX file. Then you can choose to open the LaTeX file in a new buffer or save it as a file. Org mode can also directly render a PDF file, which you can view within Emacs or save to disk.
![Emacs with Org mode source and PDF preview][19]
### Advanced use
This article provides a first taste of writing prose in Org mode and LaTeX. Org mode has numerous configuration options to fine-tune your document or to change default settings.
By default, Org mode uses the article style to export documents, but you can change this with export settings. These settings can also be used to add commands to the document header, for example:
```
#+LATEX_CLASS: report
#+LATEX_CLASS_OPTIONS: [a4paper]
#+LATEX_HEADER: \usepackage{times}
```
If you write scientific documents, the [org-ref][20] package by John Kitchin provides Org-mode modules for citations, cross-references, and bibliographies in Org mode and useful BibTeX tools to go with it.
The Org mode manual's [LaTex export][21] section provides a detailed discussion of the functionality available.
### Conclusion
Org mode is a perfect editor for writing LaTeX. The main advantage is that you lose the clutter of LaTeX syntax and can focus on the text. This comes at no cost because you can still add LaTeX code as much as you need, and you get access to the powerful editing functions in Emacs.
Using Org to write books and articles allows you to focus on the text as you combine two of the oldest and most powerful pieces of open source software.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/emacs-org-mode
作者:[Peter Prevos][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/danderzei
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/files_documents_organize_letter.png?itok=GTtiiabr (Filing cabinet for organization)
[2]: https://opensource.com/article/20/3/getting-started-emacs
[3]: https://orgmode.org
[4]: https://www.gnu.org/software/auctex/
[5]: https://www.gnu.org/software/emacs/
[6]: https://www.latex-project.org/get/
[7]: https://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html
[8]: https://orgmode.org/manual/Export-Settings.html
[9]: https://orgmode.org/manual/Headlines.html#Headlines
[10]: https://orgmode.org/manual/Global-and-local-cycling.html#Global-and-local-cycling
[11]: https://orgmode.org/manual/Markup-for-Rich-Contents.html#Markup-for-Rich-Contents
[12]: https://www.gnu.org/software/emacs/manual/html_node/emacs/Visual-Line-Mode.html
[13]: https://orgmode.org/manual/Images.html
[14]: https://orgmode.org/manual/Built_002din-Table-Editor.html#Built_002din-Table-Editor
[15]: https://orgmode.org/manual/Captions.html#Captions
[16]: https://www.gnu.org/software/emacs/manual/html_node/emacs/Basic.html#Basic
[17]: https://orgmode.org/manual/Previewing-LaTeX-fragments.html
[18]: https://pandoc.org/
[19]: https://opensource.com/sites/default/files/uploads/org-mode-latex-screenshot.png (Emacs with Org mode source and PDF preview.)
[20]: https://github.com/jkitchin/org-ref
[21]: https://orgmode.org/manual/LaTeX-Export.html#LaTeX-Export

View File

@ -0,0 +1,157 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Get started with Bash programming)
[#]: via: (https://opensource.com/article/20/4/bash-programming-guide)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
Get started with Bash programming
======
Learn how to write custom programs in Bash to automate your repetitive
tasks. Download our new eBook to get started.
![Command line prompt][1]
One of the original hopes for Unix was that it would empower everyday computer users to fine-tune their computers to match their unique working style. The expectations around computer customization have diminished over the decades, and many users consider their collection of apps and websites to be their "custom environment." One reason for that is that the components of many operating systems are not open, so their source code isn't available to normal users.
But for Linux users, custom programs are within reach because the entire system is based around commands available through the terminal. The terminal isn't just an interface for quick commands or in-depth troubleshooting; it's a scripting environment that can reduce your workload by taking care of mundane tasks for you.
### How to learn programming
If you've never done any programming before, it might help to think of it in terms of two different challenges: one is to understand how code is written, and the other is to understand what code to write. You can learn _syntax_—but you won't get far without knowing what words are available to you in the _language_. In practice, you start learning both concepts all at once because you can't learn syntax without words to arrange, so initially, you write simple tasks using basic commands and basic programming structures. Once you feel comfortable with the basics, you can explore more of the language so you can make your programs do more and more significant things.
In [Bash][2], most of the _words_ you use are Linux commands. The _syntax_ is Bash. If you already use Bash on a frequent basis, then the transition to Bash programming is relatively easy. But if you don't use Bash, you'll be pleased to learn that it's a simple language built for clarity and simplicity.
### Interactive design
Sometimes, the hardest thing to figure out when learning to program is what a computer can do for you. Obviously, if a computer on its own could do everything you do with it, then you wouldn't have to ever touch a computer again. But the reality is that humans are important. The key to finding something your computer can help you with is to take notice of tasks you repeatedly do throughout the week. Computers handle repetition particularly well.
But for you to be able to tell your computer to do something, you must know how to do it. This is an area Bash excels in: interactive programming. As you perform an action in the terminal, you are also learning how to script it.
For instance, I was once tasked with converting a large number of PDF books to versions that would be low-ink and printer-friendly. One way to do this is to open the PDF in a PDF editor, select each one of the hundreds of images—page backgrounds and textures counted as images—delete them, and then save it to a new PDF. Just one book would take half a day this way.
My first thought was to learn how to script a PDF editor, but after days of research, I could not find a PDF editing application that could be scripted (outside of very ugly mouse-automation hacks). So I turned my attention to finding out to accomplish the task from within a terminal. This resulted in several new discoveries, including GhostScript, the open source version of PostScript (the printer language PDF is based on). By using GhostScript for the task for a few days, I confirmed that it was the solution to my problem.
Formulating a basic script to run the command was merely a matter of copying the command and options I used to remove images from a PDF and pasting them into a text file. Running the file as a script would, presumably, produce the same results.
### Passing arguments to a Bash script
The difference between running a command in a terminal and running a command in a shell script is that the former is interactive. In a terminal, you can adjust things as you go. For instance, if I just processed **example_1.pdf** and am ready to process the next document, to adapt my command, I only need to change the filename.
A shell script isn't interactive, though. In fact, the only reason a shell _script_ exists is so that you don't have to attend to it. This is why commands (and the shell scripts that run them) accept arguments.
In a shell script, there are a few predefined variables that reflect how a script starts. The initial variable is **$0**, and it represents the command issued to start the script. The next variable is **$1**, which represents the first "argument" passed to the shell script. For example, in the command **echo hello**, the command **echo** is **$0,** and the word **hello** is **$1**. In the command **echo hello world**, the command **echo** is **$0**, **hello** is **$1**, and **world** is **$2**.
In an interactive shell:
```
$ echo hello world
hello world
```
In a non-interactive shell script, you _could_ do the same thing in a very literal way. Type this text into a text file and save it as **hello.sh**:
```
`echo hello world`
```
Now run the script:
```
$ bash hello.sh
hello world
```
That works, but it doesn't take advantage of the fact that a script can take input. Change **hello.sh** to this:
```
`echo $1`
```
Run the script with two arguments grouped together as one with quotation marks:
```
$ bash hello.sh "hello bash"
hello bash
```
For my PDF reduction project, I had a real need for this kind of non-interactivity, because each PDF took several minutes to condense. But by creating a script that accepted input from me, I could feed the script several PDF files all at once. The script processed each one sequentially, which could take half an hour or more, but it was a half-hour I could use for other tasks.
### Flow control
It's perfectly acceptable to create Bash scripts that are, essentially, transcripts of the exact process you took to achieve the task you need to be repeated. However, scripts can be made more powerful by controlling how information flows through them. Common methods of managing a script's response to data are:
* if/then
* for loops
* while loops
* case statements
Computers aren't intelligent, but they are good at comparing and parsing data. Scripts can feel a lot more intelligent if you build some data analysis into them. For example, the basic **hello.sh** script runs whether or not there's anything to echo:
```
$ bash hello.sh foo
foo
$ bash hello.sh
$
```
It would be more user-friendly if it provided a help message when it receives no input. That's an if/then statement, and if you're using Bash in a basic way, you probably wouldn't know that such a statement existed in Bash. But part of programming is learning the language, and with a little research you'd learn about if/then statements:
```
if [ "$1" = "" ]; then
        echo "syntax: $0 WORD"
        echo "If you provide more than one word, enclose them in quotes."
else
        echo "$1"
fi
```
Running this new version of **hello.sh** results in:
```
$ bash hello.sh
syntax: hello.sh WORD
If you provide more than one word, enclose them in quotes.
$ bash hello.sh "hello world"
hello world
```
### Working your way through a script
Whether you're looking for something to remove images from PDF files, or something to manage your cluttered Downloads folder, or something to create and provision Kubernetes images, learning to script Bash is a matter of using Bash and then learning ways to take those scripts from just a list of commands to something that responds to input. It's usually a process of discovery: you're bound to find new Linux commands that perform tasks you never imagined could be performed with text commands, and you'll find new functions of Bash to make your scripts adaptable to all the different ways you want them to run.
One way to learn these tricks is to read other people's scripts. Get a feel for how people are automating rote commands on their systems. See what looks familiar to you, and look for more information about the things that are unfamiliar.
Another way is to download our [introduction to programming with Bash][3] eBook. It introduces you to programming concepts specific to Bash, and with the constructs you learn, you can start to build your own commands. And of course, it's free to download and licensed under a [Creative Commons][4] license, so grab your copy today.
### [Download our introduction to programming with Bash eBook!][3]
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/bash-programming-guide
作者:[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/command_line_prompt.png?itok=wbGiJ_yg (Command line prompt)
[2]: https://opensource.com/resources/what-bash
[3]: https://opensource.com/downloads/bash-programming-guide
[4]: https://opensource.com/article/20/1/what-creative-commons

View File

@ -0,0 +1,136 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How I'm using AI to translate 'wash your hands' in 500 languages)
[#]: via: (https://opensource.com/article/20/4/ai-translation)
[#]: author: (Daniel Whitenack https://opensource.com/users/datadan)
How I'm using AI to translate 'wash your hands' in 500 languages
======
By using both human and machine-generated translations, key health
phrases can be translated into local languages spoken all over the
world.
![Two diverse hands holding a globe][1]
You might not know, but there are currently [7,117 languages spoken in the world][2]. Not dialects, but living languages! However, much of the world's digital media is available in only a couple dozen languages, and translation platforms like Google Translate only support around 100 languages. This reality means that there are billions of people around the world that are marginalized due to a lack of timely access to information. The current coronavirus (COVID-19) pandemic has made this painfully clear, and it has stressed the need for immediate, rapid translation of health-related phrases (like "wash your hands" or "keep your distance") into the long tail of languages.
To this end, I applied state-of-the-art AI techniques to construct something close to the phrase "wash your hands" in 544 languages and counting (my GPUs are still running). Multilingual Unsupervised and Supervised Embeddings (MUSE) methods are used to train cross-lingual word embeddings between each of 544 languages and English. These embeddings then allow for the extraction of a phrase similar to the target phrase from existing documents.
I performed this work in collaboration with my colleagues at SIL International, who have gathered even more human translations of the phrase. The combination of these human translations and some of my machine translations can be searched on [this Ethnologue guide page][3] (machine-generated phrases are indicated with a little robot icon), and more translations will be added as they are generated/gathered.
### Leveraging existing corpora
SIL International has done linguistic work in over 2000 languages and is currently managing over 1600 language projects. Thus, as I approached this particular problem, I knew that we had likely already translated the phrase "wash your hands" and/or similar phrases many times into hundreds of languages, and that guess paid off in spades. I was able to quickly gather documents (mostly completed shell book templates, educational materials, and Bibles) from our archives in over 900 languages. Each of these documents has an English parallel, which necessarily includes the phrase "wash your hands" and/or similar phrases like "wash your face." Moreover, each of these documents is very high quality and translated and checked in cooperation with the local language communities.
That is quite the multilingual data set. However, there are two problems to overcome. First, this data included thousands of samples for most languages, which is in contrast to the millions used to train machine translation models. Second, even if the documents include the phrase "wash your hands" in the target language, we don't know the exact location of the phrase within the surrounding text.
We could certainly exploit some of the latest tricks in [machine translation for low resource languages][4], but it would take some time to tune automated methods for rapidly adapting translation models in each language pair. Moreover, many of the languages we are targeting have no existing baseline with which we could compare evaluation metrics, e.g., [BLEU score][5]. Given the pressing concerns about the Coronavirus pandemic, we wanted to move a bit faster than that (although we plan to return to this problem in the future).
I opted to try and construct the phrase "wash your hands" by finding the phrase itself or components of the phrase (like "wash your" or "your hands") in existing documents. To find these, I trained cross-lingual embedding for each {English, Target Language} pair using [Multilingual Unsupervised and Supervised Embedding (MUSE)][6] from Facebook Research. MUSE takes monolingual word embeddings as input (I used [_fasttext_][7] to generate these) and learns a mapping from the English to the target embedding space using adversarial methods. The output of this process is cross-lingual word embeddings.
![Using fasttext along with MUSE to perform cross-language embedding][8]
Once the cross-lingual embeddings are generated, we can get to finding the phrase components in the target language documents. As it turns out, the phrase "wash your face" was most clearly used throughout the documents along with instances of "hands," "wash your," etc. in isolation. For each of the languages, I search through n-grams in areas where I expected the phrase to appear (based on its usage in the English parallel). N-grams were vectorized using the cross-lingual embedding and compared with vectorized versions of the English phrases using various distance metrics. The n-grams that were "closest" to the English phrases in the embedding space were determined to be the target language matches.
Finally, component phrases matching their English counterparts were combined to generate the phrase "wash your hands" in the target language. This combination utilizes the cross-lingual embedding again to make sure that the components are combined in an appropriate manner. For example, if we matched the phrase "wash your feet" in the target language, the n-gram corresponding to "feet" must be replaced with the n-gram corresponding to "hands." Here's an example for Belize Kriol English:
![][9]
There were, of course, some assumptions that were made during this matching process, and it is entirely possible that this procedure does not produce grammatically correct predictions. For example, I assumed that in most languages, the word for "hands" and the word for "feet" are both one token long (with tokens being separated by spaces and punctuation). This is certainly not always the case. This could create a bad word salad something like "and wash the and hand you" or similar. Hopefully, we can overcome some of these limitations and extend the system in the future, but, for now, we chose to reinforce the idea with graphics.
We adapted the World Health Organization's hand washing instructions into a template PNG image. We then took our translated and generated phrases and rendered them into the hand washing image using a combination of Bash and Go scripts. In this way, the idea of proper hand washing is emphasized in both text and imagery (just in case our generated translations are awkward).
![][10]
### Results
Thus far, I've been able to train cross-lingual embeddings for 544 languages. I used the above-discussed method to try and construct "wash your hands" for all of these languages. Because I don't have aligned data for many of the language pairs, I used separate holdout documents also containing components of "wash your hands" to help validate the tokens in the constructed phrase. This gives us some confidence in the translations that we publicly release (at least that they contain information indicating washing and/or hands). In addition, I compared the method with language pairs that are also supported by Google Translate and/or have available human translations. Here's a sample of the translations with language stats from [the Ethnologue][11]:
#### Language: Italian [ita]
Location: Italy
Population: 68,000,000
Our system: "làvati la mani"
Google Translate: "Lavati le mani"
#### Language: Bulgarian [bul]
Location: Bulgaria
Population: 8,000,000
Our system: "умий ръцете"
Google Translate: "Измий си ръцете"
#### Language: Dutch [nld]
Location: Netherlands
Population: 24,000,000
Our system: "wast uw handen"
Google Translate: "Was je handen"
#### Language: Pijin [pis]
Location: Solomon Islands
Population: 550,000
Our system: "wasim han"
Google Translate: Not supported
#### Language: Tikar [tik]
Location: Cameroon
Population: 110,000
Our system: "ɓɔsi fyàʼ"
Google Translate: Not supported
#### Language: Waffa [waj]
Location: Papua New Guinea
Population: 1,300
Our system: "yaakuuvaitana nnikiiyauvaa fini"
Google Translate: Not supported
The constructed phrases are similar to reference translations or appear to be alternative ways of saying "wash your hands." For example, in Bulgarian, I predict "умий ръцете," and Google Translate predicts "Измий си ръцете." However, if I back-translate my prediction using Google Translate, I still get "wash your hands." There is some uncertainty where I can't compare to reference translations (e.g., Pijin [pis] from the Solomon Islands) or human-annotated spans, but I can still validate that the word for wash (wasim) and the word for hands (han) are used in other reference documents that are necessarily talking about washing, or hands, respectively. About 15% of the translations could be validated using this method, and I hope to validate more as I gather reference dictionaries.
Note, I used at most about 7,000 sentences in each language to get the above translations, even for high-resource languages like Italian. I also did not rely on aligned sentences between the language pairs. Despite this very data-scarce, unsupervised scenario, I was still able to obtain phrases similar to that of Google Translate for languages supported by both systems. This demonstrates the potential utility of this sort of "hybrid" approach (unsupervised alignment of word embeddings + rule-based matching) for translating short phrases into languages where very little data exists.
Note—I'm definitely not saying that this is a solution to the problem of information spread about Coronavirus and other health-related issues. There are still a lot of things to explore and formally evaluate here, and we are working on that. In many cases, this approach won't be able to help construct important informational material in hundreds of languages. However, I think that we should all be trying to develop creative solutions to problems related to the current crisis. Maybe this is one piece of a very large puzzle.
You can view the complete list of validated translations plus human translations on [this Ethnologue guide page][3]. In addition, a more thorough description and analysis of the system in paper form is forthcoming. We welcome feedback from the public on the translations to help fine-tune the system and, most of all, to make sure that health information gets out to marginalized language communities around the world.
### Create your own hand washing posters
We have open sourced [the code used to render complex scripts and generate the hand washing posters][12]. This methodology should be able to handle almost all languages and scripts. You can add your own translation of "wash your hands" to a poster to help spread the word or tailor the translations for your own local context. Be sure to share your generated posters on social media with the hashtag #WashYourHands.
### Develop your AI skills
There are so many exciting AI problems out there that can make a huge impact in the world. If you want to solve problems like the one above with AI or if you think your business might need to start leveraging AI for other things (supply chain optimization, recommendation, customer service automation, etc.), don't miss the [_AI Classroom_ training event this May][13]. _AI Classroom_ is an immersive, three-day virtual training event for anyone with at least some programming experience and foundational understanding of mathematics. The training provides a practical baseline for realistic AI development using Python and open source frameworks like TensorFlow and PyTorch. After completing the course, participants will have the confidence to start developing and deploying their own AI solutions.
_This article was republished with permission from <https://datadan.io/blog/wash-your-hands>_
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/ai-translation
作者:[Daniel Whitenack][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/datadan
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/world_hands_diversity.png?itok=zm4EDxgE (Two diverse hands holding a globe)
[2]: https://www.ethnologue.com/guides/how-many-languages
[3]: https://www.ethnologue.com/guides/health
[4]: https://datadan.io/blog/resources-for-low-resource-machine-translation
[5]: https://en.wikipedia.org/wiki/BLEU
[6]: https://github.com/facebookresearch/MUSE
[7]: https://fasttext.cc/
[8]: https://opensource.com/sites/default/files/uploads/ai-language-translation-wash-your-hands-opensourcedotcom.gif (Using fasttext along with MUSE to perform cross-language embedding)
[9]: https://opensource.com/sites/default/files/uploads/ai-language-translation-wash-your-hands-opensourcedotcom2.gif
[10]: https://opensource.com/sites/default/files/uploads/ai-language-translation-wash-your-hands-opensourcedotcom3.gif
[11]: https://www.ethnologue.com/
[12]: https://github.com/sil-ai/wash-your-hands
[13]: https://datadan.io/

View File

@ -0,0 +1,55 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How Kubernetes saved my desktop application)
[#]: via: (https://opensource.com/article/20/4/kubernetes-desktop-application)
[#]: author: (Chris Hermansen https://opensource.com/users/clhermansen)
How Kubernetes saved my desktop application
======
Keep this fix in mind if you have a broken Java desktop application but
aren't a crypto expert.
![Puzzle pieces coming together to form a computer screen][1]
Recently, fellow Opensource.com scribe James Farrell wrote a wonderful article entitled _[How Ansible brought peace to my home][2]_. In addition to the great article, I really liked the title, one of those unexpected phrases that Im sure brought a smile to many faces.
I recently had a weird but positive experience of my own that begs a similar sort of unexpected label. Ive been grappling with a difficult problem that arose when upgrading some server and networking infrastructure that broke a Java application Ive been supporting since the early 2000s. Strangely enough, I found the solution in what appears to be a very informative and excellent article on Kubernetes, of all things.
Without further ado, here is my problem:
![][3]
Im guessing that most readers will look at that message and think things like, "I hope theres more info in the log file," or "Im really glad Ive never received a message like that."
Unfortunately, there isnt a lot of info in the log file, just the same message, in fact. In an effort to debug this, I did three things:
1. I searched online for the message. Interestingly, or perhaps ominously, there were only 200 or so hits on this string, [one of which suggested][4] [turn][4][ing][4] [on more debugging output][4], which involved adding the setting
```
**-Djavax.net.debug=ssl:handshake:verbose**[/code] to the **java** command running the application.
2. I tried that suggestion, which resulted in a lot of output (good), most of which only vaguely made sense to me as Im no kind of expert in the underlying bits of stuff like SSL. But one thing I did notice is that there was no information regarding a response from the server in the midst of all of that output;
3. So I searched some more.
Another interesting part of this problem is that the code ran fine when executed by the Java command bundled in the OpenJDK, but failed with this error when using a customized runtime [created from the same OpenJDK in this way][5]. So the relatively modest number of apparently similar problems turned up from search #1 above were actually not all that relevant since they all seemed to be dealing mostly with bad SSL certificates on the server in conjunction with the PostgreSQL JDBCs ability to check the servers credentials.
I should also mention that it took me quite some time to realize that the problem was introduced by using the custom Java runtime, as I managed to check many other possibilities along the way (and indeed, I did fix a few minor bugs while I was at it). My efforts included things like getting the latest OpenJDK, checking and re-checking all the URLs in case one had a typo, and so forth.
As often happens, after putting the problem aside for a few hours, an idea occurred to me—perhaps I was missing some module in the customized Java runtime. While I didnt receive any errors directly suggesting that problem, the observable fact that the standard OpenJDK environment worked while the custom one failed seemed to hint at that possibility. I took a quick look in the **jmods/** folder in the OpenJDK installation, but there are some 70 modules there and nothing jumped out at me.
But again, what seemed odd was, with debugging turned on (see #1 above), there was no indication of what the server would accept, just what the client mostly couldnt offer, many lines like this:
```
`Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`
```
So I was at least thinking by this time that maybe what was missing was the module that offered those kinds of cipher suites. So I started searching with strings like "jdbc crypto," and in the midst of that, the most unlikely article showed up: [Optimizing Kubernetes Services—Part 2: Spring Web][6], written by [Juan Medina][7]. Midway down the article, I spotted the following:
![][8]
Huh! Imagine that, his script is creating a custom Java runtime, just like mine. But he says he needs to add in manually the module **jdk.crypto.ec** in order t

View File

@ -0,0 +1,74 @@
[#]: collector: (lujun9972)
[#]: translator: (wxy)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (15 years of Git: How to get started or learn something new)
[#]: via: (https://opensource.com/article/20/4/get-started-git)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
15 岁的 Git如何入门或学习点新东西
======
> 在 Git 15 周年之际,了解为什么 Git 是保持软件行业运行的重要组成部分。
![Scissors cutting open access to files][1]
如果说过去二十年来有什么东西改变了软件,那么 [Git][2] 位列榜首。
如果你没有亲自使用过 Git你可能会认为它只是一种技术时尚只是因为它是由 [Linux][3] 项目的创始人创建的,所以在开发者中只是一个偶然的宠儿。这或许有一定的道理,但 Git 确实取得了一些其他行业所没有的成就。有了 Git分布在世界各地的开发者们可以在同一时间对同一段代码进行工作并记录下每一次修改的历史然后将所有的工作合并到一起形成一个成品。由于这件事情非常复杂所以这个工具本身也会变得很复杂但归根结底它是维持软件行业运行的重要组成部分。
无论你是否了解 Git如果你足够深入的研究开源软件或者进入计算机科学领域都有可能遇到它。无论你使用 Git 只是为了下载一个安装包,还是每天与它交互来管理代码,了解更多关于它的知识,都会对你有很大的启发和帮助。
### Git 术语
与任何专业工具一样Git 中也有很多行话。像“<ruby>克隆<rt>clone</rt></ruby>”、“<ruby>合并<rt>merge</rt></ruby>”和“<ruby>变基<rt>rebase</rt></ruby>”这样的术语,充其量是神秘的,而最坏的情况下,会让人感觉到几乎是排斥性的。试图理解这些术语的含义可能会让人不知所措,但如果你从 Matthew Broberg 的优秀文章《[Git 术语基础][4]》中得到一点指导,就不会这样了。只需快速阅读一下,你就能真正理解地听懂关于 Git 的对话。
### Git 入门
如果你需要知道如何使用 Git那么我自己的[关于使用 Git 的入门文章系列][5]是一个很好的开始。这些文章已经有几年的历史了,但就像许多 Linux 和 UNIX 技术一样,它的界面并没有发生很大的变化,所以这些文章和我写这些文章那时一样,在今天还是很有意义的。这一系列文章向你介绍了 Git 最基本的概念,并带领你完成创建仓库、提交文件、恢复文件、合并分支等过程。
### 常见的Git服务
Git 最常见的用途之一是公共的 Git 托管服务,比如 GitLab 和 GitHub。Kedar Vijay Kulkarni 在他的《[如何在 Git 中克隆、修改、添加和删除文件][6]》一文中,演示了大多数开发者使用 Git 执行的日常任务。这不是非开发者的必读书目,但对于任何想在公共 Git 托管服务上为项目做贡献的人来说,这篇文章是必读的。这篇文章专门针对的是 Github因为它是当今最常见的平台之一但其原理也适用于任何 Git 的 Web 前端,包括 [GitLab][7]、[Gogs][8] 和 [Gitea][9] 等流行的开源框架。
### 试试这个 Git 演练
与其漫无目的的探索,你是不是更喜欢在导游的带领下学习?有时候,学习一件事最简单的方法就是模仿别人的准确步骤。你知道最终的结果是成功的保证,所以你在进行练习的时候会有信心,而你的大脑和手指也会得到重复的好处,从而建立起记忆。如果这是你的学习风格,那就跟着 Alan Formy-Duvall 的《[Git 的实用学习练习][10]》,找出成功的 Git 课程的感觉。
### Git 应用程序
信不信由你Git 的界面比你在终端输入的文字更多。显然,在线托管的 Git 有 Web 界面,但是你也可以在计算机上使用 Git 客户端。如果想获得更多的帮助,请阅读 Jesse Duffield 关于 [Lazygit][11] 的文章或 Olaf Anders 关于 [Tig][12] 的文章。要获得完整的图形应用程序体验,请阅读我有关 [Git-cola][13]、[Sparkleshare][14] 以及[其它应用][15]的文章。是的,甚至还有[用于你的移动设备的界面][16]
### 了解更多关于 Git 的信息
知识就是力量,所以不要让 Git 对你来说是个谜。无论你是直接使用它,还是只知道它的名字,或者你以前从未听说过它,现在都是了解 Git 的好时机。这里有很多资源可以帮助你了解它的工作原理、工作原理以及人们为什么这么喜欢它。潜入其中,按照自己的节奏来学习,并学会爱上 Git 吧!
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/get-started-git
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[校对者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/document_free_access_cut_security.png?itok=ocvCv8G2 (Scissors cutting open access to files)
[2]: https://en.wikipedia.org/wiki/Git
[3]: https://opensource.com/resources/linux
[4]: https://opensource.com/article/19/2/git-terminology
[5]: https://opensource.com/life/16/7/stumbling-git
[6]: https://opensource.com/article/18/2/how-clone-modify-add-delete-git-files
[7]: https://about.gitlab.com/install/
[8]: https://gogs.io/
[9]: https://gitea.io/en-us/
[10]: https://opensource.com/article/19/5/practical-learning-exercise-git
[11]: https://opensource.com/article/20/3/lazygit
[12]: https://opensource.com/article/19/6/what-tig
[13]: https://opensource.com/article/20/3/git-cola
[14]: https://opensource.com/article/19/4/file-sharing-git
[15]: https://opensource.com/life/16/8/graphical-tools-git
[16]: https://opensource.com/article/19/4/calendar-git#mobile

View File

@ -0,0 +1,172 @@
[#]: collector: (lujun9972)
[#]: translator: (wxy)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Navigating man pages in Linux)
[#]: via: (https://www.networkworld.com/article/3519853/navigating-man-pages-in-linux.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
在 Linux 中遨游手册页的海洋
======
> Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息。它们可以帮助你发现你没有意识到的命令。
[Hello I'm Nik][1] [(CC0)][2]
手册页提供了关于 Linux 命令的基本信息,很多用户经常参考它,但手册页的内容比我们很多人意识到的要多得多。
你总是可以输入一个像 `man who` 这样的命令,然后得到 `who` 命令的工作原理的漂亮描述,但是探索你可能不知道的命令可能会更有启发。例如,你可以使用 `man` 命令来帮助确定处理一些非常具有挑战性的任务的命令,或者显示一些选项,这些选项可以帮助你以新的更好的方式使用你已经知道的命令。
让我们来浏览一些选项,看看最终的结果是什么。
### 用 man 去识别命令
`man` 命令可以帮助你按主题查找命令。例如,如果你要找一个计算文件中的行数的命令,你可以提供一个关键字。在下面的例子中,我们把关键字 “count” 放在了引号中,并添加了空格,这样我们就不会得到与 “accounts” 或 “accounting” 相关的命令,而是得到那些可以为我们做一些计算的命令。
```
$ man -k ' count '
anvil (8postfix) - Postfix session count and request rate control
cksum (1) - checksum and count the bytes in a file
sum (1) - checksum and count the blocks in a file
timer_getoverrun (2) - get overrun count for a POSIX per-process timer
```
为了显示与新用户账户相关的命令,我们可以尝试使用这样的命令。
```
$ man -k "new user"
newusers (8) - update and create new users in batch
useradd (8) - create a new user or update default new user information
zshroadmap (1) - informal introduction to the zsh manual The Zsh Manual, …
```
需要说明的是,上面的第三项只是提到 “new users” 类似的内容,并不是设置、删除或配置用户账号的命令。`man` 命令只是在命令描述中匹配了一些词,作用很像 `apropos` 命令。注意上面列出的每个命令后面的括号中的数字。这些数字与包含这些命令的手册页的部分有关。
### 确定手册页的部分
`man` 命令部分将命令划分为不同的类别。要列出这些类别,请键入 `man man`,并查看类似下面的描述。你的系统中很可能没有第 9 部分的命令。
- `1`:可执行程序或 shell 命令
- `2`:系统调用(内核提供的函数)
- `3`:库调用(程序库内的函数)
- `4`:特殊文件(通常在可以 `/dev` 中找到)
- `5`:文件格式和惯例,例如 `/etc/passwd`
- `6`:游戏
- `7`:杂项(包括宏包和约定),例如 `man`(7)、`groff`(7)
- `8`:系统管理命令(通常只由 root 用户使用)
- `9`:内核例程(非标准)
手册页涵盖了比我们通常认为的“命令”更多的内容。从上面的描述中可以看到,它们涵盖了系统调用、库调用、特殊文件等等。
下面的列表显示了 Linux 系统中的手册页的实际存储位置。这些目录上的日期会有所不同,因为随着更新,其中一些部分会有新的内容,而另一些则不会。
```
$ ls -ld /usr/share/man/man?
drwxr-xr-x 2 root root 98304 Feb 5 16:27 /usr/share/man/man1
drwxr-xr-x 2 root root 65536 Oct 23 17:39 /usr/share/man/man2
drwxr-xr-x 2 root root 270336 Nov 15 06:28 /usr/share/man/man3
drwxr-xr-x 2 root root 4096 Feb 4 10:16 /usr/share/man/man4
drwxr-xr-x 2 root root 28672 Feb 5 16:25 /usr/share/man/man5
drwxr-xr-x 2 root root 4096 Oct 23 17:40 /usr/share/man/man6
drwxr-xr-x 2 root root 20480 Feb 5 16:25 /usr/share/man/man7
drwxr-xr-x 2 root root 57344 Feb 5 16:25 /usr/share/man/man8
```
注意,为了节省空间,手册页文件一般都是 gzip 压缩的。每当你使用 `man` 命令时,`man` 命令会根据需要解压。
```
$ ls -l /usr/share/man/man1 | head -10
total 12632
lrwxrwxrwx 1 root root 9 Sep 5 06:38 [.1.gz -> test.1.gz
-rw-r--r-- 1 root root 563 Nov 7 05:07 2to3-2.7.1.gz
-rw-r--r-- 1 root root 592 Apr 23 2016 411toppm.1.gz
-rw-r--r-- 1 root root 2866 Aug 14 10:36 a2query.1.gz
-rw-r--r-- 1 root root 2361 Sep 9 15:13 aa-enabled.1.gz
-rw-r--r-- 1 root root 2675 Sep 9 15:13 aa-exec.1.gz
-rw-r--r-- 1 root root 1142 Apr 3 2018 aaflip.1.gz
-rw-r--r-- 1 root root 3847 Aug 14 10:36 ab.1.gz
-rw-r--r-- 1 root root 2378 Aug 23 2018 ac.1.gz
```
### 按部分列出的手册页
即使只看第 1 部分的前 10 个手册页(如上所示),你也可能会看到一些新的命令 —— 也许是 `a2query``aaflip`(如上所示)。
探索命令的更好策略是按节列出命令,不查看文件本身,而是使用 `man` 命令向你显示命令并提供每个命令的简要说明。
在下面的命令中,`-s 1` 指示 `man` 显示第 1 部分中的命令信息。`-k .` 使该命令对所有命令都有效,而不是指定一个特定的关键字;如果没有这个,`man` 命令就会回过头来问:“你想要什么手册页?”所以,使用关键字来选择一组相关的命令,或者使用点来显示一个部分中的所有命令。
```
$ man -s 1 -k .
2to3-2.7 (1) - Python2 to Python3 converter
411toppm (1) - convert Sony Mavica .411 image to ppm
as (1) - the portable GNU assembler.
baobab (1) - A graphical tool to analyze disk usage
busybox (1) - The Swiss Army Knife of Embedded Linux
cmatrix (1) - simulates the display from "The Matrix"
expect_dislocate (1) - disconnect and reconnect processes
red (1) - line-oriented text editor
enchant (1) - a spellchecker
```
### 有几本手册页?
如果你对每个部分中有多少手册页感到好奇,可以使用以下命令按部分对它们进行计数:
```
$ for num in {1..8}
> do
> man -s $num -k . | wc -l
> done
2382
493
2935
53
441
11
245
919
```
确切的数量可能有所不同,但是大多数 Linux 系统的命令数量差不多。如果我们使用命令将这些数字加在一起,我们可以看到运行该命令的系统上有将近 7500 个手册页。有很多命令,系统调用等。
```
$ for num in {1..8}
> do
> num=`man -s $num -k . | wc -l`
> tot=`expr $num + $tot`
> echo $tot
> done
2382
2875
5810
5863
6304
6315
6560
7479 <=== total
```
阅读手册页可以学到很多东西,但是以其他方式浏览手册页可以帮助你了解系统上可能不知道的命令。
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3519853/navigating-man-pages-in-linux.html
作者:[Sandra Henry-Stocker][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[校对者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://unsplash.com/photos/YiRQIglwYig
[2]: https://creativecommons.org/publicdomain/zero/1.0/
[3]: https://www.networkworld.com/slideshow/153439/linux-best-desktop-distros-for-newbies.html#tk.nww-infsb
[4]: https://www.networkworld.com/article/3440100/take-the-intelligent-route-with-consumption-based-storage.html?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE21620&utm_content=sidebar ( Take the Intelligent Route with Consumption-Based Storage)
[5]: https://www.facebook.com/NetworkWorld/
[6]: https://www.linkedin.com/company/network-world

View File

@ -75,7 +75,7 @@ sudo apt-get upgrade
享受吧!
_本文最初发表在 [peppe8o.com][9],并许重新发布。_
_本文最初发表在 [peppe8o.com][9],并许重新发布。_
--------------------------------------------------------------------------------

View File

@ -1,182 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (messon007)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (The Keyring Concept in Ubuntu: What is It and How to Use it?)
[#]: via: (https://itsfoss.com/ubuntu-keyring/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
解读Ubuntu里的密钥环概念
======
如果您用过[ubuntu里的自动登录功能][1]或者其他的Linux发行版, 您可能遇到过这种弹出消息:
**请输入密码以解锁您的登录密钥环
登录密钥环在您登录系统时未解锁**
![Enter Password To Unlock Your Login Keyring Ubuntu][2]
你需要点击多次取消才能让它消失。你可能想知道为什么系统会多次反复提示这个密钥环消息?
让我来告诉你答案。它其实并没有出错,它只是一个安全特性。
奇怪吗下面就让我来解释下Linux里的密钥环概念。
### Linux里的密钥环是什么以及为什么需要它?
![][3]
在现实生活中您为什么要用钥匙环(也叫[钥匙链][4])? 您用它把一把或多把钥匙串到一起, 以便于携带和查找。
Linux里也是类似的。密钥环特性使您的系统可以将各种密码放在一起并将其保存在一个地方。
大多数Linux桌面环境像GNOME, KDE, Xfce等采用[gnome的密钥环][5]实现来提供这个功能。
该密钥环保存了ssh密钥GPG密钥以及使用此功能的应用程序例如Chromium浏览器的密钥。 默认情况下,**“密钥环”通过主密码来保护**,该密码通常是帐户的登录密码。
系统上的每个用户都有自己的密钥环,(通常)密码与用户帐户本身的密码相同。 当您使用密码登录系统时,您的密匙环将使用您帐户的密码自动解锁。
当您[启用Ubuntu中的自动登录功能时][1]时,就有问题了。这意味着您无需输入密码即可登录系统。 在这种情况下,您的密钥环不会自动解锁。
#### 密钥环是一个安全特性
记得我说过密钥环是一个安全特性吗现在想象一下您在您的Linux电脑上开启了自动登录功能。有权访问您电脑的任何人无需密码就能进入您的系统。但是您可能不会在意因为您只是用它来访问互联网。
但是如果您使用Chromium或[Ubuntu中的Google Chrome][6]之类的浏览器,并使用它来保存各种网站的登录密码,那么您将遇到麻烦。任何人都可以使用浏览器并利用您在浏览器中保存的密码登录网站。那不就是风险吗?
这就是为什么当您使用Chrome时它将反复地提示您先解锁密钥环。这确保了只有知道密钥环密码的人才能使用在浏览器中保存的密码来登录它们相关的网站。
如果您反复取消解锁密钥环的提示它最终将消失并允许您使用浏览器。但是保存的密码将不会被解锁您在Chromium/Chome浏览器上将会看到'同步暂停'的提示。
![Sync paused in Google Chrome][7]
#### 如果密钥环总是存在的,为什么您从来没有见过它呢?
如果您在您的Linux系统上从没见过它的话这就是一个有效的问题。
如果您从没有用过自动登录功能(或者修改您的账户密码),您可能都没有意识到这个特性的存在。
这是因为当您通过您的密码登录系统时,您的密钥环被您的账户密码自动解锁了。
Ubuntu(和其他发行版)对于通用的管理任务像修改用户, 安装新软件等需要输入密码,无论您是否是自动登录的。但是对于日常任务像使用浏览器,它不需要输入密码因为密钥环已经被解锁了。
当您切换到自动登录时,您不再需要输入登录密码。这意味着密钥环没有被自动解锁,因此当您使用利用了密钥环特性的浏览器时,它将提示您来解锁密钥环。
#### 您可以容易地管理密钥环和密码
这个密钥环放在哪里?它的核心是一个守护任务(一个后台自动运行的程序)。
别担心。您不必通过终端来操作守护任务。大多数桌面环境都自带有图形化的应用程序可以和守护进程进行交互。KDE上有KDE钱包GNOME和其他桌面上叫做密码和密钥(原来叫[海马][8])。
![Password And Keys App in Ubuntu][9]
您可以用这个GUI程序来查看什么应用程序在用密钥环来管理/保护密码。
您可以看到我的系统有自动创建的登录密钥环。也有一个存储GPG和SSH密钥的密钥环。那个[证书][10]是用来保存证书机构颁发的证书(像HTTPS证书)的。
![Password and Keys application in Ubuntu][11]
您也可以使用这个应用程序来手动保存网站的密码。例如,我创建了一个新的叫做'Test'的被密码保护的密钥环,并手动存储了一个密码。
这比保存一批密码在一个文本文件中要好一些。至少在这种情况下,您的密码只有在您通过密码解锁了密钥环时才允许被看到。
![Saving New Password Seahorse][12]
一个潜在的问题是如果您格式化您的系统,手动保存的密码必然会丢失。通常,您会备份您的个人文件,但并不是所有的用户特定数据如密钥环文件。
有一种办法能解决它。密钥环数据通常保存在~/.local/share/keyrings目录。在这里您可以看到所有的密钥环但是您不能直接看到它们的内容。如果您移除密钥环的密码(我会在这篇文章的后面描述操作步骤)您可以像一个普通的文本文件一样读取密钥环的内容。您可以完整地拷贝这个解锁后的密钥环文件并在其他的Linux机器(安装了密码和密钥应用)上导入到密码和密钥应用程序。
总结一下目前为止所学的内容:
* 大多数Linux缺省已经安装并激活了密钥环特性
* 系统上的每个用户都拥有他自己的密钥环
* 密钥环通常被账户密码锁定(保护)
* 当您通过密码登录时密钥环会被自动解锁
* 对于自动登录,密钥环不会自动解锁,因此当您试图使用依赖密钥环的应用程序时会被提示先解锁它
* 并不是所有的浏览器或应用程序利用了密钥环特性
* (Linux上)安装了一个GUI程序可以和密钥环交互
* 您可以用密钥环来手动以加密格式来存储密码
* 您可以自己修改密钥环密码
* 您可以通过导出(需要先解锁密钥环)并导入(到其他计算机上)的方式来获取手工保存的密码。
### 修改密钥环密码
假设您修改了您的账户密码。当您登录时,您的系统试图通过新的登录密码来自动解锁密钥环。但是密钥环还在使用老的登录密码。
这种情况下,您可以修改密钥环密码为新的登录密码,这样密码环才能在您登录系统时自动解锁。
从菜单中打开密码和密钥应用程序:
![Look for Password and Keys app in the menu][9]
在登录密钥环上右击并点击修改密码:
![Change Keyring Password][13]
如果您不记得老的登录密码怎么办?
您可能知道[Ubuntu上复位忘记的密码是很容易的][14]。但是密钥环在这种场景下还是有问题。您修改了账户密码但是您不记得仍然被密钥环使用的老的账户密码。
您不能修改它因为您不知道老的密码。怎么办?
这种情况下,您将不得不移除整个密钥环。您可以通过密码和密钥应用程序来操作:
![Delete Keyring Ubuntu][15]
它会提示您进行确认:
![Delete Keyring][16]
另外,您也可以手动删除~/.local/share/keyrings目录下的密钥环文件。
老的密钥环文件被移除后您再打开Chrome/Chromium时它会提示您创建一个新的密钥环。
![New Keyring Password][17]
您可以用新的登录密码,密钥环就会被自动解锁了。
### 禁用密钥环密码
在您想用自动登录但又不想手动解锁密钥环时,您可以把禁用密钥环密码作为一个规避方法。记住您正在禁用一个安全特性,因此请三思。
操作步骤和修改密钥环相似。打开密码和密钥应用程序,然后修改密钥环密码。
技巧在于当它提示修改密码时,不要输入新密码,而是点击继续按钮。这将移除密钥环的密码。
![Disable Keyring password by not setting any password at all][18]
这种方法,密钥环没有密码保护并将一直处于解锁状态。
--------------------------------------------------------------------------------
via: https://itsfoss.com/ubuntu-keyring/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[messon007](https://github.com/messon007)
校对:[校对者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://itsfoss.com/ubuntu-automatic-logon/
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/enter-password-to-unlock-your-login-keyring-ubuntu.jpg?ssl=1
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/keyring-concept-ubuntu-1.png?ssl=1
[4]: https://en.wikipedia.org/wiki/Keychain
[5]: https://wiki.archlinux.org/index.php/GNOME/Keyring
[6]: https://itsfoss.com/install-chrome-ubuntu/
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/sync-paused-keyring-ubuntu.jpg?ssl=1
[8]: https://wiki.debian.org/Seahorse
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/password-and-keys-app-ubuntu.jpg?ssl=1
[10]: https://help.ubuntu.com/lts/serverguide/certificates-and-security.html
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/keyring-pasword-ubuntu.png?ssl=1
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/saving-new-password-seahorse.png?ssl=1
[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/change-keyring-password.png?ssl=1
[14]: https://itsfoss.com/how-to-hack-ubuntu-password/
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/delete-keyring-ubuntu.jpg?ssl=1
[16]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/delete-keyring.jpg?ssl=1
[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/new-keyring-password.jpg?ssl=1
[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/disable-keyring-password-ubuntu.png?ssl=1

View File

@ -1,153 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (MjSeven)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Scheduling tasks on Linux using the at command)
[#]: via: (https://www.networkworld.com/article/3535808/scheduling-tasks-on-linux-using-the-at-command.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
使用 at 命令在 Linu 上安排任务
======
at 命令可以很容易地安排 Linux 任务在你选择的任何时间或日期运行,让我们来看看它能为你做什么。
![][0]
romkaz / Getty Images
当你希望命令或脚本在某个特定时间运行时,你不需要将手指放在键盘上盘旋等待按下回车键,或者是在特定时间坐在办公桌前。相反,你可以通过 **at** 命令来设置任务。在本文中,我们将研究如何使用 **at** 来安排任务,如何精确地选择任务希望运行的时间以及如何使用 **at** 来查看安排运行的任务。
### at vs cron
对于那些使用 **cron** 在 Linux 系统上安排任务的人来说,**at** 命令类似于 **cron**,因为你可以在选定的时间调度任务,但是 **cron** 用于定期运行的作业 - 甚至是每年仅一次。大多数 **cron** 作业的频率都设置为每天、每周或每月运行一次,不过你可以控制运行的频率和时间。
另一方面,**at** 命令用于仅运行一次的任务。想在午夜重启系统?没问题,假设你有适当的权限,**at** 可以为你完成此操作。如果你希望系统在每个星期六凌晨 2 点重启,那么改用 **cron**
### 使用 at
**at** 命令很容易使用,只需记住几件事。一个简单使用 **at** 的例子类似于这样:
```
$ at 5:00PM
at> date >> thisfile
at> <EOT>
```
在输入 "at" 和应该运行命令的时间,**at** 会提示你在设定时间会运行该命令(此例中是 **`date`** 命令)。输入 **^D**(Ctrl + d) 来完成请求。
假设我们在下午 5 点之前设置这个 **at** 命令,那么日期和时间将在当天下午 5 点添加到名为 "thisfile" 文件的末尾。否则,该命令将在第二天下午 5 点运行。
**at** 命令进行交互时,可以输入多个命令。如果你要同时运行多个命令,只需输入多个命令行即可:
[][1]
```
$ at 6:22
warning: commands will be executed using /bin/sh
at> echo first >> thisfile
at> echo second >> thisfile
at> <EOT>
```
在上面的命令中,我们使用了一个普通的用户账户,将一些简单的文本添加到该用户主目录的文件中。如果在上午 6:22 之后运行这些命令,那么命令会在第二天运行,因为 6:22 表示上午 6:22。如果你想在下午 6:22 运行,使用 6:22 PM 或者 18:22"6:22 PM" 也可以。
你也可以通过使用 **at** 来安排命令在指定的日期或时间运行,例如 "10:00AM April 15 2021" 或 "noon + 5 days"(从今天起 5 天内的中午运行),以下是一些例子:
```
at 6PM tomorrow
at noon April 15 2021
at noon + 5 days
at 9:15 + 1000 days
```
在指定要运行的命令并按下 **^D** 后,你会注意到 **at** 命令为每个请求分配了一个作业编号,这个数字将显示在 **at** 命令的作业队列中。
```
$ at noon + 1000 days
warning: commands will be executed using /bin/sh
at> date >> thisfile
at> <EOT>
job 36 at Tue Dec 27 12:00:00 2022 <== job # is 36
```
### 检查队列
你可以使用 **atq**(at queue) 命令来查看 **at** 作业队列:
```
$ atq
32 Thu Apr 2 03:06:00 2020 a shs
35 Mon Apr 6 12:00:00 2020 a shs
36 Tue Dec 27 12:00:00 2022 a shs
34 Thu Apr 2 18:00:00 2020 a shs
```
如果你需要取消队列中的一个作业,使用 **atrm**(at remote) 命令和作业编号:
```
$ atrm 32
$ atq
35 Mon Apr 6 12:00:00 2020 a shs
36 Tue Dec 27 12:00:00 2022 a shs
34 Thu Apr 2 18:00:00 2020 a shs
```
你可以使用 **at -c** 命令来查看安排任务的详细信息,其它详细信息(活动的搜索路径等)也可以,但是输出的最后一行将显示计划运行的命令。
```
$ at -c 36 | tail -6
cd /home/shs || {
echo 'Execution directory inaccessible' >&2
exit 1
}
date >> thisfile
```
注意,命令首先会测试是否可以通过 **cd** 命令进入用户目录。如果不可以,作业将退出并显示错误。如果可以,则运行在 **at** 中指定的命令。它将命令视为 “进入 /home/shs 或退出并显示错误”。
### 以 root 身份运行作业
要以 root 身份运行 **at** 作业,只需将 **sudo** 与你的 **at** 命令一起使用,如下所示:
```
$ sudo at 8PM
[sudo] password for shs:
warning: commands will be executed using /bin/sh
at> reboot now
at> <EOT>
job 37 at Wed Apr 1 16:00:00 2020
```
注意root 的任务以 **root** 作为执行者显示在队列中。
```
35 Mon Apr 6 12:00:00 2020 a shs
36 Tue Dec 27 12:00:00 2022 a shs
37 Wed Apr 1 20:00:00 2020 a root <==
```
### 运行脚本
你还可以使用 **at** 命令来运行脚本,这里有一个例子:
```
$ at 4:30PM
warning: commands will be executed using /bin/sh
at> bin/tryme
at> <EOT>
```
### 禁止使用 at 命令
**/etc/at.deny** 文件提供了一种禁止用户使用 **at** 命令的方法。默认情况下,它可能会包含一个不允许的账户列表,例如 **ftp****nobody**。可以使用 **/etc/at.allow** 文件执行相反的操作,但是通常只配置 **at.deny** 文件。
**总结**
当你要安排一项一次性任务时,无论你是希望在今天下午或几年后运行,**at** 命令都是通用且易于使用的。
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3535808/scheduling-tasks-on-linux-using-the-at-command.html
作者:[Sandra Henry-Stocker][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者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
[0]: https://images.idgesg.net/images/article/2019/08/gettyimages-140389307-100808283-large.jpg
[1]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE22140&utm_content=sidebar (ITAAS and Corporate Storage Strategy)
[2]: https://www.facebook.com/NetworkWorld/
[3]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,204 @@
[#]: collector: (lujun9972)
[#]: translator: (wxy)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Create web tutorials with Reveal.js and Git)
[#]: via: (https://opensource.com/article/20/4/create-web-tutorial-git)
[#]: author: (Eric D. Schabell https://opensource.com/users/eschabell)
使用 Reveal.js 和 Git 创建网页教程
======
> 通过这个简单的工作流程创建的研讨会幻灯片,可以在任何浏览器、设备和平台上一致地查看。
![Person reading a book and digital copy][1]
无论你是学习者还是教师,你可能都会认识到采用幻灯片放映来传播知识的在线<ruby>研讨会<rt>workshop</rt></ruby>的价值。如果你曾经偶然看到过这样一个逐页、逐章设置的井井有条的教程,你可能会想知道创建这样的一个网站有多难。
好吧,让我在这里向你展示,使用全自动化的流程来生成这样的教程是多么容易。
### 介绍
当我开始将学习内容放到网上置时,体验并不是很好。我想要的是一种可重复的、一致的、易于维护的东西,因为我的内容会随着我的教学技术而进步。
我尝试了许多交付模型,从 [Asciidoctor][2] 这样的低级代码生成器到在单个 PDF 文件中放置教程。全都不能让我满意。当我举办现场的在座研讨会时,我喜欢使用幻灯片放映,因此我想知道我是否可以为自己的在线的,自定进度的研讨会体验做同样的事情。
经过一番挖掘我为创建无痛的研讨会网站打下了基础。当时我已经在使用一个演示文稿生成框架这对我来说是很有帮助的因为这个框架可以产生对网站友好的格式HTML
### 设置
这里是这个项目所需要的基本组件。
* 研讨会的想法(这是你的问题,我帮不了你)
* 用于研讨会幻灯片的 Reveal.js
* GitLab 项目仓库
* 你最喜欢的 HTML 代码编辑器
* Web 浏览器
* 在你的机器上安装好 Git
如果这个列表看起来令人望而生畏,那么有一个快速入门的方法,不需要把所有的东西一个个都拉到一起。你可以用我的模板项目来给你提供幻灯片和项目设置的入门教程。
本文假设你熟悉 Git 和托管在 Git 平台(如 GitLab上的项目。如果你需要指导或教程请查看我们的[Git 入门系列][3]。
首先,将模板项目克隆到本地机器上。
```
$ git clone https://gitlab.com/eschabell/beginners-guide-automated-workshops.git
```
为此设置一个新的 GitLab 项目,导入模板项目作为初始导入。
研讨会网站有一些重要的文件。在**根目录**下,你会发现一个名为 `.gitlab-ci.yml` 的文件,当你向主分支提交修改时(即合并拉取请求到 `master` 分支),这个文件会作为触发器。它可以触发将 `slides` 目录的全部内容复制到 GitLab 项目的 `website` 文件夹中。
我把它托管在我的 GitLab 账户中,名为 `beginners-guide-automated-workshops`。当它部署完毕后,你可以在浏览器中通过导航到下列地址查看 `slides` 目录的内容:
```
https://eschabell.gitlab.io/beginners-guide-automated-workshops
```
对于你的用户帐户和项目URL 如下所示:
```
https://[YOUR_USERNAME].gitlab.io/[YOUR_PROJECT_NAME]
```
这些是你开始创建网站内容所需要的基本素材。当你推送修改后,它们会自动生成更新过的研讨会网站。请注意,默认模板包含了几个示例幻灯片,这将是你完成对存储库的完整签入后的第一个研讨会网站。
研讨会模板生成的结果是一个 [receive.js][4] 幻灯片,可以在任何浏览器中运行,并可以自动调整大小,几乎可以让任何人在任何地方、任何设备上观看。
这样创建一个方便、易访问的研讨会怎么样?
### 它是如何工作的
有了这些背景信息,你就可以开始探索研讨会的这些素材,并开始把你的内容放在一起了。你需要的一切都可以在项目的 `slides` 目录中找到;这里是使用 reveal.js 在浏览器中创建研讨会幻灯片的地方。
你将用来制作研讨会的文件和目录是:
* `default.css`文件
* `images` 目录
* `index.html`文件
在你喜欢的 HTML/CSS 编辑器中打开每一个文件,然后进行下面描述的修改。你用哪个编辑器并不重要,我更喜欢 [RubyMine IDE][5],因为它能在本地浏览器中提供页面预览。这对我在将内容推送到研讨会网站之前测试内容时很有帮助。
#### default.css 文件
文件 `css/theme/default.css` 是一个基础文件,你将在这里为你的研讨会幻灯片设置重要的全局设置。其中值得注意的两个主要的项目是所有幻灯片的默认字体和背景图片。
`default.css` 中,看一下标有 `GLOBAL STYLES` 的部分。当前的默认字体在这一行中列出了。
```
font-family: "Red Hat Display", "Overpass", san-serif;
```
如果你使用的是非标准字体类型,则必须在以下行中将其导入(与 Overpass 字体类型相同):
```
@import url('SOME_URL');
```
`background` 是你创建的每张幻灯片的默认图像。它存储在 `images` 目录下(见下面),并在下面这一行中设置(重点是图像路径)。
```
background: url("…/…/images/backgrounds/basic.png")
```
要设置一个默认背景,只需将这一行指向你要使用的图片。
#### images 目录
顾名思义,`images` 目录是用来存储你想在研讨会幻灯片上使用的图片。例如,我通常会把展示研讨会主题进展的截图放在我的个人幻灯片上。
现在,你只需要知道你需要将背景图片存储在一个子目录(`backgrounds`)中,并将你计划在幻灯片中使用的图片存储在 `images` 目录中。
#### index.html 文件
现在你已经把这两个文件整理好了,剩下的时间你就可以在 HTML 文件中创建幻灯片了,从 `index.html` 开始。为了让你的研讨会网站开始成形,请注意这个文件中的以下三个部分。
* `head `部分,在这里你可以设置标题、作者和描述。
* `body` 部分,你可以在这里找到要设计的单个幻灯片。
* 你可以在每个 `section` 中定义各个幻灯片的内容。
`head` 部分开始,因为它在顶部。模板项目有三个占位符行供你更新。
```
<title>INSERT-YOUR-TITLE-HERE</title>
<meta name="description" content="YOUR DESCIPTION HERE.">
<meta name="author" content="YOUR NAME">
```
`title` 标签包含文件打开时显示在浏览器选项卡中的文字。请将其改为与你的研讨会的标题相关的内容(或研讨会的某个部分),但记得要简短,因为标签页的标题空间有限。`description` 元标签包含了对你的工作坊的简短描述,而 `author` 元标签是你应该把你的名字(如果你是为别人写的,则是工作坊创建者的名字)。
现在继续到 `body` 部分。你会注意到它被分成了许多 `section` 标签。`body` 的开头包含了一个注释,说明你正在为每个标有 `section` 的打开和关闭的标签创建幻灯片。
```
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
```
接下来,创建你的各个幻灯片,每张幻灯片都用 `section` 标签封装起来。这个模板包括了一些幻灯片来帮助你开始制作。例如,这里是第一张幻灯片。
```
<section>
<div style="width: 1056px; height: 300px">
<h1>Beginners guide</h1>
<h2>to automated workshops</h2>
</div>
<div style="width: 1056px; height: 200px; text-align: left">
Brought to you by,<br/>
YOUR-NAME<br/>
</div>
<aside class="notes">Here are notes: Welcome to the workshop!</aside>
</section>
```
这张幻灯片有两个区域,用 `div` 标签划分。用空格隔开了标题和作者。
如果你有一定的 HTML 使用知识,可以尝试各种东西来开发你的研讨会。你使用浏览器预览结果的时候真的很方便。有些 IDE 提供了本地查看修改,但你也可以打开 `index.html` 文件查看你的修改,然后再推送到资源库中。
一旦你对你的研讨会感到满意,推送你的修改,然后等待它们通过持续集成管道。它们将像模板项目一样被托管在 <https://eschabell.gitlab.io/beginners-guide-automated-workshops>
### 了解更多
要了解更多关于这个工作流程可以做什么,请查看下面的示例研讨会和托管了研讨会集合的网站。所有这些都是基于本文中描述的工作流程。
研讨会的例子:
* [Red Hat Process Automation Manage workshop][6]
* [JBoss Travel Agency BPM Suite online workshop][7]
研讨会集合:
* [Rule the world: Practical decisions & process automation development workshops][8]
* [Application development in the cloud workshop][9]
* [Portfolio architecture: Workshops for creating impactful architectural diagrams][10]
我希望这本新手指南和模板研讨会项目能让你看到,在开发和维护工作室网站的过程中,可以轻松、无痛地完成。我也希望这个工作流程能让你的研讨会受众几乎在任何设备上都能完全访问你的内容,这样他们就能从你分享的知识中学习到你的知识。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/create-web-tutorial-git
作者:[Eric D. Schabell][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/eschabell
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/read_book_guide_tutorial_teacher_student_apaper.png?itok=_GOufk6N (Person reading a book and digital copy)
[2]: https://asciidoctor.org/
[3]: https://opensource.com/resources/what-is-git
[4]: https://revealjs.com/#/
[5]: https://www.jetbrains.com/ruby/
[6]: https://gitlab.com/bpmworkshop/rhpam-devops-workshop
[7]: https://gitlab.com/bpmworkshop/presentation-bpmworkshop-travel-agency
[8]: https://bpmworkshop.gitlab.io/
[9]: https://appdevcloudworkshop.gitlab.io/
[10]: https://redhatdemocentral.gitlab.io/portfolio-architecture-workshops