【fc】打ち間違えた長文コマンドをエディタで修正して再実行するfcコマンド【Linuxコマンド入門 Part4-8】

はじめに

Linuxの操作に慣れてくると、オプションをたくさん繋げた長いコマンドや、深い階層のファイルパスを指定する機会が増えてきます。

そんな時、「よし、完璧だ!」と思ってEnterを押した瞬間に「No such file or directory(ファイルがありません)」と怒られ、パスの1文字だけ打ち間違えていたことに気づく……という経験を味わったことはありませんか?

上矢印キー()でコマンドを呼び出し、左矢印キー()を押しっぱなしにして修正箇所までカーソルを移動させるのは、非常にストレスが溜まりますよね。

今回は、そんな長文コマンドの修正ストレスをゼロにする魔法のコマンド、fc(エフシー)」を紹介します。

fcコマンドの使い方、編集エディタの変更など設定から実用的な利用方法を紹介。Linuxコマンド入門第4シリーズ。

1. fc コマンドとは?

fc は「Fix Command(コマンドを修正する)」の略としてよく覚えられます。

このコマンドを打つと、「直前に実行したコマンド」がテキストエディタ(nano や vi など設定したエディタ)で開かれます。 そして、エディタ上で文字を自由に修正して「保存して閉じる」と、修正されたコマンドが即座に自動実行されるという、便利な機能を持っています。

ターミナルの1行という窮屈な場所ではなく、画面全体を使えるエディタでコマンドを推敲できるのが最大のメリットです。

2. 基本的な使い方:直前のコマンドを直す

百聞は一見に如かず。実際に長いコマンドを打ち間違えたというシチュエーションで試してみましょう。

例えば、深い階層にある設定ファイルをコピーしようとして、ファイル名のスペルを間違えてしまったとします。

fcコマンドで実験するために要した nginx環境

深い階層にある設定ファイルのディレクトリ構成例

【実行例:間違えたコマンド】

conf を congとタイプミスした例。

# cp conf/nginx.conf conf/nginx-backup.conf ←正しい
cp conf/nginx.cong conf/nginx-backup.conf ←誤り

#実行結果 ファイルがないと出る。
cp: cannot stat 'conf/nginx.cong': No such file or directory

エラーが出た直後に、ターミナルに以下のように打ち込んで Enter を押します。

fc

すると、画面がパッと切り替わり、テキストエディタが開きます。

fcコマンドの実行で直前コマンドの nanoエディタが起動した画面

起動したnanoエディタ

【実行例:nanoで編集】

エディタ上なので、矢印キーやショートカットを使って自由にスイスイと移動できます。間違えていた cong を conf に修正しましょう。

fcコマンドの実行で直前コマンドの nanoエディタが起動した画面

修正が終わったら、エディタを保存して終了します(nano の場合は Ctrl+oEnterCtrl+x)。

エディタを閉じると、修正済みのコマンドが自動的に実行されました! カーソルをポチポチと左へ動かして直すよりも、圧倒的に早く、そして確実です。

fcコマンドの実行で誤ったコマンドを修正し実行が成功した様子

3. エディタが vi で開いてしまった場合

fc コマンドを打った時、初心者にとって最大のトラップがあります。 それは、「Linuxの初期設定によっては、操作にコツがいる vi(または vim)というエディタが勝手に開いてしまう」ことです。

「抜け出し方が分からない!」とパニックにならないために、開くエディタを初心者向けの nano に固定する設定をしておきましょう。

第2回で学んだ .bashrc(または .zshrc)を開き、一番下に以下の1行を追記します。

# デフォルトのエディタを nano に設定する
export EDITOR=nano

保存して source ~/.bashrc で反映させれば、次から fc を打った時は必ず nano で開くようになり安心です。

設定方法の詳細: 【.bashrc / .zshrc】Linux設定ファイルの書き方と反映方法【Linuxコマンド入門 Part4-2】

4. 応用編:特定の過去コマンドを引っ張り出す

fc は直前のコマンドだけでなく、過去の特定のコマンドをエディタに呼び出すこともできます。

第6回で学んだ history コマンドで履歴番号を確認し、fc の後ろにその番号を付けます。

# 履歴番号 105 番のコマンドをエディタで開いて修正・実行する
fc 105

前回の記事で紹介した Ctrl + r(または fzf)で過去のコマンドを呼び出し、「これを実行したいけど、パスだけ書き換えたいな」という時に、この fc コマンドと組み合わせることで、ターミナル操作は劇的に快適になります。

Linuxコマンド入門第4シリーズ。linuxで実行したコマンドの履歴確認をする方法。historyコマンドについて詳しく紹介。historyで確認した過去コマンドを一撃で再度実行する方法も併せて紹介します。

【history】Linuxコマンドの実行履歴を確認・削除・再実行する使い方【Linuxコマンド入門 Part4-6】

上矢印キーで過去のコマンドを遡っていませんか?Linuxの「history」コマンドを使えば、過去の実行履歴を一覧表示して検索・再実行が可能です。環境構築の自動マニュアルとしての活用法や、sudo付け忘れに便利な「!!」の小技、履歴の削除方法まで詳しく解説します。

【注意】実行をキャンセルしたくなったら? エディタを開いたものの「やっぱり実行をやめたい」と思った時は、エディタ上のコマンド(文字)をすべて削除して空っぽにしてから保存・終了してください。空のコマンドとして処理されるため、何も実行されずに安全に元の画面に戻れます。


まとめ

  • fc: 直前のコマンドをテキストエディタで開き、修正・自動実行するコマンド。
  • 長文修正の救世主: 矢印キーでカーソルをポチポチ動かすストレスから解放される。
  • デフォルトエディタの変更: .bashrcexport EDITOR=nano を設定しておくのがおすすめ。
  • 特定履歴の編集: fc [履歴番号] で過去のコマンドも修正・実行可能。

今回紹介した fc は、参考書などではあまり大きく取り上げられないマイナーなコマンドですが、実務で使っていると「なに今の!どうやったの!?」と驚かれること間違いなしのテクニックです。

さて、これまで「コマンドの打ち方や探し方」を快適にしてきましたが、次回は「ターミナルの見た目」そのものを自分好みに改造します。

「ユーザー名」や「現在時刻」、「今いるディレクトリ」などをカラフルに表示させる、プロンプト(PS1)のカスタマイズに挑戦しましょう!

PS1で編集できるターミナルのプロンプトがどこか示す画像

【PS1】ターミナルの表示名や色を変更!プロンプトのカスタマイズ術【Linuxコマンド入門 Part4-9】

Linuxターミナルの文字(プロンプト)が長くて見にくいとお悩みですか?環境変数「PS1」を変更すれば、ユーザー名やホスト名を消したり、現在の時刻を表示させたりと自由にカスタマイズ可能です。コピペで使えるカラフルな色付き設定や、.bashrcへの保存方法まで分かりやすく解説します。


第四回”Linuxコマンド入門 Part4 ~自分好みの環境を整える~”では、linuxでの作業を効率化し自分好みの環境を作り上げる方法を紹介しています

デフォルト画像 9 記事
シリーズ

Linuxコマンド入門 Part4 ~ターミナル操作の効率化とシェル環境のカスタマイズ~

Linuxで、コマンドライン操作を効率化したり、自分好みにカスタマイズする方法を学ぼう。

ここまで読んでいただきありがとうございます。

では、次の記事で。 lumenHero