このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux:Tabの補完機能

 コマンドライン環境(CLI)でコマンドを実行する際、毎回長いコマンドをキーボードから入力するのは大変で、タイプミスも起こりがちです。しかし、bashにはコマンド入力の手間を省く「補完機能」が用意されています。この機能を利用すると、コマンド名をすべて入力する必要がなく、最初の数文字だけ覚えておけば、残りを自動的に補完してくれます。Linuxの熟練者は、この補完機能を積極的に活用しています。

bashの補完機能は、Tabキーを押すことで使用できます。以下でその使い方を詳しく解説します。

Tab補完機能の操作

コマンド名の補完

まず、画面への出力でよく使用するechoコマンドを例に、補完機能を試してみましょう。

プロンプトでecと入力し、Tabキーを押します。

user01@ubuntu:~$ ech # ここでTabキーを押す。
user01@ubuntu:~$ echo # echoと自動で補完されて表示される。

解説echまで入力してTabキーを押すと、echoと自動的に補完されます。これは、echで始まるコマンドがechoしかないためです。

補完候補が複数ある場合

補完候補が複数存在する場合、Tabキーの動作は少し異なります。

プロンプトでeと入力し、Tabキーを押します。

user01@ubuntu:~$ e # ここでTabを押しますがベルが鳴るだけ。

解説: この場合、端末から音が鳴る(ベルが鳴る)だけで、何も表示されません。これは、eで始まるコマンドが複数あり、どれを補完すべきか判断できないためです。

さらに続けて、もう一度Tabキーを押します。

user01@ubuntu:~$ e # ここでTabを2回押す。
e2freefrag            ed                    esc-m
e2fsck                editor                ethtool
e2image               editres               eutp
e2label               efibootdump           eval
e2mmpstatus           efibootmgr            evince
e2scrub               egrep                 evince-previewer
e2scrub_all           eject                 evince-thumbnailer
e2undo                elif                  ex
e4crypt               else                  exec
e4defrag              enable                execsnoop-bpfcc
eatmydata             enc2xs                execsnoop.bt
ebtables              encguess              exit
ebtables-nft          enchant-2             exitsnoop-bpfcc
ebtables-nft-restore  enchant-lsmod-2       expand
ebtables-nft-save     env                   expiry
ebtables-restore      envsubst              export
ebtables-save         eog                   expr
ebtables-translate    eps2eps               ext4dist-bpfcc
ec2metadata           eqn                   ext4slower-bpfcc
echo                  esac

解説: 2回目のTabキーを押すと、eで始まるすべてのコマンドの一覧が表示されます。これにより、実行したいコマンドを見つけることができます。

コマンド名をさらに入力して補完

ejectコマンドを実行したい場合、ejまで入力してTabキーを押します。

user01@ubuntu:~$ ej # ここでTabキーを押す。
user01@ubuntu:~$ eject # ejectと自動で補完されて表示される。

解説ejで始まるコマンドはejectのみのため、自動的に補完されます。ejectコマンドはCDやDVD、Blu-ray、テープなどのリムーバブルメディアをイジェクトするコマンドです。

補完機能の利点

  • 入力の手間を削減: コマンド名をすべて入力する必要がなく、最初の数文字だけで済みます。
  • タイプミスの防止: 自動補完により、タイプミスを減らすことができます。
  • コマンドの確認: 補完候補を表示することで、正しいコマンド名を確認できます。

補完機能の操作一覧

操作説明
Tabキーコマンド名やファイル名を補完する
Tabキーを2回押す補完候補が複数ある場合、候補の一覧を表示する
最初の数文字を入力補完したいコマンドやファイルの最初の数文字を入力する
補完候補から選択して入力候補一覧を参考にして、さらに文字を入力し補完を確定させる
補完機能の操作一覧

ファイル名やディレクトリ名の補完

補完機能はコマンド名だけでなく、ファイル名ディレクトリ名の入力時にも利用できます。

ファイル名やディレクトリ名の補完例

以下のコマンドを実行してファイルとディレクトリを作成しておきます。

user01@ubuntu:~$ touch document.txt download.zip
user01@ubuntu:~$ mkdir deskwork

カレントディレクトリに以下のファイルとディレクトリがあります。

document.txt
download.zip
deskwork/

cat dと入力し、Tabキーを押します。

user01@ubuntu:~$ cat d # ここでTabキーを押す。

解説: dで始まるファイルやディレクトリが複数あるため、補完できません。

Tabキーをもう一度押して補完候補を表示します。

user01@ubuntu:~$ cat d
deskwork/     document.txt  download.zip
user01@ubuntu:~$ cat d

docまで入力して、再度Tabキーを押します。

user01@ubuntu:~$ cat doc # ここでTabキー押す。
user01@ubuntu:~$ cat document.txt

解説doで始まるファイルはdocument.txtdownload.zipがあります。document.txtを補完したい場合には、docまで入力して、Tabキーを押します。

ファイルとディレクトリの削除

不要になったファイルとディレクトリを削除しておきます。

user01@ubuntu:~$ rm document.txt download.zip
user01@ubuntu:~$ rmdir deskwork/

まとめ

 Tab補完機能を活用することで、コマンド入力の効率を大幅に向上させることができます。最初の数文字を入力してTabキーを押すだけで、自動的にコマンド名やファイル名、ディレクトリ名を補完してくれるため、長いコマンドをすべて入力する手間が省け、タイプミスも防げます。

補完機能は非常に便利な機能ですので、日常的な操作で積極的に活用してみてください。