PuTTY: xóa cuộn từ dòng lệnh


27

Khi tôi kết nối với máy chủ của mình thông qua PuTTY, tôi có thể xóa màn hình hiển thị bằng clearlệnh.

Tuy nhiên, tôi vẫn có thể cuộn ngược trong GUI của PuTTY để xem nội dung cũ. Tôi biết tính năng Clear Scrollback của PuTTY , nhưng yêu cầu nhấp chuột.

Tôi muốn thực hiện chính xác thao tác "Xóa cuộn ngược" đó, nhưng từ dòng lệnh.

Có thể không?

Tôi đọc trang web này , dường như chỉ ra như vậy.

Tuy nhiên, thí nghiệm của tôi đã thất bại. Ví dụ:

printf '\033[3J'

Không có gì, cho tôi.

Tôi có thể không hiểu ý nghĩa của CSI 3 Jliên kết thứ hai đó, mặc dù ...


Phiên bản PuTTY nào bạn đang sử dụng? Trang chỉ ra tính năng hoạt động trong PuTTY 0.59 trở lên. Tôi có PuTTY 0,60 và nó hoạt động với tôi. Lưu ý rằng nó chỉ xóa bộ đệm cuộn lại, nó không xóa màn hình. (Nếu tôi có một thanh cuộn tôi có thể thực sự di chuyển, sau đó sử dụng trình tự này, tôi nhận thấy các thanh cuộn trở nên vô hiệu hóa vì có đột nhiên không có gì có sẵn để cuộn để Nhưng những gì còn lại màn hình đang hiển thị tại chỗ..)
Bavi_H

@Bavi_H: ah, cảm ơn bạn - Tôi đã không nhận ra rằng nó sẽ không ảnh hưởng đến văn bản hiện đang hiển thị. Tôi thấy nó đang làm việc, quá. Giải pháp đầy đủ tôi muốn là clear && printf '\033[3J'. Nếu bạn trả lời, tôi sẽ chấp nhận nó.
jwd

Câu trả lời:


32

Trình CSI 3 Jtự xóa bộ đệm cuộn được thêm vào PuTTY 0.59. (Trên trang yêu cầu mong muốn cho tính năng này, hãy xem dòng "cố định" hoặc đi đến trang thay đổi PuTTY và tìm kiếm CSI 3 J.)

Như jwd đã đề cập, bạn có thể nhập printf '\033[3J'vào một dòng lệnh để gửi chuỗi này đến PuTTY. Lưu ý rằng điều này chỉ xóa bộ đệm cuộn lại, nó không xóa màn hình. Nếu bạn có một thanh cuộn bạn thực sự có thể cuộn, sau đó sử dụng chuỗi này, bạn sẽ thấy thanh cuộn bị vô hiệu hóa vì đột nhiên không có gì để cuộn. Nhưng màn hình hiện đang hiển thị vẫn còn.

Như jwd đã đề cập, bạn có thể xóa cả màn hình và bộ đệm cuộn bằng cách sử dụng clear && printf '\033[3J'


Và đối với những người tìm kiếm một số ánh sáng đọc về mã kiểm soát: xfree86.org/4.8.0/ctlseqs.html (: Cái này ở dướiCSI P s J
jwd

11

Nếu bạn đã quen, như tôi, sử dụng Ctrl+Lcho Reset terminaltùy chọn có sẵn trong menu hệ thống của PuTTY, thì bạn có thể thấy nó hữu ích để kích hoạt Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Sau đó, khi bạn nhấn Alt+Space, tùy chọn cho "Clear scrollback"được kích hoạt bởi L(chữ thường; không có Shift). Do đó, reset + cleartrở thành sự kết hợp duyên dáng Ctrl+LAlt+Space Lkhông có bất kỳ sự nhầm lẫn hay lộn xộn nào trong lịch sử vỏ của bạn.


Hoạt động và dễ nhớ :)
Wyrmwood

Không tệ, mặc dù FYI: bạn cũng có thể ngăn chặn sự lộn xộn trong lịch sử shell của mình bằng cách thêm tiền tố vào một khoảng trắng.
JWD

6

Tạo một tệp script và đặt nó vào một thư mục bao gồm đường dẫn:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

Nhấn CTRL + d để lưu và thoát

Thay đổi quyền trên hồ sơ:

chmod a+x /usr/local/bin/cls

Bây giờ bạn có thể sử dụng cls cmd :-)


1

Giải pháp cho tôi là truyền các ký tự '\ 033 \ 143':

printf ("\ 033 \ 143");

Thao tác này sẽ xóa màn hình đầu cuối và đặt con trỏ trở lại ở góc trên bên trái.


1
(1) Câu hỏi yêu cầu một lệnh dòng lệnh (tức là shell). Đây không phải là một lệnh shell, nó là một dòng mã C; như vậy, nó không phải là một câu trả lời cho câu hỏi này. (2) Bài đăng này sẽ hữu ích hơn một chút nếu bạn nói \143nhân vật là gì và nó liên quan đến câu hỏi này như thế nào, lý tưởng với trích dẫn.
Scott

1
Đối với những người thắc mắc, điều này tương ứng với mã thoát "thiết lập lại đầy đủ" ( ESC c). ASCII ccó giá trị 99là bát phân 143. Điều này sẽ làm một loạt các thứ khác ngoài việc xóa cuộn, chỉ là FYI.
JWD

1

Có một tùy chọn trong putty nơi bạn có thể bỏ chọn hành vi cuộn ngược mặc định. Chỉ cần bỏ chọn tùy chọn "Đẩy văn bản đã xóa vào cuộn lại".

Hình ảnh cài đặt Putty

Sau này khi bạn phát lệnh xóa, nó sẽ xóa màn hình và sẽ không đưa nội dung màn hình trước đó vào cuộn lại.

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.