はじめに
UNIX コマンドのオプション (特にショートオプション) の意味がわからず、調べたい場合はよくあると思います。例えば
- macOS で Homebrew をインストールする際の curl コマンドのオプション
-fsSL
ってなんだろう?ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
- tar コマンドで圧縮したり解凍したりする場合に使うオプションの
-zcvf
,-zxvf
の意味はなんだろう? - find コマンドで -exec オプションを使う場合、例えば
find . -type f -exec echo {} +
の{}
とか+
ってなんだろう?
という場合です。
このとき、通常は man コマンドや各コマンドの --help オプションを使うと思います。しかし、辞書を引くようにオプションをひとつひとつ調べるのは手間がかかります。今回はその手間を解消してくれる explainshell.com という Web サービスを紹介します 🙌
explainshell.com
explainshell.com はコマンドを入力すると、関連する man ページの情報をもとにそのコマンドをパースして説明を表示してくれる Web サービスです。
例
macOS で Homebrew をインストールする際の curl コマンドのオプション
-fsSL
ってなんだろう?
curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install
を入力すると以下のように表示されます。
explainshell.com - curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install
man ページの説明を視覚的にわかりやすく表示してくれます。-s
は --silent
、-S
は --show-error
の略なんですね。
tar コマンドで圧縮したり解凍したりする場合に使うオプションの
-zcvf
,-zxvf
の意味はなんだろう?
2 種類の tar コマンドの例は以下です。
explainshell.com - tar -zcvf sample.tar.gz ./sample
explainshell.com - tar -zxvf sample.tar.gz
-c
は --create
、-x
は --extract
の略なんですね。
find コマンドで -exec オプションを使う場合、例えば
find . -type f -exec echo {} +
の{}
とか+
ってなんだろう?
explainshell.com - find . -type f -exec echo {} +
オプションのみならず、-exec command {} +
の意味もすぐに分かりますね。
他にも :(){ :|:& };:
など一見するとわけがわからないコマンドもパースして説明してくれます。
explainshell.com - :(){ :|:& };:
注意点
このサービスは Ubuntu Manpage の情報を元にしてます1。そのため、この Ubuntu Manpage に記載されていない情報は取得できません。具体的には以下の点に注意です。おとなしく man コマンドを使用しましょう。
ディストリビューションでの差異
ディストリビューションの異なる Ubuntu と macOS ではコマンドで使用できるオプションが異なる場合があります。例えば macOS で date コマンドを使用する場合に -v
オプション2 が使えますが、explainshell.com では説明が表示されません。
$ sw_vers
ProductName: macOS
ProductVersion: 12.0.1
BuildVersion: 21A559
$ date -v-1d
2022年 2月19日 土曜日 21時04分23秒 JST
新しいコマンド
git restore は 2019/08/16 にリリースされた Git バージョンで登場したコマンドです。このように新しいコマンドは Ubuntu Manpage に記載されておらず、explainshell.com では説明が表示されません。
explainshell.com - git restore -p -s 42b9adba app/models/user.rb
まとめ
explainshell.com を利用すると、コマンドをパースしてわかりやすい UI で説明してくれます。オプションを多用したコマンドでひとつひとつのオプションの意味や詳細を調べる際に非常に重宝します。man コマンドと併用して、ぜひ使ってみてください。
関連
-
コマンドの説明を表示するページの下部に Ubuntu Manpage へのリンクが記載されている。 ↩