از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
25 نمونه رایج اسکریپت لینوکس Bash برای شروع
سرفصلهای مطلب
پوسته Bash یا Bourne-again یکی از محبوب ترین پوسته ها و زبان های دستوری برای علاقه مندان به VPS لینوکس است. این اولین بار در سال 1989 منتشر شد و از آن زمان به عنوان پوسته پیش فرض برای اکثر توزیع های لینوکس استفاده شد.
برنامه نویسی Bash به کاربران و مدیران سیستم اجازه می دهد تا فرآیندها را خودکار کرده و صدها ساعت کار دستی را ذخیره کنند. لازم به ذکر است که Bash برای ویندوز و macOS نیز موجود است.
این آموزش شما را با اسکریپت نویسی bash آشنا می کند. دارای بیش از بیست نمونه مفید اسکریپت bash برای شروع سفر برنامه نویسی bash شما.
برنامه نویسی Bash برای چه مواردی استفاده می شود
قبل از اینکه حرکت کنیم روی برای مبحث موارد استفاده از برنامه نویسی bash، باید به تفصیل توضیح دهیم روی bash و bash scripting چیست؟
بش یک است command-line مترجم رابط که در یک پنجره متنی اجرا می شود که در آن کاربران می توانند دستورات پوسته را مدیریت و اجرا کنند. Bash – یا پوسته اسکریپت – روی دست دیگر است process نوشتن مجموعه ای از دستورات برای اجرا روی یک سیستم لینوکس فایلی که شامل چنین دستورالعمل هایی است، اسکریپت bash نامیده می شود.
به بیان ساده، مفسر bash اسکریپت bash را می خواند و دستورات را همزمان اجرا می کند. به عنوان مثال، یک کاربر لینوکس می تواند صدها دستور را با یک کلیک به جای اینکه آنها را یکی یکی وارد کند، اجرا کند. به همین دلیل، برنامه نویسی bash گزینه ای برای افزایش بهره وری، راه اندازی اتوماسیون و حذف کارهای تکراری است.
25 نمونه اسکریپت Bash
بخش زیر 25 نمونه از محبوبترین نمونههای برنامهنویسی bash، از جمله دستکاری متغیرها و بازتاب مقادیر مختلف را پوشش میدهد. همچنین توابع، آرایهها، حلقهها و موارد دیگر را پوشش خواهیم داد.
1. سلام دنیا
سلام دنیا ساده ترین اسکریپت bash برای شروع است. یک متغیر جدید به نام ایجاد خواهیم کرد Learnbash و کلمات را چاپ کنید سلام دنیا. ابتدا یک فایل اسکریپت پوسته جدید را با یک ویرایشگر متن انتخابی خود باز کنید:
nano hello.sh
خطوط زیر را در آن قرار دهید:
#!/bin/bash #Creates a new variable with a value of "Hello World" learningbash="Hello World" echo $learningbash
خط اول (/bin/bash) در هر اسکریپت bash استفاده می شود. به سیستم عامل دستور می دهد که از مفسر bash به عنوان مفسر فرمان استفاده کند.
2. فرمان اکو
این اکو دستور bash را می توان برای چاپ متن و همچنین مقادیر متغیرها استفاده کرد. در مثال زیر نشان خواهیم داد که چگونه گیومه ها بر دستور echo تاثیر می گذارند. ما با باز کردن یک فایل اسکریپت bash جدید شروع می کنیم:
nano echo.sh
این مثال ساده اسکریپت bash یک متغیر جدید ایجاد می کند و آن را با استفاده از علامت های نقل قول مختلف چاپ می کند.
#!/bin/bash provider="هاستینگer" echo 'The best hosting provider is $provider' echo "The best hosting provider is $provider"
همانطور که می بینید، اگر دستور echo bash با دو علامت نقل قول استفاده شود “”، سپس اسکریپت مقدار واقعی یک متغیر را چاپ می کند. در غیر این صورت، اگر تک علامت نقل قول باشد ” استفاده می شود، فقط نام یک متغیر را چاپ می کند.
3. فرمان خواب
دستور Sleep همه اسکریپت های bash در حال اجرا را متوقف می کند و سیستم را به حالت Sleep قرار می دهد. با ایجاد یک فایل اسکریپت bash جدید شروع کنید:
nano sleep.sh
سپس، اسکریپت ساده زیر را بچسبانید:
#!/bin/bash sleep 10 && echo “I’ve been sleeping for 10 seconds, I want more” && sleep 10 && echo “I’m done sleeping, thanks!”
مثال بالا با یک دستور خواب ساده شروع می شود که سیستم شما را به مدت 10 ثانیه در حالت Sleep قرار می دهد. پس از آن، دستور اکو یاد گرفته شده قبلی را با خواب ترکیب می کنیم – به این ترتیب سیستم به مدت 10 ثانیه می خوابد، سپس چند کلمه را چاپ می کند، دوباره می خوابد، دوباره چند کلمه را چاپ می کند و به کار خود پایان می دهد.
نکته حرفه ای
یک اسکریپت bash همیشه می تواند با کلیک کردن خاتمه یابد CTRL + C بدون اینکه منتظر بمانید تا عملیات خود را تمام کند.
4. فرمان صبر کنید
صبر کن یک دستور داخلی لینوکس است که منتظر اتمام اجرا می شود process. دستور انتظار با یک خاص استفاده می شود process شناسه یا شناسه شغلی
در اینجا روش ایجاد یک صبر کن اسکریپت bash. با ایجاد یک فایل bash جدید شروع کنید:
nano wait.sh
موارد زیر را بچسبانید:
#!/bin/bash wait 1234 echo “Done”
مهم! اگر شناسه شغلی ارائه نشده باشد، فرمان انتظار منتظر می ماند تا تمام کارهای پس زمینه فرزند تکمیل شوند.
5. نظرات
کاربران میتوانند به راحتی نظرات خود را با bash اسکریپت اضافه کنند # سمبل. اگر اسکریپت طولانی دارید که نیاز به توضیح دارد، بسیار مفید است روی چند خط
با ایجاد یک اسکریپت bash جدید شروع کنید:
nano comments.sh
سپس موارد زیر را بچسبانید:
#!/bin/bash # Define a variable named هاستینگer provider="هاستینگer" # Print out the following text echo 'The best hosting provider is $provider' # Print out the following text with $provider variable value echo "The best hosting provider is $provider"
به خاطر داشته باشید که نظرات bash فقط قابل مشاهده هستند روی یک ویرایشگر متن
6. ورودی کاربر را دریافت کنید
برای دریافت ورودی از کاربران، از خواندن دستور bash ابتدا یک فایل bash shell جدید ایجاد کنید:
nano read.sh
سپس آن را با اسکریپت زیر پر کنید:
#!/bin/bash echo "What is your age?" read age echo "Wow, you look younger than $age years old"
در مثال بالا، مقدار سن توسط کاربر وارد شده است. سپس خروجی از طریق دستور echo چاپ شد.
7. حلقه ها
حلقه یک ابزار ضروری در زبان های برنامه نویسی مختلف است. به بیان ساده، یک حلقه bash مجموعه ای از دستورالعمل ها است که تا رسیدن به یک شرط مشخص شده توسط کاربر تکرار می شود. با ایجاد یک برنامه loop bash شروع کنید:
nano whileloop.sh
سپس موارد زیر را بچسبانید:
#!/bin/bash n=0 while : do echo Countdown: $n ((n++)) done
این به عنوان یک شمارش معکوس تا بی نهایت کار می کند تا زمانی که فشار دهید CTRL + C برای متوقف کردن فیلمنامه
اکنون که حلقه while را آزمایش کردهایم، میتوانیم حرکت کنیم روی به حلقه for یک فایل bash برای آن ایجاد کنید:
nano forloop.sh
باید شامل اسکریپت زیر باشد:
#!/bin/bash for (( n=2; n<=10; n++ )) do echo "$n seconds" done
اسکریپت اعداد از 2 تا 10 را هنگام اضافه کردن چاپ می کند ثانیه کلمه کلیدی آن
8. یک آرایه ایجاد کنید
آرایه bash یک ساختار داده ای است که برای ذخیره اطلاعات به صورت نمایه شده طراحی شده است. اگر کاربران نیاز به ذخیره و بازیابی سریع هزاران داده داشته باشند، بسیار مفید است. چیزی که آرایه های bash را خاص می کند این است که برخلاف هر زبان برنامه نویسی دیگری، آنها می توانند انواع مختلفی از عناصر را ذخیره کنند. به عنوان مثال، می توانید از یک آرایه bash برای ذخیره رشته ها و اعداد استفاده کنید.
یک فایل جدید در دایرکتوری فعلی ایجاد کنید:
nano array.sh
آموخته های تازه را با هم ترکیب کنید برای حلقه با یک آرایه نمایه شده جدید:
#!/bin/bash # Create an indexed array IndexedArray=(egg burger milk) #Iterate over the array to get all the values for i in "${IndexedArray[@]}";do echo "$i";done
اسکریپت بر روی تکرار می شود IndexedArray و تمام مقادیر را چاپ می کند.
9. اظهارات مشروط
محبوب ترین و پرکاربردترین عبارت شرطی است اگر. حتی اگر دستور if به راحتی نوشته و درک شود، می توان از آن در اسکریپت های پوسته پیشرفته نیز استفاده کرد.
با یک فایل bash جدید شروع کنید:
nano if.sh
کد زیر را در آن قرار دهید:
#!/bin/bash salary=1000 expenses=800 #Check if salary and expenses are equal if [ $salary == $expenses ]; then echo "Salary and expenses are equal" #Check if salary and expenses are not equal elif [ $salary != $expenses ]; then echo "Salary and expenses are not equal" fi
این اسکریپت دو متغیر جدید ایجاد می کند و برابر بودن یا نبودن آنها را با هم مقایسه می کند.
10. توابع
تابع bash مجموعه ای از دستورات است که می تواند چندین بار در یک اسکریپت bash مورد استفاده مجدد قرار گیرد. یک فایل جدید بسازید:
nano function.sh
سپس، کد زیر را بچسبانید – یک تابع ساده Hello World ایجاد می کند.
#!/bin/bash hello () { echo 'Hello World!' } hello
11. نمایش طول رشته
چند راه برای شمارش طول رشته در bash وجود دارد. ما در مورد ساده ترین صحبت خواهیم کرد. یک فایل به نام ایجاد کنید stringlingth.sh:
nano stringlength.sh
آن را با موارد زیر پر کنید:
#!/bin/bash # Create a new string mystring="lets count the length of this string" i=${#mystring} echo "Length: $i"
اینجا # عملگر برای بدست آوردن طول متغیر رشته استفاده می شود.
12. رشته را استخراج کنید
اگر کاربران نیاز به حذف قطعات غیر ضروری از رشته ها داشته باشند، می توانند از ابزار استخراج رشته Bash استفاده کنند. با ایجاد یک اسکریپت bash جدید شروع کنید:
nano extractstring.sh
اسکریپت زیر دارای 4 مقدار است که 3 مورد آن رشته است. در مثال ما فقط مقدار عدد را استخراج می کنیم. این را می توان از طریق انجام داد برش فرمان ابتدا به این دستور دستور می دهیم که هر متغیر با کاما از هم جدا شود -د پرچم. سپس از دستور cut می خواهیم که مقدار 5 را استخراج کند.
#!/bin/bash cut -d , -f 5 <<< "Website,Domain,DNS,SMTP,5005"
در مثالی دیگر، رشته ای داریم که با تعدادی اعداد مخلوط شده است. ما از دستورات expr substr برای استخراج فقط استفاده می کنیم هاستینگer مقدار متن
#!/bin/bash expr substr "458449هاستینگer4132" 7 9
13. رشته را پیدا و جایگزین کنید
یکی دیگر از اسکریپت های bash مفید برای رشته ها است پیدا کردن و جایگزین کردن. یک فایل به نام ایجاد کنید findreplace.sh:
nano findreplace.sh
سپس اسکریپت bash زیر را جایگذاری کنید:
#!/bin/bash first="I drive a BMW and Volvo" second="Audi" echo "${first/BMW/"$second"}"
عملکرد یافتن و جایگزینی به دستور خاصی نیاز ندارد، همه این کارها با دستکاری رشته انجام می شود.
14. رشته ها را به هم متصل کنید
الحاق اصطلاحی است که برای الحاق یک رشته به انتهای یک رشته دیگر استفاده می شود. با ایجاد شروع کنید الحاق.ش فایل.
nano concatenation.sh
ساده ترین مثال زیر خواهد بود:
#!/bin/bash firststring="The secret is..." secondstring="Bash" thirdstring="$firststring$secondstring" echo "$thirdstring"
اسکریپت بالا مقادیر مربوط به رشته اول و رشته دوم متغیرها یک چیز کاملا جدید ایجاد می کنند رشته سوم.
یک مثال پیشرفته تر به این صورت است:
#!/bin/bash firststring="The secret is..." firststring+="Bash" echo "$firststring"
اسکریپت از += عملگر برای پیوستن به رشته ها. با این روش می توانید رشته ها را تنها با یک متغیر به هم متصل کنید.
15. بررسی کنید که یک عدد زوج یا فرد است
اعداد فرد و زوج را می توان به راحتی با استفاده از عدد تقسیم کرد اگر بیانیه و مقداری ریاضی ساده یک فایل به نام ایجاد کنید evenoddnumbers.sh:
nano evenoddnumbers.sh
اسکریپت از دستور read برای خواندن ورودی کاربر استفاده می کند و آن را بر 2 تقسیم می کند. اگر پاسخ 0 باشد، عدد زوج است.
#!/bin/bash read -p "Enter a number and I will check if its odd or even " mynumber if [ $((mynumber%2)) -eq 0 ] then echo "Your number is even" else echo "Your number is odd." fi
16. فاکتوریل عدد تولید کنید
فاکتوریل یک عدد حاصل همه اعداد صحیح نزولی مثبت است. برای مثال فاکتوریل 5 برابر با 120 خواهد بود:
5! = 5*4*3*2*1 = 120
اسکریپ های فاکتوریال برای کاربرانی که در مورد بازگشت اطلاعات می آموزند بسیار مفید هستند. با ایجاد یک شروع کنید .sh فایل قابل اجرا:
factorial.sh
اسکریپت زیر از کاربر می خواهد که عددی را که می خواهد فاکتوریل آن را دریافت کند وارد کرده و از a استفاده کند برای حلقه برای محاسبه آن
#!/bin/bash echo Enter the number you want to get factorial for read mynumber factorial=1 for ((i=1;i<=mynumber;i++)) do factorial=$(($factorial*$i)) done echo $factorial
17. دایرکتوری ها را ایجاد کنید
ایجاد دایرکتوری ها در bash کار ساده ای است مگر اینکه نیاز به ایجاد سریع دایرکتوری ها داشته باشید. در مثال زیر از اسکریپت bash برای ایجاد مجموعه ای از دایرکتوری ها با زیردایرکتوری های مشابه در هر کدام استفاده می کنیم.
ابتدا یک فایل به نام ایجاد کنید Directories.sh:
nano directories.sh
سپس کد زیر را وارد کنید:
#!/bin/bash mkdir -p {Math,English,Geography,Arts}/{notes,examresults,portfolio}
اسکریپت 4 دایرکتوری اصلی ایجاد می کند: ریاضی، انگلیسی، جغرافیا، و هنرها. این یادداشت، نتایج امتحان، و نمونه کارها زیر شاخه ها نیز در داخل هر کدام ایجاد می شوند.
اگر قرار بود جایگزین کنید / نماد در وسط با _، اسکریپت به شکل زیر خواهد بود:
#!/bin/bash mkdir -p {Math,English,Geography,Arts}_{notes,examresults,portfolio}
در اینجا خروجی آن است که ادغام دو دایرکتوری را نمایش می دهد:
18. فایل ها را بخوانید
برای خواندن یک فایل در bash، ابتدا باید یک فایل نمونه ایجاد کنید. این کار را با دستور زیر انجام دهید:
nano mysamplefile.txt
آن را با چند داده نمونه پر کنید:
Out of all scripting languages, bash is the most popular one. It allows programmers to run scripts effortlessly in a variety of Linux distros.
سپس فایل اسکریپت واقعی را ایجاد کنید:
nano readfiles.sh
آن را با خطوط زیر پر کنید:
#!/bin/bash myvalue=`cat mysamplefile.txt` echo "$myvalue"
اجرای اسکریپت به این خروجی می رسد:
19. چاپ فایل ها با تعداد خطوط
ما یک فایل را با تعداد خطوط آن چاپ خواهیم کرد. بیایید ابتدا آن را ایجاد کنیم:
nano cars.txt
در مثال خود، آن را با مارک های خودروی مورد علاقه خود پر می کنیم:
Audi BMW Bentley Maserati Seat Volvo
فایل را ذخیره کنید و یک اسکریپت bash جدید ایجاد کنید:
nano printlines.sh
سپس کد زیر را وارد کنید:
#!/bin/bash myfile="cars.txt" i=1 while read lines; do echo "$i : $lines" i=$((i+1)) done < $myfile
محتویات فایل از cars.txt با چاپ اسکریپت حلقه while مطابقت دهید.
20. فایل ها را حذف کنید
برای حذف یک فایل موجود، می توانید از یک استفاده کنید اگر بیانیه ای برای بررسی وجود فایل و دستور حذف آن به اسکریپت bash. با ایجاد فایل اسکریپت bash شروع کنید:
nano deletefiles.sh
اسکریپت زیر یک فایل جدید با نام ایجاد می کند cars.txtو سپس – با کمک دستور if – وجود آن را بررسی کنید و آن را حذف کنید.
#!/bin/bash myfile="cars.txt" touch $myfile if [ -f $myfile ]; then rm cars.txt echo "$myfile deleted" fi
21. وجود فایل را تست کنید
به منظور بررسی اینکه آیا یک فایل داده شده وجود دارد، کاربران می توانند تست های شرطی را انجام دهند. در این صورت استفاده خواهیم کرد یک اگر بیانیه با الف -ف پرچم. پرچم بررسی می کند که آیا یک فایل مشخص وجود دارد و یک فایل معمولی است. با ایجاد فایل اسکریپت شروع کنید:
nano exists.sh
اسکریپت زیر را کپی و پیست کنید:
#!/bin/bash MyFile=cars.txt if [ -f "$MyFile" ]; then echo "$MyFile exists." else echo "$MyFile does not exist." fi
با اجرای اسکریپت خروجی زیر حاصل می شود:
22. Inodes و Disk Usage را بررسی کنید
Inode ها واحدهای داده را نشان می دهند روی سرور فیزیکی یا مجازی هر فایل متنی، ویدئو، پوشه، فایل HTML یا اسکریپت 1 ایند است. ما بررسی خواهیم کرد که چند inode در یک فهرست وجود دارد، زیرا تعداد بیش از حد آن می تواند باعث کند شدن قابل توجه سیستم شود. با ایجاد اسکریپت bash شروع کنید:
nano inodesdisk.sh
کد زیر را بچسبانید – inode ها را به ترتیب نزولی بررسی می کند و همچنین میزان استفاده از دیسک را در یک فهرست مشخص نشان می دهد:
#!/bin/bash find . -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn du -shc * | sort -rh
چیزی شبیه به این خواهد شد روی خط فرمان:
دایرکتوری داده شده 15 ایند دارد و همه فایل ها 20 کیلوبایت اشغال می کنند.
23. مثال ارسال ایمیل
امکان ارسال نامه از طریق اسکریپت های bash نیز وجود دارد. برای انجام این کار، کاربران ابتدا به یک عامل حمل و نقل پستی کاربردی نیاز دارند. در اوبونتو 20.04، دستور نصب به صورت زیر خواهد بود:
sudo apt-get install mailutils
هنگامی که نصب عامل حمل و نقل نامه را انجام دادید، یک اسکریپت bash جدید ایجاد کنید:
nano mail.sh
در اینجا مطالب آن آمده است:
#!/bin/bash Recipient="myawesomeinbox@domain.tld" Mysubject="Regarding our talk" Mymessage="Call me" `mail -s $Mysubject $Recipients <<< $Mymessage`
مهم! اسکریپت بالا فقط برای اهداف آزمایشی در نظر گرفته شده است زیرا به طور معمول با سرویس هایی مانند Gmail کار نمی کند. توصیه می کنیم به جای آن از PHPMailer استفاده کنید.
24. بسته ها را به روز کنید
به روز نگه داشتن سیستم و همه برنامه های کاربردی آن بسیار مهم است. برای انجام آن می توانید یک اسکریپت bash ایجاد کنید. توجه داشته باشید که این اسکریپت به حقوق ریشه نیاز دارد. ابتدا فایل اسکریپت bash را ایجاد کنید:
nano maintenance.sh
آن را با این خطوط پر کنید:
#!/bin/bash apt-get update apt-get upgrade
هنگام اجرای اسکریپت، حتماً با دستور sudo پیشگفتار کنید:
sudo bash maintenance.sh
مهم!Apt Package Manager استفاده شده است روی فقط توزیع های مبتنی بر دبیان. اگر از توزیع دیگری استفاده میکنید، حتماً دستور را مطابق با آن بهروزرسانی کنید.
25. نمایش اطلاعات سرور
اسکریپت زیر چند معیار مهم سرور را فهرست می کند: تاریخ سیستم، زمان آپدیت و همچنین حافظه و آمار استفاده از شبکه. ما با ایجاد یک فایل جدید برای آن شروع می کنیم:
nano system.sh
این هم اسکریپت آن:
#!/bin/bash echo "Date" date echo "Uptime" uptime echo "Memory Usage" free -m echo "Network Usage" ip a
نتیجه
برنامه نویسی لینوکس bash برای کاربرانی که به دنبال تبدیل توالی پیچیده دستورات به یک اسکریپت هستند بسیار مفید است. حتی اگر یک کاربر معمولی هستید، میتوانید با خودکار کردن کارهای ساده مانند بهروزرسانی بستهها یا به خواب رفتن سیستم، زندگی خود را آسانتر کنید.
در این آموزش، ما اصول اولیه برنامه نویسی bash و اینکه چگونه می توان از آن برای خودکارسازی وظایف و افزایش بهره وری استفاده کرد، توضیح دادیم. ما همچنین 25 مورد از رایج ترین اسکریپت های bash ساده را فهرست کرده ایم که می توانید آنها را امتحان کنید.
امیدواریم این مقاله به شما در درک بهتر اسکریپت bash کمک کرده باشد. همچنین میتوانید آموزش برنامهنویسی bash ما را برای کسب اطلاعات بیشتر بررسی کنید. اگر سوال یا نظری دارید، در زیر بنویسید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 01:02:04