2013-07-16 60 views
25

Đôi khi tôi phải chạy một công cụ dòng lệnh (tập lệnh Python) có đầu ra dường như ngắt thiết bị đầu cuối của tôi. Sau khi thực hiện xong, phản hồi nhập đã biến mất (tôi không thể thấy nội dung tôi đang nhập) và các ngắt dòng không được hiển thị. Điều này xảy ra nếu thiết bị đầu cuối được khởi động từ xa qua Putty và cũng cục bộ khi sử dụng gnome-terminal.Thiết bị đầu cuối Linux: nhập phản hồi đã biến mất, ngắt dòng không được hiển thị

Ví dụ, sau khi vấn đề xảy ra, nếu tôi gõ ENTERpwdENTER, tôi sẽ mong đợi để xem:

[[email protected] ~]$ 
[[email protected] ~]$ pwd 
/home/userA 
[[email protected] ~]$ 

Nhưng thực sự là đầu ra là:

[[email protected] ~]$ [[email protected] ~]$ /home/userA 
                  [[email protected] ~]$ 

Các cách duy nhất để sửa chữa nó là đóng thiết bị đầu cuối đó và bắt đầu một thiết bị đầu cuối mới.

Có thể liên quan: đầu ra tập lệnh chứa một số định dạng dựa trên thiết bị đầu cuối (ví dụ: invert foreground/background để làm nổi bật một số thông báo trạng thái). Nếu tôi kết xuất đầu ra này vào một tệp, tôi có thể thấy những thứ như [07mSome Message Here[0m.

Bất kỳ ý tưởng nào tôi có thể làm để ngăn chặn điều này?

+0

Bạn có vẻ đang ở trong một vỏ bọc phụ mà bạn cần thoát ra để quay lại thiết bị đầu cuối ban đầu của mình. Chỉ cần thử thoát, pwd –

+1

Đây là một chủ đề cho SO; thuộc về [unix.se] hoặc [su]. Điều đó nói rằng, bạn thường có thể sửa chữa một phiên thiết bị đầu cuối bị hỏng bằng cách gõ mù 'stty sane', mà phục hồi thiết bị đầu cuối của bạn để cài đặt 'sane'. –

+1

Ngoài ra, khi bạn có vấn đề về thiết bị đầu cuối, bạn có thể thử sửa chúng bằng cách sử dụng 'reset' hoặc' stty sane'. – cabad

Trả lời

59

Thực hiện lệnh "reset" và thiết bị đầu cuối của bạn nên được phục hồi
tham khảo:
http://www.commandlinefu.com/commands/view/32/salvage-a-borked-terminal

Vấn đề này xảy ra thường khi đổ dữ liệu nhị phân đến nhà ga "STDOUT" mà khi các mã thoát đã nhận được xử lý có thể làm bất cứ điều gì từ thay đổi màu sắc của văn bản, vô hiệu hóa echo, thậm chí thay đổi bộ ký tự. Cách dễ dàng để tránh điều này là đảm bảo bạn không đổ dữ liệu nhị phân chưa biết đến thiết bị đầu cuối và nếu sau đó bạn phải chuyển đổi nó thành hệ thập lục phân để đảm bảo nó không thay đổi cài đặt đầu cuối.

+2

'đặt lại' có liên quan, đó là những gì tôi đang tìm kiếm. Cảm ơn . –

+0

Cảm ơn rất nhiều! Trong trường hợp của tôi chạy ipython bên trong một thùng chứa Kubernetes không hiển thị đầu vào đã gõ, thực thi 'reset' đã sửa nó. – dusan

+0

Tôi có cùng một vấn đề khi tôi thực thi 'bash x.sh' bên trong một trình bao ssh. 'reset' không giúp được gì, nhưng nếu tôi thực thi lại file .sh, vấn đề sẽ xuất hiện trở lại. Bạn có ý tưởng gì không? (tệp .sh về cơ bản chỉ thực thi 'gói sbt' để tạo dự án scala của tôi) –