Lệnh sum trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh sum trong Linux để tính toán checksum của các tệp và thực hiện các phép toán tổng cơ bản. Lệnh sum tạo ra một giá trị checksum có thể được sử dụng để xác minh tính toàn vẹn của dữ liệu trong quá trình truyền tệp hoặc sao lưu. Bạn sẽ khám phá cú pháp cơ bản của lệnh sum, học cách tính toán checksum của một hoặc nhiều tệp và thực hành sử dụng lệnh để thực hiện các phép toán tổng cơ bản trên các tệp.

Lab bao gồm các bước sau: tìm hiểu về lệnh sum, thực hiện các phép toán tổng cơ bản và xử lý các số dấu phẩy động với sum. Lệnh sum là một tiện ích Linux tiêu chuẩn và không yêu cầu cài đặt thêm.

Tìm hiểu lệnh sum

Trong bước này, chúng ta sẽ khám phá lệnh sum trong Linux, được sử dụng để tính toán checksum của một tệp hoặc một nhóm các tệp. Lệnh sum tạo ra một giá trị checksum có thể được sử dụng để xác minh tính toàn vẹn của dữ liệu trong quá trình truyền tệp hoặc sao lưu.

Hãy bắt đầu bằng cách tìm hiểu cú pháp cơ bản của lệnh sum:

sum [options] [file1] [file2] ...

Các tùy chọn có sẵn cho lệnh sum bao gồm:

  • -r: Sử dụng thuật toán BSD để tính toán checksum.
  • -s: Hiển thị tổng của tất cả các tệp đầu vào.
  • -w: Sử dụng thuật toán System V để tính toán checksum.

Để tính toán checksum của một tệp duy nhất, bạn có thể sử dụng lệnh sau:

sum file.txt

Ví dụ đầu ra:

12345 3 file.txt

Đầu ra hiển thị giá trị checksum (12345), số lượng khối (3) và tên tệp (file.txt).

Để tính toán checksum của nhiều tệp, bạn có thể đơn giản liệt kê các tệp làm đối số:

sum file1.txt file2.txt file3.txt

Ví dụ đầu ra:

12345 3 file1.txt
67890 2 file2.txt
54321 4 file3.txt

Lệnh sum cũng có thể được sử dụng để hiển thị tổng của tất cả các tệp đầu vào bằng tùy chọn -s:

sum -s file1.txt file2.txt file3.txt

Ví dụ đầu ra:

84576 9 total

Trong bước tiếp theo, chúng ta sẽ thực hành sử dụng lệnh sum để thực hiện các phép toán tổng cơ bản.

Thực hiện các phép toán tổng cơ bản

Trong bước này, chúng ta sẽ thực hành sử dụng lệnh sum để thực hiện các phép toán tổng cơ bản trên các tệp.

Hãy bắt đầu bằng cách tạo một số tệp mẫu để làm việc:

touch numbers1.txt numbers2.txt numbers3.txt

Bây giờ, hãy thêm một số số vào mỗi tệp:

echo "10 20 30" > numbers1.txt
echo "40 50 60" > numbers2.txt
echo "70 80 90" > numbers3.txt

Để tính toán checksum của từng tệp riêng lẻ, chúng ta có thể sử dụng các lệnh sau:

sum numbers1.txt
sum numbers2.txt
sum numbers3.txt

Ví dụ đầu ra:

60 3 numbers1.txt
150 3 numbers2.txt
240 3 numbers3.txt

Để lấy tổng của tất cả các tệp, chúng ta có thể sử dụng tùy chọn -s:

sum -s numbers1.txt numbers2.txt numbers3.txt

Ví dụ đầu ra:

450 9 total

Đầu ra hiển thị tổng của tất cả các số trong các tệp là 450.

Bây giờ, hãy thử một ví dụ phức tạp hơn. Chúng ta sẽ tạo một tệp với các số dấu phẩy động:

echo "3.14 6.28 9.42" > float_numbers.txt

Chúng ta có thể tính toán checksum của tệp này bằng lệnh sum:

sum float_numbers.txt

Ví dụ đầu ra:

18.84 3 float_numbers.txt

Như bạn có thể thấy, lệnh sum cũng có thể xử lý các số dấu phẩy động.

Trong bước tiếp theo, chúng ta sẽ khám phá cách xử lý các số dấu phẩy động chi tiết hơn bằng lệnh sum.

Xử lý các số dấu phẩy động với sum

Trong bước trước, chúng ta đã thấy rằng lệnh sum có thể xử lý các số dấu phẩy động. Trong bước này, chúng ta sẽ khám phá tính năng này chi tiết hơn.

Lệnh sum sử dụng các thuật toán khác nhau để tính toán checksum và hành vi có thể khác nhau khi xử lý các số dấu phẩy động. Hãy xem xét điều này chi tiết hơn.

Đầu tiên, hãy tạo một tệp với một số số dấu phẩy động:

echo "3.14 6.28 9.42" > float_numbers.txt

Bây giờ, hãy tính toán checksum bằng thuật toán mặc định:

sum float_numbers.txt

Ví dụ đầu ra:

18.84 3 float_numbers.txt

Như bạn có thể thấy, lệnh sum xử lý chính xác các số dấu phẩy động và cung cấp checksum.

Tiếp theo, hãy thử sử dụng thuật toán BSD với tùy chọn -r:

sum -r float_numbers.txt

Ví dụ đầu ra:

18 3 float_numbers.txt

Lưu ý rằng giá trị checksum khác khi sử dụng thuật toán BSD. Điều này là do thuật toán BSD làm tròn các số dấu phẩy động thành số nguyên trước khi tính toán checksum.

Cuối cùng, hãy sử dụng thuật toán System V với tùy chọn -w:

sum -w float_numbers.txt

Ví dụ đầu ra:

18 3 float_numbers.txt

Thuật toán System V cũng làm tròn các số dấu phẩy động thành số nguyên, tương tự như thuật toán BSD.

Tóm lại, lệnh sum có thể xử lý các số dấu phẩy động, nhưng hành vi có thể khác nhau tùy thuộc vào thuật toán được sử dụng. Thuật toán mặc định giữ nguyên độ chính xác của dấu phẩy động, trong khi các thuật toán BSD và System V làm tròn các số thành số nguyên.

Khi làm việc với các tệp chứa số dấu phẩy động, điều quan trọng là phải nhận thức được thuật toán được sử dụng và tác động của nó đến việc tính toán checksum.

Tóm tắt

Trong lab này, chúng ta đã khám phá lệnh sum trong Linux, được sử dụng để tính toán checksum của một tệp hoặc một nhóm các tệp. Chúng ta đã học cú pháp cơ bản của lệnh sum, bao gồm các tùy chọn có sẵn như -r, -s-w. Chúng ta đã thực hành sử dụng lệnh sum để tính toán checksum của một tệp đơn lẻ cũng như nhiều tệp và chúng ta cũng đã học cách hiển thị tổng của tất cả các tệp đầu vào bằng tùy chọn -s. Ngoài ra, chúng ta đã thực hành thực hiện các phép toán tổng cơ bản trên các tệp bằng cách tạo các tệp mẫu và sử dụng lệnh sum để tính toán checksum của từng tệp riêng lẻ.

400+ câu lệnh phổ biến trong Linux