#ام_دی_کورس
خب برای ساخت داکر فایل یک فایل بنام
برای اینکه نیاز نباشه ما همه چیز رو مثل دپندسی و سیستم عامل از اول کانفیگ و آماده کنیم، میایم با استفاده از دستور:
درنهایت داکر میاد ایمیج اوبنتو رو از رجیستری docker hub میگیره
ادامه در پست بعدی...
🆔 @MdDaily
خب برای ساخت داکر فایل یک فایل بنام
Dockerfile ایجاد می کنیم.برای اینکه نیاز نباشه ما همه چیز رو مثل دپندسی و سیستم عامل از اول کانفیگ و آماده کنیم، میایم با استفاده از دستور:
FROM نسخه ی ایمیج:نام ایمیج
به داکرفایل میگیم که ما می خوایم از تمپلیت آماده مثلا اوبونتو استفاده کنیم :FROM ubuntu:20.04
پس یعنی ایمیج ما میشه برپایه ی ایمیج ابونتو . اگه شما مثلا داشتید رویه وب سایت کار میکردید بجای ubuntu میتونستید مستقیما از nginx استفاده کنید و دیگه نیازی به نصب و کانفیگ nginx از پایه نبود درنهایت داکر میاد ایمیج اوبنتو رو از رجیستری docker hub میگیره
ادامه در پست بعدی...
🆔 @MdDaily
❤1🔥1
#ام_دی_کورس
با استفاده از
🆔 @MdDaily
با استفاده از
RUN میتونیم کامند اجرا کنیم :RUN کامند
اینجا من میخوام از پکیج sl استفاده کنم پس:RUN apt-get install sl
برای تنظیم و استفاده از environment variables هم از ENV استفاده میشه:ENV مقدار:نام متغیر
برای نمونه من اینجا مقدار متغیر PORT رو روی 8080 قرار دادم:ENV PORT=8080
ادامه در پست بعدی...🆔 @MdDaily
❤1🔥1
#ام_دی_کورس
حالا میخوایم وقتی که داکر کانتینر اجرا میشه یه دستوری را اجرا کنه. برای این کار توی داکر فایل از
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
ادامه در پست بعدی...
🆔 @MdDaily
حالا میخوایم وقتی که داکر کانتینر اجرا میشه یه دستوری را اجرا کنه. برای این کار توی داکر فایل از
CMD استفاده میکنیم:CMD ["executable", "parameter1", "parameter2"]
توی ایمیج ما قرار وقتی کانتینر اجرا شد پیام Hello MdDaily Members رو نشون بده پس:CMD [ "echo" , "Hello MdDaily Members 🐳"]
خب کار داکرفایل ما تقریبا تمومه. برای آشنایی بیشتر با Dcokerfile از مستندات داکر استفاده کنید:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
ادامه در پست بعدی...
🆔 @MdDaily
❤1🔥1
#ام_دی_کورس
حالا وقت اینکه ایمیجمون رو بیلد کنیم .
برای این کار دستور
بعد از اینکه ترمینال رو در محلی که Dockerfile امون قرار داره باز کردیم با اجرای دستور زیر :
ایمیج ما در کانتینر اجرا میشه .
ادامه در پست بعدی...
🆔 @MdDaily
حالا وقت اینکه ایمیجمون رو بیلد کنیم .
برای این کار دستور
docker build رو در ترمینال اجرا میکنیم :docker build -t ImageTag Directory
👈 پارامتر -t تگ ایمیج رو مشخص میکنهبعد از اینکه ترمینال رو در محلی که Dockerfile امون قرار داره باز کردیم با اجرای دستور زیر :
dokcer build -t mddailyimage ./
یک ایمیج جدید بنام mddailyimage را بیلد میکنیم و با دستور docker run میتونیم ایمیج ها را اجرا کنیم. docker run نام ایمیج
پس با اجرای دستور:docker run mddailyimage ایمیج ما در کانتینر اجرا میشه .
ادامه در پست بعدی...
🆔 @MdDaily
❤1🔥1
#ام_دی_کورس
تا اینجای کار با مفاهیم مهم داکر آشنا شدیم و در عمل ازشون استفاده کردیم. در ادامه دستورات مهم و کاربردیه داکر رو بررسی میکنیم :
دستور docker pull:
برای دانلود یک ایمیج داکر از مخزن عمومی داکر استفاده میشه. به عنوان مثال، برای دانلود ایمیج وبسرور nginx میتونید از دستور زیر استفاده کنید:
دستور docker run:
برای ایجاد و اجرای یک کانتینر داکر از یک ایمیج استفاده میشه. به عنوان مثال، برای ایجاد یک کانتینر nginx که وبسایتی را در پورت 80 ارائه میده میتونید از دستور زیر استفاده کنید:
برای نمیش لیست تمام کانتینرهای داکر در حال اجرا استفاده میشه:
برای متوقف کردن یک کانتینر داکر استفاده میشه. به عنوان مثال، برای متوقف کردن کانتینر nginx میتونید از دستور زیر استفاده کنید:
برای حذف یک کانتینر داکر استفاده میشه. به عنوان مثال، برای حذف کانتینر nginx میتونید از دستور زیر استفاده کنید:
برای ساخت یک ایمیج داکر از یک فایل Dockerfile استفاده میشه. به عنوان مثال:
برای نمایش لیست کردن تمام ایمیج های موجود استفاده میشه :
برای حذف ایمیج داکر استفاده میشه. به عنوان مثال، برای حذف ایمیج my-web-server میتونید از دستور زیر استفاده کنید:
تا اینجای کار با مفاهیم مهم داکر آشنا شدیم و در عمل ازشون استفاده کردیم. در ادامه دستورات مهم و کاربردیه داکر رو بررسی میکنیم :
دستور docker pull:
برای دانلود یک ایمیج داکر از مخزن عمومی داکر استفاده میشه. به عنوان مثال، برای دانلود ایمیج وبسرور nginx میتونید از دستور زیر استفاده کنید:
docker pull nginx دستور docker run:
برای ایجاد و اجرای یک کانتینر داکر از یک ایمیج استفاده میشه. به عنوان مثال، برای ایجاد یک کانتینر nginx که وبسایتی را در پورت 80 ارائه میده میتونید از دستور زیر استفاده کنید:
docker run -p 80:80 nginx
دستور docker ps:برای نمیش لیست تمام کانتینرهای داکر در حال اجرا استفاده میشه:
docker ps
دستور docker stop:برای متوقف کردن یک کانتینر داکر استفاده میشه. به عنوان مثال، برای متوقف کردن کانتینر nginx میتونید از دستور زیر استفاده کنید:
docker stop nginx
دستور docker rm:برای حذف یک کانتینر داکر استفاده میشه. به عنوان مثال، برای حذف کانتینر nginx میتونید از دستور زیر استفاده کنید:
docker rm nginx
دستور docker build:برای ساخت یک ایمیج داکر از یک فایل Dockerfile استفاده میشه. به عنوان مثال:
docker build -t my-web-server .
دستور docker image ls:برای نمایش لیست کردن تمام ایمیج های موجود استفاده میشه :
docker image lsدستور docker image rm:
برای حذف ایمیج داکر استفاده میشه. به عنوان مثال، برای حذف ایمیج my-web-server میتونید از دستور زیر استفاده کنید:
docker image rm my-web-server
🆔 @MdDaily👍2✍1❤1🔥1👌1
#ام_دی_کورس
کرش کورس Docker
💡 فهرست مطالب:
- معرفی
- منابع
- معرفی داکر
- تفاوت داکر با ماشین مجازی
- داکر فایل
- داکر ایمیج
- کانتینر
- ساخت داکر فایل
- ساخت و اجرای داکر ایمیج
- دستورات مهم داکر
🆔 @MdDaily
کرش کورس Docker
💡 فهرست مطالب:
- معرفی
- منابع
- معرفی داکر
- تفاوت داکر با ماشین مجازی
- داکر فایل
- داکر ایمیج
- کانتینر
- ساخت داکر فایل
- ساخت و اجرای داکر ایمیج
- دستورات مهم داکر
🆔 @MdDaily
❤🔥6🐳2🏆2❤1🔥1
داده ها بخش مهمی از هر کسب و کاری هستن.
به طور کلی، شما داده ها را در یک پایگاه داده ذخیره می کنید و فکر می کنید که این کافیه.
اما این فقط نیمی از بازیه.
اگر داده های شما قابل دسترسی نباشن، کسب و کار یا پروژه ی شما از بین میره.
یکی از ترفندهای مهم برای مدیریت داده ها، تکثیر یا ایجاد کپی (replication) از اون هاست.
تکثیر پایگاه داده (Database Replication) چیه؟
فرایند Database Replication شامل نگهداری کپی هایی از داده های شما در چنتا ماشینه.
چرا؟
✅ در دسترس بودن پایگاه داده و سیستم شما را بهبود می بخشه.
✅ دسترسی به داده های شما را مقیاس پذیر می کنه.
✅ همچنین، امنیت داده های شما را افزایش میده.
* تصویر پست نمونه ای از Database Replication هستش
ادامه در پست بعدی...
🆔 @MdDaily
به طور کلی، شما داده ها را در یک پایگاه داده ذخیره می کنید و فکر می کنید که این کافیه.
اما این فقط نیمی از بازیه.
اگر داده های شما قابل دسترسی نباشن، کسب و کار یا پروژه ی شما از بین میره.
یکی از ترفندهای مهم برای مدیریت داده ها، تکثیر یا ایجاد کپی (replication) از اون هاست.
تکثیر پایگاه داده (Database Replication) چیه؟
فرایند Database Replication شامل نگهداری کپی هایی از داده های شما در چنتا ماشینه.
چرا؟
✅ در دسترس بودن پایگاه داده و سیستم شما را بهبود می بخشه.
✅ دسترسی به داده های شما را مقیاس پذیر می کنه.
✅ همچنین، امنیت داده های شما را افزایش میده.
* تصویر پست نمونه ای از Database Replication هستش
ادامه در پست بعدی...
🆔 @MdDaily
❤🔥3❤1🔥1
Md Daily
داده ها بخش مهمی از هر کسب و کاری هستن. به طور کلی، شما داده ها را در یک پایگاه داده ذخیره می کنید و فکر می کنید که این کافیه. اما این فقط نیمی از بازیه. اگر داده های شما قابل دسترسی نباشن، کسب و کار یا پروژه ی شما از بین میره. یکی از ترفندهای مهم برای…
اما Database Replication چطوری کار میکنه؟
*در دیاگرام پست، سه replicas داریم - 1 سبز و 2 نارنجی.
هر write ای که تو دیتابیس اتفاق میوفته باید توی replica ها هم ثبت بشه.
رایجترین رویکرد Replication مبتنی بر لیدر یا فعال/غیرفعال هستش.
در اینجا (تصویر پست)، سبز رنگ لیدر است و بقیه دنباله رو هستن.
مراحل راه اندازی Replication تیپیکال مبتنی بر لیدر :
👈 کلاینت ها درخواست های write خودشون رو به node لیدر ارسال می کنن.
👈 لیدر داده های جدید رو تو حافظه محلی(local storage) ایش ذخیره میکنه.
👈 لیدر همچنین تغییر داده رو به همه دنباله روهای خود به صورت یک لاگ replication ارسال می کنه.
👈 هر دنباله رو لاگ رو میخونه و کپی ای که از دیتابیس اصلی داشته رو با داده های جدید به روز می کنه.
👈 وقتی که یک کلاینت میخواد داده ها را بخونه، میتونه یک کوئری را به لیدر یا هر یک از دنباله روها ارسال کنه.
لود بالانسرها این کار را به طور خودکار انجام می دن.
به طور کلی، دو رویکرد برای Database Replication وجود داره:
1️⃣ همزمان
2️⃣ غیر همزمان
ادامه در پست بعدی...
🆔 @MdDaily
*در دیاگرام پست، سه replicas داریم - 1 سبز و 2 نارنجی.
هر write ای که تو دیتابیس اتفاق میوفته باید توی replica ها هم ثبت بشه.
رایجترین رویکرد Replication مبتنی بر لیدر یا فعال/غیرفعال هستش.
در اینجا (تصویر پست)، سبز رنگ لیدر است و بقیه دنباله رو هستن.
مراحل راه اندازی Replication تیپیکال مبتنی بر لیدر :
👈 کلاینت ها درخواست های write خودشون رو به node لیدر ارسال می کنن.
👈 لیدر داده های جدید رو تو حافظه محلی(local storage) ایش ذخیره میکنه.
👈 لیدر همچنین تغییر داده رو به همه دنباله روهای خود به صورت یک لاگ replication ارسال می کنه.
👈 هر دنباله رو لاگ رو میخونه و کپی ای که از دیتابیس اصلی داشته رو با داده های جدید به روز می کنه.
👈 وقتی که یک کلاینت میخواد داده ها را بخونه، میتونه یک کوئری را به لیدر یا هر یک از دنباله روها ارسال کنه.
لود بالانسرها این کار را به طور خودکار انجام می دن.
به طور کلی، دو رویکرد برای Database Replication وجود داره:
1️⃣ همزمان
2️⃣ غیر همزمان
ادامه در پست بعدی...
🆔 @MdDaily
❤3❤🔥2🔥1
Md Daily
اما Database Replication چطوری کار میکنه؟ *در دیاگرام پست، سه replicas داریم - 1 سبز و 2 نارنجی. هر write ای که تو دیتابیس اتفاق میوفته باید توی replica ها هم ثبت بشه. رایجترین رویکرد Replication مبتنی بر لیدر یا فعال/غیرفعال هستش. در اینجا (تصویر پست)،…
👈 در Replication همزمان، لیدر منتظر میمونه تا همه دنباله روها تأیید کنن که تغییرات را دریافت کردن.
این تضمین می کند که دنباله روها یک نسخه به روز از داده ها خواهند داشت.
اما همچنین به این معنی است که اگر یک دنباله رو در دسترس نباشد، کل سیستم از کار می افته.
👈 در Replication غیرهمزمان، لیدر بروزرسانیها رو به دنبالهها ارسال میکنه، اما منتظر پاسخ دنبالهرو نمیمونه.
این باعث میشه که لیدر برای پردازش عملیات write جدید آزاد باشه.
اما به قیمت اینکه عملیات write حتی در صورت تأیید به کلاینت، تضمینی برای ماندگاری نداره.
پس چرا به Replication نیاز داریم؟
- دادهها همیشه وجود دارن. ایمن و مطمئن
- میتونید بر اساس تقاضا scale کنید
- با قرار دادن سرور های replica در لوکیشن های نزدیک به کاربران دادهها نزدیک کاربر باقی میمونه
- هیچ نمونه(instance) ای بیش از حد تحت فشار قرار نمیگیره
- پشتیبان گیری در صورت بروز مشکل
🆔 @MdDaily
این تضمین می کند که دنباله روها یک نسخه به روز از داده ها خواهند داشت.
اما همچنین به این معنی است که اگر یک دنباله رو در دسترس نباشد، کل سیستم از کار می افته.
👈 در Replication غیرهمزمان، لیدر بروزرسانیها رو به دنبالهها ارسال میکنه، اما منتظر پاسخ دنبالهرو نمیمونه.
این باعث میشه که لیدر برای پردازش عملیات write جدید آزاد باشه.
اما به قیمت اینکه عملیات write حتی در صورت تأیید به کلاینت، تضمینی برای ماندگاری نداره.
پس چرا به Replication نیاز داریم؟
- دادهها همیشه وجود دارن. ایمن و مطمئن
- میتونید بر اساس تقاضا scale کنید
- با قرار دادن سرور های replica در لوکیشن های نزدیک به کاربران دادهها نزدیک کاربر باقی میمونه
- هیچ نمونه(instance) ای بیش از حد تحت فشار قرار نمیگیره
- پشتیبان گیری در صورت بروز مشکل
🆔 @MdDaily
❤🔥3❤2🔥1
#ام_دی_کورس
💻 کرش کورس Bash noscript
توی این دوره از آموزش های MdDaily قرار باهم یه نگاه سریعی به بش اسکریپت بندازیم، محیط Lab امون رو آماده کنیم و مثال های مختلف رو تست کنیم، پس با من همراه باشید :)
ادامه در پست بعدی...
🆔 @MdDaily
💻 کرش کورس Bash noscript
توی این دوره از آموزش های MdDaily قرار باهم یه نگاه سریعی به بش اسکریپت بندازیم، محیط Lab امون رو آماده کنیم و مثال های مختلف رو تست کنیم، پس با من همراه باشید :)
ادامه در پست بعدی...
🆔 @MdDaily
❤4❤🔥1🔥1
Md Daily
#ام_دی_کورس 💻 کرش کورس Bash noscript توی این دوره از آموزش های MdDaily قرار باهم یه نگاه سریعی به بش اسکریپت بندازیم، محیط Lab امون رو آماده کنیم و مثال های مختلف رو تست کنیم، پس با من همراه باشید :) ادامه در پست بعدی... 🆔 @MdDaily
#ام_دی_کورس
آماده سازی محیط کار
خب قبل از هر چیزی ما نیاز به یه جایی داریم که توش بتونیم با Bash کار کنیم .
اگه می خواهید محیطی که توش قرار Bash را یادبگیرید ایزوله و جدا از محیط اصلیتون باشه میتونید از ابزار های زیر استفاده کنید:
☁️ - Google Cloud Shell
دسترسی به سرور لینوکسی ارائه شده توسط گوگل از طریق مرورگر
⌨️ - tutorialspoint
ترمینال لینوکسی با دسترسی های محدود
🐧 - bellard.org
دسترسی به توزیع های مختلفی مثل Fedora و Alpine Linux به صورت رایگان
💻 - onworks.net
ارائه دهنده میزبانی رایگان آنلاین برای توزیع های لینوکسی
🐳 - Docker
استفاده از image های توزیعات لینوکسی
ادامه در پست بعدی...
🆔 @MdDaily
آماده سازی محیط کار
خب قبل از هر چیزی ما نیاز به یه جایی داریم که توش بتونیم با Bash کار کنیم .
اگه می خواهید محیطی که توش قرار Bash را یادبگیرید ایزوله و جدا از محیط اصلیتون باشه میتونید از ابزار های زیر استفاده کنید:
☁️ - Google Cloud Shell
دسترسی به سرور لینوکسی ارائه شده توسط گوگل از طریق مرورگر
⌨️ - tutorialspoint
ترمینال لینوکسی با دسترسی های محدود
🐧 - bellard.org
دسترسی به توزیع های مختلفی مثل Fedora و Alpine Linux به صورت رایگان
💻 - onworks.net
ارائه دهنده میزبانی رایگان آنلاین برای توزیع های لینوکسی
🐳 - Docker
استفاده از image های توزیعات لینوکسی
ادامه در پست بعدی...
🆔 @MdDaily
❤1❤🔥1🔥1
Md Daily
#ام_دی_کورس آماده سازی محیط کار خب قبل از هر چیزی ما نیاز به یه جایی داریم که توش بتونیم با Bash کار کنیم . اگه می خواهید محیطی که توش قرار Bash را یادبگیرید ایزوله و جدا از محیط اصلیتون باشه میتونید از ابزار های زیر استفاده کنید: ☁️ - Google Cloud Shell…
#ام_دی_کورس
خب اینجا من از داکر استفاده میکنم
با استفاده از دستور زیر image اوبونتو رو از داکر هاب دریافت کردم
برای استفاده و شروع مجدد کانتینر از دستور زیر استفاده میشه:
ادامه در پست بعدی...
🆔 @MdDaily
خب اینجا من از داکر استفاده میکنم
با استفاده از دستور زیر image اوبونتو رو از داکر هاب دریافت کردم
docker pull ubuntu:latest
با استفاده از دستور زیر یه کانتینر اوبونتو اجرا کردم و اسمش رو گذاشتم mddaily-bashdocker run --name mddaily-bash -it ubuntu:latestبا اجرای دستور بالا پس از اجرای کانتینر، میتونید باهاش مثله هر سیستم اوبونتو دیگه ای تعامل داشته باشید. وقتی که کارتون تموم شد و میخواستید از کانتینر خارج بشید، میتونید از دستور exit استفاده کنید که کانتینر را متوقف می کنه
برای استفاده و شروع مجدد کانتینر از دستور زیر استفاده میشه:
docker start -i mddaily-bashخب حالا که محیط کارمون آماده شده وقتشه که بریم سراغ کار با Bash :)
ادامه در پست بعدی...
🆔 @MdDaily
🔥2❤1
Md Daily
#ام_دی_کورس خب اینجا من از داکر استفاده میکنم با استفاده از دستور زیر image اوبونتو رو از داکر هاب دریافت کردم docker pull ubuntu:latest با استفاده از دستور زیر یه کانتینر اوبونتو اجرا کردم و اسمش رو گذاشتم mddaily-bash docker run --name mddaily-bash…
#ام_دی_کورس
ایجاد و اجرای اولین Bash Shell Script
قدم اول رو به سمت اسکریپت نویسی شل بردارید :) بریم که یاد بگیریم برای ایجاد یک اسکریپت bash ساده و نحوه اجرای آن چه کاری لازمه 🤔.
اگه باید کاری را بیش از یک بار انجام دهید، اون رو خودکار کنید 🤖!
شما اغلب متوجه میشید که یک کار واحد را در لینوکس بارها و بارها تکرار می کنید 🔁. این کار ممکن است یک بکاپ ساده از یک دایرکتوری باشه 🗃 یا ممکنه پاک کردن فایل های موقت 🗑 یا حتی کلون کردن یک پایگاه داده 💾.
خودکار کردن یک کار یکی از سناریوهای مفید بسیاری هستش که میتونید در اون از قدرت اسکریپت نویسی bash استفاده کنید 🚀.
بریم ببینیم چطوری یه Bash Shell Script ساده ایجاد و اجرا کنیم و چه مواردی رو باید در مورد اسکریپت نویسی شل بدونید 💡.
📁 ابتدا یه دایرکتوری جدید به نام noscripts ایجاد می کنیم که تمام اسکریپت های ما تو این دایرکتوری قرار میگیرن.
برای ایجاد دایرکتوری از دستور
💡 شما همچنین میتونید از یه ویرایشگر متن مبتنی بر ترمینال مثل Vim، Emacs یا Nano استفاده کنید. اگر از لینوکس دسکتاپ استفاده می کنید، میتونید از ویرایشگر متن گرافیکی مثل Gedit یا vscode هم برای افزودن متن به این فایل یا ایجادش استفاده کنید.
💡 پس، اساسا شما از دستور
حال برای اجرایی کردن فایل
ادامه در پست بعدی...
🆔 @MdDaily
ایجاد و اجرای اولین Bash Shell Script
قدم اول رو به سمت اسکریپت نویسی شل بردارید :) بریم که یاد بگیریم برای ایجاد یک اسکریپت bash ساده و نحوه اجرای آن چه کاری لازمه 🤔.
اگه باید کاری را بیش از یک بار انجام دهید، اون رو خودکار کنید 🤖!
شما اغلب متوجه میشید که یک کار واحد را در لینوکس بارها و بارها تکرار می کنید 🔁. این کار ممکن است یک بکاپ ساده از یک دایرکتوری باشه 🗃 یا ممکنه پاک کردن فایل های موقت 🗑 یا حتی کلون کردن یک پایگاه داده 💾.
خودکار کردن یک کار یکی از سناریوهای مفید بسیاری هستش که میتونید در اون از قدرت اسکریپت نویسی bash استفاده کنید 🚀.
بریم ببینیم چطوری یه Bash Shell Script ساده ایجاد و اجرا کنیم و چه مواردی رو باید در مورد اسکریپت نویسی شل بدونید 💡.
📁 ابتدا یه دایرکتوری جدید به نام noscripts ایجاد می کنیم که تمام اسکریپت های ما تو این دایرکتوری قرار میگیرن.
برای ایجاد دایرکتوری از دستور
mkdir استفاده میشه:mkdir نام دایرکتورییعنی:
mkdir noscriptsبا استفاده از دستور
cd وارد دایرکتوری میشیم:cd noscriptsحالا تو این دایرکتوری
noscripts، با استفاده از دستور
cat یک فایل جدید به نام hello.sh ایجاد میکنیم:cat > hello.shبعد از اجرای کامند بالا متن زیر را وارد کنید یا بنویسد:
echo 'Hello, World!'و در نهایت با فشردن کلید های ترکیبی Ctrl+D ذخیرش کنید و از کامند
cat خارج بشید💡 شما همچنین میتونید از یه ویرایشگر متن مبتنی بر ترمینال مثل Vim، Emacs یا Nano استفاده کنید. اگر از لینوکس دسکتاپ استفاده می کنید، میتونید از ویرایشگر متن گرافیکی مثل Gedit یا vscode هم برای افزودن متن به این فایل یا ایجادش استفاده کنید.
💡 پس، اساسا شما از دستور
echo برای چاپ "Hello, World" استفاده می کنید. میتونید از این دستور به طور مستقیم در ترمینال استفاده کنید، اما در این تست، این دستور را از طریق یک اسکریپت شل اجرا خواهید کرد.حال برای اجرایی کردن فایل
hello.sh از دستور chmod به صورت زیر استفاده کنید:chmod u+x hello.shو در نهایت، اولین Bash Shell Script خود را با قرار دادن "
bash" قبل از hello.sh اجرا کنید:bash hello.shروی صفحه نمایش Hello, World! رو میبینید :)
ادامه در پست بعدی...
🆔 @MdDaily
❤🔥2🔥2
Md Daily
#ام_دی_کورس ایجاد و اجرای اولین Bash Shell Script قدم اول رو به سمت اسکریپت نویسی شل بردارید :) بریم که یاد بگیریم برای ایجاد یک اسکریپت bash ساده و نحوه اجرای آن چه کاری لازمه 🤔. اگه باید کاری را بیش از یک بار انجام دهید، اون رو خودکار کنید 🤖! شما اغلب…
#ام_دی_کورس
تبدیل shell noscript به bash noscript
گیج شدید؟ نگران نباشید. من همه چیز رو براتون توضیح خواهم داد :)
پوسته Bash که مخفف Bourne-Again shell هستش، فقط یکی از انواع پوسته(Shell) های موجود در لینوکسه.
پوسته(Shell) یک مفسر خط فرمان(command line interpreter) هست که دستورات را میگیره و اجرا می کنه. اگر تا به حال دستوری را در لینوکس اجرا کرده باشید، از پوسته استفاده کردید. هنگامی که یک ترمینال را در لینوکس باز می کنید، در حال اجرای پوسته پیش فرض سیستمتون هستید.
بش اغلب پوسته پیش فرض در اکثر توزیع های لینوکسیه. به همین دلیله که bash اغلب مترادف با Shell هستش.
اسکریپت های پوسته(shell noscripts) اغلب تقریباً سینتکس یکسانی دارن، اما گاهی اوقات نیز متفاوت هستن. به عنوان مثال، ایندکس آرایه در Zsh از 1 شروع میشه در حالی که در bash از 0 شروع میشه. اسکریپتی که برای پوسته Zsh نوشته شده، در صورتی که آرایه داشته باشه، در bash به درستی کار نمی کنه.
برای جلوگیری از سوپرایزهای ناخوشایند، باید به مفسر بگویید که shell noscript شما برای پوسته bash نوشته شده. چگونه این کار را انجام میدید؟
با استفاده از shebang !
ادامه در پست بعدی...
🆔 @MdDaily
تبدیل shell noscript به bash noscript
گیج شدید؟ نگران نباشید. من همه چیز رو براتون توضیح خواهم داد :)
پوسته Bash که مخفف Bourne-Again shell هستش، فقط یکی از انواع پوسته(Shell) های موجود در لینوکسه.
پوسته(Shell) یک مفسر خط فرمان(command line interpreter) هست که دستورات را میگیره و اجرا می کنه. اگر تا به حال دستوری را در لینوکس اجرا کرده باشید، از پوسته استفاده کردید. هنگامی که یک ترمینال را در لینوکس باز می کنید، در حال اجرای پوسته پیش فرض سیستمتون هستید.
بش اغلب پوسته پیش فرض در اکثر توزیع های لینوکسیه. به همین دلیله که bash اغلب مترادف با Shell هستش.
اسکریپت های پوسته(shell noscripts) اغلب تقریباً سینتکس یکسانی دارن، اما گاهی اوقات نیز متفاوت هستن. به عنوان مثال، ایندکس آرایه در Zsh از 1 شروع میشه در حالی که در bash از 0 شروع میشه. اسکریپتی که برای پوسته Zsh نوشته شده، در صورتی که آرایه داشته باشه، در bash به درستی کار نمی کنه.
برای جلوگیری از سوپرایزهای ناخوشایند، باید به مفسر بگویید که shell noscript شما برای پوسته bash نوشته شده. چگونه این کار را انجام میدید؟
با استفاده از shebang !
ادامه در پست بعدی...
🆔 @MdDaily
❤🔥3🔥1
#ام_دی_کورس
خط SheBang در ابتدای shell noscript
خط
وقتی شما خط
ادامه در پست بعدی...
🆔 @MdDaily
خط SheBang در ابتدای shell noscript
خط
#!/bin/bashبه خط شهبنگ (shebang) معروف است و در برخی از متون به عنوان خط هشبنگ (hashbang) هم بهش اشاره میشه، چون که با دو کاراکتر هش '#' و بنگ '!' شروع میشه
#! /bin/bash
echo 'Hello, World!'
وقتی شما خط
#!/bin/bashرا در بالاترین قسمت اسکریپتتون قرار میدید، سیستم میفهمه که شما می خواهید از bash به عنوان مفسر برای اسکریپت استفاده کنید. بنابراین، شما میتونید اکنون اسکریپت hello.sh را بدون قرار دادن bash در ابتدای اون اجرا کنید.
ادامه در پست بعدی...
🆔 @MdDaily
❤🔥2🔥1
Md Daily
#ام_دی_کورس خط SheBang در ابتدای shell noscript خط #!/bin/bash به خط شهبنگ (shebang) معروف است و در برخی از متون به عنوان خط هشبنگ (hashbang) هم بهش اشاره میشه، چون که با دو کاراکتر هش '#' و بنگ '!' شروع میشه #! /bin/bash echo 'Hello, World!' وقتی…
#ام_دی_کورس
افزودن shell noscript به PATH (به طوری که بشه را از هر دایرکتوری اسکریپت رو اجرا کرد)
از
میتونید از دستور
دستورات لینوکس مانند
اگه می خواهید اسکریپت bash خود را از هر کجا، مانند یک دستور لینوکس معمولی اجرا کنید، مکان اسکریپت shell خود را به متغیر PATH اضافه کنید.
ابتدا با استفاده از دستور PWD، مکان دایرکتوری اسکریپت خود را بدست آورید (با فرض اینکه در همان دایرکتوری هستید):
حالا میتونید اسکریپت bash رو از هر کجا اجرا کنید، مثل یک دستور معمولی در لینوکس.
ادامه در پست بعدی...
🆔 @MdDaily
افزودن shell noscript به PATH (به طوری که بشه را از هر دایرکتوری اسکریپت رو اجرا کرد)
از
./hello.shبرای اجرای اسکریپت استفاده کردم؛ اگر نقطه ابتدایی (
./) را حذف کنیم، با خطای زیر مواجه میشیم:hello.sh: command not foundبش فکر میکنه شما در حال تلاش برای اجرای یک دستور به نام hello.sh هستید. هنگامی که هر دستوری را در ترمینال خود اجرا میکنید، پوسته اون دستور رو در مجموعه ای از دایرکتوریها که در متغیر PATH ذخیره شدن، جستجو میکنه.
میتونید از دستور
echo برای مشاهده محتوای متغیر PATH استفاده کنید:echo $PATHنمونه خروجی دستور:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binدو نقطه (:) مسیر هر یک از دایرکتوریهایی رو که پوسته هنگام اجرای هر دستوری اسکن میکنه رو جدا میکنه.
دستورات لینوکس مانند
echo، cat و غیره میتونند از هر جایی اجرا شوند، چونکه فایلهای اجرایی آنها در دایرکتوریهای bin ذخیره میشن. دایرکتوریهای bin در PATH قرار دارن. وقتی که یه دستور را اجرا میکنید، سیستم PATH را برای همه مکانهای احتمالی که باید برای یافتن فایل اجرایی آن دستور جستجو کنه، بررسی میکنه.اگه می خواهید اسکریپت bash خود را از هر کجا، مانند یک دستور لینوکس معمولی اجرا کنید، مکان اسکریپت shell خود را به متغیر PATH اضافه کنید.
ابتدا با استفاده از دستور PWD، مکان دایرکتوری اسکریپت خود را بدست آورید (با فرض اینکه در همان دایرکتوری هستید):
pwdنمونه خروجی دستور:
/home/user/noscripts
از دستور export برای اضافه کردن دایرکتوری اسکریپت های خود به متغیر PATH استفاده کنید:export PATH=$PATH:/home/user/noscripts💡 با این کار پوشه
noscripts به انتهای متغیر PATH اضافه میشه. بنابراین مسیر سفارشی پس از مسیرهای استاندارد جستجو میشه.حالا میتونید اسکریپت bash رو از هر کجا اجرا کنید، مثل یک دستور معمولی در لینوکس.
ادامه در پست بعدی...
🆔 @MdDaily
❤🔥1❤1👍1🔥1
#ام_دی_کورس
خب تا اینجای کار از shell noscript استفاده کردیم و با مفاهیم پایه آشنا شدیم و در نهایت مثل تصویر پست با قرار دادن مسیر دایرکتوری noscripts در PATH تونستیم از هر جایی اسکریپتمون رو اجرا کنیم
خب این بود از بخش اول از آموزش و در ادامه قرار با متغیر ها در Bash Shell Scripting آشنا بشیم و کار کنیم
ادامه در پست بعدی...
🆔 @MdDaily
خب تا اینجای کار از shell noscript استفاده کردیم و با مفاهیم پایه آشنا شدیم و در نهایت مثل تصویر پست با قرار دادن مسیر دایرکتوری noscripts در PATH تونستیم از هر جایی اسکریپتمون رو اجرا کنیم
خب این بود از بخش اول از آموزش و در ادامه قرار با متغیر ها در Bash Shell Scripting آشنا بشیم و کار کنیم
ادامه در پست بعدی...
🆔 @MdDaily
❤🔥1❤1🔥1
Bash_Chapter_1_Practice_Questions_Linux_Handbook.pdf
26 KB
#ام_دی_کورس
میتونید با حل چالش های این PDF برای تمرین چیزی هایی که یادگرفتید استفاده کنید. راه حل هاشونم به همراه نکات تکمیلی در انتهای پی دی اف قرار دارن
🆔 @MdDaily
میتونید با حل چالش های این PDF برای تمرین چیزی هایی که یادگرفتید استفاده کنید. راه حل هاشونم به همراه نکات تکمیلی در انتهای پی دی اف قرار دارن
🆔 @MdDaily
✍1❤🔥1❤1🔥1