在 Debian 系统里,“调试 env”一般可以分成几类场景。下面按最常见用法给你一个清晰清单,你可以对照自己的情况。
env
或只看某个变量:
echo $PATH
echo $HOME
查看 shell 实际加载的环境:
printenv
echo $SHELL
常见:
/bin/bash → 看 .bashrc / .profile/bin/sh → 可能是 dash(不读 .bashrc)/bin/zsh → 看 .zshrc常见文件:
~/.bashrc
~/.profile
~/.bash_profile
/etc/environment
/etc/profile
/etc/profile.d/*.sh
⚠️ 注意:
su 和 su - 行为不同调试建议:
su -
然后再看 env
env your_command
#!/bin/bash
set -x
env
PATH=/usr/local/bin:$PATH ./your_program
或:
export DEBUG=1
./app
如果你发现:
终端里 env 正常,但 systemd 服务里没有
查看服务环境:
systemctl show your_service -p Environment
设置方式:
[Service]
Environment=FOO=bar
或:
sudo systemctl edit your_service
重启:
sudo systemctl daemon-reload
sudo systemctl restart your_service
❌ 在 .bashrc 里设变量,但用 cron / systemd
✅ 用 /etc/environment 或 service 配置
❌ 用 export 写在非 login shell 文件
✅ 确认 shell 类型
❌ su 而不是 su -
✅ 用 su - 模拟登录环境
你可以告诉我:
cat /etc/debian_version)我可以直接帮你定位 ✅