Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

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 khiến nó trở nên phổ biến là sự hỗ trợ nổi bật của nó cho dòng lệnh. 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) mà không cần giao diện đồ họa. Đ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 một vài lệnh. Trong hướng dẫn này, chúng ta sẽ cùng nhau tìm hiểu về một số lệnh trong Linux thường được sử dụng và hữu ích cho các sysadmin có kinh nghiệm hoặc người mới bắt đầu. Sau khi làm theo hướng dẫn này, người dùng sẽ có khả năng vận hành hệ thống Linux một cách tự tin. Để 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 tin, mạng và thông tin hệ thống.

Các lệnh hệ thống tệp Linux

Trong phần này sẽ nhắc đến một số lệnh trong Linux hữu ích liên quan đến tệp tin và thư mục.

Lệnh cat

Lệnh cat chủ yếu được sử dụng để hiển thị nội dung của tệp tin. Nó đọc nội dung của tệp tin 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 là:

$ cat [OPTIONS] [FILE1] [FILE2] …

Hãy hiển thị nội dung của tệp tin /etc/os-release bằng lệnh cat:

$ cat /etc/os-release

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Xem nội dung tệp trong Linux

Bên cạnh đó, 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 kèm số dòng:

$ cat -n /etc/os-release

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Xem nội dung tệp với số dòng

Lệnh cp

Lệnh cp hữu ích để sao chép tệp tin, nhóm tệp tin và thư mục.

Cú pháp thông thường của lệnh cp là:

$ cp [OPTIONS]  

Ở đây, dấu ngoặc vuông ([]) đại diện cho các đối số tùy chọn trong khi dấu ngoặc nhọn (<>) đại diện cho các đối số bắt buộc.

Hãy sao chép tệp tin /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 tin để xác nhận rằng tệp đã được sao chép:

$ cat /tmp/new-file.txt

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Sao chép tệp trong Linux

Tương tự, chúng ta 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 bên trong thư mục /tmp:

$ cp -r /etc/cron.d /tmp

Chúng ta đã sử dụng tùy chọn -r với lệnh cp, đại diện cho hoạt động đệ quy. Điều này sao chép thư mục một cách đệ quy, bao gồm cả các tệp tin và thư mục con.

Trong ví dụ tiếp theo, chúng ta sẽ xem cách xác nhận rằng thư mục đã được sao chép thành công.

$ ls /tmp/cron.d
$ ls -l /tmp/cron.d

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Sao chép đệ quy thư mục trong Linux

Lệnh ls

Lệnh ls là lệnh trong Linux được sử dụng để liệt kê nội dung của thư mục và sắp xếp các tệp tin theo kích thước và thời gian sửa đổi cuối cùng theo thứ tự giảm dần.

Cú pháp thông thường của lệnh ls là:

$ ls [OPTIONS] [FILE1] [FILE2] …

Nếu chúng ta không cung cấp bất kỳ đối 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

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Liệt kê các tệp thư mục hiện tại

Trong ví dụ trước, chúng ta đã sao chép thư mục /etc/cron.d vào thư mục /tmp. Hãy xác nhận rằng nó có mặt ở đó và chứa các tệp tin cần thiết:

$ ls /tmp/cron.d

Chúng ta 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 truy cập tệp tin, chủ sở hữu, thời gian, kích thước,...

Hãy tìm hiểu thêm chi tiết về các tệp tin có trong thư mục /tmp/cron.d:

$ ls -l /tmp/cron.d

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Liệt kê các tập tin thư mục

Lệnh mkdir

Một lệnh trong Linux thường tạo cấu trúc thư mục để tổ chức nội dung đó chính là mkdir. Lệnh này thực hiện chức năng tạo một thư mục hoặc nhiều thư mục và đặt quyền truy cập đúng cho các thư mục.

Cú pháp thông thường của lệnh mkdir là:

$ mkdir [OPTIONS] <DIRECTORY1> <DIRECTORY2> …

Hãy tạo một thư mục có tên là dir-1 trong thư mục /tmp:

$ mkdir /tmp/dir-1

Bây giờ, hãy kiểm tra xem thư mục đã được tạo hay chưa:

$ ls /tmp/dir-1

Ở đây, chúng ta có thể thấy rằng lệnh ls không báo lỗi nào, điều đó có nghĩa là thư mục đã tồn tại.

Đô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 những 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 trong 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 ra 4 cấp độ của các thư mục lồng nhau. Hãy xác nhận bằng cách sử dụng lệnh ls:

$ ls -R /tmp/dir-1

Ở đây, chúng ta đã sử dụng tùy chọn -R với lệnh để hiển thị nội dung của thư mục theo cách đệ quy.

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Tạo thư mục trong Linux

Lệnh history

Để kiểm tra lịch sử các lệnh đã được thực thi gần đây, bạn có thể sử dụng lệnh history - một lệnh trong Linux giúp hiển thị danh sách các lệnh đã được thực thi trong phiên làm việc trên cửa sổ terminal.

$ history

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Liệt kê lịch sử lệnh Linux

Để xem lịch sử lệnh với dấu thời gian, bạn cần thiết lập timestamp trong lịch sử bash, chạy lệnh sau:

$ HISTTIMEFORMAT="%d/%m/%y %T "             #Temporarily set the history timestamp
$ export HISTTIMEFORMAT="%d/%m/%y %T "      #Permanently set the history timestamp
$ history

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Liệt kê các lệnh được thực hiện lần cuối với dấu thời gian

Lệnh du

Bạn có thể sử dụng câu lệnh du kết hợp với các câu lệnh khác để tìm 10 tệp tin chiếm nhiều dung lượng đĩa nhất. Dưới đây là một ví dụ về một one-liner script sử dụng du:

$ du -hsx * | sort -rh | head -10

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Tìm tệp sử dụng hầu hết dung lượng đĩa trong Linux

Giải thích các tùy chọn và cú pháp của lệnh trong Linux - du được sử dụng trong ví dụ trên:

  • du: Ước lượng sử dụng không gian đĩa của các tệp tin.
  • -hsx - (-h): Định dạng dễ đọc cho kết quả đầu ra, hiển thị kích thước dưới dạng "human-readable" (ví dụ: KB, MB, GB), (-s): Tóm tắt kết quả đầu ra, chỉ hiển thị tổng dung lượng của thư mục gốc, (-x): Chỉ duyệt qua các tệp tin trên cùng một hệ thống tệp tin, bỏ qua các thư mục con ở các hệ thống tệp tin khác.
  • sort: Sắp xếp các dòng trong tệp tin văn bản.
  • -rh - (-r): Đảo ngược kết quả so sánh, để hiển thị kết quả lớn nhất trước, (-h): So sánh kích thước sử dụng định dạng dễ đọc.
  • head: Hiển thị n dòng đầu tiên của tệp tin.

Lệnh stat

Lệnh stat được sử dụng để lấy thông tin về kích thước tệp tin, 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 tin.

$ stat anaconda-ks.cfg

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Kiểm tra thông tin truy cập tệp trong Linux

Các lệnh mạng trong Linux

Trong phần này, chúng ta sẽ thảo luận 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 sự cố liên quan đến mạng.

Lệnh ping

Một trong những hoạt động rất phổ biến trong bất kỳ mạng nào là kiểm tra xem một máy chủ cụ thể có thể kết nối được hay 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 trong Linux - ping là:

$ ping [OPTIONS] <destination>

Ở đây, đích đến 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

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Máy chủ Ping trong Linux

Trong ví dụ trên, lệnh hiển thị các thống kê về giao tiếp mạng, cho thấy đã nhận được phản hồi cho tất cả bốn yêu cầu mạng (gói tin). Cần lưu ý rằng, chúng ta đã 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ố gắng kết nối đến một địa chỉ IP không thể đạt được. Trong trường hợp này, đó là 192.168.10.100:

$ ping -c 4 192.168.10.100

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Ping IP trong Linux

Ở đây, chúng ta thấy rằng 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ể đạt được (Destination Host Unreachable).

Lệnh host

Đôi khi, chúng ta cần tìm địa chỉ IP của một tên miền cụ thể. Để thực hiện điều này, chúng ta có thể sử dụng lệnh host, lệnh này thực hiện tìm kiếm DNS và chuyển đổi từ tên miền đầy đủ (FQDN) sang địa chỉ IP và ngược lại.

Cú pháp chung của lệnh host là:

$ host [OPTIONS] <destination>

Ở đây, đích có thể là địa chỉ IP hoặc FQDN. Hãy tìm địa chỉ IP của google.com bằng lệnh host:

$ host google.com

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Tìm IP của Domain

Lệnh whois

Tất cả thông tin về các tên miền đã đă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ó hiển thị thông tin về tên miền cụ thể.

Cú pháp chung của lệnh whois là:

$ whois [OPTIONS] <FQDN>

Hãy tìm hiểu thông tin về google.com:

$ whois google.com

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Tìm thông tin Whois tên miền

Ở đây, chúng ta có thể thấy nhiều thông tin chi tiết như - ngày đăng ký / gia hạn / hết hạn tên miền, nhà cung cấp tên miền, v.v.

Lưu ý rằng, lệnh trong Linux - whois không có sẵn mặc định trên tất cả các hệ thống. Tuy nhiên, chúng ta có thể cài đặt nó bằng cách sử dụ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 cách sử dụ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 như sau.

$ 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ẽ thảo luận về một số lệnh cung cấp thông tin về hệ thống hiện tại.

Lệnh uptime

Thường xuyên cần tìm hiểu thời gian hệ thống được khởi động lần cuối bằng lệnh uptime, nó cho biết hệ thống đã chạy được bao lâu. Hãy tìm hiểu thời gian hoạt động 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 đẹp mắt.

Lệnh free 

Người dùng thường cần tìm thông tin về bộ nhớ đã được cài đặt, khả dụng và đang sử dụng. Thông tin này rất 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 thông tin về bộ nhớ:

$ free -m

Ở đây, chúng ta đã sử dụng tùy chọn -m với lệnh này để hiển thị đầu ra theo đơn vị mebibytes.

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Kiểm tra việc sử dụng bộ nhớ Linux

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 đơn vị gibibytes, tebibytes và pebibytes.

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. Ví dụ về các thiết bị khối là ổ đĩa cứng (HDD), ổ đĩa rắn (SSD) và các thiết bị khác. 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

Tổng hợp các lệnh trong Linux, thường được dùng nhiều nhất

Kiểm tra thông tin thiết bị Linux

Bài viết này đã trình bày về một số lệnh trong Linux hữu ích dành cho người mới bắt đầu sử dụng. Tất cả được chia ra 3 phần lớn, đó là các lệnh hệ thống tệp, các lệnh mạng, các lệnh cung cấp thông tin về hệ thống hiện tại. Nắm được những lệnh thông dụng sau là bạn đã bước đầu sử dụng hệ điều hành Linux một cách thành thạo hơn.