PATH  یک متغیر محیطی یا Environment Variable در سیستم عامل لینوکس و سایر سیستم عامل های UNIX Base است. به زبان ساده، متغیر محیطی PATH به شل لینوکس ما دیکته می کند، که کدام دایرکتوری شامل برنامه های اجرایی می باشند و سریعترین مسیر موجود برای اجرا کردن نرم افزار ها در کجا قرار دارد. برای مثال نرم افزارهای آماده به کاری که توسط کابران به طور معمول استفاده می شوند، مانند نرم افزار ls یا cat و یا از این قبیل نرم افزارها. متغیر های محیطی در system profile ها نگهداری می شوند و زمانی ایجاد می شوند که به سیستم لینوکسی از راه دور Login می کنیم (یا اینکه ترمینال خود را در سیستم بصورت کنسول باز کنیم).
متغیر محیطی PATH باعث افزایش راحتی و ایمنی این گونه سیستم عامل ها می شود، تا آنجا که متغیر محیطی PATH به یکی از مهم ترین Environment Variable ها در سیستم عامل لینوکس تبدیل شده است.
متغیر های محیطی کلاسی از متغیر ها یا به عبارتی آیتم هایی می باشند که می توان مقادیر آنها را تغییر داد که به شل چگونگی تعامل و رفتار با دستوراتی که کاربر با آنها دائما سر و کار دارد دیکته می کند. قابل ذکر است که PATH با path کاملا تفاوت دارد. PATH یک متغیر محیطی در سیستم عامل های UNIX based است، اما path یا همان مسیر می توان گفت که جزء ای از PATH است زیرا ما در حقیقت مسیر را در متغیر محیطی PATH برای اجرا شدنش تعریف می کنیم. path یا partially path یک مسیر نسبی است که در ساختار سلسله مراتبی سیستم عامل لینوکس موجود است، مانند مسیری که در حال حاضر در ساختار سلسله مراتبی لینوکس در آن قرار دارید مانند دایرکتوری Desktop یا Downloads در پروفایل کاربری تان. absolute path یا مسیر مطلق که به آن full path یا مسیر کامل نیز می گویند، مسیری است که ما برای بیان آن دایرکتوری هایی که از ابتدای ساختار سلسله مراتبی لینوکس که همان root می باشد تا دایرکتوری فعلی مان که در آن قرار داریم را ذکر می کنیم.

برای مثال با زدن دستور pwd مسیر کاملی که در آن قرار داریم نشان داده می شود:
pwd#~:
/home/amirhossein/Desktop/test#~:
در مسیر فوق فولدر test ما در داخل فولدر Desktop قرار دارد و فولدر Desktop در پروفایل کاربری ما که همان amirhossein است قرار دارد و پروفایل ما در داخل دایرکتوری home قرار گرفته و در آخر دایرکتوری home که مستقیما از دایرکتوری روت یا / جدا شده است قرار می گیرد.

همانطور که گفته شد PATH شامل مسیرهای مطلقی است که وقتی کاربر یک دستور را مانند ls اجرا می کند به جای اینکه مسیر مطلق آن نرم افزار یا دستور را که در اینجا برای نرم افزار ls مسیر مطلقش bin / ls می باشد برای اجرا وارد کند آن را به شکل ساده تر مثل ls وارد می کند، پس اینجاست که متغیر محیطی PATH به کمک ما می آید. پس اگر ما مسیر مطلق فایل های آن نرم افزار را در متغیر محیطی PATH تعریف کنیم، به راحتی می توانیم دستور خود را بدون ذکر مسیر کامل اجرا کنیم. می توان گفت که متغیر محیطی PATH به عنوان یک فاکتور امنیتی نیز می تواند مطرح شود، زیرا کاربر بدون اینکه مسیر مطلق را برای اجرای نرم افزار وارد کند، تنها با نام آن به راحتی می تواند کارش را انجام دهد و جلوی اجرا شدن نرم افزار های مشابه گرفته می شود. دومین مزیت استفاده از متغیر محیطی PATH نیز افزایش سرعت عمل ما هنگام کار با سیستم عامل است.

لیست تمامی متغیر های محیطی در سیستم عامل های UNIX Based را با اجرا کردن دستور env می توان مشاهده نمود. برای اینکه در خروجی تنها متغیر محیطی PATH را مشاهده کنید دستور زیر را وارد کنید:
env | grep PATH#~:
روش دیگر مشاهده محتویات متغیر محیطی PATH با استفاده از دستور echo می باشد که به صورت زیر است:
echo $PATH#~:
همانطور که حتما مستحضر هستید علامت $ را به این خاطر گذاشتیم که PATH بصورت متن در خروجی نمایش داده نشود، یا به عبارتی شل آن را به عنوان متغیر در نظر بگیرد و مقدارش را به ما برگرداند. شما با استفاده از دستور unset می توانید متغیر PATH را که به صورت تنظیم شده در سیستم قرار گرفته است را از حالت تنظیم خارج کنید:
unset PATH#~:
در هر حالت پیشنهاد می شود که این متغیر حیاتی را unset نکنید، زیرا ممکن است تا زمان Log off نکردن از session خود با مشکل مواجه شوید.
هر کاربر استفاده کننده از سیستم لینوکسی ممکن است متغیر محیطی PATH متفاوتی داشته باشد. وقتی سیستم عامل لینوکس نصب می شود، یک متغیر محیطی PATH پیش فرض برای کاربر root ایجاد می شود و متغیر های محیطی PATH دیگر نیز برای سایر کاربران معمولی ایجاد و اعمال می شود. متغیر محیطی PATH برای کاربران معمولی شامل دایرکتوری های زیادی نسبت به کاربر root است به خاطر اینکه دایرکتوری هایی مانند sbin و usr sbin / وجود دارد که شامل برنامه هایی است که توسط کاربران استفاده می شود. برای اطمینان حاصل کردن از این موضوع می توانید مسیر های موجود در متغیر PATH اکانت کاربری لینوکس خودتان را با استفاده از دستورات فوق بشمارید.

متغیر های PATH را می توان به راحتی تغییر داد. آنها به دو حالت می توانند تغییر داده شوند یکی به صورت موقت و دیگری بصورت دائمی. به این گونه که وقتی در حال حاضر در session خود به طور لاگین قرار دارید و حالت دیگر این است که بعد از Log off کردن از session خود نیز تغییرات به طور دائم باقی بمانند و overwrite نشوند. اضافه نمودن مسیر دایرکتوری به متغیر محیطی PATH کاری بسیار آسان است. با استفاده از الگوی زیر می توانید یک مسیر دایرکتوری به متغیر محیطی PATH اضافه نمایید:
“export PATH=”directory:$PATH:~#
برای مثال ما دایرکتوری usrsbin را به متغیر PATH اضافه می کنیم:
“export PATH=”/usr/sbin:$PATH
دقت کنید که با export کردن این موارد، کار تمام نمی شود و تغییرات به صورت دائمی اعمال نمی شود و ما این همه صحبت نکردیم که در آخر کار با یک Log off کردن تمام کار هایمان بی معنی شود. شما برای اعمال نمودن دائمی این تغییرات بایستی دستورات فوق را در فایل bashrc. و یا در فایل bashprofile. موجود در پروفایل کاربری تان ذخیره کنید. نقطه ها در ابتدای این دو فایل نشانگر این است که مخفی هستند. برای انجام این کار در فایل bashprofile. بایستی این فایل را با یک ویرایشگر متن باز کنید و دستور زیر را عینا در قسمتی که با PATH شروع می شود وارد کنید:
PATH=$PATH:$HOME/bin:/usr/test:~#
در دستور فوق ما دایرکتوری usrtest را در فایل bash_profile. ذخیره کردیم. حال اگر از session خود Log off نیز بکنید باز هم تغییرات به طور دائم باقی می مانند.