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

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

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

pip3 install --user thefuck

 

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

brew install thefuck
Sponsored Links

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

●~/.bashrc

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

 

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

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) を設定しています ...

 

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

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*