Đã làm một con mèo / dev / urandom - Thiết bị đầu cuối bị hỏng


31

Vì tò mò, khi bộ ký tự vỏ của bạn không làm điều gì đó giống như cat /dev/urandomcó cách nào khắc phục điều đó không?


6
Chắc chắn ... đừng làm vậy! Ngoài ra, nếu bạn nghĩ rằng một lệnh có thể tạo ra các ký tự không hợp lệ, hãy sử dụng cat -A.
jnylen

2
Ngoài ra, tôi luôn tò mò làm thế nào catcó thể phá vỡ bộ ký tự của bạn ...
crasic

cat / bin / ls thường sửa lỗi này (không chắc tại sao)
skarface

2
@crasic: nó gửi nhị phân đến thiết bị đầu cuối và mỗi thiết bị đầu cuối có cách thay đổi phông chữ / màu / vv bằng cách nhận các ký tự đặc biệt. Xem điều kỳ diệu: linusakesson.net/programming/tty (hay còn gọi là "TTY demystized ). Tùy thuộc vào cài đặt TATE của bạn, nó sẽ phản ứng khác nhau (và tất nhiên, tùy thuộc vào byte nào nhận được và theo thứ tự nào).
Olivier Dulac

@skarface: có lẽ bạn đã may mắn khi nhị phân của / bin / ls có, gần cuối chuỗi byte đã cố định màn hình. Nó sẽ phụ thuộc vào HĐH, hệ nhị phân (nghĩa là phiên bản nào, optino đã biên dịch được sử dụng, v.v.) và cài đặt TERM của thiết bị đầu cuối của bạn ... vì vậy tôi khuyên bạn nên sử dụng "stty sane" thay thế ^^
Olivier Dulac

Câu trả lời:


50

Hãy thử một trong những điều sau:

stty sane

hoặc là

reset

Nếu cả hai đều không hoạt động hoặc thiết bị đầu cuối của bạn bị rối đến mức bạn thậm chí không thể nhập lệnh, thì tốt nhất là đóng thiết bị đầu cuối và bắt đầu một thiết bị mới.

Lưu ý rằng stty saneđược xác định bởi POSIX trong khi resetkhông. Điều đó có nghĩa là trên một số hệ thống có thể không có resethoặc nó có thể làm một cái gì đó hoàn toàn khác, như đặt lại toàn bộ hệ thống. Tôi chưa gặp phải một hệ thống mà không có reset.

Để biết thêm thông tin cơ bản, hãy đọc chương "Bàn phím và bàn điều khiển Linux HOWTO" "Đặt lại thiết bị đầu cuối của bạn" .


Tôi đã cho bạn câu trả lời đúng bởi vì bạn là người đầu tiên. Xin lỗi những người khác.
Pedro Montoto García

Nói chung, việc viết các byte ngẫu nhiên vào một thiết bị đầu cuối khó có thể đặt nó trong một tình huống cần stty sane để khắc phục; đó có nhiều khả năng đến từ một chương trình bị lỗi.
Random832

stty sanelà cách an toàn và đúng đắn (tôi không thích "thiết lập lại" vì những lý do tôi đã nêu trong các bình luận bên dưới câu trả lời của lain)
Olivier Dulac

1
@OlivierDulac Cảm ơn bạn đã chia sẻ kinh nghiệm của bạn. Tôi đã nghiên cứu và học được rằng resetkhông được định nghĩa bởi POSIX.
lesmana

1
@ Tôi không nghĩ rằng @OlivierDulac đang lan truyền FUD. Tham chiếu resetkhông "an toàn" là thực tế không được định nghĩa bởi POSIX. Vui lòng ngừng truyền bá FUD rằng @OlivierDulac đang lan truyền FUD.
lesmana

20

Bạn có thể thử sử dụng lệnh reset .


4
Bạn đã liên kết trang người đàn ông, ngầm đề xuất một RTFM tốt. Bạn là người hùng của tôi hôm nay, cảm ơn.
Luke404

Điều này hoạt động trên nhiều unixes ... Nhưng một số lời cảnh báo: hãy cẩn thận: trên một số hệ thống (ví dụ: các hệ điều hành khác, hoặc có thể một số phân phối linux khác?) Điều này có thể bắt đầu thiết lập lại hệ thống (tôi tin ví dụ như nó làm một số phiên bản của solaris). Do đó, thiết lập lại hệ thống, tức là buộc khởi động lại (không tắt máy đúng cách) ... Giống như với bất kỳ lệnh nào, hãy cẩn thận. (Điều này cũng đúng với các lệnh khác: ví dụ: một số 'tar' KHÔNG loại bỏ tiền tố "/" và do đó có thể ghi đè lên các tệp nhạy cảm, v.v. Luôn luôn đảm bảo rằng bạn biết cách bạn định sử dụng lệnh trên hệ thống đang sử dụng.)
Olivier Dulac

1
@OlivierDulac; OP đã gắn thẻ câu hỏi linux của anh ấy để anh ấy có câu trả lời linuxcentric mặc dù nó sẽ hoạt động trên các hệ thống unix khác bao gồm Solaris mà không gặp vấn đề gì. Tôi đã làm việc với Solaris trong 15 năm! Bạn đang nhầm lẫn lệnh SPARC Open Boot Prom reset với lệnh userland reset (1). Nếu bạn phát hành thiết lập lại tại dấu nhắc ok, bạn không có khả năng khôi phục từ thiết bị đầu cuối bị hỏng.
user9517 hỗ trợ GoFundMonica

@lain: ah, đây có thể là cái này (Open Boot prom), thật vậy. Tuy nhiên, điều đó có nghĩa là trên một số môi trường "thiết lập lại" được liên kết để đặt lại máy chủ, vì vậy tôi thích mọi người (ngay cả khi họ "chủ yếu" trên linux) học / sử dụng lệnh "an toàn" "stty sane" (trong đó nêu rõ điều gì nó không, và không mơ hồ như "thiết lập lại") ... đó là lý do tại sao tôi cảnh báo độc giả về điều này.
Olivier Dulac

@OlivierDulac Solaris, CentOS, Ubuntu, OpenBSD đều thiết lập lại liên kết thành tset - vui lòng cung cấp bằng chứng cho thông tin sai lệch của bạn ngoài việc bạn đang đánh giá sai điều gì đó. OBP không phải là hệ điều hành máy chủ nên nó không được tính.
user9517 hỗ trợ GoFundMonica

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.