每次我 ssh 进入我的机器或运行 时,都会收到一条错误消息sudo -i
。登录时它看起来像这样:
login as: person
chands@ubuntu-server's password:
-bash: .: filename argument required
.: usage: . filename [arguments]
chands@ubuntu-server:~$
当我执行时就像这样sudo -i
:
chands@ubuntu-server:~$ sudo -i
[sudo] password for chands:
-bash: .: filename argument required
.: usage: . filename [arguments]
root@ubuntu-server:~#
sudo
当我启动屏幕时,当我用来执行其他命令时,当我执行时sudo su
,甚至当我su
从 root 进入 chands时,都不会出现此错误。
我检查了 chands 和 root 的 ~/.bashrc 以及 /etc/bash.bashrc,但它们三个都是默认值,并且在.
使用时都没有任何错误。
此外,在我从系统中删除并清除 byobu 后,开始出现此错误。我不知道这是否与问题有关,但这是我的参考点,在此之前一切都运行正常。
这里可能出了什么问题?有人知道吗?
答案1
因此,这个问题的根本原因确实是 byobu(实际上是缺少 byobu)。我不知道为什么,但出于某种原因,byobu 没有清理~/.profile
.This was the last line of the file: 中的一行. $(which byobu-launch)
。幸运的是,我能够通过执行以下操作非常轻松快速地找到此行(按照 @enzotib 和 @geirha 的建议):
首先,我运行以在调试模式 ( ) 下bash -xl
进入 bash 作为登录 shell ( )。当我运行此命令时,我可以看到有问题的行是什么。一旦我知道了导致问题的原因,我就会针对 bash 启动时执行的每个文件发出警告。-l
-x
cat <file> | grep . $(which byobu-launch)
这些文件如下:
~/.bashrc
/etc/bash.bashrc
~/.profile
/etc/profile
/etc/profile.d/*
~/.bash_profile
- + 上述文件所包含/执行的所有其他文件。