在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}"  # 如果没有参数,默认搜索 path
    env | 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 ]; then
        echo "用法: findenv [关键字1] [关键字2] ..."
        echo "示例: findenv path python home"
        return 1
    fi
    
    echo "搜索环境变量: $@"
    echo "=================================="
    
    for keyword in "$@"; do
        echo -e "\n匹配: \033[1;32m$keyword\033[0m"
        env | grep -i --color=always "$keyword" | while IFS= read -r line; do
            echo "  $line"
        done
    done
}

使用方法:

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/games
  2: XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
==================================
找到 2 个匹配项

$ findenv python
搜索环境变量: python
==================================
  1: PYTHONPATH=/usr/lib/python3.8/site-packages
==================================
找到 1 个匹配项

使用方法五:

$ showpaths
=== PATH 相关环境变量 ===

PATH
     1  /usr/local/bin
     2  /usr/bin
     3  /bin
     4  /usr/local/games
     5  /usr/games

XDG_SESSION_PATH
     1  /org/freedesktop/DisplayManager/Session0

额外技巧:设置为别名

如果你想要更短的命令,可以设置别名:

# 在 .bashrc 或 .zshrc 中添加
alias fenv='findenv'
alias paths='showpaths'

这样你就可以用 fenv 和 paths 这样的短命令了。

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

posted @ 2025-10-18 10:21  FBshark  阅读(14)  评论(0)    收藏  举报