Merge pull request #26 from LCTT/master

update from LCTT
This commit is contained in:
perfiffer 2021-12-21 09:43:26 +08:00 committed by GitHub
commit c9a94ba3fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
166 changed files with 14098 additions and 4191 deletions

View File

@ -0,0 +1,124 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14077-1.html)
[#]: subject: (Compose music as code using Sonic Pi)
[#]: via: (https://opensource.com/article/20/3/sonic-pi)
[#]: author: (Matt Bargenquast https://opensource.com/users/mbargenquast)
使用 Sonic Pi 像写代码一样编曲
======
> 有了这个易于使用的开源程序,不需要掌握乐器,就可以把你变成一个音乐大师。
![](https://img.linux.net.cn/data/attachment/album/202112/13/095540zigm4pzopgrdevvz.jpg)
也许你和我一样,在上学的时候学过一种乐器。对我来说,那是钢琴,后来是中提琴。然而,我一直认为,随着我童年的兴趣转向计算机和编码,我后来忽略了音乐练习。我确实想知道,如果我年轻时有 Sonic Pi 这样的东西我会怎么样。Sonic Pi 是一个开源程序,可以让你通过代码来创作和演奏音乐。它是这两个世界的完美结合。
我们对 Sonic Pi 并不陌生,早在 2015 年就对其创造者 Sam Aaron 博士 [进行了采访][2]。从那时起Sonic Pi 在很多方面都有了很大的发展。它达到了一个重要的新版本里程碑,期待已久的 v3.2 版本已于 2020 年 2 月 28 日公开发布。一个不断壮大的开发者社区正积极为其 [GitHub 项目][3] 做出贡献,而在 [官方论坛][4] 中有一个同样繁荣的作曲家社区可以分享想法和提供支持。该项目现在还通过 [赞助活动][5] 获得了资金支持,而 Sam 本人也在世界各地的学校、会议和研讨会中传播 Sonic Pi 的信息。
Sonic Pi 真正的闪光点在于它的平易近人。它的版本适用于许多主要的操作系统,包括 Windows、macOS、Linux当然也包括树莓派本身。事实上在树莓派上学习使用 Sonic Pi 再简单不过了。它预装在 [Raspbian][6] 中,所以如果你有一个基于 Raspbian 的现有环境,你会发现它位于编程菜单中。
第一次加载 Sonic Pi 时,你会看到一个简单的界面,有两个主要的区域:一个编辑器,可以写你的代码,还有一个区域专用于 Sonic Pi 丰富的教程。对于新手来说,教程是学习基础知识的重要资源,它有配套的音乐程序来巩固所学的每个概念。
如果你跟着学习,让我们为自己编写一段简单的音乐,探索现场编码音乐的潜力。将以下代码输入或粘贴到 Sonic Pi 编辑器中:
```
live_loop :beat do
sample :drum_heavy_kick
sleep 1
end
```
即使你是一个 Sonic Pi 的新手,许多程序员可能马上就会明白这里发生了什么。我们正在播放一个<ruby>踏板鼓<rt>drum kick</rt></ruby>采样,停止一秒钟,然后重复。点击运行按钮或按 `ALT+R`macOS 上为 `meta+R`),你应该听到它开始播放。
这不是一首非常激动人心的歌曲,所以让我们用一个在不合拍的<ruby>小鼓<rt>snare</rt></ruby>来使它生动起来。用下面的代码块替换现有的代码,然后再次运行。你可以在做这个的时候让现有的节拍继续播放;你会注意到你的改动会自然地应用,与节拍同步:
```
live_loop :beat do
sample :drum_heavy_kick
sleep 0.5
sample :drum_snare_soft
sleep 0.5
end
```
我们在做这个的时候,让我们在每四拍之前添加一个<ruby>踩镲<rt>hi-hat</rt></ruby>,让声音变得有趣一些。在现有的程序块下面添加新的程序块,然后再次运行:
```
live_loop :hihat do
sleep 3.9
sample :drum_cymbal_closed
sleep 0.1
end
```
我们现在已经有了我们的节拍,所以让我们来添加一个<ruby>低音声线<rt>bassline</rt></ruby>Sonic Pi 内置了各种合成器,还有混响和失真等效果滤波器。我们将使用 “dsaw” 和 “tech_saw” 合成器的组合,使其具有电子复古合成器的感觉。将下面的块添加到你现有的程序中,运行,并听一听:
```
live_loop :bass do
use_synth :dsaw
play :a2, attack: 1, release: 2, amp: 0.3
sleep 2.5
use_synth :tech_saws
play :a1, attack: 1, release: 1.5, amp: 0.8
sleep 1.5
end
```
你会注意到上面的内容,当播放音符时,我们可以完全控制 [ADSR][7] <ruby>包络<rt>envelope</rt></ruby>,所以我们可以决定每个声音何时达到峰值和衰减。
最后,让我们添加一个<ruby>主音合成器<rt>lead synth</rt></ruby>,试试那些被称为“<ruby>切片器<rt>slicer</rt></ruby>”的效果特征。为了使事情更有趣,我们还将引入一个伪随机的元素,让 Sonic Pi 从一系列潜在的<ruby>和弦<rt>chord</rt></ruby>中挑选。这就是一些有趣的即兴创作和“快乐的意外”可以开始发生的地方。在你现有的程序中加入下面的程序块并运行:
```
live_loop :lead do
with_fx :slicer do
chords = [(chord :A4, :minor7), (chord :A4, :minor), (chord :D4, :minor7), (chord :F4, :major7)]
use_synth :blade
play chords.choose, attack: 1, release: 2, amp: 1
sleep 2
end
end
```
很好!现在,我们当然不会很快与 Daft Punk 竞争但希望通过这个过程你已经看到我们如何通过添加一些简单的代码实时地从一个单一节拍变成更大的东西。YouTube 上 Sam Aaron 的 [现场编码表演][8] 非常值得一看,它展示了 Sonic Pi 可以让你有多大的创造力和适应力。
![Sonic Pi composition example][9]
*我们完成的作品,完整版*
如果你曾经想学习一种乐器但又觉得被“我没有节奏感”或“我的手不够灵活”这样的想法所束缚Sonic Pi 是一种多功能的乐器,这些都不重要。你所需要的只是想法和灵感,以及一台便宜的电脑,如简陋的树莓派。其余的都在你的指尖上(实际意义上的)。
这里有几个方便的链接可以让你开始:
* 官方 Sonic Pi [网站][10] 和 [教程][11]
* [Sonic Pi 入门][12]
* Sonic Pi 的 [GitHub 项目][3]
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/3/sonic-pi
作者:[Matt Bargenquast][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mbargenquast
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/music-birds-recording-520.png?itok=UoM7brl0 (Bird singing and music notes)
[2]: https://opensource.com/life/15/10/interview-sam-aaron-sonic-pi
[3]: https://github.com/samaaron/sonic-pi/
[4]: https://in-thread.sonic-pi.net/
[5]: https://www.patreon.com/samaaron
[6]: https://www.raspberrypi.org/downloads/raspbian/
[7]: https://en.wikipedia.org/wiki/Envelope_(music)
[8]: https://www.youtube.com/watch?v=JEHpS1aTKp0
[9]: https://opensource.com/sites/default/files/uploads/sonicpi.png (Sonic Pi composition example)
[10]: https://sonic-pi.net/
[11]: https://sonic-pi.net/tutorial.html
[12]: https://projects.raspberrypi.org/en/projects/getting-started-with-sonic-pi
[13]: http://projects.raspberrypi.org

View File

@ -0,0 +1,151 @@
[#]: subject: (FreeDOS commands you need to know)
[#]: via: (https://opensource.com/article/21/4/freedos-commands)
[#]: author: (Kevin O'Brien https://opensource.com/users/ahuka)
[#]: collector: (lujun9972)
[#]: translator: (robsean)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14074-1.html)
FreeDOS 操作目录和文件的基本命令
======
> 学习如何在 FreeDOS 中对目录和文件执行创建、移除、复制等任务。
![](https://img.linux.net.cn/data/attachment/album/202112/12/100340gffegjttbn0n7iox.jpg)
DOS 的开源实现 [FreeDOS][2] 提供了一个轻量级的操作系统,可以在现代硬件(或模拟器)上用于运行历史遗留下来的应用程序,可以更新硬件供应商不兼容于 Linux 的固件闪存。熟悉 FreeDOS 不仅是一种对旧计算机时代的有趣考古,也是一种获取有用的计算机技能的投入。在这篇文章中,我将介绍一些在 FreeDOS 系统上工作所需要知道的基本命令。
### 基本的命令和文件命令
FreeDOS 在硬盘驱动器上使用目录来组织文件。这意味着你需要使用目录命令来创建一个结构,用于存储和查找你在其中存储的文件。你所需要的用于管理目录结构的命令有:
* `MD` (或 `MKDIR` 创建一个新的目录或子目录。
* `RD` (或 `RMDIR` 移除(删除) 一个目录或子目录。
* `CD` (或 `CHDIR` 从当前工作目录更改到另一个命令。
* `DELTREE` 删除一个目录,包括其包含的任意文件或子目录。
* `DIR` 列出当前工作目录的内容。
因为使用目录是 FreeDOS 的主要工作,所有的这些命令(除 DELTREE 以外)是包含在 `COMMAND.COM` 中的内部命令。因此,它们将被加载到内存之中,并在你启动(即使是从启动盘启动)时随时可用。前三个命令有两个版本:一个版本是两个字母的短名,一个版本是长名。在实践中没有区别,因此,我将在这篇文章中使用短名。
### 使用 MD 创建一个目录
FreeDOS 的 `MD` 命令会创建一个新的目录或子目录。(实际上,由于 `\` 是根目录,从技术上讲,所有的目录都是子目录,因此,我更喜欢在所有的示例中使用“子目录”的说法)。有一个可选的参数是你所想要创建目录的路径,但是如果不包含路径,将在当前工作子目录中创建子目录。
例如,为在你的当前位置创建一个名称为 `letters` 的子目录:
```
C:\HOME\>MD LETTERS
```
这会创建子目录 `C:\letters`
通过包含一个路径,你可以在任意位置创建一个子目录:
```
C:\>MD C:\HOME\LETTERS\LOVE
```
这和先移动到 `C:\HOME\LETTERS` ,然后在其中创建一个子目录的结果相同:
```
C:\CD HOME\LETTERS
C:\HOME\LETTERS\>MD LOVE
C:\HOME\LETTERS\>DIR
LOVE
```
一个路径描述不能超过 63 个字符,包括反斜杠在内。
### 使用 RD 移除一个目录
FreeDOS 的 `RD` 命令会移除一个子目录。这个子目录必须是空的。如果它包含文件或其它是子目录,你将会得到错误信息。它也有一个可选的路径参数,语法与 `MD` 的相同。
你不能移除你的当前工作子目录。为移除此目录,你必须 `CD` 到其父目录,然后再移除不需要的子目录。
### 使用 DELTREE 删除文件和目录
`RD` 命令可能会让人有点迷糊,因为在该命令中内置了保护 FreeDOS 的措施。例如,你不能删除一个包含内容的子目录是一种安全措施。`DELTREE` 就是解决方案。
`DELTREE` 命令会删除整个子目录“树”(子目录)、其包含的所有的文件,以及其包含的所有的子目录及其包含的所有的文件等等,上述的一切都在一个简单的命令中完成。有时,它可能有点 _太_ 容易了,因为它可以如此快速地擦除数据。它是忽略文件属性的,因此你可以擦除隐藏、只读,和未知的系统文件。
你甚至可以在命令中具体指定多个目录树来擦除它们。这条命令将在一个命令中擦除这两个目录中的所有子目录:
```
C:\>DELTREE C:\FOO C:\BAR
```
这是那些使用前需要三思的命令中的其中一个。毫无疑问,它自然有其价值。我仍然对转到每个子目录,删除个别文件,检查每个子目录的内容,一次删除一个子目录, 然后再跳转到上一层目录,重复上述过程的乏味而记忆犹新。`DELTREE` 在你需要时是非常省时。但是我从不会将其用于日常维护,因为一此失误都能造成重大的损失。
### 格式化一个硬盘驱动器
`FORMAT` 命令也可以用于准备一个空白的硬盘驱动器来将文件写入其中。这将格式化 `D:` 驱动器:
```
C:\>FORMAT D:
```
### 复制文件
`COPY` 命令,顾名思义,将文件从一个位置复制到另一个位置。所需要的参数是:将要被复制的文件、要将其复制到的路径和文件。开关选项包含:
* `/Y` 当一个文件要被覆盖时,避免出现提示。
* `/-Y` 当一个文件要被覆盖时,需要出现提示。
* `/V` 验证副本的内容。
这将从 `C:` 上的工作目录中复制文件 `MYFILE.TXT``D:` 驱动器的根目录,并将其重命名为 `EXAMPLE.TXT`
```
C:\>COPY MYFILE.TXT D:\EXAMPLE.TXT
```
这将从 `C:` 上的工作目录中复制文件 `EXAMPLE.TXT` 到 `C:\DOCS\` 目录,接下来验证文件的内容来确保副本是完整的:
```
C:\>COPY EXAMPLE.TXT C:\DOCS\EXAMPLE.TXT /V
```
你也可以使用 `COPY` 命名来合并和追加文件。这个命令将合并两个文件 `MYFILE1.TXT``MYFILE2.TXT` ,并将其放置到一个新的名称为 `MYFILE3.TXT` 的文件之中:
```
C:\>COPY MYFILE1.TXT+MYFILE2.TXT MYFILE3.TXT
```
### 使用 XCOPY 复制目录
`XCOPY` 命令将复制整个目录以及它们的所有的子目录和这些子目录中包含的所有的文件。参数是将要复制的文件和其路径,以及将要复制到的目的地。重要的开关选项是:
* `/S` 复制当前目录及其子目录中的所有文件。
* `/E` 复制子目录,即使它们是空的。这个选项必须和 `/S` 一起使用。
* `/V` 验证其所制作的副本。
这是一个非常强大和有用的命令,尤其是用于备份目录或整个硬盘驱动器。
这个命令将复制目录 `C:\DOCS` 的全部内容,包括所有的子目录及其内容(除了空的子目录以外),并将其放置到驱动器 `D:` 的目录 `D:\BACKUP\DOCS\` 之中:
```
C:\>XCOPY C:\DOCS D:\BACKUP\DOCS\ /S
```
### 使用 FreeDOS
FreeDOS 是一个有趣的、轻量的、开源的操作系统。不管你正在使用它来更新你的主板的固件,还是给予旧计算机新生,它都能提供很多有用的实用程序,可以使你能够很好地使用它工作。学习 FreeDOS 的基本知识。你都可能会被它的多才多艺所惊讶。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/4/freedos-commands
作者:[Kevin O'Brien][a]
选题:[lujun9972][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ahuka
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
[2]: https://www.freedos.org/
[3]: https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-8-format-copy-diskcopy-xcopy/
[4]: https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-10-directory-commands/
[5]: https://allaboutdosdirectoires.blogspot.com/

View File

@ -0,0 +1,178 @@
[#]: subject: (FreeDOS commands for Linux fans)
[#]: via: (https://opensource.com/article/21/6/freedos-linux-users)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
[#]: collector: (lujun9972)
[#]: translator: (robsean)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14092-1.html)
为 Linux 用户准备的 FreeDOS 命令
======
> 如果你已经熟悉了 Linux 命令行,尝试这些命令有助于轻松地进入 FreeDOS 。
![](https://img.linux.net.cn/data/attachment/album/202112/18/102331ubkem265eqz6u1mk.jpg)
如果你已经尝试过 FreeDOS 你可能已经被命令行所吓倒。DOS 命令可能稍微不同于你所使用的 Linux 命令行,因此,使用它的命令行上需要学习一些新的命令。
但是对于 Linux 用户来说,它不是一种 “全新的” 体验。在 FreeDOS 中,除了 DOS 命令之外,我们还包含一些已经熟悉的标准的 Unix 命令。因此,如果你已经熟悉了 Linux 命令行,尝试这些命令有助于轻松地进入 FreeDOS
### 在四周走走
在 FreeDOS 文件系统中使用 `cd` 命令来 _更改目录_ 。在 FreeDOS 上的用法在 Linux 上的用法基本相同。要更改到一个名称为 `apps` 的子目录,输入 `cd apps` 。要回到先前的目录,输入 `cd ..`
在 FreeDOS 上导航浏览目录和路径是仅有的不同点,目录分隔符是 `\`(“反斜杠”)而不是你在 Linux 上使用的 `/` (“正斜杠”)。例如,让我们假设你在 `\devel` 目录之中,你想移动到 `\fdos` 目录。这两个目录相对于 _根_ 目录而言是处于相同的 “层次” 之中的。因此,你可以输入 `cd ..\fdos` 来 “向后返回” 一个目录层次(使用 `..` ,然后再 “转到” `fdos` 目录。
要更改到一个新的目录,你可以使用先前提到的反斜杠来替换需要给出的完整的路径。如果你已经深入了另外一个路径之中,并且只是像立即切换到新的位置,那么这会是非常方便的。例如,要更改到 `\temp` 目录,你可以输入 `cd \temp`
```
C:\>cd apps
C:\APPS>cd ..
C:\>cd devel
C:\DEVEL>cd ..\fdos
C:\FDOS>cd \temp
C:\TEMP>_
```
在 FreeDOS 中,像大多数的 DOS 系统一样你可以在DOS 提示符中看到你的当前路径。在 Linux 上,你的提示符可能类似于 `$` 。在 FreeDOS 上,提示符会列出当前的驱动器及其当前的路径,接下来使用 `>` 作为提示符(看做 Linux 上的 `$`)。
### 列出和显示文件
在 Linux 上,列出当前目录中文件的标准命令是 `ls` 命令。在 FreeDOS ,它是一个不同的命令: `dir` 。但是你可以创建一个 _别名_ 来获取一种与 `ls` 类似的行为。
要为另外一个命令创建一个别名,使用内置的 `alias` 命令。例如,使用此命令来为 `ls` 定义一个别名,这个别名将显示一个目录列表,与在 Linux 上使用 `ls` 类似:
```
C:\>alias ls=dir /one /w /b /l
C:\>ls
[apps] command.com [devel] fdauto.bat fdconfig.sys
[fdos] kernel.sys [src] [temp]
C:\>
```
在 FreeDOS 上的命令选项格式与 Linux 稍微不同。在 Linux 上, 你使用一个连字符号(`-`)表示选项。但是在 FreeDOS 上,你使用一个正斜杠来表示选项。上面的 `alias` 命令使用斜杆杠字符 — 它们是 `dir` 的选项。`/one` 可选择项告诉 `dir` 以某种方式排序(`o`):先按名称(`n`)再按扩展名(`e`)来排序一些文件和目录。`/w` 使用一个 “宽” 目录列表,`/b` 使用一种不带有 `dir` 通常提供的其它信息的 “裸” 显示,`/l` 指示 `dir` 以小写字母的形式显示文件和目录。
注意,针对于 FreeDOS 的 `dir` 命令的命令行选项与针对于 Linux 的 `ls` 命令的命令行选项截然不同,因此,你不能像你在 Linux 上一样精确地使用这个 `ls` 别名。例如,在 FreeDOS 上使用此别名输入 `ls -l` 将产生一条 “文件未找到” 的错误,因为底层的 FreeDOS 的 `dir` 命令不能找到一个名称为 `-l` 的文件。不过,对于基本的 “查看在我的系统上有哪些文件” 来说,这个 `ls` 别名已经足够帮助 Linux 用户开始使用 FreeDOS 了。
类似地,你可以为 FreeDOS 的 `type` 命令创建一个别名,来像 Linux 的 `cat` 命令一样工作。两个重新都会显示一个文本文件的内容。虽然 `type` 不支持你可能在 Linux 下使用的命令行选项,但是显示一单个文件的基本用法是相同的。
```
C:\FDOS>alias cat=type
C:\FDOS>cat version.fdi
PLATFORM=FreeDOS
VERSION=1.3-RC4
RELEASE=2021-04-30
C:\FDOS>
```
### 其它的类 Unix 命令
FreeDOS 包含一些精选的其它常见的类 Unix 命令,因此 Linux 用户将不会感觉到拘束。为在 FreeDOS 上使用这些 Linux 命令,你可能需要从 “FreeDOS Installer” - “My Package List Editor Software (FDIMPLES)” 软件包管理器来安装 “Unix Like Tools” 软件包。
![Installing the Unix-like package set][2]
Jim Hall, CC-BY SA 4.0
并不是所有的类 Unix 实用程序都能像在 Linux 上对应的实用程序一样 _一致地_ 工作。这就是我们称其为 _类 Unix_ 的原因。如果你将要使用一些深层次的命令行选项,你可能需要检查其兼容性,不过,对于典型的用法是没有问题的。开始在 FreeDOS 上使用这些类 Unix 命令:
`cal` 命令是标准的 Unix 的日历程序。例如,为显示当前月份的日历,只需要输入 `cal` 。为查看一个具体指定的月份,将月份和年份作为参数予以给定:
```
C:\>cal 6 1994
June 1994
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
```
使用 `du` 命令来查看你的磁盘使用情况。这是 Linux 的 `du` 命令的简单版本,并且不支持路径以外的任何命令行选项。
```
C:\>du -s apps
usage: du (start path)
C:\>du apps
158784 C:\APPS\FED
0 C:\APPS
Total from C:\APPS is 158784
C:\>
```
`head` 命令显示一个文件的前几行。例如,这是一种确定一个文件是否包含正确数据的简单方法。
```
C:>head fdauto.bat
@ECHO OFF
set DOSDIR=C"\FDOS
set LANG=EN
set TZ=UTC
set PATH=%dosdir%\BIN
if exist %dosdir%\LINKS\NUL set PATH=%path%;%dosdir%\LINKS
set NLSPATH=%dosdir%\NLS
set HELPPATH=%dosdir%\HELP
set TEMP=%dosdir%\TEMP
set TMP=%TEMP%
C:\>
```
要查看一个完整的文件,使用 `more` 命令,在 FreeDOS 上的默认文件查看器。这将一次显示一屏的文件,然后在显示下一屏的信息前,打印一个按下一次按键的提示。`more` 命令是一个非常简单的文件查看器;在 Linux 上你可能已经使用过一个功能更全面的查看器,可以尝试一下 `less` 命令。`less` 命令提供 “向后” 滚动一个文件的能力,以防你错过一些东西。你还可以搜索具体指定的文本。
```
C:\>less fdauto.bat
@ECHO OFF
set DOSDIR=C"\FDOS
set LANG=EN
set TZ=UTC
set PATH=%dosdir%\BIN
if exist %dosdir%\LINKS\NUL set PATH=%path%;%dosdir%\LINKS
set NLSPATH=%dosdir%\NLS
set HELPPATH=%dosdir%\HELP
set TEMP=%dosdir%\TEMP
set TMP=%TEMP%
[...]
```
如果在你的程序路径变量(`PATH`)中有很多的目录,并且不确定某个程序是从哪里运行的,你可以使用 `which` 命令。这个命令将扫描程序路径变量,并且将打印出你正在查找的程序的完整的位置。
```
C:\>which less
less C:\>FDOS\BIN\LESS.EXE
C:\>_
```
FreeDOS 1.3 RC4 包含其它的类 Unix 命令,你可能会在其它更特殊的情况下使用。这些命令包括:
* `bc`:任意精度数字处理语言
* `sed`:流编辑器
* `grep``xgrep`:使用正则表达式搜索一个文本文件
* `md5sum`:生成一个文件的一个 MD5 签名
* `nro`:简单排版,使用 nroff 宏
* `sleep`:暂停系统几秒钟
* `tee`:保存一个命令行流的副本
* `touch`:修改一个文件的时间戳
* `trch`:转换单个字符(像 Linux 的 `tr` 一样)
* `uptime`:报告你 FreeDOS 系统已经运行多长的时间
### 在你控制下的 FreeDOS
FreeDOS ,像 Linux 和 BSD 一样,是开源的。不管你是想通过学习一种新的命令行交互方式来挑战你自己,还是想再去熟悉令人舒适的类 Unix 工具FreeDOS 都是一款有趣的值得尝鲜的操作系统。尝试一下!
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/6/freedos-linux-users
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/freedos-fish-laptop-color.png?itok=vfv_Lpph (FreeDOS fish logo and command prompt on computer)
[2]: https://opensource.com/sites/default/files/uploads/unix-like.png (Installing the Unix-like package set)

View File

@ -0,0 +1,174 @@
[#]: subject: (Configure FreeDOS in plain text)
[#]: via: (https://opensource.com/article/21/6/freedos-fdconfigsys)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
[#]: collector: (lujun9972)
[#]: translator: (robsean)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14061-1.html)
FreeDOS 配置指南
======
> 学习如何使用 FDCONFIG.SYS 来配置 FreeDOS 。
![](https://img.linux.net.cn/data/attachment/album/202112/08/124646wahca435y60acpha.jpg)
FreeDOS 是主配置文件是在根目录中的名称为 `FDCONFIG.SYS` 的文件。这个文件包含一系列的行,每行都设置一个诸如 `LASTDRIVE=Z` 或 `FILES=40` 的值。例如,在 FreeDOS 1.3 RC4 中的默认 `FDCONFIG.SYS` ,看起来像这样:
```
SET DOSDIR=C:\FDOS
!COUNTRY=001,858,C:\FDOS\BIN\COUNTRY.SYS
!LASTDRIVE=Z
!BUFFERS=20
!FILES=40
!MENUCOLOR=7,0
MENUDEFAULT=1,5
MENU 1 - Load FreeDOS with JEMMEX, no EMS (most UMBs), max RAM free
MENU 2 - Load FreeDOS with JEMM386 (Expanded Memory)
MENU 3 - Load FreeDOS low with some drivers (Safe Mode)
MENU 4 - Load FreeDOS without drivers (Emergency Mode)
12?DOS=HIGH
12?DOS=UMB
12?DOSDATA=UMB
1?DEVICE=C:\FDOS\BIN\JEMMEX.EXE NOEMS X=TEST I=TEST NOVME NOINVLPG
234?DEVICE=C:\FDOS\BIN\HIMEMX.EXE
2?DEVICE=C:\FDOS\BIN\JEMM386.EXE X=TEST I=TEST I=B000-B7FF NOVME NOINVLPG
34?SHELL=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
12?SHELLHIGH=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
```
但是,这些指令行都表示什么意思?为什么一些指令行有一个问号(`?`)或一个叹号(`!`),而其它的命令行却没有?
### 一个简单的配置
让我们从一个简单的配置开始,像这样,我们就可以看到我们的配置做了什么。做出这个非常简单的 `FDCONFIG.SYS` 文件:
```
LASTDRIVE=Z
BUFFERS=20
FILES=40
DEVICE=C:\FDOS\BIN\HIMEMX.EXE
SHELL=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\FDAUTO.BAT
```
这个配置文件仅包含几个指令:
1. `LASTDRIVE=Z`
2. `BUFFERS=20`
3. `FILES=40`
4. `DEVICE=C:\FDOS\BIN\HIMEMX.EXE`
5. `SHELL=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\FDAUTO.BAT`
第一行指令告诉 FreeDOS 在存储器中保留多少驱动器字母。DOS 使用字母来表示附属于系统的每个驱动器,`LASTDRIVE=Z` 表示预留从 `A``Z` 的所有驱动器字母)。 `LASTDRIVE` 会影响系统可以识别的 _逻辑驱动器_ 的数量。你可能没有任何的逻辑驱动器FreeDOS 安装器不会默认设置这些逻辑驱动器。在任何情况下,在任何 FreeDOS 系统上设置 `LASTDRIVE=Z` 都是没有害处的。
`BUFFERS` 行设置文件缓冲区预留存储器。_缓冲区_ 有助于加速某些需要存储空间的进程例如复制文件。如果你为 `BUFFERS` 设置一个较大的值,那么 FreeDOS 将预留更多的存储器。同理反之。大多数的用户将会设置其为 `BUFFERS=20` 或 `BUFFERS=40` ,取决于他们在系统上读写文件的频率。
`FILES` 设置决定 DOS 允许你一次打开多少文件。如果你运行的一个应用程序需要一次打开很多文件,例如打开一个谱系数据库,你可能需要为 `FILES` 设置一个较大的值。对于大多数的用户来说,`FILES=40` 是一个合理的值。
`DEVICE` 是一个特殊的指令,用于加载 _设备驱动器_ 。DOS 需要针对某些硬件或配置文件的设备驱动器。这行 `DEVICE=C:\FDOS\BIN\HIMEMX.EXE` 来加载 _HimemX_ 设备驱动这样DOS 可以利用超出前 640 KB 的扩展存储器。
最后的指令行告诉 FreeDOS 的内核在哪里找到命令行 shell 。默认情况下,内核将从 `COMMAND.COM` 开始查找 shell ,但是你可以使用 `SHELL` 指令来更改它。在这个示例中, `SHELL=C:\FDOS\BIN\COMMAND.COM` 说明 shell 是 `COMMAND.COM` 程序,位于 `C` 驱动器上的 `\FDOS\BIN` 目录之中。
在 `SHELL` 结尾处的其它文件表示选项为 `COMMAND.COM` 的 shell 。FreeDOS `COMMAND.COM` 支持一些启动选项来修改它的行为,包括:
* `C:\FDOS\BIN``COMMAND.COM` 程序的完整的路径
* `/E:1024`:环境(`E`)大小,以字节为单位。`/E:1024` 告诉 `COMMAND.COM` 来预留 1024 字节,或者说是 1 KB ,来存储它的环境变量。
* `/P=C:\FDAUTO.BAT``/P` 选项表示 shell 是一个永久性的(`P`shell ,因此用户不能通过输入 `EXIT` 来退出 shell附加文本 `=C:\FDAUTO.BAT` 告诉 `COMMAND.COM` 在启动时执行 `C:\FDAUTO.BAT` 文件,而不再执行默认的 `AUTOEXEC.BAT` 文件)
通过这个简单的配置文件,你应该能够理解 FreeDOS 1.3 RC4 安装的 `FDCONFIG.SYS` 文件中的一些东西。
### 启动菜单
FreeDOS 支持一种有序的功能:在一个系统上使用多个配置文件,使用一个“启动菜单”来选择你想要的配置。`FDCONFIG.SYS` 文件包含一些定义菜单的行:
```
!MENUCOLOR=7,0
MENUDEFAULT=1,5
MENU 1 - Load FreeDOS with JEMMEX, no EMS (most UMBs), max RAM free
MENU 2 - Load FreeDOS with JEMM386 (Expanded Memory)
MENU 3 - Load FreeDOS low with some drivers (Safe Mode)
MENU 4 - Load FreeDOS without drivers (Emergency Mode)
```
`MENUCOLOR` 指令定义启动菜单的文本颜色和背景颜色。这些值通常在 0 到 7 的范围之内, 并代表这些颜色:
* 0 黑色
* 1 蓝色
* 2 绿色
* 3 品蓝
* 4 红色
* 5 品红
* 6 棕色
* 7 白色
因此,`MENUCOLOR=7,0` 的定义意味着显示一个黑色背景(`0`)白色文本(`7`)的菜单。如果你想使用一个蓝色背景白色文本,你可以将其定义为 `MENUCOLOR=7,1`
在行头部的叹号(`!`)意味着:不管你选择哪个菜单,这个指令都将会执行。
`MENUDEFAULT=1,5` 行告诉内核等待用户多长时间来选择启动菜单项,或者如果用户没有选择的话,使用那个默认菜单项。`MENUDEFAULT=1,5` 标示着系统将等待 `5` 秒钟;如果用户不在这段时间内尝试选择一个菜单的话,内核将选择启动菜单 “1” 。
![boot menu][2]
在其后的 `MENU` 行至不同启动菜单配置的标签。它们是按顺序排列的,因此,菜单项目 “1” 是第一个,接下来的 “2” 是第二个,以此类推。
![menu select 4][3]
在 `FDCONFIG.SYS` 中的接下来的一行中,你将在一个问号(`?`)前看到一些数字。这标示“针对这几个数字的启动菜单项,使用这行命令”。例如,如果用户选择启动菜单项 “2”、“3” 或 “4” 的话,那么带有 `234?` 的这行命令才将加载 HimemX 设备驱动器。
```
234?DEVICE=C:\FDOS\BIN\HIMEMX.EXE
```
这里有很多方法来使用 `FDCONFIG.SYS` 以配置你的 FreeDOS 系统。我们在这里只介绍基本的东西,最重用的方法是定义你的 FreeDOS 内核设置。更多的信息,探索 FreeDOS 帮助系统(在命令行中输入 `HELP`)来学习如何使用 FreeDOS `FDCONFIG.SYS` 选项:
* `SWITCHES`:启动时处理过程行为
* `REM``;`:注释(在 `FDCONFIG.SYS` 中将被忽略)
* `MENUCOLOR`:启动菜单文本颜色和背景颜色
* `MENUDEFAULT`:启动菜单默认值
* `MENU`:启动菜单选项
* `ECHO``EECHO`:显示信息
* `BREAK`:设置打开或关闭扩展的 `Ctrl+C` 检查
* `BUFFERS``BUFFERSHIGH`:分配多少磁盘缓冲区
* `COUNTRY`:设置国际化行为
* `DOS`:告诉 FreeDOS 内核如何将其自身加载到存储器之中
* `DOSDATA`:告诉 FreeDOS 加载内核到上位存储器之中
* `FCBS`设置文件控制块FCB的数量
* `KEYBUF`:在存储器中重新指定键盘缓冲区
* `FILES``FILESHIGH`:一次可以打开多少个文件
* `LASTDRIVE``LASTDRIVEHIGH`:设置可以使用的最后一个驱动器字母
* `NUMLOCK`:设置打开或关闭键盘数字锁
* `SHELL`、`SHELLHIGH` 或 `COMMAND`:设置命令行 shell
* `STACKS``STACKSHIGH`:添加堆栈以处理硬件中断
* `SWITCHAR`:重新定义命令行选项开关字符
* `SCREEN`:设置在屏幕上的行数
* `VERSION`:设置向程序报告的 DOS 版本
* `IDLEHALT`:激活节能功能,在某些系统上有用
* `DEVICE``DEVICEHIGH`:加载一个驱动程序到存储器之中
* `INSTALL``INSTALLHIGH`:加载一个 “存储器驻留”TSR程序
* `SET`:设置一个 DOS 环境变量
### 以纯文本方式配置 FreeDOS
像 Linux 和 BSD 一样FreeDOS 配置以纯文本的方式进行。不需要特殊指定的编辑工具,因此,深入研究,看看哪些选项最适合你。它很简单,但是功能很强大!
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/6/freedos-fdconfigsys
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD (Person using a laptop)
[2]: https://opensource.com/sites/default/files/uploads/boot-menu.png (The boot menu waits for 5 seconds before assuming menu item 1)
[3]: https://opensource.com/sites/default/files/uploads/menu-select4.png (Use the arrow keys to select a boot menu configuration)

View File

@ -0,0 +1,343 @@
[#]: subject: "Best Web Browsers for Ubuntu and Other Linux Distributions"
[#]: via: "https://itsfoss.com/best-browsers-ubuntu-linux/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14075-1.html"
适用于 Linux 的最佳网页浏览器
======
没有所谓的完美的网页浏览器。这完全取决于你喜欢什么以及你用它来做什么。
但对于 Linux 上的网页浏览器,你有哪些最佳选择呢?
在这篇文章中,我试图给出你在 Ubuntu 和其他 Linux 系统上使用的最佳网页浏览器。
> **注:** 我们已经在 Ubuntu 上尝试和测试了这些浏览器。但是,你应该能够在你选择的任何 Linux 发行版上安装它。
### Linux 上的顶级网页浏览器
![][1]
每个浏览器都有其独特之处。而且,对于 Linux 平台,也有一些有趣的独家选择。
在你看到这个列表之前,请注意这不是一个排名列表。列在第 1 位的浏览器不应该被认为比第 2 位、第 3 位或第 10 位的更好。
> **非自由开源软件警报!**
>
> 这里提到的一些应用程序不是开源的。它们被列在这里是因为它们在 Linux 上可用,而文章的重点是 Linux。我们也有一个单独的 [开源的网页浏览器的专门列表][2]。
### 1、Vivaldi
![][3]
**优点**
* 可快速访问网页应用程序的侧边栏
* 集成了日历和电子邮件
* 独特的标签管理
* Pomodoro 功能(时钟计时器)
* 有移动应用程序
**缺点**
* 当使用各种功能时,资源占用很重
* 不是 100% 开源的
[Vivaldi][5] 是一个令人印象深刻的浏览器,它越来越多地得到了 Linux 用户的关注。
虽然它不是 100% 开源的,但你可以在网上找到它的大部分源代码(除了它的用户界面)。
随着 [Vivaldi 4.0 的发布][4],他们更加注重改善 Linux 用户的体验。你可以设置时钟计时器以提高你的工作效率,使用内置翻译来翻译网页,跟踪你的日历活动,为网页应用程序添加快捷方式,并通过这个浏览器为多种任务发挥到极致。
即使它是一个快速的网页浏览器,我也不会觉得它是“最快”或最轻量级的。你需要大量的内存,才能在你工作时发挥它的所有的功能。
总之它是一个功能丰富的网页浏览器。因此如果你需要有尽可能多的功能来完成多种任务Vivaldi 可以是你的选择。
#### 如何在 Linux 上安装 Vivaldi
Vivaldi 提供了 **.deb** 和 **.rpm** 两种软件包,让你可以直接在 Linux 系统中安装它。
如果你是 Linux 的新手,你可以参考我们的资源来 [安装 Deb 文件][6] 和 [安装 RPM 文件][7]。
### 2、Mozilla Firefox
![][8]
**优点**
* 隐私保护
* 不基于 Chrome 引擎
* 开源
* Firefox 帐户服务
**缺点**
* 用户体验会随着重大更新而改变
[Firefox][9] 是大多数 Linux 发行版的默认网页浏览器。因此,它显然是一个开箱即用的浏览器。
除了是开源的,它还提供一些最好的隐私保护功能。而且,通过正确的设置,你可以把它变成类似于 Tor 浏览器(它也是基于 Firefox 的)这样的最安全的浏览器之一。
不仅仅是它的安全性,当你用你的 Firefox 账户登录时,它还集成了有用的功能,如 Pocket保存网页并稍后阅读、VPN、电子邮件别名、漏洞监控等。
#### 如何在 Linux 上安装 Firefox
它应该已经预装在你的 Linux 发行版中了。但是,如果它不存在,你可以在软件中心搜索它,或者用终端的以下命令来安装它:
```
sudo apt install firefox
```
### 3、Chromium
![][10]
**优点**
* Chrome 浏览器的开源替代品
* 与 Chrome 浏览器的功能相似
**缺点**
* 缺少 Chrome 浏览器提供的某些功能
[Chromium][12] 是 Chrome 浏览器的开源替代品,也是许多其他基于 Chrome 的浏览器的基础。
如果你不想使用 Chrome 浏览器Chromium 是你在 Linux 上获得相同体验的最佳选择。
尽管谷歌控制着 Chromium并且 [一直锁定着 Chrome][11],但对于 Linux 系统来说,它是一个不错的选择。
#### 如何在 Linux 上安装 Chromium
你应该可以在软件中心轻松找到它。但是,如果你需要帮助,可以参考我们的 [Chromium 安装指南][13]。
### 4、谷歌 Chrome
![][14]
**优点**
* 与谷歌服务的无缝整合
**缺点**
* 不是开源的
[Chrome 浏览器][15] 是一个优秀的网页浏览器,除非你不想选择谷歌的专有解决方案或产品。
你可以得到所有的基本功能,并且能够整合所有的谷歌服务。如果你喜欢在安卓系统上使用 Chrome 浏览器,并希望在多个平台上进行同步,那么它是桌面 Linux 的明显选择。
如果你在使用谷歌服务的同时寻找一个简单而强力的网页浏览器Chrome 浏览器可以是一个不错的选择。
#### 如何在 Linux 上安装 Chrome 浏览器?
Chrome 浏览器提供 Deb 和 RPM 包,可以让你在任何基于 Ubuntu 或 Fedora/openSUSE 发行版上安装。
如果你在安装方面需要帮助,我应该向你指出我们关于 [在 Linux 上安装 Chrome 浏览器][16] 的指南。
### 5、Brave
![][17]
**优点**
* 隐私保护功能
* 性能
**缺点**
* 没有基于账户的同步
[Brave][35] 浏览器是最受欢迎的 Linux 浏览器之一。
它是一个开源项目,基于 Chromium。它提供几个有用的隐私保护功能并以其极快的性能而闻名。
与其他浏览器不同的是,即使你屏蔽了网站上的广告,你也可以获得奖励。你收集的奖励只能用于回馈你喜欢的网站。这样一来,你在屏蔽广告的同时也得到了对网站的支持。
你可以期待以最小的资源占用获得更快的用户体验。  
如果你需要在两者之间做出决定,我们也有一篇详细的 [关于 Brave 和 Firefox 的比较文章][18]。
#### 如何在 Linux 上安装 Brave
与其他一些网页浏览器不同,你不能直接在软件中心找到软件包。你需要在终端输入一些命令来安装该浏览器。
不用担心,你可以按照我们的 [安装 Brave 浏览器的说明][19] 来进行。
### 6、Opera
![][20]
**优点**
* 内置免费的 VPN
* 额外的功能
**缺点**
* 不是开源的
虽然 [Opera][22] 不是最流行的选择,但它对 Linux 用户来说绝对是一个有用的浏览器。
它有一个内置的 VPN 和广告拦截器。因此,在 Opera 浏览器的帮助下,你应该会得到基本的隐私保护。
你可以直接从侧边栏快速访问流行的聊天信使,而不需要启动单独的应用程序或窗口。这种侧边栏的聊天信使网页应用与 Vivaldi 类似,但用户体验明显不同。
总的来说,如果你想要一个免费的 VPN 作为其他基本浏览功能之外的奖励,它是一个不错的选择。
值得注意的是Opera 提供了一个独特的 [Opera GX][21] 浏览器,让你在使用浏览器并同时进行游戏活动时可以调整或强制限制系统资源。在写这篇文章的时候,该功能还在开发 Linux 版本,如果在你读到这篇文章的时候,它已经可以使用了,这可能是一个很好的选择。
#### 如何安装 Opera
Opera 为 Linux 提供了 Deb 包。你只需前往其官方网站下载并安装即可。
### 7、微软 Edge
![][23]
**优点**
* 为同时也使用 Linux 的 Windows 用户提供了方便的选择。
**缺点**
* 不是开源的
[微软 Edge][24] 在受欢迎程度上已经超过了 Mozilla Firefox。不仅仅是因为它是默认的 Windows 浏览器,而是它在基于 Chrome 浏览器的同时,还提供了很有前景的网页体验。
微软 Edge 已经发布了面向 Linux 的稳定版。它目前运行良好,但缺乏一些的通常可用于 Windows 的功能。
总的来说,你应该会发现大部分的基本功能都是可用的。
如果你使用 Windows 和 Linux 作为你的桌面平台,微软 Edge 可以考虑作为首选的网页浏览器。
#### 如何在 Linux 上安装微软 Edge
现在,你可以通过微软 Edge 的官方网页获得 Deb/RPM 文件并安装它。
你也可以看看我们关于 [在 Linux 上安装微软 Edge][25] 的方法。
### Linux 独有的网页浏览器
考虑到安全更新和未来升级,大多数用户喜欢坚持使用主流选项,但也有一些不同的选项。而且,有些是 Linux 用户专属的。
### 8、GNOME WebEpiphany
![][26]
**优点**
* 精简
* 开源
**缺点**
* 缺少许多功能
* 没有跨平台支持
[Epiphany 浏览器][27] 是 GNOME 的默认浏览器。elementary OS 也将其作为默认的网页浏览器。
它是一个精简的浏览器,提供了一个干净和优雅的用户体验。你不能同步你的书签或历史记录,所以如果你想备份或转移到其他浏览器,你需要手动导出它们。
#### 如何安装 GNOME Web
你可能会发现它预装在一些 Linux 发行版中。如果没有,你可以用它的 [Flatpak 包][28] 来在任何 Linux 发行版上安装最新版本。
### 9、Falkon
![][29]
**优点**
* 基于 Firefox 的替代品
**缺点**
* 不能替代 Firefox
* 没有跨平台支持
[Falkon][31] 是一个基于 Firefox 的浏览器,考虑到了隐私问题。它对于基本的网页浏览应该是足够好的,但它可能不是你日常使用的解决方案。
你可以在我们专门的 [关于 Falkon 浏览器的文章][30] 中了解更多关于它的信息并获得安装说明。
### 10、Nyxt
![][32]
**优点**
* 高度的可定制性
* 重点关注键盘操作
**缺点**
* 适用于某些用户
* 缺乏跨平台支持
[Nyxt][36] 是一个有趣的网页浏览器,为资深的键盘用户而建立。你可以使用键盘快捷键来浏览和导航网页。
要了解更多关于它的信息和安装说明,请浏览我们关于 [Nyxt 浏览器][33] 的详细文章。
### 总结
说到 Linux你会有很多选择可供挑选。我在这里特意跳过了 [如 Lynx 这样的基于命令行的网页浏览器][34]。
那么,你会选择什么样的网页浏览器呢?
此外,我很想知道,你在为你的系统安装网页浏览器时会考虑什么?
欢迎在下面的评论中分享你的想法。
--------------------------------------------------------------------------------
via: https://itsfoss.com/best-browsers-ubuntu-linux/
作者:[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://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/web-browser-ubuntu.png?resize=800%2C450&ssl=1
[2]: https://itsfoss.com/open-source-browsers-linux/
[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/vivaldi-screenshot.png?resize=800%2C502&ssl=1
[4]: https://news.itsfoss.com/vivaldi-4-0-release/
[5]: https://vivaldi.com
[6]: https://itsfoss.com/install-deb-files-ubuntu/
[7]: https://itsfoss.com/install-rpm-files-fedora/
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-proton.png?resize=800%2C450&ssl=1
[9]: https://www.mozilla.org/en-US/firefox/new/
[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/chromium-screenshot.png?resize=800%2C558&ssl=1
[11]: https://news.itsfoss.com/is-google-locking-down-chrome/
[12]: https://www.chromium.org
[13]: https://itsfoss.com/install-chromium-ubuntu/
[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/google-chrome-screenshot.png?resize=800%2C557&ssl=1
[15]: https://www.google.com/chrome/
[16]: https://itsfoss.com/install-chrome-ubuntu/
[17]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/brave-ui-new.jpg?resize=800%2C450&ssl=1
[18]: https://itsfoss.com/brave-vs-firefox/
[19]: https://itsfoss.com/brave-web-browser/
[20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/opera-screenshot.png?resize=800%2C543&ssl=1
[21]: https://www.opera.com/gx
[22]: https://www.opera.com/
[23]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/microsoft-edge-on-linux.png?resize=800%2C439&ssl=1
[24]: https://www.microsoftedgeinsider.com/en-us/
[25]: https://itsfoss.com/microsoft-edge-linux/
[26]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/gnome-web.png?resize=800%2C450&ssl=1
[27]: https://apps.gnome.org/en-GB/app/org.gnome.Epiphany/
[28]: https://flathub.org/apps/details/org.gnome.Epiphany
[29]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/12/falkon-browser-1.png?resize=800%2C450&ssl=1
[30]: https://itsfoss.com/falkon-browser/
[31]: https://www.falkon.org
[32]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/05/nyxt-browser-settings.png?resize=800%2C617&ssl=1
[33]: https://itsfoss.com/nyxt-browser/
[34]: https://itsfoss.com/terminal-web-browsers/
[35]: https://brave.com/its979
[36]: https://nyxt.atlas.engineer/

View File

@ -0,0 +1,151 @@
[#]: subject: "Print files from your Linux terminal"
[#]: via: "https://opensource.com/article/21/9/print-files-linux"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14099-1.html"
从 Linux 终端打印文件
======
> 使用 lpr 命令在终端中打印文件。
![](https://img.linux.net.cn/data/attachment/album/202112/20/135809an6s6bxyg7sjnwyq.jpg)
[在 Linux 上打印很容易][2],但有时感觉要做很多工作,比如启动应用程序、打开文件、在菜单中找到打印选项,单击确认按钮等等。当你是一个终端用户时,通常希望使用简单的触发器执行复杂的操作。打印很复杂,但没有什么比 `lpr` 命令更简单了。
### 使用 lpr 命令打印
使用 `lpr` 命令在终端打印文件:
```
$ lpr myfile.odt
```
如果失败的话,你需要设置默认打印机或手动指定打印机。
### 设置默认打印机
根据我在 1984 年印刷的 Berkeley 4.2 手册的旧版本中找到的资料,`lpr` 命令会分页并将文件发送到打印机池,后者将数据传输到称为 <ruby>行式打印机<rt>line printer</rt></ruby> 的东西。
![显示 LPR 命令信息的页面][3]
现在,最初的 `lpr` 命令已经无法满足,因为现代计算机可以访问多台打印机,而且是那些比点阵行式打印机复杂得多的打印机。现在有一个称为<ruby>通用 Unix 打印系统<rt>Common Unix Printing System</rt></ruby>CUPS子系统可以跟踪你的计算机可以访问的所有打印机计算机应该使用哪个驱动程序与每台打印机通信默认使用哪台打印机等等。 CUPS 捆绑提供的 `lpr.cups``lpr-cups` 命令通常以符号链接到 `lpr`,允许你首先借助 CUPS 配置从终端打印。
使用 `lpr` 打印文件,你应该首先设置默认打印机。你可以在系统的打印机设置中设置:
![设置默认打印机对话框][4]
或者,你也可以使用 `lpadmin` 命令设置:
```
$ sudo lpadmin -d HP_LaserJet_P2015_Series
$ lpstat -v
device for HP_LaserJet_P2015_Series: ipp://10.0.1.222:631/printers/HP_LaserJet_P2015_Series
```
### 使用环境变量设置
你不能在没有管理员账户的系统上设置默认打印机,因为更改打印机默认设置是一项特权任务。在 `lpr` 借助 CUPS 找到目标打印机前,它会在系统中查询 `PRINTER` [环境变量][5]。
在本例中,`HP_LaserJet_P2015_Series` 是打印机的名称。将 `PRINTER` 设置为该值:
```
$ PRINTER=HP_LaserJet_P2015_Series
$ export PRINTER
```
一旦设置了 `PRINTER` 变量,你就可以打印了:
```
$ lpr myfile.pdf
```
### 获取连接的打印机列表
你可以使用 `lpstat` 命令查看所有连接到系统接受打印任务的打印机:
```
$ lpstat -a
HP_LaserJet_P2015_Series accepting requests since Sun 1 Aug 2021 10:11:02 PM NZST
r1060 accepting requests since Wed 18 Aug 2021 04:43:57 PM NZST
```
### 打印到任意一台打印机
将打印机添加到系统后,并且现在你知道如何识别它们了,你可以打印到其中任何一台,无论你是否设置了默认打印机:
```
$ lpr -P HP_LaserJet_P2015_Series myfile.txt
```
### 如何定义打印机
CUPS 有一个友好的前端页面,可通过 Web 浏览器如 Firefox 访问。虽然它使用 Web 浏览器作为用户界面,但它实际上是在本机(一个称为 `localhost` 的位置)的 631 端口上提供服务。CUPS 管理连接到计算机的打印机,并将其配置存储在 `/etc/cups/priters.conf` 中。
`printers.conf` 文件包含详细描述计算机可以访问的打印设备的定义。不要直接编辑它,但如果你想这样做,你必须先停止 `cupsd` 守护进程。
一个典型的文件定义如下所示:
```
<Printer r1060>
Info Ricoh 1060
Location Downstairs
MakeModel Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.6
DeviceURI lpd://192.168.4.8
State Idle
StateTime 1316011347
Type 12308
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-raster 100 rastertogutenprint.5.2
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
```
在本例中,打印机的名称是 `r1060`,即 “Ricoh Aficio 1060”。
`MakeModel` 属性是从 `lpinfo` 命令中提取的,该命令列出了系统上所有可用的打印机驱动程序。假设你知道要打印到 Ricoh Aficio 1060那么你会发出以下命令
```
$ lpinfo -m | grep 1060
gutenprint.5.2://brother-hl-1060/expert Brother HL-1060 - CUPS+Gutenprint v5.2.11
gutenprint.5.2://ricoh-afc_1060/expert Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11
```
它会列出已安装的相关驱动程序。
`MakeModel` 属性是结果的后半部分。在本例中为 `Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11`
`DeviceURI` 属性标识打印机在网络上的位置(或物理位置,例如 USB 端口)。在本例中,它是 `lpd://192.168.4.8`,因为我使用 `lpd` 协议将数据发送到一台网络打印机。在我的另一个系统上,我有一个通过 USB 连接的 HP LaserJect 打印机,因此 `DeviceURI``hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429`
### 在终端中打印
将作业发送到打印机是一个简单的过程,只要你了解连接到系统的设备以及如何识别它们。在终端打印非常快速、高效,并且易于编写脚本或作为批处理作业完成。试试看!
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/print-files-linux
作者:[Seth Kenlon][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://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv (Typewriter with hands)
[2]: https://opensource.com/article/21/8/setup-your-printer-linux
[3]: https://opensource.com/sites/default/files/berkeley-1984-lpr.jpeg
[4]: https://opensource.com/sites/default/files/printer-default.jpeg
[5]: https://opensource.com/article/19/8/what-are-environment-variables

View File

@ -0,0 +1,167 @@
[#]: subject: "Find files and directories on Linux with the find command"
[#]: via: "https://opensource.com/article/21/9/linux-find-command"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14071-1.html"
使用 find 命令在 Linux 上查找文件和目录
=======================================
> 学习 find 命令的原因有很多。
![](https://img.linux.net.cn/data/attachment/album/202112/11/083907eapzsopvcoc0ooro.jpg)
不管我决心如何组织文件,似乎总有无法找到文件的时候。有时是因为我不记得最初的文件名,其他时候,我知道名字,但我不记得在哪里保存它了。甚至有时我需要一个我最初就没有创建的文件。但是,无论遇到什么困难,我知道在 [POSIX 系统][2] 上,总是有 `find` 命令可以帮助我。
### 安装 find
`find` 命令由 [POSIX 规范][3] 定义,它创建了一个用于衡量 POSIX 系统的开放标准,这包括 Linux、BSD 和 macOS。简而言之只要你运行的是 Linux、BSD 或 macOS那么 `find` 已经安装了。
但是,并非所有的 `find` 命令都完全相同。例如GNU 的 `find` 命令有一些 BSD、Busybox 或 Solaris 上 `find` 命令可能没有或有但实现方式不同的功能。本文使用 [findutils][4] 包中的 GNU `find`,因为它很容易获得且非常流行。本文演示的大多数命令都适用于 `find` 的其他实现,但是如果你在 Linux 以外的平台上尝试命令并得到非预期结果,尝试下载并安装 GNU 版本。
### 按名称查找文件
你可以借助正则表达式使用完整或部分的文件名来定位文件。`find` 命令需要你给出想搜索的目录;指定搜索属性选项,例如,`-name` 用于指定区分大小写的文件名;然后是搜索字符串。默认情况下,搜索字符串按字面意思处理:除非你使用正则表达式语法,否则 `find` 命令搜索的文件名正是你在引号之间输入的字符串。
假设你的 `Documents` 目录包含四个文件:`Foo`、`foo`、`foobar.txt` 和 `foo.xml`。以下是对 `foo` 的字面搜索:
```
$ find ~ -name "foo"
/home/tux/Documents/examples/foo
```
你可以使用 `-iname` 选项使其不区分大小写来扩大搜索范围:
```
$ find ~ -iname "foo"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
```
### 通配符
你可以使用基本的 shell 通配符来扩展搜索。例如,`*` 表示任意数量的字符:
```
$ find ~ -iname "foo*"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txt
```
`?` 表示单个字符:
```
$ find ~ -iname "foo*.???"
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txt
```
这不是正则表达式语法,因此 `.` 在示例中只表示字母“点”。
### 正则表达式
你还可以使用正则表达式。与 `-iname``-name` 一样,也有区分大小写和不区分大小写的选项。但不一样的是,`-regex` 和 `-iregex` 搜索应用于整个路径,而不仅仅是文件名。这意味着,如果你搜索 `foo`,你不会得到任何结果,因为 `foo``/home/tux/Documents/foo` 不匹配。相反,你必须要么搜索整个路径,要么在字符串的开头使用通配符:
```
$ find ~ -iregex ".*foo"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
```
### 查找近一周修改过的文件
要查找近一周修改的文件,使用 `-mtime` 选项以及过去的天数(负数):
```
$ find ~ -mtime -7
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txt
```
### 查找近几天修改的文件
你可以结合使用 `-mtime` 选项来查找近几天范围内修改的文件。对于第一个 `-mtime` 参数,表示上一次修改文件的最近天数。第二个参数表示最大天数。例如,搜索修改时间超过 1 天但不超过 7 天的文件:
```
$ find ~ -mtime +1 -mtime -7
```
### 按文件类型限制搜索
指定查找文件的类型来优化 `find` 的结果是很常见的。如果你不确定要查找的内容,则不应该使用此选项。但如果你知道要查找的是文件而不是目录,或者是目录而不是文件,那么这可能是一个很好的过滤器。选项是 `-type`,它的参数是代表不同类型数据的字母代码。最常见的是:
* `d` - 目录
* `f` - 文件
* `l` - 链接文件
* `s` - 套接字
* `p` - 命名管道(用于 FIFO
* `b` - 块设备(通常是硬盘)
下面是一些例子:
```
$ find ~ -type d -name "Doc*"
/home/tux/Documents
$ find ~ -type f -name "Doc*"
/home/tux/Downloads/10th-Doctor.gif
$ find /dev -type b -name "sda*"
/dev/sda
/dev/sda1
```
### 调整范围
`find` 命令默认是递归的,这意味着它会在指定的目录中层层搜索结果。这在大型文件系统中可能会变得不堪重负,但你可以使用 `-maxdepth` 选项来控制搜索深度:
```
$ find /usr -iname "*xml" | wc -l
15588
$ find /usr -maxdepth 2 -iname "*xml" | wc -l
15
```
也可以使用 `-mindepth` 设置最小递归深度:
```
$ find /usr -mindepth 8 -iname "*xml" | wc -l
9255
```
### 下载速查表
本文仅介绍 `find` 的基本功能,它是一个很好的搜索工具,但对于强大的 [Parallel][5] 命令来说,它也是一个非常有用的前端。学习 `find` 的原因有很多,所以 [下载我们免费的 `find` 速查表][6] 吧,它可以帮助你了解有关该命令的更多信息。
---
via: https://opensource.com/article/21/9/linux-find-command
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[#]: subject:
[#]: via:
[#]: author:
[#]: collector:
[#]: translator:
[#]: reviewer:
[#]: publisher:
[#]: url:
[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/find-file-linux-code_magnifying_glass_zero.png?itok=E2HoPDg0
[2]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
[3]: https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/
[4]: https://www.gnu.org/software/findutils/
[5]: https://opensource.com/article/18/5/gnu-parallel
[6]: https://opensource.com/downloads/linux-find-cheat-sheet

View File

@ -0,0 +1,178 @@
[#]: subject: "A guide to web scraping in Python using Beautiful Soup"
[#]: via: "https://opensource.com/article/21/9/web-scraping-python-beautiful-soup"
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14086-1.html"
Python Beautiful Soup 刮取简易指南
======
> Python 中的 Beautiful Soup 库可以很方便的从网页中提取 HTML 内容。
![](https://img.linux.net.cn/data/attachment/album/202112/16/142118cmffvtfrmh1h3ufv.jpg)
今天我们将讨论如何使用 Beautiful Soup 库从 HTML 页面中提取内容,之后,我们将使用它将其转换为 Python 列表或字典。
### 什么是 Web 刮取,为什么我需要它?
答案很简单:并非每个网站都有获取内容的 API。你可能想从你最喜欢的烹饪网站上获取食谱或者从旅游博客上获取照片。如果没有 API提取 HTML或者说 <ruby>刮取<rt>scraping</rt></ruby> 可能是获取内容的唯一方法。我将向你展示如何使用 Python 来获取。
**并非所以网站都喜欢被刮取,有些网站可能会明确禁止。请于网站所有者确认是否同意刮取。**
### Python 如何刮取网站?
使用 Python 进行刮取,我们将执行三个基本步骤:
1. 使用 `requests` 库获取 HTML 内容
2. 分析 HTML 结构并识别包含我们需要内容的标签
3. 使用 Beautiful Soup 提取标签并将数据放入 Python 列表中
### 安装库
首先安装我们需要的库。`requests` 库从网站获取 HTML 内容Beautiful Soup 解析 HTML 并将其转换为 Python 对象。在 Python3 中安装它们,运行:
```
pip3 install requests beautifulsoup4
```
### 提取 HTML
在本例中,我将选择刮取网站的 [Techhology][2] 部分。如果你跳转到此页面,你会看到带有标题、摘录和发布日期的文章列表。我们的目标是创建一个包含这些信息的文章列表。
网站页面的完整 URL 是:
```
https://notes.ayushsharma.in/technology
```
我们可以使用 `requests` 从这个页面获取 HTML 内容:
```
#!/usr/bin/python3
import requests
url = 'https://notes.ayushsharma.in/technology'
data = requests.get(url)
print(data.text)
```
变量 `data` 将包含页面的 HTML 源代码。
### 从 HTML 中提取内容
为了从 `data` 中提取数据,我们需要确定哪些标签具有我们需要的内容。
如果你浏览 HTML你会发现靠近顶部的这一段
```
<div class="col">
<a href="/2021/08/using-variables-in-jekyll-to-define-custom-content" class="post-card">
<div class="card">
<div class="card-body">
<h5 class="card-title">Using variables in Jekyll to define custom content</h5>
<small class="card-text text-muted">I recently discovered that Jekyll's config.yml can be used to define custom
variables for reusing content. I feel like I've been living under a rock all this time. But to err over and
over again is human.</small>
</div>
<div class="card-footer text-end">
<small class="text-muted">Aug 2021</small>
</div>
</div>
</a>
</div>
```
这是每篇文章在整个页面中重复的部分。我们可以看到 `.card-title` 包含文章标题,`.card-text` 包含摘录,`.card-footer > small` 包含发布日期。
让我们使用 Beautiful Soup 提取这些内容。
```
#!/usr/bin/python3
import requests
from bs4 import BeautifulSoup
from pprint import pprint
url = 'https://notes.ayushsharma.in/technology'
data = requests.get(url)
my_data = []
html = BeautifulSoup(data.text, 'html.parser')
articles = html.select('a.post-card')
for article in articles:
title = article.select('.card-title')[0].get_text()
excerpt = article.select('.card-text')[0].get_text()
pub_date = article.select('.card-footer small')[0].get_text()
my_data.append({"title": title, "excerpt": excerpt, "pub_date": pub_date})
pprint(my_data)
```
以上代码提取文章信息并将它们放入 `my_data` 变量中。我使用了 `pprint` 来美化输出,但你可以在代码中忽略它。将上面的代码保存在一个名为 `fetch.py` 的文件中,然后运行它:
```
python3 fetch.py
```
如果一切顺利,你应该会看到:
```
[{'excerpt': "I recently discovered that Jekyll's config.yml can be used to"
"define custom variables for reusing content. I feel like I've"
'been living under a rock all this time. But to err over and over'
'again is human.',
'pub_date': 'Aug 2021',
'title': 'Using variables in Jekyll to define custom content'},
{'excerpt': "In this article, I'll highlight some ideas for Jekyll"
'collections, blog category pages, responsive web-design, and'
'netlify.toml to make static website maintenance a breeze.',
'pub_date': 'Jul 2021',
'title': 'The evolution of ayushsharma.in: Jekyll, Bootstrap, Netlify,'
'static websites, and responsive design.'},
{'excerpt': "These are the top 5 lessons I've learned after 5 years of"
'Terraform-ing.',
'pub_date': 'Jul 2021',
'title': '5 key best practices for sane and usable Terraform setups'},
... (truncated)
```
以上是全部内容!在这 22 行代码中,我们用 Python 构建了一个网络刮取器,你可以在 [我的示例仓库中找到源代码][7]。
### 总结
对于 Python 列表中的网站内容,我们现在可以用它做一些很酷的事情。我们可以将它作为 JSON 返回给另一个应用程序,或者使用自定义样式将其转换为 HTML。随意复制粘贴以上代码并在你最喜欢的网站上进行试验。
玩的开心,继续编码吧。
_本文最初发表在[作者个人博客][8]上经授权改编。_
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/web-scraping-python-beautiful-soup
作者:[Ayush Sharma][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://opensource.com/users/ayushsharma
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_screen_windows_files.png?itok=kLTeQUbY (Computer screen with files or windows open)
[2]: https://notes.ayushsharma.in/technology
[3]: http://december.com/html/4/element/div.html
[4]: http://december.com/html/4/element/a.html
[5]: http://december.com/html/4/element/h5.html
[6]: http://december.com/html/4/element/small.html
[7]: https://gitlab.com/ayush-sharma/example-assets/-/blob/fd7d2dfbfa3ca34103402993b35a61cbe943bcf3/programming/beautiful-soup/fetch.py
[8]: https://notes.ayushsharma.in/2021/08/a-guide-to-web-scraping-in-python-using-beautifulsoup

View File

@ -0,0 +1,271 @@
[#]: subject: "Add storage with LVM"
[#]: via: "https://opensource.com/article/21/9/add-storage-lvm"
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
[#]: collector: "lujun9972"
[#]: translator: "perfiffer"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14080-1.html"
使用 LVM 添加存储
======
> LVM 为你配置存储的方式提供了极大的灵活性。
![](https://img.linux.net.cn/data/attachment/album/202112/13/235125wn99nloup38jnkoo.jpg)
<ruby>逻辑卷管理器<rt>Logical Volume Manager</rt></ruby>LVM允许在操作系统和硬件之间建立一个抽象层。通常你的操作系统会查找磁盘`/dev/sda`、`/dev/sdb` 等)和这些磁盘中的分区(`/dev/sda1`、`/dev/sdb1` 等)。
LVM 在操作系统和磁盘之间创建了一个虚拟层。LVM 不是一个驱动器持有一定数量的分区,而是创建一个统一的存储池(称为<ruby>卷组<rt>Volume Group</rt></ruby>),跨越任意数量的物理驱动器(称为<ruby>物理卷<rt>Physical Volume</rt></ruby>。使用卷组中可用的存储LVM 可以为你的操作系统提供类似磁盘和分区的功能。
操作系统完全没有意识到它被“欺骗”了。
![Drive space][2]
由于 LVM 虚拟地创建卷组和逻辑卷因此即使在系统运行时也可以轻松调整它们的大小或移动它们或者创建新卷。此外LVM 提供了其它情况下不存在的特性,比如创建逻辑卷的活动快照时无需首先卸载磁盘。
LVM 中的卷组是一个命名的虚拟容器,将底层物理磁盘组合在一起。它充当一个池,可以从中创建不同大小的<ruby>逻辑卷<rt>Logical Volume</rt></ruby>。逻辑卷包含实际的文件系统并且可以跨越多个磁盘,并且不需要物理上连续。
### 特性
* 分区名称通常具有系统名称,例如 `/dev/sda1`。LVM 具有便于人们理解的名称,例如 `home` 或者 `media`
* 分区的总大小受底层物理磁盘大小的限制。在 LVM 中,卷可以跨越多个磁盘,并且仅受 LVM 中所有物理磁盘总大小的限制。
* 分区通常只有在磁盘未使用且已卸载时才能调整大小、移动或删除。LVM 卷可以在系统运行时进行操作。
* 只能通过分配与分区相邻的可用空间来扩展分区。LVM 卷可以从任何地方占用可用空间。
* 扩展分区涉及移动数据以腾出可用空间这非常耗时并且可能会在断电期间导致数据丢失。LVM 卷可以从卷组中的任何地方占用可用空间,甚至可以在另一块磁盘上。
* 因为在 LVM 中创建卷非常容易,所以它鼓励创建不同的卷,例如创建单独的卷来测试功能或尝试不同的操作系统。对于分区,此过程将非常耗时并且容易出错。
* 快照只能在 LVM 中创建。它允许你创建当前逻辑卷的时间点镜像,即使在系统运行时也可以。这非常适合备份。
### 测试设置
作为演示,假设你的系统具有以下驱动器配置:
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
`-xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 1G 0 disk
xvdc 202:32 0 1G 0 disk
xvdd 202:48 0 2G 0 disk
xvde 202:64 0 5G 0 disk
xvdf 202:80 0 8G 0 disk
```
#### 步骤 1. 初始化磁盘以用于 LVM
运行 `pvcreate /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf`。输出应如下:
```
Physical volume "/dev/xvdb" successfully created
Physical volume "/dev/xvdc" successfully created
Physical volume "/dev/xvdd" successfully created
Physical volume "/dev/xvde" successfully created
Physical volume "/dev/xvdf" successfully created
```
使用 `pvs` 或者 `pvdisplay` 查看结果:
```
"/dev/xvde" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvde
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 728JtI-ffZD-h2dZ-JKnV-8IOf-YKdS-8srJtn
"/dev/xvdb" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdb
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID zk1phS-7uXc-PjBP-5Pv9-dtAV-zKe6-8OCRkZ
"/dev/xvdd" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdd
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID R0I139-Ipca-KFra-2IZX-o9xJ-IW49-T22fPc
"/dev/xvdc" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdc
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID FDzcVS-sq22-2b13-cYRj-dXHf-QLjS-22Meae
"/dev/xvdf" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdf
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID TRVSH9-Bo5D-JHHb-g0NX-8IoS-GG6T-YV4d0p
```
#### 步骤 2. 创建卷组
运行 `vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf`。通过 `vgs` 或者 `vgdisplay` 查看结果:
```
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 5
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 5
Act PV 5
VG Size 16.98 GiB
PE Size 4.00 MiB
Total PE 4347
Alloc PE / Size 0 / 0
Free PE / Size 4347 / 16.98 GiB
VG UUID ewrrWp-Tonj-LeFa-4Ogi-BIJJ-vztN-yrepkh
```
#### 步骤 3: 创建逻辑卷
运行以下命令:
```
lvcreate myvg --name media --size 4G
lvcreate myvg --name home --size 4G
```
使用 `lvs` 或者 `lvdisplay` 验证结果:
```
--- Logical volume ---
LV Path /dev/myvg/media
LV Name media
VG Name myvg
LV UUID LOBga3-pUNX-ZnxM-GliZ-mABH-xsdF-3VBXFT
LV Write Access read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:15 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/myvg/home
LV Name home
VG Name myvg
LV UUID Hc06sl-vtss-DuS0-jfqj-oNce-qKf6-e5qHhK
LV Write Access read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:40 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
```
#### 步骤 4: 创建文件系统
使用以下命令创建文件系统:
```
vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
mkfs.ext3 /dev/myvg/media
mkfs.ext3 /dev/myvg/home
```
挂载它:
```
mount /dev/myvg/media /media
mount /dev/myvg/home /home
```
使用 `lsblk` 命令查看完整配置:
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
`-xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 1G 0 disk
xvdc 202:32 0 1G 0 disk
xvdd 202:48 0 2G 0 disk
xvde 202:64 0 5G 0 disk
`-myvg-media 252:0 0 4G 0 lvm /media
xvdf 202:80 0 8G 0 disk
`-myvg-home 252:1 0 4G 0 lvm /home
```
#### 步骤 5: 扩展 LVM
添加一块新的 `/dev/xvdg` 磁盘。要扩展 `home` 卷,运行以下命令:
```
pvcreate /dev/xvdg
vgextend myvg /dev/xvdg
lvextend -l 100%FREE /dev/myvg/home
resize2fs /dev/myvg/home
```
运行 `df -h`,你应该可以看到新的磁盘大小。
就是这样!
LVM 为你配置存储的方式提供了极大的灵活性。尝试一下,并享受 LVM 的乐趣!
本文首发于 [作者个人博客][4],经授权改编。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/add-storage-lvm
作者:[Ayush Sharma][a]
选题:[lujun9972][b]
译者:[perfiffer](https://github.com/perfiffer)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ayushsharma
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bus-storage.png?itok=95-zvHYl (Storage units side by side)
[2]: https://opensource.com/sites/default/files/lvm.png (Drive space)
[3]: https://creativecommons.org/licenses/by-sa/4.0/
[4]: https://notes.ayushsharma.in/2017/02/working-with-logical-volume-manager-lvm

View File

@ -0,0 +1,193 @@
[#]: subject: "How to Install and Setup Flutter Development on Ubuntu and Other Linux"
[#]: via: "https://itsfoss.com/install-flutter-linux/"
[#]: author: "Marco Antonio Carmona Galván https://itsfoss.com/author/itsfoss/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14054-1.html"
如何在 Linux 上安装和设置 Flutter 开发环境
======
![](https://img.linux.net.cn/data/attachment/album/202112/06/115835fdjlxmd55mxew1nn.jpg)
谷歌的 UI 工具包 Flutter 在创建移动、网页和桌面的跨平台应用程序方面越来越受欢迎。
[Flutter][1] 不是一种编程语言,而是一个软件开发工具包。[Dart][2] 是 Flutter SDK 下面使用的编程语言。
Flutter 是谷歌开源的 Fuchsia OS、谷歌 STADIA 以及许多其他软件和移动应用背后的主要框架。
如果你想使用 Flutter 进行开发,本教程将帮助你在 Ubuntu 和其他类似 Linux 发行版上搭建好你的环境。
### 在 Ubuntu 和其他 Linux 上用 Snap 安装 Flutter
在 Linux 上安装 Flutter 最简单的方法是使用 Snap。如果你使用的是 Ubuntu你已经有了 Snap。**对于其他发行版,请确保 [启用 Snap 支持][3]**。
[打开终端][4] 并在终端中使用以下命令来安装 Flutter
```
sudo snap install flutter --classic
```
你会在你的终端上看到类似这样的东西:
![][5]
一旦安装完成,就是验证它的时候了。不仅仅是 Flutter 的安装,还要验证 Flutter 正常运行所需满足的每一个依赖关系。
#### 验证 Flutter 的依赖项
为了验证 Flutter 正确工作所需的每一个依赖项Flutter 有一个内置选项:
```
Flutter doctor
```
这个过程开始看起来像这样:
![][6]
而它完成时像这样:
![][7]
正如你所看到的,我们需要 Android Studio 来工作。所以让我们来安装它。我们该怎么做呢?用 Snap [在 Linux 上安装 Android Studio][8] 也是毫不费力的。
#### 安装并设置好 Android Studio
在终端中,使用下面的命令来安装 Android Studio
```
sudo snap install android-studio --classic
```
![][9]
安装完毕后,从我们的操作系统菜单中打开 Android Studio。
![][10]
就快完成了。现在是配置 Android Studio 的时候了。
![][11]
点击下一步,如果你不想让事情复杂化,就选择“<ruby>标准<rt>standard</rt></ruby>”。
![][12]
选择你喜欢的主题(我喜欢“<ruby>暗色<rt>Darcula</rt></ruby>”的)。
![][13]
确认一切正常,然后点击“<ruby>下一步<rt>Next</rt></ruby>”。
![][14]
最后,点击“<ruby>完成<rt>Finish</rt></ruby>”按钮。
![][15]
然后等待,直到下载完成。
![][16]
### 创建一个 Hello World Flutter 应用样本
在 Android Studio 中,进入项目,选择“<ruby>新建 Flutter 项目<rt>New Flutter Project</rt></ruby>”。Flutter SDK 路径会默认设置。
![][17]
在这里,神奇的事情开始出现了,这是你设置你的项目名称的地方,在这个例子中,它将被称为 “hello_world”。
让我们选择三个可用的平台。**Android、iOS 和 Web**。最后,点击“<ruby>完成<rt>Finish</rt></ruby>”。
![][18]
项目中的主文件位于 `lib/main.dart`,如下图所示:
![][19]
选定后,擦除文件中包含的所有内容,并将其改为本示例代码:
```
// Copyright 2018 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: const Center(
child: Text('Hello World'),
),
),
);
}
}
```
重要的是,这只是向你展示 Flutter 是如何工作的,如果你确信要学习这种美丽而不可思议的语言,这里有 [文档][20] 可以看到更多关于它的信息。**尝试**它!
最后,选择 “Chome Web” 设备,并点击“<ruby>运行<rt>Run</rt></ruby>”按钮,如下图所示;并看到神奇的效果!
![][21]
你可以如此快速地创建一个 Flutter 项目,真是不可思议。跟你的 Hello World 项目打个招呼吧。
![][22]
### 最后...
如果你想在短时间内做出漂亮的移动和网页界面的贡献Flutter 和 Dart 是完美的。
现在你知道了如何在 Ubuntu Linux 上安装 Flutter以及如何用它创建你的第一个应用程序。我很高兴可以为你写这篇文章希望对你有所帮助如果你有任何问题请通过留言或给我发邮件来告诉我祝你好运!
本教程由 Marco Antonio Carmona Galván 提供,他是物理学和数据科学专业的学生。
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-flutter-linux/
作者:[Marco Antonio Carmona Galván][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/itsfoss/
[b]: https://github.com/lujun9972
[1]: https://flutter.dev/
[2]: https://dart.dev/
[3]: https://itsfoss.com/install-snap-linux/
[4]: https://itsfoss.com/open-terminal-ubuntu/
[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/installing-flutter-ubuntu.png?resize=786%2C195&ssl=1
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/verify-flutter-install.png?resize=786%2C533&ssl=1
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/Flutter-verification-completes.png?resize=786%2C533&ssl=1
[8]: https://itsfoss.com/install-android-studio-ubuntu-linux/
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/install-android-studio-linux-snap.png?resize=786%2C187&ssl=1
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/Open_Android_Studio.webp?resize=800%2C450&ssl=1
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/Setting-Up-Android-Studio-1.png?resize=800%2C603&ssl=1
[12]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/Setting-Up-Android-Studio-2.png?resize=800%2C603&ssl=1
[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/Setting-Up-Android-Studio-3.png?resize=800%2C603&ssl=1
[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/Setting-Up-Android-Studio-4.png?resize=800%2C603&ssl=1
[15]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/Setting-Up-Android-Studio-5.png?resize=800%2C603&ssl=1
[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/Setting-Up-Android-Studio-6.png?resize=800%2C603&ssl=1
[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/New_flutter_project.png?resize=800%2C639&ssl=1
[18]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/sample-flutter-project.png?resize=800%2C751&ssl=1
[19]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/sample-flutter-project-1.png?resize=800%2C435&ssl=1
[20]: https://flutter.dev/docs
[21]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/sample-flutter-project-2.png?resize=800%2C450&ssl=1
[22]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/sample-flutter-project-3.png?resize=800%2C549&ssl=1
[23]: https://itsfoss.com/cdn-cgi/l/email-protection

View File

@ -0,0 +1,152 @@
[#]: subject: "Best DAW (Digital Audio Workstation) Available for Linux Desktops"
[#]: via: "https://itsfoss.com/best-daw-linux/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14042-1.html"
最佳 Linux 桌面 DAW数字音频工作站
======
![](https://img.linux.net.cn/data/attachment/album/202112/02/123844cydiigpj23zgi7z7.jpg)
<ruby>数字音频工作站<rt>Digital Audio Workstation</rt></ruby>DAW可以让你录音、混音和制作音乐。对于商业用途有几个主流的选择可以考虑它们通常被认为是行业标准。
像 Steinberg 的 Nuendo/Cubase、ProTools、Ableton Live 和 FL Studio 这样成熟的音乐 DAW 是最流行(也是最昂贵)的解决方案。然而,它们并不能用于 Linux。
因此,当用在 Linux 上时,你只能根据现有的选项做出不同的选择。而在这里,我的目的是帮助你找出 Linux 上最好的音乐 DAW。
### 在使用 Linux 上的 DAW 之前要记住的事情
尽管你可以达到与 Windows/MacOS 系统相同的效果,但在选择使用 Linux 的 DAW 之前,你应该知道一些要点。
如果你是专业人士,并且使用过 Linux你可能已经知道了这些。但是对于新的 Linux 用户,这可以帮助你做出决定:
* 许多音频接口没有正式支持 Linux。所以你可能要在开始之前检查一下兼容性和音频设置过程。
* 流行的音频插件可能无法直接工作。你必须得寻找替代品或尝试使用 Wine这是一个耗时的过程
* 即插即用的情况可能不存在。各种任务都需要手动设置。
总的来说,在 Linux 中使用 DAW 时,有一些先决条件。它可能不能简单地安装然后就能开始制作音乐。所以,在选择 Linux 作为 DAW 的首选平台之前,你需要了解这些。
请注意,有几个 [可用于 Linux 的音频编辑器][1],但不是所有的都可以作为一个成熟的 DAW 使用。
现在你知道了这些注意事项,让我提一下目前最好的 Linux DAW。
> 非 FOSS 警报!
>
> 这里提到的应用并不全是开源的。它们被列在这里是因为它们在 Linux 上可用,而这篇文章的重点是 Linux。
虽然可用于 Linux 的 DAW 可能有许多,但为了确保你得到最好的硬件/软件兼容性,以及易于使用的界面,我们将我们的列表限制在流行的选项上。
### 1、Ardour
![][2]
[Ardour][3] 是最流行的开源 DAW可用于 Linux。它也可用于 Windows 和 macOS。
它是音乐家、音频工程师和作曲家的一个合适选择。你可以获得编辑乐谱和录制/混合歌曲的所有基本能力。
它自带几个插件支持。但是,你需要通过在插件管理器中手动添加它们到混音器中。另外,你可以选择通过指定路径来添加外部 VST3 插件。如果你想从中提取音频或同步Ardour 还支持视频时间线。
#### 在 Linux 中安装 Ardour
与其他付费版 DAW 不同,你不需要支付高昂的价格就可以使用它。你所需要做的就是购买一个低至 1 美元/月的订阅,只要你的订阅是有效的,你就可以继续访问这个程序和它的更新。
如果你对订阅不感兴趣,你可以选择一次性付款,这可以让你获得小版本更新和下一个主要版本(取决于你支付的金额)。
最重要的是,如果你喜欢测试即将到来的功能和改进,你还可以访问其开发(或每日)构建版本。
对于 Linux 发行版,它提供了一个 `.run` 文件,你可以轻松地从终端启动。
### 2、LMMS
![][4]
[LMMS][5] 是一个自由开源的 DAW可用于 Linux 和其他平台。
与其他一些 DAW 相比LMMS 在专业人员所需的专业方面可能有所欠缺。
然而,如果你刚刚开始创作音乐,或者需要一些无需购买/订阅就可以使用的东西,它应该可以满足你的一些功能需求。换句话说,它是一个合适的歌曲编辑 DAW。
如果你是从另一个平台上的 DAW 迁移来的,它的用户界面可能不太容易熟悉。但是,当你习惯了它,它就很容易使用了。
它还支持钢琴音符标签,以帮助你获得音乐制作体验。
#### 在 Linux 中安装 LMMS
你可以选择下载一个 AppImage 文件,它可以在你选择的任何 Linux 发行版上工作。它的配置相当简单,所以你只需要指定一个工作目录就可以开始了。
### 3、Bitwig Studio
![][6]
[Bitwig Studio][9] 是流行的主流音乐 DAW 之一,也支持 Linux。与本列表中的其他 DAW 相比Bitwig 提供了更好的跨平台支持和硬件集成。
即使你可能坚持使用 Linux 进行音乐制作,但拥有跨平台的支持,以便在你出门在外也可以继续你的工作,对一些人来说这也是一个重要的因素。
Bitwig 包括各种创意工具来处理音频文件和信号。所以,它完全可以满足专业要求。
### 在 Linux 中安装 Bitwig Studio
它提供了一个传统的 DEB 包用于安装。你可以在“演示模式”下免费使用它但它不允许你保存和导出任何东西。Bitwig Studio 在 [Flathub][8] 上还有一个 [Flatpak][7] 包。
要解锁所有的功能,你需要以 **$399** 的价格购买它。
### 4、REAPER
![][10]
[Reaper][11] 是一个可用于 Linux 的经济型 DAW。它提供了一个简单的用户界面和所有的基本功能。
和 Bitwig Studio 相比,它可能没有提供很多开箱即用的插件和功能,但它应该足以满足大多数通常的需求,如调制、自动化、使用 VST 插件等等。
尽管我没有亲自使用过它,但 Reaper 声称它是高度可定制的,并提供了与各种硬件的良好兼容性。
#### 在 Linux 中安装 Reaper
与其他选择不同Reaper 提供了一个 tar 包,你需要解压和安装。它包括一个脚本文件。因此,当你解压后,在该文件夹中打开终端或在终端中进入该文件夹,然后用以下命令执行该脚本:
```
./install-reaper.sh
```
当你安装它时,该脚本也会生成一个用于卸载的脚本。所以,在安装时一定要仔细选择文件夹,并确保在需要时能找到它。
在你需要购买它之前,你可以没有任何限制的免费使用它,最长可达 60 天。所以,如果你想在购买 DAW 之前彻底测试一下,我觉得这是一件非常好的事情。
个人使用的费用是 **\$60**,如果你需要用于商业用途,则需要 **\$225**。
### 总结
不幸的是,找不到太多可用于 Linux 的 DAW 。你可以尝试用 Wine 来运行一些流行的音乐 DAW但我不确定成功率有多少。
无论是哪种情况,这里提到的这些对于大多数用户来说应该是绰绰有余了。
你喜欢哪种 DAW 用于音乐制作?请在下面的评论中告诉我你的想法。
--------------------------------------------------------------------------------
via: https://itsfoss.com/best-daw-linux/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[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://itsfoss.com/best-audio-editors-linux/
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/ardour-daw.png?resize=800%2C476&ssl=1
[3]: https://ardour.org/
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/lmms-daw.png?resize=800%2C476&ssl=1
[5]: https://lmms.io/lsp/
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/bitwig-studio-linux.png?resize=800%2C457&ssl=1
[7]: https://itsfoss.com/what-is-flatpak/
[8]: https://flathub.org/apps/details/com.bitwig.BitwigStudio
[9]: https://www.bitwig.com/
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/reaper-linux.png?resize=800%2C614&ssl=1
[11]: https://www.reaper.fm

View File

@ -0,0 +1,106 @@
[#]: subject: (Install and remove software packages on FreeDOS)
[#]: via: (https://opensource.com/article/21/6/freedos-package-manager)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
[#]: collector: (lujun9972)
[#]: translator: (robsean)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14031-1.html)
在 FreeDOS 上安装和移除软件包
======
> 熟悉 FreeDOS 软件包管理器 FDIMPLES 。
![](https://img.linux.net.cn/data/attachment/album/202111/29/122823yhv0mg03v3mhr0cc.jpg)
在 Linux 上,你可能已经使用过 “软件包管理器” 来安装或移除软件包。例如,在 Debian Linux 上的默认软件包管理器是 `deb` 命令,在 Fedora Linux 上的默认软件包管理器是 `dnf` 命令。 但是你知道 FreeDOS 也有一个软件包管理器吗?
### 安装软件包
FreeDOS 1.3 RC4 发行版包含了很多极好的你可以使用的程序和应用程序。不过,我们不会默认安装其中的全部的程序 —— 我们不想过度地填充你的硬盘驱动器空间,尤其是在一个较老的系统上,可能仅有几百兆字节容量的硬盘驱动器。当你安装 FreeDOS 时,如果你选择 “Plain DOS system” 选项,你将发现你的 FreeDOS 系统是非常小的(大约 20 MB 大小)。
不过,要安装新的软件包很容易。在命令行中运行 `FDIMPLES` 程序。因为 DOS 是 _不区分大小写_ 的,所以,你可以使用大写字母或小写字母来输入这个命令: `fdimples` 。(`fdimples` 与 `FDIMPLES` 或 `FDImples` 等同)
![fdimples][2]
*在 FreeDOS 1.3 RC4 上的 FDIMPLES 软件包管理器(运行在 QEMU 之中Jim Hall, [CC-BY SA 4.0][3]*
FDIMPLES 是 "**F**ree**D**OS **I**nstaller - **M**y **P**ackage **L**ist **E**ditor **S**oftware" 的首字母缩略词是一个交互式软件包管理器。FDIMPLES 读取安装介质来识别可以安装或移除的软件包。如果你看到一个不同的菜单,它显示 “Installed!” ,但是,不让你安装其它的软件的话,请检查你系统中是否有 FreeDOS 的 CD-ROM 的安装介质。在物理机器上,你将需要将 CD-ROM 插入 CD-ROM 驱动器;在诸如 QEMU 或 VirtualBox 之类的虚拟机器上,你需要将安装 FreeDOS 的 CD-ROM 的安装介质与虚拟机器关联在一起。
![fdimples installed][4]
*如果你仅看到一条 “Installed!” 的信息,检查 CD-ROM 是否已经加载Jim Hall, [CC-BY SA 4.0][3]*
让我们假设你想安装一些可以让你听音乐文件或其它声音文件的软件。使用向上箭头和向下箭头按键来导航到菜单中的 **声音工具** 项。这是一个针对声音和音乐程序的 _软件包组_ 。
![fdimples sound][5]
*在 FDIMPLES 中突出显示声音软件包组Jim Hall, [CC-BY SA 4.0][3]*
要选择这个组中的所有软件包,在你的键盘上按下空格键。如果你决定安装这个组中的某个软件包,按下 `Tab` 按键来移动到 _软件包列表_ 方框面板,接下来使用空格键来选择每个软件包。
![fdimples sound select][6]
*通过按下空格键来选择一个组中的所有的软件包Jim Hall, [CC-BY SA 4.0][3]*
你可以继续选择你想要安装的其它的软件包或软件包组。当你选择好一切的东西后使用 “Tab” 按键来高亮显示 “OK” 按键,并按下空格键按键。
![fdimples sound select ok][7]
*当你准备好安装时,突出显示 “Ok” 按钮Jim Hall, [CC-BY SA 4.0][3]*
`FDIMPLES` 接下来会安装你所选择的所有的软件包。如果你仅选择几个小型的软件包,这可能只需要花费片刻的时间,或者,如果你要求安装很多大型的软件包,它可能会花费数分钟的时间。当 `FDIMPLES` 安装每个软件包时,`FDIMPLES` 会输出安装状态。在安装完后,`FDIMPLES` 退出到命令行之中,以便你可以回去继续工作。
![fdimples sound install done][8]
*当 FDIMPLES 安装软件包时FDIMPLES 会显示安装过程并在完成安装后自动地退出Jim Hall, [CC-BY SA 4.0][3]*
### 移除软件包
如果你安装了一个软件包,但是后来发现你不想要它了怎么办?在 `FDIMPLES` 中移除软件包也同样容易。
就像安装软件包一样,启动 `FDIMPLES` ,使用箭头键导航到包含你想要移除的软件包的组。例如,如果我想卸载一些我先前安装的音乐播放器软件包,我将导航到 “Sound Tools” 软件包组。
![fdimples sound select][9]
*导航到你想要移除的软件包组Jim Hall, [CC-BY SA 4.0][3]*
为一次移除整个软件包组,你可以在你想要移除的软件包组上按下空格键来取消选择它们。但是,在这里让我们假设我只是想移除几个我不需要的软件包,像音频 CD 播放器 “CDP”。我没有任何的真实的音乐 CD 光盘)。为移除 CDP ,敲击 `Tab` 按键来移动到软件包列表方框面板,接下来使用空格键来取消选择 CDP 软件包。这会在该软件包上移除 “X” 标志。
![fdimples unselect cdp][10]
*取消选择一个软件包来移除它Jim Hall, [CC-BY SA 4.0][3]*
你可以继续取消选择你想要移除的其它的软件包或软件包组。当你选择一切的东西后,使用 `Tab` 按键来突出显示 “OK” 按钮,并按下空格键按键。`FDIMPLES` 将移除你取消选择的软件包,然后自动地返回到命令行之中。
![fdimples cdp removed][11]
*FDIMPLES 移除软件包然后返回到命令行之中Jim Hall, [CC-BY SA 4.0][3]*
在 FreeDOS 中。我们包含很多的软件包,遍及各种各样的软件包组。使用 `FDIMPLES` 来安装你需要的软件。请随意实验!如果你决定你不想要保留一个软件包了,你可以移除它,并为其它的软件包来释放所占用的磁盘空间。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/6/freedos-package-manager
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brown-package-red-bow.jpg?itok=oxZYQzH-
[2]: https://opensource.com/sites/default/files/uploads/fdimples.png
[3]: https://creativecommons.org/licenses/by-sa/4.0/
[4]: https://opensource.com/sites/default/files/uploads/fdimples-installed.png
[5]: https://opensource.com/sites/default/files/uploads/fdimples-sound.png
[6]: https://opensource.com/sites/default/files/uploads/fdimples-sound-select.png
[7]: https://opensource.com/sites/default/files/uploads/fdimples-sound-select-ok.png
[8]: https://opensource.com/sites/default/files/uploads/fdimples-sound-select-ok-install4.png
[9]: https://opensource.com/sites/default/files/uploads/fdimples-sound-select_0.png
[10]: https://opensource.com/sites/default/files/uploads/fdimples-unselect-cdp.png
[11]: https://opensource.com/sites/default/files/uploads/fdimples-unselect-cdp-removed.png

View File

@ -0,0 +1,145 @@
[#]: subject: (Install FreeDOS without the installer)
[#]: via: (https://opensource.com/article/21/6/install-freedos-without-installer)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
[#]: collector: (lujun9972)
[#]: translator: (robsean)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14022-1.html)
不使用安装程序安装 FreeDOS
======
> 这里是如何在不使用安装程序的情况下来手动设置你的 FreeDOS 系统。
![](https://img.linux.net.cn/data/attachment/album/202111/25/235643wvmciyy2f8y3mi73.jpg)
大多数的人应该能够使用安装程序来非常容易地安装 FreeDOS 1.3 RC4 。FreeDOS 安装程序会先询问几个问题,然后处理剩余的工作,包括为 FreeDOS 制作安装空间和使系统可启动。
但是,如果安装程序不适合你怎么办?或者,你更喜欢 _手动_ 设置你的 FreeDOS 系统,而不喜欢使用安装程序怎么办?使用 FreeDOS ,你也可以做到这些!让我们在不使用安装程序的情况下逐步走完安装 FreeDOS 的步骤。我将使用 QEMU 虚拟机的一个空白的硬盘驱动器镜像来完成所有的步骤。我使用这个 Linux 命令来创建了一个 100 MB 的硬盘驱动器镜像:
```
$ qemu-img create freedos.img 100M
```
我下载了 FreeDOS 1.3 RC4 的 LiveCD ,并将其命名为 `FD13LIVE.iso` ,它提供了一个 “身临其境” 的环境,我可以在其中运行 FreeDOS ,包括所有的标准工具。大多数用户也使用 LiveCD 自带的常规安装程序来安装 FreeDOS 。但是,在这里我将仅使用 LiveCD ,并从其命令行中使用某些类型的命令来安装 FreeDOS 。
我使用这个相当长的 QEMU 命令来启动虚拟机,并选择 “Use FreeDOS 1.3 in Live Environment mode” 启动菜单项:
```
$ qemu-system-x86_64 -name FreeDOS -machine pc-i440fx-4.2,accel=kvm,usb=off,dump-guest-core=off -enable-kvm -cpu host -m 8 -overcommit mem-lock=off -no-user-config -nodefaults -rtc base=utc,driftfix=slew -no-hpet -boot menu=on,strict=on -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on -hda freedos.img -cdrom FD13LIVE.iso -device sb16 -device adlib -soundhw pcspk -vga cirrus -display sdl -usbdevice mouse
```
![manual install][2]
*选择 "Use FreeDOS 1.3 in Live Environment mode" 来启动 LiveCDJim Hall, [CC-BY SA 4.0][3]*
这个 QEMU 命令行包含大量的选项,乍看可能会让你迷糊。因为你完全使用命令行选项配置 QEMU ,所以在这里有很多东西需要审查。但是,我将简单地重点说明几个重要的选项:
* `-m 8`设置系统存储器RAM为 8 MB
* `-boot menu=on,strict=on`:使用一个启动菜单,这样,我可以选择从 CD-ROM 镜像或硬盘驱动器镜像启动
* `-hda freedos.img`:使用 `freedos.img` 作为硬盘驱动器镜像
* `-cdrom FD13LIVE.iso`:使用 `FD13LIVE.iso` 作为 CD-ROM 镜像
* `-device sb16 -device adlib -soundhw pcspk`:定义计算机带有一个 SoundBlaster16 声卡、AdLib 数字音乐卡、PC 扬声器模拟器(如果你想玩 DOS 游戏的话,这些模拟器很有用)
* `-usbdevice mouse`:将用户的鼠标识别为一个 USB 鼠标(在 QEMU 窗口中单击以使用鼠标)
### 对硬盘驱动器进行分区
你可以从 LiveCD 使用 FreeDOS 1.3 RC4 ,但是,如果你想安装 FreeDOS 到你的计算机中,你需要先在硬盘驱动器上制作安装空间。这需要使用 FDISK 程序来创建一个 _分区_ 。
从 DOS 命令行中,输入 `FDISK` 来运行 _分区_ 设置程序。FDISK 是一个全屏交互式程序,你只需要输入数字来选择菜单项。从 FDISK 的主菜单中,输入 `1` 来在驱动器上创建一个 DOS 分区,然后在接下来的屏幕上输入 `1` 来创建一个 “主” DOS 分区。
![using fdisk][4]
*选择 `1` 来创建一个分区Jim Hall, [CC-BY SA 4.0][3]*
![using fdisk][5]
*在接下来的菜单上选择 `1` 来制作一个主分区Jim Hall, [CC-BY SA 4.0][3]*
`FDISK` 会询问你是否想要使用全部的硬盘空间大小来创建分区。除非你需要在这个硬盘驱动器上和另外一个操作系统(例如 Linux共享硬盘空间否则对于这个提示你应该回答 `Y`
`FDISK` 创建新的分区后,在 DOS 能够识别新的分区信息前,你将需要重新启动 DOS 。像所有的 DOS 操作系统一样FreeDOS 仅在其启动时识别硬盘驱动器信息。因此,如果你创建或删除任何的磁盘分区的话,你都将需要重新启动 FreeDOS 只有这样做FreeDOS 才能识别到更改的分区信息。`FDISK` 会提醒你重新启动,因此,你是不会忘记的。
![using fdisk][6]
*你需要重新启动以识别新的分区Jim Hall, [CC-BY SA 4.0][3]*
你可以通过停止或重新启动 QEMU 虚拟机来重新启动 FreeDOS但是我更喜欢在 FreeDOS 命令行中使用 FreeDOS 的高级电源管理(`FDADPM`)工具来重新启动 FreeDOS 。为了重新启动,输入命令 `FDADPM /WARMBOOT` FreeDOS 将自动重新启动。
### 对硬盘驱动器进行格式化
在 FreeDOS 重新启动后,你可以继续设置硬盘驱动器。创建磁盘分区是这个过程的“第一步”;现在你需要在分区上创建一个 DOS _文件系统_ ,以便 FreeDOS 可以使用它。
DOS 系统使用字母 `A` 到 `Z` 来识别“驱动器”。FreeDOS 将识别第一个硬盘驱动器的第一个分区为 `C` 驱动器,依此论推。你经常使用字母和一个冒号(`:`)来表示驱动器,因此我们在上面创建的新分区实际上是 `C:` 驱动器。
你可以在新的分区上使用 `FORMAT` 命令来创建一个 DOS 文件系统。这个命令带有一些选项,但是,我们将仅使用 `/S` 选项来告诉 `FORMAT` 来使新的文件系统可启动: `S` 意味着安装 FreeDOS “系统” 文件。输入 `FORMAT /S C:` 来在 `C:` 驱动器上制作一个新的 DOS 文件系统。
![formatting the disk][7]
*格式化分区来创建 DOS 文件系统Jim Hall, [CC-BY SA 4.0][3]*
使用 `/S` 选项,`FORMAT` 将运行 `SYS` 程序来传输系统文件。你将看到这是从 `FORMAT` 输出的一部分:
![formatting the disk][8]
*`FORMAT /S` 将使用 SYS 来使磁盘可启动Jim Hall, [CC-BY SA 4.0][3]*
### 安装软件
在使用 `FDISK` 创建了一个新的分区,并使用 `FORMAT` 创建了一个新的文件系统后, 新的 `C:` 驱动器基本上是空的。此时,`C:` 驱动器仅包含一份内核和 `COMMAND.COM` 命令行 shell 的副本。为使新的磁盘可以执行一些有用的操作,我们需要在其上安装软件。这是手动安装过程的最后步骤。
FreeDOS 1.3 RC4 LiveCD 包含所有的你可能希望在新的系统上所要安装的软件。每个 FreeDOS 程序都是一个单独的 “软件包” ,它实际上只是一个 Zip 档案文件。建立标准 DOS 环境的软件包存储在 LiveCD 上 `PACKAGES` 目录下的 `BASE` 目录之中。
你可以一次一个的将其中的每一个软件包都 “解压缩” 到硬盘驱动器来完成安装。在 `Base` 组中有 62 个单独的软件包,如果每次安装一个软件包,这可能会花费非常多的时间。不过,你可以运行一个只有一行的 `FOR` “循环” 命令来 `UNZIP` 每个程序。接下来 FreeDOS 可以为你 “解压缩” 所有的软件包。
`FOR` 循环的基本用法中提及的一个单个字母变量(让我们使用 `%F`稍后FreeDOS 将使用该字母变量来 “填充” 文件名称。`FOR` 还需要括号中的一个文件列表,这个命令会对每个文件都运行一次。用来解压一系列的 Zip 文件的语法看起来像这样:
```
FOR %F IN (*.ZIP) DO UNZIP %F
```
这将提取所有的 Zip 文件到当前目录之中。为提取或 `UNZIP` 文件到一个不同的位置,在 `UNZIP` 命令行结尾处使用 `-d` (“目的地”) 选项。对于大多数的 FreeDOS 系统来说,你应该安装软件包到 `C:\FDOS` 目录中:
![installing the software][9]
*解压缩所有的基本软件包来完成安装 FreeDOSJim Hall, [CC-BY SA 4.0][3]*
FreeDOS 会处理剩余的工作,安装所有的 62 个软件包到你的系统之中。这可能会花费几分钟的时间,因为 DOS 在处理很多单个的文件时会很慢,这个命令需要提取 62 个 Zip 文件。如果我们使用单个的 `BASE.ZIP` 档案文件的话,安装过程可能会运行地更快,但是使用软件包的话,在你选择想要安装或不安装软件包时会提供更多的灵活性。
![installing the software][10]
*在安装所有的基本软件包后Jim Hall, [CC-BY SA 4.0][3]*
在我们安装完所有的东西后,使用 `FDADPM /WARMBOOT` 来重新启动你的系统。手动安装意味着你的新 FreeDOS 系统没有常见的 `FDCONFIG.SYS` 配置文件,因此,当 FreeDOS 在启动时,它将假设一些典型的默认值。因为没有 `AUTOXEC.BAT` 文件FreeDOS 也会提示你时间和日期。
![rebooting FreeDOS][11]
*在手动安装后,重新启动 FreeDOSJim Hall, [CC-BY SA 4.0][3]*
大多数的用户应该能够使用比较用户友好的过程来在一台新的计算机上安装 FreeDOS 。但是如果你想自己使用“古老的”方法来安装它,那么你可以手动运行安装步骤。这会提供一些额外的灵活性和控制权,因为是你自己安装的一切。现在你知道如何安装它了。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/6/install-freedos-without-installer
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/freedos-fish-laptop-color.png?itok=vfv_Lpph (FreeDOS fish logo and command prompt on computer)
[2]: https://opensource.com/sites/default/files/uploads/manual-install3.png (Select "Use FreeDOS 1.3 in Live Environment mode" to boot the LiveCD)
[3]: https://creativecommons.org/licenses/by-sa/4.0/
[4]: https://opensource.com/sites/default/files/uploads/manual-install6.png (Select "1" to create a partition)
[5]: https://opensource.com/sites/default/files/uploads/manual-install7.png (Select "1" on the next menu to make a primary partition)
[6]: https://opensource.com/sites/default/files/uploads/manual-install10.png (You need to reboot to recognize the new partition)
[7]: https://opensource.com/sites/default/files/uploads/manual-install13.png (Format the partition to create the DOS filesystem)
[8]: https://opensource.com/sites/default/files/uploads/manual-install14.png (FORMAT /S will use SYS to make the disk bootable)
[9]: https://opensource.com/sites/default/files/uploads/manual-install18.png (Unzip all of the Base packages to finish installing FreeDOS)
[10]: https://opensource.com/sites/default/files/uploads/manual-install24.png (After installing all the Base packages)
[11]: https://opensource.com/sites/default/files/uploads/manual-install28.png (Rebooting FreeDOS after a manual install)

View File

@ -0,0 +1,130 @@
[#]: subject: "How the Kubernetes ReplicationController works"
[#]: via: "https://opensource.com/article/21/11/kubernetes-replicationcontroller"
[#]: author: "Mike Calizo https://opensource.com/users/mcalizo"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14018-1.html"
Kubernetes 复制控制器如何工作
======
> 复制控制器负责管理吊舱的生命周期并确保在任何时候运行着所需的指定数量的吊舱。
![](https://img.linux.net.cn/data/attachment/album/202111/25/131052ltjaz53jqkfamthh.jpg)
你有没有想过,谁负责监督和管理 Kubernetes 集群内运行的“<ruby>吊舱<rt>pod</rt></ruby>”的确切数量Kubernetes 可以通过多种方式做到这一点,但一个常见的方法是使用 “<ruby>复制控制器<rt>ReplicationController</rt></ruby>RC”。RC 负责管理吊舱的生命周期并确保在任何时候运行着所需的指定数量的吊舱。但另一方面它不负责高级的集群能力如执行自动扩展、准备度和活跃探测以及其他高级的复制能力。Kubernetes 集群中的其他组件可以更好地执行这些功能。
简而言之RC 的职责有限通常用于不需要复杂逻辑就能达到某些要求的具体实现例如确保所需的吊舱数量总是与指定的数量相符。如果超过了所需的数量RC 会删除多余的,并确保即使在节点故障或吊舱终止的情况下,也有相同数量的存在。
简单的事情不需要复杂的解决方案,对我来说,这就是 RC 如何被使用的一个完美的比喻。
### 如何创建一个 RC
像大多数 Kubernetes 资源一样,你可以使用 YAML 或 JSON 格式创建一个 RC然后将其发布到 Kubernetes API 端点。
```
$ kubectl create -f rcexample.yaml
replicationcontroller/rcexample created
```
现在,我将深入一下 `rcexample.yaml` 的样子。
```
apiVersion: v1
kind: ReplicationController → RC 描述符
metadata:
name: rcexample → 复制控制器名字
spec:
replicas: 3 → 预期的吊舱数量
selector: → 这个 RC 的吊舱选择器
app: nginx
template: → 用于创建新吊舱的模板
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
```
进一步解释,这个文件在执行时创建了一个名为 `rcexample` 的 RC确保三个名为 `nginx` 的吊舱实例一直在运行。如果一个或所有的 `app=nginx` 吊舱没有运行,新的吊舱将根据定义的吊舱模板创建。
一个 RC 有三个部分:
* 复制品:`3`
* 吊舱模板:`app=nginx`
* 吊舱选择器:`app=nginx`
注意,吊舱模板要与吊舱选择器相匹配,以防止 RC 一直创建吊舱。如果你创建的 RC 的吊舱选择器与模板不匹配Kubernetes API 服务器会给你一个错误。
为了验证 RC `rcexample` 是否被创建:
```
$ kubectl get po
NAME READY STATUS RESTARTS AGE
rcexample-53thy 0/1 Running 0 10s
rcexample-k0xz6 0/1 Running 0 10s
rcexample-q3vkg 0/1 Running 0 10s
```
要删除 RC
```
$ kubectl delete rc rcexample
replicationcontroller "rcexample" deleted
```
注意,你可以对 RC 中的服务使用 [滚动更新][2] 策略,逐个替换吊舱。
### 其他复制容器的方法
在 Kubernetes 部署中有多种方法可以实现容器的复制。Kubernetes 成为容器平台的主要选择的主要原因之一是复制容器以获得可靠性、负载平衡和扩展的原生能力。
我在上面展示了你如何轻松地创建一个 RC以确保在任何时候都有一定数量的吊舱可用。你可以通过更新副本的数量来手动扩展吊舱。
另一种可能的方法是通过使用 “<ruby>[复制集][3]<rt>ReplicaSet</rt></ruby>RS”来达到复制的目的。
```
(kind: ReplicaSet)
```
RS 的功能几乎与 RC 相同。主要区别在于RS 不允许滚动更新策略。
另一种实现复制的方法是通过使用 “<ruby>[部署][4]<rt>Deployments</rt></ruby>”。
```
(kind: Deployment)
```
部署是一种更高级的容器复制方法。从功能上讲,部署提供了相同的功能,但在需要时可以推出和回滚变化。这种功能之所以能够实现,是因为部署有 “<ruby>策略类型<rt>StrategyType</rt></ruby>” 规范来用新的吊舱替换旧的吊舱。你可以定义两种类型的部署策略:“<ruby>重新创建<rt>Recreate</rt></ruby>” 和 “<ruby>滚动更新<rt>RollingUpdate</rt></ruby>”。你可以如下指定部署策略:
```
StrategyType: RollingUpdate
```
### 总结
容器的复制功能是大多数企业考虑采用 Kubernetes 的主要原因之一。复制可以让你达到大多数关键应用程序需要的可靠性和可扩展性,作为生产的最低要求。
了解在 Kubernetes 集群中使用哪些方法来实现复制,对于决定哪种方法最适合你的应用架构考虑非常重要。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/kubernetes-replicationcontroller
作者:[Mike Calizo][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mcalizo
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/kubernetes_containers_ship_lead.png?itok=9EUnSwci (Ships at sea on the web)
[2]: https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/
[3]: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
[4]: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

View File

@ -0,0 +1,172 @@
[#]: subject: "3 interesting ways to use the Linux cowsay command"
[#]: via: "https://opensource.com/article/21/11/linux-cowsay-command"
[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14021-1.html"
使用 cowsay 命令的 3 种有趣方式
======
> 想试一个只是好玩的应用吗?试试 cowsay。
![](https://img.linux.net.cn/data/attachment/album/202111/25/232451f6v8fnne2np8e22e.jpg)
大多数时候,终端是一个生产力的动力源。但是,终端的作用不止是命令和配置。在所有杰出的开源软件中,有些是 [为了好玩而写的][2]。我以前介绍过一些 [有趣的命令][3],但这篇文章只讲一个:古老的 `cowsay` 命令。
`cowsay` 是一只可配置的会说话(或思考)的牛。它接受一个文本字符串,并输出一个牛说话的图形。下面是一头牛在说它喜欢 Linux
```
< I love Linux >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
```
要得到这个结果,我只需输入:
```
$ cowsay "I love Linux"
```
### 在 Linux 上安装 cowsay
你可以用你的包管理器安装 `cowsay`。在 Debian、Mint、Elementary 和类似的发行版上:
```
$ sudo apt install cowsay
```
在 Fedora 上:
```
$ sudo apt install cowsay-beefymiracle
```
### Cowsay 命令选项
`cowsay` 是一个简单又有点傻的应用。除了为你的终端机提供一些不同样式外,它并没有什么实际用途。例如,与其让一头普通的牛说一个有趣短语,你可以让一头长着古怪眼睛的牛说一个有趣的短语。输入:
```
$ cowsay -e @@ Hello
```
你会看到:
```
< Hello >
-------
\ ^__^
\ (@@)\_______
(__)\ )\/\
||----w |
|| ||
```
或者你可以让它伸出舌头。输入:
```
$ cowsay -T U Hello
```
你会看到:
```
< Hello >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
U ||----w |
|| ||
```
更好的是,你可以将 `fortune` 命令与 `cowsay` 结合起来:
```
$ fortune | cowsay
```
现在你有了一头特别睿智的牛:
```
_______________________________________
/ we: \
| |
| The single most important word in the |
\ world. /
---------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
```
### “结实的奇迹”
在 Fedora 上,有一个额外的 `cowsay` 选项也是一个非官方的项目吉祥物。多年来Fedora 安装程序一直在展示宣传开源贡献的幻灯片。因为它们是根据汽车电影院的插曲设计的,所以幻灯片中常见的卡通人物是拟人化的热狗。
为了与这个主题保持一致,你可以用 Fedora 版本的 `cowsay` 调用一个所谓的“<ruby>结实的奇迹<rt>beefy miracle</rt></ruby>”。LCTT 译注Fedora 17 的开发代号。)
```
$ cowsay -f beefymiracle Hello Fedora
```
你会得到一个非常傻的输出:
```
< Hello Fedora >
-------------- .---. __
, \ / \ \ ||||
\\\\ |O___O | | \\||||
\ // | \_/ | | \ /
'--/----/| / | |-'
// // / -----'
// \\ / /
// // / /
// \\ / /
// // / /
/| ' / /
//\___/ /
// ||\ /
\\_ || '---'
/' / \\_.-
/ / --| |
'-' | |
'-'
```
### 图形化的 cowsay
如果你发现自己需要用图形化的牛来传递信息,可以使用 `xcowsay` 命令。这是一个类似于 `cowsay` 的图形程序,它接受一个由用户输入的文本字符串,或从另一个应用(如 Fortune输送过来的文本字符串。
![A cartoon cow has a speech bubble that reads "I love Linux"][4]
### 有趣的 Linux 命令
虽然 `cowsay` 不是一个有用的命令,但它是一个有趣的命令,相当于你终端的桌面小工具。它很适合用来分散注意力和进行有趣的管道命令实验(尝试将 `ifconfig` 管道到 `cowsay`,或 `lsblk``mount`,或任何东西!)。如果你想让你的终端更有趣,试试 `cowsay`
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/linux-cowsay-command
作者:[Don Watkins][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/don-watkins
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LIFE_CowParade_osdc.png?itok=6GD1Wnbm (Cow on parade.)
[2]: https://opensource.com/life/16/6/fun-and-semi-useless-toys-linux
[3]: https://opensource.com/article/21/11/fun-linux-commands
[4]: https://opensource.com/sites/default/files/uploads/graphical_cowsay.png (graphical cowsay)
[5]: https://creativecommons.org/licenses/by-sa/4.0/

View File

@ -0,0 +1,104 @@
[#]: subject: "How to Install Brave Browser on Fedora, Red Hat & CentOS"
[#]: via: "https://itsfoss.com/install-brave-browser-fedora/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14028-1.html"
如何在 Fedora Linux 上安装 Brave 浏览器
======
![](https://img.linux.net.cn/data/attachment/album/202111/28/102349idh316xz3bslr6ps.jpg)
[Brave][1] 是一个越来越 [流行于 Linux][2] 和其他操作系统的网页浏览器。对默认情况下阻止广告和跟踪的关注,以及对 Chrome 扩展的支持,使 Brave 成为 Linux 用户的热门选择。
在本教程中,你将学习如何在 Fedora Linux 上安装 Brave。你还将学习如何更新和删除它。
本教程已经在 Fedora 上进行了测试,但它也应该适用于基于 Red Hat 的其他发行版,如 CentOS、Alma Linux 和 Rocky Linux。
### 在 Fedora Linux 上安装 Brave 浏览器
你需要在这里用命令行的方式来安装 Brave。
作为先决条件,请确保 `dnf-plugin-core` 已经安装。
```
sudo dnf install dnf-plugins-core
```
下一步是将 Brave 仓库添加到你的系统中:
```
sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/
```
你还应该导入并添加仓库密钥,这样你的系统就会信任来自这个新添加的仓库的软件包:
```
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
```
![Adding Brave Browser repository in Fedora Linux][3]
现在可以开始了。用这个命令安装 Brave
```
sudo dnf install brave-browser
```
**当被要求确认你的选择时按 `Y`**。根据你的网速,这应该需要几秒钟或几分钟的时间。如果 DNF 的缓存最近没有更新,甚至可能需要更长时间。
![Installing Brave Browser in Fedora][4]
安装完成后,在系统菜单中寻找 Brave 并从那里启动。
![Start Brave browser in Fedora Linux][5]
### 在 Fedora Linux 上更新 Brave 浏览器
你已经为浏览器添加了一个仓库,并且导入了它的密钥。你的系统信任来自这个仓库的软件包。
因此,当有新的 Brave 浏览器发布并提供给这个仓库时,你会通过常规的系统升级得到它。
换句话说,你不需要做任何特别的事情。只要保持你的 Fedora 系统更新,如果有 Brave 的新版本,它应该会随着系统更新自动安装。
### 从 Fedora Linux 中删除 Brave 浏览器
![Brave Browser in Fedora Linux][6]
如果你因为某些原因不喜欢 Brave你可以从你的系统中删除它。只需使用 `dnf remove` 命令:
```
sudo dnf remove brave-browser
```
当询问时按 `Y`
![Removing Brave browser from Fedora Linux][7]
你也可以选择禁用 `brave-browser-rpm-release.s3.brave.com_x86_64_.repo` 或者从 `/etc/yum/repos.d` 中完全删除这个文件,虽然这并不是必须的。
我希望这个快速提示对你有帮助。如果你有任何问题或建议,请让我知道。
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-brave-browser-fedora/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[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://brave.com/
[2]: https://itsfoss.com/best-browsers-ubuntu-linux/
[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/adding-Brave-browser-repository-in-Fedora.png?resize=800%2C300&ssl=1
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/Installing-Brave-Browser-Fedora.png?resize=800%2C428&ssl=1
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/start-brave-fedora-linux.png?resize=759%2C219&ssl=1
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/Brave-Browser-in-Fedora-Linux.png?resize=800%2C530&ssl=1
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/removing-Brave-browser-Fedora-Linux.png?resize=800%2C399&ssl=1

View File

@ -3,31 +3,31 @@
[#]: author: "Pranav Krishna https://itsfoss.com/author/pranav/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14025-1.html"
如何在 Fedora Linux 上安装 Discord
======
![](https://img.linux.net.cn/data/attachment/album/202111/27/115501g3oiuirvzk4nvu3k.jpg)
[Discord][1] 是一个流行的消息收发应用,可用于文字和语音信息传递。
它是几个社区的福音,可以帮助他们扩大项目,接触更多的人,并维持一个粉丝和追随者的社区。考虑到 Discord 最初是为游戏玩家设计的,这很令人惊讶。
它是一些社区的福音,可以帮助他们扩大项目,接触更多的人,并维持一个粉丝和关注者的社区。而 Discord 最初是为游戏玩家设计的,这很令人惊讶。
Discord 可用于各种平台,包括 Linux。在本教程中我将引导你完成在 Fedora 中安装 Discord 的步骤。
* 使用 DNF 和 RPM Fusion 仓库安装 Discord
* 通过 Flatpak 安装Discord
Flatpak 软件包是沙盒的,因此需要更多的磁盘空间和时间来启动。然而,他们会相当快地更新到新的版本。
无论你想使用 Flatpak 还是 DNF选择权在你手上。我将向你展示这两种方法。
非 FOSS 警报!
Discord 并不是开源的。但由于他们提供了一个 Linux 客户端,而且许多 Linux 用户都依赖它,所以在这里介绍了
> 非 FOSS 警报!
>
> Discord 并不是开源的。但由于他们提供了一个 Linux 客户端,而且许多 Linux 用户都依赖它,所以我们会在这里介绍它
### 方法 1通过 RPM Fusion 仓库安装 Discord
@ -36,7 +36,6 @@ Discord 可以通过添加非自由的 RPM Fusion 仓库来安装,这是大多
打开终端,使用下面的命令来添加 RPM-fusion 非自由仓库:
```
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
```
@ -44,22 +43,18 @@ Discord 可以通过添加非自由的 RPM Fusion 仓库来安装,这是大多
完成后,更新仓库列表(应该不需要,但只是为了它):
```
sudo dnf update
```
然后通过 DNF 命令安装 Discord像这样
然后通过 `dnf` 命令安装 Discord像这样
```
sudo dnf install discord
```
![Installing Discord using DNF][2]
如果被要求导入 GPG 密钥,只要按 “Y” 就可以授权了。
如果被要求导入 GPG 密钥,只要按 `Y` 就可以授权了。
![Authorize GPG key][3]
@ -72,9 +67,7 @@ Discord 可以通过添加非自由的 RPM Fusion 仓库来安装,这是大多
如果你不想再使用 Discord你可以从你的系统中删除它。要做到这一点在终端运行以下命令
```
sudo dnf remove discord
```
这真的很简单,不是吗?还有一种简单的安装 Discord 的方法,那就是使用 Flatpak 软件包。
@ -86,17 +79,13 @@ Discord 可以使用 Flatpak 轻松安装,因为它在 Fedora 中是默认可
首先,你需要在 Fedora 中启用 Flatpak 仓库:
```
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```
接下来,通过这个命令安装 Discord
```
flatpak install discord
```
![Install Discord via Flatpak][5]
@ -104,9 +93,7 @@ Discord 可以使用 Flatpak 轻松安装,因为它在 Fedora 中是默认可
如果你想删除 Discord那么只需运行
```
flatpak remove discord
```
这就超级简单了。如果你在 Fedora Linux 上安装 Discord 需要任何帮助,请告诉我。
@ -118,7 +105,7 @@ via: https://itsfoss.com/install-discord-fedora/
作者:[Pranav Krishna][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,57 @@
[#]: subject: "Amazons Own Linux Distribution is Now Completely Based on Fedora"
[#]: via: "https://news.itsfoss.com/amazon-linux-2022-preview/"
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14019-1.html"
亚马逊自己的 Linux 发行版现在完全基于 Fedora 了
======
> 亚马逊已经发布了 Amazon Linux 2022 的公开预览版,并有了新的发布模式。
![](https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/amazon-linux-2022.png?w=1200&ssl=1)
如果你还不知道,亚马逊有自己的通用 Linux 发行版,自然而然,它被称为 Amazon Linux。
它的目的是在 AWS 服务器上使用。当你部署服务器时,你可以选择使用 Amazon Linux或其他流行的选择如 Ubuntu、Debian 等。由于它来自亚马逊,所以没有许可费,而且亚马逊对软件库和软件包进行控制。你可以期待它与 AWS 工具紧密结合,并通过它获得新的 AWS 创新。
Amazon Linux 2022AL2022是其版本 1 和 2 之后的下一个版本,它将在 2022 年发布(你可以从版本号上猜到)。
### 即将发布的 Amazon Linux 2022 只基于 Fedora
到目前为止Amazon Linux 的发布是基于红帽 Linux 和 Fedora 两者的组合。从 AL2022 开始,它将明确使用 Fedora 作为上游。
此举意在为 AWS 客户“提供各种最新软件,如更新的语言运行时,作为季度发布的一部分”。
为了提高安全性减少攻击面AL2022 还将启用 [SELinux][1] 并默认执行。
### 与 Ubuntu 相似的新发布模式
Amazon Linux 还选择了一个更可预测的发布时间表。每两年将发布一个新的 Amazon Linux 主要版本,并将支持五年。这样,用户就会知道何时以及如何升级他们的操作系统。
这种“每两年一个新的 LTS 版本和 5 年的支持”与 Ubuntu 如今的特点非常相似。
### 还有什么?
AL2022 也能锁定到亚马逊 Linux 软件包库的特定版本。这使得用户可以控制如何以及何时吸收更新。
Amazon Linux 2022 在所有的地理区域都可以作为预览版(即 beta 版)体验。你可以访问他们的 GitHub 页面了解更多关于 AL2022 的信息。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/amazon-linux-2022-preview/
作者:[Abhishek][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://news.itsfoss.com/author/root/
[b]: https://github.com/lujun9972
[1]: https://linuxhandbook.com/selinux/

View File

@ -0,0 +1,86 @@
[#]: subject: "Manage Flatpak Permissions Graphically With Flatseal"
[#]: via: "https://itsfoss.com/flatseal/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14034-1.html"
用 Flatseal 图形化管理 Flatpak 应用的权限
======
![](https://img.linux.net.cn/data/attachment/album/202111/30/135209fbcvqnvnzidvg2hw.jpg)
新版本的安卓系统让你对单个应用的访问和权限有了更精细的控制。这一点至关重要,因为许多应用曾经(正在)滥用系统权限。下载一个天气应用,它将要求访问你的通话记录,好像这与天气有什么关系一样。
为什么我在说安卓应用的权限?因为这可能与此应用的功能有关。
你可能已经知道 [什么是 Flatpak][1]。这些都是沙盒应用,可以选择访问系统资源,如文件存储、网络接口等。
就像 Android 一样,你可以控制 Flatpak 应用对系统资源的访问。默认情况下,这要用 [Flatpak 命令][2],不是每个人都能适应它。
因此,有一个叫做 Flatseal 的小工具,可以让你在应用层面上管理和控制 Flatpak 的权限。
### Flatseal
![Flatseal][3]
[Flatseal][4] 是一个图形化的工具,用于审查和修改你的 Flatpak 应用的权限。这使得事情比通过命令要容易得多。
Flatseal 会列出所有已安装的 Flatpak 应用。当你选择一个应用,你可以看到所有的权限。很容易发现已启用的权限,如果你愿意,你可以禁用它。
例如Ksnip 是一个屏幕截图工具,但它也有联网权限,可以用 Imgur 等在线服务分享截图。如果你不需要它,你可以禁用它。
![Control permissions of individual Flatpak apps][5]
如果不出意外,看看一个应用有什么样的权限是很有趣的。例如,你可以看到 ksnip 有在后台运行的能力(这样你就可以用键盘快捷键进行截图)。
![][6]
### 安装 Flatseal
既然管理的都是 Flatpak那么 Flatseal 作为一个 Flatpak 包来使用也是合理的。
在 Fedora 上,如果已经添加 Flathub 仓库,你可以从软件中心安装它。
![Installing Flatseal from the software center][7]
否则,命令行总是可以帮助你。
```
flatpak install flathub com.github.tchx84.Flatseal
```
### 你真的需要控制权限吗?
这是一个主观的问题,完全取决于你。值得庆幸的是,到目前为止,桌面 Linux 应用并不像 Android 应用那样滥用权限。
一个普通用户通常不会去管这些事情,这完全没问题。
然而如果你对这些事情过于谨慎或者你找到一个很好的理由Flatseal 提供了一个简单的选择。
你还应该小心你所改变的权限。如果你禁用了对应用的运作至关重要的权限,在使用应用时肯定会造成麻烦。
所以,总的来说,这不是一个普通用户要使用的东西。
--------------------------------------------------------------------------------
via: https://itsfoss.com/flatseal/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[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/what-is-flatpak/
[2]: https://itsfoss.com/flatpak-guide/
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/flatseal.png?resize=800%2C474&ssl=1
[4]: https://flathub.org/apps/details/com.github.tchx84.Flatseal
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/flatpak-permission-control-flatseal.png?resize=800%2C503&ssl=1
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/flatpak-permissions-with-flatseal.png?resize=800%2C441&ssl=1
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/install-flatseal.png?resize=800%2C467&ssl=1

View File

@ -0,0 +1,89 @@
[#]: subject: "Endless OS 4.0 is a Long-Term Support Version with Usability Improvements"
[#]: via: "https://news.itsfoss.com/endless-os-4-0-lts/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14024-1.html"
没有终点的操作系统 Endless OS 发布 4.0 LTS
======
> Endless OS 4.0 是一个长期支持版本,带有大量必要的改进,默认的应用程序以 Flatpak 包的形式提供。
![](https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/endless-os-4.0.jpg?w=1200&ssl=1)
Endless OS 是一个基于 Debian 的 Linux 发行版重点捆绑提供几个重要的应用程序和资源以帮助充分利用你的计算机而不需要互联网连接。LCTT 译注:因此,在互联网的“终点”之外也可使用。)
它主要是为教育和不能经常访问互联网的用户定制的。而如果你连接到互联网,也有一些工具可以帮助你浏览网页并与朋友/家人保持联系。
他们最新发布的 Endless OS 4.0 是一个长期支持的版本,带有一些改进。让我们简单了解一下。
### Endless OS 4.0 的新内容
澄清一下,这是一个 LTS 版本,将被维护若干年(具体不清楚),即使是在 Endless OS 5.0 版本发布之后,它也会得到更新。
除了 LTS 的好处之外,其他变化还包括:
#### 改进的应用程序网格导航
![来源Endlessos.org][1]
在以前的版本中,列出的应用程序散落在多个页面之间。由于这个原因,用户可能不会注意到它们。
因此,在 Endless OS 4.0 中,增加了额外的箭头和图标,以突出多页面和应用程序网格的存在。你应该看到,如果你在桌面上切换页面,可以探索到更多的应用程序。
#### 快速切换用户
在一个用户已经登录时,你现在有两种不同的方式来快速切换到另一个用户。
![来源Endlessos.org][2]
传统上,你可以在用户菜单中找到它(和注销选项一起)。或者,你也可以使用新的多用户图标从锁屏上直接切换。
![来源Endlessos.org][3]
#### 新的默认墙纸
每当有重大的版本升级时,新的墙纸总是让人耳目一新。
如果你想在任何其他系统中尝试它们,你可以在 [Unsplash][4] 上找到列出的这些壁纸。
#### 免驱动打印
你不再需要依靠讨厌的打印机驱动程序来检测连接的打印设备。有了 Endless OS 4.0,任何在本地网络中支持 [互联网打印协议][5]IPP的设备都可以自动检测并连接。
当你升级时,会删除任何已配置的打印机。然而,如果需要的话,你可以手动将它们添加回来。
### 其他改进措施
除了基本的变化之外,你还会发现更新的图形驱动、升级的 Linux 内核等等。其中一些包括:
* [Linux 内核 5.11][6]
* NVIDIA 驱动程序 460.91.03
* 支持 8GB 版树莓派 4B
* 一些默认的应用程序,如 Rythmbox以 Flatpak 软件包的方式安装
你还会注意到,作为升级的一部分,移除了一些功能。关于全部细节,你可以参考 [官方发布说明][7]。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/endless-os-4-0-lts/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/endless-os-4-app-grid.png?w=1200&ssl=1
[2]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/release-notes-4.0-switch-user-menu.png?w=328&ssl=1
[3]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/release-notes-4.0-switch-user-lock-screen.png?w=188&ssl=1
[4]: https://unsplash.com/photos/WeYamle9fDM
[5]: https://en.wikipedia.org/wiki/Internet_Printing_Protocol
[6]: https://news.itsfoss.com/linux-kernel-5-11-release/
[7]: https://support.endlessos.org/en/endless-os/release-notes/4-0

View File

@ -0,0 +1,326 @@
[#]: subject: "Tips for formatting when printing to console from C++"
[#]: via: "https://opensource.com/article/21/11/c-stdcout-cheat-sheet"
[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14027-1.html"
C++ 控制台格式化打印技巧
======
> 下次当你为控制台输出的格式而苦恼时,请参考这篇文章及其速查表。
![](https://img.linux.net.cn/data/attachment/album/202111/28/100548utbax4o4ttwcgyjz.jpg)
我写文章主要是为了给自己写文档。我在编程时非常健忘,所以我经常会写下有用的代码片段、特殊的特性,以及我使用的编程语言中的常见错误。这篇文章完全切合我最初的想法,因为它涵盖了从 C++ 控制台格式化打印时的常见用例。
像往常一样,这篇文章带有大量的例子。除非另有说明,代码片段中显示的所有类型和类都是 `std` 命名空间的一部分。所以当你阅读这段代码时,你必须在类型和类的前面加上`using namespace std;`。当然,该示例代码也可以在 [GitHub][3] 上找到。
### 面向对象的流
如果你曾经用过 C++ 编程,你肯定使用过 [cout][4]。当你包含 `<iostream>` 时,[ostream][5] 类型的 `cout` 对象就进入了作用域。这篇文章的重点是 `cout`,它可以让你打印到控制台,但这里描述的一般格式化对所有 [ostream][5] 类型的流对象都有效。`ostream` 对象是 `basic_ostream` 的一个实例,其模板参数为 `char` 类型。头文件 `<iosfwd>``<iostream>` 的包含层次结构的一部分,包含了常见类型的前向声明。
`basic_ostream` 继承于 `basic_ios`,该类型又继承于 `ios_base`。在 [cppreference.com][6] 上你可以找到一个显示不同类之间关系的类图。
`ios_base` 类是所有 I/O 流类的基类。`basic_ios` 类是一个模板类,它对常见的字符类型进行了<ruby>模板特化<rt>specialization</rt></ruby>,称为 `ios`。因此,当你在标准 I/O 的上下文中读到 `ios` 时,它是 `basic_ios``char` 类型的模板特化。
### 格式化流
一般来说,基于 `ostream` 的流有三种格式化的方法。
1. 使用 `ios_base` 提供的格式标志。
2. 在头文件 `<omanip>``<ios>` 中定义的流修改函数。
3. 通过调用 `<<` 操作符的 [特定重载][7]。
所有这些方法都有其优点和缺点,通常取决于使用哪种方法的情况。下面显示的例子混合使用所有这些方法。
#### 右对齐
默认情况下,`cout` 占用的空间与要打印的数据所需的空间一样大。为了使这种右对齐的输出生效,你必须定义一个行允许占用的最大宽度。我使用格式标志来达到这个目的。
右对齐输出的标志和宽度调整只适用于其后的行。
```
cout.setf(ios::right, ios::adjustfield);
cout.width(50);
cout << "This text is right justified" << endl;
cout << "This text is left justified again" << endl;
```
在上面的代码中,我使用 `setf` 配置了右对齐的输出。我建议你将位掩码 `ios::adjustfield` 应用于 `setf`,这将使位掩码指定的所有标志在实际的 `ios::right` 标志被设置之前被重置,以防止发生组合碰撞。
#### 填充空白
当使用右对齐输出时,默认情况下,空的地方会用空白字符填充。你可以通过使用 `setfill` 指定填充字符来改变它:
```
cout << right << setfill('.') << setw(30) << 500 << " pcs" << endl;
cout << right << setfill('.') << setw(30) << 3000 << " pcs" << endl;
cout << right << setfill('.') << setw(30) << 24500 << " pcs" << endl;
```
代码输出如下:
```
...........................500 pcs
..........................3000 pcs
.........................24500 pcs
```
#### 组合 
想象一下,你的 C++ 程序记录了你的储藏室库存。不时地,你想打印一份当前库存的清单。要做到这一点,你可以使用以下格式。
下面的代码是左对齐和右对齐输出的组合,使用点作为填充字符,可以得到一个漂亮的列表:
```
cout << left << setfill('.') << setw(20) << "Flour" << right << setfill('.') << setw(20) << 0.7 << " kg" << endl;
cout << left << setfill('.') << setw(20) << "Honey" << right << setfill('.') << setw(20) << 2 << " Glasses" << endl;
cout << left << setfill('.') << setw(20) << "Noodles" << right << setfill('.') << setw(20) << 800 << " g" << endl;
cout << left << setfill('.') << setw(20) << "Beer" << right << setfill('.') << setw(20) << 20 << " Bottles" << endl;
```
输出:
```
Flour...............................0.70 kg
Honey..................................2 Glasses
Noodles..............................800 g
Beer..................................20 Bottles
```
### 打印数值
当然,基于流的输出也能让你输出各种变量类型。
#### 布尔型
`boolalpha` 开关可以让你把布尔型的二进制解释转换为字符串:
```
Flour...............................0.70 kg
Honey..................................2 Glasses
Noodles..............................800 g
Beer..................................20 Bottles
```
以上几行产生的输出结果如下:
```
Boolean output without using boolalpha: 1 / 0
Boolean output using boolalpha: true / false
```
#### 地址
如果一个整数的值应该被看作是一个地址,那么只需要把它投到 `void*` 就可以了,以便调用正确的重载。下面是一个例子:
```
cout << "Boolean output without using boolalpha: " << true << " / " << false << endl;
cout << "Boolean output using boolalpha: " << boolalpha << true << " / " << false << endl;
```
该代码产生了以下输出:
```
Treat as unsigned long: 43981
Treat as address: 0000ABCD
```
该代码打印出了具有正确长度的地址。一个 32 位的可执行文件产生了上述输出。
#### 整数
打印整数是很简单的。为了演示,我使用 `setf``setiosflags` 来指定数字的基数。应用流修改器 `hex`/`oct` 也有同样的效果。
```
int myInt = 123;
cout << "Decimal: " << myInt << endl;
cout.setf(ios::hex, ios::basefield);
cout << "Hexadecimal: " << myInt << endl;
cout << "Octal: " << resetiosflags(ios::basefield) << setiosflags(ios::oct) << myInt << endl;
```
**注意:** 默认情况下,没有指示所使用的基数,但你可以使用 `showbase` 添加一个。
```
Decimal: 123
Hexadecimal: 7b
Octal: 173
```
#### 用零填充
```
0000003
0000035
0000357
0003579
```
你可以通过指定宽度和填充字符得到类似上述的输出:
```
cout << setfill('0') << setw(7) << 3 << endl;
cout << setfill('0') << setw(7) << 35 << endl;
cout << setfill('0') << setw(7) << 357 << endl;
cout << setfill('0') << setw(7) << 3579 << endl;
```
#### 浮点值
如果我想打印浮点数值,我可以选择“固定”和“科学”格式。此外,我还可以指定精度:
```
double myFloat = 1234.123456789012345;
int defaultPrecision = cout.precision(); // == 2
cout << "Default precision: " << myFloat << endl;
cout.precision(4);
cout << "Modified precision: " << myFloat << endl;
cout.setf(ios::scientific, ios::floatfield);
cout << "Modified precision & scientific format: " << myFloat << endl;
/* back to default */
cout.precision(defaultPrecision);
cout.setf(ios::fixed, ios::floatfield);
cout << "Default precision & fixed format: " << myFloat << endl;
```
上面的代码产生以下输出:
```
Default precision: 1234.12
Modified precision: 1234.1235
Modified precision & scientific format: 1.2341e+03
Default precision & fixed format: 1234.12
```
#### 时间和金钱
通过 `put_money`,你可以用正确的、与当地有关的格式来打印货币单位。这需要你的控制台能够输出 UTF-8 字符集。请注意,变量 `specialOffering` 以美分为单位存储货币价值。
```
long double specialOffering = 9995;
cout.imbue(locale("en_US.UTF-8"));
cout << showbase << put_money(specialOffering) << endl;
cout.imbue(locale("de_DE.UTF-8"));
cout << showbase << put_money(specialOffering) << endl;
cout.imbue(locale("ru_RU.UTF-8"));
cout << showbase << put_money(specialOffering) << endl;
```
`ios``imbue` 方法让你指定一个地区。通过命令 `locale -a`,你可以得到你系统中所有可用的地区标识符的列表。 
```
$99.95
99,950€
99,950₽
```
(不知道出于什么原因,在我的系统上,它打印的欧元和卢布有三个小数位,对我来说看起来很奇怪,但这也许是官方的格式。)
同样的原则也适用于时间输出。函数 `put_time` 可以让你以相应的地区格式打印时间。此外,你可以指定时间对象的哪些部分被打印出来。
```
time_t now = time(nullptr);
tm localtm = *localtime(&now);
cout.imbue(locale("en_US.UTF-8"));
cout << "en_US : " << put_time(&localtm, "%c") << endl;
cout.imbue(locale("de_DE.UTF-8"));
cout << "de_DE : " << put_time(&localtm, "%c") << endl;
cout.imbue(locale("ru_RU.UTF-8"));
cout << "ru_RU : " << put_time(&localtm, "%c") << endl;
```
格式指定符 `%c` 会打印一个标准的日期和时间字符串:
```
en_US : Tue 02 Nov 2021 07:36:36 AM CET
de_DE : Di 02 Nov 2021 07:36:36 CET
ru_RU : Вт 02 ноя 2021 07:36:36
```
### 创建自定义的流修改器
你也可以创建你自己的流。下面的代码在应用于 `ostream` 对象时插入了一个预定义的字符串:
```
ostream& myManipulator(ostream& os) {
string myStr = ">>>Here I am<<<";
os << myStr;
return os;
}
```
**另一个例子:** 如果你有重要的事情要说,就像互联网上的大多数人一样,你可以使用下面的代码在你的信息后面根据重要程度插入感叹号。重要程度被作为一个参数传递:
```
struct T_Importance {
int levelOfSignificance;
};
T_Importance importance(int lvl){
T_Importance x = {.levelOfSignificance = lvl };
return x;
}
ostream& operator<<(ostream& __os, T_Importance t){
for(int i = 0; i < t.levelOfSignificance; ++i){
__os.put('!');
}
return __os;
}
```
这两个修饰符现在都可以简单地传递给 `cout`
```
cout << "My custom manipulator: " << myManipulator << endl;
cout << "I have something important to say" << importance(5) << endl;
```
产生以下输出:
```
My custom manipulator: >>>Here I am<<<
I have something important to say!!!!!
```
### 结语
下次你再纠结于控制台输出格式时,我希望你记得这篇文章及其 [速查表][2]。
在 C++ 应用程序中,`cout` 是 [printf][8] 的新邻居。虽然使用 `printf` 仍然有效,但我可能总是喜欢使用 `cout`。特别是与定义在 `<ios>` 中的修改函数相结合,会产生漂亮的、可读的代码。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/c-stdcout-cheat-sheet
作者:[Stephan Avenwedde][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/hansic99
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_2.png?itok=JPlR5aCA (Woman sitting in front of her computer)
[2]: https://opensource.com/downloads/cout-cheat-sheet
[3]: https://github.com/hANSIc99/cpp_output_formatting
[4]: https://en.cppreference.com/w/cpp/io/cout
[5]: https://en.cppreference.com/w/cpp/io/basic_ostream
[6]: https://en.cppreference.com/w/cpp/io
[7]: https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt
[8]: https://opensource.com/article/20/8/printf

View File

@ -0,0 +1,245 @@
[#]: subject: "Anyone can compile open source code in these three simple steps"
[#]: via: "https://opensource.com/article/21/11/compiling-code"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14033-1.html"
任何人都可以通过这三个简单的步骤编译开源代码
======
> 你不需要知道如何写或读代码就可以编译它。
![](https://img.linux.net.cn/data/attachment/album/202111/30/133708wgq4rkecgbre93e1.jpg)
安装软件的方法有很多,但开源让你有了一个其他地方所没有的选择:你可以自己编译代码。编译源代码的经典三步流程是:
```
$ ./configure
$ make
$ sudo make install
```
由于有了这些命令,你可能会惊讶地发现,你不需要知道如何写代码,甚至不需要读代码就可以编译它。
### 安装用来构建软件的命令
由于这是你第一次进行编译,所以有一个一次性的准备步骤,即安装用于构建软件的命令。具体来说,你需要一个编译器。编译器(比如 GCC 或 LLVM可以将像这样的源代码
```
#include <iostream>
using namespace std;
int main() {
cout << "hello world";
}
```
变成 _机器语言_,即 CPU 用来处理信息的指令。你可以看一下机器代码,但它对你来说没有任何意义(除非你是一个 CPU
你可以使用你的软件包管理器安装 GNU 编译器集合GCC和 LLVM 编译器,以及其他在 Fedora、CentOS、Mageia 和类似发行版上进行编译的基本命令:
```
$ sudo dnf install @development clang
```
在 Debian、Elementary、Mint 和类似发行版上命令如下:
```
$ sudo apt install build-essential clang
```
在你的系统设置好后,有几项你每次编译软件时都要重复进行的任务:
1. 下载源代码
2. 展开源代码的存档文件
3. 编译
你已经有了所有你需要的命令,所以现在你需要一些软件来编译。
### 1、下载源代码
获得一个应用程序的源代码和获得任何可下载的软件一样。你得去一个网站或一个代码管理网站,如 GitLab、SourceForge 或 GitHub。 通常情况下开源软件既有正在进行的工作<ruby>当前<rt>current</rt></ruby>”或 “<ruby>每夜<rt>nightly</rt></ruby>”)的构建版本,也有打包的“<ruby>稳定<rt>stable</rt></ruby>”发布版本。在可能的情况下,使用稳定版本,除非你有理由相信,或者对代码有足够的了解,能够在出现故障时修复。术语“稳定版”表明这些代码经过了测试,而且该应用程序的程序员对代码有足够的信心,从而将其打包成 `.zip``.tar` 归档,给了它一个官方编号,有时还有一个发布名称,然后提供给一般的非程序员公众下载。
在这个练习中,我使用 [Angband][2]一个开源的GPLv2ASCII 地牢猎手游戏。这是一个简单的应用程序,其复杂程度刚好可以说明你在自己编译软件时需要考虑的问题。
从 [网站][2] 上下载其源代码。
### 2、展开源代码的存档文件
源代码通常是以存档的形式交付的,因为源代码通常由多个文件组成的。在与之交互之前,你必须先解压,不管它是一个 tarball、一个 zip 文件、一个 7z 文件,还是其他完全不同的东西。 
```
$ tar --extract --file Angband-x.y.z.tar.gz
```
一旦解压缩后,就把目录切换到解压缩的目录,然后看一看。通常在目录的顶层有一个 `README` 文件。这个文件,一般会包含你需要做什么来编译代码的指导。`README` 通常包含关于代码的这些重要方面的信息:
* **语言**代码使用的是什么语言例如C、C++、Rust、Python
* **依赖性**:你需要在你的系统上安装其他什么的软件,以便这个应用程序能够构建和运行。
* **说明**:你构建该软件所需要采取的明确步骤。偶尔,他们会在一个专门的文件中包含这些信息,这个文件被直观地称为 `INSTALL`
如果 `README` 文件中不包含这些信息,可以考虑向开发者提交一份错误报告。你不是唯一需要介绍一下源代码的人。不管他们有多么丰富的经验,每个人都会对从未见过的源代码感到陌生,而文档是很重要的!
Angband 的维护者给出了在线说明的链接描述了如何编译代码。这份文件还描述了你需要安装哪些其他软件尽管它并没有确切地说明这一点。该网站说“有几个不同的可选构建的前端GCU、SDL、SDL2 和 X11你可以使用诸如 `--enable-sdl``--disable-x11` 的参数配置。”这可能对你来说看起来像天书,但你经常编译代码后就会习惯。无论你是否理解 X11 或 SDL2 是什么它们都是你经过几个月定期编译代码后经常看到的要求。你会对大多数软件需要其他软件库的想法感到适应因为它们建立在其他技术之上。不过在这种情况下Angband 非常灵活,无论是否有这些可选的依赖,都可以进行编译,所以现在,你可以假装没有额外的依赖。
### 3、编译代码
构建代码的典型步骤是:
```
$ ./configure
$ make
$ sudo make install
```
这些是使用 [Autotools][3] 构建的项目的步骤,该框架是为了规范源代码的交付方式而创建的。然而,还有一些其他框架(如 [Cmake][4]),它们需要不同的步骤。当项目没有遵循 Autotools 或 Cmake 框架时,它们往往会在 `README` 文件中提醒你。
### 配置 
Angband 使用 Autotools所以现在是编译代码的时候了!
在 Angband 目录中,首先,运行随源码一起提供的配置脚本:
```
$ ./configure
```
这一步将扫描你的系统,找到 Angband 正确构建所需的依赖性。有些依赖是非常基本的,没有它们你的电脑就无法运行,而有些则是专门的。在这一过程结束时,该脚本会给你一份关于它所发现的东西的报告:
```
[...]
configure: creating ./config.status
config.status: creating mk/buildsys.mk
config.status: creating mk/extra.mk
config.status: creating src/autoconf.h
Configuration:
Install path: /usr/local
binary path: /usr/local/games
config path: /usr/local/etc/angband/
lib path: /usr/local/share/angband/
doc path: /usr/local/share/doc/angband/
var path: (not used)
(save and score files in ~/.angband/Angband/)
-- Frontends --
- Curses Yes
- X11 Yes
- SDL2 Disabled
- SDL Disabled
- Windows Disabled
- Test No
- Stats No
- Spoilers Yes
- SDL2 sound Disabled
- SDL sound Disabled
```
有些输出可能对你有意义,有些可能没有。无论如何,你可能注意到 SDL2 和 SDL 被标记为 “Disabled”Test 和 Stats 都被标记为 “None”。虽然这些信息是负面的但这并不一定是一件坏事。从本质上讲这就是**警告**和**错误**之间的区别。如果配置脚本遇到了会阻止它构建代码的东西,它就会用一个错误来提醒你。
如果你想稍微优化一下你的构建,你可以选择解决这些负面信息。通过搜索 Angband 文档,你可能会确定 Test 和 Stats 实际上并不是你感兴趣的(它们是 Angband 专用于开发者的选项)。然而,通过在线研究,你可能会发现 SDL2 将是一个很好的功能。 
要解决编译代码时的依赖问题,你需要安装缺少的组件和该缺少的组件的 _开发库_。换句话说Angband 需要 SDL2 来播放声音,但它需要 `SDL2-devel`(在 Debian 系统上称为 `libsdl2-dev`)来构建。用你的软件包管理器安装这两个组件:
```
$ sudo dnf install sdl2 sdl2-devel
```
再试一下配置脚本:
```
$ ./configure --enable-sdl2
[...]
Configuration:
[...]
- Curses Yes
- X11 Yes
- SDL2 Yes
- SDL Disabled
- Windows Disabled
- Test No
- Stats No
- Spoilers Yes
- SDL sound Disabled
- SDL2 sound Yes
```
### 制作(编译)
一旦一切配置完毕,运行 `make` 命令:
```
$ make
```
这通常需要一段时间,但它提供了很多视觉反馈,所以你会知道代码正在被编译。
### 安装
最后一步是安装你刚刚编译的代码。安装代码并没有什么神奇之处。所做的就是复制很多文件到非常具体的目录中。无论你是从源代码编译还是运行花哨的图形安装向导,都是如此。由于这些代码会被复制到系统级目录,你必须有 root管理权限这是由 `sudo` 命令授予的。
```
$ sudo make install
```
### 运行该应用程序
一旦应用程序被安装,你就可以运行它。根据 Angband 文档,启动游戏的命令是 `angband`,所以可以试试:
```
$ angband
```
![Compile code lead image][6]
### 编译代码
无论是在我的 Slackware 台式电脑上,还是在我的 CentOS 笔记本电脑上,我都会使用 NetBSD 的 [pkgsrc][8] 系统编译我自己的大部分应用程序。我发现,通过自己编译软件,我可以对应用程序中包含的功能、如何配置、使用的库版本等有自己的想法。这很有意义,它帮助我跟上了新的版本,而且因为我有时会在这个过程中发现错误,它帮助我参与了很多不同的开源项目。
你很少会只有编译软件的一种方式可选,大多数开源项目同时提供源代码(这就是为什么它被称为“开源”)和可安装包。是否从源代码编译是你自己的选择,也许是因为你想要最新版本中还没有的新功能,或者只是因为你喜欢自己编译代码。
### 家庭作业
Angband 可以使用 Autotools 或 Cmake所以如果你想体验另一种构建代码的方式可以试试这个
```
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
```
你也可以尝试用 LLVM 编译器而不是 GNU 编译器集合GCC进行编译。现在我把这个问题留给你自己去研究提示尝试设置 `CC` [环境变量][9])。
一旦你完成了对 Angband 的源代码和至少几个地牢的探索(你已经赢得了一些休息时间),可以看看其他一些代码库。很多人都会使用 Autotools 或 Cmake而其他人可能会使用不同的东西。看看你能构建的成果
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/compiling-code
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/code_development_programming.png?itok=M_QDcgz5 (Developing code.)
[2]: https://rephial.org/
[3]: https://opensource.com/article/19/7/introduction-gnu-autotools
[4]: https://opensource.com/article/21/5/cmake
[5]: https://opensource.com/file/514986
[6]: https://opensource.com/sites/default/files/uploads/angband.jpg (Compile code lead image)
[7]: https://creativecommons.org/licenses/by-sa/4.0/
[8]: https://opensource.com/article/19/11/pkgsrc-netbsd-linux
[9]: https://opensource.com/article/19/8/what-are-environment-variables

View File

@ -0,0 +1,284 @@
[#]: subject: "5 De-Googled Android-based Operating Systems to Free Your Smartphone from Google and other Big Tech"
[#]: via: "https://itsfoss.com/android-distributions-roms/"
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14047-1.html"
5 个去谷歌化的安卓操作系统
======
![](https://img.linux.net.cn/data/attachment/album/202112/04/143224d46wb5bqsw7xbsw7.jpg)
> 让你的智能手机摆脱谷歌和其他科技巨头。
随着谷歌和 Facebook 等广告巨头对你的个人和私密设备(如手机和平板电脑)的监控不断增加,现在是时候处理这个问题了。
最有效的方法之一是安装注重隐私/安全的安卓 ROM。
你可能想知道,为什么要在你的手机上安装一个与预装系统不同的、基于安卓的操作系统。让我给你几个理由:
* 你的 [手机制造商与 Facebook 等实体合作,在你的手机上预装了各种应用程序][1],仅仅是卸载这些应用程序可能无法摆脱它们(当操作系统有新的更新时,它们往往会被重新安装)。
* 通常,安卓设备制造商会提供三到四年的更新。其中大部分仅限于各种奇怪的安全补丁,以及一些安卓系统的升级。使用定制 ROM你可以通过接收更多更新来延长设备的使用寿命。
* 由于这些现成的安卓 ROM 除了必要的东西外没有捆绑任何东西,你的手机不会太臃肿,反应更敏捷。
* 较少的预装软件也意味着在后台运行的服务较少,从而可提升性能并延长电池使用时间。
* 大量的定制选项。
* 容易回滚更新(因为以前的版本在 ROM 的网站上可以找到)。
> **警告**
>
> 如果你决定在实际设备上使用这些操作系统之一,请小心。在你的设备上刷入任何第三方 ROM 将使其保修失效,如果操作不当,甚至可能使你的设备失去作用。安装定制的 ROM 也需要一定的专业知识,即使如此,你也可能遇到问题,特别是如果你选择的操作系统不支持该设备。对你的设备造成的任何损害,我们概不负责。
参考了上述重要信息之后,如果你仍想进行实验,我们建议你始终在备用设备上进行尝试。
除此之外,你还应该记住以下几点:
- 安装自定义的安卓 ROM 可以增强开箱即用的安全性。但是,你必须确保自己采取了必要的措施。
- 你手机的所有硬件功能可能在定制 ROM 上不工作。
- 解锁引导加载程序是一个必要步骤,但这样做可能会带来安全问题。
这个列表特别关注基于安卓的发行版和定制 ROM。我们有一个另外单独的 [开源移动操作系统][2] 列表,包括 Ubuntu Touch 和 PureOS 等选项。
注:名单排名不分先后。你应该选择更多地了解所提到的选项,并决定什么最适合你。
### 1、LineageOS
![Lineage OS 用户界面的几张截图][3]
[LineageOS][4] 可以说是最受欢迎的安卓 ROM 之一,它是非常流行的([但自 2016 年以来已经消亡][5]])的 CyanogenMod 的一个复刻。由于 LineageOS 很流行,你可能会发现很多设备支持该操作系统。
换句话说,与其他定制安卓 ROM 相比,你可以更快地获得对新设备的支持,以及对各种旧设备的支持。
如果你有的话LineageOS 甚至支持你的 Nvidia Shield 电视机和 Jetson Nano[用于 AI 和深度学习项目的最佳单板计算机][6] 之一)。
- [获取 LineageOS][7]
#### 优点
* 优秀的官方和第三方文档
* 支持设备的及时更新
* LineageOS 非常紧跟 AOSP 树(适用于想要最原始安卓体验的人)
* 与原厂固件相比,“预装软件”更少。
#### 缺点
* LineageOS 项目是一个社区项目,所以并非你手机上所有的硬件功能都能开箱即用。
* 没有提供很多开箱即用的安全/隐私功能。
### 2、CalyxOS
![CalyxOS 的主页以及他们的用户界面一瞥][8]
[CalyOS][9] 是一个相当有趣的、基于 [安卓开源项目AOSP][10] 的安卓操作系统。CalyxOS 没有提供谷歌移动服务GMS而是让用户自己去想办法可以刷入谷歌应用但是它提供了 [microG][11],你可以选择启用/禁用它,从而完全控制你的手机。
CalyxOS 得到了 [Calyx Institute][12] 的支持,这是一个非营利组织,旨在促进个人权利,如言论自由、隐私权等。
它内置了一些注重隐私的应用程序,如 Signal、Tor 浏览器等。尽管对 CalyxOS 的支持仅限于 Pixel 手机,但在大多数情况下,它为用户提供了大量开箱即用的隐私功能,让用户具有领先优势。
- [获取 CalyxOS][13]
#### 优点
* 使用 [microG][11]。
* 带有 [F-Droid][14] 和 [Aurora 商店][15] 而不是谷歌应用商店。
* Datura 防火墙允许你阻止每个应用程序的互联网访问。
* 使用 [Mozilla 定位服务][16] 而不是谷歌的定位服务。
* 每月一次的在线安全更新。
* 经过验证的启动程序,以提高安全性。
* 开箱即用的以安全为中心的应用程序和功能。
#### 缺点
* 只适用于 Pixel 手机([但这背后有一个很好的理由][17])。
### 3、GrapheneOS
![GrapheneOS 安装在 Pixel 设备上的照片][18]
[GrapheneOS][19] 是一个基于安卓的 ROM专注于安全和隐私。虽然人们可能会争论说他们的努力更多的是为了提高安全性但这样做也有利于你的隐私。
如果你想安装带有开箱即用的、特殊安全调整过的定制 ROMGrapheneOS 应该是一个不错的选择。
与其他一些定制 ROM 不同,它没有包括启用/禁用 microG 的功能,这恰好为依赖于 Google Play 服务的应用程序提供了更好的支持。但是GrapheneOS 可以 [对 Google Play 服务进行沙箱处理][20],这应该可以让你使某些功能正常工作。但是,截至目前,它仍然是实验性的。
- [获取 GrapheneOS][21]
#### 优点
* 提供比 AOSP 更强大、加固过的应用程序沙盒。
* 使用自己 [加固过的 malloc][22](具有加固了安全性的内存分配器)。
* Linux 内核经过了加固,安全性更高。
* 提供及时的安全更新。
* 具备全盘加密功能(对移动设备来说非常重要)。
* 不包括任何谷歌应用程序或谷歌服务。
#### 缺点
* 有限的硬件支持;仅适用于谷歌 Pixels。
* 以安全为中心的调整可能不会转化为对新手友好的用户体验。
### 4、/e/OS
![看一下 /e/OS 中的应用启动器,以及对 /e/OS 的应用商店评级的概述][23]
你可能认为 [/e/OS][24] 只不过是又一个安卓操作系统,这 _一定程度上_ 是对的。先别急着否定这个安卓 ROM。它远超于任何现成的基于安卓的操作系统。
最大的特点是 [eFoundation][25](在 /e/OS 背后的基金会)为你提供了一个免费的 [ecould 账户][26](有 1GB 的存储空间),而不需要使用谷歌账户。
像任何尊重隐私的安卓 ROM 一样,/e/OS 将每一个与谷歌相关的模块或应用都替换成了自由软件替代品。
旁注eFoundation 也销售预装了 /e/OS 的手机。[请看这里][27]。
- [获取 /e/OS][28]
#### 优点
* /e/OS 上的应用程序商店根据需要的权限以及对隐私的友好程度来对应用程序进行评级。
* 提供了一个 [ecloud 账户][26](带有 @e.email 后缀;免费级提供 1GB作为同步账户。
* 配备了 [microG][11] 框架。
* 谷歌 DNS 服务器8.8.8.8 和 8.8.4.4)被替换为 [Quad9][29] 的 DNS 服务器。
* DuckDuckGo 是替代谷歌的默认搜索引擎。
* 使用由 [Mozilla][16] 提供的位置服务。
#### 缺点
* 设备兼容性非常有限。
* 从安卓系统推出新功能需要一段时间。
### 5、CopperheadOS
![CopperheadOS 网站上关于手机安全和隐私的标语][30]
> **警告**
>
> 这不是一个开源项目。列在这里只是为感兴趣的用户提供的附加选项。
[CopperheadOS][31] 是另一个有趣的安卓 ROM。它是由一个只有两个人的团队开发的。
与其他选项不同CopperheadOS 不是开源项目,你可能无法在你的手机上使用它。
它面向企业部署。因此,如果你想为你的员工购买安卓设备并调整安全性,那么这值得考虑。
- [获得 CopperheadOS][32]
#### 优点
* 与其他安卓 ROM 文档相比 [更优良的文档][33]。
* CopperheadOS 在 AOSP 之前就有许多面向安全的功能。
* 使用 Cloudfare DNS1.1.1.1 和 1.0.0.1)而不是谷歌的 DNS8.8.8.8 和 8.8.4.4)。
* 包括一个用于控制每个应用程序权限的互联网防火墙。
* 使用开源应用程序,而不是过时的 AOSP 应用程序(日历、短信、画廊等)。
* 包括 [F-Droid][14] 和 [Aurora 应用商店][15]。
#### 缺点
* [在主要的开发者出走之后CopperheadOS 的安全性存在质疑][34] 。
* 仅适用于预装 CopperheadOS 的手机。
* 没有迹象表明 SafetyNet 会在 CopperheadOS 上工作。
### 荣誉提名LineageOS for microG
![LineageOS for microG 中包含的应用程序列表][35]
[LineageOS for microG][36] 项目是官方 LineageOS 项目的一个复刻,默认包含 [microG][11] 和谷歌应用。这个项目负责确保 microG 在你的手机上完美运行(这对初学者来说可能是一个复杂的过程)。
- [获取 LineageOS for MicroG][37]
#### 优点
* 提供了 GMS 的 microG 实现,没有任何不便之处。
* 提供 [F-Droid][14] 作为默认的应用商店。
* 提供每周/每月一次的在线更新。
* 可以选择使用由 [Mozilla][16] 或 [Nominatim][38] 提供的定位服务。
#### 缺点
* 启用签名欺骗以启用 microG 支持,从安全角度来看,可能是一个攻击方向。
* 尽管这个 ROM 是基于 LineageOS 的,但在写这篇文章时,并不是所有的 LineageOS 设备都支持。
* 包括谷歌应用程序,而不是提供开源的替代品。
* 无法确认谷歌的 SafetyNet 是否工作。
### 附加信息
你可能想知道为什么一些有趣的基于安卓的 ROMCalyxOS、GrapheneOS 等)只限于支持谷歌的手机。这不是很讽刺吗?
嗯,这是因为大多数手机都支持解锁引导器,但只有谷歌 Pixels 支持再次锁定引导器。当你为关注隐私和/或安全的人群开发基于安卓的 ROM 时,这是一个考虑因素。如果启动器被解锁,它就是一个你尚未修补的攻击方向。
另一个具有讽刺意味的原因是,只有谷歌才及时向公众提供他们手机的设备树和内核源代码。如果没有设备树和内核源代码,你就无法为该手机开发 ROM。
无论你选择何种 ROM我都会推荐以下 FOSS 应用程序。它们将被证明是对你的隐私友好应用程序工具包的一个很好的补充。
* [Signal Messenger][39]
* [K-9 邮件][40]
* [DuckDuckGo 浏览器][41]
* [Tor 浏览器][42]。
* [F-Droid][14]
* [Aurora 商店][15]
* [OpenKeychain][43]
### 总结
在我看来,如果你有一部谷歌 Pixel 手机,我建议你尝试一下 CalyxOS、GrapheneOS 或 CopperheadOS。这些安卓 ROM 有出色的功能,可以帮助你的手机远离谷歌的监视,同时还可以让你的手机(可以说是)更加安全。
如果你没有谷歌 Pixel你仍然可以尝试一下 LineageOS for MicroG。这是一项很好的社区贡献在不侵犯你的隐私的情况下它把谷歌的专有功能带给大众。
如果你的手机不被上述任何一个操作系统支持,那么 LineageOS 就是你的朋友。由于它对手机的支持广泛,毫无疑问,无论是官方还是非官方,你的手机都可以得到支持。
--------------------------------------------------------------------------------
via: https://itsfoss.com/android-distributions-roms/
作者:[Pratham Patel][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/pratham/
[b]: https://github.com/lujun9972
[1]: https://9to5google.com/2020/08/05/oneplus-phones-will-ship-with-facebook-services-that-cant-be-removed/
[2]: https://itsfoss.com/open-source-alternatives-android/
[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/01_lineageos.webp?w=1200&ssl=1
[4]: https://lineageos.org/
[5]: https://www.androidauthority.com/cyanogenmod-lineageos-654810/
[6]: https://itsfoss.com/best-sbc-for-ai/
[7]: https://lineageos.org/
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/02_calyx-1.webp?w=1264&ssl=1
[9]: https://calyxos.org/
[10]: https://www.androidauthority.com/aosp-explained-1093505/
[11]: https://microg.org/
[12]: https://calyxinstitute.org/projects/calyx-os
[13]: https://calyxos.org/install/
[14]: https://www.f-droid.org/en/about/
[15]: https://auroraoss.com/
[16]: https://location.services.mozilla.com/
[17]: https://calyxos.org/docs/guide/device-support/#requirements-for-supporting-a-new-device
[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/03_graphene.webp?resize=800%2C600&ssl=1
[19]: https://grapheneos.org/
[20]: https://twitter.com/grapheneos/status/1445572173389725709
[21]: https://grapheneos.org/
[22]: https://github.com/GrapheneOS/hardened_malloc
[23]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/06_eos-1.webp?w=600&ssl=1
[24]: https://e.foundation/e-os/
[25]: https://e.foundation/
[26]: https://e.foundation/ecloud/
[27]: https://esolutions.shop/
[28]: https://e.foundation/e-os/
[29]: https://www.quad9.net/
[30]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/04_copperheados.webp?resize=1536%2C806&ssl=1
[31]: https://copperhead.co/
[32]: https://copperhead.co/android/docs/install/
[33]: https://copperhead.co/android/docs/
[34]: https://twitter.com/DanielMicay/status/1068641901157511168
[35]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/05_losmicrog.webp?resize=864%2C1536&ssl=1
[36]: https://lineage.microg.org/
[37]: https://download.lineage.microg.org/
[38]: https://nominatim.org/
[39]: https://signal.org/
[40]: https://k9mail.app/
[41]: https://duckduckgo.com/app
[42]: https://www.torproject.org/
[43]: https://www.openkeychain.org/

View File

@ -0,0 +1,106 @@
[#]: subject: "4 open source ways to create holiday greetings"
[#]: via: "https://opensource.com/article/21/11/open-source-holiday-greetings"
[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14038-1.html"
创建节日问候的 4 种开源方式
======
> 开源工具和资源为任何节日提供了创造性的可能性。
![](https://img.linux.net.cn/data/attachment/album/202112/01/113447fkk2du1udmdu2n0d.jpg)
节日再次来临,今年我决定用 [开源方式][2] 来庆祝。就像一个特别有名的假期忙人一样,我有一个长长的节日任务清单(我打算再三检查):制作一张贺卡(带地址的明信片)寄给家人和朋友,用合适的节日歌曲制作照片蒙太奇或视频,并装饰我的虚拟办公室。有很多开源的应用和资源使我的工作更容易。以下是我使用的东西。
### Inkscape 和剪贴画
我最喜欢的资源之一是 [FreeSVG.org][3](前身是 Openclipart.org。这里很容易找到你喜欢的节日包括光明节、圣诞节、新年等等。这些剪贴画都是由像你我这样的用户贡献的并且是 CC0 版权,所以你甚至不需要提供署名。当然,在可能的情况下,我还是会注明出处,以确保 FreeSVG 和它的艺术家们获得知名度。
下面是 FreeSVG 的一些剪贴画的例子:
![一幅棕色玉米棒的漫画,上面有红色的苹果、橙色的南瓜和棕色的坚果溢出来。][4]
openclipart.com [CC0 1.0][5]
使用 [Inkscape][6] 的文本路径工具,我在图片上添加了我自己的文字,我把它用在卡片上。如果再做些工作,我还可以把这个图形用在一些定制的杯子或餐垫上。
![一幅棕色玉米棒的漫画,上面有红色的苹果、橙色的南瓜和棕色的坚果溢出来,上面有一个拱门形的“我们感谢”的字样。][7]
Don Watkins [CC BY-SA 4.0][8]
### 文字处理
[LibreOffice][9] Writer 可以用来制作贺卡和海报,然后在你的家中使用或分发给你的朋友和家人。使用 LibreOffice Calc 创建一个关于你的家人和朋友的数据库,然后利用这一资源,用邮件合并功能简化制作邮件标签的过程。
### 创作共用的图片和图形
[search.creativecommons.org][10] 上也有艺术品。注意许可证类型:对任何需要署名的东西给予适当的致谢。这张图片([“Thanksgiving Dealies”][11])来自创作共用图片搜索。它的作者是 [Martin Cathrae][12],并在 [CC BY-SA 2.0][13] 下授权,因此它可以在相同的许可证下被改编、重复使用和分享。
![用南瓜壳做花架,摆放红色和黄色小花束的烛光中心装饰。][14]
[Martin Cathrae][12] [CC BY-SA 2.0][13]
我拿着这张相同的图片,用 [GIMP][15] 在上面添加了一些我自己的文字。你可以用 Inkscape 来做同样的事情。
![用南瓜壳作为花架,放置红色和黄色的小花束的烛光中心作品,图片左上方有“节日快乐”字样。][16]
Don Watkins[CC BY-SA 4.0][17]
<ruby>创作共用<rt>Creative Commons</rt></ruby>提供了大量的图片,在你的下一次 [视频会议][18] 期间,可以这些图片作为一个节日背景。
### 视频和实时流媒体
你也可以把这些图片与你自己的一些图片结合起来,用 [OpenShot][19] 视频编辑器创建一个简短的视频剪辑。你可以通过使用 Audacity 录制一个单独的音轨,轻松添加旁白。可以在 Audacity 中添加声音效果,保存到文件中,并导入到 OpenShot 视频编辑器的配乐中。寻找 [合法的背景音乐][20] 来添加到你的视频中。
使用 [开源广播软件OBS][21] 来直播你的假期聚会。使用 OBS 可以轻松地为你的朋友和家人呈现引人入胜的假期节目,或者你可以将节目另存为 Matroska 或 MP4 文件以供日后观看。
### 阅读材料
<ruby>古腾堡计划<rt>Project Gutenberg</rt></ruby>是一个用来分享免费节日阅读材料的很好的来源。[狄更斯的《圣诞颂歌》][22] 就是这样一种资源,它可以在网上轻松阅读,也可以下载成 EPUB 或你最喜欢的电子阅读器的格式。你还可以找到免版税的阅读材料,如 [Librivox][23] 的“光的盛宴”,采用 MP3 格式,因此可以下载并在你喜欢的浏览器或媒体播放器中播放。
### 节日乐趣
节日里最重要的一点是,它们是与朋友和家人一起的放松和欢乐时光。如果你有家人对计算机感到好奇,花点时间与他们分享一些你最喜欢的开源资源。
(题图来自:[creativecommons.org](https://search.creativecommons.org/photos/388c71f3-0419-4e4b-a6a7-2db7e1a8bbc8)作者Sunny M5
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/open-source-holiday-greetings
作者:[Don Watkins][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/don-watkins
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/painting_computer_screen_art_design_creative.png?itok=LVAeQx3_ (Painting art on a computer screen)
[2]: https://opensource.com/open-source-way
[3]: http://freesvg.org
[4]: https://opensource.com/sites/default/files/uploads/cornucopia.png (cornucopia)
[5]: https://creativecommons.org/publicdomain/zero/1.0/
[6]: https://opensource.com/article/18/1/inkscape-absolute-beginners
[7]: https://opensource.com/sites/default/files/uploads/cornucopia_with_text.png (We Give Thanks)
[8]: https://creativecommons.org/licenses/by-sa/4.0/
[9]: https://opensource.com/article/21/9/libreoffice-tips
[10]: https://search.creativecommons.org/
[11]: https://www.flickr.com/photos/34067077@N00/4014605524
[12]: https://www.flickr.com/photos/34067077@N00
[13]: https://creativecommons.org/licenses/by-sa/2.0/?ref=ccsearch&atype=rich
[14]: https://opensource.com/sites/default/files/uploads/fall_table.png (Holiday table)
[15]: https://opensource.com/content/cheat-sheet-gimp
[16]: https://opensource.com/sites/default/files/uploads/fall_table_with_text.png (Happy Holidays)
[17]: https://creativecommons.org/licenses/by/4.0/
[18]: https://opensource.com/article/20/5/open-source-video-conferencing
[19]: https://opensource.com/article/17/5/using-openshot-video-editor
[20]: https://opensource.com/article/20/1/what-creative-commons
[21]: https://opensource.com/article/21/4/obs-youtube
[22]: https://www.gutenberg.org/ebooks/19337
[23]: https://librivox.org/the-feast-of-lights-by-emma-lazarus/

View File

@ -0,0 +1,164 @@
[#]: subject: "Google Chrome vs Chromium: Whats the difference?"
[#]: via: "https://itsfoss.com/chrome-vs-chromium/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14041-1.html"
Chrome 与 Chromium 有何不同?
======
![](https://img.linux.net.cn/data/attachment/album/202112/02/100436xj1u51jhrjuwhjfw.jpg)
Chrome 浏览器是最流行的网页浏览器。无论你是否喜欢使用它Chrome 都能提供良好的用户体验。
尽管它可以在 Linux 上使用,但它不是一个开源的网页浏览器。
而且,如果你喜欢 Chrome 的外观和感觉但又想使用一个开源的解决方案Chromium 是一个选择。
但是Chrome 浏览器不是基于 Chromium 的吗?(是的。)而且,它也是由谷歌开发的吧?(也是的。)
那么Chrome 和 Chromium 之间有什么区别呢?在这篇文章中,我们将深入了解它们,并介绍一些对它们进行比较的基准。
### 用户界面
![Chrom 和 Chromium 在 Zorin OS 16 上并排运行][1]
Chrome 和 Chromium 的用户界面非常相似,除了一些细微的区别。
例如,我注意到 Chrome 的系统标题栏和边框一开始就被默认禁用了。相比之下在我测试的时候Chromium 默认启用了它们。
你还可以注意到在 Chrome 的地址栏里有一个分享按钮,而在 Chromium 上却没有。
这并不是大的视觉差异,而只是根据现有的功能进行了一系列的 UI 调整。所以,你可以预期它们的用户体验类似,而在底层有所不同。如果你在意用户界面,这两款浏览器应该都很适合你。
### 开源与专有代码
![][2]
Chromium 是完全开源的,这意味着任何人都可以(根据许可证)按照自己的意愿使用和修改代码。你可以在其 [GitHub 镜像][3] 上查看其源代码。
这就是为什么你会发现有许多 [基于 Chromium 的浏览器][4],如 Brave、Vivaldi 和 Edge。
有这么多的选择,你可以选择你最喜欢的那个。
另一方面Chrome 在 Chromium 中加入了刚刚专有的代码,使 Chrome 成为了专有浏览器。例如,人们可以复刻 Brave但不能复刻谷歌 Chrome而限制使用其中的谷歌特定代码/工作。
对于终端用户来说,开源与否并不影响用户体验。然而,对于一个开源项目,你可以得到更多的透明度,而不需要依靠公司来沟通他们打算改变什么,以及他们在浏览器上做什么。
所以是的如果你不喜欢专有代码Chromium 就是你的选择。
### 功能差异
谷歌不希望其竞争对手拥有类似的能力,这并不奇怪。因此,谷歌一直在 [锁定 Chromium 并在其中禁用了很多谷歌特有的能力][5]。
因此,你会发现这两个浏览器的能力有一些差异。
不仅如此,由于 Chromium 是开源的,你可能会注意到一些不便之处。别担心,我将在下面指出其中的关键差异。
Chrome | Chromium
---|---
有签到和同步功能 | 无签到和同步功能
支持媒体编解码器以使用 Netflix | 需要手动安装编解码器
对于初学者来说,在 Chromium 中不再能使用由谷歌支持的登录/同步功能。它曾经支持签到和同步,直到谷歌决定将其从开源项目中删除。
接下来Chrome 内置了对高质量媒体编解码器的支持。因此,你可以加载来自 Netflix 的内容。但是,在 Chromium 中没有这些。
![Netflix 在 Chromium 中默认不能工作][6]
从技术上讲Chromium 并不包括 _Widevine 内容解密模块_。因此,你需要手动安装所需的编解码器,以使大部分东西都能工作。
不过,你在这两个浏览器上你都可以播放苹果音乐等平台的内容,应该不会有任何问题。
### 安装及最新更新
你可以在几乎任何平台上安装 Chrome。Linux 也不例外。只需前往其官方网站,抓取 DEB/RPM 包即可快速安装。安装后的应用程序也会自动更新。
![][7]
有几个平台上安装 Chromium 并不那么简单。曾经有一段时间,一些 Linux 发行版将 Chromium 作为默认浏览器。那是过去的日子了。
即使在 Windows 上Chromium 的安装和更新也不像 Chrome 那样顺利。
在 Linux 上,安装 Chromium 则完全是另一回事。像 Ubuntu 这样的流行发行版把它打包成一个沙盒式的 Snap 应用程序。
即使你试图用终端安装它,希望能从 APT 库中得到它,但它又是一个 Snap。
![][8]
使用 Snap 软件包你可能会面临与你的自定义桌面主题相融合的问题。Snap 应用程序的启动时间也会更长。
![][9]
而且,如果你构建它并手动安装 Chromium你就得手动更新它。
### 隐私角度
Chrome 对大多数用户来说应该足够好了。但是如果你担心你的隐私Chrome 会追踪使用信息和一些与浏览有关的信息。
最近,[谷歌推出了一个新的 Chrome API][10],可以让网站检测到你什么时候闲着,什么时候不闲着。虽然这是一个巨大的隐私问题,但并不是唯一的问题。
谷歌不断试验新的追踪用户的方法;例如,正如 [EFF][11] 所指出的那样,谷歌的 FLoC 实验并不受欢迎。
从技术上讲,他们声称他们想增强用户的隐私,而同时仍然提供广告机会。然而,就目前而言,这是一个不可能实现的任务。
相比之下Chromium 在隐私方面的表现应该要好得多。然而,如果你讨厌你的浏览器中有任何与谷歌有关的东西,即使是最轻微的遥测,你应该试试 [UnGoogled Chromium][12]。
它是 Chromium但没有任何谷歌组件。
### 浏览器性能
有各种各样的浏览器基准,可以让你了解到一个浏览器处理任务的能力如何。
考虑到网站上的高级网站应用和资源密集型的 JavaScript如果一个网页浏览器的性能不好当你打开许多活动的标签时你的体验就会明显很糟糕。
[JetStream 2][13] 和 [Speedometer 2][14] 是两个流行的基准,可以给你处理各种任务和响应能力的性能估计。
除此之外,我还试用了 [Basemark Web 3.0][15],它也是测试各种指标并给你一个综合分数。
![][16]
总体而言Chrome 在此获胜。
但是,值得注意的是,在运行浏览器时,你的系统资源和后台进程会对性能产生不同的影响。因此,也要考虑到这一点。
### 你应该选择哪个?
之所以存在对浏览器的选择是因为用户喜欢不同的东西。Chrome 提供了一个良好的功能集和用户体验。如果你以某种形式使用由谷歌提供的服务Chrome 是一个简单的推荐。
然而如果你担心隐私和专有代码Chromium 或 UnGoogled Chromium或任何其他基于 Chromium 的浏览器,如 Brave可以是一个不错的选择。
这就是我在比较 Chrome 和 Chromium 时的全部看法。我愿意接受你的意见。评论区都是你的。
--------------------------------------------------------------------------------
via: https://itsfoss.com/chrome-vs-chromium/
作者:[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://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/chrome-chromium-ui.png?resize=800%2C627&ssl=1
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/open-source-proprietary.png?resize=800%2C450&ssl=1
[3]: https://github.com/chromium/chromium
[4]: https://news.itsfoss.com/chrome-like-browsers-2021/
[5]: https://news.itsfoss.com/is-google-locking-down-chrome/
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/chromium-netflix.png?resize=800%2C541&ssl=1
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/google-chrome-version.png?resize=800%2C549&ssl=1
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/install-chromium.png?resize=800%2C440&ssl=1
[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/chromium-version.png?resize=800%2C539&ssl=1
[10]: https://www.forbes.com/sites/zakdoffman/2021/10/02/stop-using-google-chrome-on-windows-10-android-and-apple-iphones-ipads-and-macs/
[11]: https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea
[12]: https://github.com/Eloston/ungoogled-chromium
[13]: https://webkit.org/blog/8685/introducing-the-jetstream-2-benchmark-suite/
[14]: https://webkit.org/blog/8063/speedometer-2-0-a-benchmark-for-modern-web-app-responsiveness/
[15]: https://web.basemark.com/
[16]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/chrome-chromium-benchmarks-1.png?resize=800%2C450&ssl=1

View File

@ -0,0 +1,168 @@
[#]: subject: "13 Best Dark GTK Themes for Your Linux Desktop"
[#]: via: "https://itsfoss.com/dark-gtk-themes/"
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14050-1.html"
13 个 Linux 桌面的最佳深色 GTK 主题
======
![](https://img.linux.net.cn/data/attachment/album/202112/05/110404dh7d463771gn6833.jpg)
在任何的 Linux 发行版上,你都有近乎无限的定制选项,在视觉上最明显的区别就是定制的主题。让我们来看看一些具有深色模式的 GTK 主题。
是的,我们在过去曾介绍过 [最佳 Linux 主题][1],但这一篇是专门介绍深色主题的。曾几何时,只有程序员和系统管理员喜欢深色模式,但现在已经不是这样了。深色模式也受到了普通人的喜爱,因此我为像你这样的 Linux 桌面用户编制了这个深色主题列表。
如果你不熟悉设置桌面环境的主题,你可以看看我们的 [在 GNOME 中安装主题][2] 指南。
本文仅供参考,这并不是一个排名列表。
### 1、McMojave
![The stock image of how McMojave looks \(courtesy of the theme developer\)][3]
[McMojave][4] 是一个 GTK 主题,其灵感来自于 macOS 风格的用户界面。显然这个主题是提供给深色模式的,但它也有浅色模式,嗯……,提供给任何可能想要它的人。
McMojave GTK 主题显然支持基于 GTK 的桌面环境,如 Pantheon、Gnome、XFCE、Mate 等。但是,这个主题也 [适用于 KDE 用户][5]。
为了让你的桌面环境看起来与 macOS 非常相似,你还可以安装 [McMojave 圆形图标主题][6] 以获得更完整的体验。
### 2、Yaru
![A screenshot of the default Yaru theme on Ubuntu 21.10][7]
[Yaru][8] 是 [Ubuntu][9] 的默认 GTKGNOME主题。该主题的深灰色点缀着橙色及少许黑色让我觉得很有吸引力。
现在,你可以让 Arch Linux 上的 GNOME 看起来像 Ubuntu。( ͡° ͜ʖ ͡°)
### 3、Pop
![A look at how the Pop GTK theme looks on Pop!_OS][10]
[Pop GTK 主题][11] 是由 [System76][12] 为他们基于 Ubuntu 的 Linux 发行版 [Pop!_OS][13] 创建的主题。
如果你喜欢 System76 对 GNOME 在深色模式下的表现,你可以在你选择的 Linux 发行版中试用 [Pop GTK 主题][11]。
如果想获得完整的 Pop-esque 的外观和感觉,在安装主题的同时,还可以安装 System76 提供的 [Pop 图标][14]。
### 4、Nordic
![Nordic GTK theme preview][15]
你是一个喜欢简单的、有点扁平化的设计方法以及一些灰色或更多灰色的人吗?不妨看看这个基于 [北欧风调色板][16] 的主题。
[Nordic][17] GTK 主题给你的正是这样的感觉。一个基于北欧风调色板的 GTK 主题,设计简单。
### 5、Ultimate-Maia
![Stock screenshot of the Ultimate-Maia theme][18]
[Ultimate-Maia][20] 是一个基于 [Google 的 Material 主题][19] 设计理念的 GTK 主题。这个主题有一个精细而独特的外观和感觉,特别是有各种不同的强调色可供选择。
### 6、Graphite
![A look at Graphites flat, rounded and gray characteristic][21]
[Graphite][22] 是一个 GTK 主题,它为你的桌面环境(尤其是 GNOME提供了一个完全独特的外观同时保持了你的桌面环境的独特性就像以前一样。这是一个值得一看的东西。
### 7、Qogir
![Customization options available with Qogir GTK theme][23]
[Qogir][24] 是一个采用了扁平化设计的 GTK 主题。Qogir 主题为你提供的不仅仅是标题按钮、复选框、单选按钮、开关等自定义选项。
### 8、Layan
![Lyan A very rounded-corners GTK theme][25]
你会很高兴知道,这个列表中还包括 [Layan][26],这是一个强调平滑、圆角的 GTK 主题带有气泡的美感。Layan 主题也继承了 [Google 的 Material 设计][19] 指导方针的设计理念。
### 9、Juno
![][27]
[Juno][28] 是我发现的另一个最好的对深色模式友好的 GTK 主题之一。有些人可能喜欢它的漆黑本质,有些人可能不喜欢。但是,如果你有一台 OLED 笔记本或电脑显示屏Juno 感觉是为你而生的。
### 10、Ant 主题
![Ant themes available options for customization of window appearance][29]
[Ant][30] 是一个 GTK 主题,它从 macOS 的布局和用户界面元素中获得了一些灵感在我看来Ant 主题很好地实现了这一切。
### 11、Equilux
![][31]
[Equilux][32] 主题给你一个漂亮的主题,带有精细的深色模式。这个主题能很好地与 GNOME 及 GNOME 的复刻融合在一起。我不会太多地描述这个主题,它简单而优雅。
### 12、Orchis-dark
![Orchis Dark][33]
[Orchis Orchis-dark][34] 是超酷的 Orchis 主题的深色变体。它为桌面提供了带有圆角和流畅界面的 iOS/macOS 触感。只需看一眼,你就可以立即猜到。
### 13、Elementary X
![A look at Elementary X GTK theme with the settings panel open][35]
[Elementary X][37] 是基于 [elementary OS][36] 团队为定制 GNOME 外观而开发的 GTK 主题。顺便说一句elementary OS 是一个基于 Ubuntu 的 Linux 发行版。
### 总结
这篇文章中列出的主题都是非常漂亮的,而且你的选择也不限于这里列出的那些。还有其他成千上万的主题。
如果你喜欢一个主题,请在下面评论。如果你正在使用一个我没有提到的主题,也请留下评论。
--------------------------------------------------------------------------------
via: https://itsfoss.com/dark-gtk-themes/
作者:[Pratham Patel][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/pratham/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/best-gtk-themes/
[2]: https://itsfoss.com/install-switch-themes-gnome-shell/
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/01_mojave.webp?resize=800%2C450&ssl=1
[4]: https://github.com/vinceliuice/Mojave-gtk-theme
[5]: https://github.com/vinceliuice/McMojave-kde
[6]: https://github.com/vinceliuice/McMojave-circle
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/02_yaru.webp?resize=800%2C403&ssl=1
[8]: https://github.com/ubuntu/yaru
[9]: https://ubuntu.com/
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/pop_gtk.webp?resize=800%2C450&ssl=1
[11]: https://github.com/pop-os/gtk-theme
[12]: https://system76.com/
[13]: https://pop.system76.com/
[14]: https://github.com/pop-os/icon-theme
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/nordic.webp?resize=800%2C450&ssl=1
[16]: https://github.com/arcticicestudio/nord
[17]: https://github.com/EliverLara/Nordic
[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/05_ultimate_maia.webp?resize=800%2C450&ssl=1
[19]: https://material.io/
[20]: https://github.com/bolimage/Ultimate-Maia
[21]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/06_graphite.webp?resize=800%2C450&ssl=1
[22]: https://github.com/vinceliuice/Graphite-gtk-theme
[23]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/Qogir.webp?resize=800%2C500&ssl=1
[24]: https://github.com/vinceliuice/Qogir-theme
[25]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/07_layan.webp?resize=800%2C450&ssl=1
[26]: https://github.com/vinceliuice/Layan-gtk-theme
[27]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/08_juno.webp?resize=732%2C487&ssl=1
[28]: https://github.com/EliverLara/Juno
[29]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/ant.webp?resize=800%2C533&ssl=1
[30]: https://github.com/EliverLara/Ant
[31]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/equilux.webp?resize=800%2C450&ssl=1
[32]: https://github.com/ddnexus/equilux-theme
[33]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/orchis-dark.webp?resize=800%2C463&ssl=1
[34]: https://www.gnome-look.org/s/Gnome/p/1357889
[35]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/elementary.webp?resize=800%2C450&ssl=1
[36]: https://elementary.io/
[37]: https://github.com/surajmandalcell/elementary-x

View File

@ -0,0 +1,105 @@
[#]: subject: "Install apps on Linux with Flatpak"
[#]: via: "https://opensource.com/article/21/11/install-flatpak-linux"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14045-1.html"
用 Flatpak 在 Linux 上安装应用
======
> Flatpak 简化了 Linux 上应用的安装。
![](https://img.linux.net.cn/data/attachment/album/202112/03/133555dxzijlzjp0ibglk0.jpg)
计算机应用由许多小文件组成,它们被链接在一起以执行一系列的任务。因为它们以“应用”的形式出现,在菜单或桌面上有彩色的图标,我们大多数人认为应用是一个单一的、几乎是有形的东西。在某种程度上,这样想是令人欣慰的,因为它们感觉是可以管理的。如果一个应用实际上是散落在你的计算机上的数百个小库和资源文件的组合,那么应用在哪里?撇开存在危机不谈,当一个应用需要一个版本的库,而另一个应用需要一个不同的版本时,会发生什么?
在云计算的世界里,[容器][2] 正变得越来越流行,因为它们为应用提供了隔离和整合。你可以在一个“容器”中安装一个应用需要的所有文件。这样一来,它的库就不会受到其他应用的影响,它所占用的内存也不会将数据泄露到另一个内存空间。所有的东西最后都感觉非常像一个单一的、几乎是 _有形的_ 东西。在 Linux 桌面上,提供了类似的技术的 Flatpak是一个跨发行版、无守护进程、去中心化的应用交付系统。
### 在 Linux 上安装 Flatpak
你的 Linux 系统可能已经安装了 Flatpak。如果没有你可以从你的包管理器中安装它
在 Fedora、Mageia 和类似的发行版上:
```
$ sudo dnf install flatpak
```
在 Elementary、Mint 和其他基于 Debian 的发行版上:
```
$ sudo apt install flatpak
```
在 Slackware 上Flatpak 可以从 [SlackBuilds.org][3] 获得。
### 选择一个 Flatpak 仓库
你可以通过在你的发行版的软件中心(如 GNOME 上的“软件”)添加一个 Flatpak 仓库,将一个应用安装为 Flatpak。Flatpak 是一个去中心化的系统,意味着任何开发软件的人都可以托管他们自己的仓库。尽管如此,在实践中,[Flathub][4] 是 Flatpak 格式的最大和最流行的应用集合。要将 Flathub 添加到 GNOME “<ruby>软件<rt>Software</rt></ruby>” 或者 KDE “<ruby>发现<rt>Discover</rt></ruby>” 中,请浏览 https://flatpak.org/setup ,找到适合你的发行版的说明,从第二步开始,或者直接下载 [Flatpakrepo][5] 文件。根据你的网络情况,你的软件中心可能需要几分钟的时间来与 Flathub或另一个 Flatpak 仓库同步。Flathub 有很多软件,但你的系统上有多少个 Flatpak 仓库是没有限制的,所以如果你发现一个有你想尝试的软件,不要害怕添加一个新的仓库。
![Software Repositories][6]
如果你喜欢在终端工作,你可以用 `flatpak` 命令直接添加到仓库:
```
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```
### 安装一个应用
只要你在软件中心添加了 Flatpak 仓库,你就可以像往常一样浏览应用了。
![GNOME Software][8]
点击一个看起来很吸引人的应用,阅读它,当你准备好时点击**安装**按钮。
### 在终端中安装 flatpak
如果你喜欢在终端工作,你可以把 Flatpak 当作一个专门的包管理器。你可以使用 `flatpak search` 命令来搜索一个应用程序:
```
$ flatpak search paint
Name Description Application ID
CorePaint A simple painting tool org.cubocore.CorePaint
Pinta Edit images and paint digitally com.github.PintaProject.Pinta
Glimpse Create images and edit photographs org.glimpse_editor.Glimpse
Tux Paint A drawing program for children org.tuxpaint.Tuxpaint
Krita Digital Painting, Creative Freedom org.kde.krita
```
`flatpak install` 安装:
```
$ flatpak install krita
```
安装后,应用就会与系统中的所有其他应用一起出现在你的应用菜单或活动页上。
### 应用变得简单
Flatpak 通过消除版本冲突,可以使用户轻松安装应用。他们通过在自托管的平台或像 Flathub 这样的公共平台上只需要针对一种软件包格式提供应用,使分发软件变得简单。我在 Fedora Silverblue、CentOS 和 Slackware 上使用 Flatpak我无法想象现在没有它的生活。在你的下一个应用安装中试试 Flatpak 吧!
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/install-flatpak-linux
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [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/flatpak-lead-image_0.png?itok=URbhdsDQ (Flatpak)
[2]: https://opensource.com/article/21/7/linux-podman
[3]: http://slackbuilds.org
[4]: http://flathub.org
[5]: https://flathub.org/repo/flathub.flatpakrepo
[6]: https://opensource.com/sites/default/files/uploads/repo.jpg (Software Repositories)
[7]: https://creativecommons.org/licenses/by-sa/4.0/
[8]: https://opensource.com/sites/default/files/uploads/software.jpg (GNOME Software)

View File

@ -0,0 +1,159 @@
[#]: subject: "How to Install Apache Cassandra on Ubuntu and Other Linux"
[#]: via: "https://itsfoss.com/apache-cassandra-ubuntu/"
[#]: author: "Marco Carmona https://itsfoss.com/author/marco/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14048-1.html"
如何在 Ubuntu 和其他 Linux 上安装 Apache Cassandra
======
![](https://img.linux.net.cn/data/attachment/album/202112/04/151942ihpizylzk0i3pt0i.jpg)
[Apache Cassandra][1] 是一个自由开源的 NoSQL 数据库管理系统,用于在许多服务器上操作大量信息,提供无单点故障的高可用性。
我不打算讨论 NoSQL 数据库的细节。我将会告诉你如何在基于 Ubuntu 的 Linux 发行版上安装 Apache Cassandra。
请注意,这更多是为了实践。
### 在 Linux 上安装 Apache Cassandra
有多种方法可以在 Ubuntu 和其他 Linux 发行版上安装 Cassandra
* 使用 Apache 的官方 deb 仓库安装:适合并推荐给基于 Debian 和 Ubuntu 的发行版。如果有更新的版本,会得到自动更新。
* 使用 Docker 安装:适用于所有 Linux 发行版。
* 从 tarball 安装:适用于所有 Linux但不会自动更新到新版本。
这仅仅是为了练习和体验 Apache Cassandra。如果你要在一个项目中使用它和其他服务你必须遵循该服务的完整配置和设置指南。
我将展示前两种方法。
#### 方法 1使用官方仓库在 Ubuntu 和 Debian 上安装 Cassandra
在你安装和使用 Cassandra 之前,你需要在你的系统上安装 Python 和 Java。你可能需要 [在 Ubuntu 上安装 Java][2],但 Python 通常是预装的。
你可以用下面这行来检查先决条件:
```
java -version && python --version
```
所有先决条件都安装好了?那就好。让我们来安装 Cassandra。这里的方法与 [在 Ubuntu 中添加任意外部仓库][3] 相同。
首先,将 Apache Cassandra 仓库添加到你的源列表中。下面这个添加最新的主要版本在写这篇文章的时候4.0 系列。
```
echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
```
![Add Apache Cassandra repository][4]
现在,下载并将 Apache Cassandra 仓库的密钥添加到服务器上的受信任密钥列表中。这样,你的系统就会信任来自你在上一步添加的仓库的软件包。
你应该确保 `apt` 可以通过 https 使用。
```
sudo apt install apt-transport-https
```
然后添加密钥:
```
wget https://www.apache.org/dist/cassandra/KEYS && sudo apt-key add KEYS
```
![Add Apache Cassandra repository key][5]
你已经添加了仓库。更新本地缓存,使你的系统知道这个新仓库的存在。
```
sudo apt update
```
最后,用以下命令安装 Cassandra
```
sudo apt install cassandra
```
![Installing Apache Cassandra on Ubuntu][6]
安装完成后Cassandra 服务会自动开始运行。如果你想的话,你仍然可以验证它:
```
sudo systemctl status cassandra.service
```
![Check if Cassandra is running][7]
你可以输入 `cqlsh` 连接到数据库。输入 `exit` 来退出这个 shell。
![Entering cqlsh][8]
这是非常基本和默认的设置。你可能需要根据你的需求来配置它。请查看 [官方文档中的配置部分][9]。
#### 方法 2使用 Docker 安装 Apache Cassandra
这个方法适用于任何 Linux 发行版,只要你打算在 Docker 设置中使用它。
当然,你需要在你的系统上安装 Docker 来实现这个方法。这是这个方法的前提条件,我让你处理这件事情。
如果你有 Docker使用下面的命令来拉取 Apache Cassandra 的 Docker 镜像:
```
sudo docker pull cassandra:latest
```
![Pulling Apache Cassandra docker image][10]
完成后,你可以用 [docker run 命令][11]来启动 Cassandra像这样
```
sudo docker run --name cass_cluster cassandra:latest
```
![Running Cassandra in a container][12]
**注意:** `--name` 选项指的是创建的 Cassandra 集群的名称。
要与之前启动的 Cassandra 节点交互,你需要初始化 CQL shell你可以用 Docker `exec` 命令这样做:
```
sudo docker exec -it cass_cluster cqlsh
```
![Access the cqlsh running in Docker.][13]
**恭喜!** 现在你至少知道了在你的系统中安装 Apache Cassandra 的两种不同方法。
请记住,这篇文章只是一个介绍。如果你有兴趣了解更多关于 Apache Cassandra 的信息,请阅读 [文档][14],在那里你可以找到更多关于这个神奇的 NoSQL 数据库管理系统的信息。如果这篇文章对你有帮助,请阅读并分享它。下一篇见。
--------------------------------------------------------------------------------
via: https://itsfoss.com/apache-cassandra-ubuntu/
作者:[Marco Carmona][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/marco/
[b]: https://github.com/lujun9972
[1]: https://cassandra.apache.org/_/index.html
[2]: https://itsfoss.com/install-java-ubuntu/
[3]: https://itsfoss.com/adding-external-repositories-ubuntu/
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/Installing_the_Debian_packages_step_1.png?resize=800%2C123&ssl=1
[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/Installing_the_Debian_packages_step_2.png?resize=800%2C490&ssl=1
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/Installing_the_Debian_packages_step_3.png?resize=800%2C490&ssl=1
[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/verify-cassandra.png?resize=800%2C443&ssl=1
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/Installing_the_Debian_packages_step_4.png?resize=800%2C164&ssl=1
[9]: https://cassandra.apache.org/doc/latest/cassandra/getting_started/configuring.html
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/Using_Docker_images_step_2.png?resize=800%2C275&ssl=1
[11]: https://linuxhandbook.com/docker-run-vs-start-vs-create/
[12]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/Using_Docker_images_step_3.png?resize=800%2C490&ssl=1
[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/Using_Docker_images_step_4.png?resize=800%2C225&ssl=1
[14]: https://cassandra.apache.org/doc/latest/index.html

View File

@ -0,0 +1,97 @@
[#]: subject: "Its Time More Linux Distros and DEs Become Linus-Proof"
[#]: via: "https://news.itsfoss.com/more-linux-distros-become-linus-proof/"
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
[#]: collector: "lujun9972"
[#]: translator: "imgradeone"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14053-1.html"
是时候让更多 Linux 发行版和桌面环境接受“老莱暴捶”了
======
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/linus-pop-os-lessons.png?w=1200&ssl=1)
> “老莱” 体验 Pop!_OS 的视频狠狠地给桌面 Linux 社区上了一课。
过去的几周,整个 Linux 桌面社区沸腾了。
知名 YouTube 创作者 LinusLCTT 译注:不是 Linux 之父 Torvalds是 Linus Tech Tips 的 Sebastian“老莱”是国内网友对 Linus Sebastian 的称呼。)决定在一个月内挑战日常使用 Linux 桌面。“老莱” 想了解 Linux 是否已经达到了对用户友好的程度,乃至于“技术呆”级别的用户都能轻松上手。他的专注点同样也放在了 [Linux 游戏][1] 上,毕竟电脑游戏确实也是 “老莱” 关注的一个领域。
这是一个有趣的概念Linux 社区的许多人也十分兴奋,毕竟它向更广泛的技术受众群体免费宣传了桌面 Linux 平台。
唯一美中不足的是,这个日用 Linux 挑战 [从一开始就出了大乱子][2]。LCTT 译注:[B 站][11] 中也有相应的中文字幕视频。)
### “老莱”的 Pop!_OS 名(或者说是“冥”)场面
LCTT 译注:原文标题使用的是 (in)famous同时指代“著名”和“臭名昭著”此处的“冥场面”偏向事件悲剧性。
“老莱” 决定 [安装 Pop!_OS][3],因为 Pop!\_OS 经常在社区中作为适合游戏的主流发行版出现。接下来,他尝试在软件中心(即 Pop!\_Shop安装 Steam但软件中心未能成功安装 Steam。
![Sebastian 安装 Steam 时遇到了问题][4]
既然没能通过图形化方式安装,他接下来做了其他所有 Linux 用户都会做的事情。他打开了终端,运行了神奇的 `sudo apt-get install` 命令。
![Sebastian 换用命令行方式安装 Steam][5]
无论是图形化方式还是终端方式Pop!_OS 都显示了一条警告,提示用户正濒临卸载关键软件包的危险。
命令行方式清晰明了地警告“_**您的操作有潜在的危害性。若要继续请输入下面的短句“是按我说的做Yes, do as I say!)”**_。”
![忽略移除关键软件包的警告][6]
对于大部分 Linux 用户来说,到这一步就真的得停下来,深思熟虑了。输出的内容明确显示,接下来即将删除 `gdm3`、`pop-desktop` 和其他许多桌面环境要素。
但人们一般不会在意警告。于是 “老莱” 直接继续安装,最终就剩下了一个不能登录图形界面的损坏系统。
![意识到他的 Pop!_OS 彻底出乱子后的 Linus Sebastian不是 Torvalds][7]
### 给桌面 Linux 开发者的深刻教训
对于开发者来说,这里有两点教训值得注意:
* 安装 Steam 或任何其他常规软件时,不能导致关键的图形界面软件包被删除。
* 在一款常规的、主流的发行版中,用户不应该能删除关键软件包。
Pop!_OS 迅速修复了 Steam 的问题,并增加了防御机制以阻止删除关键的桌面要素。
> 出于某些原因i386 版的软件包不能在 Launchpad 上发布。Steam 是一个 i386 软件包,在尝试安装 Steam 时不得不将该软件包降级到 Ubuntu 版本以解决依赖问题,然后就删除了 Pop!_OS 的软件包。
>
> — Jeremy Soller (@jeremy_soller) [2021 年 10 月 26 日][8]
为避免此类事故Pop!\_OS 为 APT 包管理器制作了补丁。现在,用户无法在 Pop!\_OS 通过输入“**是按我说的做Yes, do as I say!**”来删除关键软件包了。相反用户将需要添加一个特殊文件来启用该功能如果某个人真的想把这些关键软件包删掉的话LCTT 译注APT 2.3.12 上游已经彻底禁用卸载关键软件包的功能。)
对于 Pop!\_OS 来说,这确实是一个好举措。但,这并不仅仅是 Pop!\_OS 单方面的教训。大多数 Linux 发行版都可能会遇到这种情况,并最终删除掉桌面环境和显示服务器。
KDE 已经注意到了这一点,并在即将发布的 Plasma 5.24 中 [添加了禁止卸载 Plasma 桌面的功能][9]。
![KDE Plasma 不允许用户卸载 Plasma 桌面][10]
许多人责怪 “老莱” 不顾清晰明确的警告,直接继续并走向灾难。但问题在于,许多用户真的不会在意 “警告” 这种东西,不管他们技术水平如何。人们只是觉得按 “Y” 或者其他东西就是程序正常的部分,也不会去多想。一些 Linux 用户之前已经踩过这种坑了,但未来可能还会有更多人重蹈覆辙。
这就是为什么添加故障保护措施才是明智之举。这是所有主流发行版都应该做的事。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/more-linux-distros-become-linus-proof/
作者:[Abhishek][a]
选题:[lujun9972][b]
译者:[imgradeone](https://github.com/imgradeone)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/root/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/linux-gaming-guide/
[2]: https://www.youtube.com/watch?v=0506yDSgU7M&t=788s
[3]: https://itsfoss.com/install-pop-os/
[4]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/pop-os-failed-steam-install.webp?w=1233&ssl=1
[5]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/pop-os-failed-steam-install-1.webp?w=1118&ssl=1
[6]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/pop-os-failed-steam-install-2.webp?w=1087&ssl=1
[7]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp?w=1232&ssl=1
[8]: https://twitter.com/jeremy_soller/status/1453008808314351628?ref_src=twsrc%5Etfw
[9]: https://linux.cn/article-14015-1.html
[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/cant-remove-plasma-1.png?w=1022&ssl=1
[11]: https://www.bilibili.com/video/BV1Fh411b7q3?t=769

View File

@ -0,0 +1,142 @@
[#]: subject: "Collaborate on a file using Linux diff and patch"
[#]: via: "https://opensource.com/article/21/11/linux-diff-patch"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14037-1.html"
使用 Linux 的 diff 和 patch 对文件进行协作
======
> 如果你曾经试图通过电子邮件或聊天来协作处理文件,并且发现自己试图描述需要修改的地方,那么你会喜欢 `diff``patch` 的。
![](https://img.linux.net.cn/data/attachment/album/202112/01/102607jmjbpu1jk1as61j1.jpg)
我编辑过很多文本文件。有时是代码。其他时候是角色扮演游戏RPG、编程书籍或一般信件的书面文字。有时候做一个修改而能让我的协作者把我的修改和他们原来写的东西进行比较就更好了。许多人默认使用办公套件如 [LibreOffice][2])的注释或更改跟踪功能。不过有时更简单的工具更有意义,为此,你可以看看像 `diff``patch` 这样的工具的编程历史,它们为跟踪和应用共享文件的变化提供了标准化的格式。
即使对于简单的文件,在同步两个文件时也有复杂性。一些项目被改变,另一些被保留,新的内容被添加,还有一些保持不变,但被移到文件的不同位置。如果接受所有的变化,并且用新文件替换旧文件,就很难复制变化。它也是整体不透明的。如果变化很多,就很难挑出到底发生了什么变化。
通过 `diff` 命令,你可以创建一个文件变化的记录,通过 `patch` 你可以在旧版本上“重放”这些变化,使其与新版本保持一致。
### 设置
假设你和我正在合作编写一个描述如何泡茶的文件。
到目前为止,文件 `tea.md` 包含原始的复制粘贴来的内容:
```
烧开水。
加热茶壶。
在茶壶中加入茶和水。
在茶壶上放置一个茶叶滤网。
浸泡 6 分钟。
将茶倒入杯中。
加入牛奶。
```
这似乎很合理,但总有一些优化可以做,所以你把文件发给我改进。为了澄清泡茶过程,我把文件复制为`tea-revision.md`,并进行编辑,最后是这样的:
```
在烤箱的抽屉中加热茶壶。
烧开水。
将茶叶放入茶叶滤网。
将滤网和水加入茶壶。
浸泡 6 分钟。用茶壶罩保温。
将茶倒入杯中。
可以选择加入温牛奶。
```
正如预期的那样,一些项目(“烧开水”和“将茶倒入杯中”)没有变化,而其他行(“加热茶壶”)则有增加。有些行是全新的,有些行是相同的,但顺序不同。
### 创建一个差异
`diff` 工具会显示两个文件之间的差异。有几种不同的方法来查看结果,但我认为最清楚的是 `—unified`(简写为 `-u`)视图,它显示哪些行被增加或减少了。以任何方式改变的行都被视为先减后增的行。默认情况下,`diff` 将其输出打印到终端。
`diff` 提供旧文件,然后是新文件:
```
$ diff --unified tea.md tea-revised.md 
--- tea.md      2021-11-13 10:26:25.082110219 +1300
+++ tea-revised.md      2021-11-13 10:26:32.049110664 +1300
@@ -1,7 +1,7 @@
+在烤箱的抽屉中加热茶壶。
烧开水。
-加热茶壶。
-在茶壶中加入茶和水。
-在茶壶上放置一个茶叶滤网。
-浸泡 6 分钟。
+将茶叶放入茶叶滤网。
+将滤网和水加入茶壶。
+浸泡 6 分钟。用茶壶罩保温。
 将茶倒入杯中。
-加入牛奶。
+可以选择加入温牛奶。
```
行首的加号(`+`)表示在旧文件中增加了一些内容。行首的减号(`-`)表示被删除或改变的行。
### 用 diff 创建一个补丁
补丁文件就是将 `diff —unified` 命令的输出放到一个文件中。你可以用标准的 Bash 重定向来做这件事:
```
$ diff -u tea.md tea-revised.md > tea.patch
```
该文件的内容与输出到终端的内容完全相同。我喜欢在 [Emacs][3] 中查看补丁文件,它对每一行进行颜色编码,取决于它是被添加还是被减去。
![Emacs中的补丁文件][4]
### 用补丁应用修改
一旦我有了补丁文件,我就可以把它发给你,让你审查,并且可以选择应用到你的旧文件中。你可以用 `patch` 命令来应用一个补丁。
```
$ patch tea.md tea.patch
```
增加了一些行,减少了一些行,最后,你得到了一个与我的版本相同的文件:
```
$ cat tea.md
在烤箱的抽屉中加热茶壶。
烧开水。
将茶叶放入茶叶滤网。
将滤网和水加入茶壶。
浸泡 6 分钟。用茶壶罩保温。
将茶倒入杯中。
可以选择加入温牛奶。
```
你可以给一个文件打多少次补丁,这是没有限制的。你可以对我的修改进行迭代,生成一个新的补丁,然后发给我审核。发送修改内容而不是结果,可以让每个贡献者审查修改的内容,决定他们要保留或删除的内容,并准确地记录过程。
### 安装
在 Linux 和 macOS 上,你已经有了 `diff``patch` 命令。在 Windows 上,你可以通过 [Cygwin][6] 获得 `diff``patch`,或者使用 Chocolatey 搜索 [diffutils][7] 和 [patch][8]。
如果你曾经试图通过电子邮件或聊天来协作处理文件,并且发现自己需要 _描述_ 需要修改的地方,那么你会喜欢 `diff``patch`。一个结构严谨的文件,如代码或以行为单位的 [Markdown][9],很容易进行差异比较、补丁和维护。 
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/11/linux-diff-patch
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_hands_team_collaboration.png?itok=u82QepPk (a checklist for a team)
[2]: https://opensource.com/article/21/9/libreoffice-tips
[3]: https://opensource.com/article/20/12/emacs
[4]: https://opensource.com/sites/default/files/uploads/emacs_0_1.jpg (A patch file in Emacs)
[5]: https://creativecommons.org/licenses/by-sa/4.0/
[6]: https://cygwin.com
[7]: https://community.chocolatey.org/packages/diffutils
[8]: https://community.chocolatey.org/packages/patch
[9]: https://opensource.com/article/19/9/introduction-markdown

View File

@ -0,0 +1,105 @@
[#]: subject: "System Monitoring Center is an Ideal Task Manager & Resource Monitor for Linux"
[#]: via: "https://itsfoss.com/system-monitoring-center/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14069-1.html"
系统监控中心:一个理想的 Linux 任务管理器和资源监视器
======
> “系统监控中心”是一个多合一的开源应用,不用使用多种工具就可以监控基本的系统资源情况。
![](https://img.linux.net.cn/data/attachment/album/202112/10/131211ng09sz76u2b7gbaw.jpg)
在 Linux 上以图形方式监控系统资源可能体验不是很好,这些与你的桌面环境相配套的系统监控工具可能细节有限。
例如GNOME 的系统监视器不显示 CPU 频率和温度。
此外Linux 的默认系统监控程序通常以简单为目标,而不是提供详细的信息。
<ruby>系统监控中心<rt>System Monitoring Center</rt></ruby>” 是一个有用的 GUI 工具,它提供了大量必要的信息。在这篇文章中,让我给你详细介绍一下它。
### 系统监控中心:显示基本系统统计信息的 Linux 应用
![][1]
系统监控中心是一个基于 GTK3 和 Python 3 的外观时尚的应用,它为你提供了你想要的所有资源使用数据。
在我的例子中,我想在使用系统监控工具时关注 CPU 的频率,但 GNOME 的系统监控工具提供不了帮助。所以,这个应用就非常有用了。
![][2]
该应用的用户体验良好,并提供了大量的信息和功能。让我重点介绍一下它的主要功能。
> 写这篇文章时,该应用程序仍处于测试阶段。因此,你可能会遇到一些错误。然而,我在简短的测试中没有注意到任何问题。
### 系统监控中心的功能
![][3]
首先,它可以让你查看 CPU、内存、磁盘、网络、GPU 和传感器的单独统计数据。
你可以在该工具中看到以下细节信息:
* 显示 CPU 状态,包括频率
* 能够显示平均使用率或每个核心的使用率
* 可以选择 CPU 频率和其他统计的精度
* 能够改变图表的颜色
* 按用户过滤系统进程并轻松管理它们
* 切换一个浮动的摘要小部件,以快速获得信息
* 显示磁盘使用信息和连接的驱动器
* 在同一个应用中显示详细的系统信息
* 控制启动服务和程序
* 能够控制状态更新的时间间隔
* 应用本身的系统资源使用率较低
* 适应系统主题
虽然它为每个标签(或组件)提供了大量的选项和自定义功能,但我希望它能在未来的更新中包括 RAM 频率等东西。
![][4]
然而,考虑到它可以同时取代磁盘使用分析器和 `neofetch` 等终端工具,其余的数据似乎非常有用。
![][5]
请注意,如果你有多个机箱风扇、独立的排风扇或 AIO你可能无法得到风扇的数据。温度也可能有或没有但 CPU 的温度应该是可见的。
### 在 Linux 中安装系统监控中心
你可以使用可用的 deb 包在任何基于 Ubuntu 的发行版上轻松安装它。
不幸的是,没有可用的其他软件包,只有一个 ZIP 文件,你得手动构建和编译才能安装它。你在 ZIP 文件中可以找到一个脚本来构建 RPM 包。
deb 文件可以通过 SourceForge 获得。你点击下面的按钮来下载它,或者在他们的 [GitLab 页面][6] 找到。
- [下载系统监控中心][7]
### 总结
系统监控中心是一个开源应用,可以让用户详细了解他们的系统资源,并帮助管理进程。
对于许多 Linux 用户来说,这是一个非常需要的应用,不需要使用单独的终端/GUI 程序就可以提供详细的信息。
--------------------------------------------------------------------------------
via: https://itsfoss.com/system-monitoring-center/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[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://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/system-monitoring-center.png?resize=800%2C611&ssl=1
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/system-monitoring-center-full-info.png?resize=800%2C585&ssl=1
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/system-monitoring-center-options.png?resize=582%2C576&ssl=1
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/system-cpu-monitoring.png?resize=800%2C599&ssl=1
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/system-monitoring-center-process.png?resize=800%2C592&ssl=1
[6]: https://kod.pardus.org.tr/Hakan/system-monitoring-center
[7]: https://sourceforge.net/projects/system-monitoring-center/files/latest/download

View File

@ -0,0 +1,202 @@
[#]: subject: "Installing and Using Homebrew Package Manager on Linux"
[#]: via: "https://itsfoss.com/homebrew-linux/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14065-1.html"
在 Linux 上安装和使用 Homebrew 包管理器
======
![](https://img.linux.net.cn/data/attachment/album/202112/09/090614sptwo73z73f7fw7u.jpg)
Homebrew家酿也被称为 Brew是一个主要为 macOS 创建的命令行包管理器。
[Homebrew][1] 在 macOS 用户中相当流行,因为更多的开发者创造了可以用 Homebrew 轻松安装的命令行工具。
这种流行导致了 Linuxbrew 的诞生,它是 Homebrew 的一个 Linux 移植版。由于它主要是 Git 和 Ruby 组成的,而 Linux 和 macOS 都是类 Unix 的系统,所以 Brew 在两种操作系统上都能很好地工作。
Linuxbrew 项目最终与 Homebrew 项目合并,现在只有一个 Brew 项目,叫做 Homebrew。
为什么我叫它 Brew而不是 Homebrew因为命令以 `brew` 开头。你会在后面的章节中看到它的详细内容。
### 当你已经有了 apt、dnf、snap 时,为什么还要在 Linux 上使用 Homebrew 包管理器?
我知道这种感觉。你已经有一个由你的发行版提供的好的 [包管理器][2]。除此之外,你还有 Snap、Flatpak 和其他通用软件包系统。
在你的 Linux 系统上你真的需要 Homebrew 包管理器吗?答案取决于你的需求。
你看,除了发行版的包管理器和通用包管理器,你会遇到需要其他包管理器的情况,比如 [Pip][3] (用于 Python 应用)和 [Cargo][4] (用于 Rust 软件包)。
想象一下,你遇到了一个很好的命令行工具,想试试。它的软件库提到它可以使用 `brew` 或源代码来安装。在这种情况下,在你的系统上有 `brew` 可能会有帮助。毕竟,都 2021 了,[从源代码安装][5] 并不时髦(也不舒服)。
换句话说,如果你遇到一些有趣的命令行工具只提供 `brew` 安装选项,你会有一个额外的选择。
### 在 Ubuntu 和其他 Linux 发行版上安装 Homebrew
安装是相当容易的。你只需要确保你已经有了所有的依赖项。
#### 步骤 1安装依赖项
你需要有相对较新版本的 gcc 和 glibc。你可以 [在 Ubuntu 上安装 build-essential 包][6] 来获得它们。除此之外,你还需要 [安装 Git][7]、Curl 和 procps用于监控系统进程
在基于 Ubuntu 和 Debian 的系统中,你可以像这样一起安装所有这些东西:
```
sudo apt-get install build-essential procps curl file git
```
![Iinstall dependencies for Homebrew in Ubuntu/Debian][8]
对于其他发行版,请使用你的包管理器并安装这些依赖项。
#### 步骤 2安装 Homebrew
你可以看到为什么你需要 [安装 Curl][9]。它允许你 [在终端下载安装脚本文件][10]。
只要输入这个命令:
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
当要求输入回车键时,请按下回车。
![Installing Homebrew on Ubuntu][11]
在脚本最后,它建议运行几个命令,将其添加到 `PATH` 变量中。Homebrew 实际上是安装在你的主目录中,然后软链接到 `/usr/local` 目录中。
![Run the suggested command under Next steps to add Homebrew to PATh variable][12]
你可以 [在终端方便地复制和粘贴][13]。只要选择它所建议的命令,按 `Ctrl+Shift+C` 复制,按 `Ctrl+Shift+V` 粘贴。
或者,你也可以直接复制粘贴这个命令:
```
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> $HOME/.bash_profile
```
然后是这个:
```
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
```
![Adding brew commands to the PATH][14]
#### 步骤 3验证 brew 的安装
就快完成了。只需通过使用 `brew doctor` 命令来验证 `brew` 命令是否可以运行:
```
brew doctor
```
`brew doctor` 命令会告诉你是否有任何问题。
你可以通过安装示例 hello 项目再次验证:
```
brew install hello
```
如果你没有看到任何错误,你可以在 Linux 上享用家酿了。
### 使用 brew 命令来安装、删除和管理软件包
让我快速告诉你几个可以用来安装、删除和管理软件包的 `brew` 命令。
由于 Homebrew 安装在你的主目录中,你不需要 `sudo` 来运行它(就像 Pip 和 Cargo
要用 `brew` 安装一个软件包,请使用安装选项:
```
brew install package_name
```
这里没有自动完成软件包名称的功能。你需要知道确切的软件包名称。
要删除一个 `brew` 软件包,你可以使用 `remove``uninstall` 选项。两者的作用是一样的。
```
brew remove package_name
```
你也可以用这个命令列出已安装的 `brew` 软件包:
```
brew list
```
你也可以用 `autoremove` 选项删除不需要的依赖:
```
brew autoremove
```
在下一张截图中,我只用 `brew` 安装了两个软件包,但它也显示了这些软件包的依赖关系。即使在移除软件包后,依赖关系仍然存在。`autoremove` 终于把它们删除了。
![Listing and removing brew apckages][15]
还有很多 `brew` 命令选项,但这不在本教程的范围内。你可以随时 [翻阅它的文档][16] 并进一步探索。
### 从 Linux 中删除 Homebrew
如果不加入从你的 Linux 系统中删除 Homebrew 的步骤,本教程就不完整。
根据 [GitHub 仓库中提到的步骤][17],你必须下载并使用这个命令运行卸载脚本:
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
```
你会被要求输入 `Y` 键来确认删除。
![Removing Homebrew from Linux][18]
当 Homebrew 的卸载完成后,它会列出它所遗留的文件和目录:
![Remaining files after Homebrew removal][19]
让你自己去删除这些文件和目录。
### 总结
正如我前面解释的Homebrew 为你已经有的东西提供了一个扩展。如果你偶然发现一个只有 `brew` 安装方式的应用,在你的 Linux 系统上安装 Homebrew 会很方便。
你对这个话题有什么要补充的,或者分享你的问题或意见?请在评论区留言。
--------------------------------------------------------------------------------
via: https://itsfoss.com/homebrew-linux/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[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://brew.sh/
[2]: https://itsfoss.com/package-manager/
[3]: https://itsfoss.com/install-pip-ubuntu/
[4]: https://itsfoss.com/install-rust-cargo-ubuntu-linux/
[5]: https://itsfoss.com/install-software-from-source-code/
[6]: https://itsfoss.com/build-essential-ubuntu/
[7]: https://itsfoss.com/install-git-ubuntu/
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/install-dependencies-for-homebrew-linux.png?resize=800%2C493&ssl=1
[9]: https://itsfoss.com/install-curl-ubuntu/
[10]: https://itsfoss.com/download-files-from-linux-terminal/
[11]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/installing-homebrew-ubuntu.png?resize=800%2C453&ssl=1
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/adding-homebrew-to-path-Linux.png?resize=800%2C442&ssl=1
[13]: https://itsfoss.com/copy-paste-linux-terminal/
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/post-installation-steps-for-brew.png?resize=786%2C348&ssl=1
[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/brew-remove-packages.png?resize=800%2C572&ssl=1
[16]: https://docs.brew.sh/Manpage
[17]: https://github.com/homebrew/install#uninstall-homebrew
[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/removing-homebrew-from-Linux.png?resize=800%2C539&ssl=1
[19]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/remaining-files-after-homebrew-removal.png?resize=800%2C464&ssl=1

View File

@ -0,0 +1,133 @@
[#]: subject: "Vivaldi 5.0 Brings Two-Level Tabs to Android & Adds New Features for Desktop"
[#]: via: "https://news.itsfoss.com/vivaldi-5-0-release/"
[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14044-1.html"
Vivaldi 5.0 发布!
=====
![](https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/vivaldi-5-0-ft.jpg?w=1200&ssl=1)
> 对于那些喜欢在桌面和安卓系统上进行定制和增加功能的用户来说Vivaldi 5.0 是一个令人兴奋的版本。
Vivaldi 是一个基于 Chromium 的网页浏览器,可用于 Linux及其他平台。它因其增强功能和多任务特性而广为人知。这使它成为 [Linux 上最好的网页浏览器][1] 之一,特别是对于高级用户来说。
随着 Vivaldi 5.0 的发布(以纪念其 5 周年),它推出了一系列重大功能增加和改进。
让我们来看看 Vivaldi 的新版本有什么特点。
### Vivaldi 5.0 的新功能
请注意Vivaldi 除了其用户界面之外大部分是 [开源][2] 的。然而,他们倾向于把重点放在 Linux 平台的改进上肯定是件好事。
以下是你可以在 Vivaldi 5.0 发现的变化:
#### Vivaldi 主题
![致谢Vivaldi 博客][3]
主题一直是 Vivaldi 最好的功能之一,不仅仅是因为它有各种预装的主题,而是你可以定制你的主题或编辑预装的主题。
它的主题编辑器已经更新,有更多可以定制的选项。你现在可以编辑颜色、边角、背景和设置来定制主题。以前,你必须单独编辑背景图片,而现在新的主题编辑器应该很方便使用。
而且,并不止于此,你已经创建好了你的主题?
现在,你可以使用新的“<ruby>导出主题<rt>Export Theme</rt></ruby>”选项轻松地生成一个 ZIP 文件,与任何人分享你的主题。同样地,你也可以导入一个主题。
![致谢Vivaldi 博客][12]
更进一步地,你可以把你新设计的主题提交到他们的 [社区画廊][4]。你也可以从那里找到其他用户的主题,并安装它们。
#### 新的翻译面板
![video][5]
在 [Vivaldi 4.0 发布时][6],他们引入了由 [Lingvanex][7] 提供的内置翻译功能。
现在,通过侧边栏中新的“<ruby>翻译面板<rt>Translate Panel</rt></ruby>”,你可以快速添加一个文本片段并进行翻译,而无需翻译整个网页。
Vivaldi 的侧面板以提高多任务处理能力而闻名,而这个功能的增加应该会加强这一点。
如果你想翻译更多的片段呢?当然,你肯定不想一直继续复制粘贴它们!
对于这个特殊的需求Vivaldi 还引入了一个“<ruby>一步自动翻译<rt>one-step auto-translate</rt></ruby>”选项。一旦启用该选项,突出显示你在网页中想要的文本,它的翻译将立即出现在侧面板上。这听起来很酷!
#### 在弹出式窗口中查看下载
![致谢Vivaldi博客][13]
虽然 Vivaldi 在很多方面都令人印象深刻,但对于用户来说,其关注下载进度的能力并不那么直观。你必须到侧面板(或“下载”)中去检查下载的进度。
相比之下,在其他网页浏览器中,你可以在你的扩展程序旁边找到一个按钮。
在 Vivaldi 5.0 中,你终于可以使用地址栏中的一个按钮来检查下载进度,点击该按钮将打开一个弹出窗口来显示你的下载进度。
#### 为安卓用户提供的增强功能
Vivaldi 的安卓版也有了重大更新和期待已久的功能。
安卓用户现在可以使用桌面用户已经在使用的 “<ruby>两级标签堆栈<rt>Two-level Tab Stacks</rt></ruby>”。
也许,这对任何安卓手机浏览器来说都是第一次!
对于那些不知道的人来说,这个功能有助于将标签页组合在一起,产生两级。这有助于避免多个标签挤在一起。
![致谢Vivaldi][14]
可配置的“<ruby>标签栏<rt>Tab Bar</rt></ruby>”现在多了两个选项。例如背景标签上用于关闭的“X”按钮可以被移除为更多的标签腾出空间。用户还可以将标签简单地显示为收藏夹因此没有标题也没有“X”按钮。
因此,你有很多管理你的安卓移动设备上的标签的方法。
虽然这很有趣,但我不太确定对用户来说,在小屏幕上掺杂两级标签堆栈的感觉如何。
![video][8]
平板电脑和 Chromebook 用户也将享受到用户界面更新的待遇。平板电脑和 Chromebook 用户现在可以使用经典的“<ruby>侧面板<rt>Side Panel</rt></ruby>”,以组织浏览器的布局,尽量减少杂乱。
这一功能的增加可以使 Vivaldi 成为平板电脑用户的有力选择。
#### 其他改进
除了关键的亮点之外,你可以发现速度的改进和错误的修复。
要探索更多,你可以查看其 [桌面版][9] 和 [安卓版][10] 的官方博客文章。
### 总结
Vivaldi 无疑是一个会关注其用户需求和网页体验的浏览器。对于喜欢更多定制和功能的用户来说,最新的版本听起来很令人感兴趣。
你可以从官方网站下载可用的 DEB/RPM 包并进行安装。
- [下载 Vivaldi 5.0][11]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/vivaldi-5-0-release/
作者:[Rishabh Moharir][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://news.itsfoss.com/author/rishabh/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/best-browsers-ubuntu-linux/#:~:text=Mozilla%20Firefox&text=Firefox%20is%20the%20default%20web%20browser%20for%20most%20Linux%20distributions.
[2]: https://vivaldi.com/source/
[3]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Theme-v2_Editor.png?resize=1568%2C882&ssl=1
[4]: https://themes.vivaldi.net
[5]: https://youtu.be/Ydnds6GU_Lc
[6]: https://news.itsfoss.com/vivaldi-4-0-release/
[7]: https://lingvanex.com
[8]: https://youtu.be/wujcMAdd-tw
[9]: https://vivaldi.com/blog/vivaldi-5-0-desktop-themes-translate-panel/
[10]: https://vivaldi.com/blog/vivaldi-on-android-gets-worlds-first-two-rows-of-mobile-browser-tabs/
[11]: https://vivaldi.com/download/
[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/vivaldi-5-export.png?resize=1568%2C882&ssl=1
[13]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Download-popup.png?resize=1568%2C882&ssl=1
[14]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/android_double-line-tab-stack-new-blog.png?resize=1568%2C882&ssl=1

View File

@ -0,0 +1,82 @@
[#]: subject: "Convert audio in batches on Linux with SoundConverter"
[#]: via: "https://opensource.com/article/21/12/soundconverter-linux"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14072-1.html"
在 Linux 上用 SoundConverter 分批转换音频
======
> SoundConverter 是一个有用的应用,它不仅能做到它的名字所说的那样,而且它是分批和并行地做的。
![](https://img.linux.net.cn/data/attachment/album/202112/11/090248gqt2hwqtyft51qwh.jpg)
有许多用于存储数字音频的文件格式,它们适用于不同的目的。当然,数字音频只是声音的一种表现形式,是一种声波的呈现,它由解码器和一组扬声器转化为声音。一些音频格式,一般被称为 <ruby>无损<rt>lossless</rt></ruby> 格式,旨在将音频编码为接近其原始模拟形式。然而,在现实世界中有大量的数据,而迄今为止,数字形式只能对其进行近似处理,而且需要非常大的文件。其他的音频格式,被称 <ruby>有损<rt>lossy</rt></ruby> 格式,可以在文件大小与声音的合理表现之间取得平衡。
有很多很好的终端命令可以用于音频转换:有 `sox``ffmpeg`,以及一些特定格式的编码器,如 `opusenc`、`flac`、`oggenc`、`fdkaac`、`wavpack` 和无数的其他编码器。
### 在 Linux 上安装 SoundConverter
SoundConverter 在大多数 Linux 发行版上都可以通过你的包管理器获得。在 Fedora、Mageia 和类似的发行版上:
```
$ sudo dnf install kdenlive
```
在 Elementary、Mint 和其他基于 Debian 的发行版上:
```
$ sudo apt install kdenlive
```
然而,我使用使用 [Flatpak][2] 安装 SoundConverter。
### 转换音频
一旦你把音频编码成有损格式,你就丢失了数据。这些数据是否重要取决于其听众的耳朵。有些人听不出低比特率的 MP3 和全质量的 FLAC 文件之间的区别,即使那些能听出来的人,也常常注意不到 320kbps 的 Ogg Vorbis 播客和 128kbps 的 Ogg Vorbis 播客之间的区别。将音频从压缩格式转换为非压缩格式并不能恢复丢失的数据,但需要将音频从一种格式转换为另一种格式的情况并不少见。你可能想把文件上传到只接受特定格式的网站,或者你的移动设备可能只能播放特定的格式,或者用电子邮件发送一个对你的邮件主机来说太大的文件,或者你可能只是想节省硬盘上的空间。
SoundConverter 可以让你轻松地分批转换音频。要用 SoundConverter 转换音频:
1. 从你的应用或活动菜单中启动 SoundConverter。
2. 点击 SoundConverter 窗口左上角的“<ruby>添加文件<rt>Add Files</rt></ruby>”按钮,并选择你要转换的文件。
3. 添加了文件后,点击窗口右上角的“<ruby>偏好<rt>Preferences</rt></ruby>”按钮(齿轮图标),并选择你想转换的格式。你还可以设置文件命名规则、目标文件夹和其他选项。
4. 当你准备好了,点击左上角的“<ruby>转换<rt>Convert</rt></ruby>”按钮。
![SoundConverter window][3]
### 并行处理
SoundConverter 是一个有用的应用,它不仅完全做了它的名字所说的事情,而且它是分批和并行地做的。因为现代计算机不仅仅有一个 CPU 核心把每个文件放在一个队列中逐一编码是对能源和时间的浪费。SoundConverter 可以同时处理几个文件,并对它们进行编码,这意味着转换 12 个文件所需的时间和通常一个接一个地转换两个文件所需的时间是一样的。你可以用一个好的终端命令做同样的事情,但前提是你要了解如何 [启动并行进程][5]。
![SoundConverter preferences][6]
你也可以将立体声音频转换为单声道文件。这对播客和有声读物特别有用。这些通常由一个人从一个单一的位置(麦克风)说话组成,不需要空间位置感。事实上,将立体声文件减少到单声道,如果你只有一个耳塞,就能更容易听到音频,并将文件大小减半。
### SoundConverter 的优势
为音频提供不同的文件格式是一个很好的功能,但似乎每当我以一种格式保存音频时,我都不可避免地需要另一种格式。有几个很棒的 Linux 命令可以 [转换音频文件][7],但有时你可能想要一个可以在桌面上打开并拖放文件的应用,这就是 [SoundConverter][8] 的用场。SoundConverter 是一个简单的而用途单一的应用程序,它的作用和它的名字一样:把声音从一种格式转换为另一种格式。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/soundconverter-linux
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [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/sound-radio-noise-communication.png?itok=KMNn9QrZ (radio communication signals)
[2]: https://opensource.com/article/21/11/install-flatpak-linux
[3]: https://opensource.com/sites/default/files/uploads/soundconverter_0.jpg (SoundConverter window)
[4]: https://creativecommons.org/licenses/by-sa/4.0/
[5]: https://opensource.com/article/18/5/gnu-parallel
[6]: https://opensource.com/sites/default/files/uploads/soundconvert-preferences.jpg (SoundConverter preferences)
[7]: https://opensource.com/article/17/6/ffmpeg-convert-media-file-formats
[8]: https://soundconverter.org/

View File

@ -0,0 +1,252 @@
[#]: subject: "How to use dig"
[#]: via: "https://jvns.ca/blog/2021/12/04/how-to-use-dig/"
[#]: author: "Julia Evans https://jvns.ca/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14051-1.html"
如何使用 dig
======
![](https://img.linux.net.cn/data/attachment/album/202112/05/192530gj36ttdwz16azu6w.jpg)
你好!最近我和几个朋友聊天,他们提到希望知道如何使用 `dig` 来进行 DNS 查询,所以这是一篇关于它的速读博文。
当我第一次使用 `dig` 时,我发现它有点吓人 —— 有这么多的选项!我打算把大部分的选项省略。在这篇文章中,我打算不谈 `dig` 的大部分选项,只谈我实际使用的选项。
我最近还了解到,你可以设置一个 `.digrc` 配置文件,让它的输出更容易阅读,这让它的使用变得更加轻松。
几年前我还画了一个关于 `dig` 的 [zine 页][1],但我想写这篇文章来包括更多的信息。
### 两种类型的 dig 参数:查询和格式化
有两种主要的参数可以传递给 `dig`
1. 告诉 `dig` **要进行什么 DNS 查询的参数**
2. 告诉 `dig` 如何 **格式化响应的参数**
首先,让我们看一下查询选项。
### 主要的查询选项
你通常想控制 DNS 查询的 3 件事是:
1. **名称**(如 `jvns.ca`)。默认情况下,查询的是空名称(`.`)。
2. **DNS 查询类型**(如 `A``CNAME`)。默认是 `A`
3. 发送查询的 **服务器**(如 `8.8.8.8`)。默认是 `/etc/resolv.conf` 中的内容。
其格式是:
```
dig @server name type
```
这里有几个例子:
* `dig @8.8.8.8 jvns.ca` 向谷歌的公共 DNS 服务器(`8.8.8.8`)查询 `jvns.ca`
* `dig ns jvns.ca``jvns.ca` 进行类型为 `NS` 的查询。
### `-x`:进行反向 DNS 查询
我偶尔使用的另一个查询选项是 `-x`,用于进行反向 DNS 查询。下面是输出结果的样子。
```
$ dig -x 172.217.13.174
174.13.217.172.in-addr.arpa. 72888 IN PTR yul03s04-in-f14.1e100.net。
```
`-x` 不是魔术。`dig -x 172.217.13.174` 只是对 `174.13.217.172.in-addr.arpa.` 做了一个 `PTR` 查询。下面是如何在不使用 `-x 的情况下进行完全相同的反向 DNS 查询。
```
$ dig ptr 174.13.217.172.in-addr.arpa.
174.13.217.172.in-addr.arpa. 72888 IN PTR yul03s04-in-f14.1e100.net。
```
我总是使用 `-x`,因为它可以减少输入。
### 格式化响应的选项
现在,让我们讨论一下你可以用来格式化响应的参数。
我发现 `dig` 默认格式化 DNS 响应的方式对初学者来说是很难接受的。下面是输出结果的样子:
```
; <<>> DiG 9.16.20 <<>> -r jvns.ca
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28629
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: d87fc3022c0604d60100000061ab74857110b908b274494d (good)
;; QUESTION SECTION:
;jvns.ca. IN A
;; ANSWER SECTION:
jvns.ca. 276 IN A 172.64.80.1
;; Query time: 9 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Dec 04 09:00:37 EST 2021
;; MSG SIZE rcvd: 80
```
如果你不习惯看这个,你可能需要花点时间来筛选,找到你要找的 IP 地址。而且大多数时候,你只对这个响应中的一行感兴趣(`jvns.ca. 180 IN A 172.64.80.1`)。
下面是我最喜欢的两种方法,可以使 `dig` 的输出更容易管理:
#### 方式 1 : +noall +answer
这告诉 `dig` 只打印 DNS 响应中的“答案”部分的内容。下面是一个查询 `google.com``NS` 记录的例子:
```
$ dig +noall +answer ns google.com
google.com. 158564 IN NS ns4.google.com.
google.com. 158564 IN NS ns1.google.com.
google.com. 158564 IN NS ns2.google.com.
google.com. 158564 IN NS ns3.google.com.
```
这里的格式是:
```
NAME TTL TYPE CONTENT
google.com 158564 IN NS ns3.google.com.
```
顺便说一下:如果你曾经想知道 `IN` 是什么意思,它是指“查询类”,代表“<ruby>互联网<rt> internet</rt></ruby>”。它基本上只是上世纪 80、90 年代的遗物,当时还有其他网络与互联网竞争,如“<ruby>混沌网络<rt>chaosnet</rt></ruby>”。
#### 方式 2+short
这就像 `dig +noall +answer`,但更短:它只显示每条记录的内容。比如说:
```
$ dig +short ns google.com
ns2.google.com.
ns1.google.com.
ns4.google.com.
ns3.google.com.
```
### 你可以在 `digrc` 中设置格式化选项
如果你不喜欢 `dig` 的默认格式(我就不喜欢!),你可以在你的主目录下创建一个 `.digrc` 文件,告诉它默认使用不同的格式。
我非常喜欢 `+noall +answer` 格式,所以我把 `+noall +answer` 放在我的 `~/.digrc` 中。下面是我使用该配置文件运行 `dig jvns.ca` 时的情况。
```
$ dig jvns.ca
jvns.ca. 255在172.64.80.1中
```
这样读起来就容易多了!
如果我想回到所有输出的长格式(我有时会这样做,通常是因为我想看响应的权威部分的记录),我可以通过运行再次得到一个长答案。
```
$ dig +all jvns.ca
```
### dig +trace
我使用的最后一个 `dig` 选项是 `+trace`。`dig +trace` 模仿 DNS 解析器在查找域名时的做法 —— 它从根域名服务器开始,然后查询下一级域名服务器(如 `.com`),以此类推,直到到达该域名的权威域名服务器。因此,它将进行大约 30 次 DNS 查询。(我用 `tcpdump` 检查了一下,对于每个根域名服务器的 `A` / `AAAA` 记录它似乎要进行 2 次查询,所以这已经是 26 次查询了。我不太清楚它为什么这样做,因为它应该已经有了这些 IP 的硬编码,但它确实如此。)
我发现这对了解 DNS 的工作原理很有用,但我不认为我用它解决过问题。
### 为什么要用 dig
尽管有一些更简单的工具来进行 DNS 查询(如 `dog``host`),我发现自己还是坚持使用 `dig`
我喜欢 `dig` 的地方实际上也是我 **不喜欢** `dig` 的地方 —— 它显示了大量的细节!
我知道,如果我运行 `dig +all`,它将显示 DNS 响应的所有部分。例如,让我们查询 `jvns.ca` 的一个根名称服务器。响应有 3 个部分,我可能会关心:回答部分、权威部分和附加部分。
```
$ dig @h.root-servers.net. jvns.ca +all
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18229
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;jvns.ca. IN A
;; AUTHORITY SECTION:
ca. 172800 IN NS c.ca-servers.ca.
ca. 172800 IN NS j.ca-servers.ca.
ca. 172800 IN NS x.ca-servers.ca.
ca. 172800 IN NS any.ca-servers.ca.
;; ADDITIONAL SECTION:
c.ca-servers.ca. 172800 IN A 185.159.196.2
j.ca-servers.ca. 172800 IN A 198.182.167.1
x.ca-servers.ca. 172800 IN A 199.253.250.68
any.ca-servers.ca. 172800 IN A 199.4.144.2
c.ca-servers.ca. 172800 IN AAAA 2620:10a:8053::2
j.ca-servers.ca. 172800 IN AAAA 2001:500:83::1
x.ca-servers.ca. 172800 IN AAAA 2620:10a:80ba::68
any.ca-servers.ca. 172800 IN AAAA 2001:500:a7::2
;; Query time: 103 msec
;; SERVER: 198.97.190.53#53(198.97.190.53)
;; WHEN: Sat Dec 04 11:23:32 EST 2021
;; MSG SIZE rcvd: 289
```
`dog` 也显示了 “附加” 部分的记录,但它没有明确指出哪个是哪个(我猜 `+` 意味着它在附加部分?) ,但它似乎没有显示“权威”部分的记录。
```
$ dog @h.root-servers.net. jvns.ca
NS ca. 2d0h00m00s A "c.ca-servers.ca."
NS ca. 2d0h00m00s A "j.ca-servers.ca."
NS ca. 2d0h00m00s A "x.ca-servers.ca."
NS ca. 2d0h00m00s A "any.ca-servers.ca."
A c.ca-servers.ca. 2d0h00m00s + 185.159.196.2
A j.ca-servers.ca. 2d0h00m00s + 198.182.167.1
A x.ca-servers.ca. 2d0h00m00s + 199.253.250.68
A any.ca-servers.ca. 2d0h00m00s + 199.4.144.2
AAAA c.ca-servers.ca. 2d0h00m00s + 2620:10a:8053::2
AAAA j.ca-servers.ca. 2d0h00m00s + 2001:500:83::1
AAAA x.ca-servers.ca. 2d0h00m00s + 2620:10a:80ba::68
AAAA any.ca-servers.ca. 2d0h00m00s + 2001:500:a7::2
```
`host` 似乎只显示“答案”部分的记录(在这种情况下没有得到记录):
```
$ host jvns.ca h.root-servers.net
Using domain server:
Name: h.root-servers.net
Address: 198.97.190.53#53
Aliases:
```
总之,我认为这些更简单的 DNS 工具很好(我甚至自己做了一个 [简单的网络 DNS 工具][2]),如果你觉得它们更容易,你绝对应该使用它们,但这就是为什么我坚持使用 `dig` 的原因。`drill` 的输出格式似乎与 `dig` 的非常相似,也许 `drill` 更好!但我还没有真正试过它。
### 就这些了
我最近才知道 `.digrc`,我非常喜欢使用它,所以我希望它能帮助你们中的一些人花更少的时间来整理 `dig` 的输出!
有人在 Twitter 上指出,如果有办法让 `dig` 显示响应的简短版本,其中也包括响应的状态(如 `NOERROR`、`NXDOMAIN`、`SERVFAIL` 等),那就更好了!我同意这个观点!不过我在手册中没有找到这样的选项。
--------------------------------------------------------------------------------
via: https://jvns.ca/blog/2021/12/04/how-to-use-dig/
作者:[Julia Evans][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://jvns.ca/
[b]: https://github.com/lujun9972
[1]: https://wizardzines.com/comics/dig/
[2]: https://dns-lookup.jvns.ca/

View File

@ -0,0 +1,377 @@
[#]: subject: "19 Absolute Simple Things About Linux Terminal Every Ubuntu User Should Know"
[#]: via: "https://itsfoss.com/basic-terminal-tips-ubuntu/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14064-1.html"
关于 Ubnutu Linux 终端的必知必会的 19 件超简单的事情
======
终端常常让新用户感到害怕。然而,一旦你了解了它,你就会逐渐开始喜欢上它。好吧,这事往往发生在大多数 Linux 用户身上。
即使你使用 Ubuntu 作为桌面系统,你可能有时也要进入终端。新用户往往对很多事情毫无头绪,在这种情况下,一些基本的 Linux 命令的知识总是有帮助的,但这篇文章不是关于这个。
这篇文章的重点是解释关于使用终端的一些小的、基本的、经常被忽视的东西。这应该可以帮助 Ubuntu 桌面的新用户了解终端,并以更高的效率使用它。
![][1]
你看到的“<ruby>终端<rt>terminal</rt></ruby>”只是 [各种终端应用程序][2] 中的一个。毕竟终端只是一个 GUI 工具,它可以让你进入一个可以运行命令的 Shell 。
不同的终端应用程序(正确地应该被称为“<ruby>终端仿真器</rt></ruby>”)看起来有些稍微不同的功能和特点(如不同的键盘快捷键、颜色组合、字体等)。
本文特别关注 Ubuntu 的默认终端,它是 “GNOME 终端”的一个实现。
### 1、用键盘快捷方式打开终端
你可以 [在 Ubuntu 中打开终端][3],在系统菜单中寻找到它。然而,我最喜欢的方式是使用 [Ubuntu 中的键盘快捷键][4]`Ctrl+Alt+T` 。
### 2、终端、Shell、提示符和命令行
在你看其他内容之前,你应该知道这些不同术语之间的区别,这些术语经常被(不正确地)互换使用。
![终端、提示符和命令][5]
“终端”是图形化的应用程序,默认情况下运行 Shell。
Shell 很难与终端分开进行可视化。终端运行着一个 Shell在 Ubuntu 中通常默认为 Bash shell。和终端一样也有各种 Shell。Bash 是其中最受欢迎的,也是大多数 Linux 发行版上的默认 Shell。
你输入的命令是由 Shell 解释的。通常人们认为他们在终端看到的屏幕就是 Shell。这适合理解这个概念。
“提示符”是你在输入命令的空格前看到的东西。对于提示符没有固定的标准。在一些旧的终端中,只是在你可以输入命令的地方有一个闪烁的光标而已。在 Ubuntu 终端中,提示符给了你一些信息,你会在本文后面的章节中看到这些信息的细节。
“命令行”不是 Linux 特有的东西。很多操作系统都有一个命令行界面。许多编程语言也都有命令行界面。它是一个术语,用来指你可以运行和执行命令的界面。
Luke Smith 的 [这个视频](https://www.youtube.com/embed/hMSByvFHOro) 用例子详细解释了它。言归正传,我在这里就不多说了。
### 3、了解提示符
你现在已经知道了。你在输入命令的空格前看到的东西叫做“提示符”。它是可配置的,在不同的发行版、终端应用程序和 Shell 中提示符看起来是不同的。
Ubuntu 终端对提示符进行了配置,让你看到一些东西。你可以一目了然地得到以下信息:
* 用户名
* 主机名(计算机的名称)
* 当前工作目录
还有一些你可能想知道的惯例。
提示符中的冒号(`:`)是一个分隔符,常用来区分主机名和当前位置。
波浪号(`~`)表示当前用户的主目录。
对于普通用户,提示符以美元(`$`)符号结束。对于 root 用户来说,它以英镑或哈希(`#`)符号结束。因此有一个笑话说,英镑比美元强。
![][7]
你是否注意到,当我切换到 root 用户时命令提示符看起来不一样没有任何颜色这又一次提醒了我提示符不是一个标准是要明确配置的。对于普通用户来说Ubuntu 对提示符的配置与 root 用户不同。
像这样的简单信息间接地帮助了我们。在一个多用户环境中,你可以很容易地弄清楚你现在使用的是哪个用户,以及它是否是 root 用户。其显示的路径位置也是有帮助的。
![][8]
### 4、目录和文件
在 Linux 中你听到最多的两个术语是目录和文件。
你可能知道什么是文件,但你可能会对“<ruby>目录<rt>directory</rt></ruby>”这个术语感到困惑。目录就是“<ruby>文件夹<rt>folder</rt></ruby>”。它把文件和文件夹放在里面。
你可以进入目录,但你不能进入文件。当然,你可以读取文件。
![][9]
你可以用“文件夹”这个词来表示目录,应该没有问题。然而,最好使用“目录”,因为你会在各种教程、文件等中看到引用这个词。你甚至会发现像 `rmdir`、`mkdir` 这样的命令,暗示它们是处理目录的。
补充说明:在 Linux 中,所有东西都是文件。甚至目录也是一种特殊的文件,里面有文件和目录的地址。我已经在我的关于 [硬链接的文章][10] 中解释了这一点。如果你想了解更多关于这个主题的信息,可以参考一下。
### 5、路径绝对路径和相对路径
[Linux 中的目录结构][11] 类似于一棵树的根。所有的东西都从根部开始,并从那里向外扩散。
如果你要访问一个文件或目录,你需要通过提供它的“路径”来说明如何到达它的位置。这个路径是由目录名和分隔符(`/`)组成的。如果一个路径以 `/`(即根)开头,它就是一个绝对路径,否则就是一个相对路径。
![路径][12]
绝对路径从根开始,可以很容易地从系统的任何地方引用。相对路径则取决于你在目录结构中的当前位置。
![绝对路径与相对路径][13]
如果你在 `/home/abhishek` 这个位置,有一个名为 `scripts` 的目录,里面有一个文件 `my_script.sh`,你想知道这个文件的路径,它的绝对路径将是:
```
/home/abhishek/scripts/my_script.sh
```
它的相对路径将是:
```
scripts/my_script.sh
```
如果你改变所在位置,文件的绝对路径保持不变。但是,相对路径会改变,因为它是相对于你当前的路径而言的。
![相对路径随位置变化但绝对路径保持不变的真实例子][14]
### 6、 . 和 ..
在使用 Linux 终端时,你可能经常会遇到 `.``..` 符号。
单点(`.`)表示当前目录。
双点(`..`)表示父目录(比当前位置高一个目录)。
你经常在相对路径中使用双点(`..`),或者用于改变目录。单点(`.`)也用于相对路径中,但更重要的是,你可以在指定当前位置的命令中使用它。
![ . 和 .. 的使用][15]
### 7、理解命令的结构
一个典型的 Linux 命令由一个命令名和选项及参数组成。
```
命令名 [选项] 参数
```
“选项”,顾名思义,是可选的。当使用时,它们可能会根据其属性来改变输出。
例如,`cat` 命令是用来查看文件的。你可以添加选项 `-n`,它也会显示行数。
选项不是标准化的。通常情况下,它们是由单字母和单破折号(`-`)组成的。它们也可能是两个破折号(`--`)和一个单词的形式。
同样的选项在不同的命令中可能有不同的含义。如果你在 `head` 命令中使用 `-n`,表明你想看行数,而不是行号。
![同样的选项 -n 在 cat 和 head 命令中有不同的用途][16]
在命令文档中,**如果你看到方括号(`[]`)之间有什么东西,它表示括号中的内容是可选的**。
同样地,“参数”也没有标准化。有些命令希望用文件名作为参数,有些则希望用目录名或正则表达式。
### 8、获得帮助
当你开始使用命令时,你可能会记住一些经常使用的命令的选项,但你根本不可能记住所有命令的所有选项。
为什么呢?因为一条命令可能有十多个或二十多个选项。
那么,当你无法记住所有的选项时,你该怎么办呢?你需要“帮助”。我所说的帮助,并不是指在 [Linux 论坛][17] 上提问。我指的是使用命令的帮助选项。
每个标准的 Linux 命令都有一个快速帮助页面,可以用 `-h``—help` 来访问。
```
命令名 -h
```
它可以让你快速了解命令的语法、常用选项及其含义,在某些情况下还有命令的例子。
![cat 命令的帮助页][18]
如果你需要更多的帮助,你可以参考 [手册页][19],即命令的手册。
```
man 命令名
```
它涉及到所有的细节,阅读和理解起来可能会让人难以承受。另外,你也可以在网上搜索 “Linux 中 xyz 命令的例子”。
### 9、Linux 是区分大小写的
Linux 是区分大小写的。你在终端中输入的所有东西都是区分大小写的。如果你不考虑这一点,你会经常遇到 “[bash: command not found][20]” 或 “file not found” 的错误。
在主目录中,你的所有文件夹名称以大写字母开头的。如果你要切换到 `Documents` 目录,你必须把第一个字母保持为 `D`,而不是 `d`
![Linux 是区分大小写的][21]
你可以有两个分别名为 `file.txt``File.txt` 的文件,因为对于 Linux 来说,`file` 和 `File` 是不一样的。
### 10、运行 Shell 脚本
你可以通过指定 Shell 来 [运行一个 Shell 脚本][22]
```
bash script.sh
```
或者你可以像这样执行 Shell 脚本。
```
./script.sh
```
第二种方法只有在文件有执行权限时才会起作用。更多关于 [Linux 文件权限参考这里][23]。
![运行bash脚本][24]
### 11、使用制表符补完而不是全部输入
Ubuntu 的终端已经预先配置了制表符补完功能。这意味着如果你开始在终端上输入,然后点击 `tab` ,它会尝试自动完成它,或者在有多个可能的匹配时提供选项。
它既适用于命令,也适用于参数和文件名。
![Tab 完成示例][25]
这可以节省大量的时间,因为你不需要把所有的东西都写完整。
### 12、Ctrl+C 和 Ctrl+V 不是用来在终端复制粘贴的。
`Ctrl+C`、`Ctrl+V` 可能是复制粘贴的“通用”键盘快捷键,但它在 Linux 终端中不行。
Linux 继承了 UNIX 的很多东西,在 UNIX 中,`Ctrl+C` 被用来停止一个正在运行的进程。
由于 `Ctrl+C` 已经被用于停止一个命令或进程,所以它不能再用于复制粘贴。
### 13、你当然可以在终端复制粘贴
别担心。你仍然可以 [在终端中复制粘贴][26]。同样,复制-粘贴的键盘快捷键没有固定的规则,因为它取决于你使用的终端程序或你的配置。
在 Ubuntu 终端中,复制的默认键盘快捷键是 `Ctrl+Shift+C`,粘贴则是 `Ctrl+Shift+V`
你可以使用 `Ctrl+C` 从终端外(如网页浏览器)复制文本和命令,并使用 `Ctrl+Shift+V` 将其粘贴。同样,你可以高亮显示文本,用 `Ctrl+Shift+C` 从终端复制文本,用 `Ctrl+V` 粘贴到编辑器或其他应用程序。
### 14、避免在终端中使用 Ctrl+S
另一个初学者常犯的错误是使用“通用”的 `Ctrl+S` 键盘快捷键来保存。如果你在终端中使用 `Ctrl+S`,你的终端会被“冻结”。
这来自于传统的计算机,在那里没有向上滚动的滚动条。因此,如果有大量的输出行,`Ctrl+S` 被用来停止屏幕,以便可以阅读屏幕上的文字。
你可以用 `Ctrl+Q` 来解除终端的冻结。但还是要避免在终端中使用 `Ctrl+S`
### 15、注意命令例子中的 $ 和 <>
如果你参考一些在线教程或文档,你会看到一些命令例子中的文本在 `<>` 内。这表明你需要用一个合适的值来替换与 `<``>` 一起的内容。
例如,如果你看到一个这样的命令:
```
grep -i <搜索内容> <文件名>
```
你应该把 `<搜索内容>``<文件名>` 换成各自的实际值。LCTT 译注:不要输入 `<``>`
这表明该命令只是一个例子,你必须用实际值来完成它。
这里需要注意的另一件事是,有些教程显示的命令例子是以 `$` 开头的,比如这样:
![命令开头的美元符号][27]
这是表明它们是命令(而不是命令输出)的一种方式。但是,许多新的 Linux 用户把前面的 `$` 和实际的命令一起复制,当他们把它粘贴到终端时,显然会出现错误。
所以,当你复制一些命令时,如果开头有 `$`,就不要复制它。你也应该避免复制随机网站的随机命令,特别是当你不了解它的作用时。
既然你正在阅读关于复制命令的文章,当你看到多行的命令在一起时,你应该一次复制一行,然后逐一运行。
![避免将多个命令复制在一起][28]
下一节将告诉你如何一次性运行多个命令。
### 16、你可以同时运行多个命令
你可以 [一次运行多个命令][29] 而不需要用户干预。作为 Ubuntu 用户,你可能已经在这个命令的形式中看到了它:
```
sudo apt update && sudo apt upgrade
```
在终端中,有三种不同的方法来组合命令:
`;` | `命令 1 ; 命令 2` | 先运行命令 1再运行命令 2
---|---|---
`&&` | `命令 1 && 命令 2` | 只有命令 1 成功结束才运行命令 2
`||` | `命令 1 || 命令 2` | 只有命令 1 失败时才运行命令 2
### 17、停止一个正在运行的 Linux 命令
如果一个 Linux 命令在前台运行,也就是说,它正在显示输出,或者说你不能输入任何其他命令,你可以用 `Ctrl+C` 键停止它。
我以前讨论过它。它来自于 UNIX 的传统计算时代。
所以,下次你看到像 `top``ping` 这样的命令在持续运行,而你想恢复终端控制,只需使用这两个键:`Ctrl+C`。
![在 Linux 中用 Ctrl+C 停止一个正在运行的程序][30]
### 18、清除终端
当我发现我的屏幕被不同类型的输出弄得太杂乱时,我会在开始其他工作之前清除终端屏幕。这只是一种习惯,但我发现它很有帮助。
要清除终端,请使用以下命令:
```
clear
```
你也可以使用 [终端快捷键][31] `Ctrl+L`
### 19、退出终端
在少数情况下,我看到有人关闭终端程序来退出会话。你可以这样做,但退出终端的正确方法是使用退出命令:
```
exit
```
你也可以使用 Ubuntu 终端的键盘快捷键 `Ctrl+D`
### 总结
即使你对终端完全陌生,你也可以在终端中做很多额外的事情。你可以:
* [运行有趣的 Linux 命令][32]
* [在终端中浏览互联网][33]
* [在终端中玩游戏][34]
如果你想了解更多,[看看这些 Linux 命令技巧,可以像专家一样使用终端][35]。
说实话,要谈的东西太多了。很难确定哪些应该被认为是绝对的基础知识,哪些应该被排除在外。例如,我想避免包括关于路径的信息,因为它需要详细的解释,但在一个地方讲得太详细可能会让人不知所措。
我已经过了在终端中的小东西曾经让我困惑的阶段。如果你是 Linux 终端的新手,或者你还记得你最初使用 Linux 时的挣扎,请随时提出建议对列表进行补充。我可能会根据你的意见更新这个列表。
如果你学到了新的东西,请在评论中提及。我想看看这篇文章是否值得一读 😁
--------------------------------------------------------------------------------
via: https://itsfoss.com/basic-terminal-tips-ubuntu/
作者:[Abhishek Prakash][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/abhishek/
[b]: https://github.com/lujun9972
[1]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/ubuntu-terminal-basic-tips.png?resize=800%2C450&ssl=1
[2]: https://itsfoss.com/linux-terminal-emulators/
[3]: https://itsfoss.com/open-terminal-ubuntu/
[4]: https://itsfoss.com/ubuntu-shortcuts/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/linux-terminal-introduction.png?resize=800%2C450&ssl=1
[6]: https://www.youtube.com/c/itsfoss?sub_confirmation=1
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/understanding-prompt-ubuntu-terminal.png?resize=800%2C346&ssl=1
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/learning-prompt-ubuntu-terminal.png?resize=800%2C346&ssl=1
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/directory-files-linux.png?resize=800%2C346&ssl=1
[10]: https://linuxhandbook.com/hard-link/
[11]: https://linuxhandbook.com/linux-directory-structure/
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/path-linux.webp?resize=800%2C250&ssl=1
[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/absolute-vs-relative-path-linux.webp?resize=800%2C500&ssl=1
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/absolute-relative-path-real-examples-800x346.png?resize=800%2C346&ssl=1
[15]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/use-of-single-and-double-dot-in-Linux.png?resize=732%2C272&ssl=1
[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/command-structure-example.png?resize=732%2C462&ssl=1
[17]: https://itsfoss.community/
[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/cat-command-help-page.png?resize=732%2C614&ssl=1
[19]: https://itsfoss.com/linux-man-page-guide/
[20]: https://itsfoss.com/bash-command-not-found/
[21]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/linux-is-case-sensitive.png?resize=732%2C253&ssl=1
[22]: https://itsfoss.com/run-shell-script-linux/
[23]: https://linuxhandbook.com/linux-file-permissions/
[24]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/run-bash-script.png?resize=732%2C272&ssl=1
[25]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/tab-completion-ubuntu.png?resize=732%2C272&ssl=1
[26]: https://itsfoss.com/copy-paste-linux-terminal/
[27]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/dollar-symbol-at-the-beginning-of-command.png?resize=765%2C256&ssl=1
[28]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/avoid-copying-multiple-commands.png?resize=743%2C242&ssl=1
[29]: https://itsfoss.com/run-multiple-commands-linux/
[30]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/stop-running-program-linux.png?resize=800%2C385&ssl=1
[31]: https://linuxhandbook.com/linux-shortcuts/
[32]: https://itsfoss.com/funny-linux-commands/
[33]: https://itsfoss.com/terminal-web-browsers/
[34]: https://itsfoss.com/best-command-line-games-linux/
[35]: https://itsfoss.com/linux-command-tricks/

View File

@ -0,0 +1,105 @@
[#]: subject: "GNOME has a Brand New Text Editor and it is Likely to Replace Gedit in GNOME 42"
[#]: via: "https://news.itsfoss.com/gnome-text-editor-to-replace-gedit/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14060-1.html"
GNOME 有了一个全新的“文本编辑器”,它会成为默认编辑器吗?
======
> GNOME 新的“文本编辑器”正在增加新的功能,有可能在下一个 GNOME 桌面版本中取代 Gedit。
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/gnome-text-editor-gnome-42.jpg?w=1200&ssl=1)
Gedit 是 GNOME 桌面环境的默认文本编辑器。它是一个受欢迎的编辑器,也是一个便捷的文本编辑器,以简单的用户界面提供了所有的基本功能。
但是,随着 GNOME 的发展有了一个新的“文本编辑器”LCTT 译注:没错,就叫“<ruby>文本编辑器<rt>Text Editor</rt></ruby>”),虽然它还没有取代 Gedit。但让我们来看看它的下一个版本在即将到来的 GNOME 42 版本中,它进行了大量改进,有可能取代 Gedit。
[Christian Hergert][1] 在他的 [博文][2] 和 Twitter 上分享了它的很多细节。
在这篇文章中,让我介绍一下 GNOME 文本编辑器的那些新改进。
### 偏好设置对话框卷土重来
作为其上一个版本中的实验的一部分,偏好设置对话框被移到了侧边栏,
![][3]
但是,事实证明,它并不那么方便和好看。
因此,偏好设置对话框又回来了(如下图所示),其目的是与其他 GNOME 应用程序的设计语言相融合,而不显得笨拙。
![鸣谢Christian Hergert][4]
在我看来,这很不错,与侧边栏的实施相比,应该用户体验更好。
### 改进的 “弹出式” 打开功能
![鸣谢Christian Hergert][5]
当你试图打开一个最近的文件或搜索某个东西时,会出现一个弹出式窗口来快速查找任何最近的文件,而不需要启动一个新的对话框。
这节省了时间,是一个不错的功能。在即将发布的“文本编辑器”中还进行了一些细微的改进,显得更苗条、更便捷。
换句话说,你会发现它改进了键盘导航,只需按下 `Ctrl + K`,就可以寻找你想要的文件。
### 引入重新着色支持
即将发布的 GNOME 文本编辑器可以让你轻松地应用不同的风格模式(或主题),而改变整个应用程序。
博文中提到了更多关于它的内容:
> 本周最直观的工作是引入了重新着色支持。它建立在 [libadwaita][6] 之上,并使用一个 CSS 提供者来覆盖主题中的颜色。我希望在不远的将来libadwaita 会有一个重新着色的 API为我们提供这个功能。
下面是一个应用样式表时的例子:
![鸣谢Christian Hergert][7]
它有一些自带的主题,而且你还可以找到更多的主题。你可以在 Christian 的博客文章中找到更多截图:
![鸣谢Christian Hergert][12]
你可以看看 [博客文章中的更多内容][2],还可以发现一些其他的技术变化,和一个由 Christian 设计的 vim 仿真的复活节彩蛋。
### GNOME “文本编辑器”会取代 Gedit 吗?
到现在为止,官方还没有确认这一点。然而,看一下 [Gedit 的开发活动][8](目前有 41 个 alpha 版本),在过去的几个版本中没有明显增加变化,这可能意味着新的 GNOME “文本编辑器”将在GNOME 42 中取代 Gedit。
事实上,正如其 [GitLab 页面][9] 中所提到的GNOME 的新文本编辑器计划正式取代 Gedit但它会在 GNOME 42 中发生吗?它的开发者 Christian Hergert 在他的博客中提到:
> 随着我们为 GNOME 42 的准备工作而进行的竞赛,[文本编辑器][9] 在过去的几周里已经成型。
这可以被认为是一个暗示GNOME 42 可能会包含这个新的文本编辑器。
不仅仅是 GNOME[KDE 也对 Kate 进行了改造][10],增加了针对开发者的功能。你将会有很多 [开源的文本编辑器][11] 可以选择。
当它发布时,我们将继续关注它。你怎么看?
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/gnome-text-editor-to-replace-gedit/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://twitter.com/hergertme
[2]: https://blogs.gnome.org/chergert/2021/12/03/text-editor-happenings/
[3]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/gnome-text-editor-old-preferences.png?w=870&ssl=1
[4]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/gnome-text-editor-preferences.png?resize=1355%2C2048&ssl=1
[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/gnome-text-editor-popover.jpg?w=1200&ssl=1
[6]: https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/
[7]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/gnome-text-editor-style-scheme.png?w=1200&ssl=1
[8]: https://gitlab.gnome.org/GNOME/gedit
[9]: https://gitlab.gnome.org/GNOME/gnome-text-editor
[10]: https://news.itsfoss.com/kate/
[11]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/
[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/gnome-text-editor-style-scheme-1.png?w=1200&ssl=1

View File

@ -0,0 +1,122 @@
[#]: subject: "Upcoming CutefishOS Could Topple Deepin as the Most Beautiful Linux Distro"
[#]: via: "https://news.itsfoss.com/cutefishos-intro/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14058-1.html"
即将推出的 CutefishOS 可能取代深度成为最漂亮的 Linux 发行版
======
> CutefishOS 能否以其美丽而简单的方式提供良好的 Linux 桌面体验?
![](https://img.linux.net.cn/data/attachment/album/202112/07/104017u0wx6s8mfgl4xlhu.png)
CutefishOS 是一个相对较新的 Linux 发行版,捆绑了它自己的桌面环境(即 CutefishDE
它还不是一个稳定的版本,尚处在测试阶段。
然而随着其最新的测试版v0.6)的发布,它似乎正在成为现有 Linux 发行版的一个有前途的替代方案,专注于简单和美丽。
在这里,我将在你自己尝试之前强调一些关于它的事情。
### CutefishOS 概览
![][1]
请注意,它仍然处于早期开发阶段。因此,如果你打算稍后尝试,你应该对有错误和故障有心理准备。
CutefishOS 基于 [Debian 11 “Bullseye”][2],因此,它应该适用于各种用户,包括 Linux 新用户。
值得注意的是CutefishOS 并不是是专门针对资深用户的。因此,如果你正在寻找一个能提供精细控制和马上就可以定制的发行版,这并不适合你。
重要的是CutefishOS 的开发者希望呈现一个令人耳目一新、无需费心的 Linux 发行版。
当然,如果你想要一个融合了可靠性和独特桌面体验的 Linux我们会推荐你安装 [elementary OS][3]、[Pop!_OS][4]、[Zorin OS][5] 或 [深度操作系统][6]。
而且CutefishOS 计划成为同一类选择中的产品之一,这是一件好事。
我们有大量的 Linux 发行版,但并非所有的发行版都在现代 UI 和可用性方面处于同一水平。因此,如果 CutefishOS 能够达成其目标,这可能会成为 Linux 桌面用户的一个有用选择。
### 它有什么不同?
**用户体验不同。**
是的,与 Windows 和 macOS 相比Linux 发行版一直试图成为最好的桌面体验之一。
![][7]
而且CutefishOS 试图通过引入受到 macOS 启发的桌面体验(它不是第一个这样做的发行版)来加入这场比赛,但方式不同。
它的桌面环境DE是使用 Qt 和基本的 KDE 框架构建的,以此搭建出来了一个好看且资源高效的 DE。
CutefishOS 还提供了一个开箱即用的全局菜单功能。换句话说,你的应用程序的每一个选项都可以直接从状态栏中找到,这使得你的应用程序窗口看起来很干净,并有可能节省一些屏幕空间。
![][8]
虽然你也有可能在 GNOME 或其他桌面环境上实现这种功能,但你得投入一些时间来使其工作。
默认情况下,它呈现出细微的动画效果,但你可以选择使用魔法灯效果,这与 [Zorin OS 16 引入的 Jelly 模式][9] 相似。CutefishOS 的应用程序,如计算器、屏幕截图、文件和视频播放器,都是为该桌面环境量身定做的,给你提供了统一的体验。
你还可以选择深色/浅色模式的主题,同时可以禁用系统效果,以尽量减少对性能的影响(如果你使用的是旧电脑)。
说到定制,你可以定制 Dock 的位置,将其转换为一个完整的 Dockbar并选择在暗色模式下调暗墙纸。我想说的是这些基本的定制选项不会破坏你的体验但可以让你调整一些东西。
你还可以在状态栏中找到切换开关(类似于 iOS 或其他手机)来启用/禁用 Wi-Fi / 蓝牙和暗色模式。
![][10]
至于功能,它目前已经提供了基本的功能,如文件管理器的拖放支持、电源管理、锁屏中的媒体控制,以及其他一些功能。
考虑到他们的目标是一个简单和易于使用的发行版,你不应该期望太多。
![][11]
### 要不要试试 CutefishOS
我测试了 0.6 测试版,它大部分工作正常,直到我启动了预装的 Chromium 浏览器,整个显示都出现了问题。
这可能只是我在我的虚拟机上的问题。所以,如果你有兴趣尝试,我建议在虚拟机或测试机上测试一下,而不是想把它作为日常驱动使用。
- [CutefishOS][12]
不知何故CutefishOS 很像 [JingOS][13],这是一个为 Linux 平板电脑 [JingPad][14] 开发的新发行版。但是他们并不是同一个开发商,尽管 CutefishOS 的网站提到 JingOS 是朋友。
它可能是 “又一个漂亮的发行版” 吗?只有时间才能证明。
它从一开始就看起来很有不错,如果开发者有能力提供一个有竞争力的桌面体验,我们或许可以在未来几年看到它作为 [最漂亮的 Linux 发行版之一][15] 冒出来。
毕竟,我们都想真正看到 “Linux 桌面之年”,对吗?让我们看看是什么发行版为我们做到了这一点!
你对 CutefishOS 有什么看法?请在下面的评论中告诉我你的想法。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/cutefishos-intro/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/cutefish-os.png?w=1355&ssl=1
[2]: https://news.itsfoss.com/debian-11-feature/
[3]: https://news.itsfoss.com/elementary-os-6-release/
[4]: https://pop.system76.com
[5]: https://news.itsfoss.com/zorin-os-16-release/
[6]: https://news.itsfoss.com/deepin-linux-20-2-2-release/
[7]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/cutefish-os-appearance.png?w=950&ssl=1
[8]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/cutefish-os-global-menu.png?w=823&ssl=1
[9]: https://news.itsfoss.com/zorin-os-16-features/
[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/system-tray-toggles.png?w=465&ssl=1
[11]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/cutefish-os-about.png?w=999&ssl=1
[12]: https://en.cutefishos.com
[13]: https://en.jingos.com/
[14]: https://itsfoss.com/jingpad-a1-review/
[15]: https://itsfoss.com/beautiful-linux-distributions/

View File

@ -0,0 +1,93 @@
[#]: subject: "Gaphor: Open Source Graphical Modeling Tool"
[#]: via: "https://itsfoss.com/gaphor-modeling-tool/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14079-1.html"
Gaphor开源的图形化建模工具
======
![](https://img.linux.net.cn/data/attachment/album/202112/13/231534fobo72taxam7f2ma.jpg)
Gaphor 是一个自由开源的建模应用,支持各种建模语言,如 UML、[SysML][1]、RAAML 和 C4。
不知道“<ruby>建模语言<rt>modeling language</rt></ruby>”这个词?基本上,它是一组可以用来创建设计和构造结构的指令。它可以是文字的,也可以是图形的。
图形化的更容易看,也更容易弄清楚项目的各个组成部分是如何相互关联的。
你见过流程图或顺序图吗?那些也是一种最简单形式的图形建模。
![Sequence diagram example][2]
有各种建模语言,它们被用于软件开发、系统工程、物理学、项目管理等方面。
### 用于 UML、SysML 等的 Gaphor
[Gaphor][3] 使用 UML、SysML 和 RAAML OMG 标准。它还包括对 C4 模型的支持,用于软件架构的可视化。
它不仅仅是一个 [绘图工具][4]。它实现了一个完全兼容的 UML 2 数据模型。你可以用 Gaphor 创建高度复杂的模型。
![][5]
用 Python 编写的 Gaphor 在 Apache 2 许可证下是完全开源的。你可以在 [其 GitHub 仓库][6] 找到它的所有源代码。它是一个跨平台的工具,可以安装在 Linux、Windows 和 macOS 上。
你可以以 PDF、PNG、SVG 和 XML 格式导出你的图表。你还可以插入一个代码生成器。
Gaphor 网站提到它有深色模式,但我在下载的 AppImage 版本中没有看到任何选项可以启用它。
### 在 Linux 上安装 Gaphor
![Gaphor user interface][7]
Arch 用户可以在 AUR 中找到 Gaphor。对于其他发行版你可以选择 [AppImage][8] 和 Flatpak。
你可以从其 [下载页面][9] 下载 AppImage。
如果你想使用 Flatpak 版本,请先添加 Flathub 仓库:
```
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
```
然后再安装它:
```
flatpak install --user flathub org.gaphor.Gaphor
```
由于 Gaphor 本质上是一个 Python 应用,你也可以 [使用 Pip][10] 安装它。
```
pip install gaphor
```
当我还是一名软件工程师工作时,我使用 UML 和序列图。在过去的几年里,我没有使用它。看看 Gaphor我认为如果你必须为你的项目创建 UML 和其他图表,它是一个相当不错的应用。
欢迎试一试,并在评论中分享你的经验。
--------------------------------------------------------------------------------
via: https://itsfoss.com/gaphor-modeling-tool/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[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://sysml.org/
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/sequence-diagram-example-800x364.png?resize=800%2C364&ssl=1
[3]: https://gaphor.org/
[4]: https://itsfoss.com/open-source-paint-apps/
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/gaphor-uml-screenshot.jpg?resize=800%2C570&ssl=1
[6]: https://github.com/gaphor
[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/gaphor-example-800x445.png?resize=800%2C445&ssl=1
[8]: https://itsfoss.com/use-appimage-linux/
[9]: https://gaphor.org/download.html#linux
[10]: https://itsfoss.com/install-pip-ubuntu/

View File

@ -0,0 +1,95 @@
[#]: subject: "Learn more about distributed databases with ShardingSphere"
[#]: via: "https://opensource.com/article/21/12/apache-shardingsphere"
[#]: author: "Trista Pan https://opensource.com/users/trista-pan"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14095-1.html"
ShardingSphere 分布式数据库简介
======
> Apache ShardingSphere 是一个开源的分布式数据库,它还有一个用户和开发人员需要的生态系统,为之提供了定制和云原生的体验。
![](https://img.linux.net.cn/data/attachment/album/202112/19/093406msdyogai9rzo2rvo.jpg)
Apache ShardingSphere 是一个开源的分布式数据库,它还有一个用户和开发人员需要的生态系统,为之提供了定制和云原生的体验。在加入 Apache 基金会的三年里ShardingSphere 核心团队与社区一起努力工作,创建了一个开源的、强大的、分布式的数据库和一个支持性生态系统。
ShardingSphere 并不完全符合业界通常的简单分布式数据库中间件解决方案的模式。ShardingSphere 重新创建了分布式可插拔系统,使实际的用户实施方案得以蓬勃发展,并为社区和数据库行业贡献有价值的解决方案。
ShardingSphere 的目标是 _Database Plus_ 概念。
### Database Plus
Database Plus 的出发点是在零散的数据库基本服务之上建立一个标准层和生态系统层。统一的、标准化的数据库使用规范为上层应用提供了保障,尽可能的减少了企业因底层数据库碎片化而面临的挑战。为了连接数据库和应用,它使用了流量和数据的渲染和解析。它为用户提供了增强的核心功能,如分布式数据库、数据安全、数据库网关和压力测试。
ShardingSphere 为 Database Plus 使用了可插拔的内核架构。这意味着模块化,这为用户提供了灵活性。它有几个不同的层:
* **基础层:** 提供各种访问终端和访问形式,满足用户在不同场景下的需求。
* **插件层:** 通过实现可扩展性提供基础设施支持。
* **功能层:** 提供各种满足用户需求的功能插件,使用户在选择和组合插件时具有高度的灵活性。
* **产品层:** 这是终端用户看到的层。这为他们提供了面向行业和特定场景的产品。换句话说,它为用户提供了适合他们所做的任何工作的工具。
![Database Plus platform][2]
Trista Pan, [CC BY-SA 4.0][3]
### 用 DistSQL 进行标准化的集群管理
Apache ShardingSphere 采用独特的 SQL 方言 DistSQL分布式 SQL来连接 ShardingSphere 生态系统的所有元素。作为 ShardingSphere 分布式数据库生态系统的标准交互语言DistSQL 允许用户使用一个 SQL 命令来创建、修改或删除分布式数据库表或对其进行加密或解密。DistSQL 还支持分布式调度管理。
![DistSQL][4]
Trista Pan, [CC BY-SA 4.0][3]
### 多访问终端
ShardingSphere JDBC 和 ShardingSphere Proxy 经过两年的打磨和测试,目前已经可以投入生产。许多社区用户提供了相关的生产社区案例。
多亏共享核心架构,以及不同的 ShardingSphere 适配器,如果用户的生产环境需要,可以选择混合适配器部署(如下图所示)。
![Hybrid deployment][5]
Trista Pan, [CC BY-SA 4.0][3]
### 分布式治理
在 ShardingSphere 生态系统中,计算和存储是分开的,因此具备对数据库进行分布式治理的能力,所以你可以维护许多存储节点、计算节点,实施断路器,并确保高可用性。
![Distributed governance][6]
Trista Pan, [CC BY-SA 4.0][3]
### 使用 Grafana 监控
ShardingSphere 也有状态指标来监控你的基础设施。代理动态加载机制为你提供了指标和跟踪指标,方便您将 APM 系统与 Grafana 仪表板集成。
![Grafana dashboard][7]
Trista Pan, [CC BY-SA 4.0][3]
### 分布式社区的分布式数据库
社区正在继续优化 ShardingSphere并整合新的想法和行业场景。社区构建了它而开发的主要动力之一是用户反馈。这是开源的一个特点但也是这个团队的实践方法。ShardingSphere 社区的核心团队成员很乐意指导任何对开源感兴趣的人,并为有兴趣帮助开发的学生提供实践问题。团队也希望有新的朋友或贡献者加入社区,促进思想的开放交流,创造一个真正的全球开发者社区。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/apache-shardingsphere
作者:[Trista Pan][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/trista-pan
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bus_cloud_database.png?itok=lhhU42fg (Cloud and databsae incons)
[2]: https://opensource.com/sites/default/files/uploads/database-plus-platform.png (Database Plus platform)
[3]: tps://creativecommons.org/licenses/by-sa/4.0/
[4]: https://opensource.com/sites/default/files/uploads/distsql.png (DistSQL)
[5]: https://opensource.com/sites/default/files/uploads/hybrid-deployment.png (Hybrid deployment)
[6]: https://opensource.com/sites/default/files/uploads/distributed-governance.png (Distributed governance)
[7]: https://opensource.com/sites/default/files/uploads/grafana-dashboard.png (Grafana dashboard)

View File

@ -0,0 +1,168 @@
[#]: subject: "Linux Jargon Buster: What is a Cron Job in Linux?"
[#]: via: "https://itsfoss.com/cron-job/"
[#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/"
[#]: collector: "lujun9972"
[#]: translator: "jrglinux"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14085-1.html"
Linux 黑话解释:什么是定时任务
======
![](https://img.linux.net.cn/data/attachment/album/202112/16/112554pna46aemuh84ta3m.jpg)
在本期的《Linux 黑话解释》系列文章中,你将了解到 Linux 中的<ruby>定时任务<rt>cron job</rt></ruby>功能。你将通过学习编辑 `crontab` 文件来创建定时任务。
### 何为定时任务
`cron` 是一个用于按计划运行短小且快速的命令的实用命令行工具。该工具是一个方便、经典的系统管理工具,通过和其他工具结合使用可以自动运行各式各样的任务。比如,有些人通过把 `rsync``cron` 结合使用,在特定的时间自动创建每日备份和每周备份。也有些人使用 `cron` 来分析服务器日志,并且结合邮件系统功能,在日志检测到错误时自动发送告警邮件。
`cron` 就如同“瑞士军刀”一样,可以多场景多样化使用。尽可能发挥你的想象,去挖掘它的功能。
其实 `cron` 的使用很容易上手,只需要几秒钟。不过在我们开始上手之前,先来讨论下几个经常容易混淆的概念。
### cron、定时任务、crontab
有三个术语比较容易混淆:`cron`、定时任务和 `crontab`,让我们来看看它们的含义:
| 术语 | 含义 |
| ------------ | ------------------------------------------------------------ |
| `cron` | 这是安装在系统上的实际执行定时任务的 [守护进程][1]。 |
| 定时任务 | “任务”是指一段启动并运行的程序。`cron` 可以按照约定的时间计划运行各种任务,这样的任务通常叫做“定时任务”。 |
| [crontab][2] | 这是一个文件,用于定义定时任务。一个 `crontab` 文件可以通过表格形式(每一行就是一个定时任务)定义多个定时任务。 |
来看一个简单例子:创建一个定时任务,每小时向 `crontabl_log.txt` 文件打印 `Linux is cool!`
```
0 * * * * echo "Linux is Cool!" >> ~/crontab_log.txt
```
是不是这么个简单定时任务的例子都让你感到惊恐,这是因为你需要懂得如何去读懂一个定时任务的属性。
我将在后文中讲述这个基础理论知识。
### 上手 cron
我们通过另一个例子来看看 `cron` 如何工作。
为了创建定时任务(或者说 `cron` 将要执行的命令任务),你只需要运行:
```
crontab -e
```
这将会打开一个文件,用于编辑定时任务:
![Crontab default view][3]
其中,所有以 `#` 开头的行都是注释,用于指导你如何使用 `cron`,如果觉得没用可以删除它们。
我们将创建如下任务,作为我们的第一个定时任务:
```
* * * * * touch ~/crontab_test
```
让我快速看看该任务将会做什么:
定时任务都是以 “分钟 小时 天 月 周 命令” 形式呈现:
* 分钟:指该任务在哪一分钟会被执行。所以,该值为 `0` 则代表在每个小时开始时运行,`5` 则代表在每个小时的第 5 分钟会运行。
* 小时:指该任务在一天中的哪个小时会被执行,取值范围为 `0-23`。没有 `24` 的原因是 `23` 时的末尾是半夜 `11:59`,然后就是每天的开始 `0` 时。分钟的取值范围定义逻辑与之类似。
* 天:指一个月中的哪一天执行该任务,取值范围是 `1-31`(不同于前面的分钟和小时从 `0` 开始取值)。
* 月:指该任务在哪个月被执行,取值范围是 `1-12`
* 周:指该任务在星期几被执行,从周日开始算起,取值范围是 `0-6`(分别对应周日、周一到周六)。
* 命令:是你想要运行的命令任务。
![][4]
如果想对 “分钟 小时 天 月 周” 部分有更详细的理解,可以参考 [Crontab guru 网站][5],该网站可以帮助你理解正在执行什么。
接着之前的例子 `* * * * * touch ~/crontab_test`,表示每分钟创建一次 `~/crontab_test` 文件。
让我们将该任务编辑进 `crontab` 然后看看执行结果:
![][6]
等到下一分钟,你就会发现你的家目录下多了文件 `crontab_test`:
![][7]
这便是 `cron` 的基础应用示例。
### 一个实用的定时任务示例
假设你想创建一个脚本,用于拷贝多个目录内容到一个路径并打包作为备份,该如何实现?
通过 `cron` 定时任务就可以很容易实现该功能。
请看如下脚本:
```
#!/usr/bin/bash
echo "Backing up..."
mkdir -p ~/.local/tmp/
tar -Pc ~/Documents/ -f ~/.local/tmp/backup.gz
```
该脚本做了如下事情:
1. 确保备份路径目录 `~/.local/tmp/` 存在。
2. 将目录 `~/Documents/` 下的所有内容打包至文件 `~/.local/tmp/backup.gz`
我们先来手动运行该脚本,看看它到底如何工作。
首先,我们在家目录(`~`)下创建该脚本,命令为 `backup_script`,如下图所示:
![][8]
然后编辑 `backup_script` 脚本,写入上面那个脚本代码。
接着,赋予 `backup_script` 可执行权限:
![][9]
最后运行脚本 `~/backup_script`,进行功能验证:
![][10]
你可以通过运行命令 `tar -xf ~/.local/tmp/backup.gz -C <output_dir>` 来进行备份恢复,这里 `<output_dir>` 是指文件要恢复到的路径目录。
接下来,就可以用 `cron` 工具来进行定时任务运行该脚本了。
举个例子,假设需要每天的凌晨 3 点运行该备份脚本,你可以在 `crontab` 中输入如下命令:
```
* 3 * * * ~/backup_script
```
这样你就可以每天自动进行备份操作了。
### 后记
本文简单介绍了定时任务功能。尽管我不确定 Linux 桌面用户使用该功能多不多,但我知道定时任务功能被许多系统管理员广泛应用。如果你有什么想法,欢迎在评论区留言。
--------------------------------------------------------------------------------
via: https://itsfoss.com/cron-job/
作者:[Hunter Wittenborn][a]
选题:[lujun9972][b]
译者:[jrglinux](https://github.com/jrglinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/hunter/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/linux-daemons/
[2]: https://linuxhandbook.com/crontab/
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/crontab-file.webp?resize=800%2C673&ssl=1
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/crontab-explanation.webp?resize=800%2C450&ssl=1
[5]: https://crontab.guru/
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/cron-example-1.webp?resize=557%2C241&ssl=1
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/result-of-cron-job.webp?resize=557%2C241&ssl=1
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/complex-cron-example.webp?resize=548%2C295&ssl=1
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/complex-cron-example-1.webp?resize=548%2C385&ssl=1
[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/complex-cron-result.png?resize=800%2C220&ssl=1

View File

@ -0,0 +1,122 @@
[#]: subject: "Open source photo processing with Darktable"
[#]: via: "https://opensource.com/article/21/12/open-source-photo-processing-darktable"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14088-1.html"
用开源的 Darktable 进行照片处理
======
> 如果你拍摄的照片值得处理,那么你可以看看 Darktable 为你提供了什么。
![](https://img.linux.net.cn/data/attachment/album/202112/17/110051ezze4uatt2d2f94e.jpg)
很难说好照片是如何产生的。你必须在正确的时间出现在正确的地点。你必须准备好相机和构图的观察力。而这只是发生在相机里的部分。好的摄影还有另一个阶段,许多人都没有想到这一点。它曾经需要在 _暗房_ 中的灯光和化学品,但在今天的数字工具中,后期制作发生在暗房软件中。最好的照片处理器之一是 [Darktable][2],我在 2016 年写了一篇 [介绍 Darktable][3] 的文章。那篇文章已经过去五年了,所以我想我应该重新审视一下这个应用,写一写它的一个高级功能:蒙版。
自从我最初写下这篇文章以来Darktable 并没有什么变化,在我看来,这是一个真正好的应用的标志之一。一个稳定的界面和持续的优秀性能是人们对软件的所有要求,而 Darktable 依旧熟悉而强大。如果你是 Darktable 的新手,请阅读我的 [介绍性文章][3],了解基础知识。
### 什么是蒙版?
在照片处理中,蒙版被用来限制你对图像的调整,使其只限于图像的一个区域。
直观地说,<ruby>蒙版<rt>mask</rt></ruby> 是视觉艺术中的一种技术,用一种材料来遮挡另一种材料。如果你曾经在你的公寓或房子里画过一面墙,你可能使用过 _遮蔽胶带_(也叫油漆工胶带)来保护相邻的墙壁或造型不受杂乱笔触的影响。完成后,你剥去遮蔽胶带,你就有了漂亮的油漆直线。
<ruby>模板<rt>stencil</rt></ruby>也是遮蔽的一种形式。
![A mask made of masking tape][4]
Seth Kenlon, [CC BY-SA 4.0][5]
这是一种在摄影中使用了一个世纪的技术,因此,数字摄影工具有一个类似的技术也是合理的。
### 在 Darktable 中使用蒙版
在这个例子中,我使用了 Flickr 用户 **bcnewdemocrats** 的创作共用照片。这是一张很好的照片,因为它有迷人的主题(两个孩子在他们非常耐心的父亲脸上涂抹 Holi 粉)。因为它是关于印度的五彩节,所以它在整个过程中都有色彩飞溅。
![Original photograph][6]
bcnewdemocrats, [CC BY-SA 4.0][5]
这是一张不需要改进的照片,但并不是所有的调整都需要剧烈变化才能产生显著效果。
色彩校正滤镜提供了一个特别明显的调整。在彩色摄影中,尤其是人物摄影中,一个常见的修正是添加 _琥珀色_(一种偏红的橙色)。人类肤色受益于琥珀色,因为我们把这种颜色与温暖和生命联系起来。
点击 “<ruby>开启<rt>On</rt></ruby>” 按钮,激活 Darktable 窗口右侧的色彩校正调整面板。将中心点向上和向右拖动,给照片增加琥珀色。
![Color correction panel][7]
Seth Kenlon, [CC BY-SA 4.0][5]
这样做之后,整张照片就会浸透在琥珀色里。
![Darktable global color correction][8]
Seth Kenlon, [CC BY-SA 4.0][5]
在色彩校正面板的底部,点击 “<ruby>drawn & parametric mask<rt>绘制和参数化蒙版</rt></ruby>” 按钮。
![Apply mask button][9]
Seth Kenlon, [CC BY-SA 4.0][5]
在显示出来的工具栏中,你有几种蒙版形状可以选择。有圆、椭圆、路径、画笔、梯度,还有一个编辑现有蒙版的选项。为了简单起见,选择圆形,然后点击你的对象的脸。
![Circle mask][10]
Seth Kenlon, [CC BY-SA 4.0][5]
你的色彩校正滤镜立即被限制在你的圆形蒙版的区域内,给你的主要对象一个令人愉快的琥珀色调,同时避开背景。
![Color correction within a circle mask][11]
Seth Kenlon, [CC BY-SA 4.0][5]
你可以通过切换色彩校正滤镜的关闭和开启来看到区别。
### 复用蒙版
如果你想只对被摄者的脸部应用另一个滤镜,你不必为那个新的滤镜再创建一个蒙版。当你创建一个蒙版时,它会被添加到位于 Darktable 界面左边的 “<ruby>蒙版管理器<rt>mask manager</rt></ruby>” 面板上。默认的名字是非常通用的,但你可以双击每个蒙版的名字来重命名它。
![Mask manager][12]
Seth Kenlon, [CC BY-SA 4.0][5]
当你应用一个新的滤镜时,不是选择一个新的蒙版形状来创建,而是点击 “<ruby>不使用蒙版<rt>no mask used</rt></ruby>” 下拉菜单来查看现有的蒙版列表,以及之前在同一个滤镜上一起使用过的自动分组的蒙版。选择你想用于新滤镜的蒙版或蒙版组。
![Selecting an existing mask][13]
Seth Kenlon, [CC BY-SA 4.0][5]
### 更多蒙版
在 Darktable 中还有很多其他类型的蒙版和蒙版功能可以探索。你可以用路径和画笔工具创建复杂的形状。你也可以完全放弃使用形状,并根据色度和亮度值将过滤器限制在图像的某个区域。你可以调整蒙版的模糊度和扩散度等。在 Darktable 中进行的所有调整中,最好的一点是它们都是动态的、非破坏性的。如果你改变主意,你可以随时关闭它们,而且你实际上从未影响过图像数据本身。这并不奇怪,因为 Darktable 确实是一个强大的摄影工具,如果你拍摄的照片值得处理,你就应该看看 Darktable 为你提供了什么。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/open-source-photo-processing-darktable
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [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/design_photo_art_polaroids.png?itok=SqPLgWxJ (Polaroids and palm trees)
[2]: https://www.darktable.org/
[3]: https://opensource.com/life/16/4/how-use-darktable-digital-darkroom
[4]: https://opensource.com/sites/default/files/uploads/masking.jpg (A mask made of masking tape)
[5]: https://creativecommons.org/licenses/by-sa/4.0/
[6]: https://opensource.com/sites/default/files/uploads/darktable-darkroom.jpg (Original photograph)
[7]: https://opensource.com/sites/default/files/uploads/darktable-panel-color-correction.jpg (Color correction panel)
[8]: https://opensource.com/sites/default/files/uploads/darktable-color-correction-global.jpg (Darktable global color correction)
[9]: https://opensource.com/sites/default/files/uploads/darktable-button-mask.jpg (Apply mask button)
[10]: https://opensource.com/sites/default/files/uploads/darktable-button-circle.jpg (Circle mask)
[11]: https://opensource.com/sites/default/files/uploads/darktable-color-mask.jpg (Color correction within a circle mask)
[12]: https://opensource.com/sites/default/files/uploads/darktable-mask-manager.jpg (Mask manager)
[13]: https://opensource.com/sites/default/files/uploads/darktable-mask-select.jpg (Selecting an existing mask)

View File

@ -0,0 +1,126 @@
[#]: subject: "Zorin OS 16 Lite Edition is Finally Here With Latest Xfce 4.16"
[#]: via: "https://news.itsfoss.com/zorin-os-16-lite-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14068-1.html"
Zorin OS 16 Lite 版终于来了
======
> Zorin OS 16 Lite 带来了 Zorin OS 16 的所有优点和 Xfce 桌面环境。让我们来了解一下。
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/zorin-os-16-lite-ft.jpg?w=1200&ssl=1)
[Zorin OS 16][1] 是一个令人印象深刻的版本。但是,如果你正在寻找一个轻量级的发行版或适合旧电脑的东西,这不是一个好的选择。
Zorin OS 为每个版本都提供了一个由 Xfce 桌面环境驱动的 Lite 版本以供资源有限的计算机使用。然而直到刚刚之前Zorin OS 16 还没有这个 Lite 版。
是的终于Zorin OS 16 Lite 现在可以和 Pro 版一起下载了。
请注意,如果你已经购买了 Zorin OS 16 Pro那么 Lite 版也包括在内。
LCTT 译注Zorin OS 的 Pro 版是收费的,其 Core 版和 Lite 版是免费的。)
### Zorin OS 16 Lite: 有什么新内容?
![][2]
在这个版本中Zorin OS 16 Lite 旨在通过保持最小的资源使用量,带来所有 [Zorin OS 16 中引入的改进][3]。
我为了制作的视频点评而简要地测试了该发行版,对它留下了相当深刻的印象。
有趣的是Zorin OS 16 Lite 设法提供了类似于 Xfce 的用户体验和精美的桌面环境。通常情况下,我不喜欢 Xfce 桌面环境(只是一种审美选择),但 Zorin OS 16 Lite 不同。
我做了一个 Zorin OS 16 Lite 专业版的视频,你可以看到它的运行情况。
![video](https://youtu.be/Cl5qXPY9OLk)
#### 视觉大修
![][5]
带有 Xfce 4.16 的 Zorin OS 16 Lite 提供了令人耳目一新的用户体验,其精美的主题与 Zorin OS 16GNOME 版)非常相近。
你可以调整主题,切换暗色模式,并从外观菜单中选择一种重点颜色。外观选项也得到了刷新,可以让你在 Zorin OS 16 Lite 上轻松定制体验。
不幸的是,你在这里找不到像 Zorin OS 16 一样的果冻模式。因此如果你需要眼花缭乱的动画Lite 版可能不是你的合适选择。
除了新的视觉变化和功能之外,你还会发现新的可以填补你的桌面的背景。有些壁纸可能只限于 Pro 版。
![][6]
#### Pro 版的桌面布局
虽然在 Core 版和 Lite 版中有一些桌面布局的选择,但 Pro 版又为你提供了两个额外的桌面布局。
![][12]
其中一个布局类似于经典的 Windows 设计,另一个布局看起来接近于 ChromeOS。
![][13]
你还可以在类似 macOS、GNOME 2 和类似 Windows 列表的布局之间进行选择。
请注意,作为 [Windows 用户的最佳发行版之一][7],其默认的布局类似 Windows这应该是一个很好的体验。
#### 带有窗口预览的任务栏
![][14]
桌面功能有一个重要的改进,也就是说,现在当你从任务栏悬停在一个活动窗口上时,你可以很容易地查看该窗口的预览。
在用预先发布的 ISO 进行测试时,这个体验并不流畅。但是,考虑到他们已经消除了一些错误,这是 Zorin OS 16 Lite 中的一个很好的功能。
#### 默认启用的 Flathub
应用中心(软件中心)也提供了 Flathub 集成,开箱即用。你应该可以从软件中心很快地找到 Flatpak 应用程序,如果你不喜欢 Flatpak 软件包,可以改变软件包源。
#### 其他改进
![][15]
除了关键的变化外,你还会发现一些改进,如禁用遥测的 Firefox 浏览器、新的声音记录器应用、高分辨率显示器的小数点级缩放以及 Rythmbox 应用。
Thunar 文件管理器有一些常规的微小改进,并与其他设计融为一体。你应该能够使用 parole 视频播放器来播放视频了。
[Linux 内核 5.11][10] 也改进了一些技术兼容性。
总的来说Zorin OS 团队在将 Zorin OS 16 的漂亮设计和易用性延续到其 Lite 版方面做得很好。大部分时间,你甚至可能没有意识到你在使用 Xfce 桌面环境。
### 下载 Zorin OS 16 Lite
你可以前往其下载页面获取 Zorin OS 16 Lite 的 ISO。如果你已经购买了 Zorin OS 16 Pro 版,你可以使用电子邮件中的链接来下载 Lite 版。
- [Zorin OS 16 Lite][11]
你对 Zorin OS 16 Lite 有什么看法?欢迎在评论中告诉我们你的想法。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/zorin-os-16-lite-release/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://news.itsfoss.com/zorin-os-16-release/
[2]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/zorin-os-desktop-16-lite.jpg?w=1200&ssl=1
[3]: https://news.itsfoss.com/zorin-os-16-features/
[4]: https://i2.wp.com/i.ytimg.com/vi/Cl5qXPY9OLk/hqdefault.jpg?w=780&ssl=1
[5]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/desktop-look.png?w=1024&ssl=1
[6]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/wallpapers.png?w=960&ssl=1
[7]: https://itsfoss.com/windows-like-linux-distributions/
[10]: https://news.itsfoss.com/linux-kernel-5-11-release/
[11]: https://zorin.com/os/download/
[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/chrome-os-like-desktop.jpg?w=1024&ssl=1
[13]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/windows-classic-like.jpg?w=1024&ssl=1
[14]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/window-previews.png?w=660&ssl=1
[15]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/zorin-os-16-lite-neofetch.png?w=655&ssl=1

View File

@ -0,0 +1,73 @@
[#]: subject: "Reveal your source code with Jinja2 and Git"
[#]: via: "https://opensource.com/article/21/12/reveal-source-code-jinja2-git"
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14091-1.html"
用 Jekyll 和 Git 展示你的源码
======
> 我是如何通过链接每个页面回到其原始源代码来保持我的网站开放的。
![](https://img.linux.net.cn/data/attachment/album/202112/18/093318uoud175bj4d55zz5.jpg)
我是一个开源的超级粉丝。
我支持这项事业的一个小方法是从一开始就保持我的个人博客网站开放。我这样做的部分原因是让人们看到每个页面背后的变化历史。还因为当我开始使用 [Jekyll][2] 时,我没有找到很多开源的 Jekyll 博客可以学习。我希望保持我的网站开放并公开我的尝试和错误,可以为其他人节省很多时间。
### Jekyll 的 page.path 变量
我实现这一目标的方法之一是将我发布的每一个条目链接到其原始的 [Markdown][3]。[Jekyll 的变量][4] 中正好有一个需要的工具:`page.path`。这个变量包含每个页面的原始文件系统路径。官方的描述甚至强调了它的作用是链接回源!
在一篇文章的 Markdown 文件中打印 `{{page.path }}`,可以得到类似这样的结果:
```
_posts/2021-10-10-example.md
```
假设该文章的源代码存在于这个路径:
```
https://example.com/ayushsharma-in/-/blob/master/_posts/2021-10-10-example.md
```
如果你在任何文章的 `page.path` 前加上 `https://example.com/ayushsharma-in/-/blob/master/`,它就会生成一个返回其源码的链接。
在 Jekyll 中,生成这个完整的链接看起来像这样:
```
<a href="{{ page.path | prepend: site.content.blog_source_prefix }}" target="_blank">View source</a>
```
就是这么简单。
### Jekyll 和开放 Web
现代 Web 是一种错综复杂的多层次技术,但这并不意味着它必须让人摸不清。有了 Jekyll 的变量,你可以确保你的用户可以,了解更多关于你是如何建立你的网站的,如果他们愿意的话。
你可以在我的[个人博客][5]上看到真实的例子:滚动到底部的查看源码链接。
本文改编自 [ayush sharma 的笔记][6],并经许可转载。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/reveal-source-code-jinja2-git
作者:[Ayush Sharma][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ayushsharma
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_blue_text_editor_web.png?itok=lcf-m6N7 (Text editor on a browser, in blue)
[2]: https://opensource.com/article/21/9/build-website-jekyll
[3]: https://opensource.com/article/19/9/introduction-markdown
[4]: https://jekyllrb.com/docs/variables/#page-variables
[5]: https://www.ayushsharma.in
[6]: https://www.ayushsharma.in/2021/11/linking-jekyll-pages-back-to-their-git-source-code

View File

@ -0,0 +1,250 @@
[#]: subject: "Using GPG to Encrypt and Decrypt Files on Linux [Hands-on for Beginners]"
[#]: via: "https://itsfoss.com/gpg-encrypt-files-basic/"
[#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14082-1.html"
手把手指导:在 Linux 上使用 GPG 加解密文件
======
![](https://img.linux.net.cn/data/attachment/album/202112/15/133531wcs1iy4luihr3beg.jpg)
[GnuPG][1],俗称 GPG是一个非常通用的工具被广泛用作电子邮件、信息、文件或任何你需要安全地发送给别人的东西的加密行业标准。
学习使用 GPG 很容易,你可以在几分钟内就学会使用它。
在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你完全陌生的情况下理解它。
请先阅读整个教程,然后开始自己做。
### GPG 是如何进行加密的?
![GPG 加密][2]
要使用 GPG你首先需要有一个 GPG 密钥。
GPG 密钥是你在后面的教程中用来加密(或解密)文件的东西。它也是用来识别你的身份的,你的名字和电子邮件也会与密钥绑定。
GPG 密钥的工作原理是使用两个文件,一个私钥和一个公钥。这两个密钥是相互联系的,并且 GPG 的所有功能都需要使用它们,特别是对文件加密和解密。
当你用 GPG 加密一个文件时,它使用的是私钥。然后,这个新的加密文件**只能**用配对的公钥进行解密。
私钥,顾名思义,是以私下的、不给任何人看的方式来存储的密钥。
另一方面,公钥是用来给其他人的,或者你希望能够解密你的文件的任何人。
这就是 GPG 的加密方法的主要作用。它允许你对文件进行本地加密,然后允许其他人确保他们收到的文件实际上是由你发送的。因为他们能够解密文件的唯一方法是使用你的公钥,而这只有在文件首先使用你的私钥加密的情况下才有效。
**反之**其他人可以用你的公钥对文件进行加密而唯一能够解密的方法是用你的私钥。因此允许其他人公开发布文件而不用担心除了你以外的人能够阅读它们。LCTT 译注:另外一个常见的用例是你用你的私钥对公开发布的文件进行签名,别人使用你的公钥通过验证你的签名而确信文件是你发布的、并没有被篡改。但本文没有涉及这个用例。)
换句话说,如果一个文件是用私钥加密的,它只能用相应的公钥解密。而如果一个文件是用公钥加密的,它只能用相应的私钥解密。
#### 你已经在使用 GPG 而没有意识到
一个最常见的使用 GPG 的例子是在 Linux 软件包管理器中,特别是 [外部仓库][3]。你把开发者的公钥添加到你系统的可信密钥中。开发者用他/她的私钥签署软件包(生成签名)。由于你的 Linux 系统拥有该公钥文件,它就能理解该软件包实际上是来自受信任的开发者。
许多加密服务在你没有意识到的情况下使用了某种 GPG 的实现。但现在最好不要去研究这些细节。
现在你对这个概念有点熟悉了,让我们看看如何使用 GPG 来加密一个文件,然后用它来解密。
### 用 GPG 对文件进行加密和解密
![][4]
这是一个非常简单的场景。我假定你只有一个系统,你想看看 GPG 是如何工作的。你并没有把文件发送到其他系统。你对文件进行加密,然后在同一个系统上解密。
当然,这不是一个实际的用例,但这也不是本教程的目的。我的目的是让你熟悉 GPG 命令和功能。之后,你可以在现实世界中使用这些知识(如果需要的话)。为此,我将告诉你如何与他人分享你的公钥。
#### 第一步:安装 GPG
GPG 可以在大多数发行版的软件库中找到,开箱即用。
在基于 Debian 和 Ubuntu 的系统中,安装 `gpg` 包:
```
sudo apt install gpg
```
如果你使用 [基于 Arch 的发行版][5],用 [pacman 命令][6] 安装 `gnupg` 软件包:
```
sudo pacman -S gnupg
```
#### 第二步:生成一个 GPG 密钥
在你的系统上生成一个 GPG 密钥只需要一条简单的命令。
只要运行下面的命令,就会生成你的密钥(你可以对大多数问题使用默认值,如下面的下划线部分所示)。
```
gpg --full-generate-key
```
![生成 GPG 密钥][7]
**检查 GPG 密钥**
然后你可以通过使用 `--list-secret-keys``--list-public-keys` 参数,分别看到私钥和公钥都是通过 `pub` 下显示的那个 ID 相互绑定的。
![列出 GPG 密钥][8]
#### 第三步:用 GPG 加密一个文件
现在你已经设置了 GPG 密钥,你可以开始对我们的文件进行加密了。
使用下面的命令来加密文件:
```
gpg --encrypt --output file.gpg --recipient user@example.com file
```
让我们快速浏览一下该命令的内容:
首先,你指定了 `—encrypt` 选项。这告诉 GPG我们将对一个文件进行加密。
接下来,你指定了 `--output file.gpg`。这可以是任何名字,不过惯例是给你要加密的文件的名称加上 `.gpg` 扩展名(所以 `message.txt` 会变成 `message.txt.gpg`)。
接下来,你输入 `—recipient user@example.com`。这指定了一个相应的 GPG 密钥的电子邮件,这个密钥实际上在这个系统上还不存在。
有点迷惑?
工作原理是,你在这里指定的电子邮件必须与你本地系统中的公钥相联系。
通常情况下,这将是来自另外一个人的 GPG 公钥,你要用它来加密你的文件。之后,该文件将只能用该用户的私钥进行解密。
在这个例子中,我将使用我以前的与 `user@example.com` 关联的 GPG 密钥。因此,其逻辑是,我用 `user@example.com`_公钥_ 对文件进行加密,然后只能用 `user@example.com`_私钥_ 进行解密。
如果你是为别人加密文件,你只有该公钥,但由于你是为自己加密文件,你的系统上有这两个密钥。
最后,你只需指定你要加密的文件。在这个例子中,让我们使用一个名为 `message.txt` 的文件,内容如下:
```
We're encrypting with GPG!
```
![文本文件样本][10]
同样地,如果电子邮件是 `user@example.com`,新的 GPG 命令将如下所示:
```
gpg --encrypt --output message.txt.gpg --recipient user@example.com message.txt
```
![用 GPG 加密文件][11]
如果你尝试阅读该文件,你会看到它看起来像乱码。这是预料之中的,因为该文件现在已经被加密了。
![读取加密文件会产生乱码][12]
现在让我们删除未加密的 `message.txt` 文件,这样你就可以看到 `message.txt.gpg` 文件实际上在没有原始文件的情况下也能正常解密。
![][13]
#### 第四步:用 GPG 解密加密的文件
最后,让我们来实际解密加密的信息。你可以用下面的命令来做。
```
gpg --decrypt --output file file.gpg
```
通过这里的参数,我们首先指定 `—decrypt`,它告诉 GPG 你将会解密一个文件。
接下来,你输入 `—output` 文件,这只是告诉 GPG在你解密后你将把我们文件的解密形式保存到哪个文件。
最后,你输入 `file.gpg`,这是你的加密文件的路径。
按照这个例子,我使用的命令是这样的。
```
gpg --decrypt --output message.txt message.txt.gpg
```
![用GPG解密文件][14]
然后就完成了!当你想用 GPG 加密和解密文件时,这就是全部内容了。
剩下你可能想知道的是如何与他人分享你的公钥,以便他们在将文件发送给你之前对其进行加密。
### 发送和接收 GPG 密钥
要给别人发送一个 GPG 密钥,你首先需要从你的**钥匙链**中导出它,它包含了你所有的公钥和私钥。
要导出一个密钥,只需在你的钥匙链中找到密钥的 ID然后运行以下命令用密钥的 ID 替换 `id`,用你想保存的文件名替换 `key.gpg`
```
gpg --output key.gpg --export id
```
![导出 GPG 公钥][15]
要导入一个密钥,只需把输出文件(来自前面的命令)给其他用户,然后让他们运行下面的命令。
```
gpg --import key.gpg
```
![][16]
但要正常使用该密钥,你需要验证该密钥,以便 GPG 正确地信任它。
这可以通过在其他用户的系统上使用 `--edit-key` 参数来完成,然后对密钥进行签名。
首先运行 `gpg --edit-key id`
![GPG 编辑密钥][17]
接下来,使用 `—fpr` 参数,它将显示密钥的指纹。这个命令的输出应该与你自己机器上的输出进行验证,这可以通过在你的系统上运行同样的 `--edit-key` 参数来找到。
![GPG 密钥的指纹][18]
如果一切吻合,只需使用 `—sign` 参数,一切就可以开始了。
![签署 GPG 密钥][19]
就是这样!其他用户现在可以开始用你的公钥加密文件了,就像你之前做的那样,这可以确保它们只有在你用你的私钥解密时才能被你读取。
这就是使用 GPG 的所有基础知识!
### 总结
现在你已经了解了开始使用 GPG 所需要的一切,包括为自己和他人加密文件。正如我前面提到的,这只是为了了解 GPG 的加密和解密过程是如何工作的。你刚刚获得的基本 GPG 知识在应用于真实世界的场景中时可以更上一层楼。
还需要一些帮助来弄清楚一些东西,或者有一些不工作的东西?欢迎在下面的评论中留下任何内容。
--------------------------------------------------------------------------------
via: https://itsfoss.com/gpg-encrypt-files-basic/
作者:[Hunter Wittenborn][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/hunter/
[b]: https://github.com/lujun9972
[1]: https://gnupg.org/
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/GPG-encryption-explained.png?resize=800%2C300&ssl=1
[3]: https://itsfoss.com/adding-external-repositories-ubuntu/
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/GPG-encryption-basic.png?resize=800%2C450&ssl=1
[5]: https://itsfoss.com/arch-based-linux-distros/
[6]: https://itsfoss.com/pacman-command/
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-key-generation.png?resize=676%2C663&ssl=1
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-list-keys-1.png?resize=703%2C379&ssl=1
[9]: https://itsfoss.com/cdn-cgi/l/email-protection
[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-example-message.png?resize=665%2C277&ssl=1
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-example-message-encrypted-800x252.png?resize=800%2C252&ssl=1
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-example-message-encrypted-gibberish.png?resize=800%2C252&ssl=1
[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-message-original-deleted.png?resize=800%2C252&ssl=1
[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-message-decrypt.png?resize=800%2C252&ssl=1
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-key-export-800x218.png?resize=800%2C218&ssl=1
[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-key-import.png?resize=800%2C221&ssl=1
[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-edit-key-prompt.png?resize=800%2C351&ssl=1
[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-edit-key-fingerprint-1.png?resize=800%2C317&ssl=1
[19]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/gpg-edit-key-sign.png?resize=800%2C531&ssl=1

View File

@ -0,0 +1,98 @@
[#]: subject: "Open source 3D pixel art with Goxel"
[#]: via: "https://opensource.com/article/21/12/3d-pixel-art-goxel"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14098-1.html"
使用 Goxel 制作开源 3D 像素艺术
======
> 使用 Goxel 构建模型很有趣,就像没有锋利边缘的乐高、没有“爬行者”的 Minecraft 一样。
![](https://img.linux.net.cn/data/attachment/album/202112/20/125417v2ws2so5g527lpgu.jpg)
我喜欢乐高,这不是什么秘密,但我的乐高收藏现在离我很远,而且把满满一柜子的经典乐高套装在世界各地搬来搬去看起来也不太可行。为了解决这个问题,从 [在乐高 CAD 中建立模型][2] 到 [在 Blender 中用乐高纹理对模型进行造型][3],我做了很多虚拟化的工作。最近我发现了 [Goxel][4]。这个简单得令人震惊的 3D 建模应用并没有自称是基于乐高的,也没提和乐高有什么关系。然而,用 3D 像素建立模型的感觉与用乐高积木建立模型的满足感惊人地相似。你可以把 Goxel 看作是一个像素绘画程序,但却是 3D 的。
Goxel 采取了一种独特的 3D 建模方法,它专门针对 <ruby>低模<rt>low polygon</rt></ruby> 建模。如果你想雕刻出栩栩如生的模型,就不应该使用这个程序。但是,如果你喜欢 Minecraft 和其他低模艺术的美感,那么你应该试试 Goxel。
### 在 Linux 上安装 Goxel
你可以从 [Flathub][6] 将 Goxel 作为 [Flatpak][5] 安装在 Linux 上。
对于 Android、Windows macOS 和 iOS请到 [Goxel 网站][4] 下载安装程序。
Goxel 是开源的,在 GPLv3 许可下发布。
### 使用体素绘画
当你第一次启动 Goxel 时,在 Goxel 窗口的中间会有一个空的“空间”或容器。这就是你的画布。
![The Goxel canvasSeth Kenlon, CC BY-SA 4.0][7]
正是在这个容器中,且只有在这个容器中,你才能建立你的模型。在大多数三维建模应用中,<ruby>深度感知<rt>depth perception</rt></ruby>是一种努力才能得到的技能,所以 Goxel 限制了你工作的空间以防止你最终出现模型和模型部件彼此相距甚远的情况。Goxel 还限制你在一个严格的网格中移动。你可以沿 Y 轴上下移动,沿 X 轴左右移动,沿 Z 轴前后移动,但只能在一个三维像素(或称为 <ruby>体素<rt>voxel</rt></ruby>的片段中移动。不管用于什么意图和目的Goxel 的体素就是用来建立模型的虚拟乐高砖块。
Goxel 中没有太多工具,这对一个三维建模应用来说是一个真正的特点。默认情况下,你已经激活了铅笔工具,所以你可以通过点击鼠标在体素容器内的任何地方立即开始建造。
![Hello from GoxelSeth Kenlon, CC BY-SA 4.0][9]
试着点击容器周围以查看添加体素的位置。Goxel 让你比较容易地看到你的铅笔即将添加体素的地方,可以把体素当作砖块,它假设当你靠近一个现有的体素时是准备把你的下一个体素连接到它。即便如此,在二维屏幕上实现三维也很困难。有时,体素会被添加到一个你没有意识到的地方。确保你的体素被添加到你想添加的地方的最好方法是经常旋转容器。你可以用键盘上的方向键来旋转容器,或者你可以点击并拖动鼠标中键。右击并拖动容器可在 Goxel 工作区中移动,而鼠标的滚轮可以放大和缩小。
### 平面标记
Goxel 还提供了另一个对齐体素的技巧,那就是以半透明和临时平面的形式提供指导。当你在你的容器中添加一个平面时,它会创建一种力场,使你的铅笔无法通过。
![Goxel planar guideSeth Kenlon, CC BY-SA 4.0][10]
其结果是,你只能沿着两个轴线安全地作画,而不能沿着第三个轴线作画。你可以沿着网格轻推平面,这样你就可以分片添加体素,就像 3D 打印机向物理模型添加一样。
禁用平面控制中的 “<ruby>可见<rt>Visible</rt></ruby>” 选项可以移除平面。
![Plane controlsSeth Kenlon, CC BY-SA 4.0][11]
### Goxel 工具栏
顶部的工具栏包含七个按钮。从左到右:
* <ruby>撤销<rt>Undo</rt></ruby>
* <ruby>重做<rt>Redo</rt></ruby>
* <ruby>删除所有的东西,且无需确认<rt>Delete everything without confirmation</rt></ruby>
* <ruby>添加一个体素<rt>Add a voxel</rt></ruby>
* <ruby>减去(删除)一个体素<rt>Subtract (remove) a voxel</rt></ruby>
* <ruby>画一个体素<rt>Paint a voxel</rt></ruby>
* <ruby>设置油漆颜色<rt>Set the paint color</rt></ruby>
你可以在单个体素上作画,也可以使用铅笔左边的形状工具,一次性添加体素区域。
除了用铅笔删除体素外,你还可以使用激光工具在体素出现在作为计算机显示器的 2D 屏幕上时对其进行调整。在形状工具的右边,把你的光标变成一个十字准线。把它指向你看到的体素,然后点击它来擦除。
### 极简主义的宁静
Goxel 追求简单,不仅在于它生产的内容,还在于它的生产方式。我在本文中只讨论了 Goxel 的绘图工具。虽然还有其他功能,例如控制光线的俯仰角和偏航角的能力、阴影的强度以及虚拟摄像机的位置,但该应用力求以最佳方式使事情变得简单自然。使用 Goxel 构建模型非常有趣,就像没有锋利边缘的乐高玩具,或者没有“爬行者”的 Minecraft。去使用 Goxel并构建一些模型吧
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/3d-pixel-art-goxel
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [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/uploads/header-image.jpg?itok=3MWdhreV (Pixel art in 3D with Goxel)
[2]: https://opensource.com/article/20/6/open-source-virtual-lego
[3]: https://opensource.com/article/20/7/lego-blender-bricker
[4]: https://goxel.xyz/
[5]: https://opensource.com/article/21/11/install-flatpak-linux
[6]: https://flathub.org/apps/details/io.github.guillaumechereau.Goxel
[7]: https://opensource.com/sites/default/files/uploads/goxel-canvas.jpg (The Goxel canvas)
[8]: https://creativecommons.org/licenses/by-sa/4.0/
[9]: https://opensource.com/sites/default/files/uploads/goxel-hello.jpg (Hello from Goxel)
[10]: https://opensource.com/sites/default/files/uploads/goxel-plane-guide.jpg (Goxel planar guide)
[11]: https://opensource.com/sites/default/files/uploads/goxel-plane-controls.jpg (Plane controls)

View File

@ -0,0 +1,142 @@
[#]: subject: "What is TTY in Linux?"
[#]: via: "https://itsfoss.com/what-is-tty-in-linux/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14093-1.html"
Linux 黑话解释TTY 是什么?
======
![](https://img.linux.net.cn/data/attachment/album/202112/18/155143cz6aplfi8i6elmll.jpg)
谈到 Linux 和 UNIX 时,你一定听说过 “TTY” 这个术语,但是,这玩意是什么?
作为一个桌面用户,它对你有用吗?你需要它吗?你能用它做什么?
在本文中,让我向你介绍这些,帮助你熟悉 Linux 中的 TTY。
注意:这个问题没有明确的答案,但它与过去的输入/输出设备的交互方式有关。因此,你必须了解一些历史,才能清楚地了解情况。
### “TTY” 背后的历史
一切始于 19 世纪 30 年代的<ruby>电传打印机<rt>Teleprinter</rt></ruby>
电传打印机可以让你通过电线发送或接受消息,它取代了摩尔斯电码通信,那是一种需要两个操作员才能有效地相互通信的方式。
一台电传打印机只需要一个操作员就可以轻松地传递消息。虽然它没有现代布局的键盘,但它的系统后来由 Donald Murray 在 1901 年进行了改良,包括了一个类似打字机的键盘。
Murray 电码减少了操作员发送消息的工作量。这才使得电传打印机在 1908 年有了发展成为商业<ruby>电传打字机<rt>Teletypewriter</rt></ruby>的可能。TTY 即是电传打字机的缩写。
![二战期间在伦敦实际使用的电传打字机 | 图片来源于维基百科][1]
电传打字机和普通<ruby>打字机<rt>typewriter</rt></ruby>的区别在于,电传打字机连接到通信设备,直接发送输入的消息。
[电传打字机使人类在没有计算机的情况下通过电线进行更快的通信成为可能][2]。
从这时起“TTY” 一词就存在了。
### (相对)现代的概念
现在,你一定想知道,它是如何进入现代计算机和 Linux 的?
最初是当电传打字机进入了市场,几年后半导体晶体管发展起来,然后演变成微处理器,为计算机的出现做好了准备。
最初的计算机没有键盘的概念,<ruby>打孔卡<rt>Punch card</rt></ruby>就是输入的方法。
![一种插入计算机而不是通过键盘TTY输入的打孔卡计算机程序 | 图片来源于维基百科][3]
随着计算机的发展,批量输入的打孔卡最终被电传打字机取代,成为一种方便的输入/输出设备。
![1956 年的 LGP-30 计算机,附带 TTY][4]
随着技术的进步,电传打字机被电子技术“虚拟化”了。因此,你不需要一个物理的、机械的 TTY而是一个虚拟的电子 TTY。
早期的计算机甚至没有视频屏幕。字符被打印在纸上而不是显示在屏幕上。因此,你会看到“<ruby>打印<rt>print</rt></ruby>”这个术语而不是“<ruby>显示<rt>display</rt></ruby>”。随着技术的进步,视频显示后来被添加到终端中。
换句话说,你可能听说过把它们称为“视频终端”。或者,你可以称它们为“物理”终端。
后来,它们演变成具有更强的能力和功能的软件仿真的终端。
这就是所谓的“<ruby>终端仿真器<rt>terminal emulator</rt></ruby>”,如 GNOME 终端或 Konsole或者其他 [你在 Linux 上找到的各种终端仿真器][5]。
### 所以Linux 中的 TTY 到底是什么?
在 Linux 或 UNIX 中TTY 变为了一个抽象设备。有时它指的是一个物理输入设备,例如串口,有时它指的是一个允许用户和系统交互的虚拟 TTY[参考此处][6])。
TTY 是 Linux 或 UNIX 的一个子系统,它通过 TTY 驱动程序在内核级别实现进程管理、行编辑和会话管理。
在编程的场景下,你还需要深入研究。但是考虑到本文的范围,这可能是一个容易理解的定义。
如果你好奇的话,你可以查看一个有点旧的资源([TTY 揭秘][7]),它尽可能的澄清了 Linux 和 UNIX 系统中的 TTY 的各种技术细节。
事实上,每当你在系统中启动一个终端仿真器或使用任何类型的 shell 时,它都会与虚拟 TTY也被称为<ruby>伪 TTY<rt>pseudo-TTY</rt></ruby>,即 PTY进行交互。
你可以在终端仿真器中输入 `tty` 来找到相关联的 PTY。
### 如何在 Linux 中访问 TTY
![][8]
在 Linux 中很容易访问 TTY。事实上当我不知道它是什么时我不小心打开了它于是对要做什么、如何摆脱它感到恐慌。
在大多数 _发行版_ 中,你可以使用以下键盘快捷键来得到 TTY 屏幕:
- `CTRL + ALT + F1` 锁屏
- `CTRL + ALT + F2` 桌面环境
- `CTRL + ALT + F3` TTY3
- `CTRL + ALT + F4` TTY4
- `CTRL + ALT + F5` TTY5
- `CTRL + ALT + F6` TTY6
你最多可以访问六个 TTY。但是前两个快捷方式指向发行版的锁定屏幕和桌面环境。
![][9]
而其他快捷方式将会让你进入一个命令行界面。
### 什么时候应该使用 TTY
TTY 不仅是一个技术宝藏,即使像我这样不是开发人员的用户,它也很有用。
在图形桌面环境冻结的情况下,它应该可以派上用场。在某些情况下,从 TTY 重建桌面环境能帮助解决程序问题。
或者,你也可以选择在 TTY 中执行任务,例如更新 Linux 系统等。在这些情况下,你不希望显示问题中断你的进程。
最坏的情况是,如果图形用户界面失去响应,你可以进入 TTY 并重新启动计算机。
有些用户还喜欢在 TTY 的帮助下传输大文件(我不是其中之一)。
### Linux 中的 TTY 命令
![][10]
当你在终端模拟器中输入 `tty` 时,它将打印连接到标准输入的终端文件名,就像手册页描述的一样。
换句话说,要知道你连接的 TTY 编号,只需输入 `tty`。并且,如果有多个用户远程连接到 Linux 机器,你可以使用 `who` 命令来检查其他用户连接到的是哪个 TTY。
--------------------------------------------------------------------------------
via: https://itsfoss.com/what-is-tty-in-linux/
作者:[Ankush Das][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://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/WACsOperateTeletype.jpg?resize=429%2C371&ssl=1
[2]: https://en.wikipedia.org/wiki/Teletype_Corporation#/media/File:What-is-teletype.jpg
[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/punch-card-program.jpg?resize=600%2C274&ssl=1
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/LGP-30-early-computer-1956.jpg?resize=800%2C600&ssl=1
[5]: https://itsfoss.com/linux-terminal-emulators/
[6]: https://unix.stackexchange.com/questions/4126/what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-con
[7]: https://www.linusakesson.net/programming/tty/index.php
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/ubuntu-tty.png?resize=800%2C449&ssl=1
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/ubuntu-tty4.png?resize=420%2C124&ssl=1
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/ubuntu-terminal-tty-command.png?resize=800%2C544&ssl=1

View File

@ -0,0 +1,161 @@
[#]: subject: "My favorite Linux commands for optimizing web images"
[#]: via: "https://opensource.com/article/21/12/optimize-web-images-linux"
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14096-1.html"
用 Linux 命令优化网页图片
======
> 为网页上的缩略图和横幅图片生成经过调整和优化的图片。
![](https://img.linux.net.cn/data/attachment/album/202112/19/100432i8qzjr6t22g68uoi.jpg)
以前我在处理网页工作时,我对图像敬而远之。处理和优化图像既不精确又费时。
后来我发现了一些命令,改变了我的想法。为了创建网页,我使用 Jekyll所以我在说明中包括了它。然而这些命令也可以用于其他静态网站生成器。
### Linux 上的图像命令
对我来说有用的命令是 `optipng`、`jpegoptim`,当然还有古老的 `imagemagick`。它们一起使处理图像变得容易管理,甚至可以自动化。
下面是我如何使用这些命令实现我的解决方案的概述。我把文章图片放在我的 `static/images` 文件夹中。在那里,我生成了所有 PNG 和 JPG 图片的两个副本:
1. 一个裁剪过的缩略图版本,尺寸为 422×316
2. 一个更大的横幅版本,尺寸为 1024×768
然后,我把每个副本(缩略图和横幅)放入自己的文件夹,并利用 Jekyll 的自定义变量来确定文件夹路径。下面我将更详细地介绍这些步骤中的每一步。
#### 安装
要跟上我的解决方案,请确保你已经安装了所有的命令。在 Linux 上,你可以使用软件包管理器安装 `optipng`、`jpegoptim` 和 `imagemagick`
在 Fedora、CentOS、Mageia 和类似系统上:
```
$ sudo dnf install optipng jpegoptim imagemagick
```
在 Debian、Elementary、Mint 和类似系统上:
```
$ sudo apt install optipng jpegoptim imagemagick
```
在 macOS 上,使用 [MacPorts][2] 或 [Homebrew][3]
```
brew install optipng jpegoptim imagemagick
```
在 Windows 上,使用 [Chocolatey][4]。
### 为缩略图和横幅创建文件夹
安装完这些命令后,我在 `static/images` 下创建了新的文件夹。生成的缩略图放在 `img-thumbs`,横幅放在 `img-normal`
```
$ cd static/images
$ mkdir -p img-thumbs img-normal
```
创建了文件夹后,我把所有的 GIF、SVG、JPG 和 PNG 文件复制到这两个文件夹。我把 GIF 和 SVG 原封不动地用于缩略图和横幅图片。
```
$ cp content/*.gif img-thumbs/; cp content/*.gif img-normal/
$ cp content/*.svg img-thumbs/; cp content/*.svg img-normal/
$ cp content/*.jpg img-thumbs/; cp content/*.jpg img-normal/
$ cp content/*.png img-thumbs/; cp content/*.png img-normal/
```
### 处理缩略图
为了调整和优化缩略图的大小,我使用了三个命令。
我使用 `ImageMagick``mogrify` 命令来调整 JPG 和 PNG 的大小。因为我希望缩略图是 422×316所以命令看起来像这样:
```
$ cd img-thumbs
$ mogrify -resize 422x316 *.png
$ mogrify -format jpg -resize 422x316 *.jpg
```
现在我用 `optipng` 优化 PNG`jpegoptim` 优化 JPG
```
$ for i in *.png; do optipng -o5 -quiet "$i"; done
$ jpegoptim -sq *.jpg
```
在上述命令中:
* 对于 `optipng``-o5` 开关设置了优化的级别0 是最低的。
* 对于`jpegoptim``-s` 剥离所有图像元数据,`-q` 设置安静模式。
### 处理横幅
我处理横幅图片的方法与处理缩略图的方法基本相同,除了尺寸外,横幅图片的尺寸为 1024×768。
```
$ cd ..
$ cd img-normal
$ mogrify -resize 1024x768 *.png
$ mogrify -format jpg -resize 1024x768 *.jpg
$ for i in *.png; do optipng -o5 -quiet "$i"; done
$ jpegoptim -sq *.jpg
```
### 配置 Jekyll 中的路径
`img-thumbs` 目录现在包含我的缩略图,`img-normal` 包含横幅。为了更轻松一些我在Jekyll的 `_config.yml` 中把它们都设置为自定义变量。
```
content-images-path: /static/images/img-normal/
content-thumbs-images-path: /static/images/img-thumbs/
```
使用这些变量很简单。当我想显示缩略图时,我把 `content-thumbs-images-path` 加到图片上。当我想显示完整的横幅时,我在前面添加 `content-images-path`
```
{% if page.banner_img %}
<img src="{{ page.banner_img | prepend: site.content-images-path | \
prepend: site.baseurl | prepend: site.url }}" alt="Banner image for \
{{ page.title }}" />
{% endif %}
```
### 总结
我可以对我的优化命令做几个改进。
使用 `rsync` 只复制改变过的文件到 `img-thumbs``img-normal` 是一个明显的改进。这样一来,我就不会一次又一次地重新处理文件。将这些命令添加到 [Git 提交前钩子][5] 或 CI 流水线中是另一个有用的步骤。
调整和优化图像以减少其大小,对用户和整个网页来说都是一种胜利。也许我减少图片尺寸的下一步将是 [webp][6]。
更少的字节通过电线传输意味着更低的碳足迹,但这是另一篇文章。目前,用户体验的胜利已经足够好了。
本文原载于[作者的博客][7],已获授权转载。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/optimize-web-images-linux
作者:[Ayush Sharma][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ayushsharma
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_web_internet_website.png?itok=g5B_Bw62 (Digital creative of a browser on the internet)
[2]: https://opensource.com/article/20/11/macports
[3]: https://opensource.com/article/20/6/homebrew-mac
[4]: https://opensource.com/article/20/3/chocolatey
[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6
[6]: https://opensource.com/article/20/4/webp-image-compression
[7]: https://www.ayushsharma.in/2021/11/optimising-jpg-and-png-images-for-a-jekyll-blog

View File

@ -0,0 +1,253 @@
[#]: subject: "Get All Kind of System Information in Linux Terminal With inxi"
[#]: via: "https://itsfoss.com/inxi-system-info-linux/"
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
[#]: collector: "lujun9972"
[#]: translator: "jrglinux"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14089-1.html"
在 Linux 终端使用 inxi 命令获取各种系统信息
======
![](https://img.linux.net.cn/data/attachment/album/202112/17/134920bzuqfbwbqswcif33.jpg)
`inix` 是一个用于获取 Linux 系统信息的终端命令。能够获取软件和硬件的详细信息,比如计算机型号、内核版本、发行版号以及桌面环境等信息,甚至可以读取主存模块占用主板的哪块 RAM 卡槽等详细信息。
`inxi` 还可以用于监控系统中正在消耗 CPU 或者内存资源的进程。
在本文中,我将展示使用 `inxi` 命令获取系统信息的常用操作。
首先,我将展示下如何安装 `inxi` 命令。
### 在 Linux 上安装 inxi
`inxi` 是一个非常流行的工具,所以在大多数 Linux 发行版仓库中都可以轻松获取到该工具。不过还没有流行到各大 Linux 发行版默认就安装了该软件,所以需要我们自己安装一下。
在 Ubuntu/Debian 发行版系统中,安装命令:
```
sudo apt install inxi
```
在 Fedora/RHEL8-based 等发行版中,安装命令:
```
sudo dnf install -y epel-release
sudo dnf install -y inxi
```
`Arch Linux` 以及它的派生分支版本中,安装命令:
```
sudo pacman -S inxi
```
### 使用 inxi 获取系统信息
你可以在终端运行 `inxi` 命令来总体浏览下系统信息。
```
inxi
```
如下图所示,运行 `inxi` 命令可以简要浏览 CPU、时钟频率`speed/min/max`)、内核(`Kernel`)、内存(`Mem`)、磁盘存储空间(`Storage`)、运行进程数量(`Procs`)以及 Shell 等信息。
![The default output of inxi command][2]
使用 `-b` 参数可以获取更为详细的系统信息。`-b` 参数会读取更多有关 CPU、驱动器、当前运行进程、主板 UEFI 版本、GPU、显示分辨率以及网络设备等详细信息。
```
inxi -b
```
![Detailed hardware and software information about machine as reported by inxi][3]
类似 `-b` 参数使用方法,`inxi` 还有许多其他的参数可供使用。你可以综合使用这些参数来获取你关心的信息。
让我们看几个实例。
### 获取音频设备信息
使用 `-A` 参数可以获取有关音频(输出)设备信息,包括物理音频(输出)设备、声音服务器以及音频驱动等详细信息。
```
inxi -A
```
![Output of inxi command when “-A” flag is used][4]
### 获取电池信息
使用 `-B` 参数,可以获取有关电池的信息(如果安装了电池)。你将读取到例如以 `Wh`(瓦特小时)为单位的当前电池电量和状况。
因为我使用的是台式机,所以这里仅仅作为一个示例,让我们看看使用 `inxi -B` 会输出什么。
```
Battery: ID-1: BAT0 charge: 50.0 Wh (100.0%) condition: 50.0/50.0
```
### 获取 CPU 信息
`-C` 参数用于获取有关 CPU 的详细信息。比如包括 CPU 缓存大小、频率(单位 `MHz`如果有多核会显示每个核心的频率、核心数、CPU 型号以及 CPU 是 32 位还是 64 位。
```
inxi -C
```
![Detailed CPU information displayed by inxi][6]
注意,如果是在虚拟机中使用 `inix -C``inxi` 读取到的 `CPU` 的最大和最小频率可能异常。下面是一个在四核 Debian 11 虚拟机中使用 `-C` 参数的示例输出。
![An example output of using the “-C” flag in a Virtual Machine][7]
### 获取更多的系统信息
使用 `-F` 参数可以获取更详细的系统信息(类似 `-b` 参数,但会更为详细)。几乎囊括了所有层次的系统信息。
```
inxi -F
```
![][8]
### 获取图形显示相关信息
`-G` 参数可以获取和图形相关的信息。
它会显示所有的图形设备GPU、正在使用的 GPU 驱动(有助于检查是否使用 Nvidia 驱动还是 nouveau 驱动)、显示输出分辨率和驱动程序版本。
```
inxi -G
```
![][9]
### 获取运行进程信息
`-I` 参数(大写字母 `i`)显示正在运行的进程、当前 shell 、内存(内存使用情况)以及 `inxi` 版本号等信息。
![inxi get running process info][10]
### 获取内存信息
可能你已经猜到了,`-m` 参数可以获取与内存相关的信息。
它读取了如总可用内存、最大内存容量(硬件或 CPU 支持的)、主板物理内存插槽数、是否存在 ECC、插入的内存插槽以及枚举每个插槽中运行的内存模块的大小和运行速度等信息。
```
inxi -m
```
要使用 `-m` 参数获取更详细的信息,例如最大容量、每个插槽的内存模块信息等,需要超级用户权限。
```
sudo inxi -m
```
![][11]
如果只是希望简短的输出内存信息,可以使用 `-memory-short` 参数。
使用 `-memroy-short` 参数将会只显示总内存以及当前已使用的内存量。
### 查看正在使用的包存储库
当使用 `-r` 参数时,会列举当前正在使用的包管理仓库或者更新本地仓库缓存中的所有存储库列表。
![List of repositories in use][12]
### 获取 RAID 设备信息
`-R` 参数用于获取所有 RAID 设备相关信息。
令人惊喜的是,它甚至显示了有关 ZFS RAID默认情况下多数 Linux 系统不包含该文件系统)的信息。它显示了 RAID 设备上文件系统的详细信息、状态(包含离线状态、总大小和可用大小等)。
```
inxi -R
```
![][13]
### 在 Linux 终端中查询天气(对,这是可以的)
利用 `-W` 参数,你可以查询地球上任何地方的天气情况。
`-W` 参数后面,需要携带以下中的任一一个体现位置的信息
* 邮政编码
* 纬度
* 城市(及州)、国家(不能含有空格,使用 “+” 替换空格)
```
inxi -W Baroda,India
```
![Use of the “-W” flag with inxi followed by the city,country location descriptor][14]
### 监控系统资源使用情况
`inxi` 除了提供有关已安装的硬件和驱动的信息外,还可以用于资源监控。
使用 `-t` 参数可以显示进程信息。你还可以可选项 `-c` (用于 CPU`-m`(用于内存)。这些选项结合使用可以按指定数量列出进程信息。
下面是一些使用 `-t` 参数监控资源信息的示例。
```
inxi -t
```
命令 `inxi -t` 默认效果等同于 `inxi -t cm5` 的效果。
![No difference in output of “inti -t” and “inxi -t cm5”][15]
```
inxi -t cm10
```
![][16]
偶尔需要监控资源使用情况时,该工具挺管用。如果需要更多的资源监控功能,则推荐使用 [专用系统资源监控工具][17]。
### 总结
对于需要诊断计算机问题以及获取那些并不熟悉的软硬件信息的人来说,`inxi` 工具是十分便利且有用的。它能识别那些消耗 CPU、内存的进程可以检查是否安装了合适的图形驱动程序、主板 UEFI/BIOS 是否需要更新等等。
事实上,在 `inxi` 开源社区论坛上,我们要求那些寻求帮助的成员提供 `inxi` 命令输出内容以便判断他们当前正在使用什么样的系统环境。
我知道也有其他的工具可以读取 Linux 上的硬件信息,不过 `inxi` 同时能读取硬件和软件信息,这也是我喜欢它的地方所在。
你使用 `inxi` 或者其他工具么?欢迎在评论区留言分享交流。
--------------------------------------------------------------------------------
via: https://itsfoss.com/inxi-system-info-linux/
作者:[Pratham Patel][a]
选题:[lujun9972][b]
译者:[jrglinux](https://github.com/jrglinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/pratham/
[b]: https://github.com/lujun9972
[1]: https://github.com/smxi/inxi
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/01_inxi.webp?resize=800%2C450&ssl=1
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/02_inxi_flag_b.webp?resize=800%2C450&ssl=1
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/03_inxi_flag_a.webp?resize=800%2C450&ssl=1
[5]: https://itsfoss.com/32-bit-64-bit-ubuntu/
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/04_inxi_flag_c.webp?resize=800%2C450&ssl=1
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/05_inxi_flag_c_vm.webp?resize=800%2C396&ssl=1
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/06_inxi_flag_f.webp?resize=800%2C450&ssl=1
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/07_inxi_flag_g.webp?resize=800%2C450&ssl=1
[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/inxi-get-running-process-info.png?resize=768%2C272&ssl=1
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/08_inxi_flag_m.webp?resize=800%2C450&ssl=1
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/package-repo-info-with-inxi.png?resize=800%2C339&ssl=1
[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/09_inxi_flag_r.webp?resize=800%2C450&ssl=1
[14]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/12_inxi_flag_w.webp?resize=800%2C450&ssl=1
[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/10_inxi_flag_t.webp?resize=800%2C450&ssl=1
[16]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/11_inxi_flag_t_cm10.webp?resize=800%2C450&ssl=1
[17]: https://itsfoss.com/linux-system-monitoring-tools/
[18]: https://itsfoss.community/
[19]: https://itsfoss.com/hardinfo/

View File

@ -0,0 +1,152 @@
[#]: subject: "Pop!_OS 21.10 Introduces a New Application Library, GNOME 40, and a Refresh Install Option"
[#]: via: "https://news.itsfoss.com/pop-os-21-10/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14083-1.html"
Pop!_OS 21.10 发布!
=====
> Pop!_OS 21.10 包含了新的 Linux 内核、新的应用程序库以及 System76 为帮助 Pop!_OS 发展而引入的一些重要变化。
![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-21-10-feat.png?w=1200&ssl=1)
Pop!_OS 无疑是 [最好的 Linux 发行版][1] 之一,也是目前面向 Linux 新手(和游戏玩家)推荐的热门选择之一。
如果你不喜欢非 LTS 版本,你应该坚持使用 [Pop!_OS 20.04 LTS][2]。但是如果你想看看最新和最棒的更新那么Pop!_OS 21.10 终于就绪,可以下载了!
别忘了Pop!_OS 21.10 的发布是为明年 4 月的 Pop!_OS 22.04 LTS 的潜在功能清单打的前站,你可以期待一下。
### Pop!_OS 21.10 有什么新功能?
请注意,即使 Pop!_OS 21.10 将 GNOME 40 作为最重要的变化之一,也应该会有类似于 Pop!_OS 21.04 的 [COSMIC 桌面体验][3]。
也就是说,在 Pop!_OS 21.10 中有一些关键的变化,应该会增强你的 Linux 桌面体验,并使你更轻松。
#### 新的应用程序库
在 Pop!_OS 21.10 中,全屏应用程序菜单已被一个单独的可搜索窗口取代。这应该不那么碍事,而且很方便。
![][4]
这不仅仅是 System76 对 GNOME 40 的独特调整,在功能上它应该比传统的全屏应用菜单提供更多的好处。
例如,新的应用程序库应该可以增强多显示器的体验,让你在你关注的屏幕中快速搜索一个应用程序,而不是占用整个屏幕。
![video][5]
它还可以让你快速搜索应用程序(或根据你的搜索查询过滤它们)。不仅仅限于已安装的应用程序,它还会显示可以使用 Pop!_Shop 安装的应用程序。
![][6]
你可以使用工作区右侧的 “<ruby>应用程序<rt>Applications</rt></ruby>” 按钮访问应用程序库,或执行四指向右滑动,按 `Super+A` 也行。
#### System76 用自己的存储库取代 Launchpad
如果你一直在关注我们,你可能已经知道了 [System76 将 PPA 软件库转移到其系统之中][7]。
![][8]
总的来说,这应该有助于他们控制软件包,并比 Ubuntu/Canonical 的默认仓库更快地推送更新。
#### GNOME 更新
从 GNOME 3.38.4 跳到 40 应该会引入几个 [GNOME 40 改进][9],至少对核心应用程序是这样。
一些值得注意的改进包括设置中的 Wi-Fi 排序,这意味着,可用的网络将按照活动连接、先前连接和信号强度的顺序显示,以按有用顺序呈现可用 Wi-Fi 网络。
你还可以注意到在你搜索某些东西后,文件中的自动补全功能。
#### 最新的 Linux 内核及 NVIDIA 驱动程序
![][10]
众所周知Pop!_OS 比许多其他发行版更快地推送最新的 Linux 内核。Pop!_OS 21.04 已经在运行 [Linux 内核 5.15][11],而 Pop!_OS 21.10 继续使用它。
在这里Pop!_OS 21.10 带来了 Linux 内核 5.15.5,并且还打包了最新的可用 NVIDIA 驱动程序,以便与较新的硬件保持最佳的兼容性。
#### 全新安装
![][12]
每当 Pop!_OS 从恢复分区安装时,它让你选择“<ruby>全新安装<rt>Refresh Install</rt></ruby>”。
通过这种方式,你可以重新安装 Pop!_OS而不会丢失主目录中的文件。如果有什么东西不能工作而你又不能排除故障重新安装应该会使事情恢复到默认状态这时它就会派上用场。
#### 对 Pop!_OS 升级的改进
![如果你没有设置任何东西,为用户显示的一个新的默认图标][13]
通过 Pop!_OS 21.10,你还会有更好的升级体验。
为了方便起见Pop!_OS 在升级发行版时对其行为做了一些改变。其中一些是:
* 自动禁用用户添加的 PPA 以避免升级冲突。
* 现在在升级发行版之前会更新恢复分区,如果使用恢复分区第一次没有成功,之一可以给你一个可以轻松地重新安装发行版的媒介。
#### 用于树莓派 4 的技术预览版
截至目前,这还是针对树莓派 4 的实验,但你可以下载 ARM 平台的技术预览版。
他们计划在未来的 Pop!_OS 版本中引入 Pop!_Pi。
### 关于 Pop!_OS 21.10 的想法
Pop!_OS 一直在努力使桌面 Linux 的体验尽可能可靠,同时拥有一些最新的软件包。
通过 Pop!_OS 21.10更新的桌面环境、Linux 内核和可用性改进使这次升级变得有用。
如果你正在使用一个非 LTS 版本,你肯定应该考虑尽快升级。请注意,在你进行升级之前,你应该备份你的数据。
### 下载 Pop!_OS 21.10
你可以找到两种用于 Pop!_OS 21.10 的不同 ISO ,一种用于 NVIDIA另一种用于 Intel/AMD。
请前往 [官方下载][14] 页面,下载你需要的 ISO。
如果你已经安装了 Pop!_OS 21.04,在他们的官方公告之后,你应该很快收到升级通知,或者前往系统设置并应用升级。
如果你使用的是终端,输入以下命令:
```
sudo apt update
sudo apt full-upgrade
pop-upgrade release upgrade
```
你也可以阅读他们 [官方公告帖子][15] 中提到的细节。
你对 Pop!_OS 21.10 有什么看法?请在下面的评论中告诉我你的想法。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/pop-os-21-10/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/best-linux-distributions/
[2]: https://itsfoss.com/pop-os-20-04-review/
[3]: https://news.itsfoss.com/pop-os-21-04-beta-release/
[4]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/application-library-pop-os.png?w=1400&ssl=1
[5]: https://youtu.be/A_8YflrS35A
[6]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/application-library-pop-os-1.png?w=1306&ssl=1
[7]: https://news.itsfoss.com/pop-os-ppa-repo-move/
[8]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-new-repo.png?w=736&ssl=1
[9]: https://news.itsfoss.com/gnome-40-release/
[10]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-21-10.png?w=864&ssl=1
[11]: https://news.itsfoss.com/linux-kernel-5-15-release/
[12]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/refresh-os-pop.png?w=898&ssl=1
[13]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-lockscreen.png?w=819&ssl=1
[14]: https://pop.system76.com
[15]: https://blog.system76.com/post/670564272872488960/popos-2110-has-landed

View File

@ -0,0 +1,117 @@
[#]: subject: "Blender 3.0 is a Milestone Release to Step Up Open Source 2D/3D Content Creation"
[#]: via: "https://news.itsfoss.com/blender-3-0-release/"
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Blender 3.0 is a Milestone Release to Step Up Open Source 2D/3D Content Creation
======
Blender 3.0 marks the major leap of open-source 3D/2D content creation. This release has numerous changes, ranging from a refreshed user interface to improved rendering options.
This release is sure to excite all 3D artists, regardless of their skill level.
Overall, the release involves many fascinating changes and could be industry-leading in some cases.
### Whats New?
![][1]
Considering it is one of the biggest releases in years, it can only be expected that Blender 3.0 offers something for all its users. Fortunately, it appears that the Blender team has managed to do just this, with more new features than we could ever fit into a single article.
Here are some of my favorites:
* Significantly faster Cycles renderer
* More optimized viewport for improved responsiveness
* Brand-new asset browser
* A visual refresh sporting more rounded corners and improved theme
* Fast loading and saving of .blend files
Let us take a more detailed look at all these incredible new features!
#### Cycle Renderer Improvements
Introduced with Blender 2.61 back in 2011, the Cycles rendering engine has been the standard Blender renderer ever since. Now, Blender 3.0 is getting an incredible boost in performance. Perhaps a 20% increase, maybe even 50%? No, the Blender team has done the impossible and made the Cycles render 28 times faster, with astounding results.
![Image credit: Blender][2]
This is huge for almost all Blender users, although perhaps even more important for those on low-end systems. Rendering has always been one of the most time-consuming tasks in 3d animation, and any performance improvements are always welcome. After seeing the improvements to Cycles in Blender 3.0, I cant wait to see what we will get in Blender 3.1!
#### More Optimized Viewport
Thanks to various improvements in scheduling and display algorithms, Blenders viewport is now more responsive than ever. The screenshot below shows that Blender 3.0 has much faster in-viewport rendering than Blender 2.92. This is great for when artists are lighting scenes, as it allows changes to be previewed quicker and, therefore, faster tweaking.
![Image credit: Blender][3]
Yet again, the Blender developers have managed to astound us with their incredible work at optimizing the software. It is genuinely unique what they have managed to achieve with this feature.
#### Brand-New Asset Browser
A notable feature of many other 3D animation software suites, the asset browser is set to become a key component in Blender 3.0s workflow. With support for materials, objects, and world datablocks, it offers an astounding array of features for its debut release. As expected, drag-and-drop is supported out-of-the-box and works surprisingly well.
![Image credit: Blender][3]
After messing around with it for a few hours, I have to say that I am pleasantly surprised at how much this addition has benefited my workflow. Not only has it improved the speed at which I can insert objects and materials into scenes, but it has also allowed much better organizing of files within projects.
For me, this is the biggest new feature in Blender 3.0, and Im sure many other users will find the same.
#### Modern UI Refresh
First introduced in Blender 2.8, the Blender Dark theme has received quite a few improvements with Blender 3.0.
While subtle, a closer look at some of the changes brings out vast improvements in Blenders UX, with much clearer separation between controls and a greater visual hierarchy.
![Image credit: Blender][4]
The result is a much more modern-looking UI that is far superior (in my opinion) to all its competitors. Welcome to the new look of Blender!
#### Improved Loading and Saving of Files
![Image credit: Blender][5]
While not exactly a sore point of Blender, the loading and saving of files has now been significantly improved with Blender 3.0. This is thanks to Blender switching from Gzip to Zstd compression for its .blend files. The result is loading times that are magnitudes faster, probably over ten times fast in my testing!
There are numerous other changes that involve add-ons, virtual reality support, UI, modeling, and several more. You can check out the [official release notes][6] and [developer blog posts][7] to explore more about the changes in this release.
### Wrapping Up
With all the new features of Blender 3.0, it should encourage artists to try using the open-source tool Blender for 3D/2D content creation.
If you want to try out Blender 3.0 for yourself, it is available to download for free from the Blender website. You can download it for Linux, Windows, and macOS.
[Download Blender 3.0][8]
_Are you going to be upgrading to Blender 3.0? Let me know in the comments below!_
#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You!
If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software.
I'm not interested
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/blender-3-0-release/
作者:[Jacob Crume][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://news.itsfoss.com/author/jacob/
[b]: https://github.com/lujun9972
[1]: https://i2.wp.com/i.ytimg.com/vi/JZIFWEY3l6k/hqdefault.jpg?w=780&ssl=1
[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjIyMiIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQwMSIgd2lkdGg9IjYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE5NyIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: https://wiki.blender.org/wiki/Reference/Release_Notes/3.0
[7]: https://code.blender.org
[8]: https://www.blender.org/download/

View File

@ -0,0 +1,79 @@
[#]: subject: "Pop!_OS is Moving PPA Repositories to its Own System: Is System76 Considering to Switch its Ubuntu Base?"
[#]: via: "https://news.itsfoss.com/pop-os-ppa-repo-move/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Pop!_OS is Moving PPA Repositories to its Own System: Is System76 Considering to Switch its Ubuntu Base?
======
Pop!_OS has been making news for some of its recent development decisions.
For instance, they introduced a [customized GNOME-based desktop environment experience with COSMIC][1]. Moving forward, they decided to [create their desktop environment from scratch based on Rust][2].
Overall, Pop!_OS has been putting a lot of effort into providing a unique desktop experience keeping all the essential factors in mind like user-friendliness, resource efficiency, and security.
Now, in a [tweet][3], a Pop!_OS user noticed that System76 had replaced the PPA repositories with its self-hosted APT system in Pop!_OS 21.10 beta, instead of Canonicals launchpad.
And, to that, _System76s Principal Engineer_, **Jeremy Soller**, responded with a confirmation sharing more details.
### Moving the Build System and Repositories Away From Launchpad
![][4]
Pop!_OS aims to evolve as a modern Linux distribution, which isnt just similar to its Ubuntu base but does a lot of things better.
And, moving the repositories away from the launchpad is one of the key changes. Switching the build system and APT repos to its own system should give System76 better control of package updates while reducing the build, test, and release time.
Considering System76 has managed to provide the latest and greatest kernels (faster than most mainstream desktop Linux distributions), it is no surprise that you could expect speedier package updates to popular applications as well.
![][5]
Not just for the distro users, it should be good news for System76 customers to realize that Pop!_OS is eventually turning into the Apple of Linux world (in a good way).
In my opinion, having control of the ecosystem should help provide a consistent user experience.
And that is what new Linux desktop users need.
### Is System76 Considering to Change its Ubuntu Base?
No. As mentioned in the tweet, this move does not relate to changing bases.
> Pop switched the build system and repositories away from <https://t.co/sKE1Zdgzpo> to our own system <https://t.co/LA3S0N4lQD> for 21.10 in order to improve our control of package updates and reduce the time to build, test, and release them. It is not related to changing bases. <https://t.co/N0S8fSgbgg>
>
> — Jeremy Soller (@jeremy_soller) [December 3, 2021][6]
But, I would not rule out the possibility of trying out another base as an experiment because they have been scaling up their experiments.
*What do you think about Pop!_OS making these changes for its upcoming Pop!_OS 21.10 release?
Feel free to let me know your thoughts in the comments below.*
#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You!
If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software.
I'm not interested
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/pop-os-ppa-repo-move/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://news.itsfoss.com/cosmic-desktop-pop-os/
[2]: https://news.itsfoss.com/pop-os-cosmic-rust/
[3]: https://twitter.com/david_drapeau/status/1466787174154657795
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQ3NSIgd2lkdGg9IjczNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE3OSIgd2lkdGg9IjYyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: https://twitter.com/jeremy_soller/status/1466789512072228867?ref_src=twsrc%5Etfw

View File

@ -0,0 +1,68 @@
[#]: subject: "The European Commission Will Make its Software Solutions Open Source for Public Benefit"
[#]: via: "https://news.itsfoss.com/eu-open-source-software/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
The European Commission Will Make its Software Solutions Open Source for Public Benefit
======
The EU Commission is known for its strong take on privacy and open-source. A year ago, they [asked their staff to use Signal for messaging][1] instead of WhatsApp.
Now, they plan to make their software solutions publicly accessible for the benefit of society. In other words, anything that the EU uses for its internal work will be made open-source.
### Public Money, Public Code
Considering that the taxpayers pay for the operations and fund the software, the code should also be available to the public.
This campaign with the idea of enhancing transparency has existed for several years now.
And, the European Commission seems to be respecting the idea, which is a good sign that should encourage other official organizations funded by public money to step up with the same initiative.
Not just limited to that, the EU also realizes that investing in open-source gives higher returns, based on their [recent study][2].
The Commissioner for Budget and Administration, Johannes **Hahn**, shared a statement regarding the benefits of open-source in the [press release][3]: 
> _“Open source offers great advantages in a domain where the EU can have a leading role. The new rules will increase transparency and help the Commission, as well as citizens, companies and public services across Europe, benefit from open source software development. Pooling of efforts to improve the software and the co-creation of new features lowers costs for the society, as we also benefit from the improvements made by other developers. This can also enhance security as external and independent specialists check software for bugs and security flaws.”_
Of course, the promotion of open-source should accelerate innovation, security benefits and help various citizens and companies who can use it for their use-cases.
To give a few instances, the EU mentioned two tools that would come in handy when open-sourced:
* **eSignature**: A tool that help public administrations and businesses to accelerate the creation and verification of electronic signatures that are legally valid in all EU Member States.
* **LEOS, (Legislation Editing Open Software)**: A software to draft legal texts.
### Where Can You Find the Open-Source Software?
They plan to make all the software available in a single repository after ensuring that they do not have any significant flaws.
Furthermore, after this decision, the EU will allow the software developers of the EU to contribute to other open-source projects.
And many further advancements to follow, as one would expect.
It wasnt long ago that a [German state decided to switch to Linux][4], and now the EU commission encouraging open-source software is just more good news to the open-source ecosystem.
So, what do you think of this move? You are welcome to let us know your thoughts in the comments below.
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/eu-open-source-software/
作者:[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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/eu-commission-switches-to-signal/
[2]: https://digital-strategy.ec.europa.eu/en/library/study-about-impact-open-source-software-and-hardware-technological-independence-competitiveness-and
[3]: https://ec.europa.eu/commission/presscorner/detail/en/ip_21_6649
[4]: https://news.itsfoss.com/german-state-foss/

View File

@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/21/11/open-source-hardware-careers"
[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "zengyi1001"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

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