GNU/Linux >> Linux の 問題 >  >> Linux

5 Linux Bash コマンドラインで利用可能な標準補完

Linux では、デフォルトで、Bash はユーザーがコマンド ラインで使用できる次の標準補完を提供します。

<オール>
  • 変数名の補完
  • ユーザー名の補完
  • 実行可能な補完
  • ファイル名とディレクトリの補完
  • ホスト名の補完
  • 1.変数名の補完

    ターミナルで $ を入力した後、タブを 2 回押すと、以下に示すように、使用可能なすべてのシェル変数が表示されます。

    $ echo $[TAB][TAB]
    $_                            $COMP_POINT                   $HOSTTYPE                     $PS1
    $_backup_glob                 $COMPREPLY                    $IFS                          $PS2
    $BASH                         $COMP_TYPE                    $inx                          $PS4
    $BASH_ALIASES                 $COMP_WORDBREAKS              $LANG                         $PWD
    $BASH_ARGC                    $COMP_WORDS                   $LANGUAGE                     $RANDOM
    $BASH_ARGV                    $cur                          $LESSCLOSE                    $redir
    $BASH_CMDS                    $cword                        $LESSOPEN                     $SECONDS
    $BASH_COMMAND                 $DIRSTACK                     $LINENO                       $SHELL
    $BASH_COMPLETION_COMPAT_DIR   $DISPLAY                      $LINES                        $SHELLOPTS
    $BASH_LINENO                  $errx                         $LOGNAME                      $SHLVL
    $BASHOPTS                     $EUID                         $LS_COLORS                    $split
    $BASHPID                      $exclude                      $MACHTYPE                     $SUDO_COMMAND
    $BASH_REMATCH                 $flag                         $MAIL                         $SUDO_GID
    $BASH_SOURCE                  $FUNCNAME                     $MAILCHECK                    $SUDO_UID
    $BASH_SUBSHELL                $GROUPS                       $OLDPWD                       $SUDO_USER
    $BASH_VERSINFO                $__grub_script_check_program  $OPTERR                       $suffix
    $BASH_VERSION                 $HISTCMD                      $OPTIND                       $TERM
    $__colormgr_commandlist       $HISTCONTROL                  $OSTYPE                       $UID
    $COLORTERM                    $HISTFILE                     $outx                         $USER
    $COLUMNS                      $HISTFILESIZE                 $PATH                         $USERNAME
    $COMP_CWORD                   $HISTSIZE                     $PIPESTATUS                   $words
    $COMP_KEY                     $HOME                         $PPID                         $XAUTHORITY
    $COMP_LINE                    $HOSTNAME                     $prev                         $_xspecs

    2.ユーザー名の完成

    チルダ (~) の後にタブを 2 回押すと、bash は自動的にユーザー名の補完を開始します。

    $ cd ~[TAB][TAB]
    ~bala/      ~raj/
    ~jason/     ~randy/
    ~john/      ~ritu/
    ~mayla/     ~thomas/
    ~nisha/     ~www-data
    

    これは、ホーム ディレクトリからユーザー名を取得しないことに注意してください。代わりに、/etc/passwd ファイルから利用可能なすべてのユーザー名を表示します

    3.実行可能ファイルのパス名補完

    コマンドを実行しようとしているときに、実行可能ファイルに実行権限があれば、以下の例に示すように 1 つの一致が見つかった場合、コマンドは自動的に完了します。

    $ ls -l /etc/init.d/reboot
    -rwxr-xr-x 1 root root 639 Jan 30  2013 /etc/init.d/reboot
    
    $ /etc/init.d/reb[TAB][TAB]
    
    $ /etc/init.d/reboot

    複数の一致が見つかった場合、使用可能なコマンドが表示されます。

    4.ファイル名とディレクトリの補完

    この補完は、コマンド ラインの 2 番目以降の位置にあるファイル名とディレクトリ名用です。上記の例とは異なり、これはパーミッションをチェックせず、利用可能なすべてのファイルとディレクトリを表示するだけです。

    $ ls
    countfiles.sh  dir1  dir2  dir3 
    
    $ cat [TAB][TAB]
    countfiles.sh  dir1  dir2  dir3  
    
    $ cat c[TAB][TAB]
    
    $ cat countfiles.sh

    また、表示するファイルが多数ある場合、すべての可能性を画面に表示する代わりに、非常に混乱する可能性があるため、次の警告メッセージが表示されます。

    $ ls -l /etc/
    Display all 228 possibilities? (y or n)
    

    5.ホスト名の補完

    接続先のホスト名を取得するには、以下に示すように @ 記号の後にタブを 2 回押します。

    $ ssh john@[TAB][TAB]
    @dev-db  @fileserver @qa-server
    @prod-db @localhost  @web-server

    このホスト名補完機能は、ホスト名に @ を指定できる任意のコマンドと一緒に使用できます。たとえば、以下に示すように scp でもこれを使用できます。

    $ scp filename.txt john@[TAB][TAB]
    @dev-db  @fileserver @qa-server
    @prod-db @localhost  @web-server

    これにより、利用可能なホスト名が /etc/hosts ファイルから取得されることに注意してください。


    Linux
    1. Linuxコマンドラインで牛を飼う

    2. 10 の便利な Linux Bash_Completion 完全なコマンドの例 (Steroids での Bash コマンド ライン補完)

    3. 単一行の場合はバッシュ

    1. Linuxコマンドラインに関する8つのヒント

    2. Linuxコマンドラインにアクセスしてください

    3. LinuxでBASHコマンドライン履歴をクリアする方法

    1. LinuxでBashの履歴をクリアする方法

    2. Bash bangコマンド:Linuxコマンドラインの必知のトリック

    3. BashスクリプトでのLinuxスリープコマンドの使用