直前のコマンドのエラーに対しよしなに(パッケージ入れたり)してくれる『The Fuck』

ぼけーっとネットサーフィンしていたところ、コンソール上でコマンドを実行した際にうまく行かなかった場合、後から実行することでよしなにしてくれる『The Fuck』なるコマンドを見かけたので試してみた。 …それにしても大丈夫なんか、この名前。

インストールには、以下のコマンドを実行する。

bash
pip3 install --user thefuck

Mac OS Xの場合、brewからのインストールも行えるようだ。

bash
brew install thefuck

なお、上記コマンドの場合「\~/.local/bin」に実行ファイルが配置されるので、PATHを通しておく必要がある。また、.bashrcなどに追記も必要になるので、以下の内容を追記する。

~/.bashrc
bash
export PATH=$PATH:~/.local/bin eval $(thefuck --alias)

後は、以下のようにコマンドの実行失敗時にfuckコマンドを実行することで、失敗の原因を解消(パッケージがない場合はインストールするなど)して再実行させることができる。

shell
blacknon@BS-PUB-DEVELOP:~$ sl プログラム 'sl' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt install sl blacknon@BS-PUB-DEVELOP:~$ fuck sudo apt-get install sl && sl [enter/↑/↓/ctrl+c] [sudo] blacknon のパスワード: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: linux-headers-4.4.0-64 linux-headers-4.4.0-64-generic linux-headers-4.4.0-66 linux-headers-4.4.0-66-generic linux-headers-4.4.0-70 linux-headers-4.4.0-70-generic linux-headers-4.4.0-71 linux-headers-4.4.0-71-generic linux-image-4.4.0-64-generic linux-image-4.4.0-66-generic linux-image-4.4.0-70-generic linux-image-4.4.0-71-generic linux-image-extra-4.4.0-64-generic linux-image-extra-4.4.0-66-generic linux-image-extra-4.4.0-70-generic linux-image-extra-4.4.0-71-generic これを削除するには 'sudo apt autoremove' を利用してください。 以下のパッケージが新たにインストールされます: sl アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 110 個。 24.4 kB のアーカイブを取得する必要があります。 この操作後に追加で 86.0 kB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 sl amd64 3.03-17build1 [24.4 kB] 24.4 kB を 0秒 で取得しました (174 kB/s) 以前に未選択のパッケージ sl を選択しています。 (データベースを読み込んでいます ... 現在 282812 個のファイルとディレクトリがインストールされて います。) .../sl_3.03-17build1_amd64.deb を展開する準備をしています ... sl (3.03-17build1) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... sl (3.03-17build1) を設定しています ...

なんでも対応してくれるというわけではないが、コレは面白いし便利だ。