rcmdnk's blog

UNIXシェルスクリプトコマンドブック 第2版

シェルコマンドの複雑なオプションを簡単に説明してくれる コマンドの紹介。

Explaining Shell Commands in the Shell

Explaining Shell Commands in the Shell ManKier Blog

上で紹介されてるスクリプトですが

explain.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Add this to ~/.bash_profile or ~/.bashrc
explain () {
  if [ "$#" -eq 0 ]; then
    while read  -p "Command: " cmd; do
      curl -Gs "https://www.mankier.com/api/v2/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
    done
    echo "Bye!"
  elif [ "$#" -eq 1 ]; then
    curl -Gs "https://www.mankier.com/api/v2/explain/?cols="$(tput cols) --data-urlencode "q=$1"
  else
    echo "Usage"
    echo "explain                  interactive mode."
    echo "explain 'cmd -o | ...'   one quoted command to explain it."
  fi
}

# Update 26-03-2015. If using this command gives no output, see if running a simple fetch causes this error:
# $ curl https://www.mankier.com
# curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).
# If so, try specifying a cipher in the curl commands: curl --ciphers ecdhe_ecdsa_aes_128_sha

Explaining Shell Commands in Bash

この様な関数を作っておくと

$ explain 'du -s * | sort -n | tail'

du(1)
  Summarize disk usage of the set of FILEs, recursively for directories. Mandatory arguments to long
  options are mandatory for short options too.

  -s (-s, --summarize)
    display only a total for each argument

  *

-------------------------------------------------------------------------------------------------pipe--

sort(1)
  Write sorted concatenation of all FILE(s) to standard output. With no FILE, or when FILE is -, read
  standard input. Mandatory arguments to long options are mandatory for short options too.

  -n (-n, --numeric-sort)
    compare according to string numerical value

-------------------------------------------------------------------------------------------------pipe--

tail(1)
  Print the last 10 lines of each FILE to standard output. With more than one FILE, precede each with a
  header giving the file name. With no FILE, or when FILE is -, read standard input. Mandatory
  arguments to long options are mandatory for short options too.

$

こんな感じで各コマンドやオプションを説明してくれます。

これは、explainコマンドの中で、 ManKier Man Pages というサービスのAPIを使って説明を取ってきています。

なのでオンラインでのみ使えます。

同じ様なウェブサービス: explainshell.com

explainshell.comManKier Man Pages と同じ様にコマンドの説明をしてくれます。

こちらの方がさらに色々と説明してくれるものがあって、 例えばfor文とかもきっちり説明してくれます。

explainshell.com - for i in $(seq 1 10);do echo i;done

なのでこちらの方のAPIが出来たらもっと便利だな、と、 さらにオフラインでも使える様なものになれば便利なのにな、というところではあります。

Explaining Shell Commands in the Shell (2014) Hacker News

Sponsored Links
Sponsored Links

« Homebrewのコマンドを作る方法その2 SVNで管理下のファイルを実行ファイルにする方法 »

}