Lệnh hash trong Linux giúp hệ thống nhớ đường dẫn đầy đủ của các lệnh đã dùng, tăng tốc độ thực thi. Thay vì tìm kiếm trong các thư mục $PATH mỗi lần, shell sẽ truy xuất thông tin từ bảng băm. Bảng băm này được cập nhật tự động, nhưng bạn có thể dùng lệnh hash để quản lý nó thủ công. Hãy sử dụng hash để tối ưu hiệu suất và tiết kiệm thời gian tìm kiếm lệnh nhé!
```Lệnh hash trong linux là gì?
Lệnh command hash in linux là một công cụ giúp shell (ví dụ như bash) ghi nhớ đường dẫn đầy đủ của các lệnh đã được thực thi trước đó. Khi bạn gõ một lệnh, shell sẽ tìm kiếm nó trong các thư mục được liệt kê trong biến môi trường PATH. Sau khi tìm thấy, shell sẽ lưu trữ đường dẫn này vào một bảng băm (hash table) để tăng tốc độ tìm kiếm cho các lần thực thi sau. Điều này có nghĩa là, thay vì phải tìm kiếm lại từ đầu, shell chỉ cần tra cứu trong bảng băm, giúp tiết kiệm thời gian đáng kể. Bạn có thể sử dụng lệnh `hash` để xem, thêm hoặc xóa các mục trong bảng băm này, giúp quản lý hiệu quả hơn việc thực thi lệnh.
Giới thiệu về lệnh hash trong Linux
Trong bước này, chúng ta sẽ tìm hiểu về lệnh hash trong Linux, dùng để tính toán giá trị hash mã hóa của tập tin và thư mục.
Lệnh hash là một công cụ mạnh mẽ để xác minh tính toàn vẹn của dữ liệu, cũng như cho các tác vụ liên quan đến bảo mật.
Để bắt đầu, hãy kiểm tra phiên bản của lệnh hash đã được cài đặt trên hệ thống của bạn trước nhé.
hash --version
Ví dụ về kết quả:
GNU coreutils 8.32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Torbjörn Granlund and Richard M. Stallman.
Lệnh hash là một phần của gói GNU coreutils, một tập hợp các công cụ dòng lệnh thiết yếu cho hệ điều hành Linux.
Tiếp theo, chúng ta hãy khám phá một số cách sử dụng cơ bản của lệnh hash nhé.
hash -h
Lệnh này sẽ hiển thị thông tin trợ giúp cho lệnh hash, cho thấy các tùy chọn và ví dụ sử dụng khác nhau.
Một số tùy chọn được sử dụng phổ biến nhất cho lệnh hash bao gồm:
-ahoặc--algorithm: Chỉ định thuật toán hashing để sử dụng (ví dụ:md5,sha1,sha256,sha512).-choặc--check: Xác minh giá trị hash của các tập tin so với một tập tin checksum được cung cấp.-thoặc--type: Chỉ định loại hash (ví dụ:md5,sha1,sha256,sha512).
Trong các bước tiếp theo, chúng ta sẽ đi sâu hơn vào cách sử dụng lệnh hash để tính toán hash và xác minh tính toàn vẹn của tập tin.
Tính toán Hash của Tập tin và Thư mục
Trong bước này, chúng ta sẽ học cách sử dụng lệnh hash để tính toán giá trị hash mã hóa cho tập tin và thư mục.
Đầu tiên, hãy tạo một tập tin mẫu để chúng ta có thể sử dụng cho việc tạo hash.
echo "This is a sample file." > sample.txt
Bây giờ, chúng ta có thể tính toán giá trị hash cho tập tin này bằng lệnh hash.
hash -t sha256 sample.txt
Ví dụ về kết quả:
sha256 (sample.txt) = 5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc
Lệnh hash đã tính toán giá trị SHA-256 hash cho tập tin sample.txt.
Bạn cũng có thể tính toán hash cho các thư mục. Hãy tạo một thư mục mẫu và một vài tập tin bên trong nó.
mkdir sample_dir
touch sample_dir/file1.txt sample_dir/file2.txt sample_dir/file3.txt
Bây giờ, chúng ta có thể tính toán giá trị hash cho toàn bộ thư mục.
hash -t sha256 sample_dir/
Ví dụ về kết quả:
sha256 (sample_dir/) = 6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36
Lệnh hash đã tính toán giá trị SHA-256 hash cho thư mục sample_dir, bao gồm tất cả các tập tin bên trong nó.
Bạn có thể sử dụng các thuật toán hash khác nhau bằng cách chỉ định tùy chọn -a hoặc --algorithm, ví dụ như md5, sha1, sha256 hoặc sha512.
hash -a md5 sample.txt
hash -a sha1 sample.txt
hash -a sha512 sample.txt
Các giá trị hash được tính toán có thể được sử dụng để xác minh tính toàn vẹn của tập tin, chúng ta sẽ tìm hiểu trong bước tiếp theo.
Xác minh tính toàn vẹn của tệp bằng hash
Trong bước cuối cùng này, ta sẽ dùng lệnh hash để xác minh tính toàn vẹn của tệp.
Việc này được thực hiện bằng cách so sánh giá trị hash đã tính với giá trị hash tin cậy đã biết.
Hãy bắt đầu bằng cách tạo một tệp checksum chứa giá trị hash dự kiến cho các tệp mẫu:
cat << EOF > sample_checksums.txt
5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc sample.txt
6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36 sample_dir/
EOF
Tệp này chứa giá trị SHA-256 hash cho tệp sample.txt và thư mục sample_dir.
Giờ đây, ta có thể dùng lệnh hash với tùy chọn -c hoặc --check để xác minh tính toàn vẹn.
Việc xác minh được thực hiện bằng cách so sánh với tệp checksum đã tạo trước đó:
hash -c sample_checksums.txt
Ví dụ về đầu ra:
5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc sample.txt
6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36 sample_dir/
Đầu ra cho thấy giá trị hash của sample.txt và sample_dir khớp với giá trị trong sample_checksums.txt.
Điều này cho thấy các tệp chưa bị sửa đổi kể từ khi tạo checksum.
Nếu giá trị hash của một tệp không khớp với giá trị dự kiến trong tệp checksum, lệnh hash sẽ báo lỗi.
## Modify the sample.txt file
echo "This is a modified sample file." > sample.txt
hash -c sample_checksums.txt
Ví dụ về đầu ra:
5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc sample.txt
sample.txt: FAILED
6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36 sample_dir/
Đầu ra cho thấy sample.txt không vượt qua kiểm tra tính toàn vẹn, nghĩa là tệp đã bị sửa đổi.
Lệnh hash là một công cụ mạnh mẽ để xác minh tính toàn vẹn của tệp và thư mục.
Nó đặc biệt hữu ích trong các tình huống quan trọng về bảo mật và độ tin cậy của dữ liệu.
Ví dụ như phân phối phần mềm, sao lưu và truyền dữ liệu trong môi trường system và devops.
Kết luận cho linux hash command
Vậy là chúng ta đã cùng nhau khám phá lệnh hash thú vị trong Linux rồi! Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về cách nó giúp hệ thống tìm kiếm và thực thi lệnh nhanh chóng hơn. Việc sử dụng linux hash command một cách hiệu quả sẽ giúp bạn tiết kiệm thời gian đáng kể khi làm việc với terminal. Hãy thử nghiệm với các tùy chọn khác nhau của lệnh để hiểu rõ hơn về cách nó hoạt động trong các tình huống cụ thể. Đừng ngần ngại tìm hiểu thêm về các lệnh khác trong Linux để nâng cao kỹ năng sử dụng hệ điều hành này. Chúc bạn thành công trên con đường chinh phục thế giới Linux đầy thú vị và khám phá thêm nhiều điều mới mẻ! Hãy nhớ rằng, thực hành thường xuyên là chìa khóa để thành thạo bất kỳ công cụ nào.