0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Linux】コマンド履歴からコマンドを実行する

Last updated at Posted at 2022-10-02

コマンド履歴からコマンドを実行する

以前に実行したコマンドを再度実行したい場合に、コマンド履歴を確認する事で楽に再実行する事が出来ます。
historyコマンド または インクリメンタルサーチ を実行する事でコマンドの再実行を楽に行えます。

historyコマンド

historyコマンドについては、historyコマンドの結果をgrepコマンドで絞って確認するのが定番だと思います。historyコマンド単体で叩いても、出力される結果が多いので目的のコマンドを探すのが大変です。
ある程度スペルが分かっている前提ですが、historyコマンド | grep 対象文字列で履歴を絞る事が可能です。

以下、実行例です。

コマンド実行
[root@localhost ~]# history | grep 'll'
   12  lsll
   13  ll
   18  history | grep 'll'

目的のコマンドが見つかった場合に、弄りたい場合はコピペして編集するとよいでしょう。
そのまま実行したい場合は、コマンドと一緒に表示されている番号と!を組み合わせて実行する事が出来ます。

以下、実行例です。

コマンド実行
[root@localhost ~]# history | grep 'cat'
   22  cat memo.txt
   26  cat -n  .bash_history
   27  history | grep 'cat'


# 26  cat -n  .bash_historyを実行
[root@localhost ~]# !26
cat -n  .bash_history
     1  cat -n .bash_history
   
     etc...

インクリメンタルサーチ

インクリメンタルサーチでもほぼ同じような事が出来ます。私は普段、こちらを使用しています。
プロンプトでCtrl + rを入力すると、インクリメンタルサーチを使用する事が出来ます。
以下のように、プロンプトが変更されます。

インクリメンタルサーチ
(reverse-i-search)`':

この状態でキーボードを入力すると検索が行われます。
cと入力すると、以前に実行したコマンドが表示されます。cat -n .bash_historyを先程実行しているので、以下のように出力されました。さらにdを入力すると、cd /tmpと出力されました。

インクリメンタルサーチは、入力毎に履歴を検索する特徴があります。

インクリメンタルサーチ
#cと入力
(reverse-i-search)`c': cat -n  .bash_history
#次にdを入力
(reverse-i-search)`cd': cd /tmp

文字入力後に、再度Ctrl + rを実行すると1つ前の実行結果に移動します。
Ctrl + r を実行する or 文字を入力する で目的のコマンド探す事が可能です。

目的のコマンドが見つかったら、Enterキーを入力するとコマンドが実行されます。
コマンドを編集したい場合はEscキーで検索結果をそのままで、元のプロンプトに戻れます。

また、インクリメンタルサーチから抜けたい場合はCtrl + gでプロンプトに戻る事が可能です。

終わり

historyコマンドインクリメンタルサーチを記載しましたが、好みで使い分けすればよいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?