Lorsque nous utilisons clear
command ou Ctrl+ Lin terminal, cela efface le terminal mais nous pouvons toujours revenir en arrière pour voir les dernières commandes utilisées. Existe-t-il un moyen de vider complètement le terminal?
59
Réponses:
Vous pouvez utiliser
tput reset
.En plus
reset
,tput reset
vous pouvez utiliser le script suivant.Cela envoie des caractères de contrôle
Esc-C
à la console qui réinitialise le terminal.Mots-clés Google: Séquences de contrôle de la console Linux
man console_codes
dit:la source
tput reset
est plus rapide quereset
dans Ubuntu 16.04, au moinsVous pouvez utiliser la
reset
commande qui réinitialisera les paramètres du terminal.la source
Je sais que vous êtes sur un terminal gnome, mais je pensais pouvoir répondre par un conseil aux autres qui pourraient être (comme moi) sur un Mac:
Si vous utilisez
Terminal.app
ouiTerm.app
alorsControl+L
fera défiler vers le haut afin que le terminal semble vide, maisCmd+K
réinitialisera le terminal / effacera le défilement arrière.Ou, si vous pouvez définir les préférences de clavier pour votre terminal, vous pourrez peut-être attribuer quelque chose comme
Ctrl+K
entrer,echo -e \\033c
comme indiqué ci-dessus.la source
Cmd+K
c'est tout ce que je voulais. tyLa réponse d'Anthon fonctionne dans KDE Konsole, mais pas dans urxvt. Dans urxvt, j'utilise reset depuis quelques années pour effacer le scrollback (avec toutes les autres choses qu'il fait) et je ne suis pas convaincu que cela ne fonctionne pas dans Konsole. Alors maintenant, pour Linux, j'ai un nouvel alias:
Mais cela ne fonctionne pas sous OS X.
tput reset
ne fonctionne dans aucun contexte AFAICT.Dans KDE Konsole, ctrl- shift- kefface le défilement (y compris l’invite du shell en cours, qui est donc complètement vide). Dans iTerm ou le terminal d’Apple sous OS X, cmd- shift- kefface également le défilement. Pour ajouter cette fonctionnalité à urxvt, ajoutez ceci à ~ / .Xresources:
la source
allclear(){
`echo" Effacement du terminal et défilement en arrière ... "` `sleep 1.5`` clear; echo -e "\ 033c \ e [3J" `}
` Edit: Impossible de faire fonctionner le formatage. Si quelqu'un est capable de l'éditer pour qu'il soit lisible, je l'apprécierais.J'ai trouvé cela sur le net il y a quelques années et fonctionne bien pour moi. Il efface complètement le terminal sans historique de défilement.
la source
J'ai cartographié F12pour effacer l'écran dans chacun des coquillages suivants: bash , csh et coquille de poisson . Ma commande est différente de toutes les précédentes car elle conserve tout ce que vous avez déjà saisi dans la ligne en cours.
(Remarque: toutes les configurations ci-dessous dépendent du terminal, mais j'espère qu'elles fonctionneront pratiquement partout.)
frapper
Ouvrez le fichier
~/.inputrc
et insérez la ligne suivante:"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"
Pour que la nouvelle liaison de clé soit disponible, ouvrez un nouveau terminal ou tapez Ctrl+ Xpuis Ctrl+ Rpour recharger le fichier .inputrc dans le terminal actuel.
Explication
Le fichier ~ / .inputrc contrôle les raccourcis clavier du terminal bash.
A propos de la ligne:
"\e[24~"
, mappe la clé F12.C-k
( Ctrl+ X) efface le kill-ring (la mémoire copier-coller de bash).C-u
( Ctrl+ U) envoie la ligne actuelle au kill-ring et l’efface.echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n
envoie deux commandes groupées au terminal. Ils sont séparés par;
et terminés par\n
.echo -ne '\\ec\\e[3J'
efface l'écran.history -d $((HISTCMD-1))
évite ces deux commandes d'entrer dans l'histoire.C-y
( Ctrl+ Y) colle le kill-ring stocké par laC-u
commande.C-?
( Ctrl+ ?) équivaut à Backspaceet supprime l'espace inséré à l'étape 3 ci-dessus.Références:
csh
Tapez la commande ci-dessous.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
Vous pouvez également l'insérer dans votre
.cshrc
fichier pour charger la liaison de clé à chaque nouveau terminal.(Oui, c'est beaucoup plus simple que dans bash)
coquille de poisson
Tapez la commande ci-dessous.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Vous pouvez modifier et enregistrer la fonction
fish_user_key_bindings
pour charger la liaison de clé à chaque nouveau terminal.(Oui, c'est beaucoup plus simple que dans bash)
la source
[Ubuntu 16.04]
Le fichier .bash_history est créé dans le répertoire personnel de l'utilisateur une fois le terminal fermé
C'est utile, mais vous pouvez le supprimer si vous le souhaitez. Néanmoins, il serait créé chaque fois que vous finissez d'utiliser le terminal.
Vous pouvez le supprimer manuellement de:
votre navigateur de fichiers.
le terminal: n'oubliez pas qu'un nouveau fichier .bash_history sera créé à la fermeture du terminal (dans sa configuration par défaut).
Ou vous pouvez appeler une fonction personnalisée si vous enregistrez la fonctionnalité dont vous avez besoin dans un fichier lié depuis le bashrc .. vous pouvez éditer le bashrc lui-même si vous aimez y insérer votre code, mais les exemples suivants sont dans un fichier séparé.
Honnêtement, cela ne m’est pas utile, mais si vous souhaitez supprimer l’historique des commandes avant de quitter, vous pouvez le faire:
.bash_custom #c’est mon fichier personnalisé
puis au bas de ajouter le nom et le chemin de mon fichier
.bashrc # c'est le fichier de configuration pour le bash (je pense)
et c'est tout.
MAIS, pour faire exactement ce que vous voulez, vous avez juste besoin de cette fonction dans votre fichier personnalisé et le lier:
Ou tout simplement mettre la fonction dans le fichier .bashrc si vous voulez, mais de cette façon, vous aurez probablement besoin d'une instruction d'exportation après la fonction. Je ne suis pas sûr et si le fichier mis à jour est probablement perdu vos fonctions. Je ne suis pas sûr de cela aussi: RÉ .
N'oubliez pas que vous devez redémarrer le terminal lorsque vous modifiez le fichier .bashrc ou votre fichier "personnalisé".
la source
Pour moi, utiliser PuTTY contre CentOS 7, clear ne laisse que la commande clear dans le défilement, mais exécuter "clear && clear", deux instances de la commande clear en même temps, efface complètement le défilement et ne me laisse pas de barre de défilement. Essayez ça. C'est une solution étrange, mais aucune de celles-ci ici n'a effacé le défilement de manière aussi efficace, ce qui est le cas.
la source
Ajouté à
~/.inputrc
pour lier le nettoyage complet à F12:la source
Dans Fedora 30, l’historique est supprimé en supprimant le fichier $ HOME / .bash_history. Le moyen le plus simple d'effacer le fichier d'historique du terminal à l'aide du clavier est le suivant:
nautilus
et appuyez sur la Entertouche pour ouvrir l’application (GNOME) Files (anciennement Nautilus)..bash_history
(qui devrait apparaître dans la barre de recherche s'il est tapé immédiatement après l'ouverture de la fenêtre; sinon, la barre de recherche est accessible via Ctrl+ L).la source
la source
history -c
a été présenté dans deux réponses précédentes, et elles ont été supprimées car elles n'étaient pas des réponses correctes à la question. (2) Bien que la fermeture de la fenêtre du terminal efface (probablement) la mémoire des commandes précédentes du terminal, il est loin d'être évident que le PO veut le faire. … Et PS Ilexit
n'est pas garanti qu'une seule commande ferme la fenêtre du terminal.