GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで最後のコマンドを繰り返すさまざまな方法

今日は、Linuxで最後のコマンドを繰り返す方法をお教えします。以前に実行したコマンドをシェルに再入力する必要はありません。もちろん、上矢印を使用します キーを押して最後に実行されたコマンドを選択し、Enterキーを押して実行します。ただし、これを行う方法は他にもいくつかあります。 Unixライクなシステムで最後のコマンドを繰り返す方法はたくさんありますが、私が今知っているのはこれらの方法だけです。これらのコマンドはすべて、BASHシェルを備えたArchLinuxおよびUbuntuデスクトップでテストされました。

注意事項: 次の方法を試すと、以前に実行されたコマンドがすぐに実行されます。 最後のコマンドが有害でないことを確認してください パーティションのフォーマットや、ファイル、フォルダ、その他の重要なデータの削除など。

Linuxで最後のコマンドを繰り返す

いくつかのコマンドを実行してみましょう。

 $ ls -l <​​/ pre> 
 $ pwd 
$日付
 $ uname -r 

前述したように、 UP を押すだけで、最後のコマンドを実行できます。 矢印を押してENTERを押します 鍵。これは、多くのユーザーが前のコマンドを実行するために最も一般的に使用する方法です。この方法は、使用するLinuxディストリビューションに関係なく、すべてのSHELLで機能します。

ただし、すでに述べたように、これを行う方法は他にもいくつかあります。

それでは、最後のコマンドを実行する方法をいくつかの実用的な例とともに示しましょう。

方法1-感嘆符を使用する

最後に実行されたコマンドを実行するには、二重の感嘆符を入力してEnterキーを押します:

 $ !! 

これにより、最後のコマンドが実行されます。サンプル出力は次のようになります:

 uname -r5.3.0-40-generic 

sudoを追加します !!の前 最後のコマンドをrootとして実行します 以下のようなユーザー。

 $ sudo !! 

以下を使用して、前のコマンドをsudoとして実行することもできます。 ユーザー:

 $ su -c "!!" 

出力例:

 su -c "uname -r"パスワード:5.3.0-40-generic 

かっこいいですね。最後のコマンドを完全に入力する必要はありません。非常に長いコマンドをすでに実行していて、同じコマンドを再入力したくない場合に便利です。

方法2-N番目のコマンドを繰り返す

非常に多くのコマンドを実行していて、特定のコマンドを繰り返したい場合があります。あなたは何をしますか?単純!これを行うには、前のコマンドの特定の単語を入力します。

unなど、特定の単語/文字で始まる前のコマンドを繰り返すには 、次のように入力します:

 $!un 

上記のコマンドは、 "un"の文字で始まる最後のコマンドを実行します 。

出力例:

!ununame -r5.3.0-40-generic 

上記の例でわかるように、コマンド全体を入力する必要はありません(つまり、uname -r )。代わりに、コマンドの数文字を入力するだけで、単語を含む以前のコマンドが実行されます。

また、完全なコマンド名がわかっている場合は、次のように入力してください。

 $!uname 

最後のコマンドを実行します。

最後のコマンドを繰り返したくないが、それを表示するだけの場合はどうなりますか。コマンドを実行したくない場合は、履歴からコマンドを取得するだけです。その場合は、実行するコマンドのプレフィックス番号を見つけます。

$履歴| grep -i "source" 

出力例:

 1664 source googler_at1678 source googler_at 1685 source〜/.bashrc2037履歴| grep -i "source" 

1685番目を取得したいとします コマンドですが、すぐに実行したくない場合は、:pを追加します 以下のようなコマンドの横にあります。

 $!1685:p 

これにより、履歴から1685番目のコマンドが表示されますが、実行されません。

方法3-逆検索を使用する

これを行う別の方法は、 CTRL+Rを使用してコマンドライン履歴を検索することです。 CTRL+Rを押します コマンドライン履歴を検索するためのキー。私は個人的にこの方法を好みます。履歴をインタラクティブに検索します。これは、BASH履歴から盲目的にコマンドを実行するよりも安全だと思います。

次の例を見てください。次の例では、 "ost"を検索しました 、最後のコマンドを表示しました“sudo netctl restart ostechnixjio” "ost"という単語を含む履歴 。次に、Enterキーを押してコマンドをすぐに実行するか、右矢印キーを押してコマンドを完了し、Enterキーを押してコマンドを実行します。

(reverse-i-search) `ost' :sudo netctl restart ostechnixjio 

念のため、最後のコマンドを実行する前に編集/変更したい場合は、左矢印キーを押すだけです。 、次に最後のコマンドを編集し、Enterキーを押して実行します。一部のコマンドは同じ文字で始まる場合があります。このような場合は、CTRL+Rを押し続けてください 実行したいコマンドを戻すためのキー。

方法4-コマンドプレフィックス番号とともにハイフン記号を使用する

前のコマンドを実行するさらに別の方法があります。

 $!-1 

出力例:

 uname -r5.3.0-40-generic 

同様に、 !-2 最後から2番目のコマンド!-3を実行します 最後から3番目のコマンドを実行します。

方法5-CTRL+pおよびCTRL+oを使用

コマンドを手動で入力したくありません。キーボードの特定のキーを押すだけで最後のコマンドを繰り返す方法はありますか?はい、もちろんです!

CTRL+Pを押します 最後のコマンドに切り替えてから、 CTRL+Oを押します。 それを実行します。これは不思議になります。設定は必要ありません! CTRL+Oを使用できます 最後のコマンドを何度でも再実行し続けたいと思います。

方法6-fcコマンドの使用

これは、最後に実行されたコマンドを繰り返す別の方法です。 fc コマンドは、以前に入力したコマンドを一覧表示、編集、および再実行するために使用されます。

fcを使用して最後のコマンドを繰り返すには、次のコマンドを実行します。

 $ fc -s 

出力例:

 uname -r5.3.0-40-generic 

推奨される読み物:

  • 初心者向けの例を含むfcコマンドチュートリアル
  • Linuxコマンドにタグを適用して、履歴からタグを簡単に取得する
  • Aproposを使用して忘れたLinuxコマンドを簡単に思い出す
  • Pet –シンプルなコマンドラインスニペットマネージャー
  • コマンドを保存してオンデマンドで使用する方法
  • 繰り返し呼び出しを簡単にするためのLinuxコマンドのブックマーク

方法7-ALT+ピリオドキーを使用

読者の1人がコメントセクションで述べたように、 ALT+.も使用できます。 キー(ALT +ピリオドを押す)を押して、最後のコマンドを実行せずに取得します。ただし、1つの制限があります。 ALT+.を押す コマンドの最後の引数のみを取得します。たとえば、前のコマンドが"uname -r"の場合 、 -rのみが返されます 引数ですが、コマンド全体ではありません。

そして、それがすべてです。これで、ターミナルに入力せずに最後のコマンドを繰り返す方法がわかりました。最後のコマンドの出力を実際に再入力せずに表示したい場合は、これらのメソッドが役立ちます。

他の方法をご存知の場合は、下のコメント欄でお知らせください。それに応じてガイドを確認して更新します。

これで、以前に実行したコマンドを繰り返す方法がわかりました。成功するまでLinuxコマンドまたはプログラムをどのように繰り返しますか?まあ、それは簡単です!詳細については、次のガイドを参照してください。

  • Linuxで成功するまでコマンドを繰り返す方法

これがお役に立てば幸いです。


Linux
  1. バックグラウンドで UNIX / Linux コマンド (およびシェル スクリプト) を実行する 5 つの方法

  2. UNIX / Linux :最後のコマンドを繰り返す bash history コマンドの例

  3. Linux でコマンドを自動的に繰り返す

  1. Linuxで最後に実行されたコマンドを再実行する2つの方法

  2. Linuxのコマンド履歴を管理する方法

  3. 文字列を n 回繰り返す Linux コマンド

  1. Linuxのcowsayコマンドを使用する3つの興味深い方法

  2. Linux端末を分割する5つの方法

  3. Linuxはコマンドをリモートで実行します