PUTTY: cancella lo scrollback dalla riga di comando


27

Quando mi collego al mio server tramite PuTTY, posso cancellare lo schermo visibile con il clearcomando.

Tuttavia, posso ancora scorrere indietro nella GUI di PuTTY per vedere le vecchie cose. Sono a conoscenza della funzione Clear Scrollback di PuTTY , ma richiede il clic del mouse.

Vorrei eseguire esattamente la stessa operazione "Clear Scrollback", ma dalla riga di comando.

È possibile?

Ho letto questo sito , che sembra indicarlo.

Tuttavia, i miei esperimenti hanno fallito. Per esempio:

printf '\033[3J'

Non fa niente, per me.

Potrei non capire il significato di CSI 3 Jin quel secondo link, anche se ...


Quale versione di PuTTY stai usando? La pagina indica che la funzione funziona in PuTTY 0.59 e versioni successive. Ho PuTTY 0.60 e funziona per me. Nota cancella solo il buffer di scrollback, non cancella lo schermo. (Se ho una barra di scorrimento posso effettivamente di scorrimento, quindi utilizzare questa sequenza, ho notato la barra di scorrimento diventare disattivato perché non c'è un tratto nulla di disponibile per scorrere fino Ma i resti dello schermo attualmente visualizzati sul posto..)
Bavi_H

@Bavi_H: ah, grazie - non mi rendevo conto che non avrebbe influenzato il testo attualmente visualizzato. Vedo che funziona anche. La soluzione completa che desidero è clear && printf '\033[3J'. Se fai una risposta, la accetterò.
jwd

Risposte:


32

La CSI 3 Jsequenza per cancellare il buffer di scrollback è stata aggiunta a PuTTY 0.59. (Nella pagina di richiesta del desiderio per questa funzione vedere la riga "fixed-in", oppure andare alla pagina delle modifiche PuTTY e cercare CSI 3 J.)

Come accennato jwd, è possibile immettere printf '\033[3J'su una riga di comando per inviare questa sequenza a PuTTY. Ricorda che questo cancella solo il buffer di scrollback, non cancella lo schermo. Se hai una barra di scorrimento che puoi effettivamente scorrere, quindi usa questa sequenza, vedrai la barra di scorrimento disabilitata perché all'improvviso non c'è nulla disponibile per scorrere. Ma la schermata attualmente visualizzata rimane al suo posto.

Come già detto jwd, è possibile cancellare sia lo schermo che il buffer di scorrimento usando clear && printf '\033[3J'


E per coloro che cercano una lettura leggera dei codici di controllo: xfree86.org/4.8.0/ctlseqs.html (: Questo è in underCSI P s J
jwd

11

Se sei abituato, come me, a utilizzare Ctrl+Lper l' Reset terminalopzione disponibile nel menu di sistema di PuTTY, potresti trovare utile abilitare Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Quindi quando si preme Alt+Space, l'opzione per "Clear scrollback"viene attivata da L(lettere minuscole; nessun Maiusc). Quindi, reset + cleardiventa la combinazione affascinante-mnemonica di Ctrl+Le Alt+Space Lsenza fastidiosi tocchi o disordine nella storia della tua conchiglia.


Funziona ed è facile da ricordare :)
Wyrmwood,

Non male, però, FYI: puoi anche evitare di ingombrare la cronologia della shell prefissando un comando con uno spazio.
jwd,

6

Crea un file di script e inseriscilo in una cartella inclusa nel percorso:

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

Premi CTRL + d per salvare ed uscire

Modifica autorizzazione su file:

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

Ora puoi usare il cmd cls :-)


1

La soluzione per me era quella di trasmettere caratteri '\ 033 \ 143':

printf ( "\ 033 \ 143");

Ciò cancella la schermata del terminale e riporta il cursore nell'angolo in alto a sinistra.


1
(1) La domanda richiede un comando da riga di comando (es. Shell). Questo non è un comando shell, è una riga di codice C; come tale, non è una risposta a questa domanda. (2) Questo post sarebbe leggermente più utile se dicessi qual è il \143personaggio e come si collega a questa domanda, idealmente con le citazioni.
Scott,

1
Per chi si chiede, questo corrisponde al codice di escape "full reset" ( ESC c). ASCII cha un valore 99che è ottale 143. Questo farà un sacco di altre cose oltre a cancellare lo scrollback, solo FYI.
jwd,

1

C'è un'opzione in putty in cui è possibile deselezionare il comportamento di scorrimento indietro predefinito. Deseleziona l'opzione "Sposta il testo cancellato nello scrollback".

Immagine Impostazioni Putty

Dopodiché, quando si emette il comando clear, lo schermo verrà cancellato e non verrà inserito il contenuto della schermata precedente nella schermata precedente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.