Nếu bạn là người đã quen dùng ứng dụng desktop khi chuyển sang dùng terminal (console), hẳn bạn sẽ rất khó chịu vì màn hình terminal toàn text, nền đen, chữ trắng xám đơn điệu, không còn chuột bấm kéo thả. Tuy nhiên ứng dụng terminal lại không thể thiếu đối với lập trình web back end hay triển khai devops. Bài viết này tôi giới thiệu Zsh, OhMyZsh và Powerlevel10k: tổ hợp 3 phần mềm giúp terminal đẹp hơn, hữu ích hơn.
Zsh là gì
Zsh là thư viện xử lý các lệnh gõ vào terminal bao gồm cả ngôn ngữ kịch bản. Trước zsh còn có bash, ash... Zsh có những cải tiến sau đây:
- Rút gọn lệnh chuyển thư mục. Trước đây bạn phải gõ
cd directory
nay chỉ cần códirectory
. Hay..
lùi ra 1 cấp thư mục,...
lùi ra 2 cấp thư mục. - Tự động hoàn thành nốt khi người dùng gõ lệnh (auto completion)
- Cú pháp so sánh matching linh hoạt:
**
match với nhiều thư mục,|
match điều kiện OR, ~^ loại trừ. - Bổ xung các plugins để thêm chức năng cho Zsh shell
- Tạo alias để gõ lệnh tắt. Ví dụ thay
docker-compose
bằngdc
, thayvagrant
bằngv
, khởi động Visual Studio Code từ terminal.. - ....
OhMyZsh là gì?
OhMyZsh là thư viện chạy trên Zsh mở rộng thêm các plugins, themes, cấu hình...
- Danh sách các plugins trên OhMyZsh. Các plugins này thường hỗ trợ auto-completion: hiểu được ý đồ người dùng từ đó đưa ra gợi ý sát thực nhất.
- Danh sách các themes trên OhMyZsh
Ngoài OhMyZsh còn có FishShell. Điểm khác biệt FishShell bao gồm cả thư viện Shell và chức năng bổ xung plugins, chọn themes. Có nghĩa FishShell tương đương với Zsh kết hợp với OhMyZsh. FishShell có nhiều điểm rất mạnh tuy nhiên cú pháp của nó không tương thích với Bash Shell (vốn là mặc định trên các hệ điều hành Linux). Còn Zsh thì tương thích 100% với Bash Shell và chỉ mở rộng thêm. Điều này giúp bạn không bị lúng túng khi chạy một đoạn mã Bash script trên Zsh.
Powerlevel10k
Theme trong terminal không hẳn chỉ thay đổi màu sắc để bớt đơn điệu mà nó giúp cho người dùng có nhiều thông tin hơn thông qua màu sắc, ký tự đặc biệt. Ví dụ khi vào một thư mục quản lý phiên bản bằng git cần hiển thị branch, số file bị sửa đổi
Màn hình terminal căn bản
Cấu hình PowerLevel10k bằng lệnh p10k configure
File cấu hình OhMyZsh ~/.zshrc
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
export GOPATH=$HOME/golang
export GOROOT=/usr/local/go
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# Path to your oh-my-zsh installation.
export ZSH="/Users/techmaster/.oh-my-zsh"
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
ZSH_THEME="powerlevel10k/powerlevel10k"
source ~/.oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme
POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last
plugins=(
git
zsh-autosuggestions
)
source $ZSH/oh-my-zsh.sh
# Bổ xung tính năng gợi ý như fish
# https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
# You may need to manually set your language environment
export LANG=en_US.UTF-8
alias cl="clear"
alias code="/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code $argv"
alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl $argv"
alias brewup="brew update; brew upgrade; brew cleanup; brew doctor"
alias lc="clear; ls"
alias v="vagrant"
alias dc="docker-compose"
# Advanced Aliases.
# ls, the common ones I use a lot shortened for rapid fire usage
alias l='ls -lFh' #size,show type,human readable
alias ldot='ls -ld .*'
alias lrt='ls -1Fcrt'
alias zshrc='nano ~/.zshrc' # Quick access to the ~/.zshrc file
alias grep='grep --color'
alias t='tail -f'
alias h='history'
alias p='ps -f'
alias pip='noglob pip'
export PATH="/usr/local/sbin:$PATH"
# Changes the ulimit limits.
ulimit -n 8192
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/techmaster/.sdkman"
[[ -s "/Users/techmaster/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/techmaster/.sdkman/bin/sdkman-init.sh"
File cấu hình ~/.p10k.zsh cho PowerLevel10k
Một lựa chọn phổ biến là rút ngắn thư mục lại
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last
Bình luận