Phỏng vấn Linux cơ bản: lệnh thường dùng, phân quyền file và tiến trình

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Hầu hết máy chủ chạy ứng dụng web đều dùng Linux, vì vậy lập trình viên backend và DevOps gần như chắc chắn gặp vài câu hỏi về dòng lệnh. Bạn không cần thuộc hàng trăm lệnh, chỉ cần quen với những lệnh dùng hằng ngày và hiểu hệ thống phân quyền.

Điều hướng và quản lý file

pwd                     # thư mục hiện tạils -la                  # liệt kê cả file ẩn, kèm quyềncd /var/www             # đổi thư mụcmkdir -p a/b/c          # tạo thư mục lồng nhaucp -r src backup        # sao chép thư mụcmv cu.txt moi.txt       # đổi tên hoặc di chuyểnrm -r thu-muc           # xóa thư mục, cẩn thậncat file.txt            # xem nội dungtail -f app.log         # theo dõi log theo thời gian thực

Lưu ý nhắc người phỏng vấn rằng bạn thận trọng với lệnh rm -rf, đặc biệt khi dùng cùng biến hoặc đường dẫn dạng ký tự đại diện, vì xóa sai có thể không khôi phục được.

Tìm kiếm và xử lý văn bản

  • grep -rn "loi" /var/log: tìm chuỗi trong nhiều file, hiển thị số dòng.
  • find . -name "*.log" -mtime +7: tìm file log cũ hơn bảy ngày.
  • wc -l file: đếm dòng. sort, uniq -c: sắp xếp và đếm trùng.
  • Toán tử ống | nối đầu ra lệnh này vào đầu vào lệnh khác.
grep "ERROR" app.log | sort | uniq -c | sort -rn | head

Lệnh trên thống kê các dòng lỗi lặp lại nhiều nhất, một ví dụ nhỏ nhưng thể hiện sức mạnh của việc kết hợp lệnh.

Phân quyền file

Khi chạy ls -l, bạn thấy dạng -rwxr-xr--. Ký tự đầu chỉ loại (file hay thư mục), ba nhóm tiếp theo là quyền của chủ sở hữu (owner), nhóm (group) và người khác (others). Mỗi nhóm gồm đọc (r), ghi (w), thực thi (x).

SốQuyền
4Đọc (r)
2Ghi (w)
1Thực thi (x)

Cộng lại để ra quyền mỗi nhóm: chmod 755 script.sh nghĩa là chủ sở hữu đọc, ghi, chạy (7), nhóm và người khác đọc và chạy (5). Đổi chủ sở hữu dùng chown. Tránh lạm dụng chmod 777 vì cho mọi người toàn quyền, là thói quen không an toàn.

Tiến trình và dịch vụ

  • ps aux hoặc top/htop: xem tiến trình và mức dùng CPU, bộ nhớ.
  • kill PID gửi tín hiệu kết thúc nhẹ nhàng, kill -9 PID buộc dừng ngay và chỉ dùng khi cần.
  • systemctl status nginx, systemctl restart nginx: quản lý dịch vụ.
  • journalctl -u nginx: xem log của một dịch vụ.

Đĩa, bộ nhớ và mạng

  • df -h: dung lượng đĩa. du -sh *: dung lượng từng thư mục.
  • free -h: bộ nhớ.
  • ss -tulpn hoặc netstat: cổng đang lắng nghe.
  • curl -I https://example.com: kiểm tra phản hồi HTTP.

SSH và an toàn cơ bản

SSH cho phép đăng nhập máy chủ từ xa an toàn. Nên dùng cặp khóa công khai và riêng tư thay vì mật khẩu, không chia sẻ khóa riêng, tắt đăng nhập root trực tiếp và cập nhật hệ thống thường xuyên. Câu hỏi tình huống hay gặp: "ứng dụng đột ngột ngừng phản hồi, bạn kiểm tra gì?". Hãy trả lời theo trình tự: xem dịch vụ còn chạy không, đọc log gần nhất, kiểm tra dung lượng đĩa và bộ nhớ, kiểm tra cổng và kết nối, rồi mới quyết định khởi động lại.

Quản lý gói và người dùng

Trên họ Debian và Ubuntu, bạn dùng apt update rồi apt install ten-goi; trên họ Red Hat dùng dnf hoặc yum. Hãy biết dùng sudo để chạy lệnh với quyền quản trị khi cần thay vì đăng nhập thẳng bằng root. Với người dùng và nhóm, các lệnh adduser, usermod -aG và file /etc/passwd là kiến thức nền đáng nắm.

Cron và tự động hóa

Cron chạy công việc theo lịch. Chạy crontab -e để chỉnh, mỗi dòng gồm năm trường thời gian rồi đến lệnh.

# chạy sao lưu lúc 2 giờ sáng mỗi ngày0 2 * * * /home/app/backup.sh >> /var/log/backup.log 2>&1

Phần 2>&1 chuyển cả lỗi vào cùng file log, một chi tiết nhỏ nhưng cho thấy bạn đã dùng thật. Bạn cũng có thể nhắc đến việc viết script shell với quy tắc kiểm tra lỗi, ví dụ dùng set -e để dừng khi có lệnh thất bại.

Kết luận

Hãy tập dùng dòng lệnh cho công việc hằng ngày, thuê một máy chủ nhỏ hoặc chạy máy ảo để thử cài đặt, cấu hình và xem log. Sự quen tay đó thể hiện ngay trong cách bạn trả lời.

Nếu bạn muốn làm quen Linux và triển khai ứng dụng thật, các khóa học tại codebem.com có thể giúp bạn bắt đầu.

author_photo
Nguyễn Đình Cường

0 comment