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

Bash fc コマンド :プロのように Bash シェルを簡単に操作

Bash でコマンドを実行したときに、単語のスペルミスが原因でエラーが発生したことはありませんか?それとも、最後に実行した 3 つのコマンドを忘れてしまったのでしょうか?以前のコマンドを書き直したり覚​​えたりする代わりに、Bash fc コマンドを使用すると、すばやく編集したり、以前のコマンドを再実行したりできます。

この記事では、fc を活用する方法を学びます。 コマンド履歴からコマンドを編集して再実行します。このガイドを読んだ後は、fc を使用することになります あなたがなりたいコマンドラインの戦士のように!

前提条件

この記事はチュートリアルになります。順を追って説明する場合は、Linux コンピューター、または Windows Subsystem for Linux (WSL) が有効になっている Windows 10 コンピューターが必要です。このチュートリアルでは、Ubuntu 20.04 LTS を使用します。

Bash fc について コマンド

fc は Linux アプリケーションではなく、Bash に組み込まれたシェル ユーティリティです。 Bash は、ほとんどの主要な Linux ディストリビューションで利用できます。数回のキーストロークで、Bash fc command を使用すると、以前のコマンドを一覧表示、編集、または実行できます。

fc コマンドは、Z シェル (ZSH) でも使用できます。ただし、この記事の例では fc を使用します

間違っていることが判明した長いコマンドを実行しましたか? fc コマンド全体を再入力する必要がなくなります。代わりに、fc 選択したテキスト エディタを使用してコマンドを編集できます。編集内容を保存すると、編集したコマンドが自動的に実行されます!

fc を受け取る準備ができました スピン?飛び込みましょう!

以前のコマンドの一覧表示

コンピューターから離れて戻ってきて、最後に実行したコマンドを忘れていませんか?または、複数のコマンドを正しい順序で実行したかどうかを思い出せない場合もあります。職業はなんですか?リラックス、fc 覚えるのに役立ちます。

1. コンピューターで Bash ターミナルを開きます。

2. fc の場合 なんらかの機能を果たすには、操作するための何らかのコマンド履歴が必要です。新しいターミナル ウィンドウを開いたばかりなので、コマンド履歴がまだない可能性があります。テスト用のコマンド履歴を作成するには、以下の各コマンドをコピーして、ターミナルで実行します。これらのコマンドは邪魔にならず、コンピューターを危険にさらすことはありません。

# Clear the screen
 clear
 
# print a string to the terminal session
 echo 'working on the command line with fc'
 
# show some system information
 uname -a
 
# use PS command to get process information
 ps aux

3. 次に、以下のコマンドを実行して、履歴内のすべてのコマンドを一覧表示します。 -l オプションは fc を指示します 以前のすべてのコマンドのみをリストし、それらを実行しないようにします。

fc -l

以下に示すように、fc コマンドは、以前に発行した 4 つのコマンドすべてを表示しました。左側の数字は、各コマンドを実行した順番を示しています。

最後のコマンドの編集と再実行

アプリケーションをインストールしていて、スペルミスを犯した状況を想像してみてください。その結果、コマンドは失敗します。コマンド全体を再入力する代わりに、コマンドを編集して自動的に再実行してみませんか?これを行うには、次の手順に従います。

1. ターミナルで以下のコマンドを実行して、存在しないアプリケーションのインストールをシミュレートします。アプリケーション名 caffiene のスペルを意図的に間違えていることに注意してください。 .

sudo apt install caffiene -y

その結果、試行されたインストールは失敗します。以下のようなメッセージが表示されます。

2. 最後に実行したコマンドを修正するには、ターミナルで以下のコマンドを実行します。これにより、デフォルトのテキスト エディターでコマンド履歴バッファーが開きます。この例では、デフォルトのテキスト エディターは nano です。

fc

以下のスクリーンショットは、nano エディター内の最後のコマンドを示しています。

nano が好みのテキスト エディターでない場合は、fc に指示できます vi などの別のエディターを使用する。これを行うには、-e を含めます オプションの後にテキスト エディタ名を指定します。例:fc -e vi vi テキスト エディタでコマンド履歴が開きます。

3. nano テキスト エディターに入ったら、アプリケーション名のスペルを caffiene から修正します。 caffeine まで .

4. アプリケーション名を修正したら、CTRL+X を押します。 ナノを終了します。

5. 次のプロンプトで、変更したバッファを保存しますか? と尋ねられます。 、 Y を押します —> Enter 変更を保存します。

テキストエディタ終了直後 fc 編集したコマンドを自動的に実行します。

前のコマンドの編集と再実行

fc で 、最後に実行したコマンドを編集できるだけでなく、以前に実行したコマンドも編集できます。たとえば、コマンド echo 'working on the command line with fc' を編集するには 、次の手順に従ってください。

1. 以下のコマンドを実行して、ターミナルで以前のコマンドを一覧表示します。

fc -l

2. コマンド履歴リストから編集するコマンドを見つけ、その左側の番号をメモします。この例では、コマンド番号は 2 です。

3. エントリ番号 2 のコマンドを編集するには、ターミナルで次のコマンドを実行します。コマンドが編集用のテキスト エディターで開きます。

fc 2

4. テキスト エディタで、必要に応じてコマンドを編集します。

5. コマンドを編集したら、CTRL+X を押します。 ナノを終了します。

6. 次のプロンプトで、変更したバッファを保存しますか? と聞かれます。 、 Y を押します —> Enter 変更を保存します。

コマンドを保存してテキスト エディターを終了すると、編集したコマンドがシェルで自動的に実行されます。

複数のコマンドの編集と再実行

fcと思ったら 一度に 1 つの前のコマンドしか編集および実行できない場合は、ご褒美が待っています。なんで? fc 複数の以前のコマンドを編集することもできます!複数の以前のコマンドを編集することはどのように役立ちますか? 1 つは、コマンドの実行順序を変更できることです。

前のコマンド番号 2 から 7 を編集したいとします。そのためには、次の手順を実行します。

1. Bash ターミナルで次のコマンドを実行し、Enter を押します。 .以下のコマンドは fc 2 7 と読みます 、つまり fc コマンド 2 から 7 を編集用に開きます。

fc 2 7

2. 次に、必要に応じてコマンドを編集します。この例では:

  • sudo apt install caffiene -y を削除します コマンド
  • uname -a の順番を入れ替える と ps aux .
  • clear を削除 .

3. コマンドを編集したら、CTRL+X を押します。 ナノを終了します。

4. 次のプロンプトで、変更されたバッファを保存しますか? と尋ねられます。 、 Y を押します —> Enter 変更を保存します。

編集したコマンドは、テキスト エディターを終了した後に自動的に実行されます。

編集せずに前のコマンドを再実行する

最初に編集せずに、前のコマンドを実行するだけでよいとします。 fc そのためのオプションがあります。以下の手順に従って、履歴内の指定されたエントリから前のコマンドを実行します。

<オール>
  • 以下のコマンドを実行して、ターミナルで前のコマンドを一覧表示します。
  • fc -l

    2. コマンド履歴リストから、再度実行するコマンドを見つけ、その左側の番号をメモします。この例では、コマンド番号は 2 です。

    3. 特定の前のコマンドを実行するには、シェルで次のコマンドを実行します。 -s オプションは fc を指示します 編集をスキップして、コマンド番号 2 の実行を続行します。

    fc -s 2

    以下のスクリーンショットは、コマンド履歴から fc が実行したコマンド番号 2 を示しています。

    結論

    この記事は、fc という便利なコマンドですが、見逃されがちで忘れられがちなコマンドに興味を持ってもらうことを目的としています。 . fc の使い方を学びました 時間の無駄になる可能性がある、以前に実行したコマンドの再入力を避けるため。

    fc についての知識があれば、 、それはあなたが使うと思うものですか?それとも、代わりにシェルでコマンドを再入力することを引き続き好みますか?賢明な選択をしてください!


    Linux
    1. Bashシェルのカスタマイズ

    2. コマンドの出力をシェル変数に割り当てる方法は?

    3. Bashシェルでのクイックディレクトリナビゲーション?

    1. `cd`外部コマンドのポイント?

    2. Bashの「評価」コマンド?

    3. Bashの感嘆符(!)を理解していますか?

    1. バッシュ演算子の違い[[Vs[Vs(Vs((?

    2. 括弧は本当にコマンドをサブシェルに入れますか?

    3. Linux での Bash シェルの変数について