سلام!
امیدوارم که از مطلب جلسه قبل خوشتون اومده باشه، توی قسمت قبل به معرفی Tmux پرداختیم و گفتیم که هدفمون در کُلِ این سری از پستها این هست که بتونیم یک محیط توسعه خیلی خلاقانه و دوست داشتنی تحت خط فرمان (همون کامند-لاین) داشته باشیم. این قسمت میخواهیم به معرفی یه شلِ خیلی خوب بپردازیم.
وقتی شما دارید توی ترمینال کار می کنید، دستوراتی رو که وارد میکنید توسط یک مفسری دارن اجرا میشن که به اون شل گفته میشه، شل دستورات شما رو میگیره و اجرا میکنه و حاصل و خروجی اون رو به شما نشون میده. برای اینکه بفهمید الان دارید از چه شلی استفاده می کنید کافیه ترمینالتون رو باز کنید و مقدار متغیر محیطی SHELL رو چاپ کنید:
echo $SHELL # Print your current Shell, like /bin/bash for example
امروزه تو اکثر سیستم های گنو/لینوکسی دو تا شل خیلی معروف وجود داره. اولی Bourne shell هست که تو ایران ما بیشتر به sh (بخونید اس ایچ) می شناسیم و دومی Bash.
هر کاربر میتونه توی سیستم عامل گنو/لینوکس مشخص کنه که دوس داره از چه شلِی استفاده کنه، اما چی میشه که یک کاربر تصمیم میگیره شل اش رو عوض کنه؟ قطعاً برای دسترسی به امکانات بیشتر و راحتتر کار کردن تو ترمینال.
زی شل (زد شل هم درسته، تلفظ امریکاییش میشه zee shell) خودش رو یک بَشِ توسعه یافته معرفی میکنه که خیلی از ویژگیهای خوب شِلهای دیگه مثل tsh، ksh رو هم توی خودش داره.
sudo apt-get install zsh
برای اینکه بتونید با این شِل کار کنید، کافیه تو خط فرمان تایپ کنید zsh اون به صورت موقت شِلِ شما به زیشِل تغییر پیدا میکنه، اما خب تفاوتهای اولیهای که میشه راجعبهشون صحبت کرد:
قطعاً نه! یه چیز باحال دیگه که مونده Oh my zsh هست. Ohmyzsh در حقیقت کلی اسکریپت، تمها و پلاگین های مختلف و باحالیه که واسه زیشِل نوشته شدن و با اضافه کردن اونا کار کردن با ابزارهای دیگه، علاوه بر خود شل، راحتتر میشه.
مثل همیشه اولین قدم نصب اونه (قبلش یادتون باشه حتما باید git رو نصب کنید):
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
این دستور شروع میکنه همه فایل های لازم رو توی Home directory کاربر فعلی اضافه میکنه، در حقیقت توی فایل کانفیگ زیشِل که یک فایلِ به اسم zshrc. کدی نوشته که میگه تنظیمات و پلاگینهای Ohmyzsh هم توی زیشِل لود بشن.
حالا کافیه یه بار دیگه Zsh رو اجرا کنید توی ترمینال تا تنظمیات جدید لود بشه و چیزی شبیه پایین باید ببینید:
زی شِل promtهای مختلفی داره که اینجا میتونید همه رو اینجا ببینید و هر کدوم رو که خوشتون اومد توی فایلِ zshrc. درون متغییر ZSH_THEME بنویسید.
فریمورک Ohmyzsh پلاگینهای مختلفی داره که هر پلاگین در حقیقت مجموعهای از Aliasها هست که قرارِ کار رو برای ما راحتتر کنه. مثلاً اگه پلاگین گیت رو فعال کنید، به جای اینکه هی بنویسید:
git log --oneline --decorate --graph --all
میتونید بجاش بنویسید gloga خیلی شیک و مجلسیترم هست.
پلاگینها توی مسیر
~/.oh-my-zsh/plugins
قرار گرفتن و انتظار میره هر کدوم یه فایل readme.md بغلشون باشه که توضیح بده قرار چه کاری انجام بدن.
اینجا میتونید لیستی از پلاگینها و توضیحات هر کدوم پیدا کنید. توصیه من اینه با هر چیزی که کار میکنید گیت، پایتون، اوبونتو، داکر و ... سعی کنید پلاگین اون رو فعال کنید یه بررسی اولیه انجام بدید، شاید کار روزمرهتون رو راحتتر کرد.
اگه از زیشِل و داستاناش خوشتون اومده و میخواید شلِ پیش فرضتون باشه با دستور زیر میتونید این کارو انجام بدید:
chsh -s /usr/bin/zsh
http://reasoniamhere.com/2014/01/11/outrageously-useful-tips-to-master-your-z-shell/
https://hackernoon.com/oh-my-zsh-made-for-cli-lovers-bea538d42ec1
حتماً دو پلاگین Zsh-syntax-highlighting و Colored-man-pages که تو لینک بالا توضیح داده امتحان کنید.