我关闭了终端并终止了一个进程,之后打开一个新终端时提示就消失了。
在网上搜索其他问题后,使用 CTRL-C y 可以恢复提示。但是,打开新终端时,提示又消失了。
我尝试过以下代码:
^Cmartin@martin-N550JV:~$
martin@martin-N550JV:~$ ps
PID TTY TIME CMD
17626 pts/0 00:00:02 bash
20957 pts/0 00:00:00 ps
martin@martin-N550JV:~$ sudo kill 20957
[sudo] password for martin:
martin@martin-N550JV:~$ sudo kill 17626
martin@martin-N550JV:~$
摘自地点
我也卸载并重新安装了终端,但没有成功。
有解决办法吗?
答案1
打开终端后,您将获得一个非登录式交互式 shell。如果您使用的是bash
系统级每个交互式 shell 启动文件,则为/etc/bash.bashrc
,而用户级每个交互式 shell 启动文件为~/.bashrc
。
您所面临的问题可能是由于这两个文件中存在任何错误指令造成的。
来自 OP回复:
采购
~/.bashrc
引发问题。这意味着存在问题~/.bashrc
bash 提示消失的可能原因:
~/.bashrc
可能存在递归来源,从而导致无限循环的情况。例如,如果您的类似代码中有以下几行:
if [ -f ~/.profile ]; then
. ~/.profile
fi
它将引用~/.profile
。但请记住~/.profile
始终引用~/.bashrc
(这是正确的方法)。因此,您陷入了无限循环。不要~/.profile
从~/.bashrc
在这种情况下,除非你点击Ctrl+C
故障排除
你可以在你的~/.bashrc
set -x
然后,当您打开终端时,您就会看到文件描述符正在停止。
如何恢复
备份~/.bashrc
并从 获取新的/etc/skel
。在终端中使用,
mv ~/.bashrc ~/bashrc.bkp
cp /etc/skel/.bashrc ~/
它将~/.bashrc
用一个新的来替换您的。
要么问题如我预期的那样(如上所述),要么在更换后应该可以解决其他问题,~/.bashrc
因为它仅与您的有关~/.bashrc
。
答案2
运行这个命令为我解决了这个问题:
reset
答案3
检查~/.bashrc
任何可能阻碍执行的事情。
我当时是:
# Load Angular CLI autocompletion.
source <(ng completion script)
答案4
很可能,shell 提示符被意外地定制为空白。
在终端窗口中,执行以下操作:
sudo cp /etc/bashrc /etc/bashrc.sav
sudo nano /etc/bashrc
则修改PS1
为:
PS1="[\u@\h:\w ] $ "
保存并退出。
以下命令将显示bashrc
文件 - 您有什么?
ls -al /etc/ba*