ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

在Linux中,优雅地打印环境变量

在Linux中,优雅地打印环境变量

grep 过滤
如果你只想看某个特定的环境变量,比如环境变量所有包含 path 的变量。

env | grep -i path

 

方法一:基础函数 - 直接模拟原有功能

在 ~/.bashrc 或 ~/.zshrc 文件中添加:

bash
# 基础版本:模拟 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
}

安装步骤

  1. 编辑配置文件:

     
    nano ~/.bashrc    # 如果使用 Bash
    # 或者
    nano ~/.zshrc     # 如果使用 Zsh
  2. 添加你喜欢的函数(推荐使用方法三或方法五)

  3. 重新加载配置:

     
    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 这样的短命令了。

推荐从方法三开始,它提供了最好的用户体验和视觉效果!

返回列表