web-dev-qa-db-ja.com

コマンドラインインターフェイスの一般仕様

  1. Linuxとbashで使用されるコマンドラインインターフェイスに関する一般的なアイデアをどこで見つけて学ぶことができるのだろうかと思っていました。
  2. 今のところ、私はそのような情報の断片を経験からのみ見つけました。

    1. Catの場合、それ以上の引数なしで、stdin入力を受け入れます。ただし、特別な名前-を使用してSTDINを明示的に指定することはでき、どちらの方法も同等です。 catは、ファイル名をcat filenameとして受け入れることもできます。では、-は、ファイル名に想定される引数を入力することを意味しますか?この-の使用法は、他のコマンドでも一般的ですか?
    2. chardet <<<somestringで、<<<は、echo somestring | chardetと同じように、文字列がstdinとして使用されることを意味します。この<<<の使用法も一般的ですか?
    3. cut -c 1-3,20,25- employeesで、引数の数値の範囲を指定する1-3,20,25-の方法は、他のコマンドでも一般的ですか?
  3. 最後になりましたが、これらの一般的な考え方は、bash内、LinuxとUnix内、またはコマンドラインパーサーとしてgetoptを使用するソフトウェア内に共通していますか?
4
Tim

基本的な使用法を学び、いくつかの高度な機能を理解するために、UNIXまたはLinuxシェルとコマンドラインの使用法に関する本を読むことをお勧めします。次に、リファレンスドキュメントに目を向けることができます。

特定のコマンドの使用法は、マニュアルに記載されています。 man catは、システムのcatコマンドのマニュアルを表示します。マニュアルページは通常、チュートリアルではなくリファレンスですが、多くの場合、例が含まれています。 Linuxでは、cat --helpは簡潔な使用法メッセージを表示します(基本をすでに理解していて、特定のタスクのオプションを見つけたい場合は、すばやく読むことができます)。

[〜#〜] posix [〜#〜] 標準は、すべてのUNIXシステムがサポートすることになっているコマンド、オプション、およびシェル機能の最小セットを指定します。現在のほとんどのシステムは、大まかにサポートしています POSIX:2004 (SingleUNIXバージョン3およびOpenGroup Base Specification issue 6とも呼ばれます)。 [〜#〜] gnu [〜#〜] ソフトウェア(Linuxにあるユーティリティ)には、この最小セットに対して多くの拡張機能があることがよくあります。

コマンドライン引数には一般的な規則があります。 POSIXは、特に次のように、ほとんどのユーティリティが従う ユーティリティ規則 を指定します。

  • オプションは、-とそれに続く1文字で構成されます。 -ab-a -bの省略形です。
  • --は、オプションの終了を示します。たとえば、rm -- -aでは、-aはオプションではなく、オペランド、つまり作用するファイルであるため、このコマンドは-aというファイルを削除します。
  • 単独の-は、入力ファイルが必要な標準入力を表します。これは、出力ファイルが期待される標準出力を表します。

GNUユーティリティなども、--nameの形式の「長いオプション」をサポートしています。一部のユーティリティは、一般的な規則に反し、先頭に1つのダッシュが付いた複数文字のオプションを使用します:-name

リダイレクトはシェルの機能であるため、シェルのマニュアルに記載されています。文字列を標準入力として使用するための<<<はksh拡張であり、bashおよびzshでもサポートされています。シェルがサポートしている限り、どのコマンドでも使用できます。

O'riellyによる一言で言えばUnixを調べるか、単にbashチュートリアルをグーグルで調べることをお勧めします。

Bashは別名BourneAgainShellです。

私が正しく覚えていれば、他のシェルはSH、CSH、およびKSHでした。 CSHはCに基づいています。

また、CとPerlまたはPythonを学ぶことをお勧めします。これらは、物事を大幅にスピードアップするのに役立ちます。

6
baweaver

つまり、-はファイル名に想定される引数を入力することを意味しますか?

はい。

この使用法は-他のコマンドでも一般的ですか?

いくつかの標準があるかどうかはよくわかりませんが、いくつかのGNUツール(例:tar)はこの目的のために-を使用します。

カット-c1-3,20,25-従業員では、引数の数値の範囲を指定する方法1-3,20,25-は、他のコマンドでも一般的ですか?

当たり前のようです。ほとんどのGNUツールでこれを使用できると確信しています-それらはほとんど同じ規則に従っていますが、GNU以外のツールについてはマニュアルを確認します。

2
rvs