Trong thế giới DevOps, Linux không chỉ là một hệ điều hành—mà còn là một kỹ năng nền. Dù bạn đang triển khai ứng dụng, quản lý hạ tầng hay gỡ lỗi sự cố, các lệnh Linux là công cụ đắc lực.
Trong bài viết này, chúng tôi sẽ đề cập đến các lệnh Linux thiết yếu mà mọi kỹ sư DevOps nên biết để hoàn thành xuất sắc vai trò của mình.
1. Quản lý tập tin và thư mục
Quản lý tệp và thư mục là một nhiệm vụ cơ bản trong bất kỳ môi trường dựa trên Linux nào. Các lệnh này cho phép bạn điều hướng, tạo, xóa và quản lý tệp và thư mục một cách hiệu quả.
ls
- Lệnh này giúp liệt kê các tệp và thư mục trong thư mục hiện tại.
ls -la
Trong đó:
- -l: Định dạng danh sách dài.
- -a: Bao gồm các tập tin ẩn.
cd
- Lệnh này giúp thay đổi thư mục hiện tại.
cd /var/log
mkdir
- Lệnh này giúp tạo một thư mục mới.
mkdir project
rm
- Lệnh này giúp xóa các tệp hoặc thư mục.
rm -rf project
Trong đó:
- -r: Đệ quy (dùng cho thư mục).
- -f: Buộc xóa mà không cần nhắc nhở.
2. Thao tác tập tin
Các lệnh này rất cần thiết để tạo, xem, sao chép, di chuyển và tìm kiếm tệp. Chúng cho phép bạn quản lý nội dung và tổ chức tệp hiệu quả.
cat
- Lệnh này giúp hiển thị nội dung của một tập tin.
cat file.txt
touch
- Lệnh này giúp tạo một tệp trống nhưng đó không phải là chức năng chính của nó.
Mục đích chính của touch là cập nhật thời gian truy cập và sửa đổi của tệp. Nó sẽ tạo các tệp nếu chúng không tồn tại.
touch newfile.txt
cp
- Lệnh này giúp sao chép tệp hoặc thư mục.
cp source.txt destination.txt
mv
- Lệnh này giúp di chuyển hoặc đổi tên tệp và thư mục.
mv oldname.txt newname.txt
find
- Lệnh này giúp tìm kiếm tệp và thư mục.
find / -name "*.log"
3. Quyền cho phép và Quyền sở hữu
Quyền cho phép và quyền sở hữu rất quan trọng đối với bảo mật và kiểm soát truy cập thích hợp. Các lệnh này giúp bạn quản lý người có thể đọc, ghi hoặc thực thi tệp.
chmod
- Lệnh này giúp thay đổi quyền tệp.
chmod 755 script.sh
chown
- Lệnh này giúp thay đổi quyền sở hữu tệp.
chown user:group file.txt
4. Quản lý quy trình và tài nguyên
Việc giám sát và quản lý các quy trình và tài nguyên hệ thống là rất quan trọng để duy trì hoạt động ổn định của hệ thống. Các lệnh này cung cấp thông tin chi tiết về các quy trình đang chạy và cho phép quản lý tài nguyên hiệu quả.
ps
- Lệnh này giúp hiển thị các quy trình đang chạy.
ps aux
Trong đó:
- a: Hiển thị quy trình cho tất cả người dùng.
- u: Hiển thị người dùng sở hữu quy trình.
- x: Bao gồm các tiến trình không được gắn vào thiết bị đầu cuối.
top
- Lệnh này giúp hiển thị việc sử dụng tài nguyên hệ thống theo thời gian thực.
top
kill
- Lệnh này kết thúc một quy trình bằng PID của nó.
kill -9 1234
5. Lệnh mạng
Mạng là một khía cạnh quan trọng của DevOps. Các lệnh này giúp bạn kiểm tra kết nối, truyền dữ liệu và khắc phục sự cố mạng.
curl
- Lệnh này giúp truyền dữ liệu từ hoặc đến máy chủ.
curl https://example.com
ping
- Lệnh này giúp kiểm tra kết nối mạng với máy chủ chủ.
ping google.com
netstat
- Lệnh này giúp hiển thị kết nối mạng, bảng định tuyến và số liệu thống kê.
netstat -tuln
Trong đó:
- -t: Kết nối TCP.
- -u: Kết nối UDP.
- -l: Cổng lắng nghe.
- -n: Địa chỉ số.
ss
- Lệnh này giúp hiển thị số liệu thống kê mạng chi tiết (thay thế hiện đại cho netstat).
6. Sử dụng đĩa
Quản lý không gian đĩa hiệu quả là rất quan trọng trong DevOps để tránh hệ thống bị treo hoặc các sự cố lưu trữ. Các lệnh này cung cấp thông tin chi tiết về việc sử dụng đĩa.
df
- Lệnh này giúp hiển thị mức sử dụng không gian đĩa.
df -h
Trong đó:
- -h: Định dạng dễ đọc.
du
- Lệnh này giúp hiển thị mức sử dụng đĩa cho các tệp và thư mục.
du -sh /var/log
7. Nhật ký và Giám sát
Nhật ký rất có giá trị để gỡ lỗi và giám sát. Các lệnh này giúp bạn xem và tìm kiếm thông qua nhật ký một cách hiệu quả.
tail
- Lệnh này giúp hiển thị một vài dòng cuối cùng của tệp.
tail -f /var/log/syslog
Trong đó:
- -f: Theo dõi tệp khi nó phát triển.
grep
- Lệnh này giúp tìm kiếm một mẫu cụ thể trong các tệp.
grep "error" /var/log/syslog
8. Lưu trữ và nén
Lưu trữ và nén tệp giúp tiết kiệm dung lượng và đơn giản hóa việc truyền dữ liệu. Các lệnh này rất cần thiết để quản lý sao lưu và triển khai.
tar
- Lệnh này giúp tạo hoặc giải nén các tệp lưu trữ.
tar -czvf archive.tar.gz /path/to/files
Trong đó:
- -c: Tạo tệp lưu trữ.
- -z: Nén bằng gzip.
- -v: Đầu ra chi tiết.
- -f: Chỉ định tệp lưu trữ.
zip / unzip
- Lệnh này giúp nén và giải nén tệp.
zip files.zip file1 file2
unzip files.zip
9. Quản lý gói
Quản lý gói phần mềm là một phần không thể thiếu trong việc duy trì môi trường Linux. Các lệnh này cho phép bạn cài đặt, cập nhật và quản lý phần mềm một cách hiệu quả.
Đối với các hệ thống dựa trên Debian (ví dụ: Ubuntu):
Sử dụng lệnh apt
sudo apt update
sudo apt install nginx
Đối với các hệ thống dựa trên Red Hat (ví dụ: CentOS):
Sử dụng lệnh yum
hoặc dnf
sudo yum install httpd
sudo dnf update
10. SSH và truy cập từ xa
Truy cập an toàn và truyền dữ liệu giữa các máy chủ từ xa là một khía cạnh cốt lõi của công việc DevOps. Các lệnh này không thể thiếu cho các hoạt động từ xa.
ssh
- Lệnh này giúp kết nối với máy chủ từ xa.
ssh user@hostname
scp
- Lệnh này giúp sao chép tệp giữa các máy chủ.
scp file.txt user@remote:/path/to/destination
Kết luận
Nắm vững các lệnh Linux này sẽ giúp tăng đáng kể hiệu quả công việc của bạn với tư cách là một kỹ sư DevOps. Chúng tạo thành xương sống của nhiều tác vụ hàng ngày, từ quản lý tệp đến gỡ lỗi sự cố máy chủ. Mặc dù danh sách này không đầy đủ hết, nhưng đó là một điểm khởi đầu vững chắc để xây dựng bộ công cụ Linux của bạn.