Tạm biệt terminal “lụt nghề”: 10 mẹo khiến đồng nghiệp phải thốt lên “ảo thật đấy!”
Trong thời đại IDE đầy rẫy plugin thông minh, chúng ta – những lập trình viên – vẫn phải sống chung với terminal mỗi ngày. Sau vài ba năm, ai cũng có vài cú “đi vào lòng đất” và vài mẹo nhỏ giúp hiệu suất tăng vọt.

Bài này không nhắc lại mấy thứ cơ bản kiểu ls -la hay cd .., mà chia sẻ 10 mẹo thực chiến thực sự thay đổi workflow của mình – đủ để khiến đồng nghiệp bên cạnh phải ngoái đầu: “Ông làm cái gì mà nhanh vậy?”.
1. Chẩn đoán nhanh xem máy đang “nghẹt” ở đâu
Máy/VM bỗng đơ đơ? Dùng 3 lệnh sau để soi ngay:
Top 10 thư mục ngốn dung lượng nhất (chỉ 1 cấp con) du -ah --max-depth=1 | sort -rh | head -n 10
Top 10 tiến trình ăn CPU nhiều nhất ps aux --sort=-%cpu | head -n 11
Top 10 tiến trình ăn RAM nhiều nhất ps aux --sort=-%mem | head -n 11
text
Nhìn lướt qua là biết nên xử lý file log, rebuild index, hay “tắt hộ” một dịch vụ nào đó.
2. Quản lý môi trường: giao cho công cụ chuyên nghiệp
Ngày xưa, mình hay nhét hết config vào ~/.bashrc / ~/.zshrc:
Cách cũ: tự viết hàm đổi môi trường switch_env() { if [ "$1" = "proj_a" ]; then export DB_HOST="localhost" export DB_PORT="3306" echo "Switched to Project A" elif [ "$1" = "proj_b" ]; then export DB_HOST="127.0.0.1" export DB_PORT="5432" echo "Switched to Project B" fi }
text
Dự án càng nhiều, file cấu hình càng rối, chuyển môi trường nhầm một cái là debug mệt nghỉ.
Giờ thì mình dùng một local dev environment platform duy nhất để lo phần này. Thay vì nhớ lệnh, nhớ biến môi trường, mình chỉ việc:
- Chọn version PHP / Node.js / Python / Go / Rust theo từng project.
- Bật MySQL, PostgreSQL, Redis, MongoDB từ giao diện.
- Mỗi project là một môi trường độc lập, không giẫm chân nhau.
Điểm hay là nền tảng kiểu này còn cho phép install AI with click – tích hợp luôn runtime cho các LLM cục bộ. Vibe coding, code review bằng AI, viết tool nội bộ… đều chạy trên máy mình, không lo rò rỉ dữ liệu và không lệ thuộc cloud.

Từ ngày dùng, mình xoá luôn cả đống hàm shell tự chế; config gọn lại, đầu óc cũng nhẹ hơn hẳn.
3. Network debug: nhẹ nhàng bằng một dòng lệnh
Không phải lúc nào cũng cần mở Postman/Insomnia.
Check port 3306 trên localhost có đang lắng nghe không nc -zv 127.0.0.1 3306
Gửi nhanh một POST request curl -X POST http://localhost:8080/api/v1/users -H "Content-Type: application/json" -d '{"username":"test","role":"admin"}'
text
Dùng trong CI/CD, container hay SSH vào server đều tiện.
4. Di chuyển thư mục như “dịch chuyển tức thời” với pushd / popd
Thay vì cd ../../.. loằng ngoằng, dùng “stack thư mục”:
Đang ở: /Users/me/workspace/project-a/src pushd /etc/nginx/conf.d
→ Nhảy sang thư mục cấu hình Nginx, đồng thời nhớ vị trí cũ Chỉnh sửa gì đó... vim default.conf
Quay lại chỗ cũ: popd
→ Trở về /Users/me/workspace/project-a/src text
Dùng dirs -v để xem danh sách stack; pushd +N để nhảy nhanh tới thư mục đã lưu. Rất hợp khi vừa sửa code, vừa lục log, vừa chỉnh config.
5. Copy file lớn có progress bar cho yên tâm
cp im lặng quá dễ gây hoang mang. Dùng rsync cho “có màu”:
Copy file lớn kèm progress bar rsync -avh --progress source-large-file.zip /path/to/destination/
text
Nếu truyền qua SSH thì gần như “best practice”.
6. Tìm kiếm & đổi tên file: dùng fd + for loop
find mạnh nhưng cú pháp dài như thần chú. fd thì thân thiện hơn:
Cài fd brew install fd # macOS apt install fd-find # Debian/Ubuntu
Tìm file .tsx fd ".tsx$"
Tìm và xoá toàn bộ file .log fd ".log$" --exec rm {}
text
Đổi đuôi hàng loạt:
Đổi tất cả *.jpeg thành *.jpg for img in *.jpeg; do mv "{img%.jpeg}.jpg" done
text
Không cần thêm tool nặng nề, shell là đủ.
7. Lịch sử lệnh “huyền thuật”: !! và !$
Hai ký tự nhỏ cứu bao nhiêu lần gõ lại:
Quên sudo: mkdir /usr/local/my-app
→ Permission denied Sửa cực nhanh: sudo !!
→ sudo mkdir /usr/local/my-app text
Và:
mkdir -p projects/a-very-long/and-nested/project-name
cd !$
→ cd projects/a-very-long/and-nested/project-name touch !$/index.js
→ touch projects/a-very-long/and-nested/project-name/index.js text
!! = cả lệnh trước; !$ = tham số cuối của lệnh trước. Làm quen rồi thì gần như… không muốn đụng phím mũi tên nữa.
8. Quản lý tiến trình & port không còn “bẻ phím”
Không còn combo ps | grep | awk | kill mỗi lần dọn tiến trình:
Kill theo tên pkill -f "gunicorn"
“Mời” toàn bộ Python script rời cuộc chơi pkill -f "python.*.py"
text
Giải phóng port cứng đầu, thêm vào shell config:
free_port() { lsof -i tcp:$1 | grep LISTEN | awk '{print $2}' | xargs kill -9 echo "Port $1 freed" }
Ví dụ: free_port 8000
text
Một lệnh, sạch port.
9. Gắn “ngoại công” cho Git với alias
Trong ~/.gitconfig:
[alias] co = checkout br = branch ci = commit -m st = status -sb lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
text unstage = reset HEAD -- undo = reset --soft HEAD~1 pushup = "!git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)" text
Dọn local branch đã merge:
git branch --merged main | grep -v "*|main|develop" | xargs -n 1 git branch -d
text
Nhánh gọn, đầu óc cũng đỡ rối.
10. Text & JSON: grep + jq là đủ sống
Một vài pattern dùng hàng ngày:
Lấy toàn bộ URL trong log
grep -oE 'https?
/[a-zA-Z0-9./-]+' access.log
(macOS) format JSON trong clipboard pbpaste | jq .
Lấy trường cần thiết từ API curl -s 'https://api.github.com/users/torvalds' | jq '.name, .followers'
text
Sau khi quen jq, gần như bạn sẽ không muốn “mắt thường parse JSON” nữa.
Bonus: Biến thao tác lặp lại thành một từ khoá
Nơi tạo ra khác biệt lớn nhất là ở chỗ: “có thứ gì mình làm đi làm lại mỗi tuần không?”, nếu có, hãy đóng gói nó lại:
Tạo nhanh một project React new_react_project() { npx create-react-app "$1" && cd "$1" git init && git add . git commit -m "🎉 Initial commit" code . }
Backup nhanh thư mục hiện tại (tôn trọng .gitignore) backup() { local fname="backup-$(date +%Y%m%d-%H%M).tar.gz" tar -czvf "$fname" . --exclude-from=.gitignore echo "Đã backup: $fname" }
text
Cho mấy hàm này vào ~/.bashrc hoặc ~/.zshrc, từ đó về sau chỉ cần gõ một lệnh.
Lời kết
Những mẹo trên nhìn qua thì nhỏ, nhưng giống như “phản xạ cơ bắp”: dùng quen rồi, thời gian tiết kiệm được mỗi ngày là rất lớn.
Với combo: terminal tinh gọn + local dev environment platform biết install AI with click, bạn vừa không còn sợ config môi trường, vừa tận dụng được tối đa sức mạnh công cụ. Phần còn lại chỉ là chuyện ý tưởng và… tốc độ gõ phím của bạn thôi.
All rights reserved