Kopiering og liming i Bash-skallet på Linux
Ønsker du å kopiere tekst og lime den inn i kommandolinjen i Bash? Uansett om du foretrekker å bruke tastaturet eller musen, finnes det flere metoder for å gjøre dette. Disse teknikkene fungerer like godt enten du benytter et grafisk grensesnitt eller en tradisjonell tekstbasert TTY.
Tastatursnarveier som ikke fungerer
Kopiering og innliming av tekst er en grunnleggende del av datahåndtering. Nye Linux-brukere, enten de kommer fra Windows eller macOS, blir ofte forvirret når de første gang prøver å lime inn tekst i et terminalvindu.
I Windows brukes Ctrl+C for å kopiere utvalgt tekst og Ctrl+V for å lime den inn. macOS bruker Command+C for å kopiere og Command+V for innliming. Begge operativsystemene bruker samme logikk, med C for å kopiere og V for å lime inn.
De samme tastekombinasjonene fungerer i de fleste grafiske Linux-programmer, som teksteditoren gedit eller kontorpakken LibreOffice. Ctrl+C kopierer utvalgt tekst, og Ctrl+V limer den inn der markøren er. Nye Linux-brukere tenker sannsynligvis ikke over at disse konvensjonene er implementert i disse programmene, men bruker dem automatisk fra hukommelsen.
Når en ny bruker åpner et terminalvindu og forsøker å kopiere og lime inn i Bash-skallets kommandolinje, skjer det en endring. Ctrl+C og Ctrl+V ble definert med andre funksjoner lenge før kopiering og liming ble vanlig. Faktisk ble disse tastekombinasjonene brukt lenge før grafiske grensesnitt ble oppfunnet, da en teletype (TTY) var en fysisk enhet.
Ctrl+C og Ctrl+V i TTY-er
Da TTY var en fysisk enhet, ble Ctrl+C valgt som en praktisk kombinasjon for å generere et signal. Dette signalet er SIGINT, som forteller den aktive prosessen at den skal avsluttes. Ettersom et terminalvindu er en emulert TTY, er denne tastekombinasjonen (og mange andre) bevart og videreført i emuleringen. Det er viktig å merke seg at det er terminalvinduet som er emuleringen, mens Bash-skallet er et program som kjører i den emulerte TTY-en.
Vi kan enkelt se funksjonene som er tildelt Ctrl+C og Ctrl+V. Anta at du skriver inn følgende kommando og trykker «Enter»:
ls -R /
Siden vi bruker -R-alternativet (rekursivt), vil ls-kommandoen begynne å liste hver fil og mappe, med start fra rotmappen. Etter kort tid innser du at dette ikke var det du ønsket, og du avslutter prosessen ved å trykke Ctrl+C.
Ctrl+C
ls-prosessen avsluttes. Det visuelle beviset på Ctrl+C er uthevet i skjermbildet, og vises som ^C.
Tastekombinasjonen Ctrl+V aktiverer «ordrett innsetting». Dette lar deg legge inn en representasjon av en tast i det du skriver, i stedet for å få effekten av tasten. For å se dette, prøv følgende kommandoer (ikke skriv inn kommaene). For eksempel, for å prøve den første, trykk Ctrl+V og deretter Enter.
Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc
Som en sidebemerkning kan du se at Enter representeres av ^M. Tidligere så vi at Ctrl+C dukket opp som ^C. Det ser ut til at ^ representerer Ctrl. Dermed betyr Ctrl+M sannsynligvis det samme som Enter. Betyr det at vi kan skrive inn Enter ved å skrive Ctrl+M? Prøv det i et terminalvindu, og du vil se at det fungerer.
Vi kan altså ikke forvente at Ctrl+C og Ctrl+V skal kopiere og lime inn tekst, da de allerede har veletablerte funksjoner. Hva kan vi bruke i stedet?
Ctrl+Shift+C og Ctrl+Shift+V
Disse er enkle å huske, da de er svært like sine motparter. Ctrl+Shift+C og Ctrl+Shift+V er direkte erstatninger for Ctrl+C og Ctrl+V.
Hvis du markerer tekst i terminalvinduet med musen og trykker Ctrl+Shift+C, kopierer du teksten til et utklippstavlebuffer.
Ctrl+Shift+C
Du kan bruke Ctrl+Shift+V for å lime inn den kopierte teksten i det samme terminalvinduet, eller i et annet terminalvindu.
Ctrl+Shift+V
Du kan også lime inn i et grafisk program som gedit. Når du limer inn i et program – og ikke i et terminalvindu – må du imidlertid bruke Ctrl+V.
Og du kan også gjøre det motsatte. Du kan markere tekst i gedit og trykke Ctrl+C, og deretter lime den inn i et terminalvindu ved å bruke Ctrl+Shift+V.
Tastekombinasjonen Ctrl+Insert fungerer som Ctrl+Shift+C, og Shift+Insert fungerer som Ctrl+Shift+V. Disse kan imidlertid kun brukes innenfor det samme terminalvinduet.
Bruk musen: Høyreklikk
Du kan bruke musen til å kopiere og lime inn i et terminalvindu. Du må bruke musen for å markere teksten du skal kopiere, så hvorfor ikke bruke den til å utføre kopierings- og liminghandlingene?
Når du har markert litt tekst, høyreklikker du med musen og velger «Kopier» fra hurtigmenyen.
For å lime inn den kopierte teksten, høyreklikker du med musen en gang til og velger «Lim inn» fra kontekstmenyen.
Teksten limes inn der markøren er på kommandolinjen. I dette eksemplet ble den relative banen skrevet feil, og Bash kan ikke endre mappe. Brukeren glemte å legge til «~/» i begynnelsen av banen. De har skrevet «~/», og deretter kopiert resten av banen fra det forrige forsøket og limt den inn i den andre kommandolinjen.
Når de trykker Enter, blir de flyttet til mappen.
Dette eksemplet viste innliming i samme terminalvindu, men du kan bruke høyreklikksmetoden for å lime inn i andre terminalvinduer. Du kan også lime inn i grafiske applikasjoner med denne metoden.
Bruk musen: Midtknapp
Det finnes en enda raskere måte å kopiere og lime inn med musen, så lenge musen har en midtknapp. Hvis du trykker ned rullehjulet og det klikker, har du en midtknapp.
Marker litt tekst i et terminalvindu, og trykk deretter på midtknappen. Den uthevede teksten limes inn i markørposisjonen på kommandolinjen. Kopiering og innliming skjer samtidig.
Først markerer du tekst:
Trykk deretter på midtknappen:
Du kan bruke denne metoden til å lime inn mellom ulike terminalvinduer og i grafiske applikasjoner. Bare marker teksten, flytt til det andre terminalvinduet eller applikasjonen, og trykk på midtknappen.
Old School – Uten mus
Hva med når du ikke har en mus? Hvis du ikke kan markere tekst, hvordan kan du kopiere og lime den inn?
Linux-servere er ofte satt opp uten et grafisk skrivebordsmiljø (GDE), som betyr at du ikke har tilgang til musen. Selv på en Linux-maskin som kjører et grafisk skrivebordsmiljø som GNOME og du har en mus, kan det oppstå situasjoner der du ikke kan bruke musen til å markere tekst.
Du kan for eksempel ha byttet til en av de ekstra TTY-ene. På moderne distribusjoner er disse plassert fra Ctrl+Alt+F3 (TTY3) til Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 vil bringe deg tilbake til GDE-økten, og Ctrl+Alt+F1 tar deg til påloggingsskjermen til GDE-en.)
Kanskje du til og med bruker en fysisk maskinvare-TTY for å koble til en Linux- eller Unix-maskin.
Uansett vil disse teknikkene fungere for deg. Det viktigste å huske på her er at dette ikke er kopiering og liming, men snarere klipping, kopiering og liming. Du kan bare klippe ut og kopiere fra gjeldende kommandolinje. Du kan selvfølgelig bruke piltastene til å bla gjennom historikken din for å finne kommandolinjen du ønsker å klippe, kopiere og lime fra.
Følgende tastekombinasjoner er tilgjengelige:
Ctrl+W: | Klipper ut ordet foran markøren og legger det til i utklippstavlebufferen. |
Ctrl+K: | Klipper ut delen av linjen etter markøren og legger den til i utklippstavlebufferen. Hvis markøren er i begynnelsen av linjen, vil den klippe og kopiere hele linjen. |
Ctrl+U: | Klipper ut delen av linjen foran markøren og legger den til i utklippstavlebufferen. Hvis markøren er i slutten av linjen, vil den klippe og kopiere hele linjen. |
Ctrl+Y: | Limer inn den sist klipte og kopierte teksten. |
La oss hoppe over til TTY3 (bruk Ctrl+Alt+F1 for å komme tilbake til skrivebordet etterpå).
Ctrl+Alt+F3
tty
Vi har en fil vi ønsker å slette, la oss sjekke at den er der.
ls -l file_to_delete.txt
Hvis vi bruker opp-piltasten, henter vi den siste kommandoen vi brukte fra kommandohistorikken. Vi kunne bare redigert denne linjen, men målet er å demonstrere klipping, kopiering og liming, så vi utfører oppgaven med å slette filen på en litt omstendelig måte.
Vi flytter markøren til den første bokstaven i filnavnet, og trykker deretter Ctrl+K. Dette vil fjerne den delen av linjen og kopiere teksten til utklippstavlebufferen.
Vi trykker på Backspace til vi rydder linjen.
<img decoding=»async» class=»alignnone size-full wp-image-440715″ src=»data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoYAAACTAgMAAABuYDDrAAAACVBMVEUAAAABAQHMzMygyw1NAAADwElEQVR42u3aQW7jOBAFUF/CDczsezOn8CU+gar9NyDepwz4ALVgTjkLUjLtdhxlRm5xMOUFQTFB8kCJpY9KDofxP0cM/jn9J4gyz/nk65oGIiavxJuJAHiBAQlpBKJIR5SFOGnZnfjnVZ2izuvZ1Zmyq+tVXZ1MBvACZM9O2Y34c6JQKOdpEgovCRSSQqElA9hu9J5EQSUKH4jnemBGIGoR5nJPzCWXqX5LGYBIERI9UY0g6i7iMgyR5UYUEER7FhtRpj2Py5SMIuh20SmUeqLnopOuexadazL1VCjqOsFrEdK5zBgAh2O/G/3sHf30uRuLqL5uLZJOEDcmyuhEaUSpkWu3Y7GeSBmPSL2qU8CaCkckGicKBdbCwpBE6YlpvGfxByi5CBOG3cUfoBBDE/9oRGmpcMDj8hOcKMnYUuGQRL2qJ2NLhSOW7jFS4XricHsYYez/RPxuf9Fhv/WArewvNlQyIAFWr9NCbOttLb2L+Kq/uOzbTHkg4r3ENf1FWCtGBiQkq9fZ1QG9qsPU61V2SvaNiWv6i7BbZyI7rF7XVhQnCoxSrxIom+/imv4ijP2NvifKPVH4BuLX/UWYAsjlRszlRswFlktCXUv2BuLX/UUY/GEX0e0iYERC