HappyGoLucky

Web系サーバーサイド寄りの自動化大好きエンジニアの徒然なるブログ

fcコマンドとpbcopyコマンド

最近、 fc コマンドを知った。 Windowsの比較コマンドではなくて、Linuxの、コマンド履歴を出力する方。 つまりは history と同じ。

historyfc も、ShellのBuild-inコマンド。

$ type fc
fc is a shell builtin

ちなみにうちの環境は、oh-my-zsh入れてるので、historyfcのaliasになってる。

$ type history # oh-my-zsh/lib/history.zsh によるもの
history is an alias for fc -l 1

fc だけ打つと、直前のコマンドが実行される。

実行される前に、 Editorが立ち上がり、 /tmp/ 以下にファイルが作られて開かれる。

開かれたファイルには、直前のコマンドが入力されている。

このコマンドを編集して保存して終了すれば、直前のコマンドに手を加えて実行することができる。

ちょっと気持ちよくワンライナー書いた後に、修正したくなった時に使うと便利かもしれない。

history コマンドと同等の出力もできる。 fc -l [数値] で出力する履歴の数を制御できる。1 だと全て。-1 だと直近1つ。

$ history | tail -n 2
 1493  type fc
 1494  history
$ fc -l -2
 1494  history
 1495  history | tail -n 2

数値を並べると、逆順にもできる。tacしなくていい。

$ fc -l 3 1 
 3  echo $ZSH
 2  pwd
 1  ls

-n つければ、番号が消える。

$ fc -ln 3 1
echo $ZSH
pwd
ls

もともと、fcを知ったのは、入力したワンライナークリップボードにコピペしたかったから。

pbcopy と組み合わせて、

$ fc -ln -1 | pbcopy

とすれば良い。