DevOps yêu cầu kỹ năng sử dụng Linux thành thạo vì hầu hết các máy chủ, container, và hệ thống CI/CD đều chạy trên nền tảng Linux. Bài viết này giới thiệu những tập lệnh Linux cơ bản và quan trọng mà bất kỳ DevOps engineer nào cũng cần nắm vững.
—
1. Quản lý thư mục và tệp
### **1.1. Các lệnh quản lý thư mục**
– `pwd`: Hiển thị đường dẫn thư mục hiện tại.
– `ls`: Liệt kê các tệp và thư mục.
– Thêm `-l` để hiển thị chi tiết, `-a` để hiển thị cả tệp ẩn.
“`bash
ls -la
“`
– `cd <thư_mục>`: Chuyển tới thư mục.
– `mkdir <tên_thư_mục>`: Tạo thư mục mới.
– `rmdir <tên_thư_mục>`: Xóa thư mục rỗng.
### **1.2. Các lệnh quản lý tệp**
– `touch <tên_tệp>`: Tạo tệp trống.
– `cp <tệp_nguồn> <tệp_đích>`: Sao chép tệp.
– `mv <tệp_nguồn> <tệp_đích>`: Di chuyển hoặc đổi tên tệp.
– `rm <tệp>`: Xóa tệp.
– Thêm `-r` để xóa thư mục và nội dung bên trong.
—
## **2. Xem và chỉnh sửa nội dung tệp**
– `cat <tệp>`: Hiển thị nội dung tệp.
– `less <tệp>`: Hiển thị nội dung tệp từng trang (thoát bằng phím `q`).
– `head -n <số_dòng> <tệp>`: Hiển thị số dòng đầu tiên của tệp.
– `tail -n <số_dòng> <tệp>`: Hiển thị số dòng cuối cùng của tệp.
– Thêm `-f` để theo dõi nội dung thay đổi theo thời gian thực (rất hữu ích khi xem log).
– `nano <tệp>` hoặc `vim <tệp>`: Chỉnh sửa nội dung tệp trong terminal.
—
## **3. Quản lý quy trình (Processes)**
– `ps`: Liệt kê các tiến trình đang chạy.
– Dùng `ps aux` để hiển thị toàn bộ tiến trình.
– `top`: Hiển thị thông tin chi tiết về các tiến trình (thoát bằng phím `q`).
– `htop`: Phiên bản thân thiện hơn của `top`.
– `kill <PID>`: Kết thúc một tiến trình (PID là Process ID).
– `kill -9 <PID>`: Buộc kết thúc tiến trình.
– `jobs`: Hiển thị danh sách các công việc nền.
– `bg <job_id>`: Tiếp tục chạy một công việc trong nền.
– `fg <job_id>`: Chuyển công việc nền ra chạy ở foreground.
—
## **4. Quản lý người dùng và quyền**
– `whoami`: Xem bạn đang đăng nhập dưới người dùng nào.
– `id`: Hiển thị thông tin về người dùng và nhóm.
– `chmod <quyền> <tệp>`: Thay đổi quyền tệp.
– Ví dụ: `chmod 755 file.sh` (chỉ định quyền đọc, ghi, thực thi).
– `chown <user>:<group> <tệp>`: Thay đổi quyền sở hữu tệp.
– `sudo <lệnh>`: Chạy lệnh với quyền root.
—
## **5. Kết nối mạng**
– `ping <địa_chỉ>`: Kiểm tra kết nối mạng tới địa chỉ (IP hoặc tên miền).
– `curl <URL>`: Gửi yêu cầu HTTP và hiển thị phản hồi.
– `wget <URL>`: Tải tệp từ URL.
– `ifconfig` hoặc `ip addr`: Hiển thị cấu hình mạng.
– `netstat -tuln`: Liệt kê các cổng mạng đang mở.
– `ssh <user>@<host>`: Kết nối tới máy chủ từ xa qua SSH.
—
## **6. Nén và giải nén tệp**
– `tar -cvf <tên_tệp.tar> <thư_mục>`: Nén thư mục thành tệp `.tar`.
– `tar -xvf <tên_tệp.tar>`: Giải nén tệp `.tar`.
– `gzip <tên_tệp>`: Nén tệp thành `.gz`.
– `gunzip <tên_tệp.gz>`: Giải nén tệp `.gz`.
– `zip -r <tên_tệp.zip> <thư_mục>`: Nén thư mục thành `.zip`.
– `unzip <tên_tệp.zip>`: Giải nén tệp `.zip`.
—
## **7. Quản lý gói phần mềm**
### **7.1. Trên Ubuntu/Debian**
– `apt update`: Cập nhật danh sách gói.
– `apt install <gói>`: Cài đặt gói.
– `apt remove <gói>`: Gỡ cài đặt gói.
### **7.2. Trên CentOS/RHEL**
– `yum update`: Cập nhật danh sách gói.
– `yum install <gói>`: Cài đặt gói.
– `yum remove <gói>`: Gỡ cài đặt gói.
—
## **8. Lập lịch và tự động hóa**
– `crontab -e`: Mở trình soạn thảo cron để lên lịch công việc.
– Ví dụ: Chạy script mỗi ngày vào 12h trưa:
“`bash
0 12 * * * /path/to/script.sh
“`
– `at <time>`: Lên lịch một công việc một lần duy nhất.
– Ví dụ:
“`bash
at now + 5 minutes
“`
—
## **9. Giám sát log hệ thống**
– `dmesg`: Hiển thị log kernel.
– `journalctl`: Xem log của systemd.
– `tail -f /var/log/syslog`: Theo dõi log hệ thống theo thời gian thực.
—
## **10. Các lệnh hữu ích khác**
– `alias`: Tạo bí danh cho lệnh.
“`bash
alias ll=”ls -la”
“`
– `df -h`: Hiển thị dung lượng đĩa đã sử dụng.
– `du -sh <thư_mục>`: Kiểm tra dung lượng thư mục.
– `uptime`: Kiểm tra thời gian máy đã hoạt động.
– `who`: Hiển thị danh sách người dùng đang đăng nhập.
—
## **Lời kết**
Những tập lệnh Linux cơ bản trên là bước khởi đầu quan trọng cho bất kỳ DevOps engineer nào. Bạn nên thường xuyên thực hành để thành thạo việc quản lý hệ thống và tự động hóa quy trình. Hãy bắt đầu bằng cách cài đặt một máy ảo Linux hoặc sử dụng WSL (Windows Subsystem for Linux) trên Windows để thực hành ngay hôm nay!