web-dev-qa-db-fra.com

En bash, comment effacer l'entrée actuelle?

Supposons qu'en bash vous commencez à écrire une commande comme:

$ rm -rf /foo/bar/really/long/path/here

puis réalisez que vous ne voulez pas exécuter cela après tout. Existe-t-il un moyen d'effacer l'entrée avec une ou deux touches?

Ce que j'ai fait récemment, c'est l'ajout de l'écho et la mise en guillemets (Ctrl + A, echo ", Ctrl + E, ") puis appuyez sur Entrée. Y at-il un moyen plus rapide?

166
user85509
  1. Presse Ctrl-U pour tout supprimer avant le curseur. La commande supprimée sera stockée dans un tampon. presse Ctrl-Y pour coller la commande supprimée.

    (Facultatif: appuyez sur End ou Ctrl-E pour passer à la fin de l'entrée en premier.)

  2. Sinon, appuyez sur Ctrl-C pour abandonner ce que vous tapez.

275
John Kugelman

Essayer Ctrl+U. Cela efface la ligne d'entrée.

93
gbarry

Trouvé une courte référence sur http://www.ice2o.com/bash_quick_ref.html tandis que recherche .

ctrl + e (sinon à la fin de la ligne) plus ctrl + u le fera.

30
Roger Pate

Ctrl-UCtrl-K fait aussi l'affaire.

Ctrl-U supprime tout du début de la ligne jusqu'au curseur, Ctrl-K supprime tout, du curseur à la fin de la ligne. (Il est parfois utile de n'en utiliser qu'un seul.)

21
rur

Il existe deux options pour ce faire

ctrl+c - cela efface toute la ligne, peu importe où se trouve le curseur.

ctrl+u - cela efface la ligne de la position du curseur jusqu'au début.

13
vks

Pressage Esc plus Backspace en bash effacera tout jusqu'à la position du curseur.

(Dans Cygwin, cela effacera l'entrée jusqu'au prochain mot. Les mots sont séparés par des espaces, des traits de soulignement, ...)

9
Nippey

Un joli raccourci presse Esc#. Il ajoutera un # (faisant ainsi de la ligne un commentaire), puis appuyez sur entrée. Si vous décidez alors que vous avez toujours besoin de la commande, vous l'avez toujours dans votre historique :)

9
knittl

Il s'agit d'une extension de réponse de knittl qui stocke la ligne dans l'historique de la console en préfixant un hachage. Surmonter les inconvénients du presse-papiers, tels que l'écrasement accidentel ou l'impossibilité d'afficher la ligne de coupe pour référence.

Ligne de commentaires et retour d'une nouvelle invite

Utilisez l'un des raccourcis clavier:

  • Esc,#
  • Alt+#

Un caractère de hachage # sera ajouté à la ligne, transformant ainsi la ligne entière en commentaire. Il renverra également une nouvelle invite, comme si l'utilisateur avait appuyé sur Entrée. par exemple.

$ #rm -rf /foo/bar/really/long/path/here
$

Récupérer la ligne commentée

Pour récupérer l'ancienne ligne de l'historique de la console, utilisez l'un des raccourcis suivants:

  • Up
  • Ctrl+p

Répétez le raccourci clavier jusqu'à ce que la ligne souhaitée apparaisse.


Suppression du préfixe de hachage rapide

Pour supprimer le hachage de la ligne # préfixe, plusieurs options sont disponibles:

Supprimer le premier caractère et exécuter immédiatement la commande:

  • Esc,1,Esc,#
  • Alt+-Alt+#

Déplacez le curseur pour démarrer et supprimer le premier caractère, sans exécuter la commande:

  • HomeDelete
  • Ctrl+aCtrl+d
3
Cas

Considérez qu'en utilisant Ctrl-U (ou Ctrl-E et alors Ctrl-U) stockera ce que vous effacez dans un tampon afin que vous puissiez ensuite le coller plus tard en utilisant Ctrl-Y.

3
markisisme

Pour supprimer la ligne actuelle, essayez:

Ctrl-XCtrl-U

Comme alternative, vous pouvez utiliser:

Esc-D

ce qui nécessite dans ~/.inputrc:

"\ed": kill-whole-line 

voir: http://codesnippets.joyent.com/posts/show/169

2
caruso

Si vous utilisez Bash en mode vi (définissez-le avec set -o vi), puis appuyez Esc pour passer en mode normal de vi, et tapez dd pour supprimer la ligne courante!

2
Helmyano