问题:
某天突然发现root账户下top有异常:
在top命令中,当按下k键后,后面可以输入进程号来删除,但是发现在root用户下输错了进程号后无法删除修改,backspace键不起作用,但是普通用户下就能用backspace键删除。
In the top command, when you press the k key, you can enter a process number to kill it. However, it was found that after entering the wrong process number under the root user, it was impossible to delete or modify it. The backspace key did not work, but it was possible to use the backspace key to delete it under a normal user.
普通账户就没有问题。在xfce4下的终端里也没有问题,只有在TTy的root账户下才有问题。ssh登录过去再su - root ,也没有问题。
查找问题:
% which top
/usr/bin/top
% ls -l /usr/bin/top
-r-xr-xr-x 1 root wheel 73408 4月 7 2023 /usr/bin/top
没看出啥问题....
文心的回答
在
top
命令中,当你按下k
键后,top
进入了一个交互式模式,允许你输入一个进程的 PID 来发送信号给它。然而,在某些终端或top
的版本中,直接在这个交互模式下使用退格键(Backspace)可能不会像你期望的那样工作,来删除已输入的 PID 数字。这种情况通常是由于
top
命令或其使用的终端库对退格键的处理方式不同造成的。以下是一些可能的解决方案:
- 使用其他键删除:
- 尝试使用
Ctrl
+h
组合键,这在某些系统中是退格键的替代。- 或者,你可以使用
Ctrl
+w
来删除整个单词(如果top
支持这种快捷键)。- 另外,你可以使用
Ctrl
+u
来删除整行输入。- 配置终端:
- 确保你的终端配置正确,特别是关于退格键的设置。
- 你可以检查并编辑你的
~/.bashrc
、~/.bash_profile
、~/.inputrc
或其他相关的配置文件,看是否有关于退格键的设置。- 使用其他工具:
- 如果你经常需要向进程发送信号,并且
top
的交互模式不满足你的需求,你可以考虑使用pkill
、killall
或其他类似的工具。- 更新或重新编译
top
:
- 如果问题是由于
top
的一个已知问题或bug引起的,尝试更新到最新版本可能会解决问题。- 如果你有能力并且愿意,你也可以从源代码重新编译
top
,并查看是否有相关的编译选项或补丁可以解决这个问题。- 使用不同的终端模拟器:
- 有时,问题可能与特定的终端模拟器有关。尝试使用另一个终端模拟器(如 GNOME Terminal、Konsole、xterm 等)来看看问题是否仍然存在。
- 查看
top
的文档或帮助:
- 使用
man top
命令查看top
的手册页,看是否有关于这个问题的说明或建议。记住,具体的解决方案可能取决于你的系统配置、终端设置和
top
的版本。
暂时还没找到问题原因.....
标签:输错,删除,top,问题,终端,root,退格 From: https://blog.csdn.net/skywalk8163/article/details/140085296