Dù bạn là lập trình viên backend, kỹ sư DevOps hay chỉ thỉnh thoảng phải SSH vào máy chủ để xem log, terminal Linux là công cụ không thể tránh khỏi. Giao diện dòng lệnh thoạt nhìn có vẻ khô khan, nhưng chỉ cần nắm vững một nhóm lệnh cốt lõi là bạn đã xử lý được phần lớn công việc hằng ngày nhanh hơn nhiều so với thao tác bằng giao diện đồ họa. Bài viết này tổng hợp 20 lệnh mà đội ngũ Besoft dùng thường xuyên nhất, chia theo nhóm để dễ ghi nhớ.

Với bất kỳ lệnh nào, bạn có thể xem hướng dẫn đầy đủ bằng man ten-lenh hoặc tóm tắt nhanh bằng ten-lenh --help.

Nhóm điều hướng và thao tác file

1. pwd – đang ở đâu?

In ra đường dẫn đầy đủ của thư mục hiện tại. Rất hữu ích khi vừa SSH vào máy chủ.

2. ls – liệt kê nội dung thư mục

Dùng ls -la để xem cả file ẩn, quyền, chủ sở hữu và kích thước; thêm -h để kích thước hiển thị dễ đọc (KB, MB).

3. cd – chuyển thư mục

cd ~ về thư mục home, cd .. lên một cấp, còn cd - quay lại thư mục vừa ở trước đó.

4. mkdir – tạo thư mục

mkdir -p tạo luôn cả các thư mục cha nếu chưa tồn tại, không báo lỗi nếu thư mục đã có.

5. cp và mv – sao chép, di chuyển

cp -r để sao chép cả thư mục. mv vừa dùng để di chuyển vừa để đổi tên file.

6. rm – xóa file

rm -r xóa thư mục và nội dung bên trong. Trên terminal không có thùng rác, nên hãy kiểm tra kỹ đường dẫn trước khi nhấn Enter, đặc biệt khi dùng kèm -f.

pwd
ls -lah /var/log
mkdir -p ~/projects/demo/src
cp -r config config.bak
mv app.log app-old.log
rm -r ./tmp-build

Nhóm xem và tìm kiếm nội dung

7. cat và less – đọc file

cat in toàn bộ nội dung, phù hợp với file ngắn. Với file dài, dùng less để cuộn, tìm kiếm bằng phím / và thoát bằng q.

8. head và tail – xem đầu hoặc cuối file

tail -n 100 xem 100 dòng cuối. Lệnh tail -f theo dõi file log theo thời gian thực, gần như là phản xạ khi gỡ lỗi ứng dụng trên máy chủ.

9. grep – tìm chuỗi trong file

grep -rn "từ khóa" thư-mục tìm đệ quy và hiển thị số dòng; -i để không phân biệt hoa thường. Kết hợp với dấu | để lọc kết quả của lệnh khác.

10. find – tìm file theo tên, kích thước, thời gian

Ví dụ tìm file log lớn hơn 100 MB, hoặc file được sửa trong một ngày gần đây.

tail -f /var/log/nginx/error.log
grep -rni "timeout" ./logs
find /var/log -name "*.log" -size +100M
find . -type f -mtime -1

Nhóm tài nguyên hệ thống và tiến trình

11. df – dung lượng ổ đĩa

df -h hiển thị dung lượng đã dùng và còn trống của từng phân vùng. Đây là lệnh đầu tiên nên chạy khi ứng dụng báo lỗi không ghi được file.

12. du – dung lượng thư mục

du -sh * cho biết mỗi thư mục con chiếm bao nhiêu, giúp nhanh chóng tìm ra "thủ phạm" làm đầy ổ.

13. free – bộ nhớ RAM

free -h cho biết RAM và swap đã dùng, còn trống và khả dụng.

14. top hoặc htop – theo dõi tiến trình

top có sẵn trên hầu hết bản phân phối. htop (thường phải cài thêm) có giao diện trực quan hơn, hỗ trợ cuộn, lọc và kết thúc tiến trình bằng phím tắt.

15. ps và kill – tìm và dừng tiến trình

ps aux | grep tên để tìm PID của tiến trình, sau đó kill PID để yêu cầu dừng. Chỉ dùng kill -9 khi tiến trình không phản hồi, vì nó buộc dừng ngay mà không cho dọn dẹp.

df -h
du -sh /var/* | sort -h
free -h
ps aux | grep node
kill 12345

Nhóm mạng và kết nối

16. ssh – đăng nhập máy chủ từ xa

ssh user@host kết nối tới máy chủ. Nên dùng khóa SSH thay vì mật khẩu và khai báo các máy chủ hay dùng trong file ~/.ssh/config để gõ ngắn hơn.

17. scp hoặc rsync – chép file qua mạng

scp đơn giản cho vài file. rsync -avz thông minh hơn: chỉ truyền phần thay đổi, phù hợp để đồng bộ thư mục hoặc sao lưu.

18. curl – gửi yêu cầu HTTP

Công cụ không thể thiếu để kiểm tra API, xem header phản hồi hoặc tải file.

ssh deploy@192.168.1.10
rsync -avz ./dist/ deploy@server:/var/www/app/
curl -I https://example.com
curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' http://localhost:3000/api

Nhóm quyền và tiện ích

19. chmod và chown – phân quyền

chmod +x script.sh cấp quyền thực thi cho script. chown user:group file đổi chủ sở hữu, thường cần kèm sudo. Tránh thói quen dùng chmod 777 vì nó mở toàn quyền cho mọi người dùng.

20. history – xem lại lệnh đã gõ

history liệt kê các lệnh trước đó. Kết hợp với Ctrl+R trong Bash để tìm kiếm ngược theo từ khóa, tiết kiệm rất nhiều thời gian gõ lại lệnh dài.

Mẹo nhỏ giúp thao tác nhanh hơn

  • Nhấn Tab để tự hoàn thành tên lệnh và đường dẫn.
  • Dùng !! để chạy lại lệnh vừa gõ, ví dụ sudo !! khi quên quyền quản trị.
  • Dùng && để nối lệnh: lệnh sau chỉ chạy khi lệnh trước thành công.
  • Tạo alias trong ~/.bashrc cho các lệnh dài hay dùng.

Kết luận

Hai mươi lệnh trên bao quát gần như mọi thao tác thường ngày: di chuyển giữa thư mục, xử lý file, đọc log, kiểm tra tài nguyên, làm việc với máy chủ từ xa và phân quyền. Đừng cố học thuộc hết trong một ngày; hãy dùng chúng trong công việc thực tế và tra man khi cần. Chẳng bao lâu, terminal sẽ trở thành công cụ nhanh và quen thuộc nhất của bạn.

Nguồn tham khảo