Sådan kopieres og indsættes tekst på Linux’s Bash Shell

Vil du kopiere og indsætte på kommandolinjen i Bash-skallen? Vi viser dig flere teknikker, uanset om du foretrækker tastaturet eller musen. Disse fungerer, uanset om du er ved et grafisk skrivebord eller ved en traditionel tekstbaseret TTY.

De sædvanlige tastaturgenveje virker ikke

Kopiering og indsættelse af tekst er en fast del af brugen af ​​en computer. Når folk bruger en Linux-computer de første par gange, uanset om de kommer fra Windows- eller macOS-verdenen, bliver de ofte forvirrede, når de prøver at kopiere og indsætte i et terminalvindue.

I Windows bruger du Ctrl+C til at kopiere en sektion af fremhævet tekst og Ctrl+V til at indsætte den. I macOS bruger du Command+C til at kopiere det og Command+V til at indsætte det. De følger den samme konvention med C til at kopiere og V til at indsætte.

De samme tastetryk virker i de fleste Linux-grafiske applikationer, såsom editoren gedit eller den LibreOffice office suite.Ctrl+C kopierer fremhævet tekst og Ctrl+V indsætter den ved markøren. Vores nykommer til Linux tænker nok ikke engang på, at disse konventioner er blevet ført igennem til disse applikationer. De bruger tastetrykkene fra muskelhukommelsen og kommer videre med deres arbejde.

Når vores nykommer åbner et terminalvindue og prøver at kopiere og indsætte på Bash shell kommandoprompt, at alle ændringer. Ctrl+C og Ctrl+V blev tildelt funktioner længe før kopiering og indsættelse nogensinde var tænkt på. Faktisk blev disse tastetryk rekrutteret lang tid før grafiske skaller blev opfundet, dengang en teletype (TTY) var en fysisk ting.

Ctrl+C og Ctrl+V i TTY’er

Når en TTY var en fysisk enhed, blev Ctrl+C valgt som en praktisk tastekombination til at generere et signal. Det signal er SIGINT, som fortæller, at den aktuelle proces skal afsluttes. Fordi et terminalvindue er en emuleret TTY, er denne tastekombination (og mange andre) blevet bevaret og replikeret i emuleringen. Bemærk, at det er terminalvinduet, der er emuleringen. Bash-skallen er et program, der kører i den emulerede TTY.

Vi kan nemt se de funktioner, der er blevet tildelt Ctrl+C og Ctrl+V. Antag, at du skriver følgende kommando og trykker på “Enter”.

ls -R /

Fordi vi bruger muligheden -R (rekursiv) vil ls-kommandoen begynde at liste hver fil og mappe, startende fra rodmappen. Efter et par øjeblikke indser du, at dette ikke er, hvad du ønskede, så du afslutter processen ved at trykke på Ctrl+C.

Ctrl+C

ls-processen er afsluttet. Det synlige bevis på Ctrl+C er fremhævet på skærmbilledet. Det vises som ^C.

  Sådan overføres Android-filer trådløst til et Linux-skrivebord

Ctrl+V-tastekombinationen påkalder “ordret indsættelse”. Dette giver dig mulighed for at indtaste en repræsentation af en nøgle i det, du skriver, i stedet for at få effekten af ​​nøglen. For at se dette, prøv følgende kommandoer (skriv ikke kommaerne). (For eksempel, for at prøve den første, skal du trykke på Ctrl+V og derefter trykke på Enter.)

Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc

Som en hurtig side kan du måske bemærke, at Enter er repræsenteret af ^M . Vi så tidligere, at Ctrl+C dukkede op som ^C. Det ser ud til, at ^ repræsenterer Ctrl. Så Ctrl+M betyder sandsynligvis det samme som Enter. Betyder det, at vi kan indtaste Enter ved at skrive Ctrl+M? Prøv det i et terminalvindue. Det vil du se, at det gør.

Så vi kan tydeligvis ikke forvente, at Ctrl+C og Ctrl+V udfører kopiering og indsættelse af tekst, når de allerede har hævdvundne funktioner tildelt dem. Så hvad kan vi bruge?

Ctrl+Shift+C og Ctrl+Shift+V

Let at huske, fordi de minder meget om deres modstykker, Ctrl+Shift+C og Ctrl+Shift+V er direkte erstatninger for Ctrl+C og Ctrl+V.

Hvis du fremhæver tekst i terminalvinduet med musen og trykker på Ctrl+Shift+C, kopierer du teksten til en udklipsholderbuffer.

Ctrl+Shift+C

Du kan bruge Ctrl+Shift+V til at indsætte den kopierede tekst i det samme terminalvindue eller i et andet terminalvindue.

Ctrl+Shift+V

Du kan også indsætte i et grafisk program såsom gedit. Men bemærk, når du indsætter i et program – og ikke i et terminalvindue – skal du bruge Ctrl+V.

Og du kan også gå den anden vej. Du kan fremhæve tekst i gedit og trykke på Ctrl+C og derefter indsætte den i et terminalvindue ved hjælp af Ctrl+Shift+V.

Tastekombinationen Ctrl+Insert er den samme som Ctrl+Shift+C, og kombinationen Shift+Insert er den samme som Ctrl+Shift+V. Forbeholdet her er, at disse kun kan bruges inden for det samme terminalvindue.

Brug af musen: Højreklik

Du kan bruge musen til at kopiere og indsætte i et terminalvindue. Du skal bruge musen til at fremhæve den tekst, du vil kopiere, så hvorfor ikke bruge den til at udføre kopierings- og indsæthandlingerne?

  Sådan opsætter du Seafile på Linux

Når du har fremhævet noget tekst, skal du højreklikke med musen og vælge “Kopier” fra kontekstmenuen.

For at indsætte den kopierede tekst skal du højreklikke med musen endnu en gang og vælge “Indsæt” fra kontekstmenuen.

Teksten indsættes ved markørens position på kommandolinjen. I dette eksempel er den relative sti blevet angivet forkert, og Bash kan ikke ændre mappe. Brugeren gik glip af “~/” fra starten af ​​stien. De har skrevet “~/” og derefter kopieret resten af ​​stien fra deres tidligere forsøg og indsat den i deres anden kommandolinje.

Når de trykker på Enter, flyttes de til biblioteket.

Dette eksempel viste indsætning i det samme terminalvindue, men du kan bruge denne højrekliksteknik til at indsætte i forskellige terminalvinduer. Du kan også indsætte i grafiske applikationer ved hjælp af denne metode.

Brug af musen: Mellemknap

Der er en endnu hurtigere måde at kopiere og indsætte ved hjælp af musen, så længe din mus har en midterknap. Hvis du trykker ned på dit rullehjul (forsigtigt!), og det klikker, har du en midterknap.

Fremhæv noget tekst i et terminalvindue, og tryk derefter på din midterste knap. Den fremhævede tekst indsættes på markørens position på kommandolinjen. Kopiering og indsæt sker på samme tid.

Så fremhæv noget tekst:

Tryk derefter på din midterknap:

Du kan bruge denne metode til at indsætte mellem forskellige terminalvinduer og også i grafiske applikationer. Du skal bare fremhæve teksten, flytte til det andet terminalvindue eller applikation og trykke på din midterste knap.

Old School – Ingen mus

Hvad med, når du ikke har en mus? Hvis du ikke kan fremhæve nogen tekst, hvordan kan du så kopiere og indsætte den?

Linux-servere er ofte konfigureret uden en grafisk skrivebordsmiljø (GDE), hvilket betyder, at du ikke har adgang til en mus. Selv på en Linux-computer, der kører et grafisk skrivebordsmiljø som GNOME, og du har en mus, vil der være tilfælde, hvor du ikke kan bruge musen til at fremhæve tekst.

For eksempel kan du have skiftet til en af ​​de ekstra TTY’er. På moderne distributioner er disse placeret ved Ctrl+Alt+F3 (TTY3) til Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 vil returnere dig til din GDE-session, og Ctrl+Alt+F1 fører dig til login-skærmen på din GDE.)

Måske bruger du endda en ægte hardware-TTY-enhed til at oprette forbindelse til en Linux- eller Unix-computer.

  Sådan bruges kommandoen af ​​Linux-typen

Uanset hvad, vil disse teknikker fungere for dig. Pointen at huske her er, at dette ikke er kopier og indsæt, det er klip, kopier og indsæt, og du kan kun klippe og kopiere fra den aktuelle kommandolinje. Selvfølgelig kan du bruge piletasterne til at rulle gennem din historie for at finde den kommandolinje, du ønsker at klippe, kopiere og indsætte fra.

De tastetryk du kan bruge er:

Ctrl+W: Klip ordet før markøren, og føj det til udklipsholderens buffer.
Ctrl+K: Klip den del af linjen efter markøren, og føj den til udklipsholderen. Hvis markøren er i starten af ​​linjen, vil den klippe og kopiere hele linjen.
Ctrl+U: Klip den del af linjen før markøren, og føj den til udklipsholderbufferen. Hvis markøren er i slutningen af ​​linjen, vil den klippe og kopiere hele linjen.
Ctrl+Y: Indsæt den sidste tekst, der blev klippet og kopieret.

Lad os hoppe over til TTY3. (Brug Ctrl+Alt+F1 for at komme tilbage til dit skrivebord bagefter.)

Ctrl+Alt+F3
tty

Vi har en fil, vi ønsker at slette, lad os tjekke, at den er her.

ls -l file_to_delete.txt

Hvis vi bruger pil op-tasten, kalder vi den sidste kommando, vi brugte, ud af kommandohistorikken. Vi kunne bare redigere denne linje, men formålet er at demonstrere klip, kopier og indsæt, så vi vil udføre vores opgave med at slette filen på en lidt langvarig måde.

Vi flytter markøren til det første bogstav i filnavnet og trykker derefter på Ctrl+K. Dette vil fjerne den del af linjen og kopiere teksten til udklipsholderen.

Vi trykker på Backspace, indtil vi rydder linjen.

Vi indtaster rm for at slette filen.

Og nu kan vi trykke på Ctrl+Y og indsætte resten af ​​linjen.

Dette afslutter vores kommando, og vi kan trykke på Enter for at få filen slettet.

Denne type klip, kopier og indsæt kan ikke bruges mellem de ekstra TTY’er. Du kan for eksempel ikke klippe, kopiere og indsætte mellem TTY3 og TTY4.

De ekstra TTY’er opfattes bedst som en række fysiske TTY’er, der sidder side om side. Der er ingen måde at klippe og indsætte mellem de forskellige fysiske terminaler, og der er ingen måde at gøre det i disse emuleringer.

Kopier det, kontrol

Uanset hvilken situation du befinder dig i, når du bruger en Linux-computer, vil der være en måde at kopiere og indsætte på. Du har muligheder. Nogle af dem er mærkelige muligheder, men der er i det mindste muligheder.