zoukankan      html  css  js  c++  java
  • Docker笔记7:Docker 命令自动补齐

          经常大家会碰到这种现象,Docker 已经安装好了,但是使用 docker 命令时 不能自动补齐,即输入 docker 命令后,按 Tab 键无法列出子命令(或参数)的候选项。

    【机制】

          Linux 系统许多命令都会提供该命令自身的命令补齐脚本,在安装命令时会自动安装自动补齐脚本,如果有的话,该机制在Linux中被称为 bash-complete。

          在 /usr/share/bash-completion/completions/ 目录下有许多命令自动补齐的脚本,可自行查阅。

          与 docker 有关的,有 2 个文件: docker 和 docker-compose。如下:

    [root@docker ~]# ls  /usr/share/bash-completion/completions/docker*
    /usr/share/bash-completion/completions/docker
    /usr/share/bash-completion/completions/docker-compose

          (备注:如果没有安装 docker compose,那么只有一个 docker 自动补齐脚本)

          自动补齐需要依赖工具 bash-complete,如果没有,则需要手动安装,命令如下:

    [root@docker ~]# yum -y install bash-completion

          安装成功后,得到文件为  /usr/share/bash-completion/bash_completion  ,如果没有这个文件,则说明系统上没有安装这个工具。

    【实践】

           让配置脚本生效的方法是执行 source xxx 命令,先执行 source /usr/share/bash-completion/completions/docker,再输入 docker,然后按2次 Tab键,提示错误如下:

    [root@docker ~]# docker  (docker + 空格 + 连续按2次Tab键)
    docker bash: _get_comp_words_by_ref: command not found
    bash: [: : integer expression expected
    bash: [: : integer expression expected
    bash: [: : integer expression expected
    bash: _get_comp_words_by_ref: command not found
    bash: [: : integer expression expected
    bash: [: : integer expression expected
    bash: [: : integer expression expected

          注:第一行的docker,实际是输入的命令,其它是按Tab键的输出信息。

          前面已经安装了 bash_completion,执行如下命令:

    [root@docker ~]# source /usr/share/bash-completion/bash_completion

          再次尝试,发现可以正常列出docker的子命令,示例如下:

    [root@docker ~]# docker  (docker + 空格 + 连续按2次Tab键)
    attach    container  engine    history   inspect   logs      port     restart   search    stats    top      volume
    build     context    events    image     kill      network   ps       rm        secret    stop     trust    wait
    builder   cp         exec      images    load      node      pull     rmi       service   swarm    unpause    
    commit    create     export    import    login     pause     push     run       stack     system   update     
    config    diff       help      info      logout    plugin    rename   save      start     tag      version   

          尝试 Docker 容器名称的自动补齐功能,示例如下:

    [root@docker ~]# docker logs izheng-  (注:输入izheng-后按2次Tab键)
    izheng-wordpress    izheng-apache     izheng-mysql        
    izheng-zentao       izheng-gitlab     izheng-jenkins 

           若安装了 Docker Compose,则也可事实 docker-compose 命令的自动补齐功能。

           重启系统后,也能进行自动补齐。

    【小结】

          在 Linux 系统下,掌握了 Tab键 的自动补齐功能,可以减少大量的命令输入工作,提高工作效率。

      

  • 相关阅读:
    Mysql 数据类型
    C++ 11 std::function std::bind使用
    C++ 11 Lambda表达式
    C++ 11 nullptr关键字
    C++ 11 auto关键字
    C++ 11 创建和使用共享 weak_ptr
    C++ 11 创建和使用 unique_ptr
    C++ 11 创建和使用 shared_ptr
    VS15 Visual Assist X破解
    开发人员看测试之细说JBehave
  • 原文地址:https://www.cnblogs.com/morgan363/p/11772851.html
Copyright © 2011-2022 走看看