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

برای نوشتن یک اسکریپت ساده bashباید مراحل ساده زیر را انجام دهیم:

چگونه همه کار می کند:

خط اول اسکریپت #!/bin/bash برای اجرای موفقیت آمیز اسکریپت ضروری است.

خط دوم mkdir testdir دایرکتوری testdir را ایجاد می کند

خط سوم cd testdir به شما امکان می دهد به پوشه ایجاد شده testdir تغییر دهید

تیم دست زدن بهدر خط بعدی فایل1 file2 file3 را لمس کنید سه فایل ایجاد می کند

و آخرین دستور در خط اسکریپت ما ls -al به ما امکان می دهد محتویات دایرکتوری فعلی را نمایش دهیم که به لطف خط قبلی، سه فایل خالی در آن ظاهر شد.

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

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

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

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

مثال های ساده

بنابراین، بدون مقدمه، مستقیماً به مثال‌ها می‌رسیم:

$ curl ifconfig.com

این دستور ساده IP خارجی را به شما نشان می دهد - اگر از طریق روتر به شبکه بروید ایده آل است. تنها کاری که انجام می دهد این است که سرور ifconfig.co را فراخوانی می کند، که آدرس IP را به جای یک صفحه وب کامل در یک خط برمی گرداند.

و بله، این اصلا یک اسکریپت نیست، فقط یک دستور است، اما برای تبدیل یک دستور به یک اسکریپت، فقط آن را در آن قرار دهید. فایل متنیو در خط اول به اصطلاح shebang یعنی کاراکترهای #! و به دنبال آن نام مفسر دستور اضافه کنید:

$ chmod +x ~/bin/myip.sh

اکنون می توان از آن تماس گرفت خط فرماندستور myip.sh

#!/bin/sh curl -4 wttr.in/Moscow

این اسکریپت به شما امکان می دهد تا به مدت چهار روز گزارش آب و هوا را دریافت کنید. اصل در اینجا مانند مورد ifconfig.co است.

خلاصه وضعیت هوای کنسول #!/bin/sh dig +short txt $1.wp.dg.cx

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

#!/bin/sh while (nc -l 80< file.html >:) ; انجام دادن: ؛ انجام شده

این اسکریپت بر اساس ابزار netcat(nc) که به آن چاقوی ارتش سوئیس برای عملیات شبکه می گویند. اسکریپت حلقه‌ای را شروع می‌کند که دستور nc را اجرا می‌کند، که در پورت 80 گوش می‌دهد و در پاسخ به درخواست، برمی‌گردد. file.html، درخواست ارسال شده را به هیچ جا ارسال می کند (نماد به معنای noop است، یعنی یک عملیات خالی).

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

#!/bin/sh mpv --volume=50 -playlist ~/16bit.fm_128.m3u

طبیعتاً لیست پخش با فرمت M3U باید از قبل از وب سایت ایستگاه رادیویی دانلود شود. به هر حال، اگر MPlayer را با آرگومان شروع کنید --input-ipc-server=/tmp/mpvsocket، می توان آن را با نوشتن دستورات در یک فایل کنترل کرد. به عنوان مثال، صدا را تنظیم کنید:

اکو "حجم +10" | socat - /tmp/mpvsocket

دو اسکریپت ایجاد کنید: یکی برای شروع، دیگری برای متوقف کردن رادیو (با خط killall mpv)، آنها را روی دسکتاپ خود آویزان کنید و کلیدهای میانبر DE را برای کنترل پخش تنظیم کنید. Voila، شما یک پخش کننده برای رادیو اینترنتی آماده دارید که با کلیک بر روی نماد روی دسکتاپ می توانید آن را راه اندازی کنید. و به سختی حافظه را هدر می دهد یا سینی را اشغال می کند.

اما بیایید از عملیات شبکه دور شویم و به امور محلی برگردیم.

#!/bin/sh tar -czf "../$(PWD##*/).tar.gz" .

این یکی از فیلمنامه های مورد علاقه من است. یک آرشیو tar.gz از دایرکتوری فعلی ایجاد می کند. ساختار $(PWD##*/) در اینجا سزاوار توجه ویژه است، که مسیر کامل را به دایرکتوری فعلی (متغیر $PWD) می‌برد و قسمت اول را تا آخرین اسلش از آن حذف می‌کند، بنابراین فقط نام دایرکتوری باقی می‌ماند. خود علاوه بر این، پسوند tar.gz به آن اضافه شده است. می توانید در مورد چنین سازه هایی در man bash بیشتر بخوانید.

#!/bin/sh در حالی که درست است. انجام inotifywait -r -e MODIFY DIRECTORY & & YOUR_COMMAND انجام شد

و این اسکریپتی است که دستوری را در پاسخ به تغییر فایل‌های دایرکتوری اجرا می‌کند. می توان از آن برای اهداف مختلفی استفاده کرد، مانند شروع خودکارپخش کننده هنگام ذخیره یک فایل MP3. یا فقط با استفاده از notify-send به عنوان دستور، یک اعلان را روی دسکتاپ نمایش دهید:

اطلاع رسانی - ارسال "فایل تغییر کرد"

دسکتاپ

از آنجایی که ما در مورد دسکتاپ صحبت می کنیم، بیایید ادامه دهیم. مانند کنسول، می توان آن را نیز اسکریپت کرد. به عنوان مثال، در اینجا یک اسکریپت وجود دارد که تصاویر پس زمینه تصادفی ارسال شده در کانال reddit تصویر زمینه را بارگیری می کند:

ادامه فقط برای اعضا در دسترس است

گزینه 1. برای خواندن تمام مطالب سایت به انجمن "سایت" بپیوندید

عضویت در انجمن در طول دوره مشخص شده به شما امکان می دهد به همه مطالب هکر دسترسی داشته باشید، تخفیف تجمعی شخصی شما را افزایش می دهد و به شما امکان می دهد امتیاز حرفه ای Xakep را جمع آوری کنید!

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

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

یک اسکریپت یا همانطور که به آن اسکریپت نیز گفته می شود، دنباله ای از دستورات است که به نوبه خود توسط یک برنامه مفسر خوانده و اجرا می شود، در مورد ما این یک برنامه خط فرمان - bash است.

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

ساده ترین مثال از یک اسکریپت برای پوسته Bash:

!/bin/bash
اکو "سلام دنیا"

ابزار echo رشته ارسال شده به آن را به عنوان پارامتر روی صفحه چاپ می کند. خط اول ویژه است، برنامه ای را مشخص می کند که دستورات را اجرا می کند. به طور کلی، ما می توانیم یک اسکریپت در هر زبان برنامه نویسی دیگری ایجاد کنیم و مفسر مورد نظر را برای مثال در پایتون مشخص کنیم:

!/usr/bin/env پایتون
چاپ ("سلام دنیا")

یا در PHP:

!/usr/bin/env php
پژواک "سلام جهان"؛

در مورد اول مستقیماً به برنامه ای اشاره کردیم که دستورات را اجرا می کند، در دو مورد بعدی آدرس دقیق برنامه را نمی دانیم، بنابراین از env utility می خواهیم که آن را با نام پیدا کرده و اجرا کند. این رویکرد در بسیاری از اسکریپت ها استفاده می شود. اما این همه ماجرا نیست. در سیستم لینوکس، برای اینکه سیستم بتواند یک اسکریپت را اجرا کند، باید پرچم اجرایی را روی فایل با آن تنظیم کنید.

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

برای اجرا:

chmod ugo+x script_file

اکنون اولین برنامه کوچک خود را اجرا می کنیم:

./script_file

همه چیز کار می کند. شما قبلاً می دانید که چگونه یک اسکریپت کوچک مثلاً برای یک به روز رسانی بنویسید. همانطور که می بینید، اسکریپت ها حاوی همان دستوراتی هستند که در ترمینال اجرا می شوند، نوشتن آنها بسیار آسان است. اما اکنون کار را کمی پیچیده می کنیم. از آنجایی که یک اسکریپت یک برنامه است، نیاز به تصمیم گیری به تنهایی، ذخیره نتایج اجرای دستور و اجرای حلقه ها دارد. همه اینها را می توان با پوسته Bash انجام داد. درست است، همه چیز در اینجا بسیار پیچیده تر است. بیایید ساده شروع کنیم.

متغیرها در اسکریپت ها

نوشتن اسکریپت ها در Bash به ندرت بدون ذخیره داده های موقت کامل می شود، که به معنای ایجاد متغیر است. هیچ یک از زبان های برنامه نویسی نمی تواند بدون متغیرها کار کند، و همچنین زبان پوسته اولیه ما نیز.

ممکن است قبلاً با متغیرهای محیطی مواجه شده باشید. بنابراین، این متغیرها یکسان هستند و به یک روش کار می کنند.

برای مثال، بیایید یک متغیر رشته ای را اعلام کنیم:

string="سلام دنیا"

مقدار رشته ما در گیومه است. اما در واقع، نقل قول ها همیشه مورد نیاز نیستند. اصل اصلی bash در اینجا حفظ می شود - یک فاصله یک کاراکتر خاص است، یک جداکننده، بنابراین اگر از نقل قول استفاده نکنید، جهان قبلاً یک فرمان جداگانه در نظر گرفته می شود، به همین دلیل ما فاصله ها را قبل و بعد از مساوی قرار نمی دهیم. امضا کردن.

نماد $ برای نمایش مقدار یک متغیر استفاده می شود. مثلا:

بیایید اسکریپت خود را اصلاح کنیم:

!/bin/bash
string1 = "سلام"
string2=جهان
string=$string1$string2
echo $string

و بررسی می کنیم:

Bash به روشی که زبان ها انجام می دهند بین انواع متغیرها تمایز قائل نمی شود سطح بالامانند C++، می توانید هم یک عدد و هم یک رشته را به یک متغیر اختصاص دهید. به همین ترتیب، همه اینها یک رشته در نظر گرفته می شود. پوسته فقط از ادغام رشته ها پشتیبانی می کند، برای انجام این کار، به سادگی نام متغیرها را در یک ردیف بنویسید:

!/bin/bash
string1 = "سلام"
string2=جهان
string=$string1$string2\ and\ me
string3=$string1$string2" و من"
echo $string3

بررسی می کنیم:

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

متغیرها و خروجی فرمان

اگر متغیرها نتوانند نتیجه اجرای برنامه های کاربردی را ذخیره کنند چندان مفید نخواهند بود. برای این کار از سینتکس زیر استفاده می شود:

$(تیم)

با این ساختار، خروجی دستور مستقیماً به جایی که از آن فراخوانی شده است هدایت می شود و نه به صفحه نمایش. برای مثال، ابزار تاریخ برمی‌گردد تاریخ فعلی. این دستورات معادل هستند:

آیا می فهمی؟ بیایید یک اسکریپت بنویسیم که در آن hello world و date نمایش داده شود:

string1="سلام دنیا"
string2=$(تاریخ)

string=$string1$string2

اکنون به اندازه کافی در مورد متغیرها می دانید و آماده ایجاد یک اسکریپت bash هستید، اما چیزهای بیشتری در راه است. در ادامه به بررسی پارامترها و ساختارهای کنترل خواهیم پرداخت. اجازه دهید به شما یادآوری کنم که اینها همه دستورات bash معمولی هستند و نیازی به ذخیره آنها در یک فایل ندارید، می توانید بلافاصله در حال حرکت آنها را اجرا کنید.

گزینه های اسکریپت

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

متغیر با نام 1 حاوی مقدار پارامتر اول، متغیر 2، دوم و غیره است. این اسکریپت bash مقدار پارامتر اول را خروجی می دهد:

!/bin/bash
اکو 1 دلار

ساختارهای کنترل در اسکریپت ها

ایجاد یک اسکریپت bash بدون توانایی تجزیه و تحلیل برخی عوامل و اجرا در پاسخ به آنها مفید نخواهد بود. اقدامات لازم. این یک موضوع نسبتاً پیچیده است، اما برای ایجاد یک اسکریپت bash بسیار مهم است.

در Bash دستوری برای بررسی شرایط وجود دارد که سینتکس آن به صورت زیر است:

اگر command_condition
سپس
تیم
دیگر
تیم
فی

این دستور کد خروجی دستور شرط را بررسی می کند و اگر 0 (موفقیت) بعد از کلمه دستور یا چند دستور را اجرا می کند سپس اگر کد خروج 1 باشد بلوک else اجرا می شود، fi به معنای تکمیل بلوک دستورات

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

[[ پارامتر 1 عملگر 2 ]]

برای مقایسه، از عملگرهای آشنا استفاده می کنیم<,>,=,!= و غیره اگر عبارت درست باشد، دستور 0 را برمی گرداند، اگر نه - 1. می توانید رفتار آن را کمی در ترمینال تست کنید. کد بازگشتی آخرین دستور در متغیر $? ذخیره می شود:

اکنون، با ترکیب همه اینها، یک اسکریپت با یک عبارت شرطی دریافت می کنیم:

!/bin/bash
اگر [[ $1 > 2 ]]
سپس
echo $1" بزرگتر از 2" است
دیگر
echo $1 کمتر از 2 یا 2 اینچ است
فی

البته این طراحی دارای ویژگی های قوی تری است، اما در این مقاله نمی توان آن ها را پوشش داد. شاید بعدا در موردش بنویسم. در حال حاضر، بیایید به چرخه ها برویم.

حلقه ها در اسکریپت ها

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

بیایید ابتدا در نظر بگیریم برای حلقه. در اینجا نحو آن است:

برای متغیر در لیست
انجام دادن
تیم
انجام شده

در کل لیست تکرار می شود، و مقدار را از لیست به نوبه خود به متغیر اختصاص می دهد، پس از هر انتساب، دستورات بین do و done را اجرا می کند.

به عنوان مثال، بیایید روی پنج رقم تکرار کنیم:

برای شاخص در 1 2 3 4 5
انجام دادن
echo $index
انجام شده

یا می توانید تمام فایل ها را در فهرست فعلی فهرست کنید:

برای فایل در $(ls -l); "$file" را اکو انجام دهید. انجام شده

همانطور که می دانید، شما نه تنها می توانید نام ها را نمایش دهید، بلکه اقدامات لازم را نیز انجام دهید، این در هنگام اجرا بسیار مفید است ایجاد bashاسکریپت

حلقه دومی که به آن نگاه خواهیم کرد حلقه while است که در حالی اجرا می شود که دستور شرط کد 0 را با موفقیت برمی گرداند. نحو را در نظر بگیرید:

در حالی که شرط فرمان
انجام دادن
تیم
انجام شده

به یک مثال توجه کنید:

!/bin/bash
شاخص=1
در حالی که [[ $index< 5 ]]
انجام دادن
echo $index
اجازه دهید "index=index+1"
انجام شده

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

من می خواهم به نکته دیگری توجه کنم. ساختارهایی مانند while, for, if برای نوشتن روی چند خط طراحی شده اند و اگر بخواهید آنها را در یک خط بنویسید با خطا مواجه می شوید. اما با این وجود ممکن است، برای این، جایی که باید یک خط شکسته باشد، یک نقطه ویرگول ";" قرار دهید. به عنوان مثال، حلقه قبلی می توانست به صورت یک خط اجرا شود:

index=1; در حالی که [[ $index< 5 ]]; do echo $index; let "index=index+1"; done;

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

نتیجه گیری

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

برای نوشتن یک اسکریپت ساده bashباید مراحل ساده زیر را انجام دهیم:

چگونه همه کار می کند:

خط اول اسکریپت ما برای اجرای موفقیت آمیز اسکریپت ضروری است.

خط دوم دایرکتوری testdir را ایجاد می کند

خط سوم به شما امکان می دهد به پوشه ایجاد شده testdir تغییر دهید

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

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

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

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

اغلب اتفاق می افتد که شما باید برخی از اقدامات را خودکار کنید. اسکریپت های Bash همیشه به کمک می آیند!
فراموش نکنید که برای اجرای اسکریپت باید حقوق دسترسی به آن را تغییر دهید و قابلیت اجرای فایل را اضافه کنید.

1. ورودی-خروجی، تغییر مسیر

#!/bin/bash # هر اسکریپت پوسته همیشه با خط #!/bin/bash (یا #!/bin/sh) شروع می شود # نظرات همیشه با # # شروع می شوند برای نمایش یک پیام، از دستور ECHO echo "hello, world" # و این نمونه ای از خروجی فرمت شده است...

تقریباً مانند C printf "خروجی فرمت شده ten=%d string=%s float=%f hex_number=0x%X\n" 10 "string" 11.56 234 # مثال خواندن ورودی از صفحه کلید read A echo $A printf " شما فقط کلمه وارد شده: %s\n" "$A" #redirection, pipelines, گرفتن خروجی برنامه دیگر #مثال ایجاد رمز عبور 10 حرفی PASSWORD1=`cat /dev/urandom | tr -d -c ‘a-zA-Z0-9’ | fold -w 10 | head -1` echo Password=$PASSWORD1 #quotes از فرم "نتیجه خروجی را به صفحه نمایش آنچه در داخل آنها است می دهد (یعنی برنامه یا اسکریپت نوشته شده در داخل چنین نقل قول هایی اجرا می شود و نتیجه توسط آنها در #استاندارد چاپ می شود. خروجی نتیجه عملیات "backquotes" است #در این مورد، نتیجه خروجی یک خط لوله از چندین برنامه است.

اسکریپت های bash جالب برای دوستداران ترمینال لینوکس

#عملیات | مخفف نوار نقاله است. آن ها در مثال ما: #cat /dev/urandom محتویات فایل /dev/urandom (فایل ویژه ای برای تولید اعداد شبه تصادفی) را به stdout خروجی می دهد. #tr ترجمه را انجام می دهد، یعنی. برخی از بایت ها را با برخی دیگر جایگزین می کند (این کار برای جلوگیری از ظاهر شدن کاراکترهای غیرقابل چاپ در رمز عبور ضروری است) #fold آنچه را که در std.in دریافت کرده است به خطوطی به طول 10 کاراکتر تقسیم می کند و آن را در stdout چاپ می کند #head -1 اولین مورد را چاپ می کند. آنچه را که به او می رسد با ورودی استاندارد خط بکشید. # یا مانند این: PASSWORD2=`cat /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c10` echo Password=$PASSWORD2

2. عملیات محاسباتی، چرخه ها بر اساس تعداد دفعات

#!/bin/bash A="10" B="5" C=`expr $A + $B` printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C" # حلقه روی i مثال I=0 در حالی که [ $I -lt 15 ] printf "0x%02x " "$I" I=`expr $I + 1` echo انجام شد

3. انواع مختلف چک

#!/bin/bash # مثال بررسی وجود فایل # ایجاد فایل test1 لمسی test1 # بررسی وجود فایل test1 if [ -f test1 ] ; سپس اکو "فایل test1 وجود دارد" fi # بررسی کنید که آیا فایل test2 وجود ندارد اگر ! [ -f test2 ] ; سپس پژواک "فایل test2 وجود ندارد" fi # اشاره مختصر به گزینه های دستور دیگر # -d فهرست نام فایل وجود دارد # -f نام فایل فایل وجود دارد # -L نام فایل پیوند علامت وجود دارد # -r، -w، -x فایل قابل خواندن، قابل نوشتن یا do # -s نام فایل فایل وجود دارد و طول غیر صفر دارد # f1 -nt f2 f1 جدیدتر از f2 است # f1 -ot f2 f1 قدیمی‌تر از f2 است

برچسب ها: بش ، فری بی اس دی ، پوسته

نظر خود را از طریق:

چگونه یک اسکریپت bash ساده بنویسیم

چگونه چندین دستور را به صورت متوالی در یک یا همه اجرا کنیم؟ اگر نیاز به اجرای چندین دستور دارید، علامت " ; » فراکاراکتر نامیده می شود. نحو به شرح زیر است فرمان 1؛ فرمان 2؛ فرمان 3

دستورات جدا شده با " ; » به صورت متوالی انجام می شوند. پوسته منتظر دستور بعدی می ماند و پس از اجرای آخرین دستور به خط فرمان باز می گردد.

اجرای همزمان چند دستور

برای اجرای همزمان چند دستور با قرار دادن علامت "&" در انتهای دستور. به عنوان مثال، ابتدای اسکریپت پشتیبان را در نظر بگیرید:

# /root/ftpbackup.sh &

و ترمینال شما برای استفاده بیشتر رایگان است، لازم نیست منتظر بمانید تا اسکریپت /root/ftpbackup.sh به پایان برسد!

استفاده از همه چیز با هم

ممکن است هزاران فایل *.bak داشته باشید. اما تنها کاری که باید انجام دهید این است که دسته بندی هایی را که می خواهید فهرست کنید و همه چیز را در /tmp/list قرار دهید:

# برای d در "/home/sales /home/dbs /data1"؛ $d -iname "*.bak" را پیدا کنید >> /tmp/list; انجام شده &

منبع

یادگیری BASH (مبانی)

تاریخ:2012-12-10

آموزش نوشتن اسکریپت

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

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

#!/bin/bash
سازمان بهداشت جهانی؛ تاریخ

اینجا همه چیز ساده است.
در هسته خود، علامت هش (#) در بیشتر موارد به عنوان ابتدای یک نظر در نظر گرفته می شود، اما در اینجا، با شروع از خط اول، به ما می گوید که باید از مفسر bash استفاده شود.

1) دادن حق اجرا لازم است

chmod u+x bash1.sh

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game

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

در اینجا ما به نحوه ایجاد اسکریپت نگاه کردیم، سپس چند چیز برای درک وجود دارد.

هر زمان که اسکریپت می نویسیم، متغیرها را مدیریت می کنیم، ورودی و خروجی را تغییر مسیر می دهیم، با لوله ها کار می کنیم و محاسبات ریاضی را انجام می دهیم.

متغیرها

برای تعریف یک متغیر جدید، فقط بگویید:

#!/bin/bash
اف=ایوان
من = ایوانف
او=ایوانیچ
#نمایش داده شده با:
پژواک "FIO $F $I $O"

نتیجه

ش بش2.ش
FIO ایوان ایوانف ایوانیچ

مشاهده متغیرها؛
# تنظیم

BASH=/bin/bash
HISTFILE=/root/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/root
SSH_CLIENT='192.168.200.3 9382 22'
SSH_CONNECTION='192.168.200.3 9382 192.168.200.252 22'

راه بسیار جالب و مفید دیگری برای تنظیم یک متغیر با `` وجود دارد

#!/bin/bash
day=`تاریخ +%y%m%d`
# در آینده، متغیر $day را می توان در یک اسکریپت، به عنوان مثال، یک نسخه پشتیبان وارد کرد

rsync -avz /root/data /root/backup.$day

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

تغییر مسیر ورودی و خروجی

> با رونویسی کامل محتوای فایل به فایل تغییر مسیر دهید
>> تغییر مسیر برای ضمیمه کردن فایل، به انتهای محتوای موجود.
ls -al / > 123
و دستور:
ls -al /home >> 123
همه فایل ها را از ریشه فهرست کنید و سپس محتویات دایرکتوری Home را اضافه کنید
به این تغییر مسیر، تغییر مسیر خروجی می گویند
Input Redirection - محتوا به دستور هدایت می شود.
مرتب سازی< sort.txt
دستور sort بر اساس حروف الفبا مرتب می شود، در نتیجه فایل sort.txt که به طور تصادفی پر شده است، پس از هدایت به برنامه مرتب سازی، بر اساس حروف الفبا مرتب می شود.
مرتب سازی< sort.txt | more — а построение в канал отобразит отсортированные данные постранично
مرتب سازی< sort.txt | grep s | more — отсортирует и выведет все со знаком «S»

نکته مفید دیگری که باید بدانید این است که نتیجه یک دستور را به دستور دیگر یا چندین دستور بدهید.
یک مثال از این خواهد بود:

cat /var/log/maillog | grep مسدود شد | بیشتر

1) cat - کل فایل لاگ را نمایش می دهد
2) سپس این فایل log برای پردازش به دستور grep ارسال می شود که فقط با Blocked نمایش داده می شود، اما از آنجایی که پیام های زیادی با این وضعیت وجود دارد، لازم است آن را به دستور more ارسال کنید.
3) بیشتر - برای صفحه بندی داده ها ضروری است

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

محاسبات ریاضی

ساده ترین راه برای انجام ریاضیات در لینوکس با دستور bc است.
در این حالت نباید با استفاده از مقیاس تعداد اعشار بعد از ممیز شناور را تعیین کنید

#!/bin/bash
var1=45
var2=22
var3=`echo "scale=3; $var1/$var2" | bc`
echo $var3

Plutonit.ru - مدیریت، راه اندازی لینوکسو ویندوز 2009 - 2018

خطای پایگاه داده: جدول "a111530_forumnew.rlf1_users" وجود ندارد

صفحه اصلی -> MyLDP -> کتاب های الکترونیکیبرای سیستم عامل لینوکس

ایجاد و اجرای یک اسکریپت

یک اسکریپت بنویسید و نامی برای آن انتخاب کنید

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

برای ایجاد یک اسکریپت پوسته، یک فایل خالی جدید در ویرایشگر خود باز کنید. برای این کار می توانید از هر ویرایشگر متنی استفاده کنید: vim, ایمکس, gedit, dtpadو غیره.؛ هر کدام انجام خواهد داد. با این حال، می توانید ویرایشگر پیشرفته تری مانند vimیا ایمکس، از آنجایی که چنین ویرایشگرهایی را می توان برای تشخیص ساختار پوسته و Bash پیکربندی کرد و می تواند کمک خوبی برای جلوگیری از اشتباهاتی باشد که مبتدیان اغلب مرتکب می شوند، مانند فراموشی بستن پرانتز و نیم ویرگول.

دستورات یونیکس را در فایل خالی جدید تایپ کنید همانطور که در خط فرمان تایپ می کنید. همانطور که در فصل قبل بحث شد (به بخش "اجرای فرمان" مراجعه کنید)، دستورات می توانند توابع پوسته، دستورات داخلی، دستورات یونیکس یا اسکریپت های دیگر باشند.

یک نام یادگاری برای اسکریپت خود انتخاب کنید که به شما بگوید اسکریپت چه کاری انجام می دهد. مطمئن شوید که نام اسکریپت شما با دستورات موجود در تضاد نیست. برای جلوگیری از هرگونه سردرگمی، نام اسکریپت ها اغلب با پسوند .sh ختم می شوند. با این حال، ممکن است اسکریپت های دیگری با همان نامی که شما انتخاب کرده اید در سیستم شما وجود داشته باشد. دستورات که, کجاستو دیگران به دنبال اطلاعاتی در مورد قبلا هستند برنامه های موجودو فایل هایی با این نام:

که -a script_name که در آن script_name مکان script_name را دارد ( تقریبی ترانس

نوشتن اسکریپت در لینوکس (یادگیری با مثال)

: با نام اسکریپت خود جایگزین کنید).

اسکریپت script1.sh

در این مثال از دستور استفاده می کنیم اکو، در Bash تعبیه شده است که کاربر را از کارهایی که قبل از تولید خروجی باید انجام دهد مطلع می کند. به شدت توصیه می شود که کاربران از کارهایی که اسکریپت انجام می دهد مطلع شوند تا کاربران در صورتی که به نظرشان می رسید که فیلمنامه کاری از پیش نمی برد، عصبی نبودند. ما به موضوع هشدار به کاربران در فصل 8، "نوشتن یک اسکریپت تعاملی" باز خواهیم گشت.

شکل 2.1. اسکریپت script1.sh

همین اسکریپت را برای خودت بنویس. ایده خوبی است که یک دایرکتوری ایجاد کنید که اسکریپت های شما در آن قرار گیرند. این دایرکتوری را به محتویات متغیر اضافه کنید:

صادرات PATH="$PATH:~/scripts"

اگر با Bash تازه کار هستید، از ویرایشگر متنی استفاده کنید که از رنگ های مختلف برای ساختارهای مختلف پوسته استفاده می کند. برجسته سازی نحو در پشتیبانی می شود vim, gvim, (x) macs, نوشتنو بسیاری از ویرایشگرهای دیگر، مستندات ویرایشگر مورد علاقه خود را ببینید.

اجرای اسکریپت

برای اینکه یک اسکریپت بتواند اجرا شود، باید حقوق اجرا برای کاربران مناسب داشته باشد. پس از تنظیم مجوزها، بررسی کنید که آیا واقعاً مجوزهای مورد نیاز خود را تنظیم کرده اید. پس از انجام این کار، اسکریپت می تواند مانند هر دستور دیگری اجرا شود:

willy:~/scripts> chmod u+x script1.sh willy:~/scripts> ls -l script1.sh -rwxrw-r— 1 willy willy 456 Dec 24 17:11 script1.sh willy:~> script1.sh The اسکریپت اکنون شروع می شود هی ویلی! اکنون فهرستی از کاربران متصل را برای شما می‌آورم: 3:38 بعد از ظهر تا 18 روز، 5:37، 4 کاربر، میانگین بارگذاری: 0.12، 0.22، 0.15 کاربر TTY از LOGIN@ IDLE JCPU PCPU WHAT root tty2 — شنبه 14:00 4:25m 0.24s 0.05s -bash willy:0 - شنبه 14:00 ? 0.00 ثانیه؟ — willy pts/3 — Sat 2pm 3:33m 36.39s 36.39s BitchX willy ir willy pts/2 — Sat 2pm 3:33m 0.13s 0.06s /usr/bin/screen اکنون دو متغیر تنظیم می کنم. این یک رشته است: مشکی و این یک عدد است: 9 اکنون درخواست شما را به شما پس می دهم. willy:~/scripts> echo $COLOUR ویلی:~/scripts> echo $VALUE ویلی:~/scripts>

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

اگر دایرکتوری ها یا (دایرکتوری فعلی) را در متغیر مشخص نکرده اید، می توانید اسکریپت را به صورت زیر فعال کنید:

./script_name.sh

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

rbash script_name.sh sh script_name.sh bash -x script_name.sh

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

اگر نمی خواهید یک پوسته جدید راه اندازی کنید اما می خواهید اسکریپت را در پوسته فعلی اجرا کنید، از دستور استفاده کنید:

منبع script_name.sh

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

willy:~/scripts> source script1.sh --output ommitted- willy:~/scripts> echo $VALUE 9 willy:~/scripts>

اول از همه، بیایید بفهمیم چیست اسکریپتو برای چیست

اسکریپتترجمه از انگلیسی - سناریو. همه ما فیلم می بینیم، بسیاری از ما اجراها را تماشا می کنیم. برای خلق یک فیلم/پرفورمنس، فیلمنامه نویسان برای آنها فیلمنامه می نویسند که بر اساس آن بازیگران صحنه به صحنه نقش خود را روی صحنه اجرا می کنند که از آن فیلم/ اجرا شکل می گیرد. کار ایجاد یک فیلمنامه کاملاً پر زحمت است، جایی که باید همه چیز را با کوچکترین جزئیات در نظر گرفت تا در نهایت هنرمندان بتوانند نقشه فیلمنامه نویس را برآورده کنند و بیننده یک اثر کل نگر را ببیند.

به طور مشابه، اسکریپت‌ها برای اجرای فهرستی از وظایفی که کاربر با هم (کد) قرار می‌دهد نوشته می‌شود تا اجرای آن‌ها را آسان‌تر و سریع‌تر کند. سیستم عامل. برای نوشتن اسکریپت های ساده، داشتن تحصیلات برنامه نویس ضروری نیست.

برای شروع، بیایید بیشترین را ایجاد کنیم، که هیچکدام ساده ترین نیستند اسکریپت-پوستهبرای به روز رسانی سیستم

تمام اقداماتی که من با سیستم انجام خواهم داد اوبونتو، اما برای سیستم های دیگر نیز کاربرد دارند. لینوکس، ناشی شدن از اوبونتو. برای این ما نیاز داریم: ویرایشگر متنبرای پر کردن آن با وظایف لازم برای ایجاد یک اسکریپت (کد) و پایانه- برای انجام cos این اسکریپت. این ابزارها در هر توزیعی نصب می شوند لینوکسپیش فرض

بنابراین، یک ویرایشگر متن باز کنید geditو اولین کاراکترهای مورد نیاز را در آن وارد کنید شبنگ.
شبنگدر برنامه نویسی دنباله ای از دو کاراکتر است: هش و علامت تعجب (#! ) در ابتدای فایل اسکریپت. و بدون فاصله به این شخصیت ها اضافه کنید /bin/sh- مترجمی که اسکریپت در آن اجرا خواهد شد. /bin/sh- معمولا همینطوره پوسته بورنیا یک مفسر خط فرمان سازگار که عبور می کند "مسیر/به/اسکریپت"به عنوان اولین پارامتر
اولین خط مورد نیاز اسکریپت به شکل زیر خواهد بود:

# اولین اسکریپت آپدیت اوبونتو

علامت پوند (#) در همان ابتدای خط به مفسر/ترمینال می گوید که این خط نیازی به خواندن و اجرا ندارد. خط در کد این اسکریپت مورد نیاز است تا خود سازنده اسکریپت بداند که قرار است در این بخش / صحنه در کد چه چیزی را اجرا کند تا در آینده که موارد زیادی وجود خواهد داشت سردرگم نشود. چنین خطوطی چنین رشته هایی با علامت پوند نامیده می شوند - اظهار نظر کرد .

به روز رسانی sudo apt
sudo apt upgrade -y

-yدر پایان فرمان دوم، به مفسر/ترمینال روشن می‌کند که این عمل/فرمان باید به‌طور خودکار انجام شود، بدون تأیید کاربر اضافی برای فشار دادن کلید. ورودی. y- مختصر انگلیسی آره، یعنی آره.

همین. اولین اسکریپت شما ایجاد شده است. شما باید چیزی شبیه به تصویر داشته باشید:


باقی مانده است که فایل / اسکریپت ایجاد شده را ذخیره کنید و آن را بدهید نامبا تمدید اجباری در پایان - .sh. افزونه .shبه فایل اجرایی اختصاص داده شده است.
به او دادم نام - update.sh، صرفه جویی در پوشه خانهکاربر:


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

1. دستور زیر را در ترمینال اجرا کنید:

sudo chmod +x update.sh

2. یا فایل منیجر را در آن باز کنید پوشه خانه(جایی که اسکریپت ایجاد شده را ذخیره کردید)، روی فایل کلیک راست کنید، در منوی زمینه - ویژگی ها - مجوزهاو مورد را فعال کنید - کارایی: اجازه دهید فایل به عنوان یک برنامه اجرا شود:


برای اجرای اسکریپت ایجاد شده، باید ترمینال را باز کنید (که در همان ابتدای مقاله در مورد آن نوشتم که ترمینال یک ویژگی / ابزار لازم برای اجرای اسکریپت است) را وارد کنید. ش، نام اسکریپت جدا شده با فاصله - update.shو کلید را فشار دهید ورودی:


یا در ترمینال وارد کنید شو بکشید از مدیر فایلفایل ایجاد شده با اسکریپت (همچنین با فاصله جدا شده است):


بعد از اینکه مسیر فایل بعد از دستور نمایش داده شد شو یک فاصله، فقط کلید را فشار دهید وارد(Enter) برای انجام به روز رسانی سیستم:


اکنون در هر زمان می توانید یک به روز رسانی سیستم ایجاد شده توسط اسکریپت خود را ایجاد کنید.

بله، ممکن است کسی استدلال کند که به روز رسانی سیستم با اجرای این دو دستور در ترمینال کار دشواری نیست، چرا پف کردن و ایجاد نوعی اسکریپت؟ درست است. اما این یک نمونه از ایجاد یک اسکریپت ساده برای نشان دادن این است که "خدایان گلدان را نمی سوزانند" 😃.

با یادگیری نحوه نوشتن و استفاده از ساده ترین اسکریپت ها، می توانید یک اسکریپت پیکربندی سیستم ایجاد کنید تا در صورت نصب مجدد سیستم، بدون نیاز به جستجوی سایت هایی با تنظیمات مشابه هر بار در شبکه، از اسکریپت ایجاد شده استفاده کنند.

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

که در ویرایشگر متناولین خط مورد نیاز را وارد کنید:

# راه اندازی اوبونتو پس از نصب
# به روزرسانی سیستم

دستورات به روز رسانی سیستم به شرح زیر است:

به روز رسانی sudo apt
sudo apt upgrade -y

خط توضیحات: افزودن مخازن:

# اضافه کردن مخازن

و مخازن لازم را برای نصب بیشتر نرم افزار اضافه کنید:

sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" -y
sudo add-apt-repository ppa:atareao/telegram -y
sudo add-apt-repository ppa:atareao/atareao -y

sudo add-apt-repository ppa:nemh/systemback -y
sudo add-apt-repository ppa:gerardpuig/ppa -y
sudo add-apt-repository ppa:haecker-felix/gradio-daily -y

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

خط با توضیحات:

# پس از اتصال مخازن، سیستم را به روز کنید

و دستور اجرا:

به روز رسانی sudo apt

اکنون که مخازن اضافه شده و سیستم به روز شده است، نوبت به نصب نرم افزار می رسد:

# نصب برنامه ها

برای نصب برنامه ها کافی است یک بار دستور را وارد کنید sudo apt نصب کنید، و سپس از طریق یک فاصله در خط داده شدههر تعداد برنامه را که دوست دارید اضافه کنید، نکته اصلی این است که آنها به درستی کامپایل شده باشند. اگر برنامه ای از چند کلمه تشکیل شده باشد، دستور آن باید یکپارچه باشد، یعنی. تمام کلمات موجود در آن باید از طریق یک خط تیره وارد شوند، به عنوان مثال: unity-tweak-tool:

sudo apt نصب my-weather-indicator تلگرام اسکایپ lm-sensors hddtemp psensor gdebi systemback unity-tweak-tool ubuntu-cleaner gradio -y

نصب کدک های اضافی

# چند رسانه ای و کدک ها

sudo apt نصب ubuntu-restricted-extras -y

خاموش شدن در مورد خرابی سیستم

# غیرفعال کردن گزارش خرابی سیستم

sudo sed -i "s/enabled=1/enabled=0/g" "/etc/default/apport"

خب، شاید همین باشد. این فایل اسکریپت تولید شده باید به شکل زیر باشد:


شما باید آن را ذخیره کنید (روی دکمه کلیک کنید صرفه جویی) و بدهید نامبا پسوند .sh. بهش زنگ زدم راه اندازی\Ubuntu.sh(می توانید آن را متفاوت نام ببرید، اما همیشه با پسوند .sh):


اسکریپت ایجاد شده را قابل اجرا می کنیم:

sudo chmod +x Setup\ Ubuntu.sh

برای اجرای اسکریپت تولید شده، وارد ترمینال شوید شو نام اسکریپت ایجاد شده با فاصله یا ش، فایل ایجاد شده را خالی کرده و به ترمینال بکشید، همانطور که قبلا در ساده ترین اسکریپت توضیح داده شد و کلید را فشار دهید ورودی، برای اجرای آن.

توجه داشته باشید. معکوس در فرمان راه اندازی\Ubuntu.shاز فضایی در نام فایل برای ترمینال بین دو کلمه جداگانه فرار می کند.

پس از اجرای اسکریپت، آن را برای آینده ذخیره کنید، برای نصب مجدد احتمالی سیستم و پیکربندی مجدد، بهتر است در یک بخش جداگانه از f / دیسک در پوشه /خانه. اگر وجود ندارد، پس در سرویس ابری (فضای ذخیره ابرینوع داده: DropBox، Cloud Mail.Ru، Mega.coو غیره، به منظور استفاده از اسکریپت خودتان در هر زمان، یا کمک به دوستان یا اقوام در راه اندازی سیستم.