私は何年もの間Linuxを使用し、研究し、開発してきました。代議に参加する、Linuxに切り替えます。
ところが、これらの人々がこのまったく新しい世界を発見しに行って、結局彼ら一人一人が私に来て尋ねた。このタスクまたはそのタスクを実行するコマンドは何ですか?:
- ソフトウェアをインストールするコマンドは何ですか?
- 現在のディレクトリの内容を一覧表示するコマンドは何ですか?
- Webブラウザを開くコマンドは何ですか?
- ...
しかし、私にとっては、彼らが間違った質問をしているように感じます。実際、私は彼らが次のように尋ねると予想しました。
- システムにインストールされているソフトウェアを管理するためにどのプログラムを使用しますか?
- 現在のディレクトリの内容を一覧表示できるプログラムは何ですか?
- どのWebブラウジングプログラムを使用できますか?
- ...
私の考えでは、注文するシェルプロンプトに入力するほとんどすべてを説明するために使用される非常に抽象的な単語です。この考えを念頭に置いて、私が連れて来た何人かの新しい人々は次の事実を信じ始めました。
- Linuxは多数のコマンドで構成されています。
- すべてにコマンドがあり、各コマンドは1つのことを行います。
- より多くのコマンドを学ぶと、Linuxユーザー/管理者としての能力がさらに向上します。
- runを使用すると、
./something
コマンドを実行するのではなく、現在のディレクトリに保存されているプログラム(おそらく私が直接コンパイルしたもの)を実行します。 - ...
だから私はこの言葉をうまく使いません。注文するを使用することを好む。プログラムまたは実行可能ファイル。また、このメカニズムのおかげで、$PATH
絶対パスを入力せずにこれらの実行可能ファイルを自動的に見つけることができると説明しました。おかげで入力ls
実行/bin/ls
プログラム/bin
変数に登録されたディレクトリに保存されます$PATH
。
それでもその言葉に触れました。注文する多くの書籍、チュートリアル、ガイドなどでついに私は次の質問に至りました。この言葉は何ですか?注文するUNIX/Linux 語彙では実際に意味がありますか?他に何かを指すか。「ターミナルに何を入力しても」?
答え1
これPOSIXシェル仕様おすすめ簡単なコマンド、複合コマンド、コマンド位置、しかも注文する command
。
最初の 2 つの参照シェルの方法/いつ注文する解析して実行します。たとえば、
#one compound command
{ simple command; simple command && simple command; }
これ複合コマンドコンポーネントを評価して実行する前にシェルが読み取る必要がある入力の量。簡単なコマンド。
コマンド位置各単語の最初の単語です。簡単なコマンドこれは残りの方法を決定するので、特別な意味を持ちます。注文する解析が必要です。確認する予約語、(例:if
とwhile
)、いつコマンド位置、これはパーサーに次の内容を次のように解釈する必要があることを示します。複合コマンド一つだけではなく簡単なコマンド。
これ注文する command
移動に使用できます。注文する外のコマンド位置。たとえば、次の2つのコードは同じ方法で実行されますが、異なる方法で解析できます。
command simple command
simple command
答え2
ㅏコマンドラインシステムにタスクを指示するためにシェルに入力する行全体です。これ注文する通常、コマンドラインの最初の単語です。通常、実行するプログラムを識別しますが、制御フローに使用されるキーワード(または)、またはシェル固有のif
操作while
のための組み込みコマンド(たとえば、またはread
)set
ですexport
。時々注文するコマンドライン全体を参照するために使用され、コンテキストによって意味が明確になります。
今日、コマンドとアプリケーションの間に共通の違いがあります。 GUI環境では、アプリケーションはグラフィカルシェルを使用して起動されるプログラムです。シェルにコマンドを入力すると呼び出されます。
ご提供いただいた質問の回答は次のとおりです。
- ソフトウェアをインストールするコマンドは何ですか?それはまるで
apt-get install
。 - 現在のディレクトリの内容を一覧表示するコマンドは何ですか?
ls
- Webブラウザを開くコマンドは何ですか?
firefox &
それとも、chrome &
おそらくそうです。 Windowsシステムを使用している場合は、ブラウザを選択できるメニューがある可能性があるため、この操作を実行するためのコマンドは使用しません。