如何在登录 Debian/Ubuntu 时检查更新?

在本模块中,我们将学习如何使用自制脚本在我们的 Ubuntu/Debian 机器上登录时检查更新,该脚本可以轻松定制以满足我们的要求。

先决条件

对于这个程序,我们需要一个终端模拟器。 我们将使用 xterm 作为我们的示例,但您可以随意使用您选择的终端模拟器。 使用 apt 命令安装您选择的模拟器:

$ sudo apt install <package-name> 

在我们的例子中,它将是:

$ sudo apt install xterm 

在登录时检查更新的脚本

是时候写一个 bash 脚本! 为了我们的意图,我们将编写一个小 shell 脚本并将其附加到我们的末尾 。轮廓 (或者 .bash_profile 如果存在)。 我们的代码看起来像这样:

if ! command -v xterm &>/dev/null then 	sudo apt install -y xterm fi (xterm -e sudo apt update 2>/dev/null)||(sudo apt install update) 

理解代码

我们需要的第一件事是 如果别的 堵塞 :

if ! command -v xterm &>/dev/null then 	sudo apt install -y xterm fi 

这里我们首先检查 终端 是否安装,如果没有,我们安装它。 这里出现的一个常见问题是为什么使用 “命令而不是更传统的 “哪个”? 这里的答案是效率: “哪个” 除了作为外部过程之外,还根据系统提供可变输出。 然而 “命令” POSIX 兼容的内置函数,因此可以更快地提供更准确的结果。 但是,这一步是完全可选的,如果你有 终端 已安装。

接下来我们有最重要的一行:

(xterm -e sudo apt update 2>/dev/null)||(sudo apt install update) 

我们将这个命令分为两部分:

  • xterm -e sudo apt 更新 2>/dev/null :这部分命令处理图形登录。 每当用户登录时, 终端 将与 “sudo 适当更新” 重定向时执行的命令 标准错误/开发/空
Xterm 提示 Enter 你的密码
登录时更新
  • sudo 适当更新: 这是在通过 ssh 登录时更新系统。 通过 ssh 登录后,系统会提示您输入密码以进行更新。
$ ssh [email protected] [email protected]'s password:  Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic i686)   * Documentation:  https://help.ubuntu.com  * Management:     https://landscape.canonical.com  * Support:        https://ubuntu.com/advantage  Last login: Tue Feb 16 00:25:32 2021 from 192.168.0.108 [sudo] password for user:  Hit:1 https://in.archive.ubuntu.com/ubuntu bionic InRelease                                      Get:2 https://in.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]                    Get:3 https://in.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]                            Get:4 https://in.archive.ubuntu.com/ubuntu bionic-updates/main i386 DEP-11 Metadata [295 kB]                          Hit:5 https://archive.canonical.com/ubuntu bionic InRelease                                Get:6 https://in.archive.ubuntu.com/ubuntu bionic-updates/universe i386 DEP-11 Metadata [289 kB] Get:7 https://in.archive.ubuntu.com/ubuntu bionic-updates/multiverse i386 DEP-11 Metadata [2,468 B] Get:8 https://in.archive.ubuntu.com/ubuntu bionic-backports/universe i386 DEP-11 Metadata [9,292 B] Fetched 759 kB in 11s (68.4 kB/s)                                                                    Reading package lists... Done Building dependency tree        Reading state information... Done 536 packages can be upgraded. Run 'apt list --upgradable' to see them. 

这两种方法由一个 ‘||’ 这使我们能够在发生变化时处理错误 用户界面. 如果我们使用一个 GUI, 只执行命令的第一部分,而如果 命令行界面 被使用,它失败然后控制移到第二个命令,它与我们的兼容 命令行界面.

为什么使用这种方法?

与其他方法相比,使用此方法的优点如下:

  • 您可以随时通过编辑脚本来扩展它的功能
  • 它适用于所有 WM 和 DE
  • 您还可以有选择地升级软件包(就像您可能想要排除某些内核升级一样)
  • 可以根据需要为不同的用户指定不同的设置
  • 适用于所有基于 Debian/Ubuntu 的发行版

结论

因此,我们看到了如何在登录 Debian/Ubuntu 时非常轻松地检查更新。 这种方法提供了高度的灵活性,可以完全控制您的机器以及您要升级的软件包。

由于可能存在错误,建议在发布后大约一周后不要升级某些内核包。 这种方法也非常独立于任何其他环境因素,如 小路, , 西马, 用户界面等,这使它非常实用。