
Terminal productivity: Tối ưu hiệu suất làm việc trên Linux/macOS
Terminal là công cụ không thể thiếu cho devops, lập trình viên và quản trị hệ thống. Tuy nhiên, nhiều người chỉ sử dụng terminal ở mức cơ bản, bỏ qua những tính năng mạnh mẽ giúp tăng năng suất đáng kể. Bài viết này chia sẻ các mẹo và công cụ thực tế để bạn trở thành một terminal power user.
1. Sử dụng shell hiện đại: Zsh + Oh My Zsh
Thay vì Bash mặc định, chuyển sang Zsh kết hợp Oh My Zsh mang lại giao diện đẹp, plugin autosuggestion, syntax highlighting và nhiều thème phong phú. Cài đặt đơn giản:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Sau khi cài đặt, bạn sẽ nhận được:
- Autosuggestion: gợi ý lệnh dựa trên lịch sử
- Syntax highlighting: màu lệnh giúp phát hiện lỗi nhanh
- Plugins: git, docker, kubectl, aws, v.v.
- Themes: Powerlevel10k cung cấp prompt đẹp và thông tin chi tiết
2. Tmux: Multiplex terminal như một profi
Tmux cho phép chia terminal thành nhiều panel, tạo session biệt lập và khôi phục công việc sau khi đăng xuất. Các phím tắt quan trọng:
Ctrl+b c: Tạo panel mớiCtrl+b %: Chia dọcCtrl+b ": Chia ngangCtrl+b [: Vào chế độ copy modeCtrl+b d: Đet session (session vẫn chạy ở background)tmux attach -t session_name: Gắn lại session
Kết hợp với Tmux Plugin Manager (TPM) để tự động cài plugin như tmux-resurrect (lưu/restore session) và tmux-yank (synchronize clipboard).
3. Fzf: Finder siêu tốc cho mọi thứ
Fzf là công cụ tìm kiếm fuzzy cho terminal, tích hợp với shell để tìm file, lịch sử lệnh, process, git branch, v.v. trong giây lát. Cài đặt:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install
Sau khi cài đặt, bạn có thể:
Ctrl+r: Tìm lịch sử lệnhAlt+c: Thay đổi thư mục bằng fzfCtrl+t: Chèn đường dẫn file vào lệnh- Trong vim/nvim:
:Files,:Buffers,:Lines
4. Alias và hàm shell thông minh
Đừng lặp lại lệnh dài. Tạo alias trong ~/.zshrc hoặc ~/.bashrc:
# Alias thường dùng
alias ll='ls -la'
alias gs='git status'
alias gp='git push'
alias gcb='git checkout -b'
alias dcu='docker compose up'
alias dcd='docker compose down'
# Hàm sao lưu database nhanh
function dbbackup() {
local db=$1
mysqldump -u root -p "$db" > "$(date +%F)_$db.sql"
}
Hàm shell cho phép truyền tham số và thực hiện logic phức tạp hơn so với alias đơn thuần.
5. Starship: Prompt cross-shell đẹp và nhanh
Nếu bạn muốn một prompt nhất quán giữa Zsh, Bash, Fish, Powershell, hãy thử Starship. Cài đặt qua:
curl -sS https://starship.rs/install.sh | sh
Thêm vào ~/.zshrc:
eval "$(starship init zsh)"
Starship hiển thị thông tin Git, phiên bản ngôn ngữ, thời gian thực thi lệnh, sử dụng CPU/RAM, tudo mà không làm chậm prompt.
6. Direnv: Tự động load biến môi trường theo thư mục
Đôi khi bạn cần thiết lập các biến môi trường khác nhau cho mỗi project. Thay vì export thủ công, dùng direnv để tự động load/unload khi chuyển thư mục:
echo 'export API_KEY="your_key"' > .envrc
direnv allow
Direnv hỗ trợ nhiều ngôn ngữ và framework qua stdlib.
7. Bat: Cat với syntax highlighting và git integration
Thay vì cat thông thường, dùng bat để xem file với syntax highlighting, số dòng và thay đổi git:
bat /etc/passwd
bat --diff file_before.py file_after.py
Bat cũng hỗ trợ thematic và có thể làm pager mặc định cho man.
8. Htop và bottom: Giám sát tiến trình trực quan
Thay vì top, hãy dùng htop hoặc bottom để xem penggunaan CPU, RAM, các tiến trình đang chạy trong giao diện dựa trên curses. Hỗ trợ tìm kiếm, lọc và kết thúc tiến trình trực tiếp từ giao diện。
9. Ngrok: Expose localhost ra internet trong giây lát
Cần chia sẻ web app local với đồng nghiệp hoặc khách hàng? Dùng ngrok để tạo tunnel công khai:
ngrok http 8000
Ngrok cung cấp URL công khai, hỗ trợ inspect trafic và có thể bảo vệ bằng mật khẩu.
10. Asciinema: Ghi lại terminal như một video
Thay vì chụp màn hình hoặc ghi videoDesktop, dùng asciinema để ghi lại terminal session dưới dạng text, dễ chia sẻ và nhúng vào documentation:
asciinema rec demo.cast
# Sau khi finished, upload:
asciinema upload demo.cast
Asciinema files nhỏ, có thể đi kèm với README để minh họa cách sử dụng CLI.
Lời kết
Terminal không chỉ là một dòng đen trắng; nó là một môi trường lập trình đầy tiềm năng. Bằng cách đầu tư thời gian vào việc tối ưu shell, multiplexer, finder và các công cụ hỗ trợ, bạn có thể rút ra hàng giờ mỗi tuần và tập trung vào những việc quan trọng hơn. Hãy bắt đầu với một hoặc hai mẹo từ danh sách trên, dần dần tích hợp vào công việc hàng ngày. Chúc bạn có một terminal thật mạnh mẽ!



