“Mọi thứ là một tệp” có nghĩa là gì trong Linux?

Mục lục:

“Mọi thứ là một tệp” có nghĩa là gì trong Linux?
“Mọi thứ là một tệp” có nghĩa là gì trong Linux?

Video: “Mọi thứ là một tệp” có nghĩa là gì trong Linux?

Video: “Mọi thứ là một tệp” có nghĩa là gì trong Linux?
Video: Cách tìm lại điện thoại bị mất bằng tài khoản Google - YouTube 2024, Có thể
Anonim
Một trong những tính năng xác định của Linux và các hệ điều hành giống UNIX khác là “mọi thứ đều là một tệp.” Đây là một sự đơn giản, nhưng hiểu ý nghĩa của nó sẽ giúp bạn hiểu cách Linux hoạt động.
Một trong những tính năng xác định của Linux và các hệ điều hành giống UNIX khác là “mọi thứ đều là một tệp.” Đây là một sự đơn giản, nhưng hiểu ý nghĩa của nó sẽ giúp bạn hiểu cách Linux hoạt động.

Nhiều thứ trên Linux xuất hiện trong hệ thống tệp của bạn, nhưng chúng không thực sự là tệp. Chúng là các tệp đặc biệt đại diện cho thiết bị phần cứng, thông tin hệ thống và những thứ khác - bao gồm trình tạo số ngẫu nhiên.

Các tệp đặc biệt này có thể nằm trong các hệ thống tệp giả hoặc ảo như / dev, chứa các tệp đặc biệt đại diện cho các thiết bị và / proc, chứa các tệp đặc biệt đại diện cho thông tin hệ thống và quy trình.

/ proc

Ví dụ: giả sử bạn muốn tìm thông tin về CPU của bạn. Thư mục / proc chứa một tệp đặc biệt - / proc / cpuinfo - chứa thông tin này.

Image
Image

Bạn không cần lệnh đặc biệt cho bạn biết thông tin CPU của bạn - bạn chỉ có thể đọc nội dung của tệp này bằng bất kỳ lệnh chuẩn nào hoạt động với các tệp văn bản thuần túy. Ví dụ, bạn có thể sử dụng lệnh cat / proc / cpuinfo để in nội dung của tệp này vào thiết bị đầu cuối - in thông tin CPU của bạn tới thiết bị đầu cuối. Bạn thậm chí có thể mở / proc / cpuinfo trong trình soạn thảo văn bản để xem nội dung của nó.

Hãy nhớ rằng, / proc / cpuinfo không thực sự là một tệp văn bản chứa thông tin này - hạt nhân Linux và hệ thống tệp proc đang hiển thị thông tin này cho chúng tôi dưới dạng tệp. Điều này cho phép chúng tôi sử dụng các công cụ quen thuộc để xem và làm việc với thông tin.

Thư mục / proc cũng chứa các tệp tương tự khác, ví dụ:
Thư mục / proc cũng chứa các tệp tương tự khác, ví dụ:
  • / proc / uptime - Phơi bày thời gian hoạt động của hạt nhân Linux của bạn - nói cách khác, hệ thống của bạn đã hoạt động bao lâu mà không tắt.
  • / proc / version - Hiển thị phiên bản hạt nhân Linux của bạn.

/ dev

Trong thư mục / dev, bạn sẽ tìm thấy các tệp đại diện cho thiết bị - cũng như các tệp đại diện cho những thứ đặc biệt khác. Ví dụ, / dev / cdrom là ổ đĩa CD-ROM của bạn. / dev / sda đại diện cho ổ đĩa cứng đầu tiên của bạn, trong khi / dev / sda1 đại diện cho phân vùng đầu tiên trên ổ cứng đầu tiên của bạn.

Muốn gắn đĩa CD-ROM của bạn? Chạy lệnh mount và chỉ định / dev / cdrom làm thiết bị mà bạn muốn gắn kết. Bạn muốn phân vùng ổ cứng đầu tiên của mình? Chạy tiện ích phân vùng đĩa và chỉ định / dev / sda làm đĩa cứng bạn muốn chỉnh sửa. Bạn muốn định dạng phân vùng đầu tiên trên ổ cứng đầu tiên của mình? Chạy lệnh định dạng và yêu cầu nó định dạng / dev / sda1.

Như bạn có thể thấy, việc phơi bày các thiết bị này như là một phần của hệ thống tập tin có những ưu điểm của nó. Hệ thống tệp cung cấp "không gian tên" nhất quán mà tất cả các ứng dụng có thể sử dụng để giải quyết và truy cập các thiết bị.
Như bạn có thể thấy, việc phơi bày các thiết bị này như là một phần của hệ thống tập tin có những ưu điểm của nó. Hệ thống tệp cung cấp "không gian tên" nhất quán mà tất cả các ứng dụng có thể sử dụng để giải quyết và truy cập các thiết bị.

/ dev / null, / dev / ngẫu nhiên và / dev / zero

Hệ thống tệp / dev không chỉ chứa các tệp đại diện cho thiết bị vật lý. Dưới đây là ba trong số các thiết bị đặc biệt đáng chú ý nhất mà nó chứa:

  • / dev / null - Loại bỏ tất cả dữ liệu được ghi vào đó - nghĩ về nó như một thùng rác hoặc lỗ đen. Nếu bạn từng thấy nhận xét yêu cầu bạn gửi khiếu nại đến / dev / null - đó là cách nói geeky “vứt chúng vào thùng rác”.
  • / dev / random - Tạo ra sự ngẫu nhiên khi sử dụng tiếng ồn môi trường. Đó là trình tạo số ngẫu nhiên mà bạn có thể nhấn vào.
  • / dev / zero - Tạo ra số không - một dòng số không đổi.

Nếu bạn nghĩ ba tệp này là tệp, bạn sẽ không thấy sử dụng cho chúng. Thay vào đó, hãy nghĩ chúng là công cụ.

Ví dụ, theo mặc định, các lệnh Linux tạo ra các thông báo lỗi và đầu ra khác mà chúng in ra đầu ra tiêu chuẩn, thường là đầu cuối. Nếu bạn muốn chạy một lệnh và không quan tâm đến đầu ra của nó, bạn có thể chuyển hướng đầu ra đó đến / dev / null. Việc chuyển hướng đầu ra của lệnh tới / dev / null sẽ loại bỏ nó ngay lập tức. Thay vì có mọi lệnh thực hiện "chế độ im lặng" riêng của mình, bạn có thể sử dụng phương thức này với bất kỳ lệnh nào.

command > /dev/null

Nếu bạn muốn có nguồn ngẫu nhiên - giả sử, để tạo khóa mã hóa, bạn sẽ không cần phải viết trình tạo số ngẫu nhiên của riêng mình - bạn có thể sử dụng / dev / random.
Nếu bạn muốn có nguồn ngẫu nhiên - giả sử, để tạo khóa mã hóa, bạn sẽ không cần phải viết trình tạo số ngẫu nhiên của riêng mình - bạn có thể sử dụng / dev / random.

Để xóa nội dung của ổ đĩa cứng bằng cách viết 0 cho nội dung đó, bạn không cần một tiện ích đặc biệt dành riêng cho zero-a drive - bạn có thể sử dụng các tiện ích chuẩn và / dev / zero. Ví dụ: đ lệnh đọc từ một vị trí và ghi vào một vị trí khác. Lệnh sau sẽ đọc số không từ / dev / zero và ghi chúng trực tiếp vào phân vùng đĩa cứng đầu tiên trên hệ thống của bạn, xóa hoàn toàn nội dung của nó.

(Cảnh báo: Lệnh này sẽ xóa tất cả dữ liệu trên phân vùng đầu tiên của bạn nếu bạn chạy nó. Chỉ chạy lệnh này nếu bạn muốn hủy dữ liệu.)

dd if=/dev/zero of=/dev/sda1

Ở đây chúng tôi đang sử dụng dd với các tệp đặc biệt (/ dev / zero và / dev / sda1), nhưng chúng tôi cũng có thể sử dụng dd để đọc và ghi vào tệp thực. Lệnh tương tự hoạt động cả hai để thao tác các thiết bị trực tiếp và làm việc với các tệp.

Làm rõ

Trong thực tế, chính xác hơn để nói rằng "mọi thứ đều là một luồng byte" hơn "mọi thứ đều là một tệp". / Dev / random không phải là tệp nhưng chắc chắn là một luồng byte.Và, mặc dù những thứ này về mặt kỹ thuật không phải là tệp, chúng có thể truy cập được trong hệ thống tệp - hệ thống tệp là "không gian tên" phổ quát, nơi mọi thứ đều có thể truy cập được. Bạn muốn truy cập trình tạo số ngẫu nhiên hoặc đọc trực tiếp từ thiết bị? Bạn sẽ tìm thấy cả hai trong hệ thống tập tin; không cần hình thức giải quyết khác.

Tất nhiên, một số thứ không thực sự là tệp - các quá trình chạy trên hệ thống của bạn không phải là một phần của hệ thống tệp. “Mọi thứ là một tệp” là không chính xác, nhưng rất nhiều thứ hoạt động như các tệp.

Đề xuất: