متغیر PATH

متغیر PATH

PATH متغیری در تمامی سیستم های عامل مانند یونیکس ها ( لینوکس، بی ای دی، سولاریس و مکینتاش)، ویندوز ها و DOC است که مسیر های برنامه های اجرایی را دارد. هر کاربر بر اساس سطح دسترسی و نوع اکانتش (مدیر یا کاربر معمولی) دارای متغیر PATH مربوط به خودش است. مقدار این متغیر مسیر کامل بخ محل ذخیره سازی برنامه های اجرایی است. بطور مثال در یونیکسی ها مسیر های مانند bin/ و یا usr/local/bin/ و در ویندوز مانند C:\windows\system32 نام برد.برای نمایش مقدار PATH از دستور های زیر استفاده کنید. اولین دستور در ویندوز و در محیط CMD اجرا می شود و بزرگی و کوچکی حروف PATH اهمیت مدارد و دومین دستور در ترمینال یونیکس ها اجرا می شود که حروف PATH باید بزرگ باشند.

%echo %path

echo $PATH

علامت : در متغیر PATH لینوکس جدا کننده مسیر ها از یکدیگر است. در ابتدای خروجی مقدار PATH در لینوکس علامت . (dot) نشان دهنده دایرکتوری جاری است. منظور از دایرکتوری جاری یعنی آن دایرکتوری که شما در حال حاظر در آن هستید که با دستور pwd قابل نمایش است و این یعنی که می توانید بصورت مستقیم برنامه های درون دایرکتوری جاری را اجرا کنید در متغیر path در ویندوز علامت ; جدا کننده مسیر ها از هم است. خروجی دو دستور بالا در شکل های زیر امده است.

کاربرد این متغیر زمانی است که در خط فرمان (یونیکسی یا ویندوزی یا داس) دستوری را اجرا می کنید. شما با یک نام کاربری وارد شدید و یک متغیر PATH بر اساس نوع دسترسی شما (مدیر یا کاربر معمولی) به نام کاربری شما داده شده است. وقتی دستور را Enter بزنید سیستم مقدار این متغیر (مسیر ها) را چک می کند و تشخیص می دهد مسیر دستوری که اجرا کردید در بین مسیر های درون متغیر وجود دارد یا نه. اگر مسیر وجود داشت دستور احتمالن اجرا می شود و اگر مسیری وجود نداشت خطای عدم وجود دستور صادر خواهد شد. اینکه احتمالن دستور اجرا می شود بخاطر این است که شاید مسیر وجود داشته باشد ولی شما حق اجرای آن دستور را نداشته باشید بلکه دستور های دیگری در آن دایرکتوری هستند که فقط می توانید آنها را اجرا کنید ولی این دستور را نمی توانید. پس بطور خلاصه می توان گفت :

  • متغیر PATH شامل مسیر های دستور های اجرایی است.
  • پس از اجرای یک دستور، سیستم محتوای این متغیر را می خواند و اگر مسیری مطابق با مسیر دستور اجرا شده وجود داشت آنرا احتمالن اجرا می کند و اگر هم مسیر مطابقی وجود نداشت خطای عدم وجود می دهد.
  • بطور کلی خطای عدم وجود به سه دللیل 1) اصلن آن دستور در سیستم وجود ندارد. 2) آن دستور را اشتباه نوشته اید. 3) مسیرهای متغیر شما شامل مسیر دستور نیست
  • اگر حتی مسیر مطابقی هم وجود داشت شاید اجرا نشود چونکه شما مجوز اجرای آنرا ندارید.

 افزودن یک مسیر جدید به متغیر :

در لینوکس با استفاده از دستور export و بصورت زیر یک مسیر جدید مانند home/amirnami/app/ را به آن اضافه می کنیم. توجه کنید که علامت : مجزا کننده میان مسیر هاست.

export  PATH=$PATH:/home/amirnami/app