Lệnh stat trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh stat của Linux để truy xuất thông tin chi tiết về các tệp và thư mục, bao gồm metadata của chúng như quyền, quyền sở hữu và dấu thời gian. Lab này bao gồm mục đích và cú pháp của lệnh stat, cũng như các ví dụ thực tế về cách sử dụng nó để phân tích các thuộc tính của tệp và thư mục. Bạn sẽ học cách truy xuất metadata của tệp, hiểu các quyền và quyền sở hữu của tệp, đồng thời khám phá các tùy chọn khác nhau có sẵn để tùy chỉnh đầu ra của lệnh stat.

Hiểu Mục đích và Cú pháp của Lệnh stat

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh stat trong Linux. Lệnh stat được sử dụng để hiển thị thông tin chi tiết về một tệp hoặc thư mục, bao gồm metadata của nó như quyền, quyền sở hữu, dấu thời gian, v.v.

Để sử dụng lệnh stat, chỉ cần chạy lệnh sau trong terminal:

stat [options] <file_or_directory>

Các tùy chọn được sử dụng phổ biến nhất cho lệnh stat là:

  • -c hoặc --format=<format>: Chỉ định định dạng đầu ra bằng cách sử dụng một chuỗi định dạng tùy chỉnh.
  • -L hoặc --dereference: Theo dõi các liên kết tượng trưng và hiển thị thông tin về tệp hoặc thư mục đích.
  • -f hoặc --file-system: Hiển thị thông tin về hệ thống tệp thay vì chính tệp đó.

Dưới đây là một ví dụ về cách sử dụng lệnh stat để lấy thông tin về một tệp:

stat ~/project/example.txt

Ví dụ đầu ra:

  File: '/home/labex/project/example.txt'
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 131074      Links: 1
Access: (0644/-rw-r--r--)  Uid: (1000/labex)   Gid: (1000/labex)
Access: 2023-04-11 12:34:56.789012345 +0000
Modify: 2023-04-11 12:34:56.789012345 +0000
Change: 2023-04-11 12:34:56.789012345 +0000
 Birth: -

Đầu ra này cung cấp thông tin chi tiết về tệp, bao gồm kích thước, quyền, quyền sở hữu và dấu thời gian của nó.

Truy xuất Metadata của Tệp Bằng Lệnh stat

Trong bước này, bạn sẽ học cách sử dụng lệnh stat để truy xuất metadata chi tiết về các tệp và thư mục.

Đầu tiên, hãy tạo một tệp mới trong thư mục ~/project:

touch ~/project/example.txt

Bây giờ, hãy sử dụng lệnh stat để truy xuất metadata cho tệp này:

stat ~/project/example.txt

Ví dụ đầu ra:

  File: '/home/labex/project/example.txt'
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 131075      Links: 1
Access: (0644/-rw-r--r--)  Uid: (1000/labex)   Gid: (1000/labex)
Access: 2023-04-11 12:34:56.789012345 +0000
Modify: 2023-04-11 12:34:56.789012345 +0000
Change: 2023-04-11 12:34:56.789012345 +0000
 Birth: -

Đầu ra này cung cấp rất nhiều thông tin về tệp, bao gồm:

  • Đường dẫn và tên tệp
  • Kích thước tệp và kích thước khối
  • Số thiết bị và inode
  • Quyền, chủ sở hữu và nhóm của tệp
  • Dấu thời gian truy cập, sửa đổi và thay đổi

Bạn cũng có thể sử dụng tùy chọn -c hoặc --format để tùy chỉnh định dạng đầu ra của lệnh stat. Ví dụ: để chỉ hiển thị kích thước tệp và thời gian sửa đổi, bạn có thể sử dụng:

stat -c '%s %y' ~/project/example.txt

Ví dụ đầu ra:

0 2023-04-11 12:34:56.789012345 +0000

Điều này cho phép bạn trích xuất các trường metadata cụ thể phù hợp nhất với nhu cầu của bạn.

Phân tích Quyền và Quyền sở hữu Tệp với stat

Trong bước này, bạn sẽ học cách sử dụng lệnh stat để phân tích quyền và quyền sở hữu tệp.

Hãy bắt đầu bằng cách tạo một tệp mới trong thư mục ~/project:

touch ~/project/example.txt

Bây giờ, hãy sử dụng lệnh stat để kiểm tra quyền và quyền sở hữu của tệp:

stat -c '%A %u %G' ~/project/example.txt

Ví dụ đầu ra:

-rw-r--r-- 1000 1000

Đầu ra này cho thấy:

  • Quyền của tệp: -rw-r--r-- (đọc-ghi cho chủ sở hữu, chỉ đọc cho nhóm và những người khác)
  • ID người dùng (UID) của chủ sở hữu tệp: 1000 (tương ứng với người dùng labex)
  • ID nhóm (GID) của nhóm tệp: 1000 (tương ứng với nhóm labex)

Bạn cũng có thể sử dụng các tùy chọn dạng dài để lấy thông tin tương tự:

stat --format='%A %U %G' ~/project/example.txt

Ví dụ đầu ra:

-rw-r--r-- labex labex

Điều này hiển thị thông tin tương tự, nhưng với tên người dùng và nhóm thay vì ID số.

Hiểu các quyền và quyền sở hữu của tệp là rất quan trọng để quản lý quyền truy cập vào các tệp và thư mục trong hệ thống Linux. Lệnh stat cung cấp một cách dễ dàng để nhanh chóng kiểm tra metadata này.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về mục đích và cú pháp của lệnh stat của Linux, lệnh này được sử dụng để hiển thị thông tin chi tiết về các tệp và thư mục, bao gồm metadata của chúng như quyền, quyền sở hữu và dấu thời gian. Bạn cũng đã học cách sử dụng lệnh stat để truy xuất metadata của tệp và phân tích quyền và quyền sở hữu của tệp. Các điểm chính được đề cập trong lab này bao gồm hiểu cách sử dụng cơ bản của lệnh stat, diễn giải đầu ra và tận dụng các tùy chọn khác nhau của lệnh để tùy chỉnh thông tin được hiển thị.

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