我的 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_COMMAND
为cd
是一个很常见的恶作剧,如果你没有设置它,而且你是唯一的用户,那么是的,你已经被入侵了。
如果朋友可以访问,这是我见过很多次的恶作剧,与他们交谈。