我认为这些 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'"
希望这有所帮助
编辑:正如其他人在这里指出的那样,没有理由运行echo
sudo 来将行添加到您自己的 .bashrc 文件中。
此外,它实际上不会以提升的权限写入文件,因为重定向发生在命令执行之前,并具有您运行的 shell 的权限。要实际使用提升的权限写入,您必须这样做:
echo "your line" | sudo tee -a your_file
或者在提升的 shell 中运行整行代码,如下所示:
sudo bash -c "echo 'your line' > your_file"