ویژگی تصویر

دستور export در لینوکس

  /  لینوکس   /  دستور export در لینوکس
بنر تبلیغاتی الف
لینوکس - linux

در این بخش به بررسی دستور 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 در بسیاری از زمینه‌ها مفید و کارآمد است. با یادگیری و تمرین مثال‌های ارائه‌شده در این مقاله، می‌توانید مهارت خود را در استفاده از این دستور بهبود ببخشید.

منابع

  1. The Linux Documentation Project
  2. GNU Bash Reference Manual

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: