8:シェルを使いこなす

目次

はじめに

同じ操作でも、入力方法を工夫するだけで作業速度と正確性は大きく向上します。

Tab補完やコマンド履歴を活用すると入力ミスが減り、作業効率も大幅に向上します。

この回では、日常的なCLI操作を効率化する5つの機能を学びます。

  • Tab補完
  • コマンド履歴
  • ワイルドカード(グロブ)
  • エイリアス
  • 便利なキー操作

1. Tab補完

Tab補完とは、コマンド名やファイル名を途中まで入力し、Tab キーを押すことで残りを自動補完する機能です。

基本的な使い方

例えば Documents ディレクトリへ移動する場合です。

$ cd Doc
(Tabキーを押す)
$ cd Documents/

長いファイル名やディレクトリ名を最後まで入力する必要がなくなります。

候補が複数ある場合

候補が複数ある場合は Tab を2回押します。

$ cd D
(Tabを2回押す)

Desktop/
Documents/
Downloads/

候補一覧が表示されます。


2. コマンド履歴

過去に実行したコマンドは履歴として保存されています。

↑ ↓ キーで呼び出す

キー動作
1つ前のコマンド
次のコマンド

同じコマンドを何度も入力する必要がありません。

history:履歴一覧を表示する

$ history

期待される出力(例):

496  cd Documents
497  ls -l
498  grep "ERROR" access.log
499  cat log.txt
500  history

!!:直前のコマンドを再実行する

$ !!

直前のコマンドが再実行されます。

!番号:特定の履歴を実行する

$ !498

履歴番号498のコマンドを実行します。

Ctrl+R:履歴検索

Ctrl+R を押すと履歴を検索できます。

(reverse-i-search)`grep': grep "ERROR" access.log

長いコマンドを再利用するときに便利です。


3. ワイルドカード(グロブ)

ワイルドカードを使うと複数のファイルをまとめて指定できます。

主なワイルドカード

記号意味
*任意の文字列*.txt
?任意の1文字test?.log
[ ]候補文字のいずれか[0-9]

*.txt の例

$ ls *.txt

期待される出力(例):

memo.txt
note.txt
todo.txt

? の例

$ ls test?.log

期待される出力(例):

test1.log
test2.log
test3.log

? は1文字だけに一致します。

findとの違い

機能用途
ワイルドカード現在のディレクトリ内でまとめて指定する
find条件に一致するファイルを探す

注意:rm * は非常に危険です。削除前に ls *.tmp などで対象ファイルを確認する習慣を付けましょう。


4. エイリアス

エイリアスは長いコマンドに短い別名を付ける機能です。

エイリアスを作成する

$ alias ll='ls -alF'

以後は ll だけで実行できます。

$ ll

登録済みエイリアスを確認する

$ alias

期待される出力(例):

alias ll='ls -alF'
alias ls='ls --color=auto'

typeで確認する

$ type ll

期待される出力(例):

ll is aliased to 'ls -alF'

注意:エイリアスは現在のターミナルだけで有効です。ターミナルを閉じると消えます。


5. 便利なキー操作

キー動作
Ctrl+C実行中のコマンドを中断
Ctrl+L画面をクリア
Ctrl+A行頭へ移動
Ctrl+E行末へ移動
Ctrl+Uカーソルより前を削除

特に Ctrl+C は重要です。

終了しないコマンドや停止したい処理があるときに使用します。


演習

課題:補完・履歴・ワイルドカード・エイリアスを使う

練習用ファイルを作成します。

$ cd ~
$ mkdir practice8
$ cd practice8
$ echo "メモ1" > memo.txt
$ echo "メモ2" > note.txt
$ echo "一時ファイル" > work.tmp

Tab補完を試す

$ cd ~
$ cd pr
(Tabキーを押す)

practice8/ が補完されることを確認します。

ワイルドカードを試す

$ ls *.txt

期待される出力(例):

memo.txt
note.txt

履歴を確認する

$ history

続いて ↑ キーで過去のコマンドを呼び出してみます。

エイリアスを作る

$ alias lt='ls -l *.txt'
$ lt

期待される出力(例):

-rw-r--r-- 1 username username 8 May 31 10:00 memo.txt
-rw-r--r-- 1 username username 8 May 31 10:00 note.txt

演習の確認ポイント

  • ☐ Tab補完を利用できる
  • ☐ ↑ キーで履歴を呼び出せる
  • *.txt を使って複数ファイルを指定できる
  • ☐ エイリアスを作成できる
  • Ctrl+C でコマンドを中断できる
目次