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
và -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ẻ.