分类 技术 下的文章

在这篇文章中,我们将介绍如何在笔记本电脑或台式机上一步一步地安装 elementary OS 7,并附有截图。它基于最新和稳定的 Ubuntu 22.04 LTS。

elementary OS 7 的代号为 “Horus”,并带来了很多改进,例如:

  • 改进了 AppCenter 和安装所有需要的应用。
  • 改进了侧载和可选商店(Flathub)的体验。
  • 最新的 GNOME Web 43,支持创建网络应用。
  • 快速获得操作系统和应用的更新
  • 电源配置文件管理
  • 应用描述的改进

elementary OS 7 的系统要求

  • 双核 64 位处理器
  • 4GB 内存或更多
  • 32GB 硬盘
  • 互联网接入
  • 可启动的 USB 驱动器(4GB 存储空间)

闲话少说,让我们进入安装步骤:

1)下载 elementary OS 7

使用下面的官方网址来下载 ISO 文件。

下载 elementary OS 7 ISO

ISO 文件下载完成后,将其刻录到 USB 驱动器,并使其可启动。

在 Windows 操作系统中,用 Rufus 制作可启动的 USB 驱动器。在 Linux 中,请参考以下网址:

如何在 Ubuntu/Linux Mint 上创建可启动的 USB 驱动器

2)用可启动介质启动系统

现在用可启动的 USB 驱动器启动目标系统。从 BIOS 设置中把启动介质从硬盘改为 USB。当系统用 USB 驱动器启动时,我们将看到以下页面。

3)选择安装语言

选择你喜欢的语言,然后点击“ 选择 Select ”。

4)选择键盘布局

在这一步,你将被要求选择键盘布局,然后点击“ 选择 Select ”。

5)尝试或安装 elementary OS

我们将看到下面的页面,在这里我们必须选择安装类型。它给了我们以下选项:

  • 试用演示模式 Try Demo Mode – 试用 elementary OS 7 而不安装
  • 擦除磁盘并安装 Erase disk and Install – 安装程序将擦除整个磁盘并自动创建所需分区。
  • 自定义安装(高级) Custom Install (Advanced) – 它将给我们一个选项来创建自定义分区。

在这篇文章中,我将使用第二个选项(擦除磁盘并安装)。

点击“ 擦除磁盘并安装 Erase disk and Install ”。

在下面的屏幕上,选择要安装操作系统的驱动器,然后点击“ 擦除并安装 Erase and Install ”。

如果你想对设备的驱动器进行加密,那么点击“ 选择密码 Choose Password ”,否则点击“ 不加密 Don’t Encrypt ”。

6)安装进度

正如我们在下面看到的,安装已经开始,并且正在进行中。

安装完成后,安装程序将提示重启系统。

点击“ 重启设备 Restart Device ”,不要忘记从 BIOS 设置中改变启动介质,以便用磁盘启动。

7)创建本地用户并设置主机名

当系统在安装后启动时,系统会提示你输入本地用户的详细信息和系统的主机名。

根据你的要求指定这些细节。

点击“ 完成设置 Finish Setup ”。

在下面的页面中,你将被提示输入你在上面创建的本地用户凭证。

输入凭证后,点击回车。

8)elementary OS 7 欢迎页

我们将看到下面的欢迎页。

选择“ 跳过所有 Skip All ”。

点击“ 开始使用 Get Started ”,然后我们会看到下面的桌面。

很好,这表明你已经成功地在系统上安装了 elementary OS 7。这就是本指南的全部内容,请探索这个令人兴奋的 Linux 发行版并享受其中的乐趣吧?。


via: https://www.linuxtechi.com/elementary-os-7-installation-guide/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Qiskit 是一个开源 SDK,借助它可以免费访问量子模拟器和硬件资源。

 title=

经典计算机是基于二进制数的,二进制数有 0 和 1 两种形式。这并不是由于二进制逻辑系统比有更多基本状态的逻辑系统(甚至包括模拟计算机)有内在优势。而是,对电路元件的开关操作很容易实现,而且借助先进的半导体技术,可以制造出体积小且价格低廉的计算机。

但它们并非没有局限性。经典计算机求解某些问题的效率并不高,主要是那些时间或内存成本随着问题的规模(O)呈指数级增长的问题。我们把这种问题称为 O(2 n)(大 O 表示法)。

大部分现代加密方法甚至依赖这一特性。把两个大素数相乘,耗费的成本低(O(n 2)),但进行反向操作就非常耗时。所以只要使用的数字足够大,对它分解质因数就非常困难。

进入量子世界

量子计算的基础数学和力学知识不在本文的探讨范围内。然而,还是有一些基础知识需要预先说明。

量子计算机以 量子比特 代替了二进制比特 —— 量子比特是体现量子属性的可控计算单元。构成量子比特的通常是超导元件,或自然界中存在的量子实物(例如电子)。量子比特可以以“ 叠加 superposition ”状态存在,叠加态是 0 和 1 以某种方式组合起来的复杂状态。你可能听说过,量子比特既为 1 又为 0,这种说法并不准确。真实情况是,如果进行测量,量子比特的状态会坍缩为 0 或 1。在数学上,量子比特未测量的状态可以看作 布洛赫球面 Bloch sphere 的几何表示上的一个点。

尽管对习惯使用经典计算机的任何人来说,叠加态是一个全新的概念,但一个量子比特本身并没有什么趣味性。量子计算的第二个概念是“ 干涉 interference ”。真正的量子计算机本质上是统计性质的。量子算法对干涉图案进行编码,增加了可以测量编码方案的状态的概率。

叠加和干涉的概念虽然新颖,但在物理世界中也有对应的现象。而量子力学中的“ 纠缠 entanglement ”却没有,但它是实现指数级量子加速的真正关键。借助量子纠缠,对一个微观粒子的测量可以影响后续对其他被纠缠的粒子的测量结果 —— 即使是那些物理上没有关联的粒子。

量子计算能做什么?

今天的量子计算机就其包含的量子比特的数量而言是相当小的,只有几十到几百个。因此,虽然人们不断开发新的算法,但比同级别经典计算机运行得快的硬件还未问世。

但是在很多领域,量子计算机能带来很大好处。例如,它能提供较好的方法来模拟自然界的量子系统,例如分子,其复杂程度超过了经典计算机的建模能力。量子计算也跟线性代数有关,它是机器学习和很多其他现代优化问题的基础。因此,我们有理由认为量子计算也可以很好地适用于此。

在量子算法相对于普通算法的优势方面,Shor 算法 是经常被提及的例子,它在较早时候就用于分解质因数。它由 MIT 的数学家 Peter Shor 于 1994 年发明,量子计算机目前还不能在较大的问题上运行该算法。但它已经被证明可以在 O(n 3) 时间内完成工作,而不像经典算法那样需要指数级的时间。

从使用 Qiskit 开始

你可能在想:“我身边没有量子计算机,但我很想尝试一下。能做到吗?”

我们来了解一下名称为 Qiskit 的开源项目(采用 Apache 2.0 许可证)。它是一个软件开发包(SDK),用于访问 IBM 量子实验室的量子计算模拟器和物理硬件(免费)。你只需要注册获得一个 API 密钥。

当然,如果要深入研究 Qiskit,需要很多其他方面的知识,线性代数只是其中一部分,这些都远远超出了本文的范围。如果你需要深入学习,网上有很多免费资源,其中也不乏完整的教科书。然而,体验一下也很简单,只需要一些 Python 和 Jupyter notebook 的基础知识即可。

为了增加趣味性,我们全程使用 Qiskit 教程 的 “Hello, World!” 程序:

首先,安装教程的相关工具和部件:

pip install git+https://github.com/qiskit-community/qiskit-textbook.git#subdirectory=qiskit-textbook-src

下一步,进行软件包的导入:

from qiskit import QuantumCircuit, assemble, Aer
from math import pi, sqrt
from qiskit.visualization import plot_bloch_multivector, plot_histogram

Aer 是本地模拟器。Qiskit 包括四个组件:Aer、基础组件 Terra、用于实际的量子系统上的噪音和错误处理的 Ignis,以及用于算法开发的 Aqua

# Let's do an X-gate on a |0> qubit
qc = QuantumCircuit(1)
qc.x(0)
qc.draw()

虽然底层数学原理还涉及到矩阵乘法,量子计算机中 X 门也可以认为类似于经典计算机中的非门。(事实上,它经常被称为 "非门")。

现在,运行并测量它。结果跟你预期的一样,因为量子比特的初始状态是 |0>,接着反转,然后被测量。(使用 |0>|1> 与经典计算机中的比特区分开来。)

# Let's see the result
svsim = Aer.get_backend('statevector_simulator')
qobj = assemble(qc)
state = svsim.run(qobj).result().get_statevector()
plot_bloch_multivector(state)

 title=

布洛赫球体显示了预期的运行结果

结论

在某些方面,你可以把量子计算看作用于经典计算机的一种独特的协处理器,跟 GPU 和 FPGA 一样。不同的是,在可预见的未来,量子计算机可以被用户像网络资源一样访问到。另一个差异是,它们的工作有本质的不同,所以不像很多其他你熟悉的加速器那样。因此,人们对算法开发如此感兴趣,并投入大量资源来研究量子在何时何地的性能最好。了解一下这些东西也无妨。


via: https://opensource.com/article/21/6/qiskit

作者:Gordon Haff 选题:lujun9972 译者:cool-summer-021 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本指南介绍了 systemd 的 journalctl 工具及其各种命令的基础知识。你可以使用这些命令对 Linux 中的桌面和服务器日志进行故障诊断。以下是如何使用 journalctl 查看和分析 systemd 日志的不同例子。

简介

很多人说 systemd 不好,它对系统的影响很大,这也是一个有争议的话题。但你不能否认的是,它提供了一套完善的工具来管理和排除系统故障。想象一下,当你遇到一个没有 GUI 的损坏系统时,你可能会把启动和 GRUB 弄得一团糟。在这种情况下,你可以从一个 立付 Live 系统启动,挂上你的 Linux 分区,然后浏览 systemd 的日志,找出问题所在。

systemd 有三个基本组件,如下所示:

  • systemd:Linux 操作系统的系统和服务管理器。
  • systemctl :该命令用于反观和控制 systemd 系统和服务管理器的状态。
  • systemd-analyze:该命令提供系统启动时的性能统计,并从系统和服务管理器中检索其他状态和跟踪信息。

除了这三个服务外,systemd 还提供其他服务,如 journald、logind、networkd 等。在本指南中,我们将讨论 systemd 的 journald 服务。

journald - systemd 日志服务

根据设计,systemd 提供了一个集中的方式来处理所有来自进程、应用程序等的操作系统日志。所有这些日志事件都由 systemd 的 journald 守护进程来处理。journald 守护进程收集所有来自 Linux 操作系统各处的日志,并将其作为二进制数据存储在文件中。

以二进制数据集中记录事件、系统问题的好处有很多。例如,由于系统日志是以二进制而不是文本形式存储的,你可以以文本、JSON 对象等多种方式进行转译,以满足各种需求。另外,由于日志是按顺序存储的,通过对日志的日期/时间操作,超级容易追踪到单个事件。

请记住,journald 收集的日志文件数以千行计,而且不断更新每次开机、每个事件。因此,如果你有一个长期运行的 Linux 操作系统,日志的大小应该以 GB 为单位。由于有着数以千计的日志,最好用基本命令进行过滤,以了解更多系统问题。

journald 配置文件

journald 的配置文件存在于以下路径中。它包含了关于如何进行日志记录的各种标志。你可以看一下这个文件,并进行必要的修改。但我建议不要修改这个文件,除非你知道自己在做什么。

/etc/systemd/journald.conf

journald 存储二进制日志文件的地方

journald 以二进制格式存储日志。它们被保存在这个路径下的一个目录中:

/var/log/journal

例如,在下面的路径中,有一个目录包含了迄今为止的所有系统日志。

journalctl log file path

不要使用 cat 命令,也不要使用 nanovi 来打开这些文件。它们(是二进制的),无法正常显示。

使用 journalctl 来查看和分析 systemd 日志

journald 基本命令

查看 journald 日志的基本命令是:

journalctl

journalctl

该命令提供了所有应用程序和进程的日志条目,包括错误、警告等。它显示的列表中,最旧的日志在顶部,当前的日志在底部。你需要不断按回车键来逐行滚动浏览。你也可以使用 PAGE UPPAGE DOWN 键来滚动。按 q 键可以退出这个视图。

如何以不同时区的时间查看日志条目

默认情况下,journalctl 以当前系统时区显示日志的时间。然而,你可以很容易地在命令中提供时区,将同一日志转换为不同的时区。例如,要以 UTC 查看日志,请使用以下命令:

journalctl --utc

journalctl --utc

如何在日志中只查看错误、警告等信息

系统产生的日志有不同的优先级。有些日志可能是可以忽略的警告,有些可能是重要的错误。你可能想只看错误,不看警告。这也可以用下面的命令来实现。

要查看紧急系统信息,请使用:

journalctl -p 0

journalctl -p 0

错误代码:

0: 紧急情况
1: 警报
2: 危急
3: 错误
4: 警告
5: 通知
6: 信息
7:调试

当你指定错误代码时,它显示该等级及更高的所有信息。例如,如果你指定下面的命令,它会显示所有优先级为 2、1 和 0 的信息:

journalctl -p 2

如何查看特定启动的日志

当你运行 journalctl 命令时,它会显示当前启动的信息,即你正在运行的会话中的信息。但也可以查看过去的启动信息。

在每次重启时,日志都会持续更新。journald 会记录不同启动时的日志。要查看不同启动时的日志,请使用以下命令。

journalctl --list-boots

journalctl list-boots

  • 第一个数字显示的是 journald 的唯一的启动跟踪号码,你可以在下一个命令中使用它来分析该特定的启动。
  • 第二个数字是启动 ID,你也可以在命令中指定。
  • 接下来的两个日期、时间组合是存储在相应文件中的日志的时间。如果你想找出某个特定日期、时间的日志或错误,这就非常方便了。

要查看一个特定的启动号码,你可以选择第一个启动跟踪号码或启动 ID,如下所示。

journalctl -b -45
journalctl -b 8bab42c7e82440f886a3f041a7c95b98

journalctl -b 45

你也可以使用 -x 选项,在显示屏上添加 systemd 错误信息的解释。在某些情况下,这是个救命稻草。

journalctl -xb -p 3

journalctl -xb

如何查看某一特定时间、日期的日志记录

journalctl 功能强大,可以在命令中提供类似英语的参数,用于时间和日期操作。

你可以使用 --since 选项与 yesterdaytodaytomorrownow 组合。

下面是一些不同命令的例子。你可以根据你的需要修改它们。它们是不言自明的。以下命令中的日期、时间格式为 "YYYY-MM-DD HH:MM:SS"

journalctl --since "2020-12-04 06:00:00"
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
journalctl --since yesterday
journalctl --since 09:00 --until "1 hour ago"

journalctl --since 09:00 --until

你也可以将上述内容与错误级别开关结合起来。

如何查看内核特定的日志记录

Linux 内核信息也可以从日志中提取出来。要查看当前启动时的内核信息,请使用以下命令:

journalctl -k

如何查看某个服务、PID 的日志

你可以从 journald 日志中过滤出某个 systemd 服务单元的特定日志。例如,如果要查看 NetworkManager 服务的日志,请使用下面的命令。

journalctl -u NetworkManager.service

journalctl NetworkManager service

如果你不知道服务名称,可以使用下面的命令来列出系统中的 systemd 服务。

systemctl list-units --type=service

如何查看用户、组的日志

如果你正在分析服务器日志,在多个用户登录的情况下,这个命令很有帮助。你可以先用下面的命令从用户名中找出用户的 ID。例如,要找出用户 debugpoint 的 ID:

id -u debugpoint

然后使用 _UID 选项指定该 ID 与来查看该用户产生的日志。

journalctl _UID=1000 --since today

journalctl _UID

同样地,使用 _GID 选项也可以查到用户组的情况。

如何查看一个可执行文件的日志

你也可以查看某个特定程序或可执行文件的日志。例如,如果你想找出 gnome-shell 的信息,你可以运行以下命令。

journalctl /usr/bin/gnome-shell --since today

journalctl gnome-shell

结束语

希望本指南能帮助你使用 journalctl 查看分析 Linux 桌面或服务器上的 systemd 日志,排除故障。如果你知道如何使用这些命令,systemd 日志管理的功能非常强大,它能让你在调试时的生活变得轻松一些。现在所有主流的 Linux 发行版都使用 systemd。Ubuntu、Debian、Fedora、Arch 它们都使用 systemd 作为其默认的操作系统组件。如果你想了解不使用 systemd 的 Linux发行版,你可能想看看 MX-Linux、Gentoo、Slackware、Void Linux。


via: https://www.debugpoint.com/systemd-journalctl/

作者:Arindam 选题:lkxed 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用 WebAssembly 开发有很多不同的方向,这取决于你已经知道的东西和你想建立的东西。

在过去的几十年里,Web 浏览器作为最流行的跨平台应用经久不衰。从另一个角度看浏览器,它是最受欢迎的应用交付平台之一。想想你使用的所有网站,它们取代了你过去用桌面上运行的软件进行的活动。你仍然在使用软件,但你是通过浏览器来访问它,而且是在别人的 Linux 服务器上运行。在优化我们所有人使用的软件的永恒努力中,软件开发世界早在 2019 年就引入了 WebAssembly,作为通过 Web 浏览器运行编译代码的一种方式。应用的性能比以往任何时候都要好,而且可以生成 WebAssembly 编码的语言远不只是通常的 PHP、Python 和 JavaScript。

一个目标和一种语言

关于 WebAssembly 的一个强大但也最令人困惑的地方是,“WebAssembly” 这个词既指一种语言,也指一个目标。WebAssembly 是一种汇编语言,但没有多少人选择直接用汇编写代码。即使是汇编语言,最终也会被转换为二进制格式,这也是计算机运行代码的要求。这种二进制格式也被称为 WebAssembly。不过这很好,因为这意味着你可以用你选择的语言来写一些最终以 WebAssembly 交付的东西,包括 C、C++、Rust、Javascript 和其他许多语言。

进入 WebAssembly 的途径是 Emscripten,这是一个 LLVM 编译器工具链,可以从你的代码中产生 WebAssembly。

安装 Emscripten

要在你的 Linux 或 macOS 电脑上安装 Emscripten,请使用 Git:

$ git clone https://github.com/emscripten-core/emsdk.git

改变目录进入 emsdk 目录并运行安装命令:

$ ./emsdk install latest
$ ./emsdk activate latest

Emscripten 工具链中的所有内容都安装在 emsdk 目录下,对系统的其他部分没有影响。由于这个原因,在使用 emsdk 之前,你必须 源引 source 它的环境:

$ source ./emsdk_env.sh

如果你打算经常使用 emsdk,你也可以在 .bashrc 中加入环境设置脚本。

要在 Windows 上安装 Emscripten,你可以在 WSL 环境下运行 Linux。

请访问 Emscripten 网站 了解更多安装信息。

Hello World

下面是一个用 C++ 编写的简单的 “Hello World” 应用。

#include <iostream>

using namespace std;

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

先把它作为你的系统的标准二进制文件来测试:

$ g++ hello.cpp -o world
$ ./world
Hello world

看到它像预期的那样工作,用 emcc 把它构建为 WebAssembly:

$ emcc hello.cpp -o world.html

最后,用 emrun 运行它:

$ emrun ./world.html

emrun 工具是一个用于本地测试的方便命令。当你在服务器上托管你的应用时,emrun 就没有必要了。

学习更多关于 WebAssembly 的知识

使用 WebAssembly 开发可以有很多不同的方向,这取决于你已经知道的东西和你想建立的东西。如果你了解 C 或 C++,那么你可以用这些来写你的项目。如果你正在学习 Rust,那么你可以使用 Rust。甚至 Python 代码也可以使用 Pyodide 模块来作为 WebAssembly 运行。你有很多选择,而且没有错误的开始方式(甚至有 COBOL 到 WebAssembly 的编译器)。如果你渴望开始使用 WebAssembly,

请下载我们免费的电子书

via: https://opensource.com/article/23/2/webassembly-guide

作者:Seth Kenlon 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这是一份关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。

这篇文章是 Linux 命令学习系列的一部分。

zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。

这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩 zip 文件的软件,也提供提取它们的功能。

由于它很流行,几乎所有的操作系统都内置了这个功能。

在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。

Linux 中的 Zip 命令示例

语法

在 Linux 中,你需要使用的压缩文件的程序名称是 zip。下面是基本的语法:

zip [压缩文件名] file1 file2 file3

以下是正式的语法:

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

理想情况下,zip 命令应该被安装在所有主流的 Linux 发行版中。如果没有,使用下面的命令来安装它。

在 Debian、Ubuntu 和相关发行版上安装

sudo apt install zip

在 Fedora、基于 RHEL 的系统上安装

sudo dnf install zip

在 Arch Linux 上安装

pacman -S zip

让我们继续看一些例子。

如何压缩文件和文件夹

我的测试目录中有以下三个文件。它们是 file1.txtfile2.txtfile3.txt。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip 的压缩包,用下面的命令就可以了。

zip myfiles.zip file1.txt file2.txt file3.mp3

输出:

adding: file1.txt (stored 0%)
adding: file2.txt (stored 0%)
adding: file3.mp3 (deflated 13%)

Linux 中基本压缩命令的输出

这里你应该记住几个要点。

  • 当创建一个 zip 文件时,你应该有对当前目录的修改权限。
  • zip 文件格式不包含权限,即读(4)、写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。
  • 如果你想使用带有权限的 zip,可以尝试使用 tar 命令(将在后面的教程中解释)。
  • 在上面的输出中,zip 命令显示了被添加到存档中的文件名和压缩方法。
  • 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,zip 会在最后加上 .zip。

当你操作成百上千的文件时,为了减少终端中的输出,你可以使用 -q 参数来抑制 zip 命令中的输出:

zip -q myfiles.zip file1.txt file2.txt file3.txt

递归压缩子文件夹

zip 命令的 -r 选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。

下面的命令创建了一个包含 my_folder 内所有内容和子目录的压缩文件:

zip -r myfolder.zip my_folder

你也可以使用通配符(*)在你的压缩文件中包含特定类型的文件:

zip -0 my_movies.zip *.mp4

混合添加文件和目录到压缩文件

有了以上所有的选项,zip 命令允许你把文件和目录一起作为参数指定。

zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2

压缩算法

zip 压缩的默认输出包含两个不同的词,即 deflatestore。zip 默认使用的压缩方法是 deflate。如果它成功地压缩了文件,那么输出显示 deflate。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 store

目前有许多压缩算法。其中一种是 bzip2 压缩法,在 Linux 中的 zip 命令支持它。你可以指定压缩算法作为一个命令选项来使用。使用选项 -Z,后面跟上算法名称,如下所示:

zip -r -Z bzip2 myfolder.zip my_folder

压缩级别

zip 命令还允许你指定压缩级别。压缩级别是指你想让 zip 优化多少来减少包的大小。它是一个从 0 到 9 的数值范围。压缩级别为 9 的值是最高的压缩。默认值是 6。

记住,如果你用 zip 压缩成千上万个大小不一的文件,它可能会占用较多的系统资源,并花费大量的时间。所以,如果你在程序中使用它,或者用 shell 脚本处理大量的文件,请遵循正确的编程标准。

zip -9 -r myfolder.zip my_folder

用密码保护一个压缩文件

你也可以用下面的 -e 选项对压缩文件进行密码保护:

zip -e -r myfolder.zip my_folder

运行该命令后,它将要求输入密码。

注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。

分割较大的压缩文件

许多应用程序、服务器和文件共享可能包含固定大小的文件上传限制。例如,你有一个 10GB 的文件,但服务只允许每个文件 1GB。使用 zip-s 选项,你可以将其压缩并分割成几块进行上传。

zip -s 1g -r myfolder.zip my_folder

总结

你学到了一些 zip 命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。

同时,你可以在 zip 手册 中了解更多。


via: https://www.debugpoint.com/zip-command-linux-examples/

作者:Arindam 选题:lkxed 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。

本指南有两部分:第一部分是关于安装基本的 Arch 系统;第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。

什么是 GNOME 桌面?

GNOME 是一个流行的桌面环境,是如 Ubuntu 和 Fedora 等许多基于桌面的顶级 Linux 发行版的默认桌面。几乎所有的定制版都提供了一个 GNOME 桌面版本。

GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通和高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的一个。它不会在你工作时妨碍你。因此,尽管有许多关于 GNOME 3(目前的版本)速度慢、资源重等争议,它仍然是许多人的流行和默认选择。

说了这么多,让我们来看看如何在裸机 Arch 中安装 GNOME 桌面。

在 Arch Linux 中安装 GNOME 桌面

第一部分:安装 Arch Linux

如果你已经安装了 Arch Linux,你可以跳过这一步,直接进入下面安装 GNOME 桌面部分。

要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问 该指南,了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。

本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 archinstall 脚本。完成后,回来通过第二部分的步骤继续 GNOME 安装。

现代方式:使用 archinstall 脚本安装(推荐)
传统方式:下载 Arch Linux

从下面的链接下载 Arch Linux 的 .iso 文件。它也提供了磁力链接和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。

下载 Arch Linux

如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像,那么你就不需要把它写入 U 盘。

启动和配置分区

从 Arch Linux ISO 启动后,你必须运行一系列的命令来安装基本系统。

首先,运行下面的命令,找出设备标识符。

fdisk -l

之前的 fdisk -l

然后用设备标识符,运行下面的命令,开始对你的磁盘进行分区。请确保根据你的系统改变 /dev/sda

cfdisk /dev/sda

在下一个提示中选择 label type = dos

选择自由空间,并从底部选择 “ 新建 New ” 选项。在这个例子中,我将创建三个分区,如下图所示:

/dev/sda1 - 1G - for /boot
/dev/sda2 - 5G - for root
/dev/sda3 - 1G - for swap

cfdisk

在下一个屏幕中,提供引导分区的分区大小(在这个例子中,我给出了 1GB)。选择它作为主分区。

对大小为 5GB 的主根分区重复同样的步骤。

改变为交换分区类型

用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择 “ 类型 Type ”,并用 “Linux Swap/Solaris” 选项将其标记为交换分区。

cfdisk 中的最终分区列表

一旦完成,使用底部的 “ 写入 Write ” 选项将变化写入磁盘。确保你在写入前做了备份,因为这是你系统中的一个永久性变化。

在你继续之前,运行下面的命令来检查。你可以看到在这个例子中,有三个分区被列出。

fdisk -l

fdisk 中的最终分区列表

依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 /dev/sda1/dev/sda2

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3

完成后,装载系统并创建必要的目录:

mount /dev/sda2 /mnt
mkdir /mnt/boot /mnt/var /mnt/home
mount /dev/sda1 /mnt/boot

同样,确保你根据你的系统改变 /dev/sda1/dev/sda2/dev/sda3

准备文件系统

安装基础系统

我希望你已经连接到互联网了。如果没有,请尝试使用 USB 网卡或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照 该指南 使用 Arch Linux 安装程序配置一个无线或 Wi-Fi 网络。

依次运行下面的命令,将基本系统安装到已安装的分区中。下载的大小约为 400MB。

pacman -Syy
pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub

安装基本系统

一旦完成,就会生成文件系统表,没有它你就无法启动系统。

genfstab -U /mnt >> /mnt/etc/fstab
配置基础系统

依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网:

arch-chroot /mnt
nano /etc/locale.gen

通过去掉开头的 # 来取消对你所选择的 语言环境 locale 的注释。在本指南中,我选择了 en_US.UTF-8 UTF-8,按 CTRL+O、回车和 CTRL+X 退出 nano。

本地化

使用以下方法生成语言环境:

locale-gen

如果你不想手动去 /etc/locale.gen 设置语言,也可以使用以下命令设置语言:

echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

设置当地的时区:

ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区:

ls /usr/share/zoneinfo
ls /usr/share/zoneinfo/America

设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的想法,将 arindam-pc 改为任何主机名:

hwclock --systohc --utc
echo arindam-pc > /etc/hostname
systemctl enable dhcpcd

下一步是设置根用户的密码,创建一个管理员用户,并在 sudoers 文件中添加该用户。

依次按照下面的命令进行操作。请确保根据你的需要将用户名从 debugpoint 改为其他名称:

passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint

创建用户

打开 sudoers 文件,添加以下几行:

nano /etc/sudoers

添加以下几行。由于你已经创建了 root 用户,该条目应该已经有了:

root ALL=(ALL) ALL
debugpoint ALL=(ALL) ALL

更改 sudoer 文件

依次使用如下命令安装 Grub,设置初始化 Ramdisk 环境,卸载系统:

grub-install /dev/sda 
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linux
exit

配置 Grub

然后重新启动你的系统。如果你是在一个物理系统中安装的,在这一步要拔掉 USB 介质。

umount /mnt/boot
umount /mnt
reboot

你现在已经成功地安装了 Arch Linux 基本系统。现在是安装完整的 GNOME 桌面的时候了。

Arch 安装好了

第二部分:在 Arch Linux 中安装 GNOME

重启后,从 Grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。

所有的命令都使用默认值,即在要求时按回车。

安装 Xorg 服务器。安装大小约为 80MB:

sudo pacman -S --needed xorg

安装显示管理器、GNOME 桌面。安装大小约为 300MB:

sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm

上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 “jack”、“noto-sans” 和 “xdg-portal-desktop-gnome”。

安装应用程序。这只是一个参考。你也可以安装你所需要的:

sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper

现在是时候把显示管理器和网络管理器作为服务启用了。这样,下次登录时,它们就可以由 systemd 自动运行。

systemctl enable gdm
systemctl enable NetworkManager

使用 reboot 命令重新启动系统:

reboot

Arch Linux 运行 GNOME 43 桌面

如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 漂亮而干净的 GNOME 43 桌面。

我希望这个指南能帮助你在裸机 Arch 安装 GNOME 桌面。


via: https://www.debugpoint.com/gnome-arch-linux-install/

作者:Arindam 选题:lkxed 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出