Comment puis-je supprimer mes commandes rapidement?

168

J'utilise un terminal pour presque toutes les tâches. Disons que j'ai entré une commande énorme comme celle-ci:

sudo a-huge-command

Quel est le moyen le plus simple de supprimer toute la commande avec un seul raccourci plutôt que de continuer à appuyer sur la backspacetouche?

Je suis un débutant sur Ubuntu qui cherche à utiliser Ubuntu de manière professionnelle.

homme chauve-souris
la source
13
Il est également intéressant de noter que vous pouvez définir bash(et plusieurs autres coquilles) pour comprendre les clés de vi: set -o vi. Vous pouvez ensuite faire esc, dd(ou autrement modifier / remplacer comme vous pouvez le faire en vi [m]).
Wayne Werner
6
Accueil, '#', Entrez
Alistair Buxton
5
c'est un bidouillage pas cher, mais pour ce que ça vaut, je tape généralement la flèche vers le haut jusqu'à ce que j'arrive à une commande très courte (par exemple, ls), puis un retour arrière - ceci ne prend généralement que quelques touches, donc ce n'est pas si grave 'affaire.
KennyPeanuts
CTRL <- tapoté plusieurs fois me permet généralement de revenir au début de ma requête. Est-ce ce que vous voulez dire?
Marc-André Benoit

Réponses:

177

Utilisez Ctrl+ Upour couper le texte de la position du curseur au début de la ligne de commande. Plus tard, si vous le souhaitez, utilisez Ctrl+ Ypour coller le texte coupé.

Si vous souhaitez simplement supprimer la ligne de commande actuelle et obtenir une nouvelle invite de commande, appuyez sur Ctrl+ C.

Pour plus de références, veuillez consulter la documentation Ubuntu pour utiliser le terminal.

Eric Carvalho
la source
Cette réponse fonctionne à la fois pour bash (Ubuntu par défaut) et tsch.
Nick
Je pensais que dash était la valeur par défaut d'Ubuntu?
Chris
15
dashest l'interpréteur par défaut pour les /bin/shcommandes. bashest le login par défaut et le shell TTY.
darvids0n
9
Je trouve que Ctrl + Cc'est une mauvaise habitude, étant donné que j'envoie souvent accidentellement des signaux à des programmes avec leur propre invite, les tuant et perdant mes progrès et / ou mon élan.
user606723
111

Ctrl+ Udevrait vous aider.

Vous trouverez ci-dessous le reste des options disponibles. Saisi d' ici

UNIX comprend plusieurs commandes de touches de contrôle, commandes que vous entrez en maintenant la touche de contrôle enfoncée (ctrl) tout en appuyant sur une deuxième touche.

CTRL+ S- fige l'écran et empêche tout affichage à l'écran de continuer (équivalent à une touche de non-défilement) (cela prend parfois un moment pour fonctionner)

CTRL+ Q- débloque l'écran et laisse l'affichage continuer

CTRL+ C- interrompt un programme en cours

CTRL+ \- identique à CTRL - C mais plus fort (utilisé lorsque le terminal ne répond pas)

CTRL+ Z- suspend un programme en cours (utilisez la commande fg pour continuer le programme, voir s $

CTRL+ H- supprime le dernier caractère saisi

CTRL+ W- supprime le dernier mot saisi

CTRL+ U- supprime la dernière ligne saisie

CTRL+ R- recherche du texte de l'historique

CTRL+ D- termine la saisie de texte pour de nombreux programmes UNIX, y compris le courrier et l'écriture.

Remarque:

Lorsque nous supprimons avec CTRL+ Wou CTRL+ U, nous effectuons également une opération (édition) "couper" (yank in) (supprimer et stocker dans le tampon / le presse-papiers). Pour coller la chaîne dans le tampon / presse-papiers, utilisez CTRL+ Y.

devav2
la source
7
En fait, ctrl-r recherche le texte de l'historique.
Eric Carvalho
@ EricCarvalho Vous avez raison. Supprimer cette option de la réponse.
devav2
2
Ce sont des codes de contrôle UNIX génériques. Le terminal par défaut d'ubuntu est basé sur bash, ce qui est différent.
OrangeDog
Ctrl-U supprime du curseur jusqu'au début de la ligne. Je l'utilise souvent en plaçant le curseur juste avant les arguments d'une commande de l'historique. De cette façon, je peux taper une nouvelle commande en utilisant les mêmes arguments, comme changer moins de fichier en fichier kate afin de pouvoir éditer le fichier après l'avoir examiné pour voir si des modifications étaient nécessaires.
Joe
1
@OrangeDog - Tout va bien - j'utilise tout cela dans mon terminal bash Ubuntu, à l'exception du CTR- \ one.
Belacqua
61

J'utilise habituellement Alt+ Backspace. Si vous utilisez bash, cela vous permettra de supprimer jusqu'à ce que le précédent caractère spécial ( /, ;, , etc.). Si vous utilisez zsh, il supprimera également les barres obliques et les points-virgules. C'est beaucoup plus rapide que de frapper Backspace.

En bash, cela diffère de Ctrl+ wdans le sens où Ctrl+ wsupprime le mot précédent où Alt+ Backspacesupprime jusqu'à ce que le caractère spécial précédent soit trouvé. En zsh, les deux combinaisons de touches font la même chose

Accélération-g
la source
8
Ctrl + W fait la même chose.
Hytromo
Ne fonctionnera pas pour les terminaux tels que rxvt cependant.
sqram
1
@lyrae Pour moi, cela fonctionne parfaitement dans rxvt, mais pas dans xterm. Et cela ne fonctionne que si set -o emacsest défini.
Marco
J'utilise ALT+Backspaceaussi bien que CTRL+C. Cela fonctionne sur n'importe quel linux. :)
tftd
@hakermania: Non, c'est différent. Ctrl + w efface un mot et Alt + retour arrière efface jusqu'à ce que le caractère spécial précédent ( /, ;, ``, etc).
jobin
35

Voici une liste de raccourcis clavier pouvant être utilisés avec le bashshell.

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

Ce que vous voulez faire est réalisé par Ctrl+ Cou Ctrl+ Uà la fin de la ligne.

OrangeDog
la source
Voici la liste la plus complète, Bien que la meilleure réponse soit Ctrl+Cou ( Ctrl+E Ctrl+U)
New Alexandria
Combien de personnes sur la liste s'appliquent à tcsh, ce qui m'intéresse?
TCSGrad
@ shan23 Lisez la section "Commandes de l'éditeur" de man tcsh, ou utilisez-la bindkey -l. On dirait que c'est très différent.
OrangeDog
Notez que certaines d'entre elles échoueront si vous utilisez des liaisons vi pour Readline de bash (ou d'un autre shell). Celles-ci devraient surtout s’appliquer à TCSH; ces pré-daté bash. bash a également incorporé de nombreux raccourcis d’historique intéressants de csh / tcsh.
Belacqua
25

Alt+ #(c'est-à-dire, Alt+ Shift+ 3) commentera la commande en cours et continuera sur la ligne suivante.

Par exemple, si vous tapez t, e, s, t, Alt+ #, vous obtenez:

you@computer$ #test
you@computer$ 

Si vous souhaitez obtenir votre ancienne commande en arrière, vous pouvez appuyer sur la flèche et supprimer le caractère de hachage ( Up, Home, Deleteou Up, Ctrl+ A, Delete).

Je pense que c’est une fonctionnalité de GNU Readline , car elle fonctionne en Bash, Python et MySQL.

Boule de neige
la source
22

Ctrl+ C- en plus d'interrompre les commandes en cours, il peut également être utilisé pour "interrompre" votre saisie en ligne de commande.

Contrairement au Ctrl+ U, vous verrez toujours ce que vous avez tapé, mais votre curseur passera à la nouvelle ligne et vous obtiendrez une invite de ligne de commande vide.

Vilmantas Baranauskas
la source
4
Je préfère cela simplement à cause de la mémoire musculaire, et vous pouvez toujours copier / coller tout ce qui est important car la ligne de commande abandonnée y reste.
Ish
8

Le readlineraccourci Bash Ctrl+ X+ Eest très utile lorsque vous travaillez sur la ligne de commande. Si vous êtes en train d'entrer une longue commande et que vous décidez de l'ouvrir dans votre éditeur de texte par défaut, il vous suffit d'utiliser le raccourci.

Il utilise la readlinebibliothèque de Bash et ce raccourci s'appelle le edit-and-execute-command. Vous pouvez définir votre éditeur par défaut en plaçant export EDITOR="/usr/bin/vi"dans ~/.bashrcou ~/.bash_aliases.

Entrez bind -Ppour afficher vos readlineliaisons actuelles et consultez man readlineou les pages de manuel Ubuntu en ligne pour plus d'informations.


la source
7

J'utilise aussi Esc+ Backspacepour supprimer tous les caractères précédents jusqu'à un caractère spécial. C'est pareil, c'est Alt+ Backspace. Pratique si vous ne supprimez que quelques mots à la fois.

jytou
la source
3

Pour les viraccourcis

Lorsque vous utilisez une vicarte clé comme bashavec set -o viou zshavec bindkey -v:

Mode d'insertion

C'est exactement la même frappe que dans le mode par défaut / emacs:

Ctrl+U

supprimer de la position actuelle au début de la ligne. Donc, il supprime toute la ligne si le curseur est à la fin.

Mode normal

Il existe plusieurs façons de supprimer la ligne en deux frappes:

Supprimer ddligne par ligne, avec le nombre par défaut d'une ligne:

dd

qui est le plus simple en termes de touches touchées.

Une autre méthode consiste à: aller au début de la ligne avec ^et supprimer à la fin de la ligne avec D:

^D

Ces deux suppriment la ligne entière, pas seulement à gauche, comme Ctrl+ Uen mode insertion ou la variante Blow.

Si vous êtes actuellement en fin de ligne, vous n'avez donc pas besoin de supprimer quoi que ce soit à droite, ceci ferait également:

Supprimer d'ici dau début de la ligne ^:

d^

Vous pouvez les utiliser tous à partir du mode incrusté. Vous devez d'abord utiliser l'échappement habituel pour passer en mode normal. Par exemple, pour supprimer toute la ligne du mode insertion, utilisez:

Escdd

Volker Siegel
la source