Linux无法补全参数和选项
几乎所有 Linux 发行版的最小化安装都默认不包含 bash-completion,需要手动安装
Bash 原生补全:只能补全 “命令名” 或 “文件名”(比如输入
ls /u按 Tab 补全为ls /usr)。bash-completion 增强补全:可以补全命令的具体参数 / 选项(比如输入
docker run --按 Tab 补全出--detach、--name等选项)、子命令(比如输入git che补全为git checkout)、动态补全(比如补全 Kubernetes 的 Pod 名称)。
装包:
sudo dnf install bash-completion -y立即生效:
source /etc/profile.d/bash_completion.sh
或
退出当前终端,重新登录MySQL无法补全
在登录到数据库后执行
MariaDB [(none)]> status
--------------
mysql Ver 15.1 Distrib 10.5.29-MariaDB, for Linux (x86_64) using EditLine wrapper在 status 输出中有:
using EditLine wrapperMariaDB/MySQL 的客户端有两种编译方式:
libedit 默认安装在很多 Linux 发行版上(包括 RHEL/CentOS 的 yum 默认包),它是 BSD 许可,不会因为 GPL 的授权影响到发布的软件
Readline 是 GPL 许可,MySQL 官方为了避免 GPL 授权约束,用了 EditLine/libedit。
方法 1:安装支持补全的 mysql-client / mariadb-client
大多数发行版的 mysql-client 默认使用 readline。
你可以试试安装 MySQL 官方社区版客户端:
yum remove mariadb
yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
yum install mysql-community-client然后用新的 client 连接:
mysql -u root -p方法 2:使用 MyCLI
一个比 MySQL CLI 更强大的第三方客户端:
yum install -y python3
yum install -y python3-pip
yum install -y gcc gcc-c++ make
yum install -y python3-devel
yum install -y openssl-devel libffi-devel
pip3 install mycli然后:
mycli -u root -pMyCLI 支持:
自动补全(表名、库名、字段名、关键字)
智能提示
语法高亮