如何诊断制表符完成缓慢?

LIN*_*YUS 4 bash autocomplete

有些用户在按 Tab 键完成文件路径时,机器需要几秒钟才能完成。他们正在使用 bash shell。

如何诊断到底是什么导致该用户的选项卡完成挂起?

Gil*_*il' 5

在 bash 中,运行echo $$以查看 shell 的进程 ID,然后准备按Tabbash。打开另一个终端并运行,strace -p1234其中1234是bash的进程ID。strace将打印 bash 执行的系统调用的跟踪。即使您不完全了解发生了什么,这通常也足以了解什么花费了时间 \xe2\x80\x94\xc2\xa0 通常它正在发出网络请求,或者正在访问大量文件。弄清楚要更改哪些设置以避免速度缓慢可能很容易,也可能不容易。

\n\n

根据系统的安全设置,可能不允许您运行strace不相关的进程。如果不是,则strace作为 bash 的父级运行:

\n\n
strace -tt -T -o bash.trace bash\n
Run Code Online (Sandbox Code Playgroud)\n\n

执行完成尝试,然后退出 bash 并查看跟踪文件bash.trace。每行开头都有一个时间戳,指示系统调用何时开始,行尾尖括号中的数字是系统调用所花费的时间。

\n\n

strace是一个Linux命令。如果您没有运行 Linux,请在系统上查找相应的命令 \xe2\x80\x94\xc2\xa0 dtrace, truss, trace, \xe2\x80\xa6

\n