environment variables
فهرست
توضیحات
متغییر های محیطی همانند متغییر هایی هستند که در برنامه نویسی استفاده میکنیم. اما اگر آشنایی ندارید جعبه خالیای را در نظر بگیرید، شما میتوانید هر محتوایی را داخل جعبه قرار بدین و هر موقع نیاز شد محتوای آن را بر دارید و یا جایگزین کنید، متغییر ها شبیه به جعبه هایی هستند با نام هایی مشخصل.
اما متغییر های محیطی چیست؟
زمانی که شما با bash کار میکنید، متغییر هایی هستند که بر اساس فایل های کانفیگ مثل bashrc، در مفسر شما تنظیم میشوند. برنامه ها و حتی خود bash از این متغییر ها در زمان اجرای برنامه استفاده میکنند. مثلا شما هر زمانی که در bash ابزاری را اجرا میکنید، bash باید مسیر آن ابزار را بداند تا آن را اجرا کند به همین خاطر متغییر محیطی که شامل تمام مسیر های برنامه های اجرایی است وجود دارد و هر زمان که نام ابزار مانند ls را وارد کنید، bash از مسیر های تعریف شده در متغییر PATH دنبال فایل اجرایی خواهد گشت و آن را اجرا خواهد کرد.
شما میتوانید متغییر های محیطی را ویرایش کنید، و یا یک متغییر جدید بسازید.
تعریف موقت متغیر محیطی
زمانی که شما یک متغییر محیطی را در bash تعریف میکنید، این متغییر فقط در child process های bash در دسترس خواهد بود و زمانی که از این پروسه خارج شوید، مقدار این متغییر هم از بین خواهد رفت.
برای تعریف متغییر های محیطی از کلمه export
و سپس نام متغییر استفاده کنید و با علامت =
مقدار را برای آن متغییر تنظیم کنید.
export VAR1='foo'
export VAR2=VAR1
دقت کنید که در زمان تعریف متغییر های محیطی باید علامت
=
به نام متغییر و مقدار آن چسبیده باشد.
تعریف دائمی متغییر محیطی
برای اینکه یک متغییر محیطی را دائمی کنید باید آن را در فایل های کانفیگی که زمان اجرای ترمینال خوانده میشوند تعریف کنید.
فایل bashrc.
در دایرکتوری home هر کاربر است، کافیست یک متغییر را داخل این فایل تعریف کنید.
export VARDEFAULT='bar'
متغییر هایی که در این فایل های rc ذخیره شوند فقط برای همان یوزر در دسترس خواهند بود.
برای اینکه این متغییر ها برای همه کاربران در دسترس باشند کافیست آنها را در مسیر
/etc/environment
تعریف کنید.
فراخوانی متغییر های محیطی
استفاده و فراخوانی متغییر ها با استفاده از علامت $
در سمت چپ نامشان است. برای مثال ما متغییر foo را تعریف
و سپس چاپ میکنیم.
export foo='bar'
echo $foo
echo 'the foo is' $foo
متغییر های محیطی پیشفرض
همانطور که در مقدمه اشاره شد متغییر هایی وجود دارند که به صورت پیشفرض زمانی که یک shell اجرا میشود تنظیم میشود. برخی از مهم ترین های آنها:
نام متغغیر | کاربرد |
---|---|
EDITOR | ویرایشگر متن پیشفرض |
HOME | دایرکتوری کاربر فعلی |
SHELL | مسیر shell کاربر فعلی |
TERM | شبیهساز ترمینال فعلی |
PATH | مسیر های جست و جو برای اجرای کامند |
MANPATH | مسر فایل man |
LOGNAME | نام کاربر فعلی |
TZ | منطقه زمانی که توسط ساعت سیستم استفاده میشود |
برای دیدن تمامی متغییر های محیطی میتوانید از کامند
env
استفاده کنید.