我的 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