Bash 不再更改目录

Dav*_*e C 14 linux bash

我的 bash shell 将不再使用 cd 更改目录。我早些时候在工作时注意到它,发现我打开的任何新 shell(终端或 xterm 等)都会卡在主目录中并且无法退出(已经打开的终端继续正常工作)。

[~]$ pwd
/home/sys/dave
[~]$ cd /
[~]$ cd Documents/
[~]$ pwd
/home/sys/dave
[~]$ type cd
cd is a shell builtin
[~]$ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
Run Code Online (Sandbox Code Playgroud)

我认为一定是我没有时间处理一些奇怪的事情,例如内存不足的处理程序(检查过 cd 没有别名并使用内置版本)。

所以我(是的,我知道)重新启动了机器。

全新启动,完全一样的问题。

另一方面,CSH 工作正常,所以在上面的代码片段之后立即:

[~]$ csh
[~]$ cd /
[/]$ pwd
/
[/]$ cd ~/Documents/
[~/Documents]$ pwd
/home/sys/dave/Documents
[~/Documents]$ 
Run Code Online (Sandbox Code Playgroud)

在过去的几天里,我没有安装任何新的东西或执行任何更新,直到今天晚上它都运行良好。

非常感谢想法/帮助/帮助!

** 更新 **

因此,我在 .bashrc 中找到了这一行

export PROMPT_COMMAND="cd"
Run Code Online (Sandbox Code Playgroud)

如果我取消设置 PROMPT_COMMAND,则一切正常。

但是... WTF。我没有把这一行放在 .bashrc 中,直到今晚一切都运行良好。我应该将其注释掉,手动取消设置,还是只是将计算机烧毁为女巫?

rfe*_*urg 21

设置PROMPT_COMMANDcd是一个很常见的恶作剧,如果你没有设置它,而且你是唯一的用户,那么是的,你已经被入侵了。

如果朋友可以访问,这是我见过很多次的恶作剧,与他们交谈。

  • 或者,如果您处于可能未锁定终端的环境中。这取决于企业文化,但由于解锁终端是不受欢迎的做法,因此系统管理员之间的恶作剧相当普遍。 (6认同)
  • 我想我被恶作剧了。+1 给我的实验室同事一个 Linux 恶作剧。-1 给我让屏幕解锁。不要认为我受到了损害,至少我希望不会——其他一切看起来都很好。感谢大家的回答。 (4认同)