Skip to content
Thuan Bui's Blog
Go back

Lên đời Terminal với Zsh và Oh My Zsh

Updated:

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.

I. Cài đặt Zsh

Mình cài đặt Zsh trên EndeavourOS bằng lệnh sau

yay -S zsh

Còn bên Ubuntu / Debian thì dùng apt

apt install zsh

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.

Terminal window
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 ---

Để 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

Bash
Bash
Zsh
Zsh

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

Terminal window
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

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.

Terminal window
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
~

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:

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

Terminal window
sudo nano ~/.zshrc

Tìm đến dòng plugins = () và sửa lại như sau

Terminal window
plugins=(
git
docker
docker-compose
history
rsync
safe-paste
)

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

Terminal window
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

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

Terminal window
plugins=(
git
docker
docker-compose
history
rsync
safe-paste
zsh-autosuggestions
)

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

Terminal window
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

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

Terminal window
plugins=(
git
docker
docker-compose
history
rsync
safe-paste
zsh-autosuggestions
zsh-syntax-highlighting
)

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"

Lưu lại, thoát ra và mở Terminal mới. Giao diện Strug sẽ hiện ra như sau.

Giao diện Strug của Oh My Zsh
Giao diện Strug của Oh My Zsh

Terminal giờ nhìn chuyên nghiệp, ra dáng hacker hơn hẳn.


Share this post on:

Previous Post
Khắc phục lỗi UFW không hoạt động khi sử dụng Docker
Next Post
Cập nhật IP động cho tên miền qua CloudFlare để truy cập homelab tại nhà