如何实现命令补全 bash-completion

首先安装bash-completion,1. ubuntu/debian执行sudo apt update和sudo apt install bash-completion,2. centos/rhel先启用epel源再安装,fedora使用sudo dnf install bash-completion,3. arch linux使用sudo pacman -s bash-completion;然后启用功能,检查是否已启用可通过complete命令,若未启用则在~/.bashrc中添加if [-f /usr/share/bash-completion/bash_completion]; then . /usr/share/bash-completion/bash_completion fi并执行source ~/.bashrc加载;最后验证补全,输入git ch按tab应补全为checkout,systemctl sta应补全为start,ssh后按tab应列出主机,连续按两次tab应显示所有可能选项;可选自定义补全,如添加complete -w “start stop restart status” mycmd到~/.bashrc以为mycmd命令启用子命令补全,完成后重启终端即可正常使用bash-completion功能。

如何实现命令补全 bash-completion

在 Linux 系统中,

bash-completion

是一个非常实用的功能,它能根据上下文自动补全命令、选项、参数、文件名等,极大提升命令行操作效率。下面介绍如何在主流系统上安装和启用

bash-completion

一、安装 bash-completion

不同发行版的安装方式略有不同,使用对应的包管理器安装即可。

Ubuntu / Debian

sudo apt updatesudo apt install bash-completion

CentOS / RHEL / Fedora

# CentOS/RHEL(需 EPEL 源)sudo yum install epel-releasesudo yum install bash-completion# 或 Fedorasudo dnf install bash-completion

Arch Linux

sudo pacman -S bash-completion

安装完成后,

bash-completion

的脚本通常会放在

/usr/share/bash-completion/

目录下。

二、启用 bash-completion

大多数现代系统在安装后会自动启用,但你可能需要手动加载或检查是否已生效。

1. 检查是否已启用

打开终端,输入:

complete | grep -q '.*' && echo "已启用" || echo "未启用"

如果有大量输出,说明已启用。

2. 手动加载(如未自动启用)

将以下行添加到你的

~/.bashrc

/etc/bash.bashrc

中:

ViiTor实时翻译 ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116 查看详情 ViiTor实时翻译

if [ -f /usr/share/bash-completion/bash_completion ]; then    . /usr/share/bash-completion/bash_completionfi

然后重新加载配置:

source ~/.bashrc

注意:有些系统路径可能是 /usr/share/bash-completion/completions/,主脚本路径可能略有不同,可用 find /usr/share -name “bash_completion” 查找。

三、验证命令补全是否生效

测试几个常见命令的补全功能:

输入

git ch

,按

Tab

键,看是否补全为

git checkout

输入

systemctl sta

,按

Tab

,看是否补全为

start

输入

ssh

后按

Tab

,应列出已知主机(如果配置过)输入命令后按

Tab

两次,应列出所有可能的补全项

如果这些都能正常工作,说明

bash-completion

已成功启用。

四、自定义补全(可选)

你可以为自己的脚本或命令添加补全规则。例如,为一个叫

mycmd

的脚本添加简单补全:

complete -W "start stop restart status" mycmd

将这行加入

~/.bashrc

,下次输入

mycmd

后按

Tab

就能补全这些子命令。

更复杂的补全可以用

complete

_init_completion

编写函数,放在

~/.bash_completion

/etc/bash_completion.d/mycmd

中。

基本上就这些。安装 + 启用 + 重启终端,大多数常用命令的补全就会自动可用。不复杂,但容易忽略配置步骤。

以上就是如何实现命令补全 bash-completion的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/442604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
荒岛的王如何生存100天 荒岛的王生存100天攻略
上一篇 2025年11月7日 19:20:00
外卖app平台开发的流程
下一篇 2025年11月7日 19:20:10

相关推荐

  • linux下怎么查看哪些端口被占用

    linux下查看哪些端口被占用的方法:可以利用netstat命令来进行查看。netstat命令可以显示当前服务器上所有的端口及进程服务,与grep命令结合还可查看某个具体端口及服务情况。 在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过nets…

    2026年8月28日
    000
  • linux下的crontab命令的用法是什么

    crontab命令用于设置周期性被执行的指令,常见于Unix和Linux的操作系统之中。该命令可以从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行;语法“crontab 选项 UserName|file”。 本教程操作环境:linux5.9.8系统、Dell G3电脑…

    2026年8月28日
    000
  • Linux如何查看系统负载

    操作系统的负载状态,反映了应用程序的资源使用情况,从中能找出应用程序优化的瓶颈所在。 系统平均负载,是指处于运行或不可打扰状态的进程的平均数。 处于运行,表示运行态,占用 CPU,或就绪态,等待 CPU 调度。 不可打扰,表示阻塞,正在等待 I/O 推荐:【linux视频教程】 在 Linux 系统…

    2026年8月28日
    000
  • 如何解决PHP中数字转换为文字的问题?使用kwn/number-to-words库可以轻松搞定!

    可以通过一下地址学习composer:学习地址 在开发一个多语言支持的财务系统时,我遇到了一个棘手的问题:需要将数字转换为相应语言的文字描述。这在处理金额时尤为重要,因为用户需要看到像“五千零九十九美元九十九美分”这样的描述,而不是单纯的数字。为了解决这个问题,我尝试了多种方法,最终找到了kwn/n…

    用户投稿 2026年8月28日
    000
  • CentOS7多网卡绑定指南

    CentOS7多网卡绑定指南CentOS7多网卡绑定指南CentOS7多网卡绑定指南CentOS7多网卡绑定指南

    在linux 7.0及以上系统中,网络服务由networkmanager集中管控。为实现高效的链路聚合,red hat引入了team工具用于多网卡绑定配置。本文将以主备模式为例,详细介绍如何利用team技术提升网络的稳定性与性能。相关操作方法在red hat官方推荐文档《linux就该这么学》中也有…

    2026年8月28日 用户投稿
    100
  • 将越狱问题转换为求解逻辑推理题:「滥用」推理能力让LLM实现自我越狱

    将越狱问题转换为求解逻辑推理题:「滥用」推理能力让LLM实现自我越狱将越狱问题转换为求解逻辑推理题:「滥用」推理能力让LLM实现自我越狱将越狱问题转换为求解逻辑推理题:「滥用」推理能力让LLM实现自我越狱将越狱问题转换为求解逻辑推理题:「滥用」推理能力让LLM实现自我越狱

    北京航空航天大学、360 ai 安全实验室、新加坡国立大学和南洋理工大学的研究团队联合发布了一项关于大型语言模型(llms)安全性的重要研究成果。该研究提出了一种名为“推理增强对话”(race)的新型多轮攻击框架,能够有效突破llms的安全对齐机制。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜…

    2026年8月28日 用户投稿
    000
  • NetSarang(Xshell)旗下推出了一款跨平台SSH客户端PortX

    NetSarang(Xshell)旗下推出了一款跨平台SSH客户端PortXNetSarang(Xshell)旗下推出了一款跨平台SSH客户端PortXNetSarang(Xshell)旗下推出了一款跨平台SSH客户端PortXNetSarang(Xshell)旗下推出了一款跨平台SSH客户端PortX

    netsarang公司此前以xshell/xftp/xmanager等产品闻名,这些软件最初仅支持windows平台。为了拓展市场,netsarang近期推出了一款跨平台ssh客户端portx,支持mac、windows、linux三大操作系统。目前,portx可免费下载使用,为ssh客户端市场增添…

    2026年8月28日 用户投稿
    000
  • Oracle字符集检查和修改

    在部署oracle数据库重构版测试环境时,若未正确设置数据库字符集,可能导致后续脚本执行中文乱码。最终解决方案是清除所有数据,修改字符集,并重启数据库。 1、Oracle字符集概述 系统或程序运行的环境通常称为locale。设置数据库locale的最简单方法是通过设置NLS_LANG环境参数。在Li…

    2026年8月28日
    000
  • linux怎么安装redis扩展

    linux怎么安装redis扩展linux怎么安装redis扩展linux怎么安装redis扩展linux怎么安装redis扩展

    linux怎么安装redis扩展? 相关推荐:【Linux视频教程】 linux安装redis扩展的方法: 1、首先下载php-redis扩展包 2、解压拆包后进入目录,可以看到如下: 3、在该目录下执行php安装目录下的phpize命令(如不知道phpize路径  可以使用whereis phpi…

    2026年8月28日 用户投稿
    000
  • 重磅 | GitHub 已确认被微软收购!

    github作为一个庞大的代码库,已成为开发人员和公司托管项目、文档和代码的首选平台。苹果、亚马逊、谷歌等众多科技巨头都使用github。微软是该平台的最大贡献者,拥有超过1000名员工积极推送代码到github上的存储库中。微软甚至在github上公开托管了原始windows文件管理器的源代码。2…

    2026年8月28日
    100
  • Linux 基本操作命令总结

    下面给大家总结介绍linux 基本操作命令,希望对需要的朋友有所帮助,更多linux使用教程请访问linux视频教程进行学习! Linux 基本操作命令 文件和目录管理 创建和删除 创建:mkdir 删除:rm 删除非空目录:rm -rf file 目录 删除日志 rm log (等价: $find…

    2026年8月28日
    000
  • Laravel 环境搭建与基础配置(Windows/Mac/Linux)

    在不同操作系统上搭建 laravel 环境的步骤如下:1. windows:使用 xampp 安装 php 和 composer,配置环境变量,安装 laravel。2. mac:使用 homebrew 安装 php 和 composer,安装 laravel。3. linux:使用 ubuntu …

    2026年8月28日
    100
  • Linux expect详解

    随处可见的expect 第一次见expect这个命令还是我第一次参加全量上线的时候,那是公司的一个牛人用Shell脚本写的一套自动部署、MD5 比对、发布的全量上线工具,没事的时候,看了下其中的几个脚本,好多的expect命令。实在是看不懂这个expect命令的用法,所以就找时间总结了这篇关于exp…

    2026年8月28日
    000
  • 手把手教你们Python配置OpenCV环境,小白看一遍就会了

    手把手教你们Python配置OpenCV环境,小白看一遍就会了手把手教你们Python配置OpenCV环境,小白看一遍就会了手把手教你们Python配置OpenCV环境,小白看一遍就会了手把手教你们Python配置OpenCV环境,小白看一遍就会了

    ?️‍?1、简介?1.1、Opecv介绍 开课之前,我们先给大家讲讲opecv是一个基于bsd许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、windows、android和mac os操作系统上。 [1] 它轻量级而且高效——由一系列 c 函数和少量 c++ 类构成,同时…

    2026年8月28日 用户投稿
    300
  • 使用Flag变量实现Java菜单循环与返回

    本文将介绍如何在Java程序中使用flag变量控制菜单的循环和返回。通过设置和判断flag变量的值,可以实现从子菜单返回主菜单的功能,避免不必要的菜单重复显示,提升用户体验。本文将提供代码示例,详细解释flag变量的工作原理,并给出使用注意事项。 在Java程序中,经常需要构建交互式的菜单界面,让用…

    2026年8月28日
    000
  • Linux shell 脚本分享

    linux shell 脚本分享 Shell 是一个命令解释器,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户,Shell 它是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁,同时,Shell 也可以作为一门强大的编程语言 推荐:【Linux视频教程】 理论 我…

    用户投稿 2026年8月28日
    100
  • 如何解决PHP中的FIDO2/WebAuthn认证问题?使用web-auth/webauthn-lib库可以!

    可以通过一下地址学习composer:学习地址 在开发一个需要高安全性认证的php项目时,我遇到了一个棘手的问题:如何在php中实现fido2/webauthn协议的支持。fido2/webauthn是一种现代的、强大的认证方法,可以使用安全令牌和设备进行身份验证,但它的实现需要复杂的逻辑和专业知识…

    用户投稿 2026年8月28日
    100
  • 嵌入式linux实时操作系统及应用编程

    《嵌入式linux实时操作系统及应用编程》是2011年清华大学出版社出版的图书,作者是熊茂华。本书是嵌入式linux实时操作系统及应用编程的一本实用指导书籍,通过案例详细介绍嵌入式linux实时操作系统的应用编程,案例中的程序都取自实际的项目,且对程序有详细注解。 本书的内容包括: (推荐学习:Li…

    2026年8月28日
    000
  • Linux下”/”与”~”的区别详细介绍

    首先: ”/“是根目录,”~“是家目录。Linux存储是以挂载的方式,相当于是树状的,源头就是”/“,也就是根目录。而每个用户都有”家“目录,也就是用户的个人目录,比如root用户的”家“目录就是/root,普通用户a的家目录就是/home/a.可以看到 用户创建完后,我们就可以在/home目录下看…

    2026年8月28日
    200
  • Linux最常见基本命令总结

    1.ls 无论你是从根目录,还是从某个文件夹下面。ls都能够列出该文件夹下所有的文件。 2.cd cd在window中也经常被使用;他是被用来进行目录之间的切换。在输入的文件名的长度达到唯一辨识时,按tab键会自动补充完整改文件名; 3.mv 这个便是move的缩写,顾名思义,他就是将一个文件或者文…

    用户投稿 2026年8月28日
    000

发表回复

登录后才能评论
关注微信