Linux là một Hệ điều hành (OS) rất phổ biến giữa các lập trình viên và người dùng thông thường. Một trong những lý do chính gây nên sự phổ biến của nó là khả năng hỗ trợ câu lệnh Linux ngoại lệ. Chúng ta có thể quản lý toàn bộ hệ điều hành Linux thông qua giao diện dòng lệnh (CLI) duy nhất. Điều này cho phép chúng ta thực hiện các nhiệm vụ phức tạp chỉ với vài lệnh.
Trong hướng dẫn này, chúng ta sẽ nói về một số lệnh thông thường được sử dụng rất hữu ích cho các sysadmin có kinh nghiệm hoặc người mới bắt đầu. Sau khi tham khảo hướng dẫn này, người dùng sẽ có khả năng hoạt động Linux một cách tự tin.
Đối với tổ chức tốt hơn, những lệnh này được nhóm lại thành ba phần - hệ thống tệp, mạng và thông tin hệ thống.
Lệnh hệ thống tệp Linux
Trong phần này, chúng ta sẽ nói về một số lệnh hữu ích liên quan đến tệp và thư mục trong Linux.
1. Lệnh cat
Lệnh cat chỉ được sử dụng chủ yếu để hiển thị nội dung của tệp. Nó đọc nội dung của tệp và hiển thị chúng trên đầu ra tiêu chuẩn (stdout).
Cú pháp thông thường của lệnh cat như sau:
$ cat [OPTIONS] [FILE1] [FILE2] ...
Hãy hiển thị nội dung của tệp /etc/os-release bằng lệnh cat:
$ cat /etc/os-release
Ngoài ra, chúng ta cũng có thể sử dụng tùy chọn -n
của lệnh để hiển thị nội dung với số dòng:
$ cat -n /etc/os-release
2. Lệnh cp
Lệnh cp hữu ích để sao chép tệp, nhóm tệp và thư mục.
Cú pháp thông thường của lệnh cp như sau:
$ cp [OPTIONS]
Ở đây, dấu ngoặc vuông ([])
đại diện cho các tham số tùy chọn trong khi ngoặc nhọn ()
đại diện cho các tham số bắt buộc.
Hãy sao chép tệp /etc/os-release vào thư mục /tmp:
$ cp /etc/os-release /tmp/new-file.txt
Bây giờ, hãy hiển thị nội dung của tệp để xác minh tệp đã được sao chép:
$ cat /tmp/new-file.txt
Tương tự, chúng ta cũng có thể sao chép thư mục bằng lệnh cp. Hãy sao chép thư mục /etc/cron.d vào thư mục /tmp:
$ cp -r /etc/cron.d /tmp
Chúng tôi đã sử dụng tùy chọn -r
với lệnh cp, đại diện cho hoạt động đệ quy. Nó sao chép thư mục theo cách đệ quy bao gồm các tệp và thư mục con.
Trong ví dụ tiếp theo, chúng ta sẽ xem cách xác minh rằng thư mục đã được sao chép thành công.
$ ls /tmp/cron.d
$ ls -l /tmp/cron.d
3. Lệnh ls
Lệnh ls được sử dụng để liệt kê nội dung thư mục và sắp xếp các tệp theo kích thước và thời gian chỉnh sửa lần cuối theo thứ tự giảm dần.
Cú pháp thông thường của lệnh ls như sau:
$ ls [OPTIONS] [FILE1] [FILE2] ...
Nếu chúng ta không cung cấp bất kỳ tham số nào cho lệnh ls thì nó sẽ liệt kê nội dung của thư mục hiện tại.
$ ls
Trong ví dụ trước đó, chúng tôi đã sao chép thư mục /etc/cron.d vào thư mục /tmp. Hãy xác minh rằng thư mục đó hiện diện và chứa các tệp cần thiết:
$ ls /tmp/cron.d
Chúng tôi có thể sử dụng tùy chọn -l
với lệnh ls để hiển thị thông tin chi tiết hơn như - quyền tệp, chủ sở hữu, thời gian đánh dấu, kích thước, v.v.
Hãy tìm hiểu thêm thông tin về các tệp có trong thư mục /tmp/cron.d:
$ ls -l /tmp/cron.d
4. Lệnh mkdir
Chúng ta thường tạo cấu trúc thư mục để tổ chức nội dung. Trong Linux, chúng ta có thể sử dụng lệnh mkdir để tạo một thư mục hoặc nhiều thư mục và đặt quyền chính xác cho các thư mục.
Cú pháp thông thường của lệnh mkdir như sau:
$ mkdir [OPTIONS] ...
Hãy tạo một thư mục với tên dir-1 trong thư mục /tmp:
$ mkdir /tmp/dir-1
Bây giờ, hãy xác minh rằng thư mục đã được tạo:
$ ls /tmp/dir-1
Ở đây, chúng ta có thể thấy rằng lệnh ls không báo cáo bất kỳ lỗi nào, điều đó có nghĩa là thư mục đó hiện diện.
Đôi khi, chúng ta cần tạo một cấu trúc thư mục lồng nhau để tổ chức dữ liệu tốt hơn. Trong trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -p
của lệnh để tạo một số thư mục lồng nhau dưới thư mục /tmp/dir-1:
$ mkdir -p /tmp/dir-1/dir-2/dir-3/dir-4/dir-5
Trong ví dụ trên, chúng ta đã tạo 4 cấp thư mục lồng nhau. Hãy xác minh nó bằng cách sử dụng lệnh ls:
$ ls -R /tmp/dir-1
Ở đây, chúng tôi đã sử dụng tùy chọn -R
với lệnh để hiển thị nội dung thư mục theo cách đệ quy.
5. Lệnh history
Để kiểm tra các lệnh đã thực thi cuối cùng, bạn có thể sử dụng lệnh history, nó sẽ hiển thị danh sách các lệnh đã thực thi cuối cùng trong phiên terminal.
$ history
Để xem lịch sử lệnh với dấu thời gian, bạn cần đặt dấu thời gian trong lịch sử bash, chạy:
$ HISTTIMEFORMAT="%d/%m/%y %T " #Temporarily set the history timestamp
$ export HISTTIMEFORMAT="%d/%m/%y %T " #Permanently set the history timestamp
$ history
6. Lệnh du
Bạn sẽ kiểm tra 10 tệp chiếm không gian đĩa của bạn bằng cách sử dụng một tập lệnh ngắn gọn được tạo từ lệnh du, mà chủ yếu được sử dụng cho việc sử dụng không gian tệp.
$ du -hsx * | sort -rh | head -10
Giải thích về các tùy chọn và cú pháp lệnh du ở trên.
- du - Ước tính việc sử dụng không gian tệp.
- -hsx -
(-h)
Định dạng dễ đọc cho con người, (-s)
Tổng hợp đầu ra, (-x)
Định dạng một Tệp duy nhất, bỏ qua các thư mục trên các định dạng tệp khác.
- sort - Sắp xếp các dòng của tập tin văn bản.
- -rh - Đảo ngược kết quả của so sánh,
(-h)
để so sánh định dạng dễ đọc cho con người.
- head - Đầu ra n dòng đầu tiên của tệp.
7. Lệnh stat
Lệnh stat được sử dụng để lấy thông tin về kích thước của tệp, quyền truy cập, thời gian truy cập và ID người dùng và ID nhóm của tệp.
$ stat anaconda-ks.cfg
Lệnh mạng Linux
Trong phần này, chúng ta sẽ nói về một số lệnh mạng mà người mới bắt đầu có thể sử dụng để khắc phục các vấn đề liên quan đến mạng.
8. Lệnh ping
Một trong những thao tác rất phổ biến được thực hiện trong mạng là kiểm tra xem một máy chủ cụ thể có thể truy cập được không. Chúng ta có thể sử dụng lệnh ping để kiểm tra kết nối với máy chủ khác.
Cú pháp chung của lệnh ping như sau:
$ ping [OPTIONS]
Ở đây, đích có thể là địa chỉ IP hoặc Tên miền Đầy đủ (FQDN) như google.com. Hãy xác minh rằng hệ thống hiện tại có thể giao tiếp với google:
$ ping -c 4 google.com
Trong ví dụ trên, lệnh hiển thị các thống kê về giao tiếp mạng, cho thấy rằng đã nhận được phản hồi cho tất cả bốn yêu cầu mạng (gói tin). Điều quan trọng cần lưu ý là chúng tôi đã sử dụng tùy chọn -c
với lệnh để giới hạn số lượng yêu cầu được gửi đến máy chủ cụ thể.
Hãy xem ví dụ khi giao tiếp giữa hai máy chủ bị gián đoạn.
Để mô phỏng tình huống này, chúng ta sẽ cố truy cập vào một địa chỉ IP không thể truy cập được. Trong trường hợp này, địa chỉ IP đó là 192.168.10.100:
$ ping -c 4 192.168.10.100
Ở đây, chúng ta có thể thấy rằng chúng tôi không nhận được phản hồi cho bất kỳ yêu cầu mạng nào. Do đó, lệnh báo cáo lỗi - Đích không thể truy cập.
9. Lệnh host
Đôi khi, chúng ta cần tìm địa chỉ IP của miền cụ thể. Để thực hiện điều này, chúng ta có thể sử dụng lệnh host, nó thực hiện tìm kiếm DNS và dịch FQDN sang địa chỉ IP và ngược lại.
Cú pháp chung của lệnh host như sau:
$ host [OPTIONS]
Ở đây, đích có thể là địa chỉ IP hoặc FQDN.
Hãy tìm ra địa chỉ IP của google.com bằng lệnh host:
$ host google.com
10. Lệnh whois
Tất cả các thông tin về miền được đăng ký được lưu trữ trong cơ sở dữ liệu tập trung và có thể được truy vấn bằng lệnh whois, nó cho thấy thông tin về miền cụ thể.
Cú pháp chung của lệnh whois như sau:
$ whois [OPTIONS]
Hãy tìm hiểu thông tin về google.com:
$ whois google.com
Ở đây, chúng tôi có thể thấy rất nhiều thông tin chi tiết như - ngày đăng ký / gia hạn / hết hạn miền, nhà cung cấp miền, v.v.
Lưu ý rằng lệnh whois không được cài đặt sẵn trên tất cả các hệ thống. Tuy nhiên, chúng ta có thể cài đặt nó bằng trình quản lý gói. Ví dụ, trên các bản phân phối dựa trên Debian, chúng ta có thể cài đặt nó bằng trình quản lý gói apt:
$ sudo apt install whois
Trên các bản phân phối dựa trên RHEL và các bản phân phối khác, bạn có thể cài đặt nó như được hiển thị.
$ sudo yum install whois [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/whois [On Gentoo Linux]
$ sudo apk add whois [On Alpine Linux]
$ sudo pacman -S whois [On Arch Linux]
$ sudo zypper install whois [On OpenSUSE]
Các lệnh thông tin hệ thống Linux
Trong phần này, chúng ta sẽ nói về một số lệnh cung cấp thông tin về hệ thống hiện tại.
11. Lệnh uptime
Thường xuyên cần tìm hiểu khi hệ thống được khởi động lần cuối bằng cách sử dụng lệnh uptime, nó cho biết hệ thống đã chạy được bao lâu.
Hãy tìm hiểu uptime của hệ thống hiện tại:
$ uptime -p
12:10:57 up 2:00, 1 user, load average: 0.48, 0.60, 0.45
Trong ví dụ này, chúng ta đã sử dụng tùy chọn -p
để hiển thị đầu ra dưới dạng tương đối đẹp.
12. Lệnh free
Người dùng thường cần tìm hiểu các chi tiết về bộ nhớ đã được cài đặt, có sẵn và đã sử dụng. Thông tin này đóng vai trò quan trọng trong việc khắc phục sự cố hiệu suất. Chúng ta có thể sử dụng lệnh free để tìm hiểu thông tin về bộ nhớ:
$ free -m
Ở đây, chúng ta đã sử dụng tùy chọn -m
với lệnh hiển thị đầu ra dưới dạng mebibytes.
Theo cách tương tự, chúng ta có thể sử dụng các tùy chọn -g
, -t
và -p
để hiển thị đầu ra theo giải đồng giá, tebibytes và pebibytes.
13. Lệnh lsblk
Hệ thống máy tính lưu trữ dữ liệu trên các thiết bị khối. Các ví dụ về thiết bị khối là ổ đĩa cứng (HDD), ổ đĩa nhằm (SSD), v.v. Chúng ta có thể sử dụng lệnh lsblk để hiển thị thông tin chi tiết về các thiết bị khối:
$ lsblk
Trong ví dụ này, chúng ta có thể thấy rằng chỉ có một thiết bị khối và tên của nó là /dev/sda. Có ba phân vùng được tạo trên thiết bị khối đó.
Trong bài viết này, chúng tôi đã nói về một số câu lệnh Linux hữu ích cho người mới bắt đầu. Đầu tiên, chúng tôi đã nói về các lệnh hệ thống tệp. Sau đó, chúng tôi đã nói về các lệnh mạng. Cuối cùng, chúng tôi đã nói về một số lệnh cung cấp thông tin về hệ thống hiện tại.