端末コマンドのモードは何ですか?

端末コマンドのモードは何ですか?

楽しいラズベリーパイのおかげで、ちょうど端末に掘り始めました。それでも私を混乱させる一つのことがあります。

私は他のデーモン/サービス/プロセス/アプリケーション/など(また何が欠けていますか?)に対して異なって呼び出されることがわかりました。

これが私が意味するものです:

(プログラム、ファイル名)

nano mytextfile

(奉仕、行動、計画)

service restart nginx

(行動計画)

killall openvpn

この時点では基本的に記憶力の練習です。まだ文法を理解していません。そんなことありますか? :

"service" when it's a service, as opposed to...? >
action for program if applicable >
name of program >
additional parameters

これらの違いとそれにアクセスするさまざまな方法を簡単に説明できますか?

答え1

あなたがリストした潜在的なパターンのうち、実際に存在する唯一のパターンは次のとおりです。

プログラム名>追加パラメータ

まず、いくつかの単語の定義は次のとおりです。

  • プログラムまたはアプリケーション:デフォルトでは実行可能ファイル
  • プロセス: 現在実行中のプログラムのインスタンス
  • デーモン:ユーザーのログインセッションとは無関係にいくつかのタスクを実行するプログラムまたはプロセスsshd。 Webサーバー(Apache)、ネットワーク接続マネージャ(NetworkManager、、ModemManager)...
  • サービス:通常、起動時に開始されるエントリはデーモンであっても、何かを設定して終了するスクリプトであったり、システムがシャットダウンしたときにその解体を実行したりできます。場合によっては、起動時にプログラムがデーモンで始まる配列を意味する場合があります。

serviceこれは、SysVinitスタイルの起動/終了スクリプトの単純なラッパーで始まりました。 Linuxで既存のSysVinitがシステムinit(プロセス#1、「すべてのプロセスの母親」)として使用されている場合、これらのスクリプトは通常ディレクトリにあります/etc/init.d。これらのスクリプトには、startサービスの開始、stopサービスの停止、またはstatusサービス状態の照会に使用される標準化されたパラメーターがあります。他にもあります。

しかし、書くのは退屈だったので、/etc/init.d/<service name> <action parameter>誰かが簡単なラッパースクリプトを作成しました。service <name> <action parameter>元の意味はjustでした/etc/init.d/<name> <action parameter>

systemdSysVinitがより現代的な代替品(または他の方法)に置き換えられたら、使い慣れたコマンドを維持し、そのシステムコマンドのラッパーとして使用したいupstartと思います。使用されるとき、それは通常単に包装です。パラメータ順序の変更に注意してください。serviceinitsystemdservice <name> <action parameter>systemctl <action parameter> <name>

答え2

「モード」はシェルの構文で指定されます。簡単な場合注文する(または、便利)、続いて議論。パラメータは次のとおりです。オプション、オプションは次のとおりです。オプションパラメータ。オプションの後に他のオプションがあります。オペランド

例:

ls -l dir

lsこれはコマンド、-lオプション(オプションパラメーターなし)、dirおよびオペランドです。要約セクションでは、ユーティリティが呼び出される順序を説明するマニュアルを読んだので、これはdirオプションのオプションパラメータではないことを知っています。-lls

例:

git commit -p

gitコマンド名の後にオプションがないため、残りはオペランドとして扱われます。gitこれを説明するのはコマンドに依存します。必要に応じて、commitオペランドを「サブコマンド」、-pサブコマンドを「オプション」と呼ぶこともできます。

例:

cc -o code.o -Wall code.c

ここにccコマンドがあり、オプションがあり-oます-Wall。この-oオプションはcode.oオプションパラメータとして使用されます。ccコマンドによっては、-Wallオプションは実際に解析できます-W all。つまり、オプション引数を持つオプションとして解析できます(単一文字オプションはオプション引数の前にスペースを必要としません)。code.cすべてのオプションの後に表示されるため、オペランドです。

「パラメータ」、「オプション」、および「オプションパラメータ」という単語は次のとおりです。POSIX規格。コマンドは単純、リスト、複合、パイプなどである可能性があるため、標準では「コマンド」の代わりに「ユーティリティ」という単語を使用します。たとえばls -l dir1つの(簡単な)コマンドこのユーティリティを使用lsして{ head -n 20 | tail -n 5; } >file複合コマンドパイプと2つの簡単なコマンドが含まれています。


すべてのユーティリティ呼び出しは、言えば「作業」です。これは、「killall myprogオペランドを使用してユーティリティを起動します」を意味します。この場合、ユーティリティがプロセスにシグナルを送信する効果があります。killallmyprog

同様に、ユーティリティは2つのオペランドとして呼び出されますservice restart nginx。その結果、サービスが再起動されます。servicerestartnginxnginx

同様に、エディタを呼び出すnano somedoc動作などがあります。nano

答え3

まず、Unixの哲学はすべてがファイルであるということです。すべてのコマンドは、ハードディスク上のファイルのみを処理するmytextfileか、nginxまたは両方openvpnを処理します。

これで、ファイルが表す内容とファイルで実行できる操作は、慣例によってのみ決定されます。時々、他のオペレーティングシステムのファイルには、そのファイルの機能をよりよく説明するための拡張子があります。編集可能なテキストファイルの終わりが終わっているかのように、.txtプログラム.sh.phpそう.plです。しかし、慣例によってのみ(x実行に使用されるUnixビットは、データが何であるか、実行可能なものが何であるかについての別のヒントです)

あなたがリストするのは、他のオブジェクト/ファイル(、、、)に対する操作(、、、)ですnanoservice restartkillallmytextfilenginxopenvpn

選択したタスクとオブジェクトによって結果が異なります。また、「現在の場所」というファイルをnano openvpn編集または生成することもできますopenvpn(これは役に立たず、邪魔になる可能性がありますが、ツールはこれを禁止しません)。

それでは、具体的な行動について話してください。

  • nanoすべてのファイルの内容を変更するためのテキストエディタです(もちろん、バイナリファイルの場合 - 一部の実行ファイルと同じですが、すべてではありません - 便利な作業を実行するための誤ったツールになります)
  • service restartシステムの現在のフレームワークを使用して長寿命のプロセス(デーモンとも呼ばれます)の起動/停止を処理する再起動「サブタスク」を含むタスク。これは多くの場合の1つに過ぎず、/etc/init.d/nginx restart他の場所でも発生する可能性があります。 、またはsystemctl restart nginx.service;サブタスクとして存在するという事実は、restartそのコマンドにのみ当てはまりますservice。すべてのコマンドは、異なるスイッチ、パラメータ、サブタスクなどを使用して異なる構文を持つことができます。誰もそれらをすべて覚えることはできません。
  • 現在実行されているすべてのプロセスのリストを見て、指定された名前と一致するプロセスを終了するコマンドですkillall(少し警告:このコマンドは、すべてのUnixシステムで同じことをしないので、ホストからドキュメントを読んでください)。使用する前に)実際には、ディスクにファイルとして存在する名前ではなく、任意の名前を指定できます。

あなたの用語の多くは同義語であり、緩く定義されています。アプリケーションは実行(実行)できるものであり、実行時に他の多くのプロセスの中でカーネルによって処理されるプロセスです。 Webサーバーなどのネットワークアプリケーションなど、一般的に直接ユーザー制御を受けない寿命の長いアプリケーションは、過去にはデーモンと呼ばれ、現在はサービスとも呼ばれます(systemctl詳細は上記の例の構文を参照)。

このような内容は一つも覚える必要はありません。nginxWebサーバーを使用している場合は、Webサーバーを再起動し、特定のプラットフォームなどで再起動する必要があるかのようにそれを使用して学習しますservice restart

答え4

次の標準ルールがありますが、

開発者がルールを破って何らかの理由で必要な構文を使用するのを防ぐ方法はありません。したがって、実際には、当時使用しているアプリケーションによって異なります。

-v一般に、上記のGNU標準は非常に一般的であることがわかり、時間の経過とともに多くのコマンドが同様の操作(詳細出力印刷など)に同様のパラメータを使用することがわかります。

これらを覚えていることを心配しないでください。定期的に使用するアプリケーションの場合、最終的に構文を習得し、最終的には第2の天性になります。おなじみのアプリケーション用のマニュアルページまたはフラグが常にあります--help

基本コマンドの機能を全体的に理解し、マニュアルページを開いて素早く解析できることは、各コマンドのフラグを覚えておくよりもはるかに重要です。

関連情報