خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه خواندن و اجرا از یک فایل با دستور منبع لینوکس

دستور منبع لینوکس یک پوسته داخلی است که فایلی را در پوسته فعلی می خواند و اجرا می کند. در اینجا نحوه استفاده از آن در لینوکس آورده شده است.

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 را تغییر دهیم. با این حال، قبل از ادامه کار، باید درک اساسی از متغیرهای محیطی در لینوکس داشته باشید.

مطلب مرتبط:   4 روش برای بررسی اینکه آیا cron روی لینوکس کار می کند یا خیر

از دستور منبع برای به روز رسانی محیط پوسته 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، می توانید متغیرهای محیطی فرآیند والد را به روز کنید. این مورد اصلی استفاده از دستور منبع است، به عنوان مثال، برای تغییر محیط والد.

مطلب مرتبط:   نحوه سفارشی کردن داک اوبونتو برای شبیه سازی macOS

با استفاده از دستور source برای به روز رسانی متغیرهای محیطی

این تمام مراحلی است که برای به روز رسانی محیط پوسته Bash با دستور منبع نیاز دارید.

تفاوت بین دستورات bash و منبع لینوکس

تفاوت بین دستورات bash و منبع لینوکس در این است که وقتی یک اسکریپت را با دستور bash اجرا می کنید، به هسته لینوکس می گوید که یک فرآیند Bash جدید برای خواندن و اجرای اسکریپت ایجاد کند، خروجی را در فرآیند پوسته اصلی کپی کرده و آن را نمایش دهد. .

اما دستور منبع یک پوسته داخلی است که یک فایل را در فرآیند پوسته فعلی می خواند و ارزیابی می کند. بنابراین، تمام تغییرات ایجاد شده توسط اسکریپت در پوسته Bash حفظ خواهد شد.

عیب یابی خطاهای دستور منبع

در برخی از سیستم‌های لینوکس، هنگام تلاش برای استفاده از دستور منبع، ممکن است با خطای «منبع یافت نشد» مواجه شوید. شما می توانید این خطا را به دو روش برطرف کنید:

1. Shell را تغییر دهید

برخی از پوسته ها از دستور منبع پشتیبانی نمی کنند. در این صورت، باید محیط پوسته خود را با دستور chsh -s ($which shell_name) تغییر دهید.

پس از تغییر پوسته خود، یک ترمینال جدید راه اندازی کنید و از دستور منبع استفاده کنید. اگر پوسته جدید از منبع‌یابی پشتیبانی می‌کند، باید بدون نقص کار کند.

2. از دستور Dot/Period Syntax استفاده کنید

برخی از محیط‌های پوسته از نحو «منبع» پشتیبانی نمی‌کنند، بلکه از «» جایگزین پشتیبانی می‌کنند. نحو. نحو “منبع” مترادف نقطه در Bash است. اما این در پوسته POSIX کار نمی کند، بنابراین برای حداکثر سازگاری، از نحو نقطه استفاده کنید.

مطلب مرتبط:   چگونه زمان درخواست کرل را محدود کنیم

دستورات اساسی لینوکس که باید بدانید

دستورات پوسته لینوکس یک راه عالی برای تعامل با سیستم با استفاده از ترمینال است. آنها ماهیت استفاده از سیستم های *NIX هستند.

در حالی که نیازی به دانستن همه دستورات ندارید، آشنایی با چند دستور مفید مطمئناً هنگام ورود به دنیای لینوکس مثمر ثمر خواهد بود.