اجرای فایل sh در لینوکس | آموزش تصویری و کامل

موضوعاتی که در این مقاله به آنها پرداخته خواهد شد، به شرح زیر است:

مقدمه: شل اسکریپت لینوکس چیست و چرا باید آن را یاد بگیریم؟

یادگیری آموزش اجرای فایل sh در لینوکس یکی از مهارت‌های بنیادی برای هر کسی است که می‌خواهد فراتر از دستورها ساده، کارهای خود را در سرور به صورت خودکار انجام دهد. یک فایل با پسوند .sh در واقع یک شل اسکریپت لینوکس است؛ یک فایل متنی که مجموعه‌ای از دستورها خط فرمان را در خود جای داده. به جای اینکه شما ده دستور را یکی‌یکی تایپ کنید، همه را در یک فایل می‌نویسید و با یک فرمان، همه آن‌ها را اجرا می‌کنید. این کار مثل ساختن یک ربات کوچک است که کارهای تکراری شما را انجام می‌دهد. در این راهنمای جامع، ما از ساخت فایل sh تا تنظیم مجوز اجرای فایل لینوکس و روش‌های مختلف اجرای آن را به صورت گام‌به‌گام بررسی خواهیم کرد.

مزایای اصلی استفاده از آن عبارتند از:

  • بهره‌وری بالا: به جای اجرای دستی چندین دستور، با یک فرمان یک کار پیچیده را انجام می‌دهید.
  • اتوماسیون: علاوه بر این، می‌توانید اسکریپت‌ها را با ابزارهایی مانند CronJob زمان‌بندی کنید تا به صورت خودکار در زمان‌های مشخص (مثلاً بکاپ‌گیری روزانه) اجرا شوند.
  • کاهش خطا: با خودکارسازی فرآیند اجرای فایل sh، خطاهای انسانی ناشی از تایپ اشتباه دستورها حذف می‌شود.

در این راهنمای جامع، ما تمام مراحل لازم از ساخت فایل تا تنظیم مجوزها و روش‌های مختلف اجرای فایل sh را به صورت گام‌به‌گام بررسی خواهیم کرد تا شما به این مبحث مسلط شوید.

شل اسکریپت لینوکس چیست؟ (مزایای اتوماسیون)

به زبان ساده، یک شل اسکریپت لینوکس، فایلی متنی است که یک یا چند دستور را در خود ذخیره کرده است. هنگامی که شما دستور اجرای فایل sh را صادر می‌کنید، “شل” (مفسر خط فرمان مانند Bash) وارد عمل می‌شود و این دستورها را خط به خط می‌خواند و اجرا می‌کند.

در واقع، دلایل اصلی برای استفاده از این اسکریپت‌ها عبارتند از:

  • افزایش بهره‌وری: به جای اینکه هر بار چندین دستور را دستی تایپ کنید، تنها با اجرای فایل sh، یک فرآیند پیچیده را در چند ثانیه تکمیل می‌کنید.
  • قدرت اتوماسیون: علاوه بر این، شما می‌توانید این اسکریپت‌ها را با ابزارهایی مثل CronJob ترکیب کنید تا سیستم به صورت خودکار در زمان‌های تعیین‌شده (مثلاً برای بکاپ‌گیری شبانه) آن‌ها را اجرا کند.
  • کاهش خطای انسانی: همچنین با سپردن کارها به اسکریپت، دیگر نگران تایپ اشتباه دستورها حساس نخواهید بود و امنیت سیستم حفظ می‌شود.

جدول مقایسه‌ای روش‌های اجرای یک شل اسکریپت لینوکس

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

دستور اجرا کاربرد اصلی نکته کلیدی
./script.sh اجرای استاندارد و مستقیم اسکریپت. نیاز به مجوز اجرای فایل لینوکس دارد.
bash script.sh اجرا با یک مفسر خاص (مثلاً Bash). حتی اگر فایل مجوز اجرا نداشته باشد، کار می‌کند.
sudo ./script.sh اجرا با دسترسی ریشه (Root). برای دستوراتی که نیاز به دسترسی ادمین دارند.
nohup ./script.sh & اجرا در پس‌زمینه و مقاوم در برابر قطع اتصال. برای فرآیندهای طولانی‌مدت عالی است.

خرید VPS پرسرعت برای اجرای اسکریپت‌های sh

اجرای اسکریپت‌های shell روی VPS NVMe سرعت، پایداری و کنترل کامل به شما می‌دهد.


بررسی پلن‌ها

مرحله ۱: آموزش ساخت فایل sh در لینوکس (روش ترمینال و GUI)

پیش از آنکه نوبت به اجرای فایل sh برسد، طبیعتاً باید فایل اسکریپت را بسازید. به طور کلی، دو راه اصلی برای این کار وجود دارد: استفاده از خط فرمان (که برای مدیران سرور پیشنهاد می‌شود) و استفاده از رابط کاربری گرافیکی (GUI).

ساخت فایل sh با ترمینال (روش سریع)

اگر با سرور مجازی کار می‌کنید، استفاده از ترمینال سریع‌ترین راه است. برای شروع، مراحل زیر را دنبال کنید:
۱. ساخت فایل خالی:
ابتدا با استفاده از دستور touch یک فایل خالی با پسوند .sh ایجاد کنید.

touch update_script.sh

۲. باز کردن ویرایشگر:
سپس، باید فایل را برای نوشتن دستورات باز کنید. ما از ویرایشگر محبوب nano استفاده می‌کنیم:

nano update_script.sh

۳. نوشتن کدها:
در داخل ویرایشگر، دستورات خود را بنویسید. نکته بسیار مهم: خط اول فایل همیشه باید با #!/bin/bash (معروف به Shebang) شروع شود. این خط به سیستم می‌گوید که برای اجرای فایل sh از مفسر Bash استفاده کند.
GNU nano 7.2
script.sh *
#!/bin/bash
# Update the repo
sudo apt update
# Install available updates
sudo apt upgrade
^G Help
^O Write Out
^W Where Is
^K Cut
^T Execute
^C Location
^X Exit
^R Read File
^ Replace
^U Paste
^J Justify
^/ Go To Line

ساخت فایل sh از طریق رابط کاربری گرافیکی (GUI) – (روش تصویری)

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

در ادامه، ما مراحل را در توزیع محبوب اوبونتو (Ubuntu) نشان می‌دهیم. البته این فرآیند در سایر توزیع‌ها نیز برای آماده‌سازی شرایط اجرای فایل sh بسیار مشابه است.

۱. باز کردن منوی برنامه‌ها:
در دسکتاپ اوبونتو، روی آیکون “Show Applications” (نمایش برنامه‌ها) که معمولاً در گوشه پایین سمت چپ قرار دارد، کلیک کنید.

مرحله اول: پیدا کردن ویرایشگر متن در محیط دسکتاپ اوبونتو.

۲. انتخاب ویرایشگر:
در لیست برنامه‌ها، “Text Editor” (ویرایشگر متن) را پیدا و باز کنید.
۳. نوشتن کد:
در پنجره باز شده، کد اسکریپت خود را بنویسید. فراموش نکنید که خط اول حتماً باید Shebang (#!/bin/bash) باشد تا سیستم بداند چگونه فایل را پردازش کند.
۴. ذخیره فایل:
پس از نوشتن دستورها، روی دکمه “Save” (ذخیره) در گوشه بالا سمت راست کلیک کنید.
۵. انتخاب نام و پسوند:
یک نام برای فایل خود انتخاب کنید. نکته بسیار مهم: حتماً مطمئن شوید که نام فایل با پسوند .sh تمام می‌شود (مثلاً my_script.sh). بدون این پسوند، اجرای فایل sh ممکن است با مشکل مواجه شود.
۶. اتمام کار:
روی دکمه “Save” کلیک کنید تا فایل شما ساخته شود.

نوشتن کد در ویرایشگر متن و ذخیره آن با پسوند .sh.

تبریک می‌گوییم! حالا شما با موفقیت اسکریپت خود را ساخته‌اید. در مرحله بعد، باید مجوزهای لازم را تنظیم کنیم، زیرا بدون مجوز، اجرای فایل sh امکان‌پذیر نخواهد بود.

مرحله ۲: تنظیم مجوز برای اجرای فایل sh در لینوکس

در واقع، به دلایل امنیتی، لینوکس به صورت پیش‌فرض به فایل‌های متنی جدید اجازه اجرا نمی‌دهد. بنابراین، شما باید صراحتاً این دسترسی را برای سیستم تعریف کنید تا امکان اجرای فایل sh فراهم شود. این کار به سادگی و با استفاده از دستور chmod در ترمینال انجام می‌شود.
برای این کار دستور زیر را وارد کنید:

sudo chmod +x update_script.sh
  • توضیح: پارامتر +x به معنای “اضافه کردن مجوز اجرا (eXecutable)” است.
  • نکته: در صورتی که این دستور را اجرا نکنید، هنگام تلاش برای اجرای فایل sh با خطای “Permission denied” مواجه خواهید شد. پس می‌توان گفت این مرحله، مهم‌ترین بخش در تنظیم مجوزهای دسترسی است.

تنظیم مجوز از طریق محیط گرافیکی (GUI)

همچنین، اگر ترجیح می‌دهید از دسکتاپ استفاده کنید، می‌توانید مراحل زیر را دنبال کنید:

۱. روی فایل راست‌کلیک کرده و گزینه Properties را انتخاب کنید.
۲. سپس به تب Permissions بروید.
۳. در نهایت، تیک گزینه‌ی “Allow executing file as program” را بزنید.

 

فعال کردن گزینه “Allow executing file as program” برای دادن مجوز اجرا.

در نهایت، با انجام این تنظیمات، سیستم شما آماده است تا فرآیند اجرای فایل sh را بدون هیچ محدودیتی انجام دهد. در بخش بعدی، روش‌های مختلف فراخوانی این اسکریپت را بررسی می‌کنیم.

مرحله ۳: چهار روش مختلف برای اجرای یک شل اسکریپت لینوکس

حالا که اسکریپت ما ساخته شده و مجوزهای لازم را دریافت کرده است، نوبت به بخش اصلی یعنی اجرای فایل sh می‌رسد. به طور کلی، چهار روش حرفه‌ای برای این کار وجود دارد که هر کدام در شرایط خاصی کاربرد دارند.

۱. اجرای عادی و مستقیم

این ساده‌ترین و متداول‌ترین روش برای اجرای فایل sh است. برای این کار، کافیست کاراکترهای ./ را قبل از نام فایل قرار دهید. این کاراکترها به سیستم می‌گویند که فایل در دایرکتوری جاری قرار دارد.

./update_script.sh
  • ./ به شل می‌گوید که فایل در همین دایرکتوری فعلی قرار دارد.

در محیط گرافیکی:
اگر از رابط کاربری دسکتاپ استفاده می‌کنید، می‌توانید روی فایل راست‌کلیک کرده و گزینه Run as a Program را انتخاب کنید. این کار دقیقاً معادل دستور بالاست.

ساده‌ترین روش اجرای فایل sh در محیط دسکتاپ با انتخاب گزینه Run as a Program.

اجرا با یک مفسر خاص (مانند Bash)

در برخی موارد، ممکن است بخواهید مطمئن شوید که فرآیند اجرای فایل sh شما دقیقاً توسط مفسر bash انجام می‌شود و نه مفسرهای دیگری مثل sh یا zsh. برای انجام این کار، کافیست نام مفسر را قبل از نام فایل بیاورید:

bash update_script.sh
  • مزیت بزرگ این روش: نکته جالب اینجاست که با استفاده از این متد، حتی اگر در مرحله قبل مجوزهای اجرا را با دستور chmod تنظیم نکرده باشید، باز هم اجرای فایل sh بدون هیچ خطایی انجام می‌شود! زیرا شما مستقیماً به مفسر دستور می‌دهید که فایل را بخواند.

۳. اجرا به عنوان یک کاربر دیگر (sudo)

همانطور که می‌دانید، بسیاری از دستورات سیستمی داخل اسکریپت‌ها (مانند به‌روزرسانی با apt upgrade) نیاز به دسترسی ادمین (Root) دارند. بنابراین، برای اجرای فایل sh با دسترسی کامل، باید از دستور sudo استفاده کنیم:

sudo ./update_script.sh

در واقع، این دستور کل اسکریپت را با بالاترین سطح دسترسی اجرا می‌کند و از بروز خطاهای مربوط به عدم دسترسی جلوگیری می‌نماید.

💡 نکته کلیدی برای مدیران سرور:
استفاده از شل اسکریپت لینوکس برای اتوماسیون کارهای مدیریتی مانند بکاپ‌گیری، نظارت بر منابع یا به‌روزرسانی‌ها، یک امر ضروری است.

 

۴. اجرا در پس‌زمینه (Background)

گاهی اوقات اسکریپت شما یک فرآیند طولانی‌مدت است (مثلاً پردازش یک فایل ویدیویی بزرگ یا بکاپ‌گیری حجیم) و نمی‌خواهید تا پایان کار، ترمینال شما اشغال شود. در این شرایط، بهترین راهکار اجرای فایل sh در پس‌زمینه است.

روش ساده (استفاده از &):
کافیست در انتهای دستور خود، علامت & را اضافه کنید:

./long_process.sh &

این کار باعث می‌شود فرآیند اجرای فایل sh به بک‌گراند منتقل شود و شما بتوانید به کارهای دیگرتان در ترمینال برسید. اما توجه داشته باشید که در این روش ساده، اگر اتصال SSH شما قطع شود، اجرای اسکریپت نیز متوقف خواهد شد (برای جلوگیری از این مشکل، باید از دستور nohup استفاده کنید).

  • روش مقاوم (استفاده از nohup):

برای حل مشکل قطع شدن اسکریپت، از دستور nohup (مخفف No Hang Up) استفاده می‌کنیم. این دستور تضمین می‌کند که اجرای فایل sh حتی پس از بستن ترمینال یا قطع شدن اینترنت هم ادامه پیدا کند:

nohup ./long_process.sh &

در نتیجه، این روش امن‌ترین راه برای اجرای اسکریپت‌های طولانی در سرورهای راه دور است.

نتیجه‌گیری: جمع‌بندی آموزش اجرای فایل sh در لینوکس

در نهایت، ما در این مقاله مسیر کامل و قدم‌به‌قدم آموزش اجرای فایل sh در لینوکس را با هم طی کردیم. اکنون شما به خوبی می‌دانید که ماهیت یک شل اسکریپت لینوکس چیست و چگونه می‌توان با ساخت فایل sh و تنظیم دقیق مجوز اجرای فایل، فرآیندهای پیچیده سرور را به سادگی خودکار کرد.

به طور خلاصه، کل این فرآیند در سه مرحله زیر خلاصه می‌شود:

  1. ایجاد فایل: ساخت اسکریپت با دستور touch و ویرایشگر nano.
    تنظیم مجوز: فعال‌سازی قابلیت اجرا با دستور chmod +x.
    اجرا: فراخوانی فایل با دستور ./script.sh.

تسلط بر این مهارت، شما را از یک کاربر عادی به یک مدیر سیستم کارآمد تبدیل می‌کند. برای مطالعه بیشتر در مورد دستورای شل، می‌توانید به مستندات رسمی GNU Bash مراجعه کنید.
آیا تا به حال اسکریپتی نوشته‌اید که زندگی شما را راحت‌تر کرده باشد؟ تجربیات خود را در بخش نظرات با ما به اشتراک بگذارید.

مطالب مرتبط: