我通过 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
无限期地相互源源不断(从问题中尚不清楚)。这样做的结果可能是一个或多个环境变量增长不成比例,这将导致您引用的错误消息。
要解决此问题,您必须在未启动bash
shell 的情况下访问您的帐户。
例如,您可以这样做:
ssh -t user@host /bin/sh
(user@host
您的用户名和主机地址在哪里)。这将启动/bin/sh
shell,而不是默认的登录 shell。 shell/bin/sh
通常不会获取该~/.bashrc
文件,因此使用此 shell 不会遇到相同的问题。您可以选择任何其他 shell,但该/bin/sh
shell 或多或少保证存在。
~/.bashrc
这将允许您登录到该帐户,进入一个可能不熟悉但功能齐全的 shell,以解决问题,这似乎又与以某种方式递归获取文件有关。
我还没有解决你使用 Python 时遇到的问题。在确保您的本地系统管理团队无法帮助您解决此问题之后,您可能需要单独提出问题。
答案2
您正在递归地将内容添加.bashrc
到.bashrc
解决这个问题的一种方法是将PATH
变量设置为正常值,然后执行外部程序应该可以工作(尽管您必须修改 .bashrc 以免再次发生这种情况)。
$ PATH=/usr/sbin:/usr/bin:/sbin:/bin
然后,例如:
$ vi .bashrc