Tại sao `cat / dev / urandom` phá vỡ thiết bị đầu cuối của bạn?


Câu trả lời:


21

Mặc dù có các ký tự ASCII bình thường, có thể in của bạn được gửi qua lại trên thiết bị đầu cuối, nhưng cũng có nhiều ký tự không thể in được sử dụng cho hệ thống để giao tiếp với thiết bị đầu cuối. Ví dụ: nếu một chương trình gửi ký tự 0x07("ký tự chuông ASCII"), thiết bị đầu cuối của bạn sẽ phát ra tiếng bíp.

Các trình tự đặc biệt khác có thể được sử dụng để thay đổi màu sắc của văn bản được hiển thị, hướng hiển thị của nó, tiêu đề của cửa sổ, kích thước của cửa sổ, v.v., trong số nhiều thứ khác.

Khi bạn

cat /dev/urandom

Một loạt các ký tự ngẫu nhiên được đổ vào thiết bị đầu cuối của bạn và thiết bị đầu cuối không thể nói rằng đó không phải là mã kiểm soát thực sự.

Bởi vì chương trình đang gửi các lệnh ngẫu nhiên đến thiết bị đầu cuối một cách hiệu quả, thiết bị đầu cuối kết thúc ở trạng thái ngẫu nhiên, thường không sử dụng được.


4

Một số đầu ra ngẫu nhiên sẽ là mã thoát ANSI ( http://en.wikipedia.org/wiki/ANSI_escape_code ), có thể thực hiện các công cụ thú vị như ẩn con trỏ hoặc chọn phông chữ thay thế. Một khả năng khác là các chuỗi unicode: Một bytestream ngẫu nhiên sẽ không phải là UTF-8 hợp lệ và có lẽ không phải tất cả các thiết bị đầu cuối nhận biết unicode đều xử lý một cách duyên dáng.


1

cat /dev/urandomsẽ cung cấp cho bạn một luồng byte ngẫu nhiên giữa 0255, không phải tất cả các giá trị đó là các ký tự văn bản hợp lệ. Bởi vì cửa sổ đầu cuối là nguồn cấp dữ liệu không hợp lệ, nó không bao giờ được mong đợi để xử lý nó có thể khiến ứng dụng đầu cuối ở trạng thái "bị hỏng".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.