Linux常用命令查询工具(好记性不如烂笔头)
一、脚本编写
以下是一个实用的中文查询Linux常用命令的Shell脚本,支持中文关键词模糊匹配,展示命令名称、用途和常用示例。脚本包含了文件操作、系统管理、网络操作等高频命令,且交互友好:
#!/bin/bash
# 中文查询Linux常用命令脚本
# 支持中文关键词模糊匹配,展示命令说明和示例
# 设置字符编码,确保中文正常显示
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
# 定义命令数据库(格式:"中文关键词|命令|用途|示例")
declare -A cmd_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() {
local color=$1
local text=$2
case $color in
red) 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() {
clear
print_color "cyan" "======= Linux中文命令查询工具 ======="
echo "使用说明:"
echo "1. 输入中文关键词(如:复制、查看文件、进程)"
echo "2. 支持模糊匹配(如输入'文件'会显示所有文件相关命令)"
echo "3. 输入 'q' 或 '退出' 退出程序"
echo "4. 输入 'help' 或 '帮助' 显示本帮助信息"
echo -e "\n常用关键词示例:"
print_color "yellow" "文件查看、复制、删除、进程、网络、解压、权限、磁盘"
echo "======================================"
}
# 搜索命令函数
search_commands() {
local keyword=$1
local found=0
print_color "blue" "\n======= 搜索结果(关键词:$keyword)======="
echo ""
# 遍历命令数据库匹配关键词
for key in "${!cmd_database[@]}"; do
if [[ "$key" == *"$keyword"* ]]; then
found=1
# 解析命令信息
local info=${cmd_database[$key]}
local cmd=$(echo "$info" | cut -d'|' -f1)
local desc=$(echo "$info" | cut -d'|' -f2)
local example=$(echo "$info" | cut -d'|' -f3)
# 输出命令信息
print_color "green" "命令:$cmd"
print_color "purple" "用途:$desc"
print_color "yellow" "示例:"
echo -e "$example\n"
echo "--------------------------------------"
fi
done
if [ $found -eq 0 ]; then
print_color "red" "未找到相关命令,请尝试其他关键词!"
print_color "yellow" "提示:输入 'help' 查看帮助和常用关键词"
fi
}
# 主程序
main() {
clear
show_help
while true; do
echo -e "\n"
print_color "cyan" "请输入查询关键词(输入q退出/help帮助):"
read -p "➜ " input
# 处理输入
case $input in
[qQ]|退出|quit|exit)
print_color "green" "感谢使用,再见!"
exit 0
;;
help|帮助|h|H)
show_help
;;
"")
print_color "red" "错误:请输入有效关键词!"
;;
*)
search_commands "$input"
;;
esac
done
}
# 启动主程序
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(该目录专门用于存放用户自定义的可执行程序,优先级高且不影响系统原有命令):sudo mv cmd_zh /usr/local/bin/ -
确保脚本有执行权限:
sudo chmod +x /usr/local/bin/cmd_zh
使用:
此时在任意目录直接输入 cmd_zh 即可运行脚本:
cmd_zh
验证是否成功:
在任意目录执行以下命令,能正常运行脚本即表示成功:
cmd_zh # 或 cmd_zh.sh
例如:
cd /tmp # 切换到临时目录
cmd_zh # 直接运行脚本,正常显示查询界面即成功

浙公网安备 33010602011771号