有些用户在按 Tab 键完成文件路径时,机器需要几秒钟才能完成。他们正在使用 bash shell。
如何诊断到底是什么导致该用户的选项卡完成挂起?
答案1
在 bash 中,运行echo $$
以查看 shell 的进程 ID,然后准备按Tabbash。打开另一个终端并运行,strace -p1234
其中1234是bash的进程ID。strace
将打印 bash 执行的系统调用的跟踪。即使您不完全了解发生了什么,这通常也足以了解什么需要时间 - 通常是发出网络请求,或者正在访问大量文件。弄清楚要更改哪些设置以避免速度缓慢可能很容易,也可能不容易。
根据系统的安全设置,可能不允许您运行strace
不相关的进程。如果不是,则strace
作为 bash 的父级运行:
strace -tt -T -o bash.trace bash
执行完成尝试,然后退出 bash 并查看跟踪文件bash.trace
。每行开头都有一个时间戳,指示系统调用何时开始,行尾尖括号中的数字是系统调用所花费的时间。
strace
是一个Linux命令。如果您运行的不是 Linux,请在您的系统上查找相应的命令 — dtrace
, truss
, trace
, ...