1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

Windows Subsystem for Linuxガイド 第39回 Bashのヒストリ機能 その1「利用編」

マイナビニュース / 2024年9月24日 12時24分

vi ~/source/prog01.c
cc !*

とすることで、2つ目のccコマンドに対して1つ目と同じ引数を与えることが可能になる。長いファイルパスなどを再度入力する必要がない。

bashのヒストリ展開は、対象のイベントを指定する「イベント指示子」、「単語指示子」、「修飾子」の2つをコロン「:」で区切って指定する。(表02)にイベント記述子、単語指示子、修飾子の一覧を示す。「単語指示子」、「修飾子」は省略も可能である。指定パターンとしては、以下の4つのパターンがある。

① {イベント指示子}
② {イベント指示子} ":" {単語指示子}[":" {修飾子}]
③ "!:" {単語指示子}[":" {修飾子}]
④ "!"{^、$、*、-、%で始まる単語指示子}[ ":" {修飾子}]

①は、イベント指示子のみでヒストリを指定して実行するもの。たとえば、!!で直前のコマンドが、!-2でその前のコマンドを指定できる。

②は、イベントを指定し、そこから特定の単語を抜き出すもの。このとき、修飾子を使って単語を加工(たとえば、パスから親ディレクトリ名のみを取り出す)が行える。

③は、直前のコマンドを対象とした場合、単語指示子および修飾子(省略可能)が適用できる。

④は、③の特殊な場合で、単語指示子が「^」、「$」、「*」、「-」、「%」の4文字で始まる場合に限り、「!」の後ろのコロンを省略できる。これに修飾子を適用することもできる。代表的な指定方法として「!*」(直前のコマンドの引数すべて(コマンド以外すべて)、「!$」(直前のコマンドにある最後の引数)などがある。

CRTを使うターミナルがまだ普及していない頃に考えられたコマンドであり、打鍵数は最小にできる半面、どのような記法を使うか熟慮する必要がある。ただし、すべてのヒストリ展開を使う必要はなく、簡単な「!!」や「!*」などだけを使うところから始めるといいだろう。

なお、ヒストリキーの「Esc ^」を使うことで、入力したヒストリ展開文字を実行前に展開して表示することができる。

次回は、ヒストリに関する設定について解説する予定だ。

> Windows Subsystem for Linuxガイド 連載バックナンバー
https://news.mynavi.jp/tag/winsubsystem/
(塩田紳二)



この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください