我获取了 .bashrc 文件,现在得到:“-bash: /usr/bin/whoami: 参数列表太长”,因此我无法执行任何命令。使用SSH

我获取了 .bashrc 文件,现在得到:“-bash: /usr/bin/whoami: 参数列表太长”,因此我无法执行任何命令。使用SSH

我通过 ssh 使用外部 HPC 系统。今天我尝试安装“ASE”一个用于处理原子的Python代码。我按照说明修改我的.bashrc文件,但不断收到ModuleNotFoundError: No module named 'ase'所以我source为我的文件执行了一个命令.bashrc,认为有必要让.bashrc文件的更改被识别(不幸的是,我不记得确切的命令)。

现在,当我尝试执行任何类型的命令(即使在注销并重新登录后),我得到:

###################################################################################### (<-- normal welcome message that I always get on login up to here)
-bash: /usr/bin/whoami: Argument list too long
-bash: /usr/bin/cut: Argument list too long
-bash: /usr/bin/logger: Argument list too long
me@n01:~> 

我在网上寻找解决方案,但没有看到这种特殊情况的任何示例。大多数遇到相同错误的人似乎仍然能够访问他们的文件。有人可以帮忙吗?

我无法以 root 身份登录,因为这是我通过 ssh 访问的系统。我无法在没有收到错误的情况下访问我的.bashrc或文件。.bash_profile

答案1

如果我正确地解释了您的文本,那么您很可能会递归地~/.bashrc获取源代码,无论是从自身还是它本身,并且~/.bash_profile无限期地相互源源不断(从问题中尚不清楚)。这样做的结果可能是一个或多个环境变量增长不成比例,这将导致您引用的错误消息。

要解决此问题,您必须在未启动bashshell 的情况下访问您的帐户。

例如,您可以这样做:

ssh -t user@host /bin/sh

user@host您的用户名和主机地址在哪里)。这将启动/bin/shshell,而不是默认的登录 shell。 shell/bin/sh通常不会获取该~/.bashrc文件,因此使用此 shell 不会遇到相同的问题。您可以选择任何其他 shell,但该/bin/shshell 或多或少保证存在。

~/.bashrc这将允许您登录到该帐户,进入一个可能不熟悉但功能齐全的 shell,以解决问题,这似乎又与以某种方式递归获取文件有关。

我还没有解决你使用 Python 时遇到的问题。在确保您的本地系统管理团队无法帮助您解决此问题之后,您可能需要单独提出问题。

答案2

您正在递归地将内容添加.bashrc.bashrc

解决这个问题的一种方法是将PATH变量设置为正常值,然后执行外部程序应该可以工作(尽管您必须修改 .bashrc 以免再次发生这种情况)。

$ PATH=/usr/sbin:/usr/bin:/sbin:/bin

然后,例如:

$ vi .bashrc

相关内容