Trước giờ sử dụng MacOS hay Linux mình chỉ biết đến Bash – trình quản lý dòng lệnh mặc định của hệ thống. Gần đây tìm hiểu mới biết thêm về Zsh cùng sự tiện lợi và linh hoạt của nó so với Bash.
Bài viết này mình tổng hợp lại cách cài đặt và cấu hình Zsh, để dành tham khảo lại khi cần.
Mục Lục
I. Cài đặt Zsh
Mình cài đặt Zsh trên EndeavourOS bằng lệnh sau
yay -S zsh
Code language: Nginx (nginx)
Còn bên Ubuntu / Debian thì dùng apt
apt install zsh
Code language: Nginx (nginx)
Sau khi cài xong, mở Terminal lên và gõ zsh
. Trong lần truy cập đầu tiên, zsh sẽ yêu cầu thiết lập cấu hình. Chọn 0
và Enter.
This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
--- Type one of the keys in parentheses ---
Code language: Dockerfile (dockerfile)
Để chuyển từ Bash qua Zsh, nhập zsh
vào Terminal và bấm Enter. Bạn sẽ thấy giao diện thay đổi như bên dưới
II. Cài đặt Oh My Zsh
Oh My Zsh là bộ công cụ mở rộng không thể thiếu khi sử dụng Zsh, giúp bổ sung tính năng và sự linh hoạt.
Cài đặt Oh My Zsh bằng dòng lệnh sau
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Code language: Bash (bash)
Trong quá trình cài đặt, nó sẽ hỏi bạn có muốn chọn zsh làm trình quản ly shell mặc định: Do you want to change your default shell to zsh? [Y/n]
. Bấm Y
và Enter để xác nhận.
Cloning Oh My Zsh...
remote: Enumerating objects: 1280, done.
remote: Counting objects: 100% (1280/1280), done.
remote: Compressing objects: 100% (1234/1234), done.
remote: Total 1280 (delta 27), reused 1181 (delta 26), pack-reused 0
Receiving objects: 100% (1280/1280), 1.07 MiB | 1.54 MiB/s, done.
Resolving deltas: 100% (27/27), done.
From https://github.com/ohmyzsh/ohmyzsh
* [new branch] master -> origin/master
branch 'master' set up to track 'origin/master'.
Already on 'master'
/home/thuanbui
Looking for an existing zsh config...
Found ~/.zshrc. Backing up to /home/thuanbui/.zshrc.pre-oh-my-zsh
Using the Oh My Zsh template file and adding it to ~/.zshrc.
Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] Y
Changing your shell to /usr/bin/zsh...
[sudo] password for thuanbui:
Changing shell for thuanbui.
Shell changed.
Shell successfully changed to '/usr/bin/zsh'.
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Before you scream Oh My Zsh! look over the `.zshrc` file to select plugins, themes, and options.
• Follow us on Twitter: @ohmyzsh
• Join our Discord community: Discord server
• Get stickers, t-shirts, coffee mugs and more: Planet Argon Shop
➜ ~
Code language: YAML (yaml)
Sau khi cài đặt xong, tắt và mở lại Terminal, bạn sẽ thấy giao diện con trỏ thay đổi như bên dưới
Một số tính năng tiện lợi mình tận dụng ngay sau khi cài đặt Zsh và Oh My Zsh:
- Gõ trực tiếp tên thư mục để truy cập, ví dụ
Music
, không cần phải gõcd Music
như khi dùng Bash - Có thêm lệnh
...
hay....
để truy cập ngược lên các tầng thư mục ở trên. Mỗi chấm.
tương ứng với 1 tầng. - Có thể bấm Tab trong khi gõ lệnh để lựa chọn thông số, rất tiện lợi.
- Có thể cài thêm plugin để bổ sung tính năng và cài theme để thay đổi giao diện.
III. Cài đặt plugins
Oh My Zsh đi kèm theo hơn 200 plugins để mở rộng tính năng cho Zsh (xem danh sách). Tuy nhiên, mặc định tất cả plugin đều đang bị tắt, cần phải kích hoạt bằng bằng tay bằng cách thay đổi nội dung cấu hình trong file .zshrc
1. Chỉnh sửa file .zshrc
Tất cả cấu hình của Zsh được lưu trong file .zshrc
nằm trong thư mục home của tài khoản. Để kích hoạt plugin, cần phải chỉnh sửa file này
sudo nano ~/.zshrc
Code language: Nginx (nginx)
Tìm đến dòng plugins = ()
và sửa lại như sau
plugins=(
git
docker
docker-compose
history
rsync
safe-paste
)
Code language: Bash (bash)
Mình chọn kích hoạt 6 plugin: git, docker, docker-compose, history, rsync và safe-paste. Mỗi tên plugin cần phải cách nhau bằng khoảng trắng hoặc xuống dòng, không được sử dụng dấu ,
hay -
để ngăn cách.
3. Cài đặt zsh-autosuggestions
Plugin này bổ sung tính năng gợi ý tự động khi gõ lệnh, dựa vào lịch sử sử dụng trước đó.
Cài đặt zsh-autosuggestions bằng lệnh sau
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Code language: Nginx (nginx)
Tiếp theo, kích hoạt bằng cách chỉnh sửa lại file .zshrc
, bổ sung thêm dòng zsh-autosuggestions
plugins=(
git
docker
docker-compose
history
rsync
safe-paste
zsh-autosuggestions
)
Code language: Bash (bash)
3. Cài đặt zsh-syntax-highlighting
zsh-syntax-highlighting là một plugin hữu ích khác của zsh giúp hiển thị mã màu trong khi dòng lệnh. Nhờ vậy, chúng ta có thể nhanh chóng nhận ra lỗi trong khi gõ lệnh.
Cài đặt bằng lệnh sau
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Code language: Nginx (nginx)
Tiếp theo, kích hoạt bằng cách chỉnh sửa lại file .zshrc
, bổ sung thêm dòng zzsh-syntax-highlighting
plugins=(
git
docker
docker-compose
history
rsync
safe-paste
zsh-autosuggestions
zsh-syntax-highlighting
)
Code language: Bash (bash)
IV. Cài đặt themes
Oh My Zsh đi kèm theo rất nhiều theme để bạn chọn lựa (xem danh sách). Theme mặc định của Oh My Zsh là RobbyRussell.
Bạn có thể đổi qua theme khác bằng cách chỉnh sửa file dòng ZSH_THEME="robbyrussell"
trong file .zshrc
ZSH_THEME="strug"
Code language: JavaScript (javascript)
Lưu lại, thoát ra và mở Terminal mới. Giao diện Strug sẽ hiện ra như sau.
Terminal giờ nhìn chuyên nghiệp, ra dáng hacker hơn hẳn.
[convertkit form=7087807]
Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!