提示 Linux 登录有这个 < 字符而不是 username@machine:

提示 Linux 登录有这个 < 字符而不是 username@machine:

我的 Linux 设备有问题。启动后,有时 shell 只显示这个<字符,我可以运行普通的 shell 命令,如ls/cat等,但它只显示 1 个字符。当我执行时,echo我可以看到所有行(因此只有输入有 1 个字符的问题)。

这是执行命令后我的终端的示例pwd

<d
/home/root
< 

在启动时,设备运行了许多 shell 脚本,所以一开始我以为是一些脚本没有完成,但如果脚本是堆栈的,我不应该能够运行正常的 shell 命令(我认为)。它发生在启动过程的 10% 左右。如果我跑echo $PS1

<1  
\u@\h:\w\$
< 
echo $PS2 : $PS3 : $PS4   =>   > : : +      

看来是对的。我可以通过 ssh 访问,系统看起来不错,我尝试杀死许多服务/进程来检查提示符是否会恢复,但是如果我exit在提示符中写入 ' ' 或者我杀死/bin/login -f 或终止进程,我可以恢复系统-sh(它会显示用户名@机器)。我第一次尝试control+D但失败了

<注销 有已停止的作业。
第二次按control+D我注销并自动登录,
登录:root(自动登录)
现在状态良好 ( root@device:~#)

有人有什么建议我可以尝试吗?有人知道为什么会有这个角色吗?有没有办法查看最后执行的命令,以尝试了解设备在该状态下是如何完成的?

我不认为这是终端的问题,因为取决于启动有时工作有时不工作。我跑了printf '%s\n' "$COLUMNS"

6 

我的TERM环境变量:

术语 = @BAUDRATE@

stty -a

speed 115200 baud;
rows 13; columns 6;
line = 0;
intr = ^C;
quit = ^\;
erase = ^?;
kill = ^U;
eof = ^D;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = ^Q;
stop = ^S;
susp = ^Z;
rprnt = ^R;
werase = ^W;
lnext = ^V;
flush = ^O;
min = 1; time = 0;
-parenb
-parodd
cs8
hupcl
-cstopb
cread
clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
icrnl
ixon
ixoff
-iuclc
-ixany
-imaxbel
iutf8
opost
-olcuc
-ocrnl
onlcr
-onocr
-onlret
-ofill
-ofdel
nl0
cr0
tab0
bs0
vt0
ff0
isig
icanon
-iexten
echo
echoe
echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
echoctl
echoke

相关内容