fc コマンド、 fの略 ix c ommandsは、最近入力されたコマンドをインタラクティブシェルに一覧表示、編集、および再実行するために使用されるシェル組み込みコマンドです。最近入力したコマンドをお気に入りのエディターで編集して、コマンド全体を再入力せずに実行できます。このコマンドは、以前に入力したコマンドのスペルミスを修正し、長くて複雑なコマンドの繰り返しを回避するのに役立ちます。シェルビルトインであるため、Bash、Zsh、Kshなどを含むほとんどのシェルで使用できます。この簡単なチュートリアルでは、Linuxでのfcコマンドの使用方法を学習します。
最近実行されたコマンドをfcコマンドで一覧表示します
fc -l
を実行した場合 引数のないコマンドの場合、最後の 16が表示されます コマンド。
$ fc -l </ strong> 507 fish508 fc -l509 sudo netctl restart wlp9s0sktab510 ls -l511 pwd512 uname -r513 uname -ms514 touch ostechnix.txt515 vi ostechnix.txt516 echo "Welcome to OSTechNix" 517 sudo apcman -Syu518 sudo pacman -Syu519 more ostech ostechnix.txt 521 catostechnix.txt522クリア
コマンドの順序を逆にするには、 -r
を使用します フラグ。
$ fc -r
-n
を使用して行番号を抑制することができます フラグ。
$ fc -ln nano〜/ .profile source〜/ .profile source〜/ .profile fc -ln fc -l sudo netctl restart wlp9s0sktab ls -l pwd uname -r uname -ms echo "Welcome to OSTechNix" sudo apcman -Syu cat ostechnix.txt wc -l ostechnix.txt more ostechnix.txt clear
これで、行番号は表示されなくなります。
特定のコマンドから始まる結果を一覧表示するには、行番号と -l
を使用するだけです。 オプション。たとえば、行番号 520から始まるコマンドを表示するには 現在まで、私たちは次のことを行っています:
$ fc -l 520 520 ls -l521 pwd522 uname -r523 uname -ms524 echo "Welcome to OSTechNix" 525 sudo apcman -Syu526 cat ostechnix.txt 527 wc -l ostechnix.txt 528 more ostechnix.txt 529 clear530 fc -ln531 fc -l </ pre>520 など、特定の範囲内のコマンドを一覧表示するには 525へ 、実行:
$ fc -l 520 525 520 ls -l521 pwd522 uname -r523 uname -ms524 echo "Welcome to OSTechNix" 525 sudo apcman -Syu行番号を使用する代わりに、文字列を使用することもできます。たとえば、
pwd
で始まるコマンドを一覧表示します 憤慨するまでのコマンド、そのコマンドの開始文字を使用するだけです(つまり、 p )以下のように。$ fc -l p 521 pwd522 uname -r523 uname -ms524 echo "Welcome to OSTechNix" 525 sudo apcman -Syu526 cat ostechnix.txt 527 wc -l ostechnix.txt 528 more ostechnix.txt 529 clear530 fc -ln531 fc -l532 fc -l 520533 fc -l 520 525534 fc -l 520535 fc -l 522536 fc -l l
pwd
の間のすべてを表示するにはmore
コマンドの場合、次のいずれかを使用できます:$ fc -l p mまたは、開始コマンドコマンドの最初の文字と終了コマンドの行番号を組み合わせて使用します。
$ fc -l p 528または、開始コマンドと終了コマンドの行番号だけ:
$ fc -l 521 528これら3つのコマンドはすべて同じ結果を表示します。
最後のコマンドを自動的に編集して再実行します
前のコマンドのスペルを間違えることがあります。このような状況では、デフォルトのエディターを使用してコマンドのスペルミスを簡単に編集し、再入力せずに実行できます。
最後のコマンドを編集して再実行するには、次の手順を実行します。
$ fcこれにより、最後のコマンドがデフォルトのエディターで開きます。
上のスクリーンショットでわかるように、私の最後のコマンドは
"fc -l"
でした。 。これで、コマンドに変更を加えて、エディターを保存して終了したら、コマンドを自動的に再実行できます。これは、長くて複雑なコマンドや引数を使用する場合に役立ちます。重要な注意: これも破壊的になる可能性があることに注意してください 。たとえば、前のコマンドが
"rm -fr <some-path>"
のような致命的なコマンドだった場合 、自動的に実行され、重要なデータが失われる可能性があります。したがって、fc
を使用するときは十分に注意する必要があります コマンド。デフォルトのエディタを変更してコマンドを編集する
fcのもう1つの注目すべきオプションは、
"e"
です。 これは、コマンドを編集するための別のエディターを選択するために使用されます。たとえば、"nano"
を使用できます 以下のように最後のコマンドを編集するエディタ。$ fc -e nanoこのコマンドは、(デフォルトのエディターの代わりに)nanoエディターを開いて、最後のコマンドを編集します。
-e
の使用には時間がかかる場合があります 各コマンドのオプション。新しいエディターをデフォルトにするには、環境変数FCEDIT
を設定するだけです。 必要なエディタの名前にfc 使用します。たとえば、「nano」を新しいデフォルトエディタとして設定するには、
~/.profile
を編集します または環境ファイル:$ vi〜/ .profile次の行を追加します:
FCEDIT =nano以下のように、エディターのフルパスを使用することもできます。
FCEDIT =/ usr / local / bin / emacs
:wq
と入力します ファイルを保存して閉じます。変更を更新するには、次を実行します:$ source〜/ .profileこれで、「fc」と入力するだけで、
"nano"
を使用して最後のコマンドを編集できます。 編集者。最後のコマンドを編集せずに再実行します
引数なしで「fc」を実行すると、エディターに最新のコマンドがロードされることはすでにわかっていました。編集したくない場合は、最後のコマンドを実行するだけです。これを行うには、ハイフン(
-
)を使用します )下に示すように最後に記号。$ echo "Welcome to OSTechNix" OSTechNixへようこそ$fc -e- echo "Welcome to OSTechNix" Welcome to OSTechNixご覧のとおり、
-e
を使用しても、fcは最後のコマンドを編集しませんでした(つまり、echo "Welcome to OSTechNix") オプション。一部のオプションはシェル固有であることに注意してください。他のシェルでは機能しない場合があります。たとえば、次のオプションを zshで使用できます。 シェル。 BashまたはKshシェルでは機能しません。
コマンドが実行されたときに表示する
コマンドがいつ実行されたかを表示するには、 -dを使用します 以下のように。
fc -ld 1 18:41 exit2 18:41 clear3 18:42 fc -l4 18:42 sudo netctl restart wlp9s0sktab5 18:42 ls -l6 18:42 pwd7 18:42 uname -r8 18:43 uname -ms9 18:43catostechnix。 txt10 18:43 echo "Welcome to OSTechNix" 11 18:43 more ostechnix.txt12 18:43 wc -l ostechnix.txt13 18:43 cat ostechnix.txt14 18:43 clear15 18:43 fc -l </ pre>これで、最近実行されたコマンドの実行時間が表示されます。
-f
を使用して、各コマンドの完全なタイムスタンプを表示することもできます。 オプション。fc -lf 1 4/5/2018 18:41 exit 2 4/5/2018 18:41 clear 3 4/5/2018 18:42 fc -l 4 4/5/2018 18:42 sudo netctl restart wlp9s0sktab 5 4/5 / 2018 18:42 ls -l 6 4/5/2018 18:42 pwd 7 4/5/2018 18:42 uname -r 8 4/5/2018 18:43 uname -ms 9 4/5/2018 18:43 cat ostechnix.txt 10 4/5/2018 18:43 echo "Welcome to OSTechNix" 11 4/5/2018 18:43 more ostechnix.txt 12 4/5/2018 18:43 wc -l ostechnix.txt 13 4 / 5/2018 18:43 cat ostechnix.txt 14 4/5/2018 18:43 clear 15 4/5/2018 18:43 fc -l 16 4/5/2018 18:43 fc -ldもちろん、ヨーロッパの人々は
-E
を使用してヨーロッパの日付形式を使用できます オプション。fc -lE 2 5.4.2018 18:41 clear 3 5.4.2018 18:42 fc -l 4 5.4.2018 18:42 sudo netctl restart wlp9s0sktab 5 5.4.2018 18:42 ls -l 6 5.4.2018 18:42 pwd75.4。 2018 18:42 uname -r 8 5.4.2018 18:43 uname -ms 9 5.4.2018 18:43 cat ostechnix.txt 10 5.4.2018 18:43 echo "Welcome to OSTechNix" 11 5.4.2018 18:43 more ostechnix .txt 12 5.4.2018 18:43 wc -l ostechnix.txt 13 5.4.2018 18:43 cat ostechnix.txt 14 5.4.2018 18:43 clear 15 5.4.2018 18:43 fc -l 16 5.4.2018 18: 43 fc -ld 17 5.4.2018 18:49 fc -lfTL; DR
- 引数なしで実行すると、fcは最新のコマンドをデフォルトのテキストエディタにロードします。
- 数値引数を使用して実行する場合、fcは指定された番号のコマンドをエディターにロードします。
- 文字列引数を指定して実行すると、fcはその指定された文字列で始まる最新のコマンドをロードします。
- fcに対して2つの引数を指定して実行する場合、引数はコマンドの範囲の開始と終了を指定します。
注: 一部のオプションは、最近のBASHバージョンでは非推奨になっています。
詳細については、manページを参照してください。
$ man fc
関連記事:
- Linuxで最後のコマンドを繰り返すさまざまな方法
- LinuxでBash履歴から特定のコマンドをクリアする方法
- Linuxでコマンドライン履歴をクリアする方法