このページで解説している内容は、以下の 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.txt
とdownload.zip
があります。document.txt
を補完したい場合には、doc
まで入力して、Tabキーを押します。
ファイルとディレクトリの削除
不要になったファイルとディレクトリを削除しておきます。
user01@ubuntu:~$ rm document.txt download.zip
user01@ubuntu:~$ rmdir deskwork/
まとめ
Tab補完機能を活用することで、コマンド入力の効率を大幅に向上させることができます。最初の数文字を入力してTabキーを押すだけで、自動的にコマンド名やファイル名、ディレクトリ名を補完してくれるため、長いコマンドをすべて入力する手間が省け、タイプミスも防げます。
補完機能は非常に便利な機能ですので、日常的な操作で積極的に活用してみてください。