合 grep
过滤
如果你只想看某个特定的环境变量,比如环境变量所有包含 path
的变量。
env | grep -i path
方法一:基础函数 - 直接模拟原有功能
在 ~/.bashrc
或 ~/.zshrc
文件中添加:
# 基础版本:模拟 env | grep -i path
findpath() {env | grep -i path
}
方法二:增强版本 - 支持自定义搜索词
# 增强版本:可以搜索任意关键字,默认搜索 path
findenv() {local keyword="${1:-path}" # 如果没有参数,默认搜索 pathenv | grep -i "$keyword"
}
使用方法:
findenv # 搜索包含 path 的环境变量
findenv home # 搜索包含 home 的环境变量
findenv java # 搜索包含 java 的环境变量
方法三:高级版本 - 彩色输出和统计信息
# 高级版本:彩色输出,显示行号和统计信息
findenv() {local keyword="${1:-path}"local count=$(env | grep -i "$keyword" | wc -l)echo -e "搜索环境变量: \033[1;32m$keyword\033[0m"echo "=================================="env | grep -i --color=always "$keyword" | nl -w 2 -s ": "echo "=================================="echo -e "找到 \033[1;33m$count\033[0m 个匹配项"
}
方法四:超强版本 - 支持多个搜索模式
# 超强版本:支持多个搜索模式,更好的格式化
findenv() {if [ $# -eq 0 ]; thenecho "用法: findenv [关键字1] [关键字2] ..."echo "示例: findenv path python home"return 1fiecho "搜索环境变量: $@"echo "=================================="for keyword in "$@"; doecho -e "\n匹配: \033[1;32m$keyword\033[0m"env | grep -i --color=always "$keyword" | while IFS= read -r line; doecho " $line"donedone
}
使用方法:
findenv path python home # 同时搜索多个关键字
方法五:专门针对 PATH 的增强函数
# 专门用于 PATH 相关变量的美化显示
showpaths() {echo "=== PATH 相关环境变量 ==="# 找到所有包含 PATH 的变量env | grep -i path | while IFS= read -r line; do# 提取变量名和值var_name=$(echo "$line" | cut -d= -f1)var_value=$(echo "$line" | cut -d= -f2-)echo -e "\n\033[1;36m$var_name\033[0m"echo "$var_value" | tr ':' '\n' | nl -w 4 -s " "done
}
安装步骤
-
编辑配置文件:
nano ~/.bashrc # 如果使用 Bash # 或者 nano ~/.zshrc # 如果使用 Zsh
-
添加你喜欢的函数(推荐使用方法三或方法五)
-
重新加载配置:
source ~/.bashrc # 或者 source ~/.zshrc
使用示例
使用方法三:
$ findenv
搜索环境变量: path
==================================1: PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games2: XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
==================================
找到 2 个匹配项$ findenv python
搜索环境变量: python
==================================1: PYTHONPATH=/usr/lib/python3.8/site-packages
==================================
找到 1 个匹配项
使用方法五:
$ showpaths
=== PATH 相关环境变量 ===PATH1 /usr/local/bin2 /usr/bin3 /bin4 /usr/local/games5 /usr/gamesXDG_SESSION_PATH1 /org/freedesktop/DisplayManager/Session0
额外技巧:设置为别名
如果你想要更短的命令,可以设置别名:
# 在 .bashrc 或 .zshrc 中添加
alias fenv='findenv'
alias paths='showpaths'
这样你就可以用 fenv
和 paths
这样的短命令了。
推荐从方法三开始,它提供了最好的用户体验和视觉效果!