Att Kopiera och Klistra In i Bash-skalet
Behöver du kopiera och klistra in kommandon i Bash-terminalen? Här kommer vi att gå igenom flera metoder, oavsett om du föredrar att använda tangentbordet eller musen. Dessa tekniker fungerar både i en grafisk miljö och i en traditionell textbaserad TTY.
Varför Standardgenvägar Inte Fungerar
Att kopiera och klistra in text är fundamentalt vid datoranvändning. Nya Linux-användare, oavsett om de kommer från Windows eller macOS, stöter ofta på problem när de försöker kopiera och klistra in i terminalen.
I Windows används vanligtvis Ctrl+C för att kopiera och Ctrl+V för att klistra in. På macOS används Kommando+C och Kommando+V för samma funktioner. Båda systemen delar konventionen att ’C’ är för kopiering och ’V’ för inklistring.
Dessa kombinationer fungerar också i de flesta grafiska Linux-applikationer, som textredigeraren gedit eller LibreOffice. Ctrl+C och Ctrl+V används där för att kopiera och klistra in. Nya Linux-användare tänker sällan på att dessa konventioner faktiskt är medvetet implementerade i dessa applikationer; de använder bara instinktiva knapptryckningar.
När samma användare öppnar ett terminalfönster och ska kopiera och klistra in i Bash-skalet, ändras allt. Ctrl+C och Ctrl+V tilldelades andra funktioner långt innan kopiering och inklistring ens fanns på kartan. Faktum är att dessa tangenttryckningar användes långt före grafiska miljöer, under teletypernas (TTY) tid.
Ctrl+C och Ctrl+V i TTY-miljö
När TTY var en fysisk enhet, blev Ctrl+C vald som ett praktiskt sätt att generera en signal: SIGINT, som beordrar en pågående process att avslutas. Eftersom ett terminalfönster emulerar en TTY, har den tangentkombinationen, samt många andra, bevarats i emulationen. Det är viktigt att påpeka att det är terminalfönstret som är emulationen; Bash-skalet är ett program som körs inom denna TTY-emulering.
Vi kan enkelt se funktionerna för Ctrl+C och Ctrl+V. Skriv följande kommando och tryck på ”Enter”:
ls -R /
Eftersom vi använder flaggan -R (rekursiv), kommer kommandot ls att börja lista alla filer och mappar, med start från rotkatalogen. Efter en stund inser du att detta inte är vad du ville och stoppar processen genom att trycka på Ctrl+C.
Ctrl+C
ls-processen avslutas och Ctrl+C visas som ^C i terminalen.
Kombinationen Ctrl+V anropar ”verbatim insert”. Detta låter dig mata in en representation av en tangent i texten istället för tangentens funktion. För att testa detta kan du försöka följande kommandon (skriv inte kommatecknen): (För det första exemplet, tryck Ctrl+V och sedan Enter.)
Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc
Du kanske märker att Enter visas som ^M. Vi såg tidigare att Ctrl+C visades som ^C. Det verkar som att ^ representerar Ctrl. Så Ctrl+M är troligtvis samma sak som Enter. Betyder det att vi kan trycka Enter genom att skriva Ctrl+M? Testa i ett terminalfönster. Du ser att det fungerar.
Vi kan alltså inte förvänta oss att Ctrl+C och Ctrl+V ska fungera för kopiering och inklistring eftersom de redan har specifika funktioner. Så vad kan vi använda istället?
Ctrl+Shift+C och Ctrl+Shift+V
Lätta att komma ihåg eftersom de liknar sina motsvarigheter är Ctrl+Shift+C och Ctrl+Shift+V de direkta ersättarna för Ctrl+C och Ctrl+V.
Om du markerar text i terminalfönstret med musen och sedan trycker på Ctrl+Shift+C, kommer du att kopiera den texten till urklippsbufferten.
Ctrl+Shift+C
Du kan sedan klistra in den kopierade texten i samma eller ett annat terminalfönster med Ctrl+Shift+V.
Ctrl+Shift+V
Du kan också klistra in texten i grafiska program som gedit. Observera dock att om du klistrar in i ett program – och inte i terminalen – måste du använda Ctrl+V.
Det fungerar också åt andra hållet. Du kan markera text i gedit och trycka på Ctrl+C och sedan klistra in den i terminalen med Ctrl+Shift+V.
Tangentkombinationen Ctrl+Insert motsvarar Ctrl+Shift+C och Shift+Insert motsvarar Ctrl+Shift+V. Dessa är dock begränsade till det aktuella terminalfönstret.
Högerklicka Med Musen
Du kan också använda musen för att kopiera och klistra in i terminalen. Du måste ändå använda musen för att markera texten, så varför inte använda den hela vägen?
När du har markerat texten, högerklicka och välj ”Kopiera” från menyn.
För att klistra in texten, högerklicka igen och välj ”Klistra in” från menyn.
Texten klistras in där markören står på kommandoraden. I det här exemplet har en felaktig relativ sökväg angetts, och Bash kan inte byta katalog. Användaren har missat ”~/”. De har skrivit in ”~/ ” och kopierat resten av sökvägen och klistrat in den på en ny kommandorad.
När de trycker på Enter, kommer de nu till rätt katalog.
Exemplet ovan visar inklistring i samma terminalfönster, men metoden kan användas för att klistra in i andra terminalfönster samt grafiska applikationer.
Mittenknappen på Musen
Ett ännu snabbare sätt att kopiera och klistra in är genom att använda musens mittknapp. Om du trycker ner scrollhjulet (försiktigt!) och hör ett klick, så har du en mittknapp.
Markera text i ett terminalfönster och tryck sedan på mittknappen. Den markerade texten klistras då in på markörens position. Både kopiering och inklistring sker på en gång.
Markera lite text:
Tryck sedan på mittknappen:
Du kan använda metoden för att klistra in mellan olika terminalfönster och även i grafiska applikationer. Markera bara texten, flytta till det andra terminalfönstret eller programmet och tryck på mittknappen.
”Old School” – Utan Mus
Vad händer om du inte har en mus? Om du inte kan markera text, hur kan du då kopiera och klistra in?
Linux-servrar konfigureras ofta utan grafisk miljö, vilket innebär att du inte har tillgång till en mus. Även på en dator som kör GNOME kan det hända att du inte kan markera text med musen.
Du kan ha bytt till en av de ytterligare TTY:erna. På moderna distributioner hittas dessa från Ctrl+Alt+F3 (TTY3) till Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 återgår till din grafiska session och Ctrl+Alt+F1 tar dig till inloggningsskärmen.)
Du kanske till och med använder en riktig hårdvaru-TTY-enhet för att ansluta till en Linux- eller Unix-dator.
Oavsett, kommer de här teknikerna att fungera. Notera att det här inte är ”kopiera och klistra in”, utan snarare ”klipp ut, kopiera och klistra in” och du kan endast klippa ut text från den aktuella kommandoraden. Du kan förstås bläddra genom din historik med piltangenterna för att hitta kommandoraden du vill klippa ut, kopiera och klistra in.
Följande tangenttryckningar kan användas:
- Ctrl+W: Klipp ut ordet före markören och placera det i urklippsbufferten.
- Ctrl+K: Klipp ut delen av raden efter markören och placera den i urklippsbufferten. Om markören står i början av raden, kommer hela raden att klippas ut och kopieras.
- Ctrl+U: Klipp ut delen av raden före markören och placera den i urklippsbufferten. Om markören står i slutet av raden, kommer hela raden att klippas ut och kopieras.
- Ctrl+Y: Klistra in den senast utklippta och kopierade texten.
Låt oss byta till TTY3. (Använd Ctrl+Alt+F1 för att komma tillbaka till skrivbordet.)
Ctrl+Alt+F3
tty
Vi har en fil som vi vill ta bort, så vi kontrollerar att den finns där.
ls -l file_to_delete.txt
Med uppåtpilen hämtar vi det senaste kommandot vi använde. Vi kan redigera raden, men för att visa klipp ut, kopiera och klistra in, så utför vi uppgiften att ta bort filen lite mer omständigt.
Vi flyttar markören till den första bokstaven i filnamnet och trycker sedan på Ctrl+K. Det tar bort den delen av raden och kopierar den till urklippsbufferten.
Vi trycker på backsteg tills vi har rensat raden.
<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/GEX0e0iYERCXXsj8VV/EQZZS3zHjV7RX+yPyy/PYndckr3luKzpL2qpRae2Q7W066XoaFGHqyeDU7B10Xn2jl6TvPPHbdwhRgyVGiOMBbFPgt/LhNsmyk+J9gnR1NVh3ZGy5ACsrqlvnig/I6ZPiMkolGS3wpRMAKT6JpJa0jdNlKfDEWdnwjK2n2q1KFPm8lxnYhSKGEBRP9cVAGJilb95ojwdjpiEFyzj7UazJcl+BqNAYABBmWQJagZLBqFsnihPhyMovGAZO2JLkv0Mpl6Pg2JeycuziOVZ3DBRng5/FYKXvIy55DITa5LsZ/VXVU4uy7424ozYNFGeDkcQvGAZ+12sMa2fwSjSzjvxSJSOuFmi/CdEzl99ICbjKuK3b/QLYkuS/eyOOB+X58StEmUl6oRlbFmnANqS5N2sqOeipZbps89ZUosWIJd6XDZNlP/uHc3fkSjfSYykE8Q39xf3I77qLw5CfNlf3Je4qr+4L3FVf3Fn4pr+4t7EFf3FvYkr+otjEF/2F3c/Ll/3F3cvOl///+J47+ih/rIf/cUgRl6MvBh5MfJi5MXIi5EXh8+LHx/DER/z4oDECGNBDGIQgxjEIAYxi