ssh bobby@tony:~$ which tmux
/usr/bin/tmux
ssh bobby@tony:~$ sudo which tmux
/usr/local/bin/tmux
ssh bobby@tony:~$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/sbin
ssh bobby@tony:~$ sudo echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/sbin
有人知道这是怎么回事吗?为什么sudo which tmux
返回 /usr/local/bin/tmux 而不是 /usr/bin/tmux?
PS:我安装了 2 个版本的 tmux(一个在 /usr/bin 中,另一个在 /usr/local/bin 中)。
答案1
这是因为您的root
用户有不同的路径。
sudo echo $PATH
印刷你的小路。由你的 shell 进行变量扩展,前 sudo
启动(并将其作为命令行参数传递,展开)。
尝试:
sudo sh -c 'echo $PATH'