در این مقاله سعی دارم در مورد قابلیت های ZSH و چگونگی سوار کردن آن بر روی Terminal یا Shell موجود بر روی سیستم عامل های Unix Like با شما صحبت کنم.

هدف من از نوشتن این مقاله این است که کارکردن با Terminal را برایتان ساده تر و جذاب تر کنم. من به حدی از ZSH راضی هستم که بر روی هر سیستم Unix Like خود, آن را نصب کرده ام. به گونه ای که بر روی VPS, Raspberry pi, Laptop , PC شخصی ام ،( بعد از نصب Nginx و GIT ) همیشه ZSH را بر رویشان نصب کرده ام. چون به جز آن از هیچ پوسته یا شلی نمی توانم استفاده کنم (مخصوصاً Bash).

اگر معنا و مفهوم Shell را نمی دانید به شما پیشنهاد می کنم مقاله دیگری از بنده با عنوان «انتخاب هوشمندانه یک سیستم عامل برای یک برنامه نویس» را که در همین سایت ارائه شده را دنبال کنید تا به مفهوم Shell بیشتر پی ببرید. اما در جمله ای کوتاه ' به برنامه ای که از طریق فرامین می توان به سیستم عامل دسترسی داشت را Shell می گویند.'

ZSH چیست؟

Z-Shell یا ZSH یک پوسته برای Shell های موجود بر روی سیستم های یونیکسی است که تعامل بین ما و شل را ممکن می سازد و وضیفه ترجمه و تفسیر شِل اسکریپت ها را نیز بر عهده دارد. این پوسته در سال ۱۹۹۰ میلادی برای اولین بار توسط فردی به اسم Paul Falstad ارائه شد. ZSH را با زبان C نوشته و توسعه داده اند.

این پوسته با امکان هر چه مدرن تر شدن شِل شما، این امکان را به شما می دهد تا آن را شخصی سازی کنید. تمام تنظیمات ZSH در فایلی به اسم .zshrc قرار دارد که دستوراتی بسیار ساده و قابل فهم دارد.

ZSH به شما کمک می کند تا command هایتان را با سرعت و دقت بیشتری بر روی شل بنویسید .این پوسته تمامی دستورات مورد استفاده شما را نیز جداگانه و به اختیارتان ذخیره می سازد.

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

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

این پوسته دارای Theme ها و ظواهر آماده نیز هست که آن ها را نیز به راحتی می توان شخصی سازی کرد . معروف ترین آن ها Oh My Zsh است که به شدت توانسته با امکانات و ظواهر زیبا خیلی از کاربران را با خود ZSH آشنا کند.

Oh My Zsh دقیقاً چیزی است که من را مجاب کرده تا از خود ZSH استفاده کنم و در این مقاله بعد از نصب ZSH به نصب آن نیز می پردازیم .

نصب ZSH

قبل از نصب ZSH باید بگویم مطمئن شوید GIT بر روی سیستمتان نصب است . چون در ادامه به آن نیاز پیدا خواهیم کرد (برای نصب و آشنایی با GIT درسی کامل در ParsClick موجود است).

ZSH را بر روی تمامی سیستم عامل های Unix Like می توان نصب کرد که ما آن را فقط بر روی GNU/Linux و Mac OS X نصب خواهیم کرد.

نصب ZSH بر روی لینوکس به طور کلی ZSH و بیشتر نرم افزارها در لینوکس به چند شکل نصب می شوند که من ZSH را از دو روش نصب خواهم کرد .

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

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

Arch Linux / Manajaro

sudo pacman -S zsh
Debian / Ubuntu / Linux Mint

sudo apt-get install zsh
Fedora / CentOS

sudo yum install zsh

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

ابتدا فایل را دانلود کنید:

wget http://netcologne.dl.sourceforge.net/project/zsh/zsh/5.2/zsh-5.2.tar.gz

سپس آن را از حالت زیپ خارج کرده:

tar -zxvf zsh-5.2.tar.gz 

وارد پوشه ایجاد شده شوید:

cd zsh-5.2

سپس آن را نصب کنید:

./configure && make && sudo make install

تمام نرم افزارها در این ( /usr/local/bin/ یا /usr/bin/ ) آدرس ها نصب می شوند که به نظر من برای فهمیدن محل صحیح و حتی مطمئن شدن از نصب ZSH می توان از این کامند ها استفاده کرد.

/usr/local/bin/zsh --version
/usr/bin/zsh --version

هر کدام بدون هیچ خطائی ورژن ZSH را نمایش داد، بدان معنی است که در آن جا نصب شده.

برای استفاده از ZSH باید آدرس محل استقرار آن را در این محل /etc/shells اضافه کنیم که من یکی از آن آدرس ها را که بدون مشگل بود را استفاده کردم و شما نیز آدرس صحیح خود را جایگزین کنید( توجه داشته باشید که در اندکی از توزیع ها شاید حرف S از آخر این فایل حذف شده باشد که برای فهمیدن صحت آن از دستور find /etc/shell || find /etc/shells استفاده می کنیم.):

echo 'usr/local/bin/zsh' | sudo tee -a /etc/`shell`s

پیشفرض سازی ZSH در لینوکس

برای اجرای هر نرم افزار در ترمینال باید با نوشتن نامش آن را صدا و اجرا کرد که ZSH هم از آن مستثنی نیست.

اما عموماً ZSH را به شکل همیشگی به جای Bash استفاده می کنند و ما اگر بخواهم ZSH همیشه بر روی Shell ما سوار شود باید از دستور زیر استفاده کنیم:

chsh -s $(which zsh)

پس از یک بار باز و بسته کردن Terminal و یا reboot سیستم می توانید آن را مشاهده نمایید.

نصب ZSH بر روی MAC

برای نصب کردن ZSH بدون هیچ نگرانی می توانید از دستور زیر استفاده کنید:

brew install zsh zsh-completions

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

پیشفرض سازی ZSH در MAC

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

chsh -s /bin/zsh

این کار را بدون استفاده از کامندلاین هم می توان انجام داد و آن هم استفاده از تنظیمات iTerm است. شما باید به مسیر زیر بروید :

iTerm -> Preferences -> Profiles Tab -> General

و در بخش command دستور زیر را وارد کنید:

 /bin/zsh --login

نصب Oh My Zsh

برای نصب Oh My Zsh می توان از دو روش استفاده کرد:

روش اول( استفاده از فایل قابل نصب ):

sh -c '$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)'
exit

روش دوم ( استفاده از GIT که روش پیشنهادی من به شماست ):

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
exit

چگونه از امکانات Oh My Zsh استفاده کنیم؟

همانگونه که قبلاً عرض کردم Oh My Zsh امکانات و Theme های متعددی دارد که قابل شخصی سازی نیز هستند.

تمام تنظیمات ZSH در فایل مخفی به نام .zshrc است که قبلاً نیز به آن اشاره داشته ام.

وقتی Oh My Zsh را نصب می کنید یک سری تنظیمات به این فایل افزوده می شود که Plugin ها و Theme مورد استفاده در ZSH هم در آن افزوده می شود.

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

cat ~/.zshrc

اما اگر بخواهیم آن را دچار تغییر کنیم، باید با یک Text editor آن را باز کنیم( تکس ادیتری که در تمامی سیستم های Unix Like وجود دارد vi نام دارد و من در اینجا از آن استفاده می کنم‌. اما اگر Sublime Text دارید می توانید از آن نیز استفاده کنید ):

vi ~/.zshrc

حالا اگر به فرض مثال بخواهیم Theme را در آن عوض کنیم باید به دنبال خطی حاوی این ZSH_THEME='robbyrussell' دستور بگردیم و آن را با Theme های دیگری که همراه با Oh My Zsh نصب شده می توان تغییر داد. برای راحت تر پیدا کردن ظاهر و اسم Theme ها باید به این آدرس سر زد و منتخب را با اسم میان دابل کوتیشن جایگزین کرد.

همچنین اگر پلاگین خاصی مد نظرتان است می توانید با انتخاب هر کدام از پلاگین های موجود در دایرکتری ~/.oh-my-zsh/plugins/ می توان از امکانات آن بهره مند شد. برای مثال اگر من بخواهم پلاگین Rails را به خدمت بگیرم، از روش زیر استفاده می کنم:

# Add wisely, as too many plugins slow down shell startup.
plugins=(rails)

سخن آخر

امیدوارم تونسته باشم با ارائه این مقاله یه دستی به سر گوش Shell شما کشیده باشم.

در این مقاله سعی کردم از دستورات مختلف command line استفاده کنم تا به این بهانه کسانی که آشنایی کافی در این رابطه ندارند را بیشتر کمک کرده باشم . به هر حال امید وارم تونسته باشم شما رو به استفاده از Terminal ترقیب کنم.

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

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