一、脚本编写
以下是一个实用的中文查询Linux常用命令的Shell脚本,支持中文关键词模糊匹配,展示命令名称、用途和常用示例。脚本包含了文件操作、系统管理、网络操作等高频命令,且交互友好:
#!/bin/bash# 中文查询Linux常用命令脚本# 支持中文关键词模糊匹配,展示命令说明和示例# 设置字符编码,确保中文正常显示exportLANG=zh_CN.UTF-8exportLC_ALL=zh_CN.UTF-8# 定义命令数据库(格式:"中文关键词|命令|用途|示例")declare-Acmd_database=(["文件查看|查看文件|cat"]="cat|查看文件内容|cat file.txt # 查看文件全部内容\ncat -n file.txt # 显示行号查看"["复制|拷贝|cp"]="cp|复制文件/目录|cp file.txt /tmp/ # 复制文件到tmp目录\ncp -r dir/ /tmp/ # 递归复制目录"["移动|重命名|mv"]="mv|移动/重命名文件/目录|mv old.txt new.txt # 重命名文件\nmv file.txt /tmp/ # 移动文件到tmp"["删除|移除|rm"]="rm|删除文件/目录|rm file.txt # 删除文件\nrm -rf dir/ # 强制递归删除目录"["创建目录|新建文件夹|mkdir"]="mkdir|创建目录|mkdir new_dir # 创建单个目录\nmkdir -p dir1/dir2 # 递归创建多级目录"["查看当前目录|pwd"]="pwd|显示当前工作目录|pwd # 输出当前路径如:/home/user"["切换目录|cd"]="cd|切换工作目录|cd /home # 切换到home目录\ncd .. # 回到上级目录\ncd ~ # 回到用户家目录"["列出文件|查看文件列表|ls"]="ls|列出目录内容|ls # 列出当前目录文件\nls -l # 详细列表(权限/大小/时间)\nls -a # 显示隐藏文件"["查找文件|find"]="find|查找文件/目录|find / -name\"file.txt\"# 全局查找文件\nfind ./ -type d # 查找当前目录下所有子目录"["搜索内容|grep"]="grep|文本内容搜索|grep\"error\"log.txt # 在日志中搜索error\nps aux | grep nginx # 查找nginx进程"["查看进程|ps"]="ps|查看进程信息|ps aux # 查看所有进程详细信息\nps -ef | grep java # 查找java进程"["杀死进程|kill"]="kill|终止进程|kill 1234 # 终止PID为1234的进程\nkill -9 1234 # 强制终止进程"["查看磁盘|df"]="df|查看磁盘空间|df -h # 人性化显示磁盘使用情况\ndf -T # 显示文件系统类型"["查看目录大小|du"]="du|查看目录/文件大小|du -sh dir/ # 显示目录总大小\ndu -h # 显示各文件大小"["网络状态|netstat"]="netstat|查看网络连接|netstat -tuln # 查看监听端口\nnetstat -an # 查看所有网络连接"["查看IP|ip地址|ifconfig"]="ifconfig|查看/配置网络接口|ifconfig # 查看所有网卡信息\nifconfig eth0 # 查看指定网卡信息"["下载文件|wget"]="wget|网络下载文件|wget https://example.com/file.tar.gz # 下载文件\nwget -O newname.tar.gz https://example.com/file.tar.gz # 重命名下载"["解压缩|解压|tar"]="tar|打包/解压缩文件|tar -zxvf file.tar.gz # 解压gz压缩包\ntar -cvf archive.tar dir/ # 打包目录"["权限修改|chmod"]="chmod|修改文件权限|chmod 755 script.sh # 设置可执行权限\nchmod +x script.sh # 添加执行权限"["用户切换|su"]="su|切换用户|su root # 切换到root用户\nsu - user # 切换到用户并加载环境变量"["执行权限|sudo"]="sudo|以管理员权限执行命令|sudo apt update # 管理员权限更新软件源\nsudo -i # 切换到root环境")# 彩色输出函数print_color(){localcolor=$1localtext=$2case$colorinred)echo-e"\033[31m$text\033[0m";;green)echo-e"\033[32m$text\033[0m";;yellow)echo-e"\033[33m$text\033[0m";;blue)echo-e"\033[34m$text\033[0m";;purple)echo-e"\033[35m$text\033[0m";;cyan)echo-e"\033[36m$text\033[0m";;*)echo"$text";;esac}# 显示帮助信息show_help(){clearprint_color"cyan""======= Linux中文命令查询工具 ======="echo"使用说明:"echo"1. 输入中文关键词(如:复制、查看文件、进程)"echo"2. 支持模糊匹配(如输入'文件'会显示所有文件相关命令)"echo"3. 输入 'q' 或 '退出' 退出程序"echo"4. 输入 'help' 或 '帮助' 显示本帮助信息"echo-e"\n常用关键词示例:"print_color"yellow""文件查看、复制、删除、进程、网络、解压、权限、磁盘"echo"======================================"}# 搜索命令函数search_commands(){localkeyword=$1localfound=0print_color"blue""\n======= 搜索结果(关键词:$keyword)======="echo""# 遍历命令数据库匹配关键词forkeyin"${!cmd_database[@]}";doif[["$key"==*"$keyword"*]];thenfound=1# 解析命令信息localinfo=${cmd_database[$key]}localcmd=$(echo"$info"|cut-d'|'-f1)localdesc=$(echo"$info"|cut-d'|'-f2)localexample=$(echo"$info"|cut-d'|'-f3)# 输出命令信息print_color"green""命令:$cmd"print_color"purple""用途:$desc"print_color"yellow""示例:"echo-e"$example\n"echo"--------------------------------------"fidoneif[$found-eq0];thenprint_color"red""未找到相关命令,请尝试其他关键词!"print_color"yellow""提示:输入 'help' 查看帮助和常用关键词"fi}# 主程序main(){clearshow_helpwhiletrue;doecho-e"\n"print_color"cyan""请输入查询关键词(输入q退出/help帮助):"read-p"➜ "input# 处理输入case$inputin[qQ]|退出|quit|exit)print_color"green""感谢使用,再见!"exit0;;help|帮助|h|H)show_help;;"")print_color"red""错误:请输入有效关键词!";;*)search_commands"$input";;esacdone}# 启动主程序main脚本功能特点:
- 中文模糊匹配:输入如"文件"、“进程”、"网络"等关键词,自动匹配相关命令
- 彩色输出:命令/用途/示例使用不同颜色区分,更易阅读
- 完整的命令说明:每个命令包含用途描述+常用示例
- 友好的交互:支持help/帮助、q/退出等交互指令
- 编码兼容:设置UTF-8编码,确保中文正常显示
使用方法:
- 将脚本保存为
cmd_zh.sh - 添加执行权限:
chmod +x cmd_zh.sh - 运行脚本:
./cmd_zh.sh - 输入中文关键词查询(如:复制、查看进程、解压、磁盘空间)
示例查询效果:
输入关键词"复制",会显示:
命令:cp 用途:复制文件/目录 示例: cp file.txt /tmp/ # 复制文件到tmp目录 cp -r dir/ /tmp/ # 递归复制目录可扩展说明:
如果需要添加更多命令,只需在cmd_database数组中按照格式添加:["中文关键词1|中文关键词2|命令"]="命令|用途|示例"
例如添加ping命令:["网络测试|ping"]="ping|测试网络连通性|ping baidu.com # 测试百度连通性\nping -c 4 192.168.1.1 # 发送4个数据包测试"
该脚本兼容大多数Linux发行版(Ubuntu、CentOS、Debian等),只需确保系统安装了bash和基本的文本处理工具(cut、grep等)。
二、脚本加入系统环境变量,使其能在任意目录直接调用
Linux 系统会默认搜索/usr/local/bin、/usr/bin、/bin等目录中的可执行文件,将脚本移动到这些目录即可直接调用。
步骤:
建议重命名脚本(去掉后缀,更像系统命令,方便使用):
mv./cmd_zh.sh cmd_zh移动到
/usr/local/bin(该目录专门用于存放用户自定义的可执行程序,优先级高且不影响系统原有命令):sudomvcmd_zh /usr/local/bin/确保脚本有执行权限:
sudochmod+x /usr/local/bin/cmd_zh
使用:
此时在任意目录直接输入cmd_zh即可运行脚本:
cmd_zh验证是否成功:
在任意目录执行以下命令,能正常运行脚本即表示成功:
cmd_zh# 或 cmd_zh.sh例如:
cd/tmp# 切换到临时目录cmd_zh# 直接运行脚本,正常显示查询界面即成功- 博客园
- 公众号