دستور منبع لینوکس یک پوسته داخلی است که فایلی را در پوسته فعلی می خواند و اجرا می کند. در اینجا نحوه استفاده از آن در لینوکس آورده شده است.
source یک فرمان پوسته داخلی است که آرگومان ها را می پذیرد، دستورات را در یک اسکریپت تجزیه می کند و آنها را در محیط پوسته اجرا می کند. محتوای فایل توسط منبع خوانده می شود و سپس به مفسر Tool Command Language (TCL) منتقل می شود که دستورات را اجرا می کند.
بیایید نحوه استفاده از منبع برای اجرای دستورات و کار با محیط های پوسته در لینوکس را به همراه توضیح مختصری در مورد تفاوت آن با دستور bash بیاموزیم.
از منبع برای اجرای دستورات در یک فایل استفاده کنید
برای استفاده از دستور منبع، ابتدا باید یک فایل نمونه ایجاد کنید و آن را با چند دستور پوسته پر کنید. با ایجاد یک فایل جدید با دستور لمسی شروع کنید. فایل را در یک ویرایشگر متن انتخابی خود باز کنید و چند دستور اصلی پوسته بنویسید.
touchtest.txt
vitest.txt
# Write the commands in the text file:
echo"Hello!"
pwd
ls
# Source the file with either source or the dot syntax
. test.txt
sourcetext.txt
فایل متنی را بنویسید و آن را به عنوان آرگومان به دستور منبع ارسال کنید. سیستم دستورات موجود در فایل را اجرا می کند و یک خروجی برمی گرداند.
اکنون که اصول اولیه نحوه استفاده از منبع را می دانید، اجازه دهید محیط پوسته Bash را تغییر دهیم. با این حال، قبل از ادامه کار، باید درک اساسی از متغیرهای محیطی در لینوکس داشته باشید.
از دستور منبع برای به روز رسانی محیط پوسته Bash استفاده کنید
در لینوکس، متغیرهای محیطی ارثی هستند اما تغییر ناپذیرند. اگر یک اسکریپت پوسته Bash را اجرا کنید که متغیر محیطی $TEST را تغییر میدهد، اسکریپت یک فرآیند پوسته جدید و فورک شده ایجاد میکند و تغییر $TEST به جای محیط اصلی Bash در داخل آن انجام میشود.
فرآیند فرزند نمیتواند محیط فرآیند والد را تغییر دهد. فقط می تواند محیط خود را اصلاح کند. بیایید این را با یک مثال عملی درک کنیم:
export TEST="deb"
vi example
# Type these commands in the file
export TEST="bed"
echo $TEST
# Write out the file, make it executable, and then execute it
chmod +x example
./example # this will return "bed"
echo $TEST # this will return "deb"
در اینجا دستور منبع وارد عمل می شود. با دستور source می توانید یک اسکریپت را در همان محیط پوسته اجرا کنید که در غیر این صورت فورک می شد. بنابراین، اگر اسکریپتی را تهیه کنید که متغیرهای محیط را تغییر میدهد، تغییرات را برای محیط پوسته Bash ایجاد میکند.
برای آزمایش آن، دستورات را در کادر کد بالا در یک فایل جدید بنویسید و به جای اینکه آن را اجرایی کنید، از دستور منبع استفاده کنید.
# Create a new file and edit it
vi test file
. test_file
echo $TEST # This will return "bed"
همانطور که مشاهده می کنید، با استفاده از دستور source، می توانید متغیرهای محیطی فرآیند والد را به روز کنید. این مورد اصلی استفاده از دستور منبع است، به عنوان مثال، برای تغییر محیط والد.
این تمام مراحلی است که برای به روز رسانی محیط پوسته Bash با دستور منبع نیاز دارید.
تفاوت بین دستورات bash و منبع لینوکس
تفاوت بین دستورات bash و منبع لینوکس در این است که وقتی یک اسکریپت را با دستور bash اجرا می کنید، به هسته لینوکس می گوید که یک فرآیند Bash جدید برای خواندن و اجرای اسکریپت ایجاد کند، خروجی را در فرآیند پوسته اصلی کپی کرده و آن را نمایش دهد. .
اما دستور منبع یک پوسته داخلی است که یک فایل را در فرآیند پوسته فعلی می خواند و ارزیابی می کند. بنابراین، تمام تغییرات ایجاد شده توسط اسکریپت در پوسته Bash حفظ خواهد شد.
عیب یابی خطاهای دستور منبع
در برخی از سیستمهای لینوکس، هنگام تلاش برای استفاده از دستور منبع، ممکن است با خطای «منبع یافت نشد» مواجه شوید. شما می توانید این خطا را به دو روش برطرف کنید:
1. Shell را تغییر دهید
برخی از پوسته ها از دستور منبع پشتیبانی نمی کنند. در این صورت، باید محیط پوسته خود را با دستور chsh -s ($which shell_name) تغییر دهید.
پس از تغییر پوسته خود، یک ترمینال جدید راه اندازی کنید و از دستور منبع استفاده کنید. اگر پوسته جدید از منبعیابی پشتیبانی میکند، باید بدون نقص کار کند.
2. از دستور Dot/Period Syntax استفاده کنید
برخی از محیطهای پوسته از نحو «منبع» پشتیبانی نمیکنند، بلکه از «» جایگزین پشتیبانی میکنند. نحو. نحو “منبع” مترادف نقطه در Bash است. اما این در پوسته POSIX کار نمی کند، بنابراین برای حداکثر سازگاری، از نحو نقطه استفاده کنید.
دستورات اساسی لینوکس که باید بدانید
دستورات پوسته لینوکس یک راه عالی برای تعامل با سیستم با استفاده از ترمینال است. آنها ماهیت استفاده از سیستم های *NIX هستند.
در حالی که نیازی به دانستن همه دستورات ندارید، آشنایی با چند دستور مفید مطمئناً هنگام ورود به دنیای لینوکس مثمر ثمر خواهد بود.