公司动态
终端命令行工具大全:从信息查询到娱乐游戏的实用指南
今天来看一个特别有意思的项目——古典程序员们的浪漫摸鱼专用命令行工具们。这个项目收集了各种能在终端中运行的有趣命令行工具让程序员在看似严肃的工作环境中也能找到一些轻松有趣的时刻。这些工具大多跨平台支持可以在 Windows、macOS 和 Linux 上运行不需要复杂的 GUI 界面直接在终端中就能带来各种实用或娱乐功能。从天气预报、股票查看到游戏、动画甚至是一些工作效率工具都能在命令行中完成。如果你经常需要在终端工作或者喜欢那种一切皆可命令行的极客风格这篇文章介绍的工具绝对值得一试。下面我会详细介绍这些工具的功能特点、安装方式和使用方法让你快速上手。1. 核心能力速览能力项说明工具类型终端命令行工具集合主要功能信息查询、娱乐游戏、工作效率、系统监控等跨平台支持Windows、macOS、Linux资源占用极低基本不占用额外系统资源安装方式包管理器安装或直接下载可执行文件使用场景终端工作间隙、学习命令行、提高工作效率2. 适用场景与使用边界这些命令行工具最适合以下几类场景开发工作间隙在编码调试的间隙用命令行快速查看信息或进行简单娱乐不需要切换窗口或打开浏览器。终端重度用户习惯在终端中完成大部分工作的用户可以通过这些工具丰富终端的功能体验。命令行学习对于想学习命令行操作的新手这些有趣工具能降低学习门槛增加学习乐趣。系统监控部分工具可以提供系统状态监控帮助开发者了解机器运行状况。使用边界需要注意工作时间使用要适度避免影响正常工作部分工具可能需要网络连接确保从可信来源下载工具避免安全风险在企业环境中使用要遵守公司规定3. 环境准备与前置条件在使用这些命令行工具前需要确保系统环境准备就绪3.1 操作系统要求Windows: Windows 10 或更高版本推荐使用 Windows TerminalmacOS: 10.14 或更高版本使用系统自带的终端或 iTerm2Linux: 主流通用发行版如 Ubuntu、CentOS、Fedora 等3.2 包管理器准备不同的操作系统需要安装对应的包管理器# macOS 安装 Homebrew /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # Ubuntu/Debian 更新 apt sudo apt update sudo apt upgrade # CentOS/RHEL 更新 yum sudo yum update # Windows 安装 Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(https://community.chocolatey.org/install.ps1))3.3 终端增强可选但推荐为了更好的使用体验建议安装增强型终端# Windows 安装 Windows Terminal choco install microsoft-windows-terminal # macOS 安装 iTerm2 brew install --cask iterm2 # Linux 安装可选终端 sudo apt install terminator # Ubuntu/Debian4. 实用信息查询工具4.1 天气查询工具 curl这是一个最简单的天气查询方法使用 curl 命令直接获取天气信息# 查询北京天气 curl wttr.in/beijing # 查询上海天气简洁版 curl wttr.in/shanghai?format3 # 查询未来三天的天气预报 curl wttr.in/beijing?3这个工具的优势是无需安装额外软件直接使用系统自带的 curl 命令就能获取格式优美的天气信息。4.2 股票查看工具使用 Python 实现的简单股票查询工具# 安装必要的 Python 库 pip install requests beautifulsoup4 # 创建股票查询脚本 cat stock.py EOF import requests import sys def get_stock_price(symbol): try: # 这里使用模拟数据实际使用时需要接入股票API if symbol AAPL: return 苹果公司(AAPL) $175.43 ↑1.2% elif symbol TSLA: return 特斯拉(TSLA) $245.18 ↓0.8% else: return f{symbol} 当前价格: $100.00 except: return 获取股票信息失败 if __name__ __main__: if len(sys.argv) 1: print(get_stock_price(sys.argv[1])) else: print(请提供股票代码例如: python stock.py AAPL) EOF # 使用示例 python stock.py AAPL4.3 汇率转换工具简单的命令行汇率转换工具# 创建汇率转换脚本 cat currency.py EOF import requests import sys def convert_currency(amount, from_cur, to_cur): # 模拟汇率数据 rates { USD_CNY: 7.2, EUR_CNY: 7.8, JPY_CNY: 0.048 } key f{from_cur}_{to_cur} if key in rates: result amount * rates[key] return f{amount} {from_cur} {result:.2f} {to_cur} else: return 不支持的货币对 if __name__ __main__: if len(sys.argv) 4: amount float(sys.argv[1]) from_cur sys.argv[2].upper() to_cur sys.argv[3].upper() print(convert_currency(amount, from_cur, to_cur)) else: print(用法: python currency.py 金额 源货币 目标货币) print(示例: python currency.py 100 USD CNY) EOF5. 终端娱乐工具5.1 命令行游戏俄罗斯方块安装命令行俄罗斯方块游戏# 使用 Homebrew 安装 (macOS) brew install vitetris # 使用 apt 安装 (Ubuntu/Debian) sudo apt install vitetris # 运行游戏 vitetris贪吃蛇游戏简单的 Python 贪吃蛇实现# 安装必要的库 pip install curses # 创建贪吃蛇游戏 cat snake.py EOF import curses import random import time def main(stdscr): curses.curs_set(0) stdscr.nodelay(1) stdscr.timeout(100) sh, sw stdscr.getmaxyx() w curses.newwin(sh, sw, 0, 0) w.keypad(1) snake [[sh//2, sw//4]] food [random.randint(1, sh-2), random.randint(1, sw-2)] key curses.KEY_RIGHT score 0 while True: next_key w.getch() key key if next_key -1 else next_key # 游戏逻辑简化版 w.clear() w.addstr(0, 2, fScore: {score}) w.addch(food[0], food[1], curses.ACS_PI) # 简单的游戏提示 w.addstr(sh-1, 2, 按q退出方向键控制) if key ord(q): break w.addstr(sh//2, sw//2-5, Game Over!) w.refresh() time.sleep(2) if __name__ __main__: curses.wrapper(main) EOF5.2 ASCII 艺术和动画命令行火车动画使用 sl 命令显示火车动画# 安装 sl (Steam Locomotive) # macOS brew install sl # Ubuntu/Debian sudo apt install sl # CentOS/RHEL sudo yum install sl # 运行火车动画 sl牛说笑话 (cowsay)经典的命令行趣味工具# 安装 cowsay # macOS brew install cowsay # Ubuntu/Debian sudo apt install cowsay # 使用示例 echo Hello, World! | cowsay cowsay 今天又是摸鱼的一天~ # 使用不同样式的牛 cowsay -f dragon 我是龙 cowsay -f elephant 大象也来凑热闹6. 工作效率工具6.1 番茄工作法计时器创建简单的命令行番茄钟cat pomodoro.py EOF import time import sys import os def clear_screen(): os.system(cls if os.name nt else clear) def countdown(t, message): while t: mins, secs divmod(t, 60) timer {:02d}:{:02d}.format(mins, secs) print(f\r{message}: {timer}, end, flushTrue) time.sleep(1) t - 1 print() def pomodoro_timer(): work_time 25 * 60 # 25分钟工作 break_time 5 * 60 # 5分钟休息 while True: clear_screen() print( 番茄工作法计时器) print(1. 开始工作周期) print(2. 退出) choice input(请选择: ) if choice 1: # 工作周期 countdown(work_time, 工作时间剩余) print(工作时间结束休息一下~) # 休息周期 countdown(break_time, 休息时间剩余) print(休息结束准备继续工作) elif choice 2: break else: print(无效选择) if __name__ __main__: pomodoro_timer() EOF6.2 简单的待办事项管理命令行待办事项工具cat todo.py EOF import json import os import sys TODO_FILE todo.json def load_todos(): if os.path.exists(TODO_FILE): with open(TODO_FILE, r) as f: return json.load(f) return [] def save_todos(todos): with open(TODO_FILE, w) as f: json.dump(todos, f, indent2) def add_todo(todo_text): todos load_todos() todo_id len(todos) 1 todos.append({id: todo_id, text: todo_text, done: False}) save_todos(todos) print(f添加待办: {todo_text}) def list_todos(): todos load_todos() if not todos: print(没有待办事项) return for todo in todos: status ✓ if todo[done] else print(f{todo[id]}. [{status}] {todo[text]}) def complete_todo(todo_id): todos load_todos() for todo in todos: if todo[id] todo_id: todo[done] True save_todos(todos) print(f完成待办: {todo[text]}) return print(未找到该待办事项) if __name__ __main__: if len(sys.argv) 2: print(用法: python todo.py [add|list|complete] [内容]) sys.exit(1) command sys.argv[1] if command add and len(sys.argv) 2: add_todo( .join(sys.argv[2:])) elif command list: list_todos() elif command complete and len(sys.argv) 2: complete_todo(int(sys.argv[2])) else: print(无效命令) EOF7. 系统监控工具7.1 简单的系统资源监控使用 Python 实现的系统监控工具cat system_monitor.py EOF import psutil import time import os def get_system_info(): # CPU 使用率 cpu_percent psutil.cpu_percent(interval1) # 内存使用情况 memory psutil.virtual_memory() memory_percent memory.percent memory_used memory.used // (1024**3) # GB memory_total memory.total // (1024**3) # GB # 磁盘使用情况 disk psutil.disk_usage(/) disk_percent disk.percent disk_used disk.used // (1024**3) # GB disk_total disk.total // (1024**3) # GB return { cpu: cpu_percent, memory_percent: memory_percent, memory_used: memory_used, memory_total: memory_total, disk_percent: disk_percent, disk_used: disk_used, disk_total: disk_total } def display_monitor(): try: while True: info get_system_info() os.system(cls if os.name nt else clear) print( 系统监控 ) print(fCPU 使用率: {info[cpu]}%) print(f内存: {info[memory_used]}/{info[memory_total]}GB ({info[memory_percent]}%)) print(f磁盘: {info[disk_used]}/{info[disk_total]}GB ({info[disk_percent]}%)) print(\n按 CtrlC 退出) time.sleep(2) except KeyboardInterrupt: print(\n监控结束) if __name__ __main__: display_monitor() EOF7.2 网络连接监控监控网络连接状态cat network_monitor.py EOF import psutil import time def monitor_network(): old_value psutil.net_io_counters().bytes_sent psutil.net_io_counters().bytes_recv while True: new_value psutil.net_io_counters().bytes_sent psutil.net_io_counters().bytes_recv speed (new_value - old_value) / 1024 # KB/s print(f\r网络速度: {speed:.2f} KB/s, end, flushTrue) old_value new_value time.sleep(1) if __name__ __main__: try: monitor_network() except KeyboardInterrupt: print(\n监控结束) EOF8. 安装与使用技巧8.1 批量安装脚本为了方便一次性安装多个工具可以创建安装脚本# 创建安装脚本 (macOS) cat install_tools_macos.sh EOF #!/bin/bash echo 开始安装命令行工具... # 安装 Homebrew (如果尚未安装) if ! command -v brew /dev/null; then echo 安装 Homebrew... /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) fi # 安装各种工具 brew install cowsay brew install sl brew install vitetris brew install htop brew install tree echo 安装完成 EOF # 给脚本执行权限 chmod x install_tools_macos.sh8.2 创建命令别名为了更方便地使用这些工具可以在 shell 配置文件中添加别名# 编辑 ~/.bashrc 或 ~/.zshrc cat ~/.bashrc EOF # 摸鱼工具别名 alias weathercurl wttr.in alias myipcurl ipinfo.io/ip alias todopython ~/tools/todo.py alias pomodoropython ~/tools/pomodoro.py alias monitorpython ~/tools/system_monitor.py EOF # 重新加载配置 source ~/.bashrc9. 高级用法与自定义9.1 创建个性化欢迎信息每次打开终端时显示个性化信息cat ~/tools/welcome.sh EOF #!/bin/bash echo 终端工作环境 echo 用户: $(whoami) echo 时间: $(date) echo 系统: $(uname -s) $(uname -r) echo 目录: $(pwd) echo # 随机显示一句励志或有趣的话 quotes( 代码写得好bug 少不了 今天也是充满 bug 的一天 程序员不摸鱼和咸鱼有什么区别 如果代码能运行就不要动它 ) index$((RANDOM % ${#quotes[]})) echo ${quotes[$index]} echo EOF # 在 ~/.bashrc 或 ~/.zshrc 中添加 echo ~/tools/welcome.sh ~/.bashrc9.2 自动化日常任务创建自动化脚本处理重复性工作cat daily_setup.sh EOF #!/bin/bash echo 开始每日工作环境设置... # 打开常用开发工具 echo 1. 启动开发环境... code . # 启动 VS Code # 检查系统状态 echo 2. 检查系统状态... df -h | grep -v snap | head -10 # 显示磁盘使用情况 free -h # 显示内存使用情况 # 启动必要的开发服务 echo 3. 启动开发服务... # docker-compose up -d # 如果需要的话 echo 每日设置完成 EOF10. 常见问题与解决方案10.1 工具无法安装问题现象使用包管理器安装工具时失败解决方案# 更新包管理器 brew update # macOS sudo apt update # Ubuntu/Debian # 检查网络连接 ping -c 3 google.com # 尝试使用镜像源 # 对于 Homebrew可以更换镜像源 git -C $(brew --repo) remote set-url origin https://mirrors.ustc.edu.cn/brew.git10.2 命令找不到问题现象输入命令后显示 command not found解决方案# 检查命令是否安装 which cowsay # 或 whereis cowsay # 检查 PATH 环境变量 echo $PATH # 手动添加路径到 PATH export PATH$PATH:/usr/local/games # 某些工具可能安装在这里10.3 Python 脚本运行错误问题现象运行 Python 脚本时出现模块导入错误解决方案# 安装必要的 Python 包 pip install psutil requests beautifulsoup4 # 如果使用 Python3确保使用正确的命令 python3 script.py # 而不是 python script.py # 检查 Python 版本 python --version10.4 权限问题问题现象脚本没有执行权限或无法访问某些资源解决方案# 给脚本添加执行权限 chmod x script.sh # 以管理员权限运行谨慎使用 sudo ./script.sh # 检查文件权限 ls -l script.sh11. 安全使用建议在使用这些命令行工具时需要注意以下安全事项下载来源可信只从官方仓库或可信来源下载工具权限最小化不要给不必要的权限特别是 sudo 权限定期更新保持工具和系统更新到最新版本网络访问控制限制工具的网络访问权限备份重要数据定期备份配置和重要文件企业政策遵守在工作环境中使用要遵守公司安全政策12. 最佳实践总结通过这些命令行工具你可以在终端中实现很多有趣和实用的功能。以下是一些使用建议适度使用摸鱼工具虽好但要控制使用时间不要影响正常工作。个性化定制根据自己的需求修改和扩展这些工具让它们更符合你的使用习惯。学习命令行通过这些有趣工具的学习可以提升命令行操作技能。分享与交流发现好用的命令行工具时可以和同事分享共同提高工作效率。持续探索命令行工具生态丰富定期探索新的工具和技巧。这些工具展现了命令行的强大和灵活证明了即使是最基础的文本界面也能实现丰富多样的功能。无论是提高工作效率还是在工作间隙放松心情命令行都能提供独特的体验。掌握这些工具的使用不仅能让你在同事面前显得更极客还能真正提升终端工作的效率和乐趣。从今天开始让你的命令行工作环境变得更加丰富多彩吧