今回は、コマンドラインの入力を楽にするためのテクニックを紹介します。まず、コマンド名やファイル名の入力を省く補完機能、そしてコマンドラインの編集とヒストリ機能です。特に補完機能は重要なのでぜひマスターしてください。
今回も、多くのLinuxでデフォルトのログインシェルとなっている「bash」(Bourne Again Shell:バッシュ)を使って、コマンドラインで使えるテクニックを紹介していきます。
コマンドラインでは、コマンド名、オプション、ファイル名……とたくさんの項目をキーボードで入力しますが、この中のコマンド名とファイル名については「補完機能」を利用することができます。
では、実際にやってみましょう。ファイル名やコマンド名を途中まで入力したところで[Tab]キーを押すと続きが補完されます。[Tab]キーの代わりに[Ctrl]+[I]キーを押してもOKです。
例えば、「ifco」と入力して[Tab]キーを押すと、コマンド名が補完されて「ifconfig」となります(画面1、画面2)。コマンド名の後にオプションなどを指定することを想定して、スペースも自動で入ります。
ちなみに、ifconfigは、ネットワークインタフェースを設定したり、設定情報を参照したりするためのコマンドです。[Enter]キーを押して実行すると、ネットワークに割り当てられているIPアドレスなどを確認できます。
なお、現在のLinux環境ではifconfigコマンドではなく、より新しい「ip」コマンドの使用が推奨されています。例えば、設定されているIPアドレスを表示する場合は、「ip addr show」と実行します。
補完候補となるコマンドが複数ある場合は、[Tab]キーを押すと候補が表示される代わりにビープ音が鳴ります(※音が出るかどうかは設定によって異なります)(画面3)。もう一度[Tab]キーを押すと候補が一覧表示されるので、続きの文字を入力して再度[Tab]キーを押しましょう(画面4)。
補完候補が多過ぎる場合は「Display all 111 possibilities?(y or n)」のように確認メッセージが表示されます。[y]キーで全ての候補を表示するか、[n]キーで補完を中断します(画面5)。
コマンドライン上では、コマンドと同様、ファイル名にも補完機能が働きます。例えば、「cat」コマンドで「/etc/shells」ファイルを表示したい場合(cat /etc/shells)、「cat /e」まで入力して[Tab]キーを押すと「cat /etc/」まで補完され、続いて「she」と入力して[Tab]キーを押すと続きが補完されます。
古くからあるコマンドや設定ファイルは名前が短いので、“楽をした”とはあまり感じられないかもしれませんが、長いコマンドやファイル名ではかなり楽になるはずです。
また、コマンド名やファイル名がうろ覚えでも補完機能を使えば入力できますし、ファイル名が補完されるかどうかで、そのファイルが本当に存在するかどうかを知ることができます。
例えば、「cat /etc/bash」と入力して[Tab]キーを2回押せば、bashから始まるファイル名が候補として表示されます。「cat /etc/tcsh」と入力して[Tab]キーを押しても何も補完されなければ、「/etc」ディレクトリには「tcsh」から始まる名前のファイルがないことが分かります(※)。
【※】tcshの設定ファイルは、システム全体用が「/etc/csh.cshrc」と「/etc/csh.login」、ユーザー用がホームディレクトリの「.tcshrc」と「.login」になります。シェルの設定ファイルについては今後の本連載で取り上げます。
bashのコマンドラインは、左右の矢印キー([←][→])やショートカットキーで編集できます。
例えば、「cat /etc/shells」まで入力した後で、catコマンドに「-n」オプションを付けたくなったならば、キー操作でcatの後ろまで戻って「-n」を入力して[Enter]キーで実行する、というようなことができます(画面6)。以下に、Linuxでよく使うキーボードショートカットを示します。
ショートカットキー | 操作内容(移動) |
---|---|
[Ctrl]+[B] | カーソルを1文字左へ([←]キー) |
[Ctrl]+[F] | カーソルを1文字右へ([→]キー) |
[Ctrl]+[A] | 行の先頭へ |
[Ctrl]+[E] | 行の末尾へ |
[Alt]+[B] | カーソルを1単語左へ |
[Alt]+[F] | カーソルを1単語右へ |
ショートカットキー | 操作内容(削除/編集) |
---|---|
[Ctrl]+[D] | カーソル位置の1文字を削除([Del]キー) |
[Ctrl]+[H] | カーソル直前の1文字を削除([Back Space]キー) |
[Ctrl]+[K] | カーソル位置から行末までを削除 |
[Ctrl]+[U] | 行頭からカーソル直前までを削除 |
[Ctrl]+[W] | カーソル直前の単語を削除 |
[Ctrl]+[Y] | 削除文字列([Ctrl]+[D]/[H]キー意外による)の貼り付け |
Copyright © ITmedia, Inc. All Rights Reserved.