Linuxで「ExplainShell」スクリプトを使用してシェルコマンドを簡単に理解する


Linuxプラットフォームで作業している間、ある時点で、私たち全員がシェルコマンドのヘルプを必要としています。マニュアルページのような組み込みのヘルプですが、whatisコマンドは役に立ちますが、マニュアルページの出力は長すぎ、Linuxの経験がない限り、大量のマニュアルページからヘルプを得るのは非常に困難です。 whatisコマンドの出力が複数行になることはめったになく、初心者には不十分です。

「チート」のようなサードパーティのアプリケーションがあります。これについては、「Linuxユーザー向けのコマンドラインチートシート」で説明しました。 Cheatは、コンピューターがインターネットに接続されていない場合でもシェルコマンドのヘルプを表示する非常に優れたアプリケーションですが、事前定義されたコマンドのヘルプのみを表示します。

ジャクソンによって書かれた小さなコードがあります。これは、bashシェル内のシェルコマンドを非常に効果的に説明し、サードパーティのパッケージをインストールする必要がないことの最良の部分を推測することができます。彼は、このコードを含むファイルに 'explain.sh' という名前を付けました。

  1. Easy Code Embedding.
  2. No third-party utility needed to be installed.
  3. Output just enough information in course of explanation.
  4. Requires internet connection to work.
  5. Pure command-line utility.
  6. Able to explain most of the shell commands in bash shell.
  7. No root Account involvement required.

唯一の要件は、 'curl' パッケージです。今日の最新のLinuxディストリビューションのほとんどでは、curlパッケージがプリインストールされていますが、そうでない場合は、以下に示すようにパッケージマネージャーを使用してインストールできます。

# apt-get install curl 	[On Debian systems]
# yum install curl 		[On CentOS systems]

Linuxへのexplain.shユーティリティのインストール

以下のコードを〜/ .bashrc ファイルにそのまま挿入する必要があります。コードは、ユーザーごとおよび .bashrc ファイルごとに挿入する必要があります。 rootユーザーの.bashrcではなく、ユーザーの.bashrcファイルにのみコードを挿入することをお勧めします。

ハッシュ(#)で始まるコードの最初の行はオプションであり、.bashrcの残りのコードを区別するためだけに追加されていることに注意してください。

#explain.shはコードの始まりを示し、このファイルの最後にある.bashrcファイルに挿入します。

# explain.sh begins
explain () {
  if [ "$#" -eq 0 ]; then
    while read  -p "Command: " cmd; do
      curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
    done
    echo "Bye!"
  elif [ "$#" -eq 1 ]; then
    curl -Gs "https://www.mankier.com/api/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
}

Explain.shユーティリティの動作

コードを挿入して保存した後、変更を有効にするには、現在のセッションからログアウトして再度ログインする必要があります。説明が必要な入力コマンドとフラグをmankierサーバーに転送し、必要な情報だけをLinuxコマンドラインに出力する「curl」コマンドによってすべてが処理されます。このユーティリティを使用することは言うまでもなく、常にインターネットに接続している必要があります。

Explain.shスクリプトで意味がわからないコマンドの例をいくつかテストしてみましょう。

1.「du-h」の機能を忘れてしまいました。私がする必要があるのは:

$ explain 'du -h'

2.「tar-zxvf」の機能を忘れた場合は、次のようにするだけです。

$ explain 'tar -zxvf'

3.友人の1人が、「whatis」コマンドと「whereis」コマンドの使用を混同することがよくあるので、私は彼にアドバイスしました。

端末でexplainコマンドを入力するだけで、インタラクティブモードに移動します。

$ explain

次に、コマンドを次々に入力して、次のように1つのウィンドウでコマンドが何をするかを確認します。

Command: whatis
Command: whereis

インタラクティブモードを終了するには、Ctrl + cを実行する必要があります。

4.パイプラインによってチェーンされた複数のコマンドについて説明するように依頼できます。

$ explain 'ls -l | grep -i Desktop'

同様に、シェルコマンドを説明するようにシェルに依頼できます。必要なのは、インターネット接続が機能していることだけです。サーバーからの説明に基づいて出力が生成されるため、出力結果をカスタマイズすることはできません。

私にとって、このユーティリティは本当に役に立ち、私の.bashrcに追加されたことを光栄に思います。このプロジェクトについてどう思いますか?それはあなたにとってどのように役立ちますか?説明は満足ですか?

以下のコメントで貴重なフィードバックをお寄せください。私たちを好きにして共有し、私たちが広まるのを手伝ってください。