楽しいラズベリーパイのおかげで、ちょうど端末に掘り始めました。それでも私を混乱させる一つのことがあります。
私は他のデーモン/サービス/プロセス/アプリケーション/など(また何が欠けていますか?)に対して異なって呼び出されることがわかりました。
これが私が意味するものです:
(プログラム、ファイル名)
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>
。
systemd
SysVinitがより現代的な代替品(または他の方法)に置き換えられたら、使い慣れたコマンドを維持し、そのシステムコマンドのラッパーとして使用したいupstart
と思います。使用されるとき、それは通常単に包装です。パラメータ順序の変更に注意してください。service
init
systemd
service <name> <action parameter>
systemctl <action parameter> <name>
答え2
「モード」はシェルの構文で指定されます。簡単な場合注文する(または、便利)、続いて議論。パラメータは次のとおりです。オプション、オプションは次のとおりです。オプションパラメータ。オプションの後に他のオプションがあります。オペランド。
例:
ls -l dir
ls
これはコマンド、-l
オプション(オプションパラメーターなし)、dir
およびオペランドです。要約セクションでは、ユーティリティが呼び出される順序を説明するマニュアルを読んだので、これはdir
オプションのオプションパラメータではないことを知っています。-l
ls
例:
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 dir
、1つの(簡単な)コマンドこのユーティリティを使用ls
して{ head -n 20 | tail -n 5; } >file
複合コマンドパイプと2つの簡単なコマンドが含まれています。
すべてのユーティリティ呼び出しは、言えば「作業」です。これは、「killall myprog
オペランドを使用してユーティリティを起動します」を意味します。この場合、ユーティリティがプロセスにシグナルを送信する効果があります。killall
myprog
同様に、ユーティリティは2つのオペランドとして呼び出されますservice restart nginx
。その結果、サービスが再起動されます。service
restart
nginx
nginx
同様に、エディタを呼び出すnano somedoc
動作などがあります。nano
答え3
まず、Unixの哲学はすべてがファイルであるということです。すべてのコマンドは、ハードディスク上のファイルのみを処理するmytextfile
か、nginx
または両方openvpn
を処理します。
これで、ファイルが表す内容とファイルで実行できる操作は、慣例によってのみ決定されます。時々、他のオペレーティングシステムのファイルには、そのファイルの機能をよりよく説明するための拡張子があります。編集可能なテキストファイルの終わりが終わっているかのように、.txt
プログラム.sh
も.php
そう.pl
です。しかし、慣例によってのみ(x
実行に使用されるUnixビットは、データが何であるか、実行可能なものが何であるかについての別のヒントです)
あなたがリストするのは、他のオブジェクト/ファイル(、、、)に対する操作(、、、)ですnano
。service restart
killall
mytextfile
nginx
openvpn
選択したタスクとオブジェクトによって結果が異なります。また、「現在の場所」というファイルをnano openvpn
編集または生成することもできますopenvpn
(これは役に立たず、邪魔になる可能性がありますが、ツールはこれを禁止しません)。
それでは、具体的な行動について話してください。
nano
すべてのファイルの内容を変更するためのテキストエディタです(もちろん、バイナリファイルの場合 - 一部の実行ファイルと同じですが、すべてではありません - 便利な作業を実行するための誤ったツールになります)service restart
システムの現在のフレームワークを使用して長寿命のプロセス(デーモンとも呼ばれます)の起動/停止を処理する再起動「サブタスク」を含むタスク。これは多くの場合の1つに過ぎず、/etc/init.d/nginx restart
他の場所でも発生する可能性があります。 、またはsystemctl restart nginx.service
;サブタスクとして存在するという事実は、restart
そのコマンドにのみ当てはまりますservice
。すべてのコマンドは、異なるスイッチ、パラメータ、サブタスクなどを使用して異なる構文を持つことができます。誰もそれらをすべて覚えることはできません。- 現在実行されているすべてのプロセスのリストを見て、指定された名前と一致するプロセスを終了するコマンドです
killall
(少し警告:このコマンドは、すべてのUnixシステムで同じことをしないので、ホストからドキュメントを読んでください)。使用する前に)実際には、ディスクにファイルとして存在する名前ではなく、任意の名前を指定できます。
あなたの用語の多くは同義語であり、緩く定義されています。アプリケーションは実行(実行)できるものであり、実行時に他の多くのプロセスの中でカーネルによって処理されるプロセスです。 Webサーバーなどのネットワークアプリケーションなど、一般的に直接ユーザー制御を受けない寿命の長いアプリケーションは、過去にはデーモンと呼ばれ、現在はサービスとも呼ばれます(systemctl
詳細は上記の例の構文を参照)。
このような内容は一つも覚える必要はありません。nginx
Webサーバーを使用している場合は、Webサーバーを再起動し、特定のプラットフォームなどで再起動する必要があるかのようにそれを使用して学習しますservice restart
。
答え4
次の標準ルールがありますが、
開発者がルールを破って何らかの理由で必要な構文を使用するのを防ぐ方法はありません。したがって、実際には、当時使用しているアプリケーションによって異なります。
-v
一般に、上記のGNU標準は非常に一般的であることがわかり、時間の経過とともに多くのコマンドが同様の操作(詳細出力印刷など)に同様のパラメータを使用することがわかります。
これらを覚えていることを心配しないでください。定期的に使用するアプリケーションの場合、最終的に構文を習得し、最終的には第2の天性になります。おなじみのアプリケーション用のマニュアルページまたはフラグが常にあります--help
。
基本コマンドの機能を全体的に理解し、マニュアルページを開いて素早く解析できることは、各コマンドのフラグを覚えておくよりもはるかに重要です。