为什么命令没有完成

为什么命令没有完成

我已将其添加到 .bashrc

alias a='ap update && ap dist-upgrade -y && do-release-upgrade -d && ap check && ap autoremove -y && ap autoclean'

所以我只需输入即可运行长命令a

但是命令停止了do-release-upgrade -d,当我将其从别名中删除并a再次运行时,命令仍然有效。

alias ap='apt-get'

答案1

从哪儿开始?

  • ap不是命令。你想要apt-get..如果ap是别名 —— 看看我的最后一点。

  • 您知道它的do-release-upgrade -d作用是什么吗?它是用于将 Ubuntu 升级到新版本(在本例中为开发版本)的工具。它每 6 个月只能工作一次,并且会让您陷入 Ubuntu 开发这个肮脏、生疏、滴水、前沿的境地。切勿在您可能需要的计算机上使用它(尤其是不要经常使用它)。

  • 对你的问题的直接回答: do-release-upgrade -d如果没有要升级的内容,则会退出代码 1。如上所述,它每年只会触发代码 0(成功)两次。&&仅当上一个命令退出代码 0 时才会继续,因此您可以:

    • ;继续做任何事,或者更有可能的是,
    • ||与之相反&&,失败时运行。
  • 不仅如此,do-release-upgrade当有需要升级的东西时,它也是交互式的。

  • -y标志是危险的可以——不,将要— 至少毁掉你的​​一天一次。这在开发版本上更是如此(看起来你正在努力坚持)。你应该尽一切机会避免 Apt 意外删除所有软件包。

  • 为什么要使用别名?您已将一百条命令放在一行中,为什么不直接编写一个脚本并将其命名为别名a并粘贴进去~/bin/(如果不存在则创建它,然后运行source ~/.profile以更新您的 $PATH)。

  • 你为什么要这样做?如果你想要自动更新,为什么不直接使用众多现有工具之一这对你有用吗?Shazaam,现在您不需要脚本了。

  • 最后,如果你真的所以如果您厌倦了输入命令,而这些命令又要为整个字母表设置别名,那么也许是时候学习在输入时用左小指按下 Tab 键了。它会尽可能地自动完成(并且在许多命令中也能使用;试试看apt-get)。

答案2

当你进行发布升级时,可能会出现许多问题:计算机突然停止、互联网访问停止……然后可能会出现升级不完整或依赖关系出现问题。

  • 如果您遇到依赖性错误,请尝试以下命令:

    sudo dpkg --configure -a

    进而 :

    sudo apt-get install -f

  • 如果您的升级中断或出现重大问题,您可以尝试此命令:

    sudo dpkg-reconfigure -phigh -a

这将重新安装并重新配置发布升级所需的每个软件包。请注意,这个过程可能很长,最多 1 小时。

相关内容