در این مقاله سعی دارم در مورد قابلیت های 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
در سیستم شخصی ام