在 CentOS(以及大多数 Linux 系统)里,“env 比较差异”通常指对比两个环境变量集合的不同,常见场景有:
env vs 某个脚本执行后的 env下面按最常用 → 最专业给你几种方法。
env > env_before.txt
# 做一些操作,比如 source 某个脚本、切换用户
env > env_after.txt
diff env_before.txt env_after.txt
或更好看一点:
vimdiff env_before.txt env_after.txt
✅ 优点:简单直观
❌ 缺点:顺序可能不同,影响 diff
env | sort > env_before.txt
env | sort > env_after.txt
diff env_before.txt env_after.txt
或者一行:
diff <(env | sort) <(env | sort)
comm -3 <(env | sort) <(env | sort)
更清晰一点:
comm -3 \
<(sort env_before.txt) \
<(sort env_after.txt)
说明:
env | sort > user1.env
su - otheruser -c 'env | sort' > user2.env
diff user1.env user2.env
env | sort > before.env
source your_script.sh
env | sort > after.env
diff before.env after.env
set 对比(包含 shell 变量)如果变量不是 export 的,env 看不到,要用:
set | sort > before.txt
set | sort > after.txt
diff before.txt after.txt
comm -23 <(env | cut -d= -f1 | sort) \
<(env | cut -d= -f1 | sort)
✅ 最推荐日常用法:
diff <(env | sort) <(env | sort)
✅ 对比脚本影响:
env | sort > before
source xxx.sh
env | sort > after
diff before after
如果你能说清楚:
我可以给你更精准的命令。