انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: علیرضاامیرصمیمی در 02 بهمن 1394، 06:32 بظ
-
قصد دارم هفته ای یک یا دو ویدیو برای آموزش اسکریپت نویسی Bash بگذارم. پیش نیاز این آموزشها یه آشنایی ساده و اولیه با گنو / لینوکس هست و دانش برنامه نویسی خاصی نیاز ندارید ، چون سعی کردم همه مسائل ساده عنوان بشه :)
پست اول به مرور آپدیت خواهد شد
ویدیوهای آموزش بش (قسمت پانزدهم اضافه شد) (http://amirsamimi.ir/bash_tutorials/)
دانلود ویدیوها با کیفیت اصلی (https://videos.ubuntu.ir/)
مصطفی عزیز همه فایلهای ویدیویی آپارات رو اینجا آپلود کرده (http://bit.ly/bashscriptt)
-
عالی . علیرضا واقعا داری میترکونی ها !! ;D
-
مرسی.
کیفیت فایلی هایی که از اپارت گرفتم اصلا خوب نیست. کاش یا یک لینک باکیفیت تر قرار بدید یا ترمینال رو در فیلمها ماکزیمم کنید (با فونت خیلی بزرگتر). ریتمش کمی کند بود: شاید برای من که با مقدمات تا اندازه ای اشنا بودم اینطور اومد.
امیدوارم مستمر باشه و به جاهای متوسط به بالا هم برسه و همین طور bash scripting. در ادامه اش موفق باشید
-
میتونید داخل آپارات گزینه HD رو فعال کنید برای ویدیو .
-
عالی . علیرضا واقعا داری میترکونی ها !! ;D
ممنونم کاکو :)
مرسی.
کیفیت فایلی هایی که از اپارت گرفتم اصلا خوب نیست. کاش یا یک لینک باکیفیت تر قرار بدید یا ترمینال رو در فیلمها ماکزیمم کنید (با فونت خیلی بزرگتر). ریتمش کمی کند بود: شاید برای من که با مقدمات تا اندازه ای اشنا بودم اینطور اومد.
امیدوارم مستمر باشه و به جاهای متوسط به بالا هم برسه و همین طور bash scripting. در ادامه اش موفق باشید
ممنونم از نظرت.حتما کمک میکنه قسمت های بعد بهتر بشه
همونطور که کوشای عزیز گفت ویدیو ها رو با کیفیت خوب ببینید
واقعیت این هست که چون شروع ویدیو ها هست باید فرض من بر این باشه که بیننده تازه کار هم ویدیو رو میبینه و باید به سادهترین شکل مفاهیم رو بیان کنم :)
-
حرکت بزرگیست :)
علیرضا خودت که دستت تو کاره، این کارت ادامه دار باشه قشنگه
پیشاپیش هم از طرف خودم و هم از طرف تازهکاران عزیز ازت ممنونم بابت وقت و انرژی که میذاری :)
-
سپاسگذارم علیرضا.
قسمت اول را دیدم، پسندیدم!
پیروز باشی.
-
خسته نباشید، حرکت خوبیه امیدوارم ادامه دار باشه.
فونت نوشته های ترمینال رو بزرگتر کنید بهتر هم میشه.
-
سلام
کار بسیار خوب و پسندیدهای هست
من همیشه دوست داشتم برنامه نویسی در لینوکس رو یاد بگیرم، ولی هیچ وقت نه فرصتش بود و نه حوصلهاش، ان شاء الله کار شما انگیزهای هست برای امثال من
و همین که فرض رو بزارید بر اینکه مخاطب چیزی بلد نیست، بهتره. من خودم هفت هشت سال پیش برای دیپلم کامپیوتر ویژال بیسیک ۶ رو کمی یاد گرفتم، بعدش هم که رشته درسیام ربطی به کامپیوتر نداشت، کلا از برنامهنویسی فاصله گرفتم.
دوباره برای این کار ارزشمند تشکر میکنم.
-
بسیار عالی :) ممنونم، امیدوارم ادامه دار باشه .
-
عالیه ، حتما ادامه بدید :)
-
+1
خوب مفاهیم رو رسوندی جالب بود ;)
-
ممنونم از همه دوستان عزیزم و انرژی مثبت و پیشنهادات خوبشون :) انشاالله حتما ادامه دار خواهد بود
-
دوستان قسمت سوم اضافه شد
http://amirsamimi.mihanblog.com/post/45
-
1000+
;D
ایول. خیلی وقت بود میخواستم شروع کنم به یادگیری بش ولی خب میدونین چرا شروع نشد هیچ وخ (همون جریان کرمونی/شیرازی ;D)
من همیشه واسه کارام اسکریپت درست میکنم ولی نه با حلقه ها و جملات شرطی و ... یعنی چون هنوز کامل بلدشون نیستم، فقط از ابزارهای خود شل توی اسکریپت استفاده میکنم.
مثلا برای بکاپ گرفتن از دیتاهای داخل اوبونتوی گوشیم روی سیستمم و همین طور سینک کردن اطلاعات داخل اون دایرکتوری سیستم که باید بین گوشی و سیستم یکسان باشه، یه اسکریپت نوشتم، کثیفِ کثیف ;D عین بازار مسگرای کرمون ;D ولی خب کار راه انداز بود عجیب! چون من همیشه حالات های مختلفی پیدا میکنم برای یه کار و همیشه باید تمام جوانب رو بررسی کنم، حال نداشتم همه رو if و ...بدم بره. بدتر خودمم گیج میشدم (علاوه بر اینکه کاملا هم بلد نیستم این اصول اولیه بش رو)
۲۶ خط دستور شد! :o فکر کنم با اصول بش جلو میرفتم ۵ خط بیشتر نمیشد ;D
واسه همین امیدوارم سری آموزش رو ادامه بدین. خدا خیرتون بده.
اینم کُد کثیفم ;D ولی خروجیش خیلی تمیزه ;D هیچ اثری از خودش به جا نمیذاره 8)
#!/bin/bash
cp -rn /home/ubuntu/Subuntu/home/phablet/{Documents,Downloads,Data,Music,Pictures,Videos} /media/Korean/Ubuntu\ Phone/phablet/
sleep 2s
cp -ri /home/ubuntu/Subuntu/home/phablet/.bashrc /media/Korean/Ubuntu\ Phone/phablet/
cp -ri /home/ubuntu/Subuntu/home/phablet/.bash_history /media/Korean/Ubuntu\ Phone/phablet/
cp -ri /home/ubuntu/Subuntu/home/phablet/Contact/Contact*.vcf /media/Korean/Ubuntu\ Phone/phablet/Contact/
#cp text file with -i
cd /home/ubuntu/Subuntu/home/phablet/
find {Documents,Downloads,Data,Music,Pictures,Videos} | sort > /home/ubuntu/find1
sleep 2s
cd /media/Korean/Ubuntu\ Phone/phablet/
find {Documents,Downloads,Data,Music,Pictures,Videos} | sort > /home/ubuntu/find2
sleep 2s
cd
echo -e '#!/bin/bash \n' > backupresult
chmod +x backupresult
diff find1 find2 | grep ">" | sed -e s/"> "/"\/media\/Korean\/Ubuntu\ Phone\/phablet\/"/ -e s/^/\"/ -e s/$/\"/ -e s/^/"rm -ri "/ >> backupresult
sleep 2s
./backupresult
rm find1 find2 backupresult
cp -rn /media/Korean/Ubuntu\ Phone/phablet/* /home/ubuntu/Subuntu/home/phablet/
sleep 2s
echo
echo -e '====================================================================================== \n'' Tamum Shod Yaro! Dige Chekar Mikhay Bekoni! Vel Kon Dige Toro Khoda :( Koshti Mano \n''======================================================================================'
echo
-
عالی بود
یه سؤال:
وقتی از حلقه if استفاده میکنی بعد مثلا میخوای از read استفاده کنی قبل read فاصله قرار دادی که بیاد داخل
اون فاصله برای خوانایی بهتر هست؟
-
1000+
;D
ایول. خیلی وقت بود میخواستم شروع کنم به یادگیری بش ولی خب میدونین چرا شروع نشد هیچ وخ (همون جریان کرمونی/شیرازی ;D)
امیدوارم این سری ویدیویی که میذارم کمکت کنم :)
ولی عاشق کامنت گذاشتن وسط اسکریپت هات هستم :D
عالی بود
یه سؤال:
وقتی از حلقه if استفاده میکنی بعد مثلا میخوای از read استفاده کنی قبل read فاصله قرار دادی که بیاد داخل
اون فاصله برای خوانایی بهتر هست؟
آره :) چون هر دو دستور داخل حلقه شرط بودند برای همین باید زیر هم نوشته بشن که خواناتر باشند و معلوم بشه که داخل یه حلقه هستند
-
امیدوارم این سری ویدیویی که میذارم کمکت کنم :)
ولی عاشق کامنت گذاشتن وسط اسکریپت هات هستم :D
:D
مرسی. آره حتما کمک میکنه. ;)
اومدم اون اسکریپت بالا رو یکم اصولی ترش کنم، کامنت های بیشتری بهش اضافه کردم ;D اصن با آدم حرف میزنه خخخ
ولی سر همین متغییرها حالمو گرفت. یه سری متغییر میخوام بدم که {} داره داخلش.
مثلا:
Dir={Downloads,Music}
بعد که میخوام توی دستور ازش استفاده کنم، اررور میده. در صورتی که معمولی همون تیکه بالا رو بذارم توی ترمینال، کار میکنه :o
مثلا:
ubuntu@Rasubuntu:~/Subuntu/home/phablet$ Dir="{Downloads,Data}"
ubuntu@Rasubuntu:~/Subuntu/home/phablet$ find $Dir
find: `{Downloads,Data}': No such file or directory
ubuntu@Rasubuntu:~/Subuntu/home/phablet$ find {Downloads,Data}
Downloads
Data
Data/tweak.click
Data/Linux
Data/Linux/Deb Archive
Data/Linux/Linux Software
Data/Linux/Linux Software/Deb
Data/Linux/Linux Software/Click
Data/Linux/Linux Software/Click/tweak.click
چکارش کنم؟ فقط هم توی همین بخشش گیر کردم.
-
چکارش کنم؟ فقط هم توی همین بخشش گیر کردم.
دوتا متغییر براش تعریف کن :)
a=Downloads
b=Music
find {$a,$b}
یا از آرایه استفاده کن
a=(Documents Downloads Data Music Pictures Videos)
find ${a[*]}
-
همین الان هم دوتا متغییر هست.
یعنی یه آدرس هست که چندجا استفاده میکنم ولی بخش آخری اون آدرس یه جای دیگه باید استفاده بشه. پس تا وسط اون آدرس میشه یه متغیر. و از وسط تا اخر اون آدرس هم میشه یه متغیر دیگه.
مثلا:
Phone="/home/ubuntu/Subuntu/home/phablet/"
Dir="{Documents,Downloads,Data,Music,Pictures,Videos}"
اینا دقیقا یک آدرس هستن. ولی اولی رو چندجا باید تنها استفاده کنم و دومی هم یکی دو جا باید تنها استفاده کنم.
-
همین الان هم دوتا متغییر هست.
یعنی یه آدرس هست که چندجا استفاده میکنم ولی بخش آخری اون آدرس یه جای دیگه باید استفاده بشه. پس تا وسط اون آدرس میشه یه متغیر. و از وسط تا اخر اون آدرس هم میشه یه متغیر دیگه.
مثلا:
Phone="/home/ubuntu/Subuntu/home/phablet/"
Dir="{Documents,Downloads,Data,Music,Pictures,Videos}"
اینا دقیقا یک آدرس هستن. ولی اولی رو چندجا باید تنها استفاده کنم و دومی هم یکی دو جا باید تنها استفاده کنم.
حالا وقتی میخوام کنار هم استفادهشون کنم، مشکل داره. حتی جدا هم اون $Dir مشکل داره ](*,)
-
پیغام خصوصی فرستادم رسول جون که تاپیک شلوغ نشه:)
-
پست اول به مرور آپدیت خواهد شد
قسمت اول (http://amirsamimi.mihanblog.com/post/43)
قسمت دوم (http://amirsamimi.mihanblog.com/post/44)
قسمت سوم (http://amirsamimi.mihanblog.com/post/45)
- چند ثانیه اول برنامه با چی ساخته شده که smooth محو میشه و بعد فیلم شروع میشه؟
- در کل با چی ادیت شده؟
-
من از open shot برای ادیت استفاده میکنم :)
-
دوستان قسمت چهارم اضافه شد
http://amirsamimi.mihanblog.com/post/46
-
دوستان قسمت چهارم اضافه شد
http://amirsamimi.mihanblog.com/post/46
سلام علیکم.
بسیار ممنون استاد خیلی استفاده کردم و به ددم خورد :)
کلی هم برای سخنرانی جادی خندیدم ;D
لطفا ادامه بدید.ان شاءالله موفق و موید باشید.
-
من استاد نیستم :)
ممنون از محبتت . خوشحالم که مفید بوده :)
-
منظورتون از سخنرانی جادی کدومه؟از کحا دانلود کنیم؟
-
منظورتون از سخنرانی جادی کدومه؟از کحا دانلود کنیم؟
فکر میکم منظورشون این پست هست :)
http://amirsamimi.mihanblog.com/post/34
-
ممنون استاد جواب دادین.
واقعا تا این موقع بیدارین؟ :o
-
تازه بیدار شدم :)) سحر خیز باش تا کامروا باشی :)
من استاد نیستم :)
-
دوستان قسمت پنجم اضافه شد
در این ویدیو حلقه while رو آموزش دادم و بعد از دیدن این ویدیو یه اسکریپت خواهید نوشت که زمان استراحت رو به شما گوشزد کنه و یه اسکریپت هم برای زمان بندی آغاز دانلود مینویسید و در جلسات بعد اون رو با هم کامل میکنیم :)
http://amirsamimi.mihanblog.com/post/47
-
دوستان قسمت ششم اضافه شد
در این قسمت حلقه for و until و همینطور IFS رو توضیح دادم و با دیدن این ویدیو یه اسکریپت خواهید نوشت که به طور خودکار فایلهای png رو در یک پوشه جستجو کنه وسایز اونها رو ۵۰ درصد کم کنه و با فرمت jpg ذخیره کنه :)
http://amirsamimi.mihanblog.com/post/49
-
دوستان قسمت هفتم اضافه شد
قسمت هفتم (http://amirsamimi.mihanblog.com/post/50)
-
سلام
واقعا عالیست
یه نکته اینه که دوستان که نظر نمیدن
فقط برای اینه که میخوان ارسال تکراری نداده باشن
شما با انرژی به کارت ادامه بده
این ویدئوهای آموزشی عالیست
-
فقط عنوان رو آپدیت کنید
چاکرت! :}
-
ممنونم از محبتتون دوستان :-)
عنوان اصلاح شد
-
ویدیوی قسمت هشتم اضافه شد
در این قسمت continue و break رو توضیح دادم و مقدماتی از function ها رو شروع کردم
قسمت هشتم (http://amirsamimi.mihanblog.com/post/52)
-
مجموعه آموزش های بش توسط علیرضا امیر صمیمی بطور مستقیم از مگا با کیفیت بالا - هشتمین قسمت اضافه شد
http://bit.ly/bashscriptt (http://bit.ly/bashscriptt)
-
سلام ممنون آقای صمیمی اگر ادامه بدید ممنون میشم
موفق باشید
-
ویدیوی قسمت نهم اضافه شد
قسمت نهم (http://amirsamimi.mihanblog.com/post/53)
-
ممنون
خوبه به awk و sedم بپردازید.
-
ممنون
خوبه به awk و sedم بپردازید.
حتما انشالله :)
-
سلام
پیشنهاد میکنم به find هم بپردازید
مثلا با find کلی فایل متنی رو بگرده و جایگزین کنه یا فایلها رو بگرده و فایلی که حاوی لغت خاصی هست لیست کنه
-
معین عزیز زحمت کشیدند و بخش ویدیو رو راه اندازی کردند :)
ویدیوها رو میتونید با کیفیت اصلیش از این قسمت (https://videos.ubuntu.ir/) دانلود کنید :)
-
ویدیوی قسمت دهم اضافه شد
ویدیوی قسمت دهم اضافه شد (http://amirsamimi.ir/bash_tutorials/)
-
سلام آقا علی رضا ...
عالیه ... واقعا ترکوندی \\:D/ \\:D/ \\:D/ \\:D/ \\:D/
خیلی دنبال آموزش درست گشتم ک پیدا شد دیگ ;D ;D ;D
-
سلام آقا علی رضا ...
عالیه ... واقعا ترکوندی \\:D/ \\:D/ \\:D/ \\:D/ \\:D/
خیلی دنبال آموزش درست گشتم ک پیدا شد دیگ ;D ;D ;D
مرسی ممنونم از لطفت :)
-
ویدیوهای آموزش بش (قسمت یازدهم اضافه شد) (http://amirsamimi.ir/bash_tutorials/)
-
قسمت یازدهم خیلی زود درست نشد؟
-
سلام
بابت زحمات و وقتی که بابت این ویدئو ها گذاشتید واقعا سپاس گذارم.
ولی کاش یه توضیح مختصری درباره زبان اسکریپت نویسی bash میدادید تا یه پیش زمینه از زبانی که قراره یاد بگیریم داشته باشیم.
مثلا:
این زبان از چه شیوه های برنامه نویسی ای پشتیبانی میکنه؟ شی گرا، تابعی، ساخت یافته و...
یاعلی
-
قسمت اول رو دیدید؟
-
قسمت یازدهم خیلی زود درست نشد؟
چه طور مگه :)
سلام
بابت زحمات و وقتی که بابت این ویدئو ها گذاشتید واقعا سپاس گذارم.
ولی کاش یه توضیح مختصری درباره زبان اسکریپت نویسی bash میدادید تا یه پیش زمینه از زبانی که قراره یاد بگیریم داشته باشیم.
مثلا:
این زبان از چه شیوه های برنامه نویسی ای پشتیبانی میکنه؟ شی گرا، تابعی، ساخت یافته و...
یاعلی
سلام :)
قسمت های اول رو ببینید یه سری اطلاعات پیدا میکنید و برای اطلاعات بیشتر میتونید این لینک رو هم ببینید
https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29
در bash شما میتونید ساخت یافته عمل کنید و البته شی گرا نیست
فرض این بوده که بیننده اطلاعات برنامه نویسی نداره و تازه کار هست و در ویدیوها سعی کردم بیننده تازه کار رو سر در گم نکنم و همه چیز رو سعی کردم به تفصیل و کامل و البته ساده توضیح بدم برای همین اگر تجربه برنامه نویسی دارید توصیه میکنم به منابع تخصصی تری مراجعه کنید که با سرعت بیشتری پیش برید.
موفق باشید :)
-
هیچی فقط دیدم زودتر درست شد گفتم شاید چیزیه
-
ویدیوهای آموزش بش (قسمت دوازدهم اضافه شد) (http://amirsamimi.ir/bash_tutorials/)
-
قبلا دوستی که موسیقی بلد بود آموزشهایی در مورد آن و نرم افزارهای اپن سورس در این زمینه میگذاشتن که نا تموم موند.اگه وقت داشته باشین شما این آموزشها رو بزارین خیلی خوب میشه ::)
-
قبلا دوستی که موسیقی بلد بود آموزشهایی در مورد آن و نرم افزارهای اپن سورس در این زمینه میگذاشتن که نا تموم موند.اگه وقت داشته باشین شما این آموزشها رو بزارین خیلی خوب میشه ::)
انشالله سرم خلوت بشه حتما سراغش میرم و ادامش میدم :)
-
ویدیوی قسمت سیزدهم اضافه شد
ویدیوی قسمت سیزدهم اضافه شد (http://amirsamimi.ir/bash_tutorials/)
-
عالی
(ولی من ویدیوی دومم :oops: )
جادی برای ویدیوهای LPIC یک کتابچه داره که دیگه لازم نیست ما نوت برداریم. نوت برداری از ویدیو سخته. شما هم اگر نوتهای (چرکنویس) رو منتشر کنید، عالی میشه.
-
ویدیوی قسمت چهاردهم اضافه شد
ویدیوی قسمت چهاردهم اضافه شد (http://amirsamimi.ir/bash_tutorials/)
-
سلام آقای امیرصمیمی
ویدیو هاتون خیلی خوبه مخصوصا برای ما تازه کار ها \\:D/
ادامه بدید این آموزش هارو
-
سلام آقای امیرصمیمی
ویدیو هاتون خیلی خوبه مخصوصا برای ما تازه کار ها \\:D/
ادامه بدید این آموزش هارو
ممنون از محبتت :)
ویدیوی قسمت پانزدهم اضافه شد
ویدیوی قسمت پانزدهم اضافه شد (http://amirsamimi.ir/bash_tutorials/)
در این قسمت string manipulation رو توضیح دادم
-
سلام.
مگه
Bourne again shell
همون بش نیست؟
ویدیو دوم.
-
سلام.
مگه
Born again shell
همون بش نیست؟
ویدیو دوم.
Bourne again Shell
-
سلام.
مگه
Bourne again shell
همون بش نیست؟
ویدیو دوم.
بله همینطوره . چه طور مگه :)
لطفا اگه چیزی رو اشتباه گفتم گوشزد کنید که توی توضیحات ویدیو بنویسم
ممنون
-
تو ویدیوی دوم گفتید بش، زد شل ، شل یا بورن اگین شل جواب های متفاوتی می دن.
echo -e "hello \n world"
-
تو ویدیوی دوم گفتید بش، زد شل ، شل یا بورن اگین شل جواب های متفاوتی می دن.
echo -e "hello \n world"
دقت کنید
bourne shell همون sh هست
و bourne again shell همون bash هست