如何获取下面的 bash 命令来停止回显这些 bash 别名未找到错误?

如何获取下面的 bash 命令来停止回显这些 bash 别名未找到错误?

在此输入图像描述

我认为这些 bash 命令是为了增加 htops 刷新间隔而创建的,不记得我在哪里找到它们的。然而,我后来发现,要让它刷新得更快,所需要做的就是用 nano 编辑 /.config/htop/htoprc ,效果很好。但是, bash: alias not found 错误仍然存​​在...我将如何完全删除这些错误和脚本,而不只是让终端忽略它们,而是完全删除它们?我不知道如何在终端中停止此回声。正如您在我的屏幕截图中看到的,遗憾的是,即使在新的终端窗口中,甚至在重新启动后,它仍然会继续这样做!我运行了每个 debsums 开关来查看是否有任何问题,除了 sysctl.conf (来自 procps 包)之外,它们都很好地返回,尽管这是两个不同的问题,我认为 procps 包来自我的防火墙规则,但我我不确定...我的 ufw 规则是

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     LIMIT       Anywhere                  
443                        ALLOW       Anywhere                  
80/tcp                     DENY        Anywhere                  
22/tcp (v6)                LIMIT       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             
80/tcp (v6)                DENY        Anywhere (v6)

包括我的终端屏幕截图。

这是 bash 错误

bash: alias: -d: not found
bash: alias: 5: not found
bash: alias: -d: not found
bash: alias: 1: not found
bash: alias: -d: not found
bash: alias: 0.2: not found
bash: alias: -d: not found
bash: alias: 0.1: not found
bob@bob-ao533:~$

这些都是由其中之一引起的。

sudo echo "alias top="top -d 1"" >> ~/.bashrc

sudo echo "alias top="top -d 5"" >> ~/.bashrc

然后,对于它发现的 debsums 问题,那是在运行之后sudo debsums -as,但是,debsums 的其他主要开关,包括这些 -cs -ls 和标准 -s -as 是发现 sysctl.conf (来自 procps 包)的人。

答案1

您遇到了字符串引用问题。

不能将双引号放在双引号内,因为双引号对的开头和结尾之间没有区别。因此,bash您的命令如下所示(引号以 开头<<<并以 结尾>>>): echo <<<alias top=>>>top -d 5<<<>>>

这意味着以下内容将写入您的 .bashrc: alias top=top -d 5

这不是您想要的,这就是您收到-d: not found错误的原因。

相反,在双引号内使用单引号,如下所示: echo "alias top='top -d 5'"

希望这有所帮助

编辑:正如其他人在这里指出的那样,没有理由运行echosudo 来将行添加到您自己的 .bashrc 文件中。

此外,它实际上不会以提升的权限写入文件,因为重定向发生在命令执行之前,并具有您运行的 shell 的权限。要实际使用提升的权限写入,您必须这样做:

echo "your line" | sudo tee -a your_file

或者在提升的 shell 中运行整行代码,如下所示:

sudo bash -c "echo 'your line' > your_file"

相关内容