在 mac os 上,如果我执行位于的命令ssh localhost 'md5sum --version'
则找不到。md5sum
/usr/local/bin
此路径已列出,/etc/paths
但 shell 不会读取此配置文件,因为上述命令创建了一个非登录 shell,因此 shell 认为调用者已经设置了PATH
在这种情况下,您如何更新PATH
要包含的值?/usr/local/bin
答案1
一些解释:
我找不到任何常见的位置来为 macOS 中的所有非登录 shell 设置 PATH。也许没有?:(
例如,本文解释了一些为 launchD 启动的进程设置路径的解决方案(不适用于非登录 ssh 会话):
https://lucaspin.medium.com/where-is-my-path-launchd-fc3fc5449864
但是对于您的用例,使用非登录 ssh 会话,我在 macOS Sonoma 上尝试了这个:
ssh localhost 'echo $PATH'
返回此输出:
/usr/bin:/bin:/usr/sbin:/sbin
这个 PATH 从何而来?查看 /etc/ssh/sshd_config 文件,查看前几行 (最后一行) 中的注释:
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
sshd已编译使用该 PATH