Basic Concept Linux
Tất cả file đầu phân biệt hoa thường
=> log.txt khác Log.txt
Mọi thứ đều là file
Trong Linux mọi thứ đều được xem là file. Nó bào gồm các thiết bị phần cứng, process, thư mục, file thông thường, socket, link, v.v. Ngoài ra, hệ thống file thường chia thành các khối dữ liệu và inode. Với điều đó, có thể coi inode là nền tảng của hệ thống tệp Linux.
Về inode: Inode là cấu trúc dữ liệu lưu trữ siêu dữ liệu về mọi loại file trên hệ thống, là cấu trúc dữ liệu file lưu trữ thông tin về bất kỳ file Linux nào ngoài trừ tên và dữ liệu của tệp tin.
Thông tin chứa trong Inode:
File size;
Device mà file được chứa;
User và group IDs được liên kết với file;
Quyền cần thiết để truy cập vào file;
Tạo, đọc và ghi timestamps;
Vị trí dữ liệu (nhưng không phải file path).
Ngoài ra, Inodes cũng độc lập với tên file => Có thể sao chép một file, đổi tên và vẫn trỏ đến cùng một Inode như file gốc
File descriptors, pipes và chuyển hướng
Một lệnh luôn tạo ra đầu ra có thể được kết hợp bởi một lệnh khác, rồi lệnh khác lại tạo ra đầu ra khác có thể được kết hợp bởi một lệnh khác, cứ như vậy cho đến khi đầu ra của các lệnh xuất hiện ở một vị trí cụ thể (trên màn hình hoặc trong một tệp).
File Descriptors
Trừu tượng hóa một định danh để truy cập một tệp. Khi một tiến trình muốn thao tác một tệp, nó sẽ sử dụng một số là file descriptor cho biết tệp đó ở đâu và cách truy cập tệp đó.
Có 3 file decriptors cho biết cách truy cập file, đó là:
Standard Input (stdin): Standard Input là luông nhập văn bản, được liên kết với bàn phím. Nó được đặt tên là File Descriptor 0.
Standard Output (stdout): Standard Output là luồng cho đầu ra bình thường của các chương trình. Khi một chương trình chạy thành công, nó tạo ra một đầu ra là Standard Output, được liện kết với terminal hoặc trong terminal window. Tất cả đầu ra được tạo bởi các lệnh được ghi vào Standard Output được gọi là File Descriptor 1.
Standard Error (stderr): Standard Error cũng là luồng đầu ra văn bản nhưng được sử dụng để hiện thị thông báo lỗi. Khi lệnh thất bại, nó sẽ tạo ra một lỗi được hiện thị vởi Standard Error, được liên kết với terminal và được gọi là File Descriptor 2.
Pipes
Pipes cho phép join 2 hoặc nhiều câu lệnh được thực thi theo trình tự. Với nhiều hơn 2 lệnh chuyển hướng sẽ gọi là Pipeline
Chuyển hướng
Toán tử chuyển hướng >
có thể gửi đầu ra của lệnh tới một tệp hoặc đọc từ một tệp.
Standard Output Redirection
Đầu ra được chuyển hướng đến một tệp không được hiện thị trên standard output (màn hình hoặc terminal), chính xác là do nó đã được chuyển hướng đến tệp, ngoại trừ standard error.
Redirect Standard Input
Lệnh thay vì đọc thông tin từ bàn phím, nó đọc từ một tập tin.
Chuyển hướng tập tin thành lệnh:
cat < /etc/group > groups.txt
Nghĩa là
<
là toán tử chuyển hướng đầu vào, nghĩa là nội dung của tệp /etc/groups/
sẽ được lệnh đọc cat
và sau đó sẽ được gửi qua toán tử chuyển hướng đầu ra >
đến tệp “groups.txt”
Standard Error Redirection
Để chuyển hướng thông báo lỗi của lệnh đến một tệp, cần phải thông báo cho File Descriptor 2 trước toán tử chuyển hướng>
Ví dụ:
ls -zz 2> error.txt
Lệnh tee
Lệnh “tee” cho phép bạn gửi đầu ra của lệnh tới một tệp và tới màn hình cùng một lúc.
Cú pháp:
Tùy chọn:
Ví dụ:
Ví dụ 2:
Last updated