Path Isn't Real on Linux
a year ago
- #PATH
- #Shell
- #Linux
- 在Linux系统中,shell(如Debian中的dash)负责在PATH环境变量中搜索可执行文件,而非由内核处理。
- 像`cat`这样的命令在执行前由shell解析,通过PATH环境变量定位可执行文件路径。
- Python的`subprocess.run`、Go的`LookPath`和Rust的`Command::spawn`等工具同样在用户空间处理PATH解析,之后才调用系统函数。
- Linux的`execve`系统调用要求绝对路径,因此shebang必须指定完整路径或使用`/usr/bin/env`来利用PATH搜索机制。