Vraag Hoe verwijder ik mijn opdrachten snel?


Ik gebruik terminal voor bijna alle taken. Laten we zeggen dat ik een enorm commando als dit heb ingevoerd:

sudo a-huge-command

Wat is de gemakkelijkste manier om de hele opdracht te verwijderen met een enkele snelkoppeling, in plaats van te blijven raken backspace sleutel?

Ik ben een Ubuntu-newbie die op een professionele manier Ubuntu wil gebruiken.


163
2017-09-04 11:56


oorsprong


Het is ook de moeite waard om op te merken dat je kunt instellen bash (en verschillende andere shells) om vi-sleutels te begrijpen: set -o vi. Je zou het dan kunnen doen esc, dd (of anders bewerken / vervangen zoals je zou kunnen doen in vi [m]). - Wayne Werner
Home, '#', Enter - Alistair Buxton
dit is een goedkope hack maar voor wat het waard is, klik ik meestal gewoon op de pijl totdat ik bij een heel kort commando kom (bijv. ls) en dan backspace - dit zijn meestal maar een paar toetsaanslagen, dus het is niet zo'n grote deal. - KennyPeanuts
CTRL <- een paar keer tikken laat me meestal teruggaan naar het begin van mijn vraag. Bedoel je dat? - marc-andre benoit


antwoorden:


Gebruik Ctrl+U om tekst vanaf de cursorpositie naar het begin van de opdrachtregel te knippen. Later, als u wilt, gebruik Ctrl+Y om de uitgesneden tekst te plakken.

Als u alleen de huidige opdrachtregel wilt verwijderen en een nieuwe schone aanwijzing krijgt Ctrl+C.

Raadpleeg voor meer informatie de Ubuntu-documentatie voor De terminal gebruiken


176
2017-09-04 12:03



Dit antwoord werkt voor zowel bash (Ubuntu standaard) als tsch. - Nick
Ik dacht dat Dash Ubuntu standaard was? - Chris
dash is de standaardinterpreter voor /bin/sh commando's. bash is de standaard login en TTY-shell. - darvids0n
ik vind Ctrl + C een slechte gewoonte zijn, omdat ik vaak per ongeluk signalen naar programma's stuur, met een eigen prompt, waarbij ik ze vermoord en mijn voortgang en / of momentum verlies. - user606723


Ctrl +  U zou je moeten helpen.

Hieronder zijn de rest van de beschikbare opties. Grijp van hier

UNIX begrijpt verschillende bedieningstoetsenopdrachten, opdrachten die u invoert door de navigatietoets (ctrl) ingedrukt te houden terwijl u een tweede toets aanslaat

CTRL + S - bevriest het scherm en stopt het weergeven op het scherm (gelijk aan een no-scroll-toets) (soms duurt het even voor het werk)

CTRL + Q - bevriest het scherm en laat het scherm verder gaan

CTRL + C - onderbreekt een lopend programma

CTRL + \ - hetzelfde als CTRL - C maar sterker (gebruikt wanneer terminal niet reageert)

CTRL + Z - onderbreekt een lopend programma (gebruik de opdracht fg om door te gaan met het programma, zie s $

CTRL + H - verwijdert het laatst getypte teken

CTRL + w - verwijdert het laatst getypte woord

CTRL + U - verwijdert de laatst ingevoerde regel

CTRL + R - zoekt tekst uit de geschiedenis

CTRL + D - beëindigt tekstinvoer voor veel UNIX-programma's, inclusief mail en schrijven.

Notitie:

Wanneer we verwijderen met CTRL + w of CTRL + U, we voeren ook een bewerking uit (bewerken) "knippen" (ruk in) (verwijderen en opslaan in buffer / klembord). Als u de tekenreeks in buffer / klembord wilt plakken (naar buiten trekken), gebruikt u CTRL + Y.


109
2017-09-04 12:04



Eigenlijk zoekt ctrl-r tekst uit de geschiedenis. - Eric Carvalho
@EricCarvalho Je hebt gelijk. Die optie uit het antwoord verwijderen. - devav2
Dit zijn algemene UNIX-controlecodes. De standaard ubuntu-terminal is bash-gebaseerd, wat anders is. - OrangeDog
Ctrl-U verwijdert van de cursor naar het begin van de regel. Ik gebruik het vaak door de cursor net vóór de argumenten te plaatsen in een opdracht uit de geschiedenis. Op die manier kan ik een nieuwe opdracht typen met dezelfde argumenten, zoals het wijzigen van een minder bestand naar Kate-bestand, zodat ik het bestand kan bewerken nadat ik ernaar heb gekeken om te zien of er bewerkingen nodig zijn. - Joe
@ OrangeDog - Dit is prima - ik gebruik al deze in mijn Ubuntu bash-bashed terminal, met uitzondering van de CTR- \ one. - belacqua


Ik gebruik meestal alt+Backspace. Als je gebruikt bash, dit laat je verwijderen tot het vorige speciale teken (/, ;, , enz.). Als je gebruikt zsh, het zal ook de schuine strepen en puntkomma's verwijderen. Het is een stuk sneller dan alleen slaan Backspace.

In bash, dit is anders dan Ctrl+w in die zin Ctrl+w wist het vorige woord wheres alt+Backspace verwijdert totdat het vorige speciale teken is gevonden. In zsh, beide toetscombinaties doen hetzelfde


61
2017-09-04 12:00



Ctrl + W doet hetzelfde. - hytromo
Werkt echter niet voor terminals zoals rxvt. - sqram
@lyrae Voor mij werkt het perfect in rxvt, maar niet in xterm. En het werkt alleen als set -o emacs is ingesteld. - Marco
ik gebruik ALT+Backspace net zoals CTRL+C. Dit werkt op elke linux. :) - tftd
@hakermania: Nee, het is anders. Ctrl + w wist een woord en Alt + Backspace wordt verwijderd tot het vorige speciale teken (/, ;, ``, enz.). - jobin


Hier is een vermelding van sneltoetsen die kunnen worden gebruikt met de bash shell.

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

Wat je wilt doen, wordt bereikt door een van beide Ctrl+C of Ctrl+U aan het einde van de regel.


33
2017-09-04 18:42



Dit is de meest complete lijst, hoewel het beste antwoord is Ctrl+C of (Ctrl+E  Ctrl+U) - New Alexandria
Hoeveel op de lijst zijn van toepassing op tcsh, waarin ik geïnteresseerd ben? - TCSGrad
@ shan23 Lees de sectie "Editor commands" van man tcsh, of gebruik bindkey -l. Het ziet er naar uit dat het heel anders is. - OrangeDog
Merk op dat sommige van deze fouten zullen mislukken als je vi-bindingen gebruikt voor de Readline van bash (of een andere shell). Deze moeten ook meestal op tcsh van toepassing zijn; deze pre-gedateerde bash. bash heeft ook veel van de mooie snelkoppelingen naar geschiedenis van csh / tcsh verwerkt. - belacqua


alt+# (d.w.z., alt+Verschuiving+3) geeft commentaar op de huidige opdracht en gaat door op de volgende regel.

Bijvoorbeeld, als u typt t, e, s, t, alt+#, krijg je:

you@computer$ #test
you@computer$ 

Als je je oude opdracht terug wilt krijgen, druk je op de pijl-omhoog en verwijder je het hash-teken (omhoog, Huis, Verwijder of omhoog, Ctrl+EEN, Verwijder).

Ik denk dat het een kenmerk is van GNU Readline, omdat het werkt in Bash, Python en MySQL.


24
2017-09-04 17:21





 Ctrl + C - naast het onderbreken van lopende opdrachten, kan het ook worden gebruikt om de invoer van de opdrachtregel te "onderbreken".

In tegenstelling tot  Ctrl + U, je ziet nog steeds wat je hebt getypt, maar je cursor springt naar de nieuwe regel en je krijgt een lege opdrachtregel.


22
2017-09-04 12:16



Ik geef er de voorkeur aan dit eenvoudigweg vanwege het spiergeheugen, en je kunt nog steeds alles belangrijk kopiëren en plakken omdat de afgebroken opdrachtregel daar blijft. - ish


De bash readline kortere weg Ctrl+X+E is erg handig als je aan de opdrachtregel werkt. Als u bezig bent met het invoeren van een lange opdracht en besluit dat u deze in plaats daarvan in uw standaard teksteditor wilt openen, hoeft u alleen maar de snelkoppeling te gebruiken.

Het maakt gebruik van Bash's readline bibliotheek en deze specifieke snelkoppeling wordt de edit-and-execute-command. U kunt uw standaardeditor instellen door te plaatsen export EDITOR="/usr/bin/vi" in ~/.bashrc of ~/.bash_aliases.

invoeren bind -P om je huidige te zien readline bindingen en verwijzen naar man readline of de Ubuntu manpages online voor meer informatie.


8
2017-11-14 21:06





Ik gebruik ook Esc+Backspace om alle vorige tekens te verwijderen tot een speciaal teken. Dit is hetzelfde alt+Backspace. Handig als je slechts een paar woorden tegelijkertijd verwijdert.


7
2017-09-06 15:53





Voor vi sneltoetsen

Wanneer usin a vi sleutelkaart zoals in bash met set -o vi of in zsh met bindkey -v:

Invoegmodus

Het is gewoon dezelfde toetsaanslag als in de standaard / emacs-modus:

Ctrl+U

verwijderen van de huidige positie naar het begin van de regel. Dus het wist de hele regel als de cursor aan het einde is.

Normale modus

Er zijn meerdere manieren om de regel te verwijderen in twee toetsaanslagen:

Linewise verwijderen dd, met het standaardtelling van één regel:

dd

wat het eenvoudigst is in termen van aangeraakte toetsen.

Een andere manier is: Ga naar het begin van de regel met ^en verwijder naar het einde van de regel met D:

^D

Deze verwijderen allebei de hele regel, niet alleen naar links, zoals Ctrl+U in invoegmodus of de variant bleow.

Als u momenteel aan het einde van de regel bent, zodat u niets rechts hoeft te verwijderen, zou dit ook het volgende doen:

Verwijder vanaf hier d, aan het begin van de regel ^:

d^

Je kunt deze allemaal gebruiken vanuit de inzetmodus, je hebt eerst de gebruikelijke escape nodig om naar de normale modus te gaan. Als u bijvoorbeeld de hele regel uit de invoegmodus wilt verwijderen, gebruikt u:

Escdd


3
2017-09-15 03:48