zsh 的systemctl 智能补齐脚本

本文档介绍了如何在oh-my-zsh中创建一个systemctl的智能补全脚本,以弥补默认插件中缺失的功能,提供更便捷的命令行操作体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oh-my-zsh 没有systemctl的智能不全插件。自己照着docker的插件写了一个。记录一下。


#compdef systemctl


# Systemctl autocompletion for oh-my-zsh
# Requires: Systemd installed
# Author: Hpc




# ----- Commands
# Seperate function for each command, makes extension easier later
# ---------------------------


__systemd_services() {
    declare -a cont_cmd
    cont_cmd=($(ls -R /usr/lib/systemd/system/  | grep -v '/'))
    if [[  'X$cont_cmd' != 'X' ]]
        _describe 'systemctl' cont_cmd
}


__restart() {
    __systemd_services
}


__start() {
    __systemd_services
}


__status() {
    __systemd_services
}


__daemon-reload() {
    __systemd_services
}
__stop() {
    __systemd_services
}


# end commands ---------
# ----------------------


local -a _1st_arguments
_1st_arguments=(
    "restart":"Restart a running service"
### Kali Linux 中 CMD 命令自动补全的功能或配置方法 在 Kali Linux 中,命令行工具通常基于 Bash 或 Zsh Shell 运行,默认情况下支持 Tab 键自动补全功能。如果该功能未正常工作,则可以通过以下方式重新启用或配置。 #### 配置文件调整 Bash 的自动补全功能依赖于 `/etc/bash_completion` 和 `~/.bashrc` 文件中的设置。确保这些文件已正确加载并启用了补全功能: 1. **检查 bash-completion 是否安装** 如果尚未安装 `bash-completion` 软件包,可以运行以下命令进行安装: ```bash apt update && apt install bash-completion -y ``` 2. **修改 ~/.bashrc 文件** 打开用户的 `.bashrc` 文件,确认其中包含如下内容以激活补全功能: ```bash if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi ``` 上述代码片段会检测是否存在全局补全脚本,并将其加载到当前 shell 环境中[^1]。 3. **使更改生效** 修改完成后,执行以下命令让新的配置立即生效: ```bash source ~/.bashrc ``` #### 特定命令的补全扩展 对于某些特定命令(如 kubectl),可能需要额外安装其对应的补全插件才能实现更高级别的补全功能。以下是几个常见例子: - **kubectl 补全** 安装 Kubernetes CLI 后,可通过以下命令生成补全脚本并将它添加至环境变量中: ```bash echo 'source <(kubectl completion bash)' >>~/.bashrc source ~/.bashrc ``` 此操作允许用户通过按两次 Tab 键来查看可用选项列表以及资源名称等信息。 - **systemctl 补全** systemctl 默认已经具备良好的服务名补全能力,只需按照上述基础步骤完成通用配置即可正常使用。 #### 测试效果 尝试输入部分字符后按下 Tab 键验证是否能够成功触发提示候选项。例如,在终端依次键入 “apt-get i”,随后连续敲击两下 Tab 应显示出所有匹配开头字母组合的相关子指令供选择。 --- ```python def test_auto_complete(): """模拟测试函数""" commands = ["ls", "cd", "mkdir"] for cmd in commands: print(f"{cmd}: Pressing TAB twice should display possible completions.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值