$$ 是 Bash 内置变量,代表当前 shell 进程 PID,pstree -H $$ 可高亮显示其完整父子进程链;常用组合如 -p -a 显示 PID 和完整命令行,-u -p 显示用户和 PID,-c -l 禁用折叠并显示长命令。

直接用 pstree -H $$ 即可高亮当前 shell 及其完整父子链条。
为什么是 $$?
$$ 是 Bash 内置的特殊变量,代表当前 shell 进程的 PID。它稳定、无需查、每次执行都准确指向你正在操作的交互式终端会话起点。
- 不是
$!(上一个后台进程 PID) - 不是
$PPID(父进程 PID,可能已是 systemd 或 sshd) - 更不是手动
ps -p $$查——$$本身就是 PID 数字,可直接传给-H
常用组合推荐
单条命令就能看清上下文:
- pstree -H $$ -p -a:高亮当前 shell,同时显示所有 PID 和完整命令行(含参数),最实用
- pstree -H $$ -u -p:带用户和 PID,适合多用户环境排查权限或归属
- pstree -H $$ -c -l:禁用同名进程折叠 + 不截断长命令,适合调试复杂脚本或容器启动命令
输出中如何识别高亮链?
高亮部分通常以反色(如白字黑底)、加粗或颜色突出显示,从根到叶形成连续路径。例如:
sshd(1234)─sshd(5678)─bash(9012)─pstree(12345)
这条链清晰表明:你当前的 pstree 命令由 bash 启动,bash 由某个 ssh 登录会话创建,该会话又隶属于 sshd 主进程。
注意:-H 只高亮指定 PID 及其祖先(向上追溯),不包括它的子进程;而 -h 是高亮当前运行的 pstree 自身及其祖先,二者效果接近但语义不同——对交互式排查,-H $$ 更精准可控。


















