دستور export در لینوکس
در این بخش به بررسی دستور export در لینوکس می پردازیم، سیستمعامل لینوکس به دلیل انعطافپذیری و قدرت بالای خود، به عنوان یکی از محبوبترین سیستمهای عامل در میان برنامهنویسان و مدیران سیستم شناخته میشود. یکی از مفاهیم کلیدی در لینوکس، متغیرهای محیطی (environment variables) هستند که برای انتقال اطلاعات بین فرآیندهای مختلف و دسترسی به تنظیمات سیستم مورد استفاده قرار میگیرند. این متغیرها در محیط خط فرمان یا اسکریپتهای شل تعریف میشوند و میتوانند شامل اطلاعاتی مانند مسیرهای سیستم، پیکربندیها، یا دادههای کاربر باشند.
در این بین، دستور export به عنوان یکی از ابزارهای پرکاربرد در لینوکس مطرح میشود که به کاربران اجازه میدهد متغیرهای محیطی را به سایر فرآیندها و اسکریپتها منتقل کنند. این دستور نه تنها در برنامهنویسی شل بلکه در پیکربندیهای روزمره سیستم نیز کاربرد دارد. در این مقاله به بررسی کامل دستور export، کاربرد آن در لینوکس و مثالهایی از استفاده عملی آن میپردازیم.
معرفی دستور export در لینوکس
دستور export یک فرمان در شل (Shell) است که برای تعریف و ارسال متغیرهای محیطی به فرآیندهای فرزند (Child Processes) مورد استفاده قرار میگیرد. وقتی یک متغیر در شل تعریف میشود، تنها در همان جلسه شل قابل دسترس است. اما با استفاده از دستور export، این متغیر برای تمامی زیرپردازندهها (مانند اسکریپتهای شل یا سایر فرمانهایی که در آن شل اجرا میشوند) نیز قابل دسترس خواهد بود.
نحوه کار دستور export
ساختار کلی دستور export به صورت زیر است:
export VARIABLE_NAME=valueاین دستور متغیر VARIABLE_NAME را با مقدار value تنظیم میکند و آن را به تمامی زیرپردازندهها ارسال میکند. اگر تنها بخواهیم متغیر از قبل تعریفشدهای را به محیط صادر کنیم، کافی است بدون مقدار، آن را صادر کنیم:
export VARIABLE_NAMEمثال ساده:
فرض کنید میخواهیم متغیری به نام MY_VAR را با مقدار HelloWorld تعریف و صادر کنیم:
MY_VAR="HelloWorld"
export MY_VARاکنون، متغیر MY_VAR در تمامی فرآیندهای فرزند نیز قابل استفاده خواهد بود.
تست متغیر:
برای بررسی اینکه آیا متغیر به درستی صادر شده است یا نه، میتوانید از دستور echo استفاده کنید:
echo $MY_VARاین دستور باید مقدار HelloWorld را نمایش دهد. اگر از یک اسکریپت یا فرآیند جدیدی استفاده کنید و این متغیر را فراخوانی کنید، همچنان قابل دسترس خواهد بود.
متغیرهای محیطی و دستور export
در لینوکس، متغیرهای محیطی به طور گستردهای برای پیکربندی و مدیریت محیطهای اجرایی استفاده میشوند. برخی از متغیرهای محیطی که به طور معمول در لینوکس استفاده میشوند عبارتند از:
PATH: مسیرهای جستجوی فرمانهای اجرایی.HOME: مسیر دایرکتوری خانگی کاربر.USER: نام کاربر جاری.SHELL: شل پیشفرض سیستم.
تنظیم متغیرهای محیطی
متغیرهای محیطی میتوانند به صورت موقت و دائمی تنظیم شوند. اگر از export برای تنظیم متغیری استفاده کنید، آن متغیر تا پایان جلسه شل معتبر خواهد بود و پس از بستن شل از بین خواهد رفت. به عنوان مثال:
export MY_VAR="TemporaryValue"این متغیر تنها در جلسه جاری معتبر است و پس از خروج از شل حذف میشود.
تنظیم دائمی متغیرهای محیطی
برای تنظیم دائمی متغیرهای محیطی، میتوانید از فایلهای پیکربندی مانند .bashrc یا .bash_profile استفاده کنید. کافی است دستور export خود را به این فایلها اضافه کنید:
echo 'export MY_VAR="PersistentValue"' >> ~/.bashrcبا اجرای دستور بالا، متغیر MY_VAR با مقدار PersistentValue در تمامی جلسات شل شما تنظیم خواهد شد.
بررسی لیست متغیرهای محیطی
برای مشاهده لیست متغیرهای محیطی که صادر شدهاند، میتوانید از دستور printenv یا env استفاده کنید:
printenvاین دستور تمامی متغیرهای صادرشده در محیط فعلی را نمایش میدهد.
تأثیر دستور export در محیطهای مختلف
یکی از ویژگیهای جذاب لینوکس این است که شما میتوانید از شلهای مختلفی مانند bash، zsh یا ksh استفاده کنید. هر یک از این شلها رفتار خاص خود را در مقابل دستورات مختلف دارند، اما دستور export تقریباً در تمامی شلها به همان شیوهای عمل میکند که در bash توضیح داده شد.
تفاوت بین bash و zsh
در شل bash، دستور export به همان شکلی که توضیح داده شد، عمل میکند. در شل zsh نیز این دستور مشابه است، اما تفاوتهای جزئی در مدیریت متغیرهای محیطی ممکن است وجود داشته باشد. به عنوان مثال، در zsh میتوانید از قابلیتهای پیشرفتهتری برای مدیریت متغیرها استفاده کنید.
تفاوت در فایلهای پیکربندی
در حالی که در bash فایلهای .bashrc یا .bash_profile برای تنظیم متغیرهای محیطی استفاده میشوند، در شلهای دیگر مانند zsh از فایلهای مشابهی مانند .zshrc استفاده میشود. در این حالت، باید مطمئن شوید که دستورات export در فایل مناسب تنظیم شده باشند تا در تمامی جلسات شل قابل دسترس باشند.
نکتهای در مورد زیرپردازندهها
وقتی یک اسکریپت شل یا برنامهای دیگر را از طریق شل خود اجرا میکنید، این فرآیند به عنوان یک زیرپردازنده شناخته میشود. متغیرهای صادرشده با دستور export تنها به این زیرپردازندهها منتقل میشوند و نه به شلهای والد یا برنامههای دیگر که خارج از محدوده اجرای آن هستند.
مثالهای عملی و کاربردی
برای درک بهتر دستور export و کاربرد آن، چند مثال عملی ارائه میکنیم که نشان میدهند چطور این دستور میتواند در مدیریت سیستم و اسکریپتنویسی استفاده شود.
مثال ۱: تنظیم مسیر PATH
یکی از رایجترین کاربردهای دستور export، اضافه کردن مسیرهای جدید به متغیر محیطی PATH است. متغیر PATH شامل مسیرهایی است که سیستم هنگام اجرای فرمانها به دنبال فایل اجرایی آنها میگردد. برای افزودن یک مسیر جدید به PATH:
export PATH=$PATH:/new/custom/pathاین دستور مسیر جدید /new/custom/path را به متغیر PATH اضافه میکند، بدون اینکه مسیرهای قبلی را از بین ببرد.
مثال ۲: تغییر موقتی زبان سیستم
میتوانید با استفاده از export زبان محیط سیستم را موقتی تغییر دهید:
export LANG=fr_FR.UTF-8این دستور زبان سیستم را به فرانسوی تغییر میدهد، اما این تغییر تنها تا زمانی که شل جاری باز است باقی خواهد ماند.
مثال ۳: استفاده از export در اسکریپتها
دستور export یکی از ابزارهای اساسی در سیستمهای لینوکسی است که به کاربران اجازه میدهد متغیرهای محیطی را بین فرآیندها و اسکریپتها به اشتراک بگذارند. درک و استفاده صحیح از این دستور میتواند کارهای روزمره شما در لینوکس را بهینهتر و موثرتر کند. از تنظیم مسیرهای اجرایی گرفته تا تغییر موقت تنظیمات زبان، دستور export در بسیاری از زمینهها مفید و کارآمد است. با یادگیری و تمرین مثالهای ارائهشده در این مقاله، میتوانید مهارت خود را در استفاده از این دستور بهبود ببخشید.
منابع
- The Linux Documentation Project
- GNU Bash Reference Manual
آیا این مطلب برای شما مفید بود ؟



