見出し画像

📈Pathとenvの違いとかsetとか PATH は環境変数 env はコマンド


  1. PATH:

    • PATH は環境変数の一つで、シェルがコマンドを検索するディレクトリのリストを保持します。

    • たとえば、ターミナルで lsgcc といったコマンドを入力すると、システムは PATH に設定されたディレクトリの中から該当のコマンドを探し出して実行します。

  2. env:

    • env はコマンドまたはプログラムです。このコマンドを使用して、環境変数を表示したり、特定の環境変数の下でコマンドを実行したりすることができます。

    • 例: env だけを実行すると、現在の環境変数のリストが表示されます。

PATHは、Unix系OS、DOS、OS/2、Microsoft Windows上の環境変数で、実行プログラムが置かれているディレクトリの集合を指定するものである。一般に、実行中のプロセスまたはユーザーセッションは、それぞれ独自のPATH設定を持っています。

https://en.wikipedia.org/wiki/PATH_(variable)

ユーザーによってコマンド名が指定されるか、プログラムからexecコールが行われると、システムは$PATHを検索し、リストの左から右にある各ディレクトリを調べ、コマンド名に一致するファイル名を探します。見つかったら、そのプログラムは、コマンドを発行したコマンド・シェルまたはプログラムの子プロセスとして実行されます。

PATH変数を使用すると、各フォルダにあるよく使うプログラムを簡単に実行することができます。しかし、PATH変数の値が不適切な場合、あまりにも多くの場所を検索したり、無効な場所を検索したりして、オペレーティングシステムの速度を低下させる可能性があります。

usage: env [-iv] [-P utilpath] [-S string] [-u name]
           [name=value ...] [utility [argument ...]]

env は環境をコマンドライン引き数に従って変更してからプログラムを実行する。 `variable=value' という形式の引き数は、環境変数 variable を value という値に指定する。 value は空であってもよい(`variable=')。環境変数を空の値に設定するのは、変 数自体を無効にするのとは異なる効果を持つことに注意。
残った引き数のうちの最初のものが、実行されるプログラムを指定する。プロ グラムの在処は環境変数 PATH の指定に基づいて検索される。これ以降の引き 数はすべて実行プログラムに引き数として渡される。

linux系は今後は env を使ってコマンド実行したら少しは気分が晴れそうだ

DOSはsetコマンド

きみは何に抵抗を感じているのか? コンテクスト


envコマンドから考えるに、bash_rcとかexportとかsourceとか自分にとっては進行しているおためしインストールとは関連性がなく、かつ棲み分けも考えづらい。なぜいきなりお試しインストールに対してそこまで優遇しなければいけないのか。。。

それよりZSHみたいなスキーマがあるみたいだ、怖い

find /  2> /dev/null|grep 


お願い致します