it-swarm-vi.com

Lệnh mknod được sử dụng để làm gì?

Tôi mới bắt đầu sử dụng Ubuntu làm hệ điều hành chính của mình và tôi muốn tìm hiểu về những điều tôi không nên làm và học theo những điều tồi tệ mà mọi người đã làm trong quá khứ. Tôi đã xem qua những email này về những câu chuyện kinh dị mà các quản trị viên UNIX & Linux đã thực hiện trên hệ thống của chính họ khi chúng mới xuất hiện. Nhiều người trong số họ liên quan đến việc sử dụng lệnh mknod để vừa làm phiền vừa khắc phục sự cố. Tôi chưa bao giờ nghe lệnh này trước đây và trang man trong Ubuntu không hữu ích lắm. Vì vậy, câu hỏi của tôi là, lệnh này được sử dụng để làm gì, và một số ví dụ mà nó hữu ích trong việc sử dụng hàng ngày là gì?

52
Mark Tomlin

mknod ban đầu được sử dụng để tạo ký tự và chặn các thiết bị cư trú /dev/. Ngày nay, phần mềm như udev sẽ tự động tạo và xóa các nút thiết bị trên hệ thống tệp ảo khi phần cứng tương ứng được phát hiện bởi kernel, nhưng ban đầu là /dev chỉ là một thư mục trong / đã được điền trong khi cài đặt.

Vì vậy, có, trong trường hợp thảm họa gần hoàn thành gây ra /dev hệ thống tệp ảo không tải và/hoặc udev thất bại một cách ngoạn mục, sử dụng mknod để tái tạo một cách siêng năng ít nhất một cây thiết bị thô sơ để có được một cái gì đó sao lưu có thể được thực hiện ... Nhưng vâng, đó là câu chuyện kinh dị thời gian. Cá nhân, tôi khuyên bạn nên sử dụng một thanh USB hoặc CD cứu hộ.

Ngoài việc tạo ra các đường ống có tên, tôi không thể nghĩ đến việc sử dụng hàng ngày có thể có mà người dùng cuối sẽ cần quan tâm - và thậm chí điều đó còn kéo dài định nghĩa về 'sử dụng hàng ngày'.

47
Shadur

Bạn có thể làm một đường ống có tên với nó.

Tôi sử dụng nó với một chương trình để đọc từ nó, và một chương trình khác để viết vào nó.

Làm cho nó dễ dàng hơn để giao tiếp giữa các quá trình.

Mặt khác, bạn có thể tạo tệp thiết bị cho các thiết bị không có mặt.

Ngoài ra: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm

7
polemon

Khi các DBA của Oracle hoạt động trên các thiết bị thô để tạo các nhóm đĩa Oracle ASM, chúng tôi thường xuyên sử dụng mknod để liên kết các thiết bị.

Các câu trả lời ở trên rất hữu ích với tôi vì chúng tôi không phải là quản trị viên hệ thống. Tôi chỉ muốn chỉ ra rằng có thể hiếm khi theo quan điểm của quản trị viên lưu trữ để sử dụng mknod nhưng theo quan điểm của Oracle ASM thì đây là cách sử dụng phổ biến. (Có thể ai đó có thể đưa ra một cách tốt hơn cho chúng ta?)

5
Jay Jee

IMHO, ngay cả để tạo các ống có tên, lệnh mkfifo vẫn tốt hơn mknod. Thứ nhất, nó tự mô tả trong tên của nó, Thứ hai, nó cho phép tùy chọn -m để ghi đè cài đặt ô.

3
Tom