分类 技术 下的文章

在 Bash 基础系列的这一章中,学习如何向 Bash 脚本传递参数并使它们具有交互性。

来让 Bash 脚本有参数吧 ?

你可以通过向 Bash 脚本传递变量来使其更加有用和更具交互性。

让我通过示例详细向你展示这一点。

将参数传递给 Shell 脚本

当你运行 Shell 脚本时,你可以按以下方式向其中添加其他变量:

./my_script.sh var1 var2

在脚本内部,你可以使用 $1 作为第一个参数,$2 作为第二个参数,依此类推。

? $0 是一个特殊变量,保存正在执行的脚本的名称。

让我们通过一个实际的例子来看看。切换到保存练习 Bash 脚本的目录。

mkdir -p bash_scripts && cd bash_scripts

现在,创建一个名为 arguments.sh (我想不出更好的名称)的新 Shell 脚本,并向其中添加以下行:

#!/bin/bash

echo "Script name is: $0"
echo "First argument is: $1"
echo "Second argument is: $2"

保存文件并使其可执行。现在像往常一样运行脚本,但这次向其中添加任意两个字符串。你将看到屏幕上打印的详细信息。

? 参数由空格(空格、制表符)分隔。如果参数中有空格,请使用(英文)双引号将其引起来,否则它将被视为单独的参数。

Pass arguments to the bash scripting

? Bash 脚本最多支持 255 个参数。但对于参数 10 及以上,你必须使用花括号 ${10}${11}...${n}

正如你所看到的,$0 代表脚本名称,而其余参数存储在编号变量中。你还可以在脚本中使用一些其他特殊变量。

特殊变量变量描述
$0脚本名称
$1$2、……$9脚本参数
${n}脚本参数从 10 到 255
$#参数数量
$@所有参数
$$当前 Shell 的进程 ID
$!最后执行的命令的进程 ID
$?最后执行命令的退出状态
?️‍♀️ 修改上面的脚本以显示参数数量。

如果参数数量不匹配怎么办?

在上面的示例中,你为 Bash 脚本提供了两个参数并在脚本中使用了它们。

但是,如果你只提供一个参数或三个参数怎么办?

让我们实际做一下吧。

Passing fewer or more arguments to bash script

正如你在上面所看到的,当你提供的参数超出预期时,结果仍然是一样的。不使用其他参数,因此不会产生问题。

但是,当你提供的参数少于预期时,脚本将显示空白。如果脚本的一部分依赖于缺少的参数,这可能会出现问题。

接受用户输入并制作交互式 Bash 脚本

你还可以创建提示用户通过键盘提供输入的 Bash 脚本。这使你的脚本具有交互性。

read 命令提供了此功能。你可以这样使用它:

echo "Enter something"
read var

上面的 echo 命令不是必需的,但最终用户不会知道他们必须提供输入。然后用户在按回车键之前输入的所有内容都存储在 var 变量中。

你还可以显示提示消息并在单行中获取值,如下所示:

read -p "Enter something? " var

让我们看看它的实际效果。创建一个新的 interactive.sh Shell 脚本,内容如下:

#!/bin/bash

echo "What is your name, stranger?"
read name
read -p "What's your full name, $name? " full_name
echo "Welcome, $full_name"

在上面的示例中,我使用 name 变量来获取名称。然后我在提示中使用 name 变量,并在 full_name 变量中获取用户输入。我使用了两种使用 read 命令的方法。

现在,如果你授予执行权限,然后运行此脚本,你会注意到该脚本显示 What is your name, stranger?,然后等待你从键盘输入内容。你提供输入,然后它会显示 What's your full name 消息,并再次等待输入。

以下是供你参考的示例输出:

Interactive bash shell script

?️ 练习时间

是时候练习你所学到的东西了。尝试为以下场景编写简单的 Bash 脚本。

练习 1:编写一个带有三个参数的脚本。你必须使脚本以相反的顺序显示参数。

预期输出:

abhishek@itsfoss:~/bash_scripts$ ./reverse.sh ubuntu fedora arch
Arguments in reverse order:
arch fedora ubuntu

练习 2:编写一个脚本,显示传递给它的参数数量。

提示:使用特殊变量 $#

预期输出:

abhishek@itsfoss:~/bash_scripts$ ./arguments.sh one and two and three
Total number of arguments: 5

练习 3:编写一个脚本,将文件名作为参数并显示其行号。

提示:使用 wc 命令来计算行号。

你可以在社区中讨论你的解决方案。

很好! 现在你可以(传递)参数了 ? 在下一章中,你将学习在 Bash 中执行基本数学运算。

(题图:MJ/5a75aa2f-1cb1-4009-a4e6-683cf61bc892)


via: https://itsfoss.com/bash-pass-arguments/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

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

通过在 Linux 终端创建 ASCII 生日动画,让你所爱的人的特殊日子更加特别。

生日是特殊的日子,从亲朋好友那里收到生日祝福是非常令人满足和愉悦的。

作为 Linux 用户,你可以通过终端给朋友和家人带来一些酷炫的生日祝福。

这是我为 Abhishek 先生的生日制作的生日卡片(或者说动画)。

我们团队的每个人都非常喜欢它,所以我受到请求要按照它做一个教程。我很乐意满足请求,因为这可能对我们的读者有所帮助 ?

✋ 这个教程需要在终端中编辑配置文件。熟练使用 Linux 终端和命令会更容易理解和跟随本教程。

安装 PyBirthdayWish

PyBirthdayWish 是一个小型的 Python 程序,通过它你可以创建漂亮的终端生日祝福,还可以播放音乐!

这个程序本身在 Ubuntu 的默认软件仓库中不可用,你需要使用 Pip 进行安装。

PyBirthdayWish GitHub

首先,使用以下命令在 Ubuntu 中 安装 Pip

sudo apt install python3-pip

安装完 Pip 后,你可以克隆该存储库并安装该程序:

git clone https://github.com/hemantapkh/PyBirthdayWish.git && cd PyBirthdayWish && pip install -r requirements.txt

在他们的存储库中,你可以查看 .requirements.txt 文件,了解上述命令中所需的依赖项。

安装完成后,在你克隆的 PyBirthdayWish 目录中运行以下命令:

python3 PyBirthdayWish.py

这将要求你按下 F11 键,然后按回车键进入全屏模式,然后播放动画。

这里还有音乐,但这里没有展示。

它非常可定制化。让我展示一下你可以通过这个工具进行的各种级别的可选定制。

创建默认的生日祝福动画

在上述程序中,有三个用于动画的 Python 文件。它们是 example(默认)、artartwithstars。你可以打开这三个文件来了解其内容。

arts 目录的内容,其中包含默认和用户创建的 art 文件

现在,如果你想使用 artwithstars 文件代替默认的 example 文件,在 任何可用的文本编辑器 中打开 config.py,将 arts 的条目替换为所需的名称,然后保存,如下面的截图所示:

在配置文件中将动画设计文件更改为 "art with stars"

之后,在 PyBirthdayWish 目录中运行:

python3 PyBirthdayWish.py

你将得到新的动画效果。

创建自定义的生日祝福

如果你想打印你所爱的人的名字,而不是默认的文字,这需要一点耐心,因为你需要在不破坏原文件的情况下编辑 art 文件。

首先,备份你想要的设计 art 文件。即在同一个 arts 目录中将文件复制一份,并给它一个不同的名称,比如 friend.py

现在,用你选择的文本编辑器打开设计 art 文件。将文件中的文字替换为你需要的内容。最好使用符号 | _ \ / 等来创建文本和设计。你可以使用一个 在线工具将文字转换为 ASCII 艺术

复制了一个现有的设计文件,并添加了一个新的文字 "Friend"

? 输入一个字符将使动画的其余部分向前移动一个字符。同样,删除一个字符会使设计的其余部分向后移动一个字符。因此,如果删除一个字符,请添加一个空格。同样地,如果在某一行上添加了一个新字符,请删除一个空格。这应该实时进行,这样你就可以查看更改。这样,你就可以使剩余的设计匹配,并在完成时保持外观不变。

编辑完成后保存文件。现在,打开 config.py 并将 art 文件更改为你的文件,以显示你所做的更改。

在配置文件中更改设计文件以反映我们所做的更改

现在你可以运行程序,以获得你所需的文字出现在动画中:

python3 PyBirthdayWish.py

使用自己的音乐文件

你可以使用自己的音乐文件作为这个动画的一部分。

? 如果你计划在 YouTube 或其他网站上上传视频,请使用无版权的音乐以避免问题。

将你的音乐文件复制到克隆的目录中。

自定义的音乐文件被复制到克隆的目录中

编辑 config.py 文件以添加新的音乐,如下面的截图所示:

在配置文件中添加自定义音乐文件以在动画中播放

完成!现在,如果执行运行命令 python3 PyBirthdayWish.py,自定义音乐将与动画一起播放。

创建一个可执行文件

如果你想将上述祝福消息作为可执行文件发送给朋友,这也是可行的。

关联的 pyinstaller 将安装到 .local/bin 目录中,它不在你的路径中。

所以使用以下命令将该目录添加到你的路径中,添加到你的路径中

export PATH=$PATH:/home/team/.local/bin

要使其永久生效,将其添加到你的 ~/.bashrc 文件中。

当你完成 art 文件的编辑并更改配置文件以反映更改后,使用以下命令创建一个可执行文件:

pyinstaller --noconfirm --onefile --console --icon "icon.ico" --no-embed-manifest --add-data "arts:arts/"  --add-data "config.py:." --add-data "HappyBirthday.mp3:." --add-data "PyBirthdayWish.py:."  "PyBirthdayWish.py"

它将在 PyBirthdayWish/dist 目录下创建一个名为 PyBirthdayWish 的可执行文件。

程序创建的自定义可执行文件在文件管理器中显示

将此可执行文件复制并发送给任何想查看它的人。他们可以使用以下命令执行它:

./PyBirthdayWish
? 请始终谨慎运行来自未知外部来源的可执行文件。

更多终端乐趣

像生日一样,圣诞节也是一个特殊的时刻。如果你愿意,你可以给你的 Linux 桌面增添一些节日气氛。

用 Linux 的方式庆祝圣诞节:为你的 Linux 系统增添圣诞气氛

如果你喜欢 ASCII 动画,你可能也会喜欢 ASCII 艺术。

在 Linux 终端将图像转换为 ASCII 艺术图像

为什么就止步于此呢?探索更多 ASCII 工具吧。

在 Linux 终端生成 ASCII 艺术并从中获得乐趣的 10 个工具

享受以这种有趣的方式使用 Linux ?

? 如果你在使用这个工具时遇到任何问题,请告诉我,我会尽力在我所能的范围内提供帮助。

(题图:MJ/dfa0185d-e9f9-4c1a-886e-e42c9bb8d687)


via: https://itsfoss.com/birthday-wish-linux-terminal/

作者:Sreenath 选题:lkxed 译者:ChatGPT 校对:wxy

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

你终于可以升级 Zorin OS 版本而无需重新安装。虽迟但到。

zorin OS

Zorin OS 无疑是 最美丽的 Linux 发行版 之一。它基于 Ubuntu LTS,以全面的软件包为用户提供类似(但不限于) Windows 的体验。

然而,它缺乏无缝升级方式。

在最近的一份公告中,Zorin OS 背后的人们终于推出了一个新的更新程序来处理该操作系统的所有升级工作! ?

考虑为什么它是初学者的不错选择之一的另一个原因是什么? 我想是这样...

Zorin OS 是初学者理想选择的 5 个原因

因此,事不宜迟,让我们简单地看一下。

Zorin OS 更新程序:初步印象 ⭐

a picture of the zorin os updater banner

Zorin OS 更新程序的到来是理所当然的,因为多年来开发人员收到了来自用户的许多请求,希望能有这样一个的一站式解决方案。

以前,想要切换到较新版本或更改变体的用户必须完全重新安装 Zorin OS,并且必须从头开始设置系统。

现在,不用了!

Zorin OS 更新程序是一个简洁的解决方案,允许用户轻松执行主要版本或变体升级,而无需全新安装 Zorin OS。

例如: 假设你使用的是 Zorin OS 15 Core。你可以使用此应用升级到 Zorin OS 16 Core 甚至 Zorin OS 16 Pro。

好了,继续。

让我们看看更新程序及其工作原理。我们还在本文的底部向你展示了如何使用它。

当你启动该应用时,你将看到一个页面,其中包含 Zorin OS 安装的当前版本/变体以及可用升级的列表。

a screenshot of the zorin os updater home screen

当你继续操作时,你可以选择包含所有附加功能的正常安装,也可以选择包含核心程序的最小安装。

a screenshot of the zorin os updater's installation type selection screen

如果你要升级到 Zorin OS Pro,你必须输入你的电子邮件地址和支持代码才能继续升级。

a screenshot of the zorin os updater's order details screen

之后,你将看到开始升级的最终提示页面。

他们建议你提前备份数据。如果在升级过程中出现问题,你可以回退。

a screenshot of the zorin os updater's start the upgrade screen

升级过程开始时,会显示一个进度页面,其中所有重要的升级阶段都会高亮显示。

a screenshot of the zorin os updater's upgrade progress screen

一切设置完毕后,你可以重启系统以完成操作系统升级过程。

a screenshot of the zorin os updater's final reboot system screen

? 如何访问 Zorin OS 更新程序

你所需要做的就是更新你的系统以安装新的 Zorin OS 升级工具。

但是,它目前处于 Beta 测试,尚未作为稳定的工具提供。你可以在接下来的几周内期待它。

ℹ️ 通过 Zorin 菜单 → 系统工具 System Tools 软件更新程序 Software Updater 更新你的系统

你可以尝试手动安装测试版,但需要自行承担风险。

打开终端并输入以下命令:

sudo apt update
sudo apt install zorin-os-upgrader

然后,要开始升级过程,请启动“ 升级 Zorin OS Upgrade Zorin OS ”应用,然后按照屏幕上的说明进行操作。

对于 Zorin OS 15 的用户: 如果你在首次启动升级应用时没有看到任何升级选项,那么需要在终端中运行以下命令:

gsettings set com.zorin.desktop.upgrader show-test-upgrades true

你可以阅读 官方帮助指南 以获取更多信息。


via: https://news.itsfoss.com/zorin-os-upgrader/

作者:Sourav Rudra 选题:lkxed 译者:geekpi 校对:wxy

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

在本章的 Bash 基础知识系列中,学习在 Bash 脚本中使用变量。

在 Bash 基础知识系列的第一部分中,我简要提到了变量。现在是时候在本章中详细了解它们了。

如果你曾经进行过任何类型的编码,你一定熟悉术语“变量”。

如果没有,请将变量视为保存信息的盒子,并且该信息可以随着时间的推移而改变。

让我们看看如何使用它们。

在 Bash shell 中使用变量

打开终端并使用一个随机的数字 4 初始化变量:

var=4

现在你有一个名为 var 的变量,它的值为 4。想验证一下吗? 通过在变量名前添加 $ 来访问变量的值。这称为参数扩展。

[abhishek@itsfoss]:~$ echo The value of var is $var
The value of var is 4
? 变量初始化时 = 前后不能有空格。

如果需要,你可以将该值更改为其他值:

Using variables in shell

在 Bash shell 中,变量可以是数字、字符或字符串(包括空格在内的字符)。

Different variable types in Bash shell

? 与 Linux 中的其他事物一样,变量名称也区分大小写。它们可以由字母、数字和下划线 “_” 组成。

在 Bash 脚本中使用变量

你是否注意到我没有运行 shell 脚本来显示变量示例? 你可以直接在 shell 中做很多事情.当你关闭终端时,你创建的那些变量将不再存在。

但是,你的发行版通常会添加全局变量,以便可以在所有脚本和 shell 中访问它们。

让我们再写一些脚本.你应该之前创建了脚本目录,但无论哪种情况,此命令都会处理该目录:

mkdir -p bash_scripts && cd bash_scripts

基本上,如果 bash_scripts 目录尚不存在,它将创建它,然后切换到该目录。

这里让我们使用以下文本创建一个名为 knock.sh 的新脚本。

#!/bin/bash

echo knock, knock
echo "Who's there?"
echo "It's me, $USER"

更改文件权限并运行脚本。你在上一章中已经学到了。

这是它为我生成的内容:

Using global variable in Bahs script

你是否注意到它如何自动将我的名字添加到其中? 这就是包含用户名的全局变量 $USER 的魔力。

你可能还注意到,我有时将 "echo 一起使用,但其他时候则不使用。这是故意的。bash 中的引号 有特殊含义。它们可用于处理空格和其他特殊字符。让我展示一个例子。

处理变量中的空格

假设你必须使用一个名为 greetings 的变量,其值为 hello and welcome

如果你尝试像这样初始化变量:

greetings=Hello and Welcome

你会得到这样的错误:

Command 'and' not found, but can be installed with:
sudo apt install and

这就是为什么你需要使用单引号或双引号:

greetings="Hello and Welcome"

现在你可以根据需要使用该变量。

Using spaces in variable names in bash

将命令输出分配给变量

是的!你可以将命令的输出存储在变量中并在脚本中使用它们。这称为命令替换。

var=$(command)

这是一个例子:

[abhishek@itsfoss]:~$ today=$(date +%D)
[abhishek@itsfoss]:~$ echo "Today's date is $today"
Today's date is 06/19/23
[abhishek@itsfoss]:~$

Command substitution in bash

旧语法使用反引号而不是 $() 进行命令替换。虽然它可能仍然有效,但你应该使用新的推荐符号。

? 变量会更改值,除非你声明一个“常量”变量,如下所示:readonly pi=3.14。在这种情况下,变量 pi 的值无法更改,因为它被声明为 readlonly

?️ 练习时间

是时候练习你所学到的东西了。这里有一些练习来测试你的学习情况。

练习 1:编写一个 bash 脚本,以以下格式打印你的用户名、当前工作目录、主目录和默认 shell。

Hello, there
My name is XYZ
My current location is XYZ
My home directory is XYZ
My default shell is XYZ

提示:使用全局变量 $USER$PWD$HOME$SHELL

练习 2: 编写一个 bash 脚本,声明一个名为 price 的变量.使用它来获取以下格式的输出:

Today's price is $X
Tomorrow's price is $Y

其中 X 是变量 price 的初始值,并且明天价格翻倍。

提示:使用 \ 转义特殊字符 $

练习的答案可以在社区的这个专用帖子中讨论。

在 Bash 基础知识系列的下一章中,你将了解如何通过传递参数和接受用户输入来使 bash 脚本具有交互性。

(题图:MJ/37c5c26e-3289-4ebd-b8ae-88eb8a3b2eb1)


via: https://itsfoss.com/bash-use-variables/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

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

CloudReady 日趋流行,尤其是在使用低端硬件的用户中。我决定了解一下它并分享我的发现。

什么是 CloudReady?

CloudReady 是一个基于谷歌的 Chromium OS 开源代码仓库的操作系统。Neverware 公司是 CloudReady 背后的组织,它开发的 CloudReady 可以部署到现有的 PC 和 Mac 上,由于其对硬件的要求极低,因此可以保证在上述硬件上的性能提升。大体上来说,CloudReady 把你的旧计算机变成了 Chromebook。2020 年底 Google 收购了 Neverware

在分享我的经验和想法之前,让我先进一步介绍以下它。

谁应该尝试 CloudReady?

CloudReady

CloudReady 主要是面向那些能够从使用类 Chromebook 设备中获益,但是已经在硬件设备上进行了投入的机构。下面是我想到的一些例子:

  • 经过 CloudReady 扩展的 Chromium OS 用户界面足够简单,用户从 macOS 或 Windows 转向使用 CloudReady 几乎不需要培训。
  • 更好的安全性,用户不会被安装充斥于 macOS 和 Windows 上的恶意软件。
  • Chromium OS 的硬件要求低,能够在老旧的硬件上良好运行。
  • 通过“ 谷歌管理控制台 Google Admin Console ”来管理计算机。
  • 简单初始安装过程。

下面是运行 CloudReady 的最低硬件要求:

  • CPU:任何 2008 年之后的 CPU (没有提及对 ARM 架构 CPU 的支持情况,暂且认为仅支持 x86 架构 CPU,即英特尔和 AMD 的 CPU)
  • 内存:2 GB 及以上
  • 存储:16GB 及以上
  • 具备访问 BIOS 或 UEFI 的权限——为了能够从 USB 安装程序启动

如果你不确定自己的上网本是否能够运行 CloudReady,Neverware 公司发布了能够运行 CloudReady 的认证机型清单。目前该清单已包含超过 450 种机型。你可以通过 这个官方链接来核查自己的机型

CloudReady 与 Chrome OS 有什么不同?

如果你的主要使用目的是以下场景,那么 CloudReady 能够满足你的需要:

  • 通过 “ Neverware 管理门户 Neverware Admin Portal ”(到 Google 完成收购为止)或 “ 谷歌管理控制台 Google Admin Console ” 来管理 CloudReady 设备。
  • 你的工作可以通过网页浏览器来完成(基于网络服务)。

当你了解到“CloudReady 是一个基于 Chrome OS 的操作系统”时,你一定认为它至少应该能够运行安卓应用。

遗憾的是,事实并非如此。开源的 Chromium OS 不支持安卓运行时框架/服务,因此在 CloudReady 中不可用。由于一些法律和技术上的原因,Neverware 并没有将安卓运行时添加到 CloudReady 中。

另一方面它也阻止你 侧载 side-loading APK,因为根本没有运行安卓应用的东西。

当我试图从 应用抽屉 app drawer 启动 Play Store 时,它在浏览器中打开了谷歌 Play Store 的网页。这真是个坏消息。然而得益于 CloudReady 是基于“ 面向网络 web focused”的操作系统的,我的 Chromium 浏览器扩展运行良好。

A screenshot of the app drawer in CloudReady with the Google Play Store app icon  along with Chrome Extensions as “Apps”

所以如果你想通过 CloudReady 把自己的旧笔记本变成一个非触屏的平板,那你就不太走运了。

为什么会有 CloudReady?

你也许会疑惑,既然已经有了 Chrome OS,为什么 Neverware 还要投入资源开发 CloudReady 这个 “克隆体” 呢?

仔细观察运行 Chrome OS 的设备,你就会发现它们都是预装设备。也就是说 Chrome OS 只适用于生产 Chromebook 的 OEM 厂商。

对于微软的 Windows,OEM 厂商可以预装 Windows,用户也可以下载单独的 ISO。然而,谷歌并不提供可用于在电脑上安装 Chrome OS 的 ISO。

所以需要开发一个基于 Chromium OS 的操作系统,让你能够将其安装到已有的 PC 或 Mac 上。

CloudReady 为你提供一种安装基于 Chromium OS,企业用户也可以通过 Neverware 获得官方支持服务。

获取 CloudReady

CloudReady screenshot

CloudReady 提供三个版本:家庭版(免费)、教育版(付费)和企业版(付费)。如果你想先体验一下 CloudReady,那就选家庭版。

Neverware 不提供 ISO 镜像,但它提供一个启动 U 盘制作工具。这个工具仅限 Windows 操作系统。

Neverware 同时提供一个 RAW 文件,你可以用 任何基于 Chromium 的浏览器Chromebook 恢复扩展 来制作启动 U 盘。

下载 CloudReady 家庭版

如果你想要在虚拟机里体验 CloudReady 的话,Neverware 提供了 “.ova” 文件。该 “.ova” 文件无法在 VirtualBox 上使用,它旨在与 VMware 一起使用。

下载 CloudReady “.ova” 文件

Ubuntu Web:ChromeOS 和 CloudReady 的替代品?

如果你想要在旧电脑上使用 CloudReady,但是它缺少安卓运行时这点让你失望了,也许你可以试试 Ubuntu Web

A screenshot of Ubuntu Web

正如其名称所示,Ubuntu Web 是面向寻找 Chrome OS 替代品的人群的 Linux 发行版。

Ubuntu Web 有与 Ubuntu 一样的同步能力,让你能够用 /e/ Cloud(一个专注于隐私的 Google 云同步服务替代品)实现同步。

最重要的是 Ubuntu Web 默认附带了 Waydroid

Waydroid 是一种“基于容器的方式,可以在 GNU/Linux 系统上运行一个完整的 Android 系统”。也就是说你可以在 Ubuntu Web 上运行安卓应用(不像 CloudReady)。

总结

尽管你可能会觉得 CloudReady 与 Chrome OS 相比并没有太多的优势,但对于那些想要部署集中管理的、基于 Chromium OS 的操作系统,但又不想在 Chromebook 上投资的组织来说,它似乎是一个不错的选择。

对于使用低端硬件的家庭用户来说,它也是一个不错的选择,但是我们 已经有很多轻量级的 Linux 发行版

你是否已经使用过 CloudReady?或者你是第一次在这里听说它?你对这个项目的总体看法是什么呢?

(题图:MJ/5c18795b-6978-48a0-a6f7-baffde69ab48)


via: https://itsfoss.com/cloudready/

作者:Pratham Patel 选题:lujun9972 译者:toknow-gh 校对:wxy

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

apt-add-repository 到“软件及更新”工具,这里有几种从 Ubuntu 移除软件仓库的方法。

你可以 在 Ubuntu 中添加外部仓库 来访问官方仓库中不可用的软件包。

例如,如果你 在 Ubuntu 中安装 Brave 浏览器,则将其仓库添加到你的系统中。如果你添加了一个 PPA,它也会添加为外部仓库。

当你不需要特定软件时,请将其删除。但是,外部仓库仍然存在。你还可以也应该将其删除以保持系统原始状态。

Ubuntu 可以让你轻松删除软件仓库。有不同的方法可以做到这一点:

  • 使用 apt-add-repository 命令删除仓库
  • 使用 GUI 删除仓库(对于桌面用户)
  • 通过修改 /etc/apt/sources.list 文件的文件内容(针对专家)

但在此之前,如果你对这个概念不熟悉,我强烈建议你 熟悉包管理器的概念 和仓库。

方法 1、使用 apt 删除仓库?

你知道你还可以使用 apt 命令 来删除仓库吗? 嗯,从技术上讲,它不是核心 apt 命令的一部分,但它的工作方式类似。

在处理外部仓库时,你可以使用 add-apt-repository 或者 apt-add-repository 命令(两者是同一命令)。

首先,使用以下命令列出添加的仓库:

apt-add-repository --list

list enabled repositories in Ubuntu

完成后,你可以按所示方式使用带有 -r 标志的 apt-add-repository 命令来从列表中删除:

sudo apt-add-repository -r repo_name

例如,如果我想删除 yarn 仓库,我必须使用以下命令:

sudo add-apt-repository -r deb https://dl.yarnpkg.com/debian/ stable main

Remove repository using the apt-add-repository command in Ubuntu

按回车键进行确认。

接下来,使用以下命令更新仓库:

sudo apt update

现在,如果你列出已启用的仓库,你将不会在此处找到已删除的仓库:

apt-add-repository --list

confirm repository removal process by listing enabled repositories in Ubuntu

这就完成了!

方法 2、使用 GUI 删除 Ubuntu 中的软件仓库?️

? 不建议删除你一无所知的仓库,因为它可能会限制你将来安装你最喜欢的软件包,因此请确保你知道自己在做什么。

作为 最适合初学者的发行版之一,你可以使用 GUI 来删除仓库,而无需使用终端。

为此,首先从系统菜单打开“ 软件及更新 software & updates ”应用:

search for software and updates from the system menu

现在,单击“ 其他软件 Other Software ”部分,它将列出系统中的 PPA 和外部仓库。

列出中勾选的 ✅ 是已启用的。

要删除仓库,你必须遵循三个简单的步骤

  • 选择需要删除的仓库
  • 点击“ 删除 Remove ”按钮
  • 最后,点击“ 关闭 Close ”按钮

Disable repository from Ubuntu

单击关闭按钮后,它将打开一个提示,要求你在进行更改时更新信息。

只需单击 “ 重新载入 Reload ” 按钮即可:

Click on reload to after removing repository from Ubuntu and save changes

或者,你可以从命令行更新仓库以使更改生效:

sudo apt update

方法 3、通过目录来删除仓库(对于专家?‍?)

之前,我解释了如何使用工具(GUI 和 CLI)来删除仓库。在这里,你将修改负责管理仓库的系统目录(/etc/apt/sources.list.d)。

首先,将工作目录更改为 sources.list.d 并列出其内容:

cd /etc/apt/sources.list.d/ && ls

list contents of sources.list.d directory

在这里,你将找到所有仓库的列表。

如果你仔细观察,一个仓库将有两个文件。一个带有 .list 扩展名,另一个带有 .save 扩展名。

你必须删除具有 .list 扩展名的文件:

sudo rm Repo_name.list

例如,在这里,我使用以下命令删除了 node 仓库

sudo rm nodesource.list

remove repository by removing the repository directory in Ubuntu

要使更改生效,请使用以下命令更新仓库索引:

sudo apt update

想了解更多有关 sources.list 的信息吗?阅读 这篇文章

附加步骤:删除仓库后删除 GPG 密钥(对于高级用户)

如果你希望在删除仓库后删除 GPG 密钥,请按以下步骤操作。

首先,使用以下命令列出现有的 GPG 密钥:

apt-key list

现在,输出可能会让某些用户感到困惑。

以下是要记住的事情:

  • GPG 密钥名称将放置在虚线(----)上方
  • 公钥在第二行

例如,以下是 Chrome GPG 密钥的相关数据:

list GPG keys in Ubuntu

要删除 GPG 密钥,你可以使用公钥的最后两个字符串(不带任何空格)。

例如,以下是我将如何使用 Chrome 浏览器公钥的最后两个字符串(D38B 4796)删除其 GPG 密钥:

sudo apt-key del D38B4796

remove GPG key in Ubuntu

同样,你也可以使用整个公钥。但这一次,你必须在两个字符串之间包含空格,如下所示:

sudo apt-key del "72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310"

小心添加和删除的内容

特别是当你是 Linux 新用户时,你会遇到许多感兴趣的软件,对仓库添加了又删除。

虽然尝试是件好事,但你应该始终小心添加/删除到系统中的任何内容。你应该记住一些事情,例如:它包含更新的软件包吗? 它是受信任或维护的仓库吗?

保持谨慎将使你的系统免受不必要的仓库和软件包的影响。

我希望本指南可以帮助你删除不需要的仓库!

如果你遇到任何问题请在下面评论。

(题图:MJ/3d436ed6-76fc-47ef-88c3-b5f3e2862c7d)


via: https://itsfoss.com/remove-software-repositories-ubuntu/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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