‌BashGNU / LINUX

ویدیوهای آموزش Bash (قسمت پانزدهم اضافه شد)

در این قسمت سعی میکنم هفته ای یک ویدیو درباره آموزش Bash قرار بدم:

پیش نیاز این آموزشها یه آشنایی ساده و اولیه با گنو / لینوکس هست و دانش برنامه نویسی خاصی نیاز ندارید ، چون سعی کردم همه مسائل ساده عنوان بشه 🙂


قسمت پانزدهم :

در این قسمت string manipulation رو توضیح دادم.

 

آموزش Bash قسمت پانزدهم
آموزش Bash قسمت پانزدهم

 

 


قسمت چهاردهم:

در این قسمت آرایه ها رو ادامه دادم و کمی درباره find صحبت کردم و با دیدن این قسمت یه اسکریپت خواهید نوشت که با یه فرمت خاص فایل ها رو در کامپیوتر شما جستجو میکنه و ازشون backup میگیره.

 

آموزش Bash قسمت چهاردهم
آموزش Bash قسمت چهاردهم

 

این هم یه لینک که داخلش ۳۵ تا مثال برای دستور find آورده


قسمت سیزدهم:

در این قسمت آرایه ها رو توضیح دادم

 

آموزش Bash قسمت سیزدهم
آموزش Bash قسمت سیزدهم

 


قسمت دوازدهم :

در این قسمت sed رو توضیح دادم

در این لینک میتونید توضیحات خوبی درباره sed ببینید

ویدیوی آموزش Bash قسمت دوازدهم
ویدیوی آموزش Bash قسمت دوازدهم

 

 


قسمت یازدهم:

در این قسمت grep و regexp و pipe رو توضیح دادم
ویدیوی آموزش Bash قسمت یازدهم
ویدیوی آموزش Bash قسمت یازدهم

 


 

قسمت دهم :

در این قسمت اسکریپت دانلود قبل رو کامل میکنیم و زمان شروع و پایان دانلود بهش اضافه میکنیم و string manipulation رو شروع کردم و getopts و کار با aria۲ رو آموزش دادم.

این اسکریپت هنوز یه نقطه ضعف کوچیک داره که در جلسات آینده رفعش میکنیم 🙂

آموزش Bash قسمت دهم
ویدیوی آموزش Bash قسمت دهم

 


 

قسمت نهم :

در این قسمت بحث function رو ادامه دادم و درباره متغیر های global و local صحبت کردم

 

قسمت هشتم :

در این قسمت continue و break رو توضیح دادم و مقدماتی از function ها رو شروع کردم

 

قسمت هفتم :

در این ویدیو استفاده از آرگومان های ورودی هنگام اجرای اسکریپت رو توضیح دادم

ویدیوی آموزش Bash قسمت هفتم
ویدیوی آموزش Bash قسمت هفتم

 


 

قسمت ششم :

در این ویدیو حلقه for و until رو آموزش دادم و درباره IFS توضیح دادم .در این ویدیو اسکریپتی برای تشخیص فایلهای png و تبدیل اتوماتیک اونها به jpg و کم کردن خودکار حجم اونها مینویسیم

 

ویدیوی آموزش ‌Bash قسمت ششم
ویدیوی آموزش ‌Bash قسمت ششم

 

قسمت پنجم :

در این ویدیو حلقه while رو آموزش دادم و بعد از دیدن این ویدیو یه اسکریپت خواهید نوشت که زمان استراحت رو به شما گوشزد کنه و یه اسکریپت هم برای زمان بندی آغاز دانلود مینویسید و در جلسات بعد اون رو با هم کامل میکنیم

 


 

قسمت چهارم :

در این قسمت case و عملگرهای مقایسه ای و چهارعمل اصلی بر روی اعداد رو آموزش دادم

نکته ای که یادم رفت :

برای ضرب با expr قبل از علامت ستاره یه علامت بک اسلش بذارید 🙂 من فراموش کردم

 echo `expr 2 \* 2`

 


 

قسمت سوم :

در این ویدیو کار کردن با متغییرها و if رو توضیح دادم و یه اسکریپت خواهید نوشت که محتویات home رو چک میکنه و اسم یک پوشه رو از کاربر میگیره و اگر موجود نبود پوشه رو ایجاد میکنه

در این ویدیو چند بار دستور if رو حلقه خطاب کردم که اشتباه هست . if دستور کنترلی محسوب میشه  و while حلقه شرط که بعدا دربارش توضیح خواهم داد 🙂

ویدیوی آموزش Bash قسمت سوم
ویدیوی آموزش Bash قسمت سوم

 


 

قسمت دوم :

در این قسمت با echo , read آشنا خواهید شد و یک اسکریپت ساده مینویسید و با شیوه های مختلف درست و غلط اجرای یک اسکریپت بش آشنا میشید


قسمت اول :

در این قسمت با مفاهیم مقدماتی مثل shell , sh , zsh , bash آشنا میشید

 

ویدیوی آموزش Bash قسمت اول
ویدیوی آموزش Bash قسمت اول

224 thoughts on “ویدیوهای آموزش Bash (قسمت پانزدهم اضافه شد)

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

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

  3. سلام ببخشید بازم مزاحمتون میشم
    من تازه کار هستم با لینوکس و اینا
    بعد هرجا رفتم کسی به بزرگواری شما ندیدم برای همین زیاد مزاحم میشم
    شما از چه نسخه ای از لینوکس استفاده کردید در وسط دوره تدریس
    بنظر شما کدوم نوع سیستمش بهتره برای وارد شدن به دنیای هک و امنیت
    من الان از کالی لینوکس استفاده می کنم فک کنم یکم سطحش بالاست
    شما پیشنهادی ندارید ؟
    من الان تفاوت اوبونتو و کالی و اینا رو نمیدونم

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

  4. سلام مجدد …
    من الان وقتی ترمینال رو باز میکنم فونش خیلی خیلی کوچیکه .
    رفتم بخش file>preferences بعد رفتم قسمت فونت …. هر کاری کردم نه تونستم فونتشو عوض کنم نه سایز فونتش ……
    میشه جواب بدین
    راستی من از VMware استفاده می کنم این دلیل این نقص میشه؟

  5. سلام استاد
    شما خیلی خوب درس میدید
    به شکلی که از دوره های پولی و… هم بهتر هست دوره هاتون
    اگر مشکلی ندارید ما موافق هستیم که دوره هاتون رو در سایر چیز ها
    اگر میل داشتید به صورت پولی بخریم!
    شما از مدرس هایی که کارشون رو رایگان عرضه نمی کنند هم بهتر درس میدید

    1. ایشون کامل صحیح می گه
      اگه بشه دوره های مقدماتی پایتون و php و اینا بزارین چه پولی چه رایگان بدونید که ما پشتتون هستیم.
      من رفتم تریلر این آموزش پولی هارو دیدم اصلا هیچی خداوکیلی خودشون میدونن ی میگن همش با اصطلاح حرف می زنن
      مثلا یکی میگه همانطور که در c++ گفته شد …. می ریم c++ میگه همونطور که در جاوا گفته شد… می ریم جاوا میگه و…..
      شما اصلا عالی تدریس می کنین اولش گفتم هیی نمی فهمم الان به درجه ای رسیدم که با مهندس نرم افزار می تونم مشاجره کنم

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

  7. سلام آقای امیر صمیمی
    من وقتی که داشتم خودم اون دانلود منیجر که با هم ساختیم رو از اول می ساختم خواستم که متغیر IFS رو بزارم : وقتی که میخاستم با حلقه ی for اون رو تجزیه کنم یه مشکلی پیش اومد اینکه ساعت ورودی به همون صورت که وارد شده بود مونده بود و : ساعت و دقیقه رو از هم جدا نکرده بود بعد از کلی سرچ تو اینترنت به این نتیجه رسیدم که نباید متغیرمو داخل دابل کوتیشن بزارم وقتی میزارم دیگه ifs کار نمیکنه
    شما میگفتید همه جا برا فراخانی از دابل کوتیشن استفاده کنید ولی چرا اینجا نمیشه؟؟؟
    من همه ی قسمتای اموزش بش رو دیدم(به جز قسمت اول)

  8. با سلام خدمت استاد امیرصمیمی
    قبل از هر چیز تشکر می کنم از آموزش بسیار ساده و قابل فهمتون و می خواستم بدونین من با آموزشهای بش شما تونستم تو یه شرکت استخدام بشوم و از این بابت همیشه به شما مدیون خواهم بود…

    حالا یه سوال داشتم اینکه شما گفتین مواقغی که کاربر یادش میره ورودی آرگمان را وارد کند با استفاده از یک کامند ساده مثل [ “” == ۱$ ] بود به کاربر رو متوجه می کنیم حالا من اسکریپتی میخوام که یک ورودی با فرمت مثلا mkv وارد کنه و در صورتی که با این فرمت وارد نکرد برنامه بهش اطلاع بده ، خودم از [ “mkv.*” =! $] استفاده کردم ولی بدرستی کار نکرد.

    با تشکر

  9. آقای صمیمی منظورم اینکه توی لینوکس به چه کاری میاد و کاراییش چیه
    و اینکه پیکربندی اصلایعنی چی ؟ چون معنی این کلمه رو اصلا متوجه نمیشم
    ممنون

    1. بعضی برنامه‌ها نیاز به یه سری تنظیمات دارند و تنظیمات خودشون رو از فایل تنظیمان میخونن.
      مثلا مدیر بسته پک‌من باید بدونه کاربر چه میروری براش تعیین کرده و … . این اطلاعات رو از فایل تنظیماتش میخونه. معمولا فایل تنظیمات به طور پیش‌فرض توسط برنامه مقدار دهی شده و کاربر اگر لازم بود میتونه تغییرش بده.

    1. سلام
      سوالتون کمی کلی هست و میشه جواب کلی بهش داد.
      پاسخ سوالتون در معنی کلماتی که نوشتید نهفته هست. میتونید فایل تنظیمات ترجمه کنید. بسیاری از برنامه‌ها تنظیمات و … رو در یک فایل ذخیره می‌کنند که به این فایل configuration file میگن.

  10. سلام
    یک سوال برام پیش اومده در مورد سرعت اجرای لینوکس
    ویندوز ۱۰ یه قابلیت داره به اسم windows sybsystems for linux یا به اصطلاح wsl که باهاش می تونید لینوکس رو بدون شبیه ساز اجرا کرد
    این لینوکس ها چطورن برای کار با اسکریپت ها(اکثر توضیع های مورد استفاده ایرانیا مثل ubuntu , kali , debian و چند تای دیگه هستش)
    اگه برای اسکریپت نویسی مشکل ندارن سرعت اجرا شون چطوره؟
    مثل لینوکس هستیا از محدودیت های زیر ساختی ویندوز استفاده میکنه؟

  11. سلام اقای صیمیمی

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

  12. سلام آقای صمیمی

    توی ویدیو کست ۹ وقتی اسکریپت اجرا میشه باید همونطور که گفتید xهای هم رو بخونند ولی یک چیز دیگه اجرا میشه
    مثلا اول باید function1 اجرا بشه بعد function2 اما هنگام اجرای اسکریپت از function2 دوتا پشت هم نمایش میده اینو باید چیکار کنیم چون تو ویدیو کست ۹ هم همین مشکل رو داشت

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

  13. سلام میشه یه راهنمایی در خصوص برنامه نویسی گرافیکی در بش یا zenity بکنید ممنون لظفا اگر منبع آموزشی خوب میشناسید بگید

    1. سلام
      اصولا بش برای برنامه‌نویسی پیچیده و یا نوشتن رابط گرافیکی مناسب نیست و اصولا برای اینکار ساخته نشده. اگر منظورتون از رابط گرافیکی گرفتن اطلاعات کاربر با یک پنجره یا نشان دادن پنجره خطا و … هست، میتونید از زنیتی استفاده کنید. نسخه‌های مختلف زنیتی با هم فرق دارند. راهنمای هر نسخه در این لینک سایت گنوم اومده.
      https://help.gnome.org/users/zenity/

  14. سلام

    آقای صمیعی با زبان bash چیکار میشه کرد یعنی در کجا بکارمون میاد و اینکه اصلا این زبان به چه دردی میخوره اگه جواب بدید واقعا ممنون میشم
    با تشکر

  15. سلام
    خیلی ممنون بابت ویدیوهای خوبتون

    من ی سوال داشتم
    دستور fi و then در کجا ها کاربرد داره یعنی کی ها باید ازش استفاده کنم؟

  16. با سلام
    ببخشید میخواستم یه خط اسکریپت بنویسم که تشخیص بده حجم یه درایوی پر شده یا نه که بعدا اگه دیدم پر شده یه کار خاصی انجام بدم مثلا درایو dev/sda1/ ممنون میشم راهنماییم کنید

  17. سلام ممنون از اموزش های خوبتون
    اموزش های جدیدتون کی شروع میشه ؟ منتظر هستم خیلی ممنون

  18. سلام.خیلی ممنون بابت ویدیو های خوبتون.من موقع نوشت اسکریپت شماره خطی برام درج نمیشه.میشه راهنمایی بفرمایید چی کار کنم شماره خط هارودر سمت چپ به من نشون بده؟خیلی ممنون

    1. سلام اگه درست متوجه منظورتون شده باشم اون شماره ها برای تنظیمات vim باید باشه
      اگر داخل بخش vim برین و ویدیو های مرتبط برای شخصی سازی رو ببینید مشکلتون حل میشه
      هرچند در vim در حالت نرمال :set number رو وارد کنید شماره ها ظاهر میشن

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

  20. سلام استاد
    استاد من این اسکریپتو با توجه به درس ۱۰ نوشتم ولی هر سوییچی رو که تست میکنم هیچ مقداری به من برنمگردونه
    ممنون میشم راهنماییم کنید
    #! /bin/bash

    while getopts “name:pass:ram:vcpu:ip:mac:v” options;do
    case “$options” in
    name)
    name=”$OPTARG”
    echo $name ;;

    pass)
    pass=”$OPTARG” ;;

    ram)
    ram=”$OPTARG” ;;

    vcpu)
    vcpu=”$OPTARG” ;;

    ip)
    ip=”$OPTARG” ;;

    mac)
    mac=”$OPTARG” ;;

    v) echo version 4.9.15
    exit ;;
    esac
    done

    echo $name

    برای مثال زمانی که من برای -name مقداری وارد می کنم هیچ مقداری را برای من echo‍ نمیکند
    کد در این جا نیز اپلود شده
    http://s8.picofile.com/file/8345391642/create.sh.html

  21. سلام…مهندس خدا خیرت بده بابت ویدیوهای خوبت
    ایشالا تو مراحل زندگیتون همیشه موفق باشین.

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

  23. سلام
    استفاده از افزونه ی bash-support که روی vim نصب میشه هم واسه اسکریبت نویسی کمکای زیادی میکنه

  24. سلام و وقت به خیر
    ببخشید من میخوام یه اسکریپت بنویسم که یه مرورگر خاص(مثل فایر فاکس و یا Tor ) رو باز کنه و بعد به صورت خودکار چند تا سایت برام باز شه البته هر سایت بعد از لود شدن سایت قبلی .میشه یه راهنمایی بفرمایید.
    ممنون میشم .

  25. با سلام
    تو قسمت دهم از آموزشتون که کد یک دانلود منیجر رو نوشتین فکر کنم باگ کوچیکی وجود داشته باشه. انتهای فانکشن endtime اگر بخوایم برنامه رو بجای killall aria2c با kill $PID ببندیم این اتفاق نمی افته و دانلود ادامه پیدا میکنه. البته امیدوارم اشتباه نکرده باشم اما فکر کنم تو این بخش باید PID مربوط به aria2c قزار بگیره تا برنامه کاملا متوقف بشه نه PID اسکریپت.

  26. با سلام
    ممنون از ویدئوهای مفیدتون. بسیار عالی بودن
    فقط حیف که awk رو توضیح ندادین.

  27. سلام آقای امیر صمیمی عزیز
    notify-send تو ارچ من نصبه ولی اون اسکریپ اجرا میکنم تو دسکتاپ نمیاد انگاری فعال نیس
    ویکی هم رفتم چیزی دستگیرم نشد قبلا کار میکرد امروز ارچ پاک کردم دوباره نصبش کردم دیگه کار نمیکنه

  28. سلام اقای صمیمی من دلنشوی دکترا سویس هستم استادم واسه انالیز داده های ژنتیکی دو هفته بهم وقت داده ترمبنال و بش رو یاد بگیرم. فیلمای شما عالین ولی هیچمدوم از این دستورا تو اون نسخه ای که بهم دادن کار نمیکنه هر چی هم سرچ میکنم اموزشهاسهای اونارو نمیفهمم لطفا راهنمایم کنید

  29. یه سوال برام پیش اومده. اینکه چرا وقتی دو تا تابع رو همزمان با هم اجرا کردیم بعضی وقتا دو خط از یکی اجرا میشد؟!؟ مگه نباید یه خط از تابع اول و یه خط از تابع دوم اجرا بشه؟

  30. آقا عالی تر از این سایت ندیدم ب خدا
    آقای امیرصمیمی ادامه بدین ما حمایتتون میکنیم :)))))))

  31. سلام آقای امیر صمیمی. من به تازگی وارد دنیای جذاب لینوکس شدم. و با ویدیو های آموزش شما آشنا شدم. خیلی چیزا از فیلمای شما یادگرفتم واقعا ممنون. منتظر مباحث جدید و فیلمای جدیدتون هستم. خیلی ممنون. :kiss:

  32. سلام!خسته نباشید..ضمت تشکر از آموزش های خیلی عالی تون..
    من میخوام یه برنامه بنویسم که فایل های .txt رو به فایل های .txt.back تبدیل کنه..چیکار کنم؟؟اول بایدبسوند تکست رو از فایل ها حذف کنم و بعدش بسوند تکست دات بک رو اضافه کنم؟؟یا میشه مستقیما هم تبدیل کرد…اگه میشه با چه دستوری؟؟

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

  34. با عرض سلام و ادب
    از بابت آموزش های عالی که بصورت رایگان گذاشتید بسیار متشکرم. بیصبرانه منتظر آموزشهای بیشترتون هستم. و از خداوند براتون آرزوی سلامتی و موفقیت دارم.

    سپاس

  35. سلام مرسی بابت اموزش خوبتون
    توزیع لینوکس و نام دسکتاپی که استفاده میکنید و شبیه مک هست چیه؟

  36. دستوری همکه باید توی ویم ارسی وارد کنیم طبق اپرس سایتی که خودتون به من دادید اینه:
    map :!git commit -a -m “test”

  37. سلام من نتونستم دستور chmod +x filename رو ست کنم این ارور رو میده وقتی که توی ویم ارسیم ذخیرش میکنم و کلید مربوطش رو میزنم…

  38. سلام مجدد
    یه سوال :برای map کردن دستور chmod +x filename.sh که هموم قابلیت اجرایی فایله با توجه به اینکه filename یه چیز مشخص و ثابت نیس باید چیکار کرد؟
    یعنی اینکه کلید map ش رو توی فایل vimrc. باید چه طوری تعریف کنم؟

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

  40. سلام اقای امیر صمیمی خداقوت .
    این script هایی که توی bash اموزش دادید رو تو ی windows هم میشه اجرا کرد ؟
    مثلا همون notify-send رو؟

    1. notify-send یک نرم افزار هست که شما در سیستم لینوکسی خودتون نصب میکنید (یا نصب دارید) و از طریق بش به عنوان شل سیستم باهاش ارتباط برقرار میکنید. در ویندوز شاید شما بش رو به عنوان شل نصب کنید و دسترسی داشته باشید ولی نرم افزار notify-send رو ندارید

  41. یه سوال دیگه اینکه بعضی از سوییچ ها و دستور ها ی scrip نویسی که استفاده کردید رو نتونستم توی manual اون پیدا کنم میشه بگید از کجا پیدا کردید؟
    مثلا سوییچ s- در دستور read

  42. سلام اقا خیلی عالیه
    یه سوال برام پیش اومد این که توی دستور if داخل “” که باید متغییر فراخونی کنیم اگه بخواییم directory فراخونی کنیم . جدای از سوییچ f- . برای directory های غیر از home که خودش متغییری با نام HOME داره چه جوری باید متغییر تعریف کرد؟
    ممنون

      1. کلا اگه بخوایم یه دیرکنوری رو به عنوان یه متغیر به کار ببریم چی طوری میشه این کار رو کرد؟مث HOME که متغییر دیرکتوری هومه.

  43. با سلام و تشکر خدمت آقای امیرصمیمی. ویدیو آموزشیتون بسیار مفید و خوب بودند .
    استاد اگه امکانش هست آموزش زبان پایتون را هم در ادامه ی برنامه هاتون بزارین . ^_^

  44. با سلام خدمت استاد عزیز. تشکر بابت فیلم های بسیار عالیتون. ۱ سوال داشتم از خدمتتون. بنده یه اسکریپت ساده که ۲ تا پروسه را به صورت همزمان اجرا کند را میخوام در ابتدا اجرا و سپس نتایج آن ها را در داخل یک فایل نمایش دهم.
    اما مشکل اینجاست که پروسه اول که زمینه میشود اجرا میشوذ اما هیچ چیزی را نمایش نمیدهد و فایل مربوطه خالی است.
    #!/bin/bash
    f=iperf3 -u -c 127.0.0.1 -p 5206 -i 5 -t 5 -b 0 &
    d=iperf3 -u -c 127.0.0.1 -p 5207 -i 5 -t 5 -b 0
    wait
    echo “$f” > ee.txt
    echo “$d” > er.txt

  45. سلام خسته نباشید
    چطوری میتونم یه فایل bash script یا یه همچین چیزی درست کنم شامل یه سری command ها که بتونم هر وقت خواستم فایل رو اجرا کنم و یه سری عملیات مثل بک آپ گیری یا … رو انجام بدم؟
    ممنون میشم کمی راهنمایی بفرمایید

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

  47. ویدیو ها واقعا عالیه
    یه ویدیو ۳۰ دقیقه ای رو پلی می‌کنم و کنارش ترمینال رو باز می‌کنم، همراهتون کد می‌زنم، هر دستوری که برام جدیده رو گوگل می‌کنم و ته و توشو در میارم، دستورای ریزی که لابلای آموزش های اصلی گفته می‌شه خیلی خوبه، هر ویدیویی که می‌بینم یه ذره ترمینالم رو شخصی سازی می‌کنم و یه سری فیچر ها به bashrc اضافه می‌کنم، کامند های خود ساخته مث timer و alarm clock و اینجور چیزا همینطوری داره به دستورات ترمینالم اضافه می‌شه.
    شکل آموزش هم صمیمی و کاربردیه!
    خیلی ممنون آقای امیرصمیمی.

  48. خیلی دلم میخواد این آموزشها رو ببینم و یاد بگیرم.
    اما یه دلیل محکم و قانع کننده میخوام واسه اینکار.
    باید بدونم واقعا به چه دردم میخوره.
    کاش یه ویدئو هم در مورد دلایل یادگیریش درست میکردین.
    ویدئو هم نشد ممنون میشم همینجا یا توی یه پست جدید در موردش توضیح بدین.

  49. روش و سبک آموزشی شما خیلی عالی
    اگه بشه آموزش طراحی سایت هم داشته باشیم خیلی خوب میشه

  50. سلام مهندس و موزیسین عزیز
    آقا یه سوال من دارم با آموزشهای عالیه شما پیش میرم قسمت ۱۵ قسمت آخر آموزش بش اسکریپت هست یا ادامه داره؟

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

    وارد میکنم پیغام رو اکو نمیکنه . !؟؟!؟!؟ مشکل کجاست مهندس ؟؟ ضمن حل مشکل توضیح هم بدید . ممنون

    #!/bin/bash

    clear

    read -p “PLEASE ENTER A NAME : ” name

    clear

    if [ “$name” == “JAVAD” ];then

    clear

    read -p “PLEASE ENTER A DIRECTORY :” dir

    if [ -d “$HOME/$dir” ];then

    echo “OK !”

    fi

    else

    echo “UNKNOWN !”

    exit

    fi

    1. دوست عزیز
      کد اصلاح شده شما
      #!/bin/bash
      clear
      read -p “PLEASE ENTER A NAME : ” name
      clear
      if [ “$name” == “JAVAD” ];then
      clear
      read -p “PLEASE ENTER A DIRECTORY :” dir
      if [ -d “$HOME/$dir” ];then
      echo “OK !”
      fi
      else
      echo “UNKNOWN !”
      fi
      exit

  52. سلام و عرض ادب در مورد نصب کارت گرافیک و صدا بر روی کالی لینوکس فیلم اموزشی خاصی دارید ??

  53. سلام استاد
    من قسمت ۱۰ رو دیدم مثل اینکه یک باگ کوچکی داره دانلود منیجری که ساختید اینکه شما هیچ وقت نمی توانید به برنامه بگید که از ساعت ۶ بعد از ظهر شروع به دانلود کن (۱۸:۰۰) تا ساعت ۱۲ شب (۰۰:۰۰) دقیقه های End تایم رو که ضرب میکنه کم میشه و این باگ بدی به حساب میاد یا مثلا از ساعت ۲۳ نمی شود تنظیم کرد شروع بشه تا ۳ نصفه شب.
    و یه چیز دیگه خیلی وقت هست که آموزش هارا ادامه ندادید آیا قسمت ۱۵ به بعد ادامه خواهد داشت؟

    منبع کاملی برای یادگیری بش اسکریپت به زبان انگلیسی موجود هست؟ ممنون استاد.

    1. سلام میلاد خان
      والا راستش یادم نیست توی اون آموزش چه اسکریپتی نوشتم و این مشکل وجود داره یا نه!مال خیلی وقت پیش هست
      در ضمن هدف اسکریپت های این سری آموزش ها اینه که فرد تازه کار یه سری مفاهیم ساده رو با برنامه های نه چندان پیچیده تمرین کنه و اصول رو تا حد خوبی یاد بگیره و ممکن هست مشکلاتی وجود داشته باشه چون هدف یه برنامه با جزئیات دقیق نیست 🙂
      امیدوارم در اولین فرصت بتونم آموزش ها رو ادامه بدم

    1. سلام حتما به اسکریپت two.sh قابلیت اجرا بدید (با دستور chmod) و حتما مطمئن بشید مه با اسکریپت اجرایی شما در یک پوشه هستند . نیازی به exec نیست! فقط بنویسید
      ./two.sh
      البته گذاشتن exec هم مشکلی به وجود نمیاره ولی نباید two.sh رو داخل دابل کوتیشن بذارید

  54. با عرض سلام و احترام
    مهندس امیر صمیمی من ویدئوهای آموزش شل اسکریپت شما را تا قسمت دهم نگاه کردم. بخش بسیاری از آن مفید بود. امید بود که این دوره را در سطوح حرفه ای تر و با برنامه ریزی و دسته بندی دقیق تر ادامه میدادید . چون تقریبا شما تنها کسی هستید که در ایران در این زمینه در اینترنت به صورت رایگان فعالیت میکنید. از حرکت بسیار با ارزش شما سپاسگزارم.
    به امید اینکه دوره های قوی تری از شل اسکریپت در اختیار علاقه مندان قرار دهید.

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

    از خداوند متعال برایتان سلامتی ، موفقیت و همواره یاد دادن را مسئلت دارم.

  56. سلام مهندس خسته نباشید
    یه مشکلی داشتم ممنون میشم راهنمایی کنید
    http://s9.picofile.com/file/8268775676/Screenshot_2016_09_27_08_13_56.png
    چرا اسکریپت نمیتونه ls بگیره مسیر هم echo کردم میبینید که مسیر درسته 😐
    به صورت دستی تو ترمینال ls گرفتم مشکلی نداشت
    اینم فایل اسکریپت:
    http://s9.picofile.com/file/8268776492/convertor.sh.html

    1. یه نکته مهم و کوچولو 🙂
      از tab استفاده کنید اینجوری اسکریپتتون خوانا میشه . خیلی نکته مهمی هست

      اینجور وقتها از eval استفاده کنید (هنوز توی ویدیوها توضیح ندادم) . مثلا

      file='ls $HOME/Pic/*png'
      eval $file

        1. بد نوشتی اسکریپتت رو 🙂
          برات بازنویسیش کردم چک کن
          سعی کن همیشه از اسم های مشخص برای متغییرهات استفاده کنی f1 و … اسم های مناسبی نیست و خوندن اسکریپتت رو سخت میکنه
          دستور eval رو نباید توی for مینوشتی . خروجیش رو توی for قرار بده . توی خطوط اول متغییرها رو هم کامنت کن
          اینجا برات اسکریپت رو گذاشتم
          https://paste.ubuntu.ir/hplh

  57. دومی هم یادم اومد تو بش یادمه تو یکی ار اموزش ها دوتا عمل رو با هم انجام دادید چطوری این حرکت رو تو سی پلاس پلاس میشه اجرا کرد ؟
    میخواستم تو پاسخ سوال قبلی اینم بپرسم ارور داد

  58. سلام اقا امیر دوتا سوال دارم برنامه ی هست برای بیش از حد کم کردن نور تو لینوکس ْ!کلی گشت زدم وسورس ها دیدم خخخ ولی به اون چیزی که میخواستم نرسیدم !(اگه نیست لطف میکنی بگی جطور میشه ساخت خودم نظزم رو خوندن فایل وتغییرش بود ولی انگار حداقل تو مانجارو لینوکس حداقل برای کم شدن نور هست و اکسس بهش هم بستست)
    سوال دومم یادم رفت 😐 یادم بیاد میام باز 🙂

  59. سلام
    باتشکر از شما
    مهندس من میخوام یک اسکریپتی بنویسم که وقتی که کاربر فایلی pdf را داخل پوشه مورد نظر ریخت خودکار فایل pdfبه پرینتر ارسال شه
    اگه امکان داره راهنمایی کنید
    خیلی ممنون

  60. سلام اقا امیر نمیدونم گفتید من حواسم نبوده یا … دستوری که از بش رو قطع کنه نیست مثلا

    تو سیexit (0)
    ؟

  61. سلام اقا امیر من ارور  رو میگیرم  http://uupload.ir/files/t98o_screenshot_۲۰۱۶۰۸۲۶_۱۵۱۳۱۶.pngیه روش که با کامند اول کد رفتم بنظرتون ج میده ؟دیگع نیازی به کد نویسی  انچنانی هم نیست

      1. سلامی دوباره لینک تصویر روگذاشتم   http://uupload.ir/files/t98o_screenshot_۲۰۱۶۰۸۲۶_۱۵۱۳۱۶.pngهمونطور که توی تصویر میبینید وقتی به چک کردن شرط میرسه  خطا میده کد رو هم کامل مثل خودتون نوشتم البته من میخواستم از این سورس برای خاموش شدن خودکار استفاده کنم که فهمیدم خود ترمینال یه دستور داره به دستورایی که کامند کردم توجهی نکنیدیه سوال خارج بحث ============تو بعضی سایتای ابرانی مثل اپارات !عدد امنیتی که باید وارد کنم بااین که زبانم انگلیسیه فارسی عدد رو میزنه ونمیتونم کامنت بذارم فقط توبعضی سابتای ایرانی  راحلی برای این مشکل ندارید؟

        1. سینتکس کدت مشکل داره باید در حلقه های شرط یا دستورات شرط از قسمتی که براکت باز میشه و بسته میشه یه فاصله وجود داشته باشه (space)
          ——-
          مشکل دوم احتمالا برمیگرده به میزکار و زبان میزکار و کیبرد و … تا حالا بهش برنخوردم 🙂

  62. سلام استاد یک سوال داشتم  در مورد قسمت هفت ۱- این که توی سیستم من *و@ باهم هیچ فرقی ندارن بعد این جوری که من دیدم $۱  اولین وردی رو می گیره $۴ چهارمین ورودی رو می گیره  ایا این  درسته ؟؟؟  ینی اگه ما بهش بگیمecho “$1″============================= و این جوری اجرا کنیم test.sh/.    ۴۵ ۱۲out is>>>> 45=============================اگه کد باشه echo    “$۴″test.sh/.   ۴۵ ۱۲ ۱۶>>>>>>  ۱۶====================================میشه یک ذره تو ضیح بدیندر این مورد ممنون از اموزش خوبتون

  63. با عرض سلام و خسته نباشید از سایت خوبتون من اسکریپتی می خواستم که  که بتونم در bashrc  استفاده کنم که بتونه یک دستور خاصی رو تشخیص بده و یک عملی انجام بده برای مثال اگر exit  زدم در bash  یک متنی رو چاپ کند. با تشکر فروان

    1. البته اصلا! توصیه نمیکنم همچین کاری رو با exit انجام بدید
      برای این کار باید برای اون کلمه مورد نظر یه برنامه با اون اسم بنویسید و توی مسیر
      /usr/bin
      قرار بدید و داخل bashrc اگر نیاز بود alias براش بذارید

  64. سلاماسکریپتم رو تو چه پوشه ای بریزم که بتونم به عنوان یه دستور توی بش استفاده کنم؟چطور  آدرس اسکریپتم همیشه اول کار به PATH اضافه بشه؟

  65. سلام اوستا خسته نباشید.آقا میخوام توی اسکریپتم از jdate استفاده کنم ولی میخوام اولش تست کنه ببینه این برنامه نصبه یا نه. چطور باید تست کنه این نصیه یا نه؟

    1. سلام راه های مختلفی وجود داره مثلا اگه برنامه jdate موجود باشه باید خروجی ورژن داشته باشه و خط بعد یه $ بذار چک کنه که استاتوس برنامه رو چک کنه! اگر برنامه وجود نداشته طبیعتا استاتوس برنامه نباید ۰ باشه

      jdate --version
      echo $?

  66. با تشکر خیلی  خیلی هم از شماو وب سایت عالیتون. اموزشی که گذاشتین خیلی بهم کمک کرد دمتون گرم.

  67. سلام دستوری مثلlist.remove(arrrray)پایتون توی بش نداریم؟بدون اینکه بدونیم چندمین ارایه هست مستقیم خود ارایه رو آنست کنیم؟

  68. سللام آقای امیرصمیمی ویدیو های آموزش بش عالی هستن.من اوبونتو  ۱۵.۱۰ دارم میخواستم بدونم چطور میتونم روی اون نصب کنم؟ xfce 4.12

    1. اولا توصیه میکنم آپگرید کنید چون چیزی به عمر ۱۵٫۱۰ نمونده
      دوما اصلا توصیه نمیکنم دوتا میزکار رو کنار هم نصب کنید
      سوما این لینک رو ببینید ، قبلا توضیحش رو نوشتم 🙂
      http://amirsamimi.ir/linux_desktop_environments/

      چهارما اگه خوشت اومد xubuntu 16.04 بسیار توزیع خوبی هست 🙂

  69. سلام، خسته نباشین، در درس ۱۴، آرایه‌ی linux3 در واقع اجتماع آرایه‌های linux و linux2 بود.سؤال۱: چرا با تغییر اعضای آرایه‌ی مثلا linux اعضای linux3 تغییر نمی‌کنه؟سؤال۲: برای تغییر اعضای linux3 چه راه دیگه‌ای جز-linux3=(“…” “…” …)-وجود داره؟

      1. سلام، سؤال دوم اینه که چطوری اندیس‌های linux3 رو تغییر بدم پس؟ چون ظاهرا امکان نداره با تغییر اعضای linux یا linux2 باعث تغییر اعضای linux3 بشم. برای تغییر linux3 آیا راهی جز linux3=(…) وجود داره؟

  70. استاد روم به دیوار . کدوم قسمت بود که یک فایل تکست میساختی بعد یه فانکشن مینوشتی هی اون فایل تکست رو بخونه و بر اساس ورودیش تصمیم بگیره؟

      1. پیداش کردم.یه سوال دیگه . میشه هر خط رو داخل یک ارایه ریخت؟x=`cat text.txt`مثلاx[1]خط یک رو داشته باشه؟دستور پینگ رو داخل یک فایل تکست ریختم. ولی فرمان رو از خط دو نشون میده. میخوام یه ساب استرینگ از خط دو بخونم فقط

  71. بد توضیح دادم. منظورم اینه که برای دیدن اعضای آرایه، چرا @ به کار ببریم و * نه، در حالی که خروجی هر دو یکی هست، ضمن این که حالتی که در درس ۷ توضیح دادید اینجا نیست (یا اگر هست من متوجه نمیشم که چطور می‌تونه اون تفاوت اینجا کار کنه). ممنونم از ویدیوهای فوق‌العاده‌تون

    1. ممنونم از لطفت 🙂 برای شمارش تعداد مشکلی به وجود نمیات 🙂 مشکل وقتی به وجود میات که میخوای از همه اعضای آرایه به شکل تک تک استفاده کنی . آموزش قسمت چهاردهم رو ببین یه مثال درباره همین قضیه زدم 🙂 احتمالا برات روشن میشه قضیه

  72. با سلام، تشکر، و تقدیم احترام،در ویدیوی ۱۳، دقیقه‌ی ۶َ در مورد آرایه‌ها، می‌فرماییدecho ${#gnu_linux[@]}از @ استفاده کنید. من از *هم استفاده کردم خروجی یکی بود. یادم هم هست که در ویدیوی ۷ (نه ۶ :)) فرق این دو رو فرمودید. نکته‌ای که هست متوجه نمیشم استفاده از * میتونه چه مشکلی به وجود بیاره. خیلی ممنونم

  73. سلام اقای امیرصمیمی. امیدوارم حالتون خوب باشه. ببخشید توی ویدیو ۵ قسمت نوتیفیکیشن من بسته ای رو که گفته بودید رو نصب کردم. دستور زیر رو که توی برنامه می زنم هیچ چیزی نمایش نمی ده.این دستور رو می زنم : notify-send “REST”” اخر رو بعد از REST می نویسم.در ضمن از اوبنتو ۱۶٫۰۴ استفاده می کنم.تشکر

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

  75. سلام
    باتشکر از زحماتتون استفاده کردیم
    این هم اسکریپت دفترچه تلفن که از دو حالت آرگومان و بدون آرگومان پشتیبانی میکنه
    قبلیت اضافه کردن ، نمایش لیست و جست و جوی مخاطبین رو داره .
    http://cdn.persiangig.com/download/3aPrGs3uiC/mc.sh/dl
    البته قابلیت ویرایش یا حذف یک مخاطب رو هرچی فکر کردم بدون داشتن ی دیتابیس یا بدون استفاده از ی چیزی مث آرایه به ذهنم نیومد البته توو نت هم سرچ کنید ی اسکریپت با این قابلیت هست که ساختار پیچیده ای داشت و من درک نکردم (چندین فایل داشت )
    اشکال دیگه ای هم که داره و کلا تمام اسکریپت هام دارند اینه که نمیتونم ی حالتی مث go رو تدارک ببینم ک مثلا اگر فلان تابع اجرا شد بعدش بره فلان نقطه کد ، مثلا بعد از نمایش تابع راهنما بره به تابع شروع اسکریپت دوباره ! با فراخوانی و تابع تابع کردن کل اسکریپت هم تلاش کردم نشد !‌
    باتشکر

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

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

    1. بیشتر هدفم تمرین درس های گذشته بود 🙂
      درباره کتگوری گذاشتن هم حق با تو هست 🙂 کاش از اول همین کار رو میکردم . ولی الان تو چندتا فروم لینک آموزش رو گذاشتم و تصحیح همگی سخته
      در ضمن خوشحالم که بش تونسته بیدارت نگه داره!

      1. بش نتونسته شما تونستی.
        خوب این پیج رو نگه دار و آموزشارو به صورت پست و دسته آموزش بش هم بزار.
        یه افزونه هم هست.سابسکریب کامنت اونم نصب کنی فک کنم خوب باشه

  78. سلام. سال نو مبارک. ایشالا که توی سال جدید هر روز یه ویدیو جدید بذاری 🙂 ما منتظریم. راستی یه خبرم بذارم براتون:
    ♦️ آخرین وضعیت شجریان از زبان وزیر بهداشت
    استاد به کشور بازمی گردد و پزشکان متخصص اقدامات را پی می گیرند
    دکتر هاشمی وزیر بهداشت گفت:
    امروز در تماسی تلفنی با استاد شجریان جویای احوالشان شدم. روحیه ایشان بسیار خوب و صدایشان مثل همیشه با صلابت، پر توان و سرحال بود.
    انشاءلله ایشان در دو تا سه ماه آینده به کشور باز می گردند و پزشکان متخصص ایشان اقدامات مورد نیاز و باقیمانده را پی خواهند گرفت

  79. سلام
    سال نو و اسباب کشی به سایت جدید رو تبریک میگم خدمتتون
    من دانلود منیجری ک نوشته بودم رو ی مقدار زیادی تغییرات دادم و الان خیلی بهتر شده ، البته نواقصی هم داره
    امکاناتی ک داره :
    – میتونه دانلود کنه
    – از دو حالت آرگومان و بدون آرگومان پشتیبانی میکنه
    – زمان شروع قابل تنظیمه
    – زمان پایان قابل تنظیمه
    – دایرکتوری دانلود هم قابل تنظیمه
    اشکالاتی که داره :
    – موقع اتمام زمان دانلود وقتی قرار خارج بشه بعد از خروج ی تیکه کد بصورت نامرتب مینویسه که نمی دونم چطور باید رفع بشه «wget -P “$HOME/$1” “$2″»
    – مثلا اگر کاربر در زدن ی جایی اشتباه کنه دیگ راه تصحیحی نیست
    – ابزاری برای چک کردن ورودی ها بلد نیستم ، اینکه الان ورودی عدده یا غیرش که بتونیم اگر اشتباه بود کرد دوباره ازش طلب کنیم ،‌البته بچه های گروه میگفتند با رجکس میشه
    – نتونستم از ifs برای گرفتن زمان بطور متوالی استفاده کنم چون جداکننده رو در کل تغییر میداد و راهی نبود
    – چطور ورود نامنظم ارگومان ها رو پشتیبانی کنیم ؟ اینکه اول لینک باشه یا آخر یا وسط فرقی نکنه ی چیزی توو مایه سوییچ های آریا .
    – بهتر می بود با آریا می نوشتم که مناسبتر بود ولی خب برای سادگی ننوشتم و میدونم چطور اینکار رو کنم .
    – کامنت های کدها به زبان نامشخصی نوشته شده ! 🙂

    لینک : http://cdn.persiangig.com/download/dAO8g4B5x9/mdln.sh/dl

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *