FreeDOS 基础：从 A 到 Z

Summary: 我很高兴分享我最喜欢的 26 个 FreeDOS 命令。

我很高兴分享我最喜欢的 26 个 FreeDOS 命令。

![](/data/attachment/album/202310/12/102950rnookbm1124y54k1.jpg)

>
> 我很高兴分享我最喜欢的 26 个 FreeDOS 命令。
>
>
>

我家最早的一批计算机中有一台运行着一款名称为 DOS 的命令行操作系统，即 “<ruby> 磁盘操作系统 <rt>  Disk Operating System </rt></ruby>”。我是在 DOS 系统环境中长大的，学会了利用命令行来使我的工作更轻松。很多其他的人也是如此。我们非常爱 DOS ，所以在 1994 年 6 月 29 日，我们创建了 FreeDOS 工程。

如果你的 FreeDOS 的初学者，你可能会对如何使用其附带的不同的命令行程序感到困惑。让我们从我最喜欢的 26 个 FreeDOS 命令开始吧。要学习更多的信息，在大部分命令的后面添加 `/?` 选项来获取更多的信息:

```
C:\>attrib /?
ATTRIB v2.1 - 显示或更高文件属性。
版权所有 (c) 1998-2003，遵循 GPL2 协议。

语法：ATTRIB { options | [path][file] | /@[list] }

选项：

  +H 设置隐藏属性。     -H  清除隐藏属性。
  +S 设置系统属性。     -S  清除系统属性。
  +R 设置只读属性。     -R  清除只读属性。
  +A 设置存档属性。     -A  清楚存档属性。

  /S 处理具体指定路径中的所有目录中的文件。
  /D 处理带有通配符的参数的目录名称。
  /@ 处理文件，文件列在具体指定文件 中 [或 stdin]。

示例：

  attrib file -rhs
  attrib +a -r dir1 dir2*.dat /s
  attrib -hs/sd /@list.txt *.*

```

### A 是 ATTRIB

`ATTRIB` 程序显示或更改文件的 *属性* 。属性可以是以下四个值之一：隐藏（`H`）、系统 `S`）、只读（`R`）、存档（`A`）。

标记为隐藏的文件将不会在目录列表中显示。例如，假设你想隐藏一个名称为 `SECRET.TXT` 的文件，这样就不会有人它在那里。首先，你可以显示该文件的属性，以便查看它的当前设置：

```
C:\FILES>attrib secret.txt
[----A] SECRET.TXT

```

为隐藏这个文件，使用加号（`+`）操作符来开启用隐藏属性，像这样：

```
C:\FILES>attrib +h secret.txt
[----A] -> [-H--A] SECRET.TXT
C:\FILES>dir
 Volume in drive C is FREEDOS2022
 Volume Serial Number is 333D-0B18

 Directory of C:\FILES

.                   <DIR>  05-27-2022  9:22p
..                  <DIR>  05-27-2022  9:22p
         0 file(s)              0 bytes
         2 dir(s)     279,560,192 bytes free

```

`ATTRIB` 的另一种常见使用方法是操作只读属性，这样你就不会意外地覆盖重要的文件。假设你想要保护 `SECRET.TXT` 文件，这样你就不能删除或更改它。使用 `+R` 修饰符 ，打开只读属性，像这样:

```
C:\FILES>attrib +r secret.txt
[----A] -> [---RA] SECRET.TXT
C:\FILES>del secret.txt
C:\FILES\SECRET.TXT: Permission denied
no file removed.

```

### B 是“哔哔”声

如果你需要在一个批处理文件中添加一些激情活力，你可以使用 `BEEP` 命令来获取用户的注意力。`BEEP` 不会在屏幕上显示任何内容，但是会简单地发出一个 “哔哔” 的声音信号。

注意：`BEEP` 使用个人计算机内置的扬声器来发出 “哔哔” 声。如果你使用一台虚拟机器来引导启用 FreeDOS，检查你的系统是否建立正确的模拟个人计算机扬声器。否则，你将不会听到任何声音。

### C 是 CD

像 Linux 一样，FreeDOS 支持目录，这会允许你以一种来你有帮助的方式来组织你的文件。例如，你可以在一个名称为 `FILES` 的目录中存放你的全部文件，对于某些类型的文件，你可能会有其它的目录，例如，针对字处理器文件的 `DOCS` ，或者针对表格文件的 `SPRDSHT`。

你可以使用 `CD`（即 “<ruby> 更改目录 <rt>  change directory </rt></ruby>”） 命令来导航到一个目录。`CHDIR` 命令和 `CD` 命令一样，如果你更喜欢使用这种语法的话。

为更改到一个新的目录，使用 `CD` 目录和目标目录：

```
C:\>cd files
C:\FILES>cd sprdsht
C:\FILES\SPRDSHT>dir
Volume in drive C is FREEDOS2022
Volume Serial Number is 333D-0B18

Directory of C:\FILES\SPRDSHT

. <DIR> 05-27-2022 9:59p
.. <DIR> 05-27-2022 9:59p
FIB WKS 2,093 05-27-2022 10:07p
LAB1 WKS 2,087 05-27-2022 10:10p
MIS100 WKS 2,232 05-27-2022 10:05p
3 file(s) 6,412 bytes
2 dir(s) 279,527,424 bytes free

```

你不必一次导航一层目录。相反，你可以使用一个 `CD` 命令和提供完整的你想要更改到的目录路径:

```
C:\>cd \files\sprdsht
C:\FILES\SPRDSHT>dir
Volume in drive C is FREEDOS2022
Volume Serial Number is 333D-0B18

Directory of C:\FILES\SPRDSHT

.  <DIR> 05-27-2022 9:59p
.. <DIR> 05-27-2022 9:59p
FIB WKS 2,093 05-27-2022 10:07p
LAB1 WKS 2,087 05-27-2022 10:10p
MIS100 WKS 2,232 05-27-2022 10:05p
3 file(s) 6,412 bytes
2 dir(s) 279,527,424 bytes free

```

### D 是 DELTREE

如果需要删除一个单个文件，你可以使用 `DEL` 命令。为删除一个空的目录，你可以使用 `RMDIR` 或 `RD` 命令。但是，如果你想删除一个有很多文件和子目录的目录?

一个包含有其它目录的目录称为 *目录树* 。你可以使用 `DELTREE` 命令来删除整个目录树。例如，为删除你的 `FILES` 目录，包括其中包含的所有的文件和目录，输入这个命令:

```
C:\>deltree files

    [DEFAULT-BUILD v1.02g] of DELTREE.  The "ROOT-SAFETY-CHECK" is enabled.

Delete directory "C:\FILES"
and all its subdirectories?

[Y] [N] [Q], [ENTER] ?  Y

==> Deleting "C:\FILES" ...

```

你可以使用一个单一的 `DELTREE` 命令来轻松快捷地完成很多工作，因此，FreeDOS 的 `DELTREE` 提示会询问你是否真的想要这样做。谨慎地使用这个命令。

### E 是 EDIT

如果你需要在 FreeDOS 上编辑一个文本文件，`EDIT` 程序会让你轻松快速地完成任务。例如，要开始编辑一个名称为 `HELLO.TXT` 的文件，输入 `EDIT HELLO.TXT` 。如果 `HELLO.TXT` 文件已经存在，`EDIT` 打开文件并开始编辑。如果 `HELLO.TXT` 尚未存在，那么 `EDIT` 为你开启一个新的文件。

![Image of edit](/data/attachment/album/202310/12/103016ctybjctav77ifrza.png)

FreeDOS 的 `EDIT` 使用了一种友好的界面，对大多数人来说应该很容易使用。使用菜单来访问 `EDIT` 的各种特色功能，包括保存文件、打开一个新的文件、或者退出编辑器。为访问菜单，在你的键盘上按下 `Alt` 按键，然后使用箭头按键来避开和进入选择的动作。

![Image of save menu](/data/attachment/album/202310/12/103016h2420yx0x5xfs8pf.png)

### F 是 FIND

如果你需要在一个文件中查找文本，`FIND` 命令可以完成这项工作。类似于在 Linux 上的 `fgrep` ，`FIND` 会打印一些包含一个字符串的行。例如，为检查 `FDCONFIG.SYS` 文件中的 "Menu Default" 条目项，像这样使用 `FIND` :

```
C:\>find "MENUDEFAULT" fdconfig.sys

---------------- FDCONFIG.SYS
MENUDEFAULT=2,5

```

如果你不确定你想要查找的字符串是使用的大写字母还是小写字母，添加 `/I` 选项来忽略字母的大小写情况:

```
C:\>find /i "menudefault" fdconfig.sys
---------------- FDCONFIG.SYS
MENUDEFAULT=2,5

```

### G 是 GRAPHICS

如果你想要捕捉屏幕，你可以使用你键盘上的 `PrtScr`（<ruby> 打印屏幕 <rt>  Print Screen </rt></ruby>）按键来直接将你显示器上的文本打印到打印机上。不过，这只对纯文本来说有效。如果你要打印图形屏幕，你需要加载 `GRAPHICS` 程序。

`GRAPHICS` 支持不同的打印机类型，包括 HP 的 PCL 打印机、Epson 的点阵打印机，和兼容 PostScript 的打印机。例如，如果有一台连接到你的计算机的 HP 的激光打印机，你可以通过输入这条命令来为这台打印机加载支持:

```
C:\>graphics hpdefault
Running in MS GRAPHICS compatibility mode...
Using HPPCL type for type hpdefault
  If you think this is not correct, mail me (see help text).
Printing black as white and white as black
which internally uses /I of this GRAPHICS.
You can use the following command directly instead of
GRAPHICS [your options] in the future:
LH GRAPH-HP /I
Note that GRAPH-HP allows extra options:
  /E economy mode, /1 use LPT1, /2 use LPT2, /3 use LPT3,
  /R for random instead of ordered dither
  /C for 300dpi instead of 600dpi
Driver to make 'shift PrtScr' key work
even in CGA, EGA, VGA, MCGA graphics
modes loaded, in HP PCL mode.

```

### H 是 HELP

如果你刚刚来到 FreeDOS 的世界，你可以通过输入 `HELP` 来获取如何使用不同命令的提示。这将带来 FreeDOS 的帮助系统，包含所有命令的文档:

![Image of FreeDos help system](/data/attachment/album/202310/12/103017upqlqr0exavgbxex.png)

### I 是 IF

你可以使用 `IF` 语句来将条件语句添加到你的命令行或*批处理文件* 。`IF` 进行一次简短的测试，然后执行一个单个命令。例如，如果存在某个文件，那么打印结果 “It's there”，你可以输入:

```
C:\>if exist kernel.sys echo It's there
It's there

```

如果你想要测试相反的东西，在测试内容前，使用 `NOT` 关键字。例如，如果两个字符串的值不相同，那么打印结果 “Not equal” ，输入这条语句:

```
C:\>if not "a"=="b" echo Not equal
Not equal

```

### J 是 JOIN

早期的 DOS 版本是相当简单的；DOS 的第一个版本甚至不支持目录。为向这些较旧的程序提供向后兼容性，我们需要 `JOIN` 程序来作为一种巧妙的应变方法。`JOIN` 使用驱动器字母代替路径，这样，你可以将旧程序放入其自己的子目录中，但是，使用一个单个驱动器字母来访问它。

让我们假设你有一个名称为 `VC` 的旧应用程序，它不懂目录。为保持 `VC` 的工作，你可以将它的路径 <ruby> 连接 <rt>  join </rt></ruby> 到一个驱动器字母。例如:

```
JOIN V: D:\VC

```

FreeDOS 将 `JOIN` 实施为 `SWSUBST`，它也兼备类似 `SUBST` 命令的特色功能。为将 `D:\VC` 路径链接到到一个名称为 `V:` 的驱动器字母，输入:

```
C:\>swsubst v: d:\vc
C:\>dir v:
Volume in drive V is DATA
Volume Serial Number is 212C-1DF8

Directory of V:\

. <DIR> 02-21-2022 10:35p
.. <DIR> 02-21-2022 10:35p
VC COM 27,520 07-14-2019 4:48p

1 file(s) 27,520 bytes
2 dir(s) 48,306,176 bytes free

```

### K 是 KEYB

DOS 默认采用美式英语键盘布局。你的键盘是不同的，你可以使用 `KEYB` 命令来加载新的键盘语言布局。例如，为为加载一种德语键盘布局，输入:

```
C:\>keyb gr
FreeDOS KEYB 2.01 - (c) Aitor Santamaría Merino - GNU GPL 2.0
Keyboard layout : C:\FREEDOS\BIN\KEYBOARD.SYS:GR [858] (3)

```

### L 是 LABEL

FreeDOS 使用 <ruby> 标签 <rt>  label </rt></ruby> 来命名每个软盘驱动器和硬盘驱动器。这些标签提供了一种识别磁盘可能包含内容的方法。当你需要将文件存储到单个不同的软盘上时，`LABEL` 命令是非常有用的，你可以标记一个软盘 “Data”，另一个软盘为 “Games” 。

为分配一个新的标签到一个驱动器。或者更改在一个驱动器上的现存标签。像这样使用标签:

```
D:\>label d: data
D:\>dir /w
Volume in drive D is DATA
Volume Serial Number is 212C-1DF8

Directory of D:\

[123] [ABILITY] [ASEASY] [GAMES2] [QUATTRO]
[SRC] [TEMP] [THE] [VC] [WORD]
[WS400] EDLIN16.EXE EDLIN32.EXE MYENV.BAT
3 file(s) 113,910 bytes
11 dir(s) 48,306,176 bytes free

```

### M 是 MEM

运行程序和加载驱动程序会占用内存。可以查看你的系统有多少内存，以及有多少可用来运行 DOS 程序，使用 `MEM` 命令:

```
C:\>mem

Memory Type Total Used Free
---------------- -------- -------- --------
Conventional 639K 11K 628K
Upper 104K 18K 86K
Reserved 281K 281K 0K
Extended (XMS) 15,224K 537K 14,687K
---------------- -------- -------- --------
Total memory 16,248K 847K 15,401K

Total under 1 MB 743K 29K 714K

Total Expanded (EMS) 8,576K (8,781,824 bytes)
Free Expanded (EMS) 8,192K (8,388,608 bytes)

Largest executable program size 628K (643,104 bytes)
Largest free upper memory block 84K ( 85,728 bytes)
FreeDOS is resident in the high memory area.

```

### N 是 NANSI

如果你想添加一点颜色到 FreeDOS 命令行，你可以使用 ANSI 转义序列。这些序列之所以叫“转义”，是因为每个序列都以代码 33（转义字符 `ESC`）和一个由美国国家标准化协会（ANSI）定义的特殊字符序列为开头。

FreeDOS 通过 `NANSI.SYS` 驱动程序来支持 ANSI 转义序列。随着 `NANSI` 的加载，你的 FreeDOS 控制台将解释 ANSI 转义序列，例如，设置文本颜色。

![Image of Nansi](/data/attachment/album/202310/12/103017hvxf3zrraynrn3sm.png)

### O 是 oZone

FreeDOS 是一款命令行操作系统，但是一些人们更喜欢使用可备选的图形化用户界面。这就是为什么 FreeDOS 的 1.3 发行版包含一些图形化桌面的原因。我喜欢的一款名称为 oZone 的图形化桌面，它提供一种时尚、现代化外观的界面。

![Image of Ozone GUI](/data/attachment/album/202310/12/103017y6gh36h7i66zf4hi.png)

注意，oZone 有一点烦人的错误，可能还需要一些来自外部开发者的关爱。如果你想让 oZone 变得更好，可以下载源文件代码做些贡献。

### P 是 PROMPT

标准的 FreeDOS 命令行提示符会告诉你：你所在文件系统中的位置。当你第一次启动 FreeDOS 时，你的提示符看起来像 `C:\>`, 这意味着 `\`（根）目录在 `C:` 驱动器。`>` 字符表示着你可以在那里输入命令。

在你的提示符中，如果你更喜欢不同的信息，使用 `PROMPT` 目录来更改它。你可以使用一个带有 `$` 的开头的特殊代码来显示不同的信息，例如，`$D` 用于日期、`$T` 用于时间。例如，你可以使用 `$$` 指令来使你的 FreeDOS 命令行看起来像一个 Linux 提示符，来打印一个单个美元符号:

```
C:\>prompt $$
$

```

输入 `PROMPT /?` 来查看一份全部特殊代码的列表。

### Q 是 QBASIC

FreeDOS 实际上没有 QBASIC 。它是针对 MS-DOS 的专有 BASIC 语言环境。作为备选方案，我们提供一些开放源文件的编译器，包括一些针对 BASIC 编程的编译器。

FreeBASIC 编译器可以编译外来的大多数 QBASIC 程序。这里有一个简单的 “猜数” 示例:

```
dim number as integer
dim guess as integer
randomize timer
number = int( 10 * rnd() ) + 1
print "Guess the number from 1 to 10:"
do
input guess
if guess < number then print "Too low"
if guess > number then print "Too high"
loop while guess <> number
print "That's right!"

```

使用 `FBC` 命令来编译 FreeBASIC 程序:

```
C:\DEVEL\FBC>fbc guess.bas

```

这里是这个简单游戏的快速演示:

```
C:\DEVEL\FBC>guess
Guess the number from 1 to 10:
? 5
Too high
? 3
Too low
? 4
That's right!

```

### R 是 REM

在编写程序时，注释是极好的；注释帮助我们理解程序应该要做什么。可以在批处理文件中使用 `REM` 来做同样的事。在批处理文件中，在 `REM` 的后面的任何东西都将会被忽略。

```
REM this is a comment

```

### S 是 SET

FreeDOS 命令行使用一系列称为 <ruby> 环境变量 <rt>  environment variables </rt></ruby> 的变量，让你来自定义你的系统。你可以使用 `SET` 命令来设置这些变量。例如。使用 `DIRCMD` 变量来控制 `DIR` 如何排列目录列表。为设置 `DIRCMD` 变量，使用 `SET` 命令:

```
SET DIRCMD=/O:GNE

```

这告诉 `DIR` 先按照目录分组（`G`）来排序（`O`）输出，然后再按照名称（`N`）和扩展名（`E`）来排序结果。

### T 是 TYPE

`TYPE` 命令是最常使用的 DOS 命令之一。`TYPE` 显示一个文件的内容，类似于在 Linux 上的 `cat` 。

```
C:\DEVEL>type hello.c
#include

int
main()
{
puts("Hello world");
return 0;
}

```

### U 是 UNZIP

在 Linux 上，你可能更熟悉标准的 Unix 存档命令: `tar`。在 FreeDOS 上也有一个 `tar` 版本（和其它大量的流行的存档程序），但是，在 DOS 上的事实上的标准的存档命令是 `ZIP` 和 `UNZIP` 。两者都默认安装在 FreeDOS 1.3 之中。

比如说，我有一些文件的一个 zip 存档。如果我想提取整个 Zip 文件，我可以只使用 `UNZIP` 命令，并将 Zip 文件作为命令行的选项来提供。这将在我当前工作目录中开始提取存档文件。除非我正在恢复一些东西的先前版本，我通常不希望覆盖我的当前文件。在这种情况下，我将提取存档到一个新的目录。你可以使用 `-d`（“<ruby> 目标 <rt>  destination </rt></ruby>”）命令行选项来具体指定目标路径：

```
D:\SRC>unzip monkeys.zip -d monkeys.new
Warning: TZ environment variable not found, cannot use UTC times!!
Archive: monkeys.zip
creating: monkeys.new/monkeys/
inflating: monkeys.new/monkeys/banana.c
inflating: monkeys.new/monkeys/banana.obj
inflating: monkeys.new/monkeys/banana.exe
creating: monkeys.new/monkeys/putimg/
inflating: monkeys.new/monkeys/putimg/putimg.c
inflating: monkeys.new/monkeys/putimg/putimg.obj
inflating: monkeys.new/monkeys/putimg/putimg.exe

```

为学习更多关于 `ZIP` 和 `UNZIP` 命令的信息，可以阅读 [如何在 FreeDOS 上存档文件](https://opensource.com/article/21/6/archive-files-freedos)。

### V 是 VER

在 DOS 的古老岁月中，`VER` 命令会报告你正在运行的 DOS 发行版本，例如：“MS-DOS 5.0.D”。对于 FreeDOS，`VER` 命令将给予你额外的详细信息，例如 FreeDOS Shell 的版本:

```
C:\DEVEL>ver
FreeCom version 0.85a - WATCOMC - XMS_Swap [Jul 10 2021 19:28:06]

```

如果你还想查看 FreeDOS 内核版本和 DOS 兼容性等级，添加 `/R` 选项:

```
C:\DEVEL>ver /r

FreeCom version 0.85a - WATCOMC - XMS_Swap [Jul 10 2021 19:28:06]

DOS version 7.10
FreeDOS kernel 2043 (build 2043 OEM:0xfd) [compiled May 14 2021]

```

### W 是 WHICH

FreeDOS 命令行可以运行来自记录在 `PATH` 变量中的不同的目录列表的程序。你可以使用 `WHICH` 命令来准确地识别出程序的位置。只需要输入 `WHICH` 加上你想要定位的程序名称：

```
C:\>which xcopy
xcopy C:\FREEDOS\BIN\XCOPY.EXE

```

### X 是 XCOPY

`COPY` 命令只能将文件从一个位置复制到另一个位置。如果你想扩大复制的范围来包括一些目录，使用 `XCOPY` 命令。我通常添加 `/E` 选项来包含所有的子目录，包括空的子目录，这样，我可以复制整个目录树。这样就可以有效地备份我正在工作的任意工程:

```
D:\SRC>xcopy /e monkeys monkeys.bak
Does MONKEYS.BAK specify a file name
or directory name on the target (File/Directory)? d
Copying D:\SRC\MONKEYS\PUTIMG\PUTIMG.C
Copying D:\SRC\MONKEYS\PUTIMG\PUTIMG.OBJ
Copying D:\SRC\MONKEYS\PUTIMG\PUTIMG.EXE
Copying D:\SRC\MONKEYS\BANANA.C
Copying D:\SRC\MONKEYS\BANANA.OBJ
Copying D:\SRC\MONKEYS\BANANA.EXE
6 file(s) copied

```

### Y 是 Yellow

这不是一个命令，而是关于 DOS 如何显示颜色的有趣的百科知识。如果你仔细留心过 FreeDOS，你可能已经注意到，文本只能获取有限的颜色范围—— 十六种文本颜色、八种背景颜色。

IBM 的 5153 彩色显示器，通过点亮不同亮度等级的微小的红、绿、蓝荧光点的方式创建 16 种文本颜色和 8 种背景颜色来为用户显示颜色。早期的个人计算机只能以“标准强度”级别来显示背景颜色；只有文本颜色可以使用明亮颜色。

如果你查看文本颜色，你有黑色、蓝色、绿色、蓝绿色、红色、品红色、橙色和白色。这些颜色的“明亮”版本有亮黑色（暗灰色）、亮蓝色、亮绿色、亮蓝绿色、亮红色、亮品红色、黄色和亮白色。橙色的“明亮”版本有实际上是黄色。没有“亮橙色”。

如果你想要学习更多关于文本颜色的信息，阅读我们关于 [FreeDOS 为什么有 16 种颜色](https://opensource.com/article/21/6/freedos-sixteen-colors) 的文章。

### Z 是 ZIP

你可以在 DOS 命令行中使用 `ZIP` 来创建文件和目录的存档。这是一种很便利的方法：可以备份你的工作，或者发布一个 “软件包” 来在未来的 FreeDOS 发行版中使用。例如，比如说，我想备份我的工程源文件代码，其中包含这些源文件文件:

```
D:\SRC>zip -9r monkeys.zip monkeys
zip warning: TZ environment variable not found, cannot use UTC times!!
adding: monkeys/ (stored 0%)
adding: monkeys/banana.c (deflated 66%)
adding: monkeys/banana.obj (deflated 26%)
adding: monkeys/banana.exe (deflated 34%)
adding: monkeys/putimg/ (stored 0%)
adding: monkeys/putimg/putimg.c (deflated 62%)
adding: monkeys/putimg/putimg.obj (deflated 29%)
adding: monkeys/putimg/putimg.exe (deflated 34%)

```

ZIP 支持很多命令行选项来完成不同的工作，但是，我使用最多的命令行选项是： `-r` 用于递归处理目录和子目录、`-9` 用于提供尽可能大的压缩比。`ZIP` 和 `UNZIP` 使用类 Unix 命令行，因此，你可以在短划线后面合并选项: `-9r` 将在 Zip 文件中给予最大压缩比和包括子目录。

关于如何使用 `ZIP` 和 `UNZIP` 命令的更多详细信息，阅读 [如何在 FreeDOS 上存档文件](https://opensource.com/article/21/6/archive-files-freedos)。

### 新的 FreeDOS 指南

准备好你的 FreeDOS 旅程的下一步了吗?查看我们的新的电子书，现在开始尝试我们的 FreeDOS !

>
> **[FreeDOS 使用指南](https://opensource.com/downloads/guide-using-freedos)**
>
>
>

>
> **[深入 FreeDOS 高级指南](https://opensource.com/downloads/advanced-freedos)**
>
>
>

*（题图：MJ/0b21dcc8-4c8d-457b-9e0d-fbbe5dd08c60）*

---

via: <https://opensource.com/article/22/6/26-freedos-commands>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1152 震惊！微软发布了一份如何安装 Linux 的教程

Summary:
? 震惊！微软发布了一份如何安装 Linux 的教程
? 一位 23 岁的贡献者修复了一个 22 年之久的 Firefox 问题
? 红帽关闭其安全公告邮件列表
»
»

![](/data/attachment/album/202310/12/192239gxfgfegu84244g86.jpg)

![](/data/attachment/album/202310/12/192248ruckqawad1ku1adz.jpg)

### 震惊！微软发布了一份如何安装 Linux 的教程

微软发布了一份题为《[如何下载和安装 Linux](https://learn.microsoft.com/en-us/linux/install)》的实用指南，给出了四种可供选择的安装方法：使用 WSL 2、使用本地虚拟机、使用云虚拟机或在裸机上安装。著名科技网站 The Register 认为，这篇教程“确实不差”。当然，我们知道，这实际上还是在推广它的 WSL 2。

>
> **[消息来源：微软](https://learn.microsoft.com/en-us/linux/install)**
>
>
>

>
> 老王点评：我觉得，就差一个 Microsoft Linux 了。
>
>
>

![](/data/attachment/album/202310/12/192257r4vu02ukifk7nn22.jpg)

### 一位 23 岁的贡献者修复了一个 22 年之久的 Firefox 问题

Firefox 最近修复了一个有 22 年历史的工具栏鼠标提示错误：当鼠标悬浮在工具栏图标上时会展示相关提示，如果此时将浏览器从前台切换到后台，该鼠标提示会仍然留在前台。一位 Firefox 用户注意到了这个讨厌的问题，并发现该问题已经存在了 22 年之久。但由于这个问题很细微，优先度极低，因此一直没有得到修复。于是他决定自己来修复，他知道如何编程，但此前从未向开源项目贡献过代码。通过搜索问题所在和编写代码，他提交了补丁，并在 Mozilla 的工程师帮助下完善了补丁。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/10/22-year-old-firefox-tooltip-bug-fixed-in-a-few-lines-offering-hope-to-us-all/)**
>
>
>

>
> 老王点评：真的，只要你想，你都可以成为一个开源贡献者，甚至是在 Firefox 这么复杂、重要的项目中。
>
>
>

![](/data/attachment/album/202310/12/192312dnd9j1vqzotrkjvi.jpg)

### 红帽关闭其安全公告邮件列表

红帽公司上周悄悄宣布关闭 rhsa-announce 邮件列表，不再向该列表发送安全公告通知。这个邮件列表接收 RHEL 和一系列相关产品的安全公告。主要的变化是收件箱中的直接通知将消失，现在这些通知邮件都是付费的，只有付费的红帽客户才能收到提醒。也许庆幸的是，它仍将通过 RSS 订阅源共享信息，这个所有人都可以免费访问，虽然不知道能维持多久。有很多人依赖于邮件列表来保持他们的服务器组件的更新，而不是通过官方推送的软件更新，比如运行自定义和嵌入式发行版的用户。此外，系统管理员们也需要在官方推送补丁之前，提前通过邮件列表等方式获得相关安全信息。

>
> **[消息来源：The Register](https://www.theregister.com/2023/10/11/red_hat_closed_rhsa_announce/)**
>
>
>

>
> 老王点评：希望不是我的错觉，而是电子邮件列表这种形式太古老了。
>
>
>


Ubuntu 23.10：全新版本来袭！

那又如何? apt 始终是异类，打死我，我都不用 ！

Ubuntu的界面是真丑，下不去手的那种，再加上新格式，无爱了

Ubuntu的界面是真丑，下不去手的那种，再加上新格式，无爱了

apt可不是异类，debian也在用，snap才是

来自广东广州的 Chrome Mobile 116.0|Android 10 用户

该吃药了吧，apt异类？我看你才是异类

一升级很多插件就不能用了，比如非常好用的 hide top bar , 每次升级都这样，所以我开始用kde了

A vulnerability has been discovered in Debian's APT that allows easy lateral movement. This bug has been around for a long time and was only fixed a few years ago.

![](/data/attachment/album/202310/13/095752pfbbxdci1xoqcfb1.jpg)

>
> Ubuntu 23.10 “Mantic Minotaur” 再度亮相，搭载了 GNOME 45，以及众多引人瞩目的升级。
>
>
>

又一次，一如既往的一年一度，我们迎来全新的 Ubuntu 发布！

这次发布的版本是 **Ubuntu 23.10** ，这不是一个 [长期支持](https://itsfoss.com/long-term-support-lts/)（LTS）版本，它的代号是 “Mantic Minotaur” （预言牛头人）。

非 LTS 版本更偏向于满足那些想要获取到 Ubuntu 最新以及最出众特性的用户。

对于那些希望长时间坚守一个版本的用户，我们建议使用 LTS 版本，比如 [Ubuntu 20.04](https://itsfoss.com/things-to-do-after-installing-ubuntu-20-04/) 和 [Ubuntu 22.04](https://itsfoss.com/ubuntu-22-04-release-features/)。

总之，让我们深入了解这次发布的新版本，去发现其中的亮点。

>
> ? Ubuntu 23.10 将会 **提供九个月的支持**，一直到 2024 年 7 月为止。
>
>
>

### ⭐ Ubuntu 23.10：新版调整了什么？

![](/data/attachment/album/202310/13/095826lstclmrxdcpd0e1d.png)

即使这是一个非 LTS 发布，但是 **Ubuntu 23.10 却包含了许多有趣的新特性和升级**。

一些主要亮点包括：

* 更新升级的安装程序
* 受限的非特权用户命名空间
* GNOME 45
* 全新的壁纸
* 基于 Flutter 的应用商店
* Linux 内核 6.5

### 更新升级的安装程序

![](/data/attachment/album/202310/13/095826cz2qv2ovo8vv8p60.png)

首先，Ubuntu 23.10 的安装程序 **开始实验性地支持两大重要功能** ：

其一是 [TPM 支持的全盘加密（FDE）](/article-16187-1.html)，这意味着采用全新的加密机制。它将与你主板上的 TPM 芯片协同运作。

其二是期待已久的 [ZFS 支持](https://news.itsfoss.com/ubuntu-23-10-zfs/) 再次回归到安装程序中，它在 [Ubuntu 23.04](https://news.itsfoss.com/ubuntu-23-04-release/) 被移除。

>
> ? 更广泛的 TPM 支持的全盘加密硬件支持将在 Ubuntu 24.04 LTS 中推出。
>
>
>

### 受限的非特权用户命名空间

![](/data/attachment/album/202310/13/095827dygg312bg44go4qg.png)

Ubuntu 23.10 首次推出一项新的安全功能。它限制了内核的 “非特权用户命名空间” 特性，这有助于应用程序创建更安全的沙箱环境。

这个特性很有用，那为什么要限制它呢? 原因在于，这个内核特性可能被攻击者利用。

为了消除与这个特性相关的风险，[AppArmor](https://ubuntu.com/server/docs/security-apparmor) 将被用于有选择地允许/禁止非特权用户命名空间。

这个安全特性默认是关闭的，但可以通过命令行选择开启。Canonical 将搜集用户反馈，然后可能决定通过更新将其设为默认。

### GNOME 45

![](/data/attachment/album/202310/13/095827yv2mdq6i00vizc52.png)

Ubuntu 23.10 提供了最新发布的 [GNOME 45](/article-16215-1.html) 桌面环境，它包括了 **优化过的系统设置应用**、**更新的核心应用**，并 **新增了两个应用**，名为 <ruby>   放大镜  <rt>  Loupe </rt></ruby> 和 <ruby>   快照  <rt>  Snapshot </rt></ruby>。

新的 [药丸形工作空间指示器](https://news.itsfoss.com/gnome-activities-indicator/) 也在这次发布中首次亮相，虽然不是每个人都会喜欢。

### 新的壁纸

![](/data/attachment/album/202310/13/095828ajrnbo8v8dx7bnpv.png)

Ubuntu 23.10 版本发布，也不忘继续传统，**推出了全新的壁纸** ，这些壁纸主题都与其代号保持一致。所有壁纸看起来都非常不错，这些都是从几个月前举行的 Mantic Minotaur [壁纸比赛](https://discourse.ubuntu.com/t/mantic-minotaur-23-10-wallpaper-competition/37235) 中被选中的。

你可以通过 [官方博客](https://ubuntu.com/blog/into-the-labyrinth) 查找更多有关这些极酷壁纸的信息。

>
> ? 我个人特别喜欢 “Bodacious Bovine” 的浅色/深色版本。
>
>
>

### 基于 Flutter 的应用商店

![](/data/attachment/album/202310/13/095828mexx3y85eeeo76e6.png)

得益于在 Ubuntu 23.10 上推出了 **全新的 [基于 Flutter 的商店](https://news.itsfoss.com/ubuntu-23-10-ubuntu-store/)** ，Canonical 推将 Ubuntu 各种元素 Flutter 化的努力见到了效果。这个新商店拥有 **更新的布局**、**全新的应用视图** ，以及 **更好的搜索功能**。

你在其中可以找到 Snap 和 Deb 包。

### Linux 内核 6.5

![](/data/attachment/album/202310/13/095829nm8j78sdoglzmts1.png)

首先，让我们来了解下让一切变为可能的原动力。Ubuntu 23.10 版本采用了相对更新的 [Linux 内核 6.5](https://news.itsfoss.com/linux-kernel-6-5-release/)。

这一特性让 Ubuntu 能够使用到一些新的硬件支持，如 **Wi-Fi 7**、**USB4**、**针对 AMD FreeSync 视频的即插即用支持**，以及**对 AMD Radeon RX 7000 系列显卡的超频支持** 等。

### ? 其他变动

除了之前提到的特性，还有一些其他值得注意的变动：

* 支持最新发布的 [树莓派 5](https://news.itsfoss.com/raspberry-pi-5/) 和 [HiFive Pro P550](https://www.sifive.com/boards/hifive-pro-p550)。
* [为 PPA 提供增强的安全性](https://news.itsfoss.com/ubuntu-23-10-ppa/)。
* 对 Rust 的支持进一步增强。
* 加入了 [Shotwell 0.32](https://gitlab.gnome.org/GNOME/shotwell/-/blob/master/NEWS)。
* 推出了全新升级的平铺辅助工具。

想要了解更多关于此版本的详细信息，你可以查阅我们之前发布的关于 [Ubuntu 23.10 特性](https://news.itsfoss.com/ubuntu-23-10/) 的报告，或者直接阅读官方的版本发布说明。

### ? 下载 Ubuntu 23.10

>
> ? 请注意，在发布公告后，下载可能还需要一段时间。
>
>
>

你可以在 [官方网站](https://ubuntu.com/download/desktop) 或是 Ubuntu 的镜像 [仓库](https://cdimage.ubuntu.com/ubuntu/releases/) 中获取最新的 ISO 文件。

>
> **[Ubuntu 23.10](https://releases.ubuntu.com/23.10/)**
>
>
>

**对于现有用户**，你可以参考我们的 [如何升级 Ubuntu](https://itsfoss.com/upgrade-ubuntu-to-newer-version/) 教程来获取此最新版本。

? 你是否对试用这个版本感到兴奋？在下方告诉我们你的想法吧！

（题图：[Ubuntu](https://ubuntu.com/blog/into-the-labyrinth)）

---

via: <https://news.itsfoss.com/ubuntu-23-10-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


微软出品：《如何下载和安装 Linux》

Summary: 编者注：本文译自微软官方发布的指南。

编者注：本文译自微软官方发布的指南。

>
> 编者注：本文译自微软官方发布的指南。
>
>
>

![](/data/attachment/album/202310/13/155914y9m9e31eyni7mb9o.jpg)

Linux 是一款操作系统，与 Windows 有许多相似之处，但由于其开源和高度定制化的特性，衍生出众多的版本。安装 Linux 的前提是，你需要决定一个安装方式，并选定一个适合的 Linux 发行版。

要安装 Linux，你需要如下步骤：

1. 首先，确定一个安装方式。你可以选择使用 <ruby> Windows 的 Linux 子系统 <rp>  （ </rp> <rt>  Windows Subsystem for Linux </rt> <rp>  ） </rp></ruby>（WSL）进行安装，也可以选择完全安装在物理硬件上（即裸机安装），或者在本地或云端创建一个虚拟机（VM）来运行 Linux。
2. 其次，选择一个 Linux 发行版。如：Ubuntu、Debian、Kali Linux、OpenSUSE 等。
3. 然后，按照你所选的安装方法进行操作。具体可以是以下四种方式之一：
	* 使用 Windows 子系统 Linux（WSL）中的安装 Linux 命令
	* 在云中创建一个 Linux 虚拟机（VM）
	* 在本机创建一个 Linux 虚拟机（VM）
	* 创建一个可引导的 USB，以安装裸机版 Linux
4. Linux 安装完成后，你需要熟悉你所选发行版的包管理器，更新和升级可获取的包，并熟悉微软提供的 Linux 资源，比如培训课程、为 Linux 设计的流行工具、新闻以及开源活动等。

### 步骤 1：选择一个安装 Linux 的方法

至于如何选择安装 Linux 的方式，这主要取决于你的需求和喜好。

* **如果你是 Linux 新手**，我们推荐你首先尝试 Windows 的 Linux 子系统（WSL），这是入门 Linux 最简单的方法。
* **如果你正在企业环境中工作，或你在处理的业务有更复杂的需求**，如规模或安全性等方面，我们推荐你在云端运行 Linux 虚拟机，并查看 Azure 所能提供的帮助。此建议也适用于想要将 Linux 作为服务器的用户。
* **如果你只想将 Linux 作为你主要的操作系统**，可以选择在物理硬件上裸机安装 Linux，尽管这个安装过程稍微复杂一些，且你可能无法访问到 Windows 的工具（如 Outlook、Teams、Word、PowerPoint 等），但你可以全力发挥你硬件的全部性能，无需承担虚拟化或仿真的开销。

你可以在下文中了解这些选项的详细信息。

#### Windows 的 Linux 子系统（WSL）

Windows 的 Linux 子系统（WSL）是一个安装 Linux 的简便方式，适用于使用 Windows 机器的用户。这是安装 Linux 最简单的一种方式。你只需执行 Linux 的安装命令：`wsl --install`，即可安装 Ubuntu 发行版。

此方法通过虚拟技术，将 Windows 和 Linux 操作系统（后者运行在真实的 Linux 内核上）整合到一起。你可以根据需要添加任何数量的 Linux 发行版，并且可以方便地在 Windows 中运行你喜爱的 Linux 工具，包括图形界面应用。此外，你还可以在同一条命令行中混合使用 Bash 和 PowerShell 命令。在这种方式下，项目文件由 Linux 文件系统托管，你可能需要用到的开发工具（如 VS Code）则由 Windows 文件系统托管。此安装方式的效率高且性能优秀。选择 Linux 发行版（或默认的 Ubuntu 发行版）后，你可以按照 Windows 的 Linux 子系统下的 [Linux 安装命令](https://learn.microsoft.com/en-us/linux/install#install-linux-with-windows-subsystem-for-linux) 进行操作，或在 [WSL 文档](https://learn.microsoft.com/en-us/windows/wsl) 中查阅更多信息。

![WSL install command screenshot](/data/attachment/album/202310/13/155930jsn6dl2ndcvzcrlr.png)

#### 创建虚拟机（VM）

创建虚拟机（VM）的选项适合所有人，无论你正在使用 Windows 还是 MacOS。然而，如果你想在云端创建虚拟机，你需要有一个 Azure 账户，或者如果你打算在你的电脑上直接创建虚拟机，你需要安装虚拟化软件。

虚拟机实际上是真实计算机的数字版，对于在可能需要提高硬件支持（例如：需要更多内存和处理能力）以及安全级别（如防病毒、加密、备份、策略管理等）的环境中运行 Linux 的场景非常受欢迎。

就像使用 WSL一样，你可以根据自己的需求创建多个不同 Linux 发行版的虚拟机实例，这些虚拟机在相互独立的环境中运行，它们没有任何冲突，非常适合进行软件开发和测试。虽然在 WSL 上运行 Linux 发行版的性能稍微更优，但 Linux 虚拟机更易于复制和迁移。可以根据你的需求，在 Azure 等云服务上或者通过虚拟化软件（也称为 <ruby> 管理程序 <rp>  （ </rp> <rt>  hypervisor </rt> <rp>  ） </rp></ruby>）在自己的电脑上创建虚拟机。

在 Azure 上创建虚拟机，实际上是在云端的微软的服务器上托管你的虚拟机，你只是在向微软租用计算资源以运行虚拟机。这种方式在当你需要快速配置新的虚拟机或需要运行需求超过你个人电脑能力的任务时，将非常方便。大规模企业，由于其对扩展性、控制和功能需求更高，往往选择 [在 Azure 上运行 Linux 虚拟机](https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/n-tier/linux-vm)。

在本地计算机上创建虚拟机需要使用虚拟化软件，即管理程序。Windows 提供了一个名为 [Hyper-V](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/) 的 “类型 1” 管理程序，可以直接在你的硬件上运行虚拟化。此外，还有一些在操作系统上运行的“类型 2” 管理程序，比如 VirtualBox 或 VMware。如果你使用的是 Mac，一般推荐使用的管理程序是收费的“Parallels Desktop”。如果你想了解更多关于在配备了苹果硅芯片的 Mac 上如何安装 Linux 虚拟机的信息，可以参考对应的 [安装教程](https://kb.parallels.com/128445)。需要指出的是，[VirtualBox](https://www.virtualbox.org/wiki/Downloads) 支持 Windows 和 MacOS。有关于如何在苹果硅芯片或基于英特尔的 Mac 上设计并运行自定义 Linux 客户机的更多信息，请参考 [这篇](https://developer.apple.com/documentation/virtualization/creating_and_running_a_linux_virtual_machine)。

使用虚拟机管理器时，你需要自行管理虚拟机，包括分配内存、磁盘空间等资源，并确保系统的安全和及时性。相比其他选项，这需要更多的技术专长，并且可能无法达到同等的扩展性和容错容忍度。

一旦你选定了 Linux 发行版，并决定是在 [本地通过虚拟机管理器运行虚拟机](https://learn.microsoft.com/en-us/linux/install#create-a-linux-virtual-machine-locally-using-a-hypervisor)，还是 [在云端通过 Azure 运行](https://learn.microsoft.com/en-us/linux/install#create-a-linux-virtual-machine-in-the-cloud)，你就可以按照相应的说明，在云上或在本地创建 Linux 虚拟机。

![Create a Linux VM on Azure screenshot](/data/attachment/album/202310/13/155931k2tq839mn3m0tadd.png)

#### 裸机 Linux

所谓的裸机 Linux，意味着 Linux 是直接在设备硬件上运行。要进行裸机安装，你需要从你选择的 Linux 发行版官方网站下载 ISO 安装文件，并从这个文件创建一个可启动的 USB 驱动器。为了完成这个步骤，你需要一个已经安装有操作系统（Windows 或者其他操作系统）的设备。

许多用户选择裸机安装 Linux，并在同一台设备上与 Windows 共存，这就需要利用所谓的“双启动”模式。使 Windows 和 Linux 能双启动，就需要对你的硬盘进行分区，以保证两个操作系统（Linux 和 Windows）都有各自独立的空间。尽管 WSL、虚拟机和裸机 Linux 的性能已经相差无几，但由于双启动方式需要在两个操作系统间切换的时候频繁重启设备，所以这种安装方式并不是首选。此外，如果选择裸机安装 Linux，还需要对可能出现的设备驱动或硬件兼容性问题做好准备。

你可以在 [Linux.org](https://linux.org/pages/download/) 网站上找到各种可供下载的主流 Linux 发行版。在你选定一个发行版之后，按照指南制作一个 [可启动的 USB 驱动器](https://learn.microsoft.com/en-us/linux/install#create-a-bootable-usb-drive-to-install-bare-metal-linux)，进行裸机 Linux 的安装就可以了。

![Create a bootable USB screenshot](/data/attachment/album/202310/13/155931goxb66oi3okkuko3.png)

### 步骤 2：选择一个 Linux 发行版

Linux 的不同版本被称为“发行版”。因此，实际上并没有一个简单的“安装 Linux”的方法，你需要首先选择你想下载和安装哪一个使用了 Linux 内核的发行版。目前存在超过 600 种活跃的 Linux 发行版，如 Ubuntu、Debian、Kali Linux、OpenSUSE 等。在选择发行版时，有许多因素需要考虑，如：

#### 需要 Linux 经验

如果你是 Linux 新手，可能会首选 Ubuntu。由于其支持健全且易用，Ubuntu 是 Linux 用户的主要起点之一。Ubuntu 提供了桌面版和服务器版供你选择，具体使用哪个版本由你打算如何使用它决定。操作系统需要负责的具体任务可能帮助你确定使用哪个发行版。Arch Linux 对于希望具有高度自定义、自行决定如何配置，但仍然稳定且得到大用户群支持的用户来说是个不错的选择。从这个地方开始可能会更复杂，但可以帮助你更好地理解 Linux 如何工作。

#### 系统要求

如果需要一个资源消耗较少，或者说“轻量级”的发行版，就需要考虑对内存和处理速度需求较低的发行版。Alpine Linux 是一个热门的选择，用户会发现大部分的功能默认关闭或者没有安装，但这个发行版仍有你运行一个容器化应用所需的所有东西。

#### 安全需求

有些 Linux 用户可能有特殊的安全需求需要考虑。Kali Linux 是设计用于进行安全任务如渗透测试、安全研究、计算机鉴识和逆向工程的发行版的一个例子。

#### 对商业和企业环境的需求

与普通用户环境相比，商业、企业或者学术环境可能有着各自独特的要求。红帽企业 Linux（RHEL）和 Oracle Linux 提供全天候的全球支持和订阅服务。CentOS 也是一款备受欢迎的企业级发行版，它由社区支持，同时与 RHEL 具有良好的兼容性。

#### 社区支持

具有强大用户社区的发行版往往受到青睐，因为这样的社区可以持续对发行版作出贡献，包括修复问题，增加新的功能，解答使用中的问题等。Ubuntu 就是最受欢迎的发行版之一，而 OpenSUSE 的历史比大多数其他发行版更悠久，且仍然在活跃更新中。随着用户需求和喜好的变化，许多其他的发行版也迅速赢得了用户的喜爱。Linux.org 网站提供了一些资源帮助你了解哪些发行版具有良好的支持或正在日益受到欢迎。

![Screenshot of the list of distributions on Linux.org](/data/attachment/album/202310/13/155931cnm7jnnp7pjjmmnn.png)

### 步骤 3：按照安装方法步骤执行安装

#### 在 Windows 的 Linux 子系统（WSL）中安装 Linux

若在 Windows PC 上安装 Linux，需要执行 Linux 安装命令。

1. 首先，通过右键点击选择 “<ruby> 以管理员身份运行 <rp>  （ </rp> <rt>  Run as administrator </rt> <rp>  ） </rp></ruby>” 来打开 PowerShell 或 Windows 命令提示符。
2. 执行 Linux 安装命令：`wsl --install` 。
3. 然后，重启你的电脑。

![WSL Linux Install List Command screenshot](/data/attachment/album/202310/13/155931qc7rrc7rx8iigmrg.png)

##### Linux 安装命令的选项

默认情况下，安装命令会选择 Ubuntu 的 Linux 发行版。你可以查看微软商店中的其它可用发行版，方法是输入命令：`wsl -l -o` 。如需安装 Ubuntu 之外的其它发行版，在安装命令后加上 `-d` 参数，然后输入你想安装的发行版的名称：

```
wsl --install -d <发行版名称>
```

若你想安装的发行版不在微软商店中，你可参照 WSL 文档，学习如何 [导入](https://learn.microsoft.com/en-us/windows/wsl/use-custom-distro) 你想与 WSL 一起使用的任何 Linux 发行版。

若想获取更多关于如何使用 VS Code、Git、Database、Docker、GUI apps、GPU 加速、NodesJS、USB 设备、挂载磁盘、创建自定义发行版、管理磁盘空间、为企业业务设置 WSL 的信息，你可以查阅 [WSL 的文档](https://learn.microsoft.com/en-us/windows/wsl/)。

#### 在云端创建 Linux 虚拟机

若想在 Azure 云上创建由 Linux 支持的虚拟机（VM），你需要登录 Azure Portal，并选择 “<ruby> 创建虚拟机 <rp>  （ </rp> <rt>  Create a Virtual Machine </rt> <rp>  ） </rp></ruby>” 服务。然后，按照指示完成用户名、项目、实例、SSH 密钥、端口设置，并复制 IP 地址。

Azure 提供了多种在云上创建 Linux VM 的选项。你可以选择喜欢的方法创建 Linux VM，快速指南选择方法如下：

* [Azure Portal](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu&source=docs)
* [Azure CLI](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-cli)
* [Azure PowerShell](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-powershell)
* [Terraform](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-terraform)
* [Bicep 文件](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-bicep?tabs=CLI)
* [Azure 资源管理器（ARM）模板](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-template)

如果你还没有 Azure 订阅账户，可以在开始之前创建一个 [免费账户](https://azure.microsoft.com/free/)。如果这是你第一次在 Azure 上创建 Linux VM，你可以学习更多 [有关 VM 的知识](https://azure.microsoft.com/resources/cloud-computing-dictionary/what-is-a-virtual-machine)，或者查看在线培训课程：[在 Azure 上创建 Linux 虚拟机](https://learn.microsoft.com/en-us/training/modules/create-linux-virtual-machine-in-azure/)。

![Select Linux VM size on Azure screenshot](/data/attachment/album/202310/13/155931kbtpaj2ep2bhvnxj.png)

#### 使用虚拟机管理程序在本地创建 Linux 虚拟机

要在你的本地机器上使用虚拟机管理程序创建 Linux 虚拟机，你可以选择使用：

* [Windows Hyper-V](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/)
* [VirtualBox](https://www.virtualbox.org/)
* [VMware](https://docs.vmware.com/en/VMware-Horizon-7/7.13/linux-desktops-setup/GUID-51C371A9-4D76-4A8C-8645-909E93080B4F.html)

首先，你需要根据你所选择的管理程序检查硬件需求。在管理程序启用或安装后，你需要确定你想要安装的操作系统类型及其安装源（一般为 .iso 或 .vhdx 文件）。给虚拟机命名，选择文件存储的目录，设置分配给虚拟机的内存和虚拟硬盘大小（通常可以在固定或动态分配的硬盘空间中选择）。由于显示驱动和其他硬件依赖关系，有时候整合 Linux 虚拟机可能比较棘手，但大部分的管理程序都有活跃的用户社区，可以提供必要的帮助。如果你希望你的虚拟机能够连接到网络，可能还需要设置一个虚拟网络。

如果你刚接触管理程序，想要了解更多的话，可以尝试免费的在线课程：[配置和管理 Hyper-V 虚拟机](https://learn.microsoft.com/en-us/training/modules/configure-manage-hyper-v-virtual-machines/)。

![Hyper-V install screenshot](/data/attachment/album/202310/13/155932xpnjx5npz9nrqvj3.png)

#### 创建可引导的 USB 驱动器以安装裸机 Linux

如果你需要裸机的 Linux，不论是在设备上单独运行某个发行版，还是在该发行版和 Windows 之间进行双启动，皆可以按照以下步骤进行：

1. 下载你所选的 Linux 发行版的镜像文件，一般是 ISO 文件，例如，你可以在 [Ubuntu 桌面版下载](https://ubuntu.com/download/desktop) 页面下载最新版的 Ubuntu 镜像。有些 Linux 发行版可能在下载前需要你验证镜像签名。
2. 创建一个可引导的 USB 驱动器。你通常需要一个至少有 16GB 空间的 USB 驱动器。同样，你也需要一个可以创建引导驱动器的软件，例如 balenaEtcher、Rufus、UNetbootin 等。通常情况下，你选择的 Linux 发行版的下载页面会推荐使用哪种引导盘创建软件。
3. 从 USB 驱动器启动你的设备。在设备重启时，你需要进入启动菜单，这通常通过在启动期间按下 `F12` 键来实现。然后你可以选择安装包含有你的 Linux 发行版本 ISO 文件的 USB 驱动器。
4. 选择安装选项。通常，你的 Linux 发行版的安装器会包括一系列安装步骤，这些步骤中会包含是否包括某些特性、第三方软件包等的选项。你还可能需要在该 Linux 发行版会是唯一操作系统的情况下选择是否对磁盘进行清除，或者如果你计划运行多个操作系统，你可能需要使用一个分区。你也可能会被询问是否希望启用加密。
5. 最后，与任何 Linux 安装一样，你需要创建一个用户名和密码。

![Ubuntu install screenshot](/data/attachment/album/202310/13/155932icmp7y2oy83sn2en.png)

### 步骤 4：Linux 安装成功后需要进行的操作

在你成功安装 Linux 发行版后，还需要进行以下几个重要的步骤：

1. 首先，熟悉你选择的 Linux 发行版所使用的首选包管理器。Linux 通过包管理器来下载和更新你打算使用的所有软件。例如，Ubuntu 就使用了 [Advanced Packaging Tool](https://ubuntu.com/server/docs/package-management)（APT）。
2. 进一步，利用你的发行版的包管理器进行发行版的更新和升级。稳定的 Linux 发行版中的软件包往往已经过时，因此我们建议你定期更新你的系统。同时，你可能希望进行升级操作，它会更新你已经安装的所有包文件的版本。如你使用的是 Ubuntu，那么你可以运行命令：`sudo apt update && sudo apt upgrade`。
3. 除此之外，探索 Microsoft 提供的 [Linux 资源](https://learn.microsoft.com/en-us/linux/) 也非常重要，例如针对 Linux 的 Microsoft 工具（如 Visual Studio Code、.NET 和 PowerShell），Learn 目录中可供学习的免费 Linux 相关课程，以及关于事件、新闻和 Linux 组织与 Microsoft 之间的持续伙伴关系的信息，包括 Microsoft 支持的 Mariner 发行版。

*（题图：MJ/36b362bf-a6c5-4e60-b279-65b67e157872/）*

---

via: <https://learn.microsoft.com/en-us/linux/install>

作者：[mattwojo](https://github.com/mattwojo) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](/article-16278-1.html) 荣誉推出


硬核观察 #1153 Ubuntu 桌面 23.10 ISO 因用户恶意翻译而被召回

Summary:
? Ubuntu 桌面 23.10 ISO 因用户恶意翻译而被召回
? 欧洲考虑开源 TETRA 紧急服务加密算法
? 谷歌直接在搜索栏中生成人工智能图片
»
»

![](/data/attachment/album/202310/13/171221fqo1t1wwt5q11q5t.jpg)

![](/data/attachment/album/202310/13/171232hvl2qtl1lt1lhli0.jpg)

### Ubuntu 桌面 23.10 ISO 因用户恶意翻译而被召回

在 Ubuntu 23.10 发布数小时后，Canonical 撤下了 ISO，原因是 Ubuntu 桌面的安装程序用户界面的一组特定翻译中发现了恶意贡献者的仇恨言论。Canonical 称，“这些翻译并非 Ubuntu 存档的一部分，我们认为该事件仅涉及部分应用程序所采用的第三方翻译工具提供的翻译。”因此，Canonical 正在努力纠正翻译，重新生成 ISO。涉及的镜像包括 Ubuntu 桌面 23.10 及其每日构建版和 Ubuntu Budgie 23.10。在重新生成之前，目前只能下载 Ubuntu 23.10 的服务器版和 netboot 压缩包。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Ubuntu-23.10-Recalled)**
>
>
>

>
> 老王点评：十分恶心的行为。仇恨之下，开源也非净土。
>
>
>

![](/data/attachment/album/202310/13/171242uhgidxgknd9bndax.jpg)

### 欧洲考虑开源 TETRA 紧急服务加密算法

TETRA 是一种地面集群无线电协议，在欧洲、英国等国家用于保障政府机构、执法部门、军队和应急服务组织使用的无线电通信。今年 7 月，荷兰一家安全公司发现了 TETRA 中的 [五个漏洞](/article-16032-1.html)，其中两个被认为是关键漏洞。负责 TETRA 算法的 ETSI 技术委员会称已于去年 10 月修复，并指出 “没有发现任何主动利用运行网络的行为”。但由于该加密算法的专有性质，这使得对应急网络系统进行适当的五重测试变得更加困难，ETSI 也因此遭受到批评。ETSI 正在讨论是否公开这些算法。

>
> **[消息来源：The Register](https://www.theregister.com/2023/10/12/etsi_tetra_open_source/)**
>
>
>

>
> 老王点评：所有不开源的东西，都是脆弱的，其掩盖的问题可能会更严重。
>
>
>

![](/data/attachment/album/202310/13/171254c7e777phpnyrh8ge.jpg)

### 谷歌直接在搜索栏中生成人工智能图片

谷歌宣布，选择加入其 “搜索生成体验”（SGE）的用户将可以直接在谷歌的搜索栏中创建 AI 图像。SGE 不是从返回的列表中挑选网站，而是生成对用户的自然语言提示的响应。这次的更新是 SGE 的自然延伸，只需返回生成的图片，而不是生成的文本。这些图片是使用谷歌的 Imagen 图片人工智能生成的。

>
> **[消息来源：Engadget](https://www.engadget.com/you-can-now-generate-ai-images-directly-in-the-google-search-bar-160020809.html)**
>
>
>

>
> 老王点评：感觉谷歌在生成式 AI 方面的追赶速度有点慢。
>
>
>


Kubuntu 23.10 版本已发布！

Summary: Kubuntu 预装了必要的 KDE Plasma 及应用更新。

![](/data/attachment/album/202310/14/104118g6gqg1cp81gitqg5.jpg)

>
> Kubuntu 预装了必要的 KDE Plasma 及应用更新。
>
>
>

如果你期待在 Ubuntu 基础之上更新你的 KDE 体验，那么欢迎尝试 Kubuntu 23.10。

虽然这不是一次重大的发布，但如果你正在从 Kubuntu 23.04 升级，遇到了问题，这个新版本会带来更愉快的使用体验。

>
> ? 记住，Kubuntu 23.10 将享有 **九个月**（即至 **2024 年 7 月**）的技术支持。
>
>
>

### Kubuntu 23.10：有什么新特性？

![](/data/attachment/album/202310/14/104201dmdt1fmfj25pntd4.jpg)

这个版本的亮点包括：

* KDE Plasma 5.27.8
* KDE 应用的更新
* Linux 内核 6.5
* Firefox 118
* LibreOffice 7.6
* Thunderbird 115

#### KDE Plasma 5.27.8

可能你会好奇，为何在这次新的更新中还停留在 KDE Plasma 5.27阶段？

这是因为它是 [KDE Plasma 6](https://news.itsfoss.com/kde-plasma-6-dev/) 升级（计划在 *2024 年 2 月* 进行）前的最后一个版本。所以，你不会看到 KDE Plasma 5.28 的发布。

![](/data/attachment/album/202310/14/104202vdmg4t3zld4awy4o.png)

在 KDE Plasma 5.27.8，做了许多显著的问题修复以及改进，包括对混合睡眠的支持、利用 Plasma <ruby> 系统监视器 <rt>  System Monitor </rt></ruby> 对多 GPU 配置中的英伟达 GPU 的监控。

也优化了 KRunner 在 X11 上的性能，系统设置中的关键词搜索更加高效。

![](/data/attachment/album/202310/14/104202t9z93fr4br40v3es.png)

对于 Kubuntu 的软件中心 “<ruby> 发现 <rt>  Discover </rt></ruby>” 应用，改进了一些 Flatpak 错误的处理方式，你将享受更佳的用户体验。

#### Linux 内核 6.5

Linux 内核 6.5 带来了硬件兼容性的改进，以及对英特尔 Arc 图形的全方位支持，你现在可以在最新的系统上尝试 Kubuntu。

[Linux 内核 6.5](https://news.itsfoss.com/linux-kernel-6-5-release/) 引入了一些包括 Wi-Fi 7 和 USB 4 在内的尖端技术支持。关于更多变化，你可以在我们的报道中详细了解：

>
> **[Linux 内核 6.5 发布，首次支持 Wi-Fi 7 和 USB4](/article-16140-1.html)**
>
>
>

#### 应用程序更新

![](/data/attachment/album/202310/14/104203t0qje2e2kevjj3q8.jpg)

Kubuntu 为你预装了最新版 [Firefox 118](https://news.itsfoss.com/firefox-118-release/)，你可以试用其内建的翻译功能（LCTT 译注：不支持中文）。

升级版的 [LibreOffice 7.6](https://news.itsfoss.com/libreoffice-7-6/) 也在本次更新中登场，与之前的版本相比，其表现出显著的进步，提供了新的主题、更好的用户体验以及更优的兼容性。

此外，我们还预装了漂亮的 [Thunderbird 115](https://news.itsfoss.com/thunderbird-115/)。

除此之外，你还会获取常规的 KDE 应用更新、问题修复，以及 KDE 框架的改进。

#### 其他改进

随着所有的 KDE 更新、软件包升级和桌面改进，相信你会在用户体验上感受到很多细微的变化。

一些其他的技术更新包括：

* Qt 5.15.10
* Kate 23.08.1

### ? 如何获取 Kubuntu 23.10

你可以在 [官方网站](https://kubuntu.org/getkubuntu/) 或 [Ubuntu 的仓库](http://cdimage.ubuntu.com/kubuntu/releases/23.10) 下载 Kubuntu 23.10 的 ISO 文件。

>
> **[Kubuntu 23.10](http://cdimage.ubuntu.com/kubuntu/releases/23.10/release/)**
>
>
>

（题图：[Ubuntu](https://ubuntu.com/blog/into-the-labyrinth)）

---

via: <https://news.itsfoss.com/kubuntu-23-10/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


Xubuntu 23.10 发布，提供细微但重要的改进

![](/data/attachment/album/202310/14/113232y7wgzcj565q57cjl.jpg)

>
> Xubuntu 23.10 版本包括了问题修复，更新了内核，同时一些应用也进行了升级，使得它成为一个稳定而不错的升级选择。
>
>
>

[Xubuntu 23.04](https://news.itsfoss.com/xubuntu-23-04/) 的生命周期即将结束，新的升级版本正好到来。

Xubuntu 23.10 这个发布版本对其前身进行了进一步的改良，下面我们来看看它提供了哪些新鲜内容。

>
> ? 请注意，Xubuntu 23.10 将持续得到**九个月的支持**，一直到 2024 年 7 月。
>
>
>

### ? Xubuntu 23.10：有什么新内容？

![](/data/attachment/album/202310/14/113256ksis5yuijn594k0z.png)

这个版本的 Xubuntu 基于 **Ubuntu 23.10 “Mantic Minotaur”** 版本，带来了许多崭新的改进。部分重要的亮点包括：

* 对 Xfce 的优化
* 应用程序的更新
* Linux 内核 6.5

#### 对 Xfce 的优化

![](/data/attachment/album/202310/14/113257wmo2xp7pavi5q8os.png)

Xubuntu 23.10 搭载了与之前相同的 [Xfce 4.18](https://news.itsfoss.com/xfce-4-18-release/) 桌面环境。但在此基础上，它针对一些如 **garcon**、**libxfce4ui**、**tumbler** 和 **xfconf** 之类的 Xfce 库进行了**多项问题修复**。

此外，对于音频设备处理和媒体播放器，**Xfce PulseAudio 插件** 也进行了大量的修复。

在上一版本中，用户曾遇到的关于 **Xfce 电源管理器** 和 **Xfce 屏幕保护程序** 的一些问题，也在这个版本中得到了修复。

最后， **Xfce 截屏** 新增了对 **AVIF 和 JPEG XL 文件格式的支持**。

>
> **[Xfce 4.18 版本发布：令人印象深刻](/article-15355-1.html)**
>
>
>

#### 应用程序的更新

在 Xubuntu 23.10 版本中，有了**一整套更新的应用程序**，其中大部分来源于 XFCE、GNOME 和 MATE 的核心应用的更新。

其中一些显著的更新包括：

* Catfish 4.16.4
* Mousepad 0.6.1
* Thunar 文件管理器 4.18.7
* MATE 日历 1.26.0
* GNOME 软件 45
* Rhythmbox 3.4.7
* GIMP 2.10.34

#### Linux 内核 6.5

![](/data/attachment/album/202310/14/113257xhp69wts51y140mt.png)

Xubuntu 23.10 由最新发布的 [Linux 内核 6.5](https://news.itsfoss.com/linux-kernel-6-5-release/) 进行驱动，这样便可以支持最新的硬件，比如 **USB4、Wi-Fi 7** ，并且提供了 **良好的 Rust 环境支持**、**AMD FreeSync 视频** 等。

#### ? 其他的改进

除了以上提到的内容，还有一些值得一提的变化:

* 引入了 [Greybird 3.23.3](https://github.com/shimmerproject/Greybird/releases/tag/v3.23.3)，以便得到更好的 GTK 3/4 支持。
* 在 PipeWire 环境下加强了对蓝牙耳机的支持。
* Firefox、Thunderbird 以及其他新的应用程序中现在使用的是彩色表情符。
* 刷新了 [elementary-xfce 0.18](https://github.com/shimmerproject/elementary-xfce/releases/tag/v0.18) 主题，带给你全新的桌面图标体验。
* 引入了 Ristretto 0.13.1，给 Xubuntu 的默认图像查看器添加了打印支持功能。

你可以查阅 [官方发布说明](https://wiki.xubuntu.org/releases/23.10/release-notes) 来更深入地了解 Xubuntu 23.10 发行版特性。

### ? 如何下载 Xubuntu 23.10

为了获取 Xubuntu 的最新发布版，你可以访问 [官方网站](https://xubuntu.org/download/) 或者 Ubuntu 的 [镜像仓库](https://cdimage.ubuntu.com/xubuntu/releases/23.10/)。

>
> **[Xubuntu 23.10](https://cdimage.ubuntu.com/xubuntu/releases/23.10/release/)**
>
>
>

对于现有的用户们，你们可以参阅 [官方升级指南](https://docs.xubuntu.org/latest/user/C/migrating-upgrading.html) 进行版本升级。

*（题图：[Ubuntu](https://ubuntu.com/blog/into-the-labyrinth)）*

---

via: <https://news.itsfoss.com/xubuntu-23-10/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1154 谷歌正在测试在其主页充满新闻链接

Summary:
? 谷歌正在测试在其主页充满新闻链接
? 密码学专家警告 NSA 在抗量子加密算法中埋入缺陷
? 特斯拉发布 API 正式支持第三方应用程序
»
»

![](/data/attachment/album/202310/14/155105crrrspllr2lhr0zs.jpg)

![](/data/attachment/album/202310/14/155116in6ini717h71nn27.jpg)

### 谷歌正在测试在其主页充满新闻链接

谷歌正在考虑对其主页进行重大改动。上一次我们看到的实验是在页面上填充各种信息卡片，显示天气和股票等信息，但这次新的实验更加关注新闻。与只有谷歌的标志、搜索框和几个按钮的“传统”谷歌主页不同，最新的实验主页上看起来更像谷歌移动应用上的 “谷歌发现” 新闻推送，包括一排排谷歌通过算法检测到你会感兴趣的新闻文章。在新闻推送的右侧，是一堆卡片，内容包括体育比赛比分、股票和天气等。谷歌称这是目前正在印度进行的一项实验。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/10/google-com-tests-a-news-filled-homepage-just-like-bing-and-yahoo/)**
>
>
>

>
> 老王点评：下一步想必就是在这些文章块中插入各种旗帜广告和推广链接了。
>
>
>

![](/data/attachment/album/202310/14/155127p36dw65f22f2d0y3.jpg)

### 密码学专家警告 NSA 在抗量子加密算法中埋入缺陷

美国伊利诺伊大学芝加哥分校的著名密码学家 <ruby> 丹尼尔·伯恩斯坦 <rt>  Daniel Bernstein </rt></ruby> 说，美国国家标准与技术研究院（NIST）正在故意掩盖美国国家安全局（NSA）参与开发 “后量子密码学”（PQC）新加密标准的程度。他还认为，NIST 在描述新标准安全性的计算中出现了错误——可能是偶然的，也可能是故意的。NIST 对此予以否认。伯恩斯坦称，NIST 对即将推出的 PQC 标准之一 Kyber512 的计算 “明显错误”，使其看起来比实际更安全。NIST 的 <ruby> 达斯汀·穆迪 <rt>  Dustin Moody </rt></ruby> 说：“我们不同意他的分析。这是一个没有科学确定性的问题，聪明人会有不同的看法。”

>
> **[消息来源：《新科学家》](https://www.newscientist.com/article/2396510-mathematician-warns-us-spies-may-be-weakening-next-gen-encryption/)**
>
>
>

>
> 老王点评：这就是为什么我们要有自己的加密算法和标准的原因。
>
>
>

![](/data/attachment/album/202310/14/155139pt4fte2gg423eww2.jpg)

### 特斯拉发布 API 正式支持第三方应用程序

特斯拉正式发布了支持第三方应用程序的 API 文档，在此之前，特斯拉的非官方 API 一直处于灰色地带。目前，它主要面向车队管理，但开发者们希望这是创建健康应用生态系统的第一步。简而言之，它将正式支持第三方车队管理应用程序、智能手表集成应用程序等。特斯拉要求从明年开始，所有第三方应用程序都必须通过新的 API，将结束对 REST API 车辆指令端点的支持。

>
> **[消息来源：Electrek](https://electrek.co/2023/10/12/tesla-releases-official-api-documentation-support-third-party-apps/)**
>
>
>

>
> 老王点评：电动汽车越来越智能化了，不过，这也带来了更多风险。支持 API 容易，如何平衡安全和生态才是难点。
>
>
>


在 Arch Linux 上安装和使用 Yay

![](/data/attachment/album/202310/14/224808sb66bbdrd4zrqk6q.jpg)

>
> Yay 是最流行的 AUR 助手之一，用于处理 Arch 用户资源库中的软件包。学习在 Arch Linux 中安装它。
>
>
>

你可以在 <ruby> <a href="https://itsfoss.com/aur-arch-linux/">  Arch 用户仓库 </a> <rt>  Arch User Repository </rt></ruby>（AUR）中找到社区成员打包的大量软件。

由于它来自第三方，纯粹主义者建议从 AUR 手动下载并构建每个所需的包。

但这是一项乏味的任务，这就是为什么会有 AUR 助手来避免麻烦。

Yay 是最受欢迎的 AUR 帮助程序之一，在本教程中，我将分享如何在 Arch Linux 上安装 Yay。我还将分享一些有关使用 Yay 管理 AUR 包的技巧。

>
> ? Yay 可在 Manjaro 的仓库中找到。因此，Manjaro 用户只需使用 `pacman -S yay` 即可安装
>
>
>

### 在 Arch Linux 上安装 Yay

在继续安装 Yay 之前，你需要一些构建它所需的软件包。

让我把它分成几个步骤。

#### 步骤 1：安装必备包

首先刷新包缓存并更新系统是一个好主意：

```
sudo pacman -Syu

```

安装所需的 `base-devel`（包含 `makepkg` 等工具）和 `git`（克隆 yay 的 Git 仓库所需的）。

```
sudo pacman -S --needed base-devel git

```

使用 `--needed` 标志，它不会重新安装已经安装的软件包。

它看起来是这样的：

![](/data/attachment/album/202310/14/224809dpa4pvt60k09bt4k.png)

现在你已经有了所需的软件包，是时候在你的系统上安装 [Yay](https://github.com/Jguer/yay)。

#### 步骤 2：克隆 Yay Git 仓库并切换到它

[使用 git 命令](https://itsfoss.com/basic-git-commands-cheat-sheet/) “克隆” Yay 仓库。你可以在系统中的任何位置执行此操作，无论是主目录还是其他目录。

```
git clone https://aur.archlinux.org/yay.git

```

完成后，切换到克隆的目录：

```
cd yay

```

![](/data/attachment/album/202310/14/224809owwm5kc2cqicz6g6.png)

终于可以安装 Yay 了。

#### 步骤 3：安装 Yay

事实上，你是在构建它。你将在此处看到 `PKGBUILD` 文件。使用以下命令从此处构建包：

```
makepkg -si

```

按照屏幕上的说明进行操作。当系统要求你确认时，按 `Y`。

![](/data/attachment/album/202310/14/224810yh0yhlklkym5kzkw.png)

该过程完成后，通过检查其版本来验证 Yay 是否已成功安装。

```
yay --version

```

现在你已经成功安装了它，你可以删除克隆的 Yay Git 仓库。不再需要它了。

### 使用 Yay 进行包管理

Yay 遵循与 [pacman](https://itsfoss.com/pacman-command/) 类似（但不相同）的命令结构。所以你用 Yay 管理 AUR 包应该不难。

搜索软件包：

```
yay search_term

```

安装软件包：

```
yay -S package_name

```

删除软件包：

```
yay -R package_name

```

要删除包及其依赖项：

```
yay -Rns package_name

```

仅升级 AUR 包：

```
yay -Sua

```

Yay 还能够升级非 AUR 软件包。上面的 `a` 标志将其限制为 AUR。

### 将 Yay 升级到新版本

现在，你可能想知道如何将 Yay 升级到可用的新版本。

答案是你不需要做任何特别的事情。当你运行以下命令时，Yay 可以自行更新：

```
yay -Sua

```

### 从 Arch 系统中删除 Yay

如果你不喜欢 Yay 或不再需要它，你可以使用 `pacman` 命令像删除任何其他软件包一样删除它：

```
sudo pacman -Rs yay

```

### 总结

这是对 Yay AUR 助手的快速介绍。你可以访问其 GitHub 仓库以了解有关其工作的更多详细信息。

Arch 用户仓库（AUR）是[为什么有些人喜欢使用 Arch Linux](https://itsfoss.com/why-arch-linux/) 的原因之一。

虽然纯粹的 Arch 用户一般都会嘲笑 AUR，特别是 [AUR 助手](https://itsfoss.com/best-aur-helpers/)，但它们仍然因其提供的易用性而受到欢迎。

我希望你发现这个快速教程有助于在 [Arch Linux](https://archlinux.org/) 上获得 Yay。如果你仍有疑问或发现任何技术错误，请告诉我。

*（题图：MJ/f01331ab-ee70-45c4-8fd1-163e63497a6a）*

---

via: <https://itsfoss.com/install-yay-arch-linux/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


树莓派操作系统升级：基于 Debian 12、淘汰 X11

果然，给RPI 3B+刷了之后还是X11，不是Wayland+Wayfire

来自广东广州的 Chrome Mobile 118.0|Android 10 用户

![](/data/attachment/album/202310/14/233127bc5jlvhkphkgngjh.jpg)

>
> 为了匹配最新的树莓派 5 硬件，树莓派操作系统已做好准备，该系统中融入了 Debian 12 以及其他重大更新。
>
>
>

这个新版本的 <ruby> 树莓派操作系统 <rt>  Raspberry Pi OS </rt></ruby> 能够完善支持新推出的 [树莓派 5](https://news.itsfoss.com/raspberry-pi-5/)。

为此，开发者们投入了大量的心血和精力。新系统带来了诸多改进，同时还标志着向更现代化的窗口系统的迁移。

下面，我们来看看他们的具体成果。

### 树莓派操作系统: 新的变化有哪些？

![](/data/attachment/album/202310/14/233130hw8g907911lme80u.png)

开发者基于最新的 [Debian 12 “Bookworm”](https://news.itsfoss.com/debian-12-release/) 版本，对树莓派桌面进行了 **重大的架构更新**。

一些显著的新特性包括：

* 全面采用 Wayland
* 网络性能显著提升
* 默认使用 PipeWire
* 为树莓派优化的 Firefox

显然，你将会享受到 Debian “Bookworm” 的核心优点，同时还能体验到上述提到的一些新变化。

#### 全面采用 Wayland

没错，你没有看错。

树莓派桌面已经默认启用 [Wayland](https://wayland.freedesktop.org/) 窗口系统，正式摒弃了因多种限制不再使用的 [X11](https://en.wikipedia.org/wiki/X_Window_System) 窗口系统。Wayland 的主要优点是其**在现代硬件上有更出色的性能表现**。

这一切的实现离不开 [Wayfire](https://github.com/WayfireWM/wayfire) 合成器的支持，这使得开发者能够在更新中**保持用户熟知的体验**。

以下是开发者在发布公告中的引述：

>
> 如果你在树莓派 4 或 5 上启动树莓派操作系统，现在你会看到的是一个 Wayfire 桌面。它看起来和你之前在 Bullseye 上使用的桌面几乎一模一样，但在一致的外观背后，我们为了使两个桌面环境看起来一样已进行了大量的工作！
>
>
>

**我们对此并不感到惊讶。**

近期，我们注意到有很多桌面正在从 X11 和 [Openbox](https://en.wikipedia.org/wiki/Openbox) 这样的旧窗口系统转向 Wayland。

比如，GNOME 最近的更新开启了向 **[全面使用 Wayland 的未来](https://news.itsfoss.com/gnome-wayland-xorg/)** 的转变。即使是 Fedora Linux 40 也准备弃用 X11 会话，转向使用 [Plasma 6](https://fedoraproject.org/wiki/Changes/KDE_Plasma_6) 的 XWayland 方式。

看到树莓派操作系统已经率先进行了这样的变化，实在是让人感到十分有趣 ?

>
> ? 不过别担心，**对于仍希望使用 X11/Openbox 显示系统的用户**，他们可以在 `raspi-config` 中的 “<ruby> 高级设置 <rt>  Advanced Settings </rt></ruby>” 菜单中重新启用它。
>
>
>

#### 网络性能显著提升

![](/data/attachment/album/202310/14/233131dh0su8tmddnqmqzj.png)

开发者在之前实现的 [NetworkManager](https://networkmanager.dev/) 网络控制器的基础上进行了优化，他们为 **任务栏增加了网络插件**。

虽然新版本的插件和旧版本看上去差不多，但新增了一个 “<ruby> 高级选项 <rt>  Advanced Options </rt></ruby>” 选项，用户可以通过它访问 NetworkManager 提供的更多功能。

#### 默认使用 PipeWire

现在，树莓派 Desktop 使用 [PipeWire](https://pipewire.org/) 来处理所有与音频/视频相关的任务。它取代了 [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/)，使**音频/视频处理迈向更现代化和灵活的方式**。

在用户端，你可以得到**更优化的蓝牙音频设备管理**、**更低的延迟时间**，**和 Wayland 的更好互操作性**等等。

用户也可以通过和切换窗口系统类似的步骤**选择回退使用 PulseAudio**。

#### 为树莓派优化的 Firefox

![](/data/attachment/album/202310/14/233131zrftjrghttxygfy5.png)

这次，我们看到了一个**由官方支持且专门为树莓派优化的 [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) 版本**，它在这次树莓派操作系统的发布版中首次被引入。

现在，用户可以使用 **V4L2 编码支持** 来启用他们的树莓派上的硬件 h.264 解码器，这将会有助于**实现更好的 HD 视频播放效果**。

此外，他们也启用了 [Widevine DRM](https://www.widevine.com/solutions/widevine-drm)，以在主流的视频流媒体平台上提供**无障碍的流媒体观看体验**。

在这次发布的版本中还有其他一些细微的变化。想了解更多，请参考 [官方博客](https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/)。

### ? 下载树莓派操作系统

由于操作系统细节的大量变化，开发者建议你**从全新安装开始** （重新烧录你的 SD 卡）。

当然，你也可以选择自行升级，但需要自担风险。

你可以访问 [官方网站](https://www.raspberrypi.com/software/operating-systems/) 进行下载。

>
> **[树莓派操作系统](https://www.raspberrypi.com/software/operating-systems/)**
>
>
>

? 你对新的树莓派操作系统升级感到兴奋吗？欢迎在评论区告诉我们。

*（题图：MJ/2fe701cd-5ced-41e2-b00e-1454c6f3fa4a）*

---

via: <https://news.itsfoss.com/raspberry-pi-os-bookworm/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1155 中国“九章三号”量子计算机可比最快超算快 200 亿年

Summary:
? 中国“九章三号”量子计算机可比最快超算快 200 亿年
? Firefox 即将默认启用原生 Wayland 后端
? 微软写字板可被用来劫持易受攻击的系统
»
»

当初Wayland宣传的是：只要中间层例如QT和Gtk迁移到了Wayland，那么各种基于中间层的应用基本不用做什么事就能在Wayland上运行了。<br />
现在的情况是：不针对Wayland进行重造是不行的，各家应用你们自己想办法迁移到Wayland吧。

![](/data/attachment/album/202310/15/180458l633f3q5y7v5f55v.jpg)

![](/data/attachment/album/202310/15/175445z4yvd6ltzb40itsq.jpg)

### 中国“九章三号”量子计算机可比最快超算快 200 亿年

据报道，中国最新研制的“九章三号”量子计算机在百万分之一秒内解决了一个超复杂的数学问题，而世界上最快的超级计算机 Frontier 完成同样任务需要 200 多亿年。九章系列量子计算机使用光子作为计算的物理介质，每个光子携带一个量子比特。《物理评论快报》周二发表的一篇论文称，在九章系列量子计算机中，前两代的光子数量分别为 76 个、113 个，在最新的“九章三号”中增加到了 255 个。“九章三号” 原型机还打破了该系列前代产品创下的记录，计算速度提高了一百万倍。

>
> **[消息来源：SCMP](https://www.scmp.com/news/china/science/article/3237538/chinese-scientists-claim-record-smashing-quantum-computing-breakthrough)**
>
>
>

>
> 老王点评：不知道什么时候可以解决具体问题，比如天气预测？
>
>
>

![](/data/attachment/album/202310/15/175457b573ozcdhgene1um.jpg)

### Firefox 即将默认启用原生 Wayland 后端

虽然 Fedora 和 Arch 等 Linux 发行版在默认情况下为 Firefox 启用了原生 Wayland 后端，但上游的 Firefox 仍然没有在其官方版本中启用 Wayland 支持。目前官方版本的 Firefox 是通过 XWayland 来支持 Wayland 环境，但这种情况有望很快改变，Firefox 上游版本即将在不久支持原生 Wayland。Mozilla 正在将他们的测试套件迁移到 Ubuntu 22.04 LTS 上运行，其中包括 Wayland 测试。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Firefox-Wayland-Possibly-Soon)**
>
>
>

>
> 老王点评：是迁移到 Wayland 困难，还是 Mozilla 投入的人力不够呢？
>
>
>

![](/data/attachment/album/202310/15/175509op1n8bw68cwjfe15.jpg)

### 微软写字板可被用来劫持易受攻击的系统

微软写字板中存在一个信息泄露漏洞，可被利用来窃取 NTLM 哈希值。微软表示，有两种方法可以利用这一漏洞。一种方法是以受攻击用户的身份登录，然后运行一个特制的应用程序，利用该漏洞控制受影响的系统。另一种方法是诱骗受害者打开恶意文件。攻击者必须说服用户点击一个链接，通常是通过电子邮件或即时信息中的诱导链接，然后说服用户打开特制文件。

>
> **[消息来源：The Register](https://www.theregister.com/2023/10/10/october_2023_patch_tuesday)**
>
>
>

>
> 老王点评：都 2023 年了，写字板居然还是一个安全漏洞。
>
>
>


Btrfs 详解：快照

Summary: 本文研究了 Btrfs 快照，它们本质上是 Btrfs 子卷。

类似以git<br />
针对文件系统的git

本文研究了 Btrfs 快照，它们本质上是 Btrfs 子卷。

![](/data/attachment/album/202310/16/092244yog42vb0l3v5h33h.jpg)

这篇文章会探讨什么是 Btrfs 快照，它们如何工作的，你在日常生活中进行快照的好处。这篇文章是《Btrfs 详解》系列文章中的一篇。从 Fedora Linux 33 开始，Btrfs 就是 Fedora Workstation 和 Fedora Silverblue 的默认文件系统。

如果你错过了，这里是本系列的上一篇文章：[Btrfs 详解：子卷](/article-16250-1.html)

### 简介

想象一下，你长时间处理一个文件，反复添加和撤销修改。然后，在某个时刻你意识到：两小时前你撤销的部分修改，现在会非常有用。而昨天在你销毁那个设计之前，你也已经修改了这个特殊的部分。当然，由于你会定期保存文件，所以旧的改动会丢失。很多人可能都遇到过这样的情况。如果能恢复旧版本的文件，而无需定期手动复制，岂不美哉？

这是一个 Btrfs 快照可以帮助你的特别场景。当你使用正确的话，快照同时也为你的电脑提供了很好的备份方案。

下面你会找到一些关于快照的例子。如果你想跟着操作，你必须拥有访问某些 Btrfs 文件系统的权限和 root 权限。你可以通过下面命令来验证一个目录的文件系统。

```
$ findmnt -no FSTYPE /home
btrfs

```

这个命令会输出你 `/home/` 目录的文件系统名称。如果它是 `btrfs`，那就可以了。让我们创建一个新的目录去做实验：

```
$ mkdir ~/btrfs-snapshot-test
$ cd ~/btrfs-snapshot-test

```

在下面的文本中，你会看到很多像上面显示的那样的命令输出框。请在阅读/比较命令输出时请记住，**框中的内容在行末会被换行**。这使得识别跨多行的长行变得困难，降低了可读性。如果有疑问，试着调整浏览器窗口的大小，看看文本的变化！

### Btrfs 快照

让我们从一个基本的问题开始：什么是 Btrfs 快照？如果你在文档    [1]  和维基    [2]  中查找，你不会立刻找到这个问题的答案。事实上，从“功能”一节里是找不到的。如果你搜索一下，你会发现快照和 Btrfs 子卷一起被大量地提及    [3] 。所以现在做什么呢？

还记得快照在系列前面的文章里两次被提到吗？是这样说的：

>
> CoW 的优势在哪里？简单的说：文件被修改和编辑的历史被保存了下来。Btrfs 保存文件旧版本的引用（inode）可以轻易地被访问。这个引用就是快照：文件系统在某个时间点的状态镜像。这将是这系列文章里的单独的一篇，所以暂时留到后面介绍。
>
>
> —— [Btrfs 详解：基础概念](/article-16189-1.html)
>
>
>

以及：

>
> 另外一个分离 `/` 和 `/home` 的优势是我们可以分别进行 *快照* 。子卷是快照的边界，对一个子卷的快照永远不会包含该子卷下面的其他子卷的内容。快照的更多细节会在后续的文章中介绍。
>
>
> —— [Btrfs 详解：子卷](/article-16250-1.html)
>
>
>

看起来快照是和 Btrfs 子卷相关的。你可能之前在其他地方听到过快照，比如说 LVM（逻辑卷管理器）。虽然技术角度上它们都是为了同一个目的，但它们在实现方面有所不同。

每个 Btrfs 快照是一个子卷。但是，不是每个子卷都是一份快照。区别在于子卷里面包含的内容。一个快照是子卷加上一些内容：它包含对现在和过去版本的文件的引用（inode）。让我们看看快照是从哪来的！

### 创建 Btrfs 快照

想使用快照功能，你需要一个 Btrfs 子卷来进行快照。让我们在测试目录（`~/btrfs-snapshot-test`）里创建一个：

```
$ cd ~/btrfs-snapshot-test
$ sudo btrfs subvolume create demo
Create subvolume './demo'
$ sudo chown -R $(id -u):$(id -g) demo/
$ cd demo

```

因为 Btrfs 子卷默认是被 root 所有的，你必须用 `chown` 去修改子卷里的文件的所有权到普通用户上。现在我们在里面新加一些文件：

```
$ touch foo bar baz
$ echo "Lorem ipsum dolor sit amet, " > foo

```

你的目录现在看起来像这样：

```
$ ls -l
total 4
-rw-r--r--. 1 hartan hartan  0 Dec 20 08:11 bar
-rw-r--r--. 1 hartan hartan  0 Dec 20 08:11 baz
-rw-r--r--. 1 hartan hartan 29 Dec 20 08:11 foo

```

让我们从这里创建第一次快照：

```
$ cd ..
$ sudo btrfs subvolume snapshot demo demo-1
Create a snapshot of 'demo' in './demo-1'

```

这就好了。让我们看看发生了什么：

```
$ ls -l
total 0
drwxr-xr-x. 1 hartan hartan 18 Dec 20 08:11 demo
drwxr-xr-x. 1 hartan hartan 18 Dec 20 08:11 demo-1
$ tree
.
├── demo
│   ├── bar
│   ├── baz
│   └── foo
└── demo-1
    ├── bar
    ├── baz
    └── foo

2 directories, 6 files

```

这看起来是一份拷贝！为了验证，我们从快照里读取 `foo` 的内容：

```
$ cat demo/foo
Lorem ipsum dolor sit amet,
$ cat demo-1/foo
Lorem ipsum dolor sit amet,

```

当我们修改原始文件时，真正的效果变得明显：

```
$ echo "consectetur adipiscing elit, " >> demo/foo
$ cat demo/foo
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
$ cat demo-1/foo
Lorem ipsum dolor sit amet,

```

这表明快照仍然持有“旧”版本的数据：`foo` 的内容没有改变。到目前为止，你可以通过一个简单的文件复制来实现完全相同的目标。现在你也可以继续处理旧文件了。

```
$ echo "sed do eiusmod tempor incididunt" >> demo-1/foo
$ cat demo-1/foo
Lorem ipsum dolor sit amet,
sed do eiusmod tempor incididunt

```

但是在底层，我们的快照实际上是一个新的 Btrfs 子卷。你可以通过下面的命令来验证这一点：

```
$ sudo btrfs subvolume list -o .
ID 259 gen 265 top level 256 path home/hartan/btrfs-snapshot-test/demo
ID 260 gen 264 top level 256 path home/hartan/btrfs-snapshot-test/demo-1

```

### Btrfs 子卷 vs. 文件复制

这一切有什么意义呢？到目前为止快照看起来是一个更加复杂的复制文件的方式。事实上，快照不仅仅是表面上看起来那么简单。让我们来创建一个更大的文件：

```
$ dd if=/dev/urandom of=demo/bigfile bs=1M count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 1.3454 s, 399 MB/s

```

现在有一个512 MB 大小的新文件 `demo/bigfile` 。让我们创建另一个快照，这样在你修改数据的时候就不会丢失：

```
$ sudo btrfs subvolume snapshot demo demo-2
Create a snapshot of 'demo' in './demo-2'

```

现在我们通过追加少量字符串到文件来模拟变化：

```
$ echo "small changes" >> demo/bigfile

```

这是生效后的文件结构：

```
$ tree
.
├── demo
│   ├── bar
│   ├── baz
│   ├── bigfile
│   └── foo
├── demo-1
│   ├── bar
│   ├── baz
│   └── foo
└── demo-2
    ├── bar
    ├── baz
    ├── bigfile
    └── foo

3 directories, 11 files

```

但是真正的神奇的发生在其他地方。你已经复制了 `demo/bigfile` ，你现在拥有了两个大约 512 MiB 的文件。但是，因为它们是不同的拷贝，它们应该会占据共 1 GiB 的空间。记住两个文件的差异不超过 10 字节 —— 和原文件大小相比这几乎没什么差别。

Btrfs 快照工作原理与文件复制不同：而是它们保持对当前和过去的 inode 的引用。当你在文件追加更新时，在底层 Btrfs 分配更多的空间去存储更新，同时在原来的 inode 增加对新数据的引用。之前的内容保持不变。为了便于理解，你可以认为这是仅仅“存储”原文件和修改版本的差异。

让我们看看这个效果：

```
$ sudo compsize .
Processed 11 files, 5 regular extents (9 refs), 3 inline.
Type       Perc     Disk Usage   Uncompressed Referenced
TOTAL      100%      512M         512M         1.0G
none       100%      512M         512M         1.0G

```

这个有趣的数字出现在 `TOTAL` 一行：

* `Referenced` 是当前目录下所有文件大小的总和
* `Disk Usage` 是用于在磁盘上存储文件分配空间的大小

你有一共 1 GiB 的文件，但存储它们仅仅占据了 512 MiB。

### Btrfs 快照和备份

目前为止，在这篇文章中，你已经看到如何创建 Btrfs 快照和它们的特别之处。有人可能会想：如果我在我的 PC 本地进行一系列的快照，我就有一个可靠的备份策略。 **其实不是这样的** 。如果 Btrfs 子卷共享的底层数据被偶然破坏了（被 Btrfs 之外的东西影响，比如宇宙射线），所有指向这些数据的子卷都会存在相同的错误。

为了让快照成为真正的备份，你应该将它们存储到一个不同的 Btrfs 系统上，例如在一个外部驱动器上。为了本文的目的，让我们在一个文件里创建一个新的 Btrfs 系统，并挂载它来模拟一个外部驱动。如果你有一个格式为 Btrfs 的外部驱动器，请随意替换以下命令中提到的所有路径来试试！让我们创建一个新的 Btrfs 文件系统：

**注意**：下面的命令会在你的文件系统上创建一个 8 GB 大小的新文件。如果你想跟着下面的步骤，请确保你的磁盘空间至少有 8 GB 剩余。请不要分配小于 8 GB 到这个文件，否则 Btrfs 可能在挂载时会遇到问题。

```
$ truncate -s 8G btrfs_filesystem.img
$ sudo mkfs.btrfs -L "backup-drive" btrfs_filesystem.img
btrfs-progs v5.18
See http://btrfs.wiki.kernel.org for more information.

[ ... ]

Devices:
    ID        SIZE  PATH
    1     8.00GiB  btrfs_filesystem.img

```

这些命令创建了名为 `btrfs_filesystem.img` 的 8 GB 新文件，同时在上面格式化了一个 Btrfs 文件系统。现在你可以像外部驱动器一样挂载它：

```
$ mkdir backup-drive
$ sudo mount btrfs_filesystem.img backup-drive
$ sudo chown -R $(id -u):$(id -g) backup-drive
$ ls -lh
total 4.7M
drwxr-xr-x. 1 hartan hartan    0 Dec 20 08:35 backup-drive
-rw-r--r--. 1 hartan hartan 8.0G Dec 20 08:37 btrfs_filesystem.img
drwxr-xr-x. 1 hartan hartan   32 Dec 20 08:14 demo
drwxr-xr-x. 1 hartan hartan   18 Dec 20 08:11 demo-1
drwxr-xr-x. 1 hartan hartan   32 Dec 20 08:14 demo-2

```

妙，现在挂载在 `backup-drive` 下面有一个独立的 Btrfs 文件系统！让我们尝试进行快照并且把快照放进去：

```
$ sudo btrfs subvolume snapshot demo backup-drive/demo-3
Create a snapshot of 'demo' in 'backup-drive/demo-3'
ERROR: cannot snapshot 'demo': Invalid cross-device link

```

发生了什么？噢，你尝试对 `demo` 进行一次快照并把它存在不同的 Btrfs 文件系统里（从 Btrfs 视角来看是一个不同的设备）。还记得一个 Btrfs 子卷仅持有对文件和内容的引用（inode）？这正是问题所在：文件和内容存在于我们的 `home` 文件系统，但不在新创建的 `backup-drive` 。你得找到一种方式去传输子卷和其内容到新的文件系统里。

#### 在不同的 Btrfs 文件系统存储快照

针对这个目的 Btrfs 工具有两个特殊的命令。让我们首先来看看它们是如何工作的：

```
$ sudo btrfs send demo | sudo btrfs receive backup-drive/
ERROR: subvolume /home/hartan/btrfs-snapshot-test/demo is not read-only
ERROR: empty stream is not considered valid

```

另一个错误！这时它告诉你我们想要传输的子卷不是只读的。这是对的：你可以写入新内容到所有目前为止创建的快照/子卷。你可以像这样创建一个只读的快照：

```
$ sudo btrfs subvolume snapshot -r demo demo-3-ro
Create a readonly snapshot of 'demo' in './demo-3-ro'

```

不像之前那样，这里 `-r` 选项被加到了 `snapshot` 子命令里。这创建一个只读的快照，这很容易去验证：

```
$ touch demo-3-ro/another-file
touch: cannot touch 'demo-3-ro/another-file': Read-only file system

```

现在你可以重新尝试传输子卷：

```
$ sudo btrfs send demo-3-ro | sudo btrfs receive backup-drive/
At subvol demo-3-ro
At subvol demo-3-ro
$ tree

├── backup-drive
│   └── demo-3-ro
│       ├── bar
│       ├── baz
│       ├── bigfile
│       └── foo
├── btrfs_filesystem.img
├── demo
[ ... ]
└── demo-3-ro
    ├── bar
    ├── baz
    ├── bigfile
    └── foo

6 directories, 20 files

```

成功了！你成功传输原来子卷 `demo` 的一个只读快照到一个外部的 Btrfs 文件系统。

#### 在非 Btrfs 文件系统存储快照

上面你已经看到你如何能存储 Btrfs 子卷/快照到其他的 Btrfs 文件系统。但如果你没有其他的 Btrfs 文件系统并且不能新创建一个，比如说外部驱动器需要一个和 Windows 或 MacOS 兼容的文件系统，你可以做什么呢？在这种情况下你可以存储子卷在文件里：

```
$ sudo btrfs send -f demo-3-ro-subvolume.btrfs demo-3-ro
At subvol demo-3-ro
$ ls -lh demo-3-ro-subvolume.btrfs
-rw-------. 1 root root 513M Dec 21 10:39 demo-3-ro-subvolume.btrfs

```

文件 `demo-3-ro-subvolume.btrfs` 现在包含了随后重建 `demo-3-ro` 子卷需要的所有东西。

#### 增量地发送快照

如果你对不同的子卷重复执行这个操作，你会发现在某些时间点不同的子卷不再共享它们的文件内容。这是因为像上面一样发送一个子卷，去重建这个单独的子卷的所有数据将被传送到目标位置。但是，你可以引导 Btrfs 只向目标位置发送不同子卷的差异！所谓的增量发送将保证共享的引用在子卷中仍然共享。为了展示这一点，新增一些变动到我们原来的子卷：

```
$ echo "a few more changes" >> demo/bigfile

```

然后创建另一个只读子卷：

```
$ sudo btrfs subvolume snapshot -r demo demo-4-ro
Create a readonly snapshot of 'demo' in './demo-4-ro'

```

然后现在发送它：

```
$ sudo btrfs send -p demo-3-ro demo-4-ro | sudo btrfs receive backup-drive
At subvol demo-4-ro
At snapshot demo-4-ro

```

在上面的命令，`-p` 选项指定了一个父子卷用来计算差异。重要的是记住原 Btrfs 文件系统和目标 Btrfs 文件系统都必须包含相同的、未被修改过的父子卷！确保新的子卷真的在那里：

```
$ ls backup-drive/
demo-3-ro  demo-4-ro
$ ls -lR backup-drive/demo-4-ro/
backup-drive/demo-4-ro/:
total 524296
-rw-r--r--. 1 hartan hartan         0 Dec 20 08:11 bar
-rw-r--r--. 1 hartan hartan         0 Dec 20 08:11 baz
-rw-r--r--. 1 hartan hartan 536870945 Dec 21 10:49 bigfile
-rw-r--r--. 1 hartan hartan        59 Dec 20 08:13 foo

```

但你怎样知道增量发送只传输了子卷间的差异呢？让我们传输数据流到一个文件里然后看看它有多大：

```
$ sudo btrfs send -f demo-4-ro-diff.btrfs -p demo-3-ro demo-4-ro
At subvol demo-4-ro
$ ls -l demo-4-ro-diff.btrfs
-rw-------. 1 root root 315 Dec 21 10:55 demo-4-ro-diff.btrfs

```

根据 `ls` ，这个文件仅仅只有 315 字节大小！这意味着增量传输只传输子卷间的差异，和额外的 Btrfs 相关的元数据。

#### 从快照中恢复子卷

在继续之前，让我们清理掉这时候不再需要的东西：

```
$ sudo rm -rf demo-4-ro-diff.btrfs demo-3-ro-subvolume.btrfs
$ sudo btrfs subvolume delete demo-1 demo-2 demo-3-ro demo-4-ro
$ ls -l
total 531516
drwxr-xr-x. 1 hartan hartan         36 Dec 21 10:50 backup-drive
-rw-r--r--. 1 hartan hartan 8589934592 Dec 21 10:51 btrfs_filesystem.img
drwxr-xr-x. 1 hartan hartan         32 Dec 20 08:14 demo

```

到目前为止你已经成功创建了可读/写和只读的 Btrfs 子卷快照，并把它们发送到外部。但是，为了把这作为备份策略，还要有一种方式去发送子卷回原来的文件系统和让它们再次变为可写。出于这个目的，我们移动 `demo` 子卷到其他地方并且尝试从最近的快照中重建它。第一步：重命名为 `broken` 子卷。一旦恢复成功它会被删除：

```
$ mv demo demo-broken

```

第二步: 传回最近的快照到这个文件系统：

```
$ sudo btrfs send backup-drive/demo-4-ro | sudo btrfs receive .
At subvol backup-drive/demo-4-ro
At subvol demo-4-ro
[hartan@fedora btrfs-snapshot-test]$ ls
backup-drive  btrfs_filesystem.img  demo-4-ro  demo-broken

```

第三步: 从快照创建一个可读写的子卷：

```
$ sudo btrfs subvolume snapshot demo-4-ro demo
Create a snapshot of 'demo-4-ro' in './demo'
$ ls
backup-drive  btrfs_filesystem.img  demo  demo-4-ro  demo-broken

```

上一步非常重要：你不能重命名 `demo-4-ro` 为 `demo` ，因为这仍然是一个只读子卷！最后你可以检查你所有你想要的东西是不是在那里：

```
$ tree demo
demo
├── bar
├── baz
├── bigfile
└── foo

0 directories, 4 files
$ tail -c -19 demo/bigfile
a few more changes

```

最后的命令告诉你 `bigfile` 的最后 19 个字符实际上是上次变更执行的结果。这个时候，你可能想从 `demo-broken` 复制最近的更新到新的 `demo` 子卷。因为你没有执行任何更新，你可以过时的子卷：

```
$ sudo btrfs subvolume delete demo-4-ro demo-broken
Delete subvolume (no-commit): '/home/hartan/btrfs-snapshot-test/demo-4-ro'
Delete subvolume (no-commit): '/home/hartan/btrfs-snapshot-test/demo-broken'

```

就是这样！你成功从一个之前存在不同 Btrfs 文件系统（外部介质）的快照中恢复 `demo` 子卷。

### 子卷作为快照的边界

在本系列的第二篇文章中我提到子卷作为快照的边界，但这到底是什么意思呢？简单来说，子卷的一份快照仅包含这个子卷的内容，而不是下面嵌套的子卷。让我们来看看这个：

```
$ sudo btrfs subvolume create demo/nested
Create subvolume 'demo/nested'
$ sudo chown -R $(id -u):$(id -g) demo/nested
$ touch demo/nested/another_file

```

让我们像以前一样进行一次快照：

```
$ sudo btrfs subvolume snapshot demo demo-nested
Create a snapshot of 'demo' in './demo-nested'

```

然后查看里面的内容：

```
$ tree demo-nested
demo-nested
├── bar
├── baz
├── bigfile
├── foo
└── nested

1 directory, 4 files

$ tree demo
demo
├── bar
├── baz
├── bigfile
├── foo
└── nested
    └── another_file

1 directory, 5 files

```

注意到 `another_file` 不见了，仅仅是目录 `nested` 还在。这是因为 `nested` 是一个子卷：`demo` 的快照包含嵌套子卷的目录（挂载点），但里面的内容是缺失的。目前没有方法递归地执行快照去包含嵌套子卷。但是，我们可以利用这个优势去从快照中排除一些目录！这通常对那些你容易再现的数据有用，或者它们很少变化。例子有虚拟机或者容器镜像，电影，游戏文件等等。

在总结之前，我们移除所有测试过程中创建的东西：

```
$ sudo btrfs subvolume delete demo/nested demo demo-nested
Delete subvolume (no-commit): '/home/hartan/btrfs-snapshot-test/demo/nested'
Delete subvolume (no-commit): '/home/hartan/btrfs-snapshot-test/demo'
Delete subvolume (no-commit): '/home/hartan/btrfs-snapshot-test/demo-nested'
$ sudo umount backup-drive
$ cd ..
$ rm -rf btrfs-snapshot-test/

```

### 基于 Btrfs 备份最后思考

如果你决定使用 Btrfs 来执行数据的定期备份，那么你可能需要使用一个工具来自动完成这项任务。Btrfs 维基有一个专门针对 Btrfs    [4]  的备份工具列表。在那里，你还将看到另一个手动执行 Btrfs 备份步骤的摘要。就我个人而言，我对 `btrbk`    [5]  有很多很好的体验，我正在使用它来执行我自己的备份。除了备份之外，`btrbk` 还可以在你的 PC 本地保存 Btrfs 快照列表。我使用它来防止意外的数据删除。

如果你想要了解更多有关使用 Btrfs 进行备份的内容，欢迎在下面评论，我会考虑写一篇专门讨论这个话题的后续文章。

### 总结

本文研究了 Btrfs 快照，它们本质上是 Btrfs 子卷。你了解了如何创建可读写和只读快照，以及这种机制如何有助于防止数据丢失。

本系列的后续文章将讨论:

* 压缩 - 透明地节省存储空间
* 配额组 - 限制文件系统大小
* RAID - 替代 mdadm 配置

如果你还想了解与 Btrfs 相关的其他主题，请查看 Btrfs 维基    [2:1]  和文档    [1:1] 。不要忘记查看本系列的前两篇文章！如果你认为本文缺少了一些内容，请在下面的评论中告诉我们。再会！

### 参考资料

1. <https://btrfs.readthedocs.io/en/latest/Introduction.html> [↩](#fnref1) [↩](#fnref1:1)
2. <https://btrfs.wiki.kernel.org/index.php/Main_Page> [↩](#fnref2) [↩](#fnref2:1)
3. <https://btrfs.readthedocs.io/en/latest/Subvolumes.html> [↩](#fnref3)
4. <https://btrfs.wiki.kernel.org/index.php/Incremental_Backup#Available_Backup_Tools> [↩](#fnref4)
5. <https://github.com/digint/btrbk> [↩](#fnref5)

*（题图：MJ/ad8a61ed-ce6f-409e-b503-69104dd71149）*

---

via: <https://fedoramagazine.org/working-with-btrfs-snapshots/>

作者：[Andreas Hartmann](https://fedoramagazine.org/author/hartan/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[A2ureStone](https://github.com/A2ureStone) 校对：[wxy](https://github.com/wxy)

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


Ardour 8.0 发布，加入对 Novation Launchpad Pro 的支持

无论是从界面设计还是操作方式来看，Ardour更适合做后期缩混。调音台大厂Harrison的MixBus就是基于Ardour开发的。

至于编曲，Ardour也能做，但它是把钢琴卷帘直接设置在音轨窗中，太紧凑了，操作不便，对我来说这设计有点“反人类”。个人不建议用它来编曲。好在这次的8.0更新改善了编曲体验，感兴趣的音乐人也可以试试。

![](/data/attachment/album/202310/16/143813ue8eue89mt44btum.jpg)

>
> Ardour 8.0 这个重大升级为我们带来了对新硬件的支持，完善的自动化创建流程等。
>
>
>

Ardour 作为最好的 Linux [数字音频工作站（DAW）](https://itsfoss.com/best-daw-linux/) 之一，允许音频专业人士进行包括创建、录音、混音音乐和其他各类音频的各种工作。

这一次，我们迎来了这款 DAW 的重大升级。 **Ardour 8.0** 的发布距离它的 [7.0 发布](https://news.itsfoss.com/ardour-7-0-release/) 近一年，不过这还是它发展历程中的一次显著进步。

下面就让我们来详细探讨一下它都带来了哪些新的变化。

### ? Ardour 8.0: 有哪些新功能？

![](/data/attachment/album/202310/16/143839gvd64wolrafwgqzw.png)

Ardour 8.0 版本承诺提供丰富的新特性以及大量的修复。

而且，开发者在此次发布时也特别强调，**Ardour 的会话文件格式没有发生改变**，这就意味着，所有在之前 7.x 版本的 Ardour 创建的会话在加载时都不会出现问题。

以下是一些主要亮点：

* 支持 Novation Launchpad Pro
* MIDI 音轨头部进行了全新设计
* MIDI 动力性的提高
* 支持区域分组功能
* macOS 的公证服务

#### 支持 Novation Launchpad Pro

![](/data/attachment/album/202310/16/143840q8ot55xz5no9o8pj.png)

Ardour 8.0 版本的增加了对 Novation 公司发售的 [Launchpad Pro](https://novationmusic.com/products/launchpad-pro) 的支持，它是一款电子乐器，包括一个 8×8 格的 RGB，可以检测力度的触摸垫，可以完成各种各样的任务。

对于 Ardour 来说，它可以用于 **触发音频切片和线索**、**控制音频增益水平**、**操作声音平移** 甚至 **设置音轨/总线的水平**。

#### MIDI 音轨头部全新设计

![](/data/attachment/album/202310/16/143840pv080ha3hpdl3s8k.png)

**全新设计的 MIDI 音轨头** 带来了一些引人注目的变化，最值得注意的包括：

* 八度音符如 C3、C4 将会永久显示。
* 可以通过钢琴卷动键来记录 MIDI。
* <ruby> 滚动+缩放 <rt>  scroomer </rt></ruby> 功能的直观设计。
* 在 <ruby> 滚动+缩放 <rt>  scroomer </rt></ruby> 功能中可以显示音符名称，可以使用 MIDNAM 数据，泛用音符编号或 12TET 名。

#### MIDI 动力学的改进

在一直以来的用户需求驱动下，Ardour 的开发者终于新增了一款 **传统的 <ruby> 动力棒棒糖 <rt>  velocity lollipop </rt></ruby>界面**。

这个界面由带有顶部圆点的垂直横条组成，可以用这个横条调节音符力度。我建议你可以在上面的视频中了解更多关于这个在 Ardour 8.0 版本中实施的一项功能。

#### 支持区域分组功能

![](/data/attachment/album/202310/16/143841tl4tool4addgpw0d.png)

这也是用户长期以来的一项需求。**区域分组** 提供了一个选取多个 [区域](https://manual.ardour.org/working-with-regions/) 并将它们组合成一个单一元素的功能。

这个功能可以赋予你将多个元素整合移动/剪辑的能力，减少对每个元素重复操作的需要。

#### macOS 验证

当你在苹果电脑上安装第三方软件时，计算机会警告你该软件可能会对你的系统产生损害或含有恶意软件，当然，对于用户而言，这可能是一个糟糕的用户体验，他们可能不会尝试运行它。

为了改善用户体验，Ardour 决定参加并支付一个苹果开发者账户以使用它的验证系统 [Notarization](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution)。

因此，下次当你在 macOS 上安装 Ardour 时，你会看到软件已经被苹果检查/验证没有携带恶意软件，这会让用户对 Ardour 有更多的信心。

#### ? 其它的改变

最后，以下还有一些其他带来的改变：

* 支持自由手绘自动化曲线。
* 新增了三个新的 MIDI 算法插件。
* 集成有序排列组成特性的专专用标尺。
* BBT 标记提供了多项提升。

你也可以查看 [官方发布说明](https://ardour.org/whatsnew.html) 来更多地了解这次发布的信息。

### ? 下载 Ardour 8.0

由于 Ardour 是一个跨平台的应用程序，你可以在它的 [官方网站](https://community.ardour.org/download) 上找到适用于 **Linux**、**Windows** 和 **macOS** 的软件包。

>
> **[Ardour](https://community.ardour.org/download)**
>
>
>

如果你对源代码感兴趣，你也可以查看它的 [GitHub 仓库](https://github.com/Ardour/ardour)。

---

via: <https://news.itsfoss.com/ardour-8-0-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1156 只有约 11% 的开源项目得到了积极维护

Summary:
? 只有约 11% 的开源项目得到了积极维护
? 谷歌人工智能 “绿灯计划” 加速交通、降低油耗和碳排放
? 微软计划放弃使用 NTLM 验证方式
»
»

NTLM早就被破解了，大多数PE都有Windows密码破解工具，不仅能移除还能重置密码。

彩虹表还能反推密码

![](/data/attachment/album/202310/16/162247ypd3disz5sp337z5.jpg)

![](/data/attachment/album/202310/16/161728d39ty6daaade66ud.jpg)

### 只有约 11% 的开源项目得到了积极维护

Sonatype 的《年度软件供应链分析报告》发现，开源项目的维护率在下降。在对 117 万个开源项目进行了评估后，报告显示今年仅有 11% 的项目在积极维护，比去年下降了 18%。调查主要涉及四个生态系统：通过 NPM 维护的 JavaScript、通过 Maven 维护的 Java、通过 PyPI 维护的 Python 和通过 NuGet 维护的 .NET，此外还包括一些 Go 项目。此外，报告还发现，67% 的受访者表示，他们不认为自己的应用程序依赖于已知的漏洞库；39% 的组织在一到七天内发现漏洞；39% 的企业需要一周以上的时间来缓解漏洞；每 8 次开放源代码下载中就有 1 次存在已知风险，但 96% 的漏洞下载版本都有可用的修复版本。

>
> **[消息来源：Info World](https://www.infoworld.com/article/3708630/report-finds-few-open-source-projects-actively-maintained.html)**
>
>
>

>
> 老王点评：开源项目就像野草，随时生，随时长，随时枯荣。
>
>
>

![](/data/attachment/album/202310/16/161852h9j99lx66956c66k.jpg)

### 谷歌人工智能 “绿灯计划” 加速交通、降低油耗和碳排放

谷歌的 “绿灯计划”通过对地图数据的机器学习来优化绿灯时间，减少车辆的空转时间以及刹车和加速次数。谷歌 2021 年首次在四个十字路口进行了试点测试，测试中观察到燃料和十字路口延迟时间减少了 10% 到 20%。谷歌称，“早期的数据显示，我们有可能减少 30% 的停车位，……在曼彻斯特测试的排放水平和空气质量提高了 18%，……帮助减少了 240 多万吨碳排放，相当于一整年减少了约 50 万辆燃油汽车”。

>
> **[消息来源：Engadget](https://www.engadget.com/google-ai-stoplight-program-project-green-light-sustainability-traffic-110015328.html)**
>
>
>

>
> 老王点评：这就是智慧交通该做的事情，随着车机联网普及，会有更智能的交通管理。
>
>
>

![](/data/attachment/album/202310/16/161908o5oow599vvse7sxi.jpg)

### 微软计划放弃使用 NTLM 验证方式

20 多年来，各种版本的 Windows 一直使用 Kerberos 作为主要的身份验证协议。不过，在某些情况下，操作系统必须使用另一种方法，即 NTLM（NT LAN 管理器）。NTLM 的优点是因为它不需要本地网络连接到域控制器，它也是使用本地账户时唯一受支持的协议。这些优点导致一些应用程序和服务硬编码使用 NTLM。但 Kerberos 提供了更好的安全保证，而且可扩展性更强，这也是它现在成为 Windows 首选默认协议的原因。今天，微软宣布将扩大 Kerberos 的使用范围，并计划最终完全放弃使用 NTLM，微软将其称为 “Windows 身份验证的进化”。

>
> **[消息来源：Neo Win](https://www.neowin.net/news/microsoft-wants-to-eventually-disable-ntlm-authentication-in-windows-11/)**
>
>
>

>
> 老王点评：NTLM 也不够 NT 了。
>
>
>


Ubuntu Studio 23.10：致力于简化音频制作

![](/data/attachment/album/202310/17/091121v09u1105s09olbbm.jpg)

>
> 创作者们，Ubuntu Studio 23.10 来了！它包含了你开始创作旅程所需的一切。
>
>
>

Ubuntu 的新版本如同雨后的春笋般持续涌现！☔ 其中一款新版本就是 Ubuntu Studio 23.10，它带来了一些实用的更新和改进。

下面就让我们详细了解一下它。

>
> ? Ubuntu Studio 23.10 将会提供**九个月**的支持，直到 **2024 年 7 月**。
>
>
>

### ? Ubuntu Studio 23.04: 新增了哪些特性？

![](/data/attachment/album/202310/17/091148j54nnxec6nc5gbd8.jpg)

对于那些刚接触的朋友，[Ubuntu Studio](https://ubuntustudio.org/) 是针对 **内容创作者**特制的官方 [Ubuntu 发行版](https://ubuntu.com/desktop/flavours)。

Ubuntu Studio 预装了许多在音频/视频制作、摄影、网络直播、图形设计等多种领域中使用的应用程序。

Ubuntu Studio 的这个版本基于 Ubuntu 23.10 发行版，进行了一些关键性的改进：

* KDE Plasma 的升级提升
* 全新壁纸
* 更新的应用套件
* Linux 内核升级到 6.5 版本
* 安装程序中加入的音频配置工具

#### KDE Plasma 的升级提升

![](/data/attachment/album/202310/17/091149kupuqdon2ok92kwq.jpg)

Ubuntu Studio 23.10 带有新的 **KDE Plasma 5.27.8** 桌面环境，以及新的翻译、各种修复，和三个关键的问题修复：

* 系统设置搜索栏中移除了软连字符；
* Powerdevil 默认情况下不会在虚拟机中自动挂起；
* 提升了在 X11 上运行的 KRunner 启动速度。

你可以通过查阅 [发布说明](https://kde.org/announcements/plasma/5/5.27.8/)，来了解所有技术性的变动。

#### Ubuntu Studio 的音频配置

Ubuntu Studio 的安装工具现在包括了一个音频配置向导，让系统级音频设置更为方便。

![](/data/attachment/album/202310/17/091149qze45f4r5kpe4k1a.png)

你可以根据自己的需求，调整音频的延迟和采样率。

![](/data/attachment/album/202310/17/091150mozqe88otkkd6nd8.png)

这个功能对于使用 Ubuntu Studio 进行音频制作的创作者会特别实用。

#### 全新壁纸

![](/data/attachment/album/202310/17/091150j297z5fkd9rirez9.jpg)

新版本的 Ubuntu Studio 引入了一款新壁纸，名为 “Ubuntu Studio Mantic Minotaur”，其设计习得了 Ubuntu 23.10 默认壁纸 “Mantic Minotaur” 的灵感。

我个人很喜欢它的暗色调设计 ?

#### 更新的应用套件

![](/data/attachment/album/202310/17/091150dqdz3e05eajjj1jq.jpg)

Ubuntu Studio 23.10 提供了 **一系列更新的应用** ，其中一些重要的应用包括：

* Ardour 7.5.0
* Blender 3.6.2
* Inkscape 1.2.2
* Audacity 3.3.3
* Darktable 4.2.1
* Kdenlive 23.08.1
* OBS Studio 29.1.3

#### Linux 内核升级至 6.5 版本

![](/data/attachment/album/202310/17/091151yv2j28dmwk884b98.jpg)

所有的这些，全都运行在**Linux 内核 6.5**之上，让 Ubuntu Studio 23.10 能够支持如 **USB4/Wi-Fi 7 的初始支持**和**AMD 的各种优化**等。

#### ? 其他的改进

此外，还有一些你应该了解的改变:

* 由于引入了 0.3.79 版本，提升了 PipeWire 的性能。
* Ubuntu Studio 的安装程序已去掉了 Backports PPA 的选项。
* 将 Carla 升级到了 2.5.6版。

你可以访问 [官方发布说明](https://ubuntustudio.org/ubuntu-studio-23-10-release-notes/) 以了解关于升级和技术变动的更多细节。

### ? 下载 Ubuntu Studio 23.10

你可以在 [官方网站](https://ubuntustudio.org/download/) 或者 Ubuntu 的 [镜像仓库](https://cdimage.ubuntu.com/ubuntustudio/releases/23.10/) 中下载到最新的Ubuntu Studio版本。

>
> **[Ubuntu Studio 23.10](https://cdimage.ubuntu.com/ubuntustudio/releases/23.10/release/)**
>
>
>

? 你以前用过 Ubuntu Studio 吗？你的使用体验如何？

*（题图：[Ubuntu](https://ubuntu.com/blog/into-the-labyrinth)）*

---

via: <https://news.itsfoss.com/ubuntu-studio-23-10/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


在 Arch Linux 上安装 Brave

Summary: 在这篇初学者教程中，学习在 Arch Linux 中安装 Brave 浏览器。

何时开放注册哦，我或可以发布相对优质的文章

没有开放注册的计划，而且即便开放注册，也不考虑提供投稿。但是我们有投稿通道：<br />
https://github.com/LCTT/Articles/pulls

在这篇初学者教程中，学习在 Arch Linux 中安装 Brave 浏览器。

![](/data/attachment/album/202310/17/103648le2r0e688pef1v22.jpg)

>
> 在这篇初学者教程中，学习在 Arch Linux 中安装 Brave 浏览器。
>
>
>

Firefox 和 Brave 是我日常浏览网页的程序。

当我安装带有 GNOME 的 Arch Linux 时，它有 GNOME Web 浏览器。这是一个不错的浏览器，但我不能接受它，因为我需要保存的密码、浏览历史记录和插件。

因此，我开始安装我最喜欢的网络浏览器，因此本教程是关于在 Arch Linux 中安装 Brave。

如果你安装了 Yay（或任何其他 AUR 帮助程序），那么安装 Brave 就像使用以下命令一样简单：

```
yay -S brave-bin

```

是的！就这么简单。让我们详细看看。

>
> ? Manjaro 内置了 AUR 支持。你可以使用 Pamac 软件中心或 `pamac`/`pacman` 命令在 Manjaro 中安装 Brave。
>
>
>

### 在 Arch Linux 上安装 Brave 浏览器

Brave 在官方 Arch 仓库中不可用。但是，它可以在 AUR（Arch 用户仓库）中使用，并且可以使用 Yay 等 AUR 帮助程序轻松安装。

如果你没有 Yay 或任何其他 AUR 帮助程序，请逐一使用这些命令来 [安装 Yay](https://itsfoss.com/install-yay-arch-linux/)：

```
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

```

安装 Yay 后，用它来安装 Brave：

```
yay -S brave-bin

```

不用担心。它最终会要求你输入密码。

如果这是你第一次安装浏览器，系统可能会要求你选择字体提供方。使用默认选择或选择任何其他选项。

![](/data/attachment/album/202310/17/103837ipp9rlttr0gmcctr.png)

接下来，它会询问你有关清理构建的问题。Yay 询问你是否应该重新下载软件包（和依赖项）并再次构建它或使用早期构建的缓存（如果有）。

你可以按回车键继续操作，这应该意味着不清理构建。

![](/data/attachment/album/202310/17/103838fcdl6mflwf9ah6tq.png)

事实上，当你看到默认选项时，你可以继续按回车键。

在实际安装之前，系统会要求你输入帐户密码。输入你的密码并继续该过程。它将下载大小约为 350 MB 的文件：

![](/data/attachment/album/202310/17/103838qyzf2vqbsdv7a5vw.png)

安装后，在系统菜单中查找 [Brave browser](https://brave.com/) 并从那里运行它。

![](/data/attachment/album/202310/17/103838k46md8u4i6zuals2.png)

### 保持 Brave 更新

你可以使用以下命令更新通过 Yay 安装的 AUR 软件包来保持 Brave 浏览器更新：

```
yay -Sua

```

### 从 Arch 中删除 Brave

不喜欢 Brave？ 不用担心。你可以轻松将其删除。

与任何其他软件一样，使用 `pacman` 命令从 Arch 中删除 Brave：

```
sudo pacman -Rs brave-bin

```

### 总结

AUR 再次拯救你！ 安装 Brave 变得非常简单。

顺便说一句，我注意到 Brave 不知何故成为打开图像的默认应用。这意味着，双击图像将在新的 Brave 窗口中打开它们。

我必须通过右键单击图像并选择“打开方式”选项再次将图像查看器设置为默认值。

![Somehow Brave becomes the default image viewer. You should change it](/data/attachment/album/202310/17/103839m31iwwhqqjjlvvw8.png)

在接下来的几天里，我将分享更多我的 Arch 经验。敬请关注！

*（题图：MJ/46bf8413-5fe1-41aa-b6f3-a5e660efce2b）*

---

via: <https://itsfoss.com/install-brave-arch-linux/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Linux 爱好者线下沙龙：LLUG 2023·相聚成都

Summary: 10 月 29 日，Linux 爱好者沙龙将会在四川成都市高新区菁蓉汇，与 中国开源年会（COSCON）同场举办！

演讲，对于绝大多数搞技术的挑战挺大。

没上过台的害怕，上过的觉得也就那样。

看个人性格、话题、还有状态。<br />
就算再腼腆的人，谈起自己熟悉的领域，只要能清晰表达自己的观点，就已经是很棒的演讲了

![](/data/attachment/album/202310/17/165303gilg8g57gijm1rj8.jpg)

社群里呼声很高的天府之国，它来了！

经历过 [6 月北京场](/article-15929-1.html)、[7 月上海场](/article-16052-1.html)、[9 月深圳场](/article-16238-1.html) 之后，**10 月 29 日（周日）**，Linux 爱好者沙龙将会在四川成都市高新区菁蓉汇，与 [中国开源年会（COSCON）](https://kaiyuanshe.cn/activity/coscon-2023)同场举办！

本次活动依然由 Linux 中国和龙蜥社区（OpenAnolis）联合主办，中国开源年会提供场地支持，人民邮电出版社提供了书籍赞助。

>
> 龙蜥社区（OpenAnolis）是国内的顶尖 Linux 发行版社区，我们希望在普及 Linux 知识的同时，也能让中国的 Linux 发行版，为更多人知晓，推动国产发行版的发展和进步。
>
>
>

![](/data/attachment/album/202310/17/164007xc6eo9rhe46hhtrh.jpg)

*深圳场现场照片*

![](/data/attachment/album/202310/17/164030ndjcrdiudcm9oovx.jpg)

*上海场现场照片*

本次活动，我们将设常规的技术分享和闪电演讲两种不同分享的形态。

技术分享会邀请来自 Linux 社区的开发者，分享自己在 Linux 中的技术实践，并配合 Q&A 的环节，帮助大家理解技术难点和实践，如果你有经验和实践想要分享给大家，欢迎报名分享

闪电演讲则不设定主题，每个人有 5 分钟时间来分享自己与 Linux、技术、开源有关的话题，共计 6 个闪电演讲名额，想要试试锻炼自己的演讲能力，不妨从闪电演讲开始。

![](/data/attachment/album/202310/17/164149tn6kwvmkz16uokkn.png)

如果你对分享感兴趣，欢迎填写下方问卷来提交你的议题：

>
> **<https://jinshuju.net/f/VJkeMZ>**
>
>
>

*（题图：MJ/496a4579-23c7-4376-a0f3-194127b5318c）*


硬核观察 #1157 《我的世界》成为有史以来最畅销的电子游戏

Summary:
? 《我的世界》成为有史以来最畅销的电子游戏
? Cloudera 因云存储专利被判赔 2.4 亿美元
? 纽约法案规定购买 3D 打印机需进行犯罪背景调查
»
»

AI生成的图感觉怪怪的，

![](/data/attachment/album/202310/17/172611q655445xbnn5b0bb.jpg)

![](/data/attachment/album/202310/17/172619rpuvpz72qizotpu2.jpg)

### 《我的世界》成为有史以来最畅销的电子游戏

《<ruby> 我的世界 <rt>  Minecraft </rt></ruby>》宣布其销量已达到惊人的 3 亿份，成为有史以来最畅销的游戏。即使是史上第二畅销的电子游戏《GTA 5》也无法与《我的世界》相提并论，其最高销量为 1.85 亿份。《我的世界》已经发布近 15 年，这一销量冠军很可能会保持很长一段时间。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/10/15/23916349/minecraft-mojang-sold-300-million-copies-live-2023)**
>
>
>

>
> 老王点评：这游戏真是爱玩的放不下，不爱玩的不玩。
>
>
>

![](/data/attachment/album/202310/17/172629nazaveip3ppx7v30.jpg)

### Cloudera 因云存储专利被判赔 2.4 亿美元

周五，美国德克萨斯州法院裁定数据管理软件公司 Cloudera 侵犯了 StreamScale 基于云的数据存储技术相关的三项专利。StreamScale 拥有称其拥有的 “加速擦除编码” 技术专利是现代数据存储的“基石”，指控 Cloudera 的 CDH 开源数据管理平台侵犯了其专利权。Cloudera 辩称其软件的工作方式与 StreamScale 的发明不同，称这些专利无效，并打算对这一裁决提出质疑。

>
> **[消息来源：路透社](https://www.reuters.com/legal/litigation/cloudera-hit-with-240-mln-patent-verdict-over-cloud-storage-technology-2023-10-13/)**
>
>
>

>
> 老王点评：如果以此推论，恐怕要交专利费的公司不少。
>
>
>

![](/data/attachment/album/202310/17/172643coaolbgipla0z91l.jpg)

### 纽约法案规定购买 3D 打印机需进行犯罪背景调查

美国纽约州提出了一项新的法案，纽约州居民如果想购买一台新的 3D 打印机，就必须提交犯罪背景调查。该法案旨在堵住一个日益流行的漏洞，即只需通过 3D 打印单个部件，就能制造出无法追踪的 “幽灵枪”。纽约警察局报告称，在过去两年中，缴获的幽灵枪增加了 60%。

>
> **[消息来源：Gizmodo](https://gizmodo.com/new-york-bill-criminal-background-check-buy-3d-printer-1850930407)**
>
>
>

>
> 老王点评：技术进步带来的便利也带来了各种安全风险。
>
>
>

### 回音

* Ubuntu 23.10 桌面版 ISO 在几天后恢复下载，消除了恶意翻译。


六大 Python 解释器

Summary: 观察你的代码在其他解释器下运行的表现或许是一项有趣的尝试。

观察你的代码在其他解释器下运行的表现或许是一项有趣的尝试。

![](/data/attachment/album/202310/17/232316oa6pjbza2az2b5hv.jpg)

>
> 观察你的代码在其他解释器下运行的表现或许是一项有趣的尝试。
>
>
>

作为最受欢迎的编程语言之一，Python 需要一个解释器来执行其代码所定义的命令。与其他可直接编译成机器代码的语言不同，Python 代码需要解释器读取它并把它转译给进行相关操作的 CPU。那么，哪些解释器有哪些呢？本文将对其中几种进行介绍。

### 解释器简介

提到 Python 解释器，我们通常会想到 `/usr/bin/python` 这个二进制文件。它使你能够执行 `.py` 文件。然而，解释操作仅仅是其中一环。在 Python 代码真正被 CPU 执行之前，都需要经过以下四个步骤：

1. 词法分析 - 将人类编写的源代码转换为一序列逻辑实体，被称为 <ruby> 词法标记 <rt>  lexical token </rt></ruby>。
2. 解析 - 解析器会检查词法标记的语法和语义规则生成 <ruby> 抽象语法树 <rt>  abstract syntax tree </rt></ruby>（AST）。
3. 编译 - 编译器会根据 AST 创建 Python 字节码，这些字节码由非常基础的，和平台无关的指令组成。
4. 解释 - 解释器处理字节码并执行特定的操作。

如你所见，在任何实质性的操作发生之前，我们需要走过这些步骤。这也解释了深入研究不同解释器的重要性。

### 1、CPython

作为 Python 的参考实现，[CPython](https://github.com/python/cpython#general-information) 默认地被许多系统所采用。如其名称所示，CPython 是用 C 语言编写的。这也意味着，我们可以 [以 C 语言编写扩展](https://opensource.com/article/21/4/cython)，从而让 Python 打通到广泛使用的 C 语言库代码。CPython 广泛应用于各种平台，包括 ARM 和 RISC。然而，作为 Python 的参考实现，CPython 更注重精细的优化，而非运行速度。

### 2、Pyston

[Pyston](https://github.com/pyston/pyston) 是一个从 CPython 解释器衍生出的分支，其中实现了性能优化。该项目定位自己为标准 CPython 解释器在处理大型、真实世界应用时的替代品，并有可能加速高达 30%。由于缺乏兼容的二进制包，Pyston 在下载过程中需要重新编译。

### 3、PyPy

采用了 RPython 编写的 [PyPy](https://foss.heptapod.net/pypy/pypy) 是一个专为 Python 配备的 [即时（JIT）](https://en.wikipedia.org/wiki/Just-in-time_compilation) 编译器，RPython 是 Python 的一个静态类型的子集。不同于 CPython 解释器，PyPy 对源代码进行编译，生成 CPU 可直接执行的机器码。PyPy 是 Python 开发者的实验室，在这里他们能更容易地测试新特性。

相较于 CPython，PyPy 的执行速度更快。由于 JIT 编译器的特性，长时间运行的应用更能从缓存中受益。PyPy 可以被视为 CPython 的有效替代。虽然其中存在一些缺点，大部分的 C 扩展模块在 PyPy 中也得到支持，但运行速度会相对慢一些。PyPy 扩展模块使用 Python（而不是 C）编写，这使 JIT 编译器能够对其进行优化。只要你的应用程序不依赖于不兼容的模块，PyPy 就是替换 CPython 的理想选择。你可以在项目官网找到一个专门的页面，详细描述 PyPy 与 CPython 的不同之处：[PyPy 与 CPython 的差异](https://doc.pypy.org/en/latest/cpython_differences.html)

### 4、RustPython

顾名思义，[RustPython](https://github.com/RustPython/RustPython) 是一个由 Rust 编写的 Python 解释器。尽管 Rust 如今还是一个相对年轻的编程语言，但因其优良特性已逐步受到开发者的推崇，甚至被视为 C 和 C++ 的可能接班人。默认情况下，RustPython 的行为与 CPython 的解释器类似，但它也可以选择启用 JIT 编译器。值得一提的是，Rust 工具链能直接编译为 [WebAssembly](https://opensource.com/article/21/3/webassembly-firefox) ，进而允许在浏览器中全面运行解释器。你可以在 [这里](https://rustpython.github.io/demo/) 看到它的在线演示。

### 5、Stackless Python

[Stackless Python](https://github.com/stackless-dev/stackless) 自称是 Python 编程语言的增强版本。该项目基本上是 CPython 解释器衍生的一个项目，其为该语言添加了微线程、通道和调度器。微线程可以帮助你将代码组织成可以并行运行的 “<ruby> 小任务 <rt>  tasklet </rt></ruby>”。这与采用 [greenlet](https://pypi.org/project/greenlet/) 模块的绿色线程模型相似。通道可以用作 “小任务” 之间的双向通信。Stackless Python 的一个知名用户是大型多人在线角色扮演游戏 [Eve Online](https://www.eveonline.com/)。

### 6、Micro Python

如果你的目标平台是微控制器，那么 [MicroPython](https://micropython.org) 将是你的首选。它是一种极简的实现，只需要 16kB 的内存和 256kB 的存储空间。由于其主要面向的是嵌入式环境，MicroPython 的标准库只包含 CPython 丰富的 STL 的一部分。对于开发和测试，或者作为轻量级替代品，MicroPython 也可以在普通的 x86 和 x64 系统上运行。MicroPython 支持 Linux、Windows，以及多种微控制器。

### 性能

就其设计而言，Python 本质上是一种运行速度不够快的语言。根据任务性质的不同，各种解释器间存在明显的性能差异。要想弄清楚哪种解释器最适合特定任务，可以参考 [pybenchmarks.org](https://pybenchmarks.org/)。与使用解释器相比，另一种选择是直接将 Python 二进制代码编译成机器码，例如，[Nuitka](https://github.com/Nuitka/Nuitka) 就是能够完成这种工作的项目之一，它可以将 Python 代码编译成 C 代码，然后将 C 代码通过常规的 C 编译器编译成机器码。Python 编译器的主题范围广泛，值得一篇独立的文章来详述。

### 总结

Python 是构建快速原型和自动化任务的优秀语言，同时它又易于学习，对初学者友好。如果你平时维持使用 CPython，那么尝试看看你的代码在另一解释器上运行会是什么样子也许会很有趣。如果你是 Fedora 用户，你可以轻松地测试几种其他解释器，因为其包管理器已经提供了需要的二进制文件。你可以在 [fedora.developer.org](https://developer.fedoraproject.org/tech/languages/python/multiple-pythons.html) 上查找更多信息。

*（题图：MJ/9b24f27b-bd2b-4916-9f33-bcfb9e2b1d33）*

---

via: <https://opensource.com/article/22/9/python-interpreters-2022>

作者：[Stephan Avenwedde](https://opensource.com/users/hansic99) 选题：[lkxed](https://github.com/lkxed) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


在 GNOME 中添加最小化和最大化按钮

Summary: 缺少了 GNOME 中的最小化按钮选项？下面教你如何轻松找回它。

「这种“无最小化按钮”的设计灵感来自苹果的 macOS。」<br />
可是macOS的窗口有最大化和最小化按钮，不过最大化的行为与Windows不同，它会最大化占满一个单独的空间。在所有主流操作系统以及Linux的各种桌面中，似乎只有Gnome的窗口（默认情况下）只有关闭按钮。

gnome在不让人用得舒服方面总是走得很领先，包括没有最小化最大化、托盘需要自己用插件……

缺少了 GNOME 中的最小化按钮选项？下面教你如何轻松找回它。

![](/data/attachment/album/202310/18/104631i5gbbz3mwkfp5gmu.jpg)

>
> 缺少了 GNOME 中的最小化按钮选项？下面教你如何轻松找回它。
>
>
>

与 Ubuntu 不同，[Fedora](https://itsfoss.com/best-fedora-linux-distributions/) 和 Arch Linux 等发行版为你提供了原生的 GNOME，但可能让你烦恼的一件事是应用窗口上缺少最小化和最大化按钮。

![No minimize or maximize button in application windows, only close button](/data/attachment/album/202310/18/104703fgjycvtrrgrij5df.png)

GNOME 希望你使用应用切换器（`Alt+Tab`）或使用活动区（`Super` 键）在正在运行的应用之间切换，而不是最小化它。

好消息是，如果你不喜欢的话，你不必这样。

让我分享一下如何使用 GUI 和命令行选项恢复 GNOME 中的最小化和最大化按钮。

### 方法 1：使用 GNOME 优化工具启用最小化和最大化按钮

GNOME <ruby> 优化 <rt>  Tweaks </rt></ruby> 工具允许你自定义 GNOME 的各个方面。启用最小化窗口按钮就是其中之一。

首先使用发行版的包管理器安装 GNOME 优化工具。

运行应用并从左侧边栏进入 Windows 标题栏。你将在此处看到添加最小化和最大化按钮的选项，

![](/data/attachment/album/202310/18/104704apo9tjwckxyjkjgk.png)

你可以选择其中一个或两者。如果你不再需要它，**你可以在 GNOME 调整工具中以相同的方式禁用按钮**。

>
> ? 如果需要，你还可以选择将这些控制按钮放在左侧。该选项位于标题栏按钮选项的末尾。
>
>
>

### 方法 2：使用命令行启用最小化和最大化按钮

`gsettings` 命令可以选择更改按钮布局并添加最小化和最大化按钮。

```
gsettings set org.gnome.desktop.wm.preferences button-layout ":minimize,maximize,close"

```

正如你所猜测的，如果你想要**禁用任何按钮，你可以运行相同的命令，但从命令中省略不需要的按钮**。

>
> ? 你还可以通过将冒号放在命令的右侧来将 Windows 控制按钮移动到左侧：
>
>
>
> ```
> gsettings set org.gnome.desktop.wm.preferences button-layout "close,minimize,maximize:"
>
> ```
>
>

### 受到 macOS 的启发并不总是一件好事

显然，这种“无最小化按钮”的设计灵感来自苹果的 macOS。我记得大约 10 年前，macOS 曾经将窗口控件放在左侧。因此 Ubuntu Unity 也尝试默认将控件保留在左侧。

苹果很奇怪。他们大多数时候都有很好的设计，但有时他们会优先考虑设计而不是使用体验。“Magic Mouse” 就是一个例子。

>
> “Magic Mouse 深受用户喜爱”。你确定？
>
>
> ![](/data/attachment/album/202310/18/105058q42ry0z4sprj76y5.jpg)
>
>
> — Stuart (@stuwieface) [2021 年 4 月 20 日](https://twitter.com/stuwieface/status/1384561367223521286?ref_src=twsrc%5Etfw)
>
>
>

我不明白为什么 GNOME 开发者需要从各种设计中获得灵感，尤其是那些糟糕的设计。

但那只是我的个人意见。我很高兴有一个快速简单的解决方案可以恢复 GNOME 中的最小化和最大化按钮。

*（题图：MJ/f8ce0441-3d9b-498c-8e23-e48f7a90d040）*

---

via: <https://itsfoss.com/gnome-minimize-button/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1158 马自达封杀了业余爱好者的智能汽车 API 工具

Summary:
? 马自达封杀了业余爱好者的智能汽车 API 工具
? 高通发布首款面向大众市场的 RISC-V 安卓 SoC
? Reddit 正在逐步停止基于区块链的社区积分
»
»

马自达自己闭源商业项目做不到的功能，还不给人开源项目做。别人做的比你好，超越了你官方App的功能，还给用户提供更大可玩空间。得嘞，眼红了、破防了，就祭出DMCA大旗。

与其说是“维护商业利益”，不如说马自达的“维权”夹带私货，用冠冕堂皇的指控，表达自己失衡的心态罢了。

反观微软，Win32等专有API对开发者开放，也不限制undocumented API的使用（当然责任自负），还允许（至少是默许）Wine项目开发。高下立判。

来自广西柳州的 Chrome Mobile 117.0|Android 10 用户

卑鄙是卑鄙者的通行证，高尚是高尚者的墓志铭<br />
——北岛

马自达格局小了，怪不得开马自达会堵车……

怪不得你塞车

![](/data/attachment/album/202310/18/153705wzlvlirrddnb4rr4.jpg)

![](/data/attachment/album/202310/18/153715rkt1xmv8dmo5omzt.jpg)

### 马自达封杀了业余爱好者的智能汽车 API 工具

上周之前，马自达汽车的车主如果同时安装了“Home Assistant”应用，就可以为自己的汽车创建一些方便的连接。比如根据能源的动态价格控制充电器；再比如还可以在早晨通勤前检查油量，在天气预报下雨前提醒他们车窗是否已关好，以及在寒冷条件下远程解锁和启动汽车等等。这些功能可以扩展的范围非常大，据称已经超出了马自达官方应用程序的功能范围。然而，马自达向 GitHub 发出了下架该仓库的要求，指控该软件包含 “侵犯版权所有权” 的代码；使用 “某些马自达信息，包括专有 API 信息来创建代码和信息”；包含提供与目前马自达应用程序中“相同功能”的代码。该软件作者出于“即使我相信我所做的事情在道德上是正确的，在法律上是受保护的，但法律程序仍然需要付出经济代价”的考虑，向“Home Assistant”核心项目提出了拉取请求，删除了马自达集成。

>
> **[消息来源：Ars Technica](https://arstechnica.com/cars/2023/10/mazdas-dmca-takedown-kills-a-hobbyists-smart-car-api-tool/)**
>
>
>

>
> 老王点评：重施甲骨文故技，我的 API 就是不能给别人用，模仿都不行。
>
>
>

![](/data/attachment/album/202310/18/153724g44maawazuufa5cc.jpg)

### 高通发布首款面向大众市场的 RISC-V 安卓 SoC

去年，谷歌宣布在安卓系统中正式支持 RISC-V，并计划将其打造成与 Arm 同等重要的一级平台。而在硬件方面，高通宣布推出有史以来第一款面向大众市场的 RISC-V 安卓 SoC，它计划 “在全球（包括美国）商业化基于 RISC-V 的可穿戴设备解决方案”。RISC-V 架构是开源的，因此比 Arm 架构更便宜、更灵活，也是回避 Arm 存在的各种问题的一种方法。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/10/qualcomm-announces-first-ever-mass-market-risc-v-android-soc/)**
>
>
>

>
> 老王点评：有望摆脱 Arm 对移动计算的统治。
>
>
>

![](/data/attachment/album/202310/18/153735xn2zdydzcettsm52.jpg)

### Reddit 正在逐步停止基于区块链的社区积分

Reddit 社区积分于 2020 年首次推出，奖励给积极参与特定子区的用户，以激励更好的内容和对话。这些积分本质上是以太坊通证，存储在 Reddit 的加密货币钱包中。Reddit 称，他们“看到了社区积分未来的一些机会，但不幸的是，所需的资源配置过高，无法证明其合理性。” Rdddit 正在转而优先考虑那些不那么难以扩展的奖励项目。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/10/17/reddit-is-phasing-out-community-points-blockchain-rewards/)**
>
>
>

>
> 老王点评：对区块链的美好幻想逐一破碎，生不逢时。
>
>
>


如何在 Linux 中监控用户活动

Summary: 作为一位 Linux 管理员，你需要跟踪所有用户的活动。

作为一位 Linux 管理员，你需要跟踪所有用户的活动。

![](/data/attachment/album/202310/19/105911voe22858b5o7287s.jpg)

作为一位 Linux 管理员，你需要跟踪所有用户的活动。当服务器发生故障时，你可以分析和查看用户活动，以便寻找问题的根源。监控 Linux 用户有多种方式。本指南将专门讨论 **GNU 记账工具**，这是一项用于监视 Linux 用户活动的实用工具。

### 什么是记账工具？

记账工具可以提供诸如 Linux 系统中的连接、已执行的程序以及系统资源的使用等有底系统使用信息。这些记账工具可以通过 `psacct` 或 `acct` 软件包安装。

`psacct` 和 `acct` 实际上是相同的。在基于 RPM 的系统中，它以 `psacct` 的形式存在；而在基于 DEB 的系统中，它作为 `acct` 提供。

你可能想知道 `psacct` 或 `acct` 工具的作用。通常，用户在命令行的历史记录会保存在他们的 `$HOME` 目录下的 `.bash_history` 文件中。有些用户可能会尝试编辑、修改或删除这些历史记录。

然而，即使他们完全 [清除了命令行历史](https://ostechnix.com/how-to-clear-command-line-history-in-linux/)，记账工具依然能够获取用户活动信息。这是因为，**所有进程记账文件都由 root 用户拥有**，而普通用户则无法进行编辑。

### Linux 中如何安装 psacct 或 acct

`psacct`/`acct` 被打包在多种流行的 Linux 发行版本中。

如果要在 Alpine Linux 中安装 `psacct`，请运行以下命令：

```
$ sudo apk add psacct

```

如果在 Arch Linux 及其变体版本（如 EndeavourOS 和 Manjaro Linux）中安装 `acct`，请运行以下命令：

```
$ sudo pacman -S acct

```

在 Fedora、RHEL 及其衍生版本（如 CentOS、AlmaLinux 和 Rocky Linux）中安装 `psacct`，请运行以下命令：

```
$ sudo dnf install psacct

```

在 RHEL 6 以及更早版本中，你应当使用 `yum` 命令而非 `dnf` 来安装 `psacct`。

```
$ sudo yum install psacct

```

在 Debian、Ubuntu 以及 Linux Mint 中，通过如下命令来安装 `acct`：

```
$ sudo apt install acct

```

若在 openSUSE 中安装 `acct`，则运行：

```
$ sudo zypper install acct

```

### 启动 psacct/acct 服务

要启用并开启 `psacct` 服务，请执行以下命令：

```
$ sudo systemctl enable psacct

```

接着启动 `psacct` 服务：

```
$ sudo systemctl start psacct

```

如果你需要检查 `psacct` 服务是否已加载和激活，可以运行：

```
$ sudo systemctl status psacct

```

在基于 DEB 的系统中，安装完成之后，`acct` 服务会自动启动。

如果你想验证 `acct` 服务是否已经启动，可以执行以下命令：

```
$ sudo systemctl status acct

```

```
● acct.service - Kernel process accounting
     Loaded: loaded (/lib/systemd/system/acct.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2022-10-13 16:06:35 IST; 28s ago
       Docs: man:accton(8)
    Process: 3241 ExecStart=/usr/sbin/accton /var/log/account/pacct (code=exited, status=0/SUCCESS)
   Main PID: 3241 (code=exited, status=0/SUCCESS)
        CPU: 879us

Oct 13 16:06:35 ubuntu2204 systemd[1]: Starting Kernel process accounting...
Oct 13 16:06:35 ubuntu2204 accton[3241]: Turning on process accounting, file set to '/var/log/account/pacct'.
Oct 13 16:06:35 ubuntu2204 systemd[1]: Finished Kernel process accounting.

```

### 利用 psacct 或 acct 来监测 Linux 中的用户活动

`psacct`（进程记账）软件包包含以下用来监测用户和进程活动的工具：

* `ac` - 提供用户登录时间的统计信息。
* `lastcomm` - 展示先前执行过的命令的信息。
* `accton` - 开启或关闭进程记账。
* `dump-acct` - 把 `accton` 的输出文件转化为易读的格式。
* `dump-utmp` - 以易读的方式打印 `utmp` 文件。
* `sa` - 汇总信息，关于先前执行的命令。

现在就让我们一起了解如何通过每个工具来监控 Linux 用户的活动。

#### 1、使用 ac 命令

`ac` 工具可以为你提供以小时为单位的连接时间报告，这样你就能知道用户或一组用户连接到系统的时长。

##### 1.1、展示所有用户的总连接时间

```
$ ac

```

上述命令会显示所有用户的总连接时间（单位为小时）。

```
total       52.91

```

![展示所有用户的总连接时间](/data/attachment/album/202310/19/105948osaz5qmicxcmfc65.png)

##### 1.2、按日期排序显示所有用户的总连接时间

你可以通过使用 `-d` 参数，按日期排序显示所有用户的连接时间，操作如下：

```
$ ac -d

```

示例输出：

```
May 11	total        4.29
May 13	total        3.23
May 14	total        7.66
May 15	total        8.97
May 16	total        0.52
May 20	total        4.09
May 24	total        1.32
Jun  9	total       15.18
Jun 10	total        2.97
Jun 22	total        2.61
Jul 19	total        1.95
Today	total        0.29

```

![按日期排序显示所有用户的总时间](/data/attachment/album/202310/19/105949glf31izcc9vgo43i.png)

##### 1.3、获取各个用户的总连接时间

使用 `-p` 参数，你可以查看每位用户各自在系统中总的连接时长。

```
$ ac -p

```

示例输出：

```
ostechnix                           52.85
root                                 0.51
total       53.36

```

![获取各个用户的总连接时间](/data/attachment/album/202310/19/105949l8885sudzuzfbn8r.png)

##### 1.4、显示指定用户的总连接时间

你还可以显示特定用户的总登录时间。

```
$ ac ostechnix

```

示例输出：

```
total       52.95

```

##### 1.5、显示特定用户各日期的总连接时间

要按日期查看某个用户的登录时间，可以运行：

```
$ ac -d ostechnix

```

示例输出：

```
May 11	total        4.29
May 13	total        3.23
May 14	total        7.66
May 15	total        8.97
May 16	total        0.01
May 20	total        4.09
May 24	total        1.32
Jun  9	total       15.18
Jun 10	total        2.97
Jun 22	total        2.61
Jul 19	total        1.95
Today	total        0.68

```

![显示某个用户各日期的总连接时间](/data/attachment/album/202310/19/105950fzyof4nhf7nzuzoe.png)

如需更多详情，可参考手册页面。

```
$ man ac

```

#### 2、lastcomm 命令使用示例

`lastcomm` 工具用于列出过去执行过的命令，它会按执行的最近程度将命令列在前面。

##### 2.1、展示过去执行的命令

```
$ lastcomm

```

示例输出：

```
systemd-hostnam  S     root     __         0.06 secs Thu Oct 13 17:21
systemd-localed  S     root     __         0.06 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
awk                    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
uname                  ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
sed                    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
grep                   ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
grep                   ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
[...]

```

##### 2.2、打印特定用户先前执行的命令

上述命令显示的是所有用户的命令。要显示特定用户以前执行的命令，可以使用下面的命令：

```
$ lastcomm ostechnix

```

示例输出：

```
less                   ostechni pts/1      0.00 secs Thu Oct 13 17:26
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:26
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:26
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:26
gdbus                X ostechni __         0.00 secs Thu Oct 13 17:24
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:24
ac                     ostechni pts/1      0.00 secs Thu Oct 13 17:24
update-notifier   F    ostechni __         0.00 secs Thu Oct 13 17:23
apport-checkrep        ostechni __         0.06 secs Thu Oct 13 17:23
apport-checkrep        ostechni __         0.05 secs Thu Oct 13 17:23
systemctl              ostechni __         0.00 secs Thu Oct 13 17:23
apt-check              ostechni __         0.81 secs Thu Oct 13 17:23
dpkg                   ostechni __         0.00 secs Thu Oct 13 17:23
ischroot               ostechni __         0.00 secs Thu Oct 13 17:23
dpkg                   ostechni __         0.00 secs Thu Oct 13 17:23
[...]

```

##### 2.3、打印特定命令的执行次数

你还可以查看特定命令被执行的次数。

```
$ lastcomm apt

```

示例输出：

```
apt              S     root     pts/2      0.70 secs Thu Oct 13 16:06
apt               F    root     pts/2      0.00 secs Thu Oct 13 16:06
apt               F    root     pts/2      0.00 secs Thu Oct 13 16:06

```

如上述输出所示，root 用户执行了 `apt` 命令三次。

更详细的信息，可参考手册页：

```
$ man lastcomm

```

#### 3、sa 命令示例

`sa` 实用程序将总结关于先前执行的命令的信息。

##### 3.1、打印所有命令的总结

```
$ sa

```

示例输出：

```
1522    1598.63re       0.23cp         0avio     32712k
    139     570.90re       0.05cp         0avio     36877k   ***other*
     38     163.63re       0.05cp         0avio    111445k   gdbus
      3       0.05re       0.04cp         0avio     12015k   apt-check
     27     264.27re       0.02cp         0avio         0k   kworker/dying*
      2      51.87re       0.01cp         0avio   5310464k   Docker Desktop
      5       0.03re       0.01cp         0avio       785k   snap-confine
      8      59.48re       0.01cp         0avio     85838k   gmain
      5     103.94re       0.01cp         0avio    112720k   dconf worker
     24       3.38re       0.00cp         0avio      2937k   systemd-udevd*
      7       0.01re       0.00cp         0avio     36208k   5
      3       1.51re       0.00cp         0avio      3672k   systemd-timedat
      2       0.00re       0.00cp         0avio     10236k   apport-checkrep
      2       0.01re       0.00cp         0avio   4316160k   ThreadPoolForeg*
      2       0.00re       0.00cp         0avio      8550k   package-data-do
      3       0.79re       0.00cp         0avio      2156k   dbus-daemon
     12       0.00re       0.00cp         0avio     39631k   ffmpeg
[...]

```

##### 3.2、查看进程数量和 CPU 分钟数

要打印基于每个用户的进程数量和 CPU 分钟数，运行带 `-m` 标志的 `sa` 命令：

```
$ sa -m

```

示例输出：

```
1525    1598.63re       0.23cp         0avio     32651k
root                                  561     647.23re       0.09cp         0avio      3847k
ostechnix                             825     780.79re       0.08cp         0avio     47788k
gdm                                   117      13.43re       0.06cp         0avio     63715k
colord                                  2      52.01re       0.00cp         0avio     89720k
geoclue                                 1       1.01re       0.00cp         0avio     70608k
jellyfin                               12       0.00re       0.00cp         0avio     39631k
man                                     1       0.00re       0.00cp         0avio      3124k
kernoops                                4     104.12re       0.00cp         0avio      3270k
sshd                                    1       0.05re       0.00cp         0avio      3856k
whoopsie                                1       0.00re       0.00cp         0avio      8552k

```

##### 3.3、打印用户 ID 和命令名称

对于账户文件中的每个命令，使用 `-u` 标志打印用户 ID 和命令名称。

```
$ sa -u

```

示例输出：

```
root       0.00 cpu      693k mem      0 io accton
root       0.00 cpu     3668k mem      0 io systemd-tty-ask
root       0.00 cpu     3260k mem      0 io systemctl
root       0.01 cpu     3764k mem      0 io deb-systemd-inv
root       0.00 cpu      722k mem      0 io acct.postinst
root       0.00 cpu      704k mem      0 io rm
root       0.00 cpu      939k mem      0 io cp
root       0.00 cpu      704k mem      0 io rm
root       0.00 cpu      951k mem      0 io find
root       0.00 cpu      911k mem      0 io gzip
root       0.00 cpu      722k mem      0 io sh
root       0.00 cpu      748k mem      0 io install-info
root       0.00 cpu      911k mem      0 io gzip
[...]

```

如需更多详细信息，请参考手册页：

```
$ man sa

```

#### 4、dump-acct 和 dump-utmp 命令

`dump-acct` 实用工具将 accton 格式的输出文件显示为人类可读的格式。

```
$ dump-acct /var/account/pacct

```

`dump-utmp` 将 utmp 文件显示为人类可读的格式。

```
$ dump-utmp /var/run/utmp

```

如需了解更多详情，请参考手册页：

```
$ man dump-acct

```

```
$ man dump-utmp

```

#### 5、accton 命令

`accton` 命令将允许你开启或关闭记账。

要开启进程记账，请运行：

```
$ accton on

```

要关闭它，运行：

```
$ accton off

```

如需了解更多详情，请参考手册页：

```
$ man accton

```

### 总结

每个 Linux 管理员都应该知道 GNU 记账实用程序，以便注意所有用户的行为。在故障排除时，这些实用程序会非常有帮助。

### 资源

* [GNU 记账实用程序官网](https://www.gnu.org/software/acct/manual/accounting.html)

*（题图：MJ/da3f7e79-2a53-4121-a2ed-d63a22c3d3f4）*

---

via: <https://ostechnix.com/monitor-user-activity-linux/>

作者：[sk](https://ostechnix.com/author/sk/) 选题：[lkxed](https://github.com/lkxed) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


如何在 Bash 脚本中添加注释

Summary: 你有要说明的地方吗？请将它们添加到你的 Bash 脚本中。

你有要说明的地方吗？请将它们添加到你的 Bash 脚本中。

![](/data/attachment/album/202310/19/113658dld7b9987xa89l99.jpg)

>
> 你有要说明的地方吗？请将它们添加到你的 Bash 脚本中。
>
>
>

在 Bash 脚本中添加注释是保持代码整洁且易于理解的最有效方法之一。

你可能会问为什么。

假设你的脚本包含一个复杂的正则表达式或多个复杂的代码块，在这种情况下，你可以添加注释，以便其他开发人员或你可以了解该代码块的含义。

注释掉部分代码也有助于调试脚本。

在本教程中，我将引导你了解在 Bash 脚本中添加注释的三种方法：

* 单行注释
* 行内评论
* 多行注释

那么让我们从第一个开始。

### Bash 中的单行注释

要添加单行注释，你必须将哈希符号（`#`）放在行的开头并编写注释。

这是一个简单的例子：

```
#!/bin/bash
# This is a comment
echo "Hello, World!"

```

执行时，注释将被忽略，当我执行上面的命令时，它看起来像这样：

![](/data/attachment/album/202310/19/113726gw754x4v79jws4al.png)

>
> ? `#` 注释规则的唯一例外是脚本开头的 `#!/bin/bash` 行。它称为 [释伴](/article-3664-1.html)，用于指定运行脚本时要使用的解释器。有不同的 Shell，语法也可能不同。因此，一个好的做法是指定脚本是为哪个 Shell 编写的。例如，如果是 ksh，则可以使用 `#!/bin/ksh`.
>
>
>

### Bash 脚本中的内联注释

或者，你可以将注释放在代码块内以记录该特定行的用途。

>
> ? `#` 之后的任何内容在该行结束之前都不会执行，因此请确保在代码末尾添加注释。
>
>
>

这是一个简单的例子：

```
#!/bin/bash
echo "Hello, World!" #Prints hello world

```

![](/data/attachment/album/202310/19/113726w6ig6u896aara8er.png)

### Bash 中的多行注释

>
> ? Bash 中没有内置的多行注释功能。但是，有一些解决方法可以实现多行注释效果。
>
>
>

顾名思义，Bash 脚本中的多行注释允许你在多行中编写注释，或者通过将它们放在多行注释部分来阻止执行代码块：

1. 在每行的开头使用 `#`
2. [冒号表示法](https://stackoverflow.com/questions/3224878/what-is-the-purpose-of-the-colon-gnu-bash-builtin)（使用冒号后跟单引号）
3. 现场文档（使用 `<<` 后跟分隔符）

那么让我们从第一个开始。

#### 1、对块注释的每一行使用 `#`

如果你的目的是解释脚本的一部分，我建议使用此方法。毕竟，`#` 才是真正的注释功能。

这也是许多开发人员使用的方法。

假设你必须在一开始就解释脚本的用途、作者信息或许可信息。你可以这样写：

```
#!/bin/bash

######################################
## This script is used for scanning ##
## local network                    ##
## Licensed under GPL 2.0           ##
######################################

这个 Bash 脚本的其它部分……

```

当你想说明 Bash 脚本的行为方式时这不错。如果你正在调试 Bash 脚本并希望隐藏部分脚本，则在所需代码的每一行开头添加 `#` 并在调试后将其删除是一项耗时的任务。

接下来的两节将帮助你做到这一点。

#### 2、冒号表示法

要使用冒号表示法，请在 `: '` 和结束的 `'` 之间编写块注释，如下所示：

```
#!/bin/bash

: '
This is how you can use colon notation
And this line too will be ignored
'
echo "GOODBYE"

```

当你执行上面的脚本时，它应该只打印 `GOODBYE`。

![](/data/attachment/album/202310/19/113727fuuqjuvj7vwjjvm7.png)

#### 3、现场文档

到目前为止，这是在 Bash 中编写多行注释的最流行的方法，你可以使用 `<<` 后跟分隔符（一组用于指定注释开始和结束的字符）。

（LCTT 译注：在编程领域，“**here document**” 是一个常见的术语，特指在脚本语言（如 Perl、Bash）中，能够直接在代码内部嵌入并处理一个数据块或文本串的技术。尽管传统上我们将它翻译为“嵌入式文档” 或不翻译，但这个译法似乎并不能完全地体现出原文的感觉和含义。为了让这个概念变得更为直观和易理解，我们建议将 “here document” 翻译为 “**现场文档**”。“现场”相比于“嵌入式”，更好的传达了文档就在代码的当前位置，或代码“现场”的含义。这样的译法也与原文 “here document” 中 “here”（这里）的含义更为契合。我们希望这个译法能够在未来得到更广泛的使用和认可，让编程的世界因语言的精准而变得更美好。PS., 该译法和解释得到了 ChatGPT 的建议和生成。）

使用方法如下：

```
#!/bin/bash

<<DELIMITER
Comment line 1
Comment line 2
DELIMITER

echo "Hello, World!"

```

还困惑吗？ 这是一个简单的例子：

```
#!/bin/bash

<<COMMENT
This is a multi-line comment using a here document.
You can add as many lines as you want between <<COMMENT and the terminating keyword.
This block won't be executed by the shell.
COMMENT

echo "Hello, World!"

```

在上面的示例中，我使用了 `COMMENT` 作为分隔符，但你可以使用任何内容，但要确保它从注释中脱颖而出，否则会造成混乱。

当我执行上面的脚本时，它给出了以下输出：

![](/data/attachment/album/202310/19/113728w887lssls0j0yaml.png)

正如你所看到的，它忽略了从 `<<COMMENT` 到 `COMMENT` 的所有内容。

我希望本指南对你有所帮助。

*（题图：MJ/7c2a3ef4-5256-405e-b757-23e0ba1f0bc5）*

---

via: <https://itsfoss.com/bash-comments/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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