Linux创意命令组合:让终端变得有趣又高效

一、终端也要有"仪式感"------炫酷登录效果

1.1 每次登录都是惊喜

bash

复制代码
# 在 ~/.bashrc 文件最后添加
echo "🚀 $(whoami) 大佬,欢迎回到终端世界!"
echo "📅 今天是 $(date '+%Y年%m月%d日 %A')"
echo "⏰ 现在是 $(date '+%H:%M:%S')"
echo "💻 你登录的是:$(hostname)"
fortune | cowsay  # 随机名人名言 + ASCII艺术

效果:

text

复制代码
 ________________________________________
/ 代码写得好,bug自然少。 —— 佚名        \
\                                         /
 ----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

1.2 天气早知道

bash

复制代码
# 每天登录先看天气(需要 curl)
echo "🌤️  今日天气:"
curl -s "wttr.in/北京?format=3"  # 改成你的城市

效果:

text

复制代码
🌤️  今日天气:
北京: 🌤️  +12°C

二、文件管理"魔法"------高效又好玩

2.1 智能文件整理

bash

复制代码
# 一键整理下载文件夹(按类型分类)
organize_downloads() {
    cd ~/Downloads
    mkdir -p images documents archives videos others
    
    # 移动图片
    find . -maxdepth 1 -type f -name "*.jpg" -o -name "*.png" -o -name "*.gif" | xargs -I {} mv {} images/
    
    # 移动文档
    find . -maxdepth 1 -type f -name "*.pdf" -o -name "*.docx" -o -name "*.txt" | xargs -I {} mv {} documents/
    
    # 移动压缩包
    find . -maxdepth 1 -type f -name "*.zip" -o -name "*.tar.gz" | xargs -I {} mv {} archives/
    
    # 移动视频
    find . -maxdepth 1 -type f -name "*.mp4" -o -name "*.avi" | xargs -I {} mv {} videos/
    
    # 其他文件
    find . -maxdepth 1 -type f | xargs -I {} mv {} others/
    
    echo "🎉 下载文件夹整理完成!"
}

2.2 文件大小可视化

bash

复制代码
# 用字符画显示文件夹大小
alias disksize='du -sh * | sort -hr | head -20 | awk '\''{printf "%10s %s\n", $1, $2}'\'' | graph -t "#" -s "文件大小分布"'

# 或者用更简单的方式
alias treeview='du -h --max-depth=1 | sort -hr | head -10'

效果:

text

复制代码
4.2G    movies/
2.1G    downloads/
1.5G    documents/
800M    images/

三、系统监控"仪表盘"------一目了然

3.1 迷你系统监控

bash

复制代码
# 实时系统状态监控
sysmon() {
    watch -n 1 -t '
    echo "════════════════════════════════════"
    echo "🖥️  系统状态监控 - $(date "+%H:%M:%S")"
    echo "════════════════════════════════════"
    echo "👤 用户: $(whoami)"
    echo "💻 主机: $(hostname)"
    echo "📈 CPU负载: $(uptime | awk -F"load average:" '\''{print $2}'\'')"
    echo "🧠 内存: $(free -h | awk '\''/Mem:/ {print $3"/"$2}'\'')"
    echo "💾 磁盘: $(df -h / | awk '\''NR==2 {print $3"/"$2 " ("$5")"}'\'')"
    echo "🔥 温度: $(sensors | grep "Core" | head -1 | awk '\''{print $3}'\'')"
    echo "🌐 IP地址: $(hostname -I | cut -d" " -f1)"
    echo "════════════════════════════════════"
    '
}

3.2 进程管理游戏化

bash

复制代码
# 用ASCII进度条显示CPU使用率
alias cpumon='watch -n 0.5 "ps -eo pcpu,pid,comm --sort=-pcpu | head -10"'

# 内存使用饼图(字符版)
memchart() {
    free | awk '
    BEGIN {print "内存使用饼图:"}
    /Mem:/ {
        total=$2
        used=$3
        free=$4
        used_blocks=int(used/total*50)
        free_blocks=50-used_blocks
        printf "已使用: ["
        for(i=0;i<used_blocks;i++) printf "█"
        for(i=0;i<free_blocks;i++) printf "░"
        printf "] %d%%\n", used/total*100
    }'
}

四、网络工具"瑞士军刀"------功能强大

4.1 智能网络诊断

bash

复制代码
# 一键网络故障排查
netdoctor() {
    echo "🔍 开始网络诊断..."
    
    echo "1️⃣ 检查网络连接..."
    ping -c 3 8.8.8.8 | grep "packet loss"
    
    echo "2️⃣ 检查DNS解析..."
    nslookup google.com | grep "Address"
    
    echo "3️⃣ 检查路由..."
    traceroute -n 8.8.8.8 | head -5
    
    echo "4️⃣ 检查端口..."
    echo "本地监听端口:"
    netstat -tunlp | grep LISTEN | head -5
    
    echo "✅ 诊断完成!"
}

4.2 下载管理器(带进度条)

bash

复制代码
# 美观的下载命令
fancy_download() {
    url=$1
    filename=$(basename $url)
    
    echo "⬇️  开始下载: $filename"
    
    # 使用curl显示进度条
    curl -L --progress-bar $url -o $filename
    
    # 下载完成提示
    echo "✅ 下载完成!"
    echo "📁 文件大小: $(du -h $filename | cut -f1)"
    echo "🔍 MD5: $(md5sum $filename | cut -d" " -f1)"
}

五、编程辅助"小助手"------开发更高效

5.1 代码行数统计(带图表)

bash

复制代码
# 统计项目代码行数
code_stats() {
    echo "📊 代码统计报告"
    echo "════════════════════════════════════"
    
    # 统计各种语言的代码行数
    total=0
    
    echo "Python文件:"
    find . -name "*.py" -exec wc -l {} + | tail -1 | awk '{print $1 "行"}'
    
    echo "JavaScript文件:"
    find . -name "*.js" -exec wc -l {} + | tail -1 | awk '{print $1 "行"}'
    
    echo "HTML文件:"
    find . -name "*.html" -exec wc -l {} + | tail -1 | awk '{print $1 "行"}'
    
    echo "CSS文件:"
    find . -name "*.css" -exec wc -l {} + | tail -1 | awk '{print $1 "行"}'
    
    echo "════════════════════════════════════"
    echo "📈 总计: $(find . -name "*.py" -o -name "*.js" -o -name "*.html" -o -name "*.css" | xargs wc -l | tail -1 | awk '{print $1 "行"}')"
}

5.2 Git状态美化

bash

复制代码
# 更直观的git状态
alias gitstatus='git status -s | awk '\''
{
    if ($1 == "??") printf "🆕 新文件: %s\n", $2
    else if ($1 == "M") printf "✏️  已修改: %s\n", $2
    else if ($1 == "D") printf "🗑️  已删除: %s\n", $2
    else if ($1 == "A") printf "✅ 已暂存: %s\n", $2
}'\'''

# 提交计数统计
gitstats() {
    echo "👤 作者贡献统计:"
    echo "════════════════════════════════════"
    git shortlog -s -n --all | head -10 | awk '{printf "%-20s %5d次提交\n", $2" "$3, $1}'
    
    echo ""
    echo "📅 每日提交统计:"
    echo "════════════════════════════════════"
    git log --pretty=format:"%ad" --date=short | sort | uniq -c | tail -7 | awk '{printf "%s: %3d次\n", $2, $1}'
}

六、娱乐休闲"小游戏"------终端也能玩

6.1 终端打字游戏

bash

复制代码
# 简单的打字练习游戏
typing_game() {
    words=("linux" "terminal" "command" "bash" "script" "programming" "developer" "opensource")
    
    echo "⌨️  打字游戏开始!输入下面出现的单词"
    echo "════════════════════════════════════"
    
    score=0
    total=5
    
    for ((i=1; i<=total; i++))
    do
        word=${words[$RANDOM % ${#words[@]}]}
        echo "第 $i/$total 个单词: $word"
        
        read -t 10 user_input
        
        if [ "$user_input" == "$word" ]; then
            echo "✅ 正确!"
            ((score++))
        else
            echo "❌ 错误!正确答案: $word"
        fi
        echo ""
    done
    
    echo "游戏结束!得分: $score/$total"
}

6.2 终端扫雷游戏

bash

复制代码
# 需要安装 bsd-games
alias minesweeper='wget -qO- https://raw.githubusercontent.com/feherke/Bash-script/master/minesweeper/minesweeper.sh | bash'

七、实用生活"小工具"------终端解决一切

7.1 简易计算器

bash

复制代码
# 支持自然语言的计算器
calc() {
    echo "🧮 计算器模式 (输入q退出)"
    echo "支持: + - * / ^ sqrt() sin() cos()"
    
    while true; do
        read -p "算式: " expr
        if [ "$expr" == "q" ]; then
            break
        fi
        
        # 使用bc计算
        result=$(echo "$expr" | bc -l 2>/dev/null)
        
        if [ $? -eq 0 ]; then
            echo "= $result"
        else
            echo "❌ 计算错误"
        fi
    done
}

7.2 随机密码生成器

bash

复制代码
# 生成安全密码
genpass() {
    length=${1:-16}
    
    echo "🔐 生成的密码:"
    
    # 方法1:使用openssl
    openssl rand -base64 48 | cut -c1-$length
    
    echo ""
    echo "💡 密码强度分析:"
    echo "长度: $length 字符"
    echo "包含: 大小写字母、数字、特殊符号"
    
    # 生成二维码(方便手机扫描)
    echo ""
    echo "📱 二维码:"
    openssl rand -base64 48 | cut -c1-$length | qrencode -t ASCII
}

八、一键配置脚本------让终端瞬间强大

8.1 终端美化一键配置

bash

复制代码
#!/bin/bash
# 保存为 setup_terminal.sh

echo "🎨 开始配置终端..."
echo "════════════════════════════════════"

# 安装必要工具
echo "1️⃣ 安装工具..."
sudo apt-get install -y fortune cowsay lolcat neofetch sl cmatrix

# 配置bashrc
echo "2️⃣ 配置bashrc..."
cat >> ~/.bashrc << EOF

# ===== 自定义配置 =====
# 欢迎信息
echo "🌟 欢迎回来,\$(whoami)!"
echo "📅 \$(date)"
fortune | cowsay | lolcat

# 别名
alias ll='ls -la --color=auto'
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
alias h='history'
alias ports='netstat -tulanp'

# 函数
weather() { curl wttr.in/\${1:-北京}; }
mcd() { mkdir -p "\$1" && cd "\$1"; }
cls() { clear; echo -e "\033c"; }

# 提示符美化
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
EOF

echo "3️⃣ 配置完成!"
echo "════════════════════════════════════"
echo "重启终端或运行: source ~/.bashrc"
echo "试试这些命令:"
echo "  neofetch    - 显示系统信息"
echo "  sl          - 火车动画"
echo "  cmatrix     - 矩阵效果"
echo "  weather     - 查看天气"

九、最佳实践组合

9.1 每日工作流

bash

复制代码
# 早上打开终端的工作流
morning() {
    clear
    echo "🌅 早上好,$(whoami)!"
    date
    echo ""
    
    # 看天气
    curl -s "wttr.in/北京?format=3"
    echo ""
    
    # 看日程(如果有)
    if [ -f ~/.agenda ]; then
        echo "📅 今日安排:"
        grep "$(date +%Y-%m-%d)" ~/.agenda || echo "今天没有安排"
    fi
    
    echo ""
    echo "💼 系统状态:"
    uptime
    echo ""
    
    # 未读邮件(如果有配置)
    if command -v neomutt &> /dev/null; then
        echo "📧 未读邮件:"
        neomutt -f imaps://imap.gmail.com -e "exit" | grep "未读" || echo "0封未读"
    fi
}

9.2 学习Linux的趣味命令

bash

复制代码
# Linux学习游戏
learn_linux() {
    commands=("ls" "cd" "pwd" "cp" "mv" "rm" "cat" "grep" "find" "chmod")
    descriptions=(
        "列出目录内容"
        "切换目录"
        "显示当前目录"
        "复制文件"
        "移动或重命名文件"
        "删除文件"
        "查看文件内容"
        "搜索文本"
        "查找文件"
        "修改文件权限"
    )
    
    echo "🐧 Linux命令学习卡片"
    echo "════════════════════════════════════"
    
    for i in {1..5}; do
        index=$((RANDOM % ${#commands[@]}))
        echo "命令: ${commands[$index]}"
        read -p "它的作用是?" answer
        echo "正确答案: ${descriptions[$index]}"
        echo ""
    done
}

十、高级创意组合

10.1 终端ASCII艺术

bash

复制代码
# 随机显示ASCII艺术
show_art() {
    arts=("cowsay" "figlet" "toilet" "jp2a")
    
    case ${arts[$RANDOM % ${#arts[@]}]} in
        "cowsay")
            fortune | cowsay
            ;;
        "figlet")
            echo "LINUX" | figlet
            ;;
        "toilet")
            echo "TERMINAL" | toilet -f term
            ;;
        "jp2a")
            if command -v jp2a &> /dev/null; then
                jp2a --colors ~/Pictures/linux.png 2>/dev/null || echo "需要图片"
            fi
            ;;
    esac
}

# 添加到bashrc
echo 'alias art="show_art"' >> ~/.bashrc

10.2 智能命令提示

bash

复制代码
# 输入错误命令时的智能提示
command_not_found_handle() {
    echo "🤔 命令未找到: $1"
    echo "📚 相关命令:"
    
    # 在历史中找相似命令
    history | grep "$1" | tail -3 | sed 's/^[ ]*[0-9]*[ ]*//'
    
    # 使用apropos搜索
    echo ""
    echo "🔍 手册搜索:"
    apropos "$1" 2>/dev/null | head -5
}
相关推荐
L_09079 小时前
【Linux】进程状态
linux·开发语言·c++
啟明起鸣9 小时前
【Nginx 网关开发】上手 Nginx,简简单单启动一个静态 html 页面
运维·c语言·前端·nginx·html
小生不才yz9 小时前
shell编程 - 数据流指南
linux
lisanmengmeng9 小时前
添加ceph节点
linux·服务器·ceph
Tinyundg9 小时前
Linux系统分区
linux·运维·服务器
要做一个小太阳9 小时前
华为Atlas 900 A3 SuperPoD 超节点网络架构
运维·服务器·网络·华为·架构
江畔何人初9 小时前
service发现
linux·运维·云原生
life码农9 小时前
Linux系统清空文件内容的几种方法
linux·运维·chrome
zbguolei9 小时前
虚拟机安装Ubuntu后无法登录
linux·运维·ubuntu