Jak zkopírovat a vložit text na Linux’s Bash Shell

Photo of author

By etechblogcz

Potřebujete zkopírovat a vložit text v příkazovém řádku Bash? Ukážeme vám různé metody, ať už dáváte přednost klávesnici nebo myši. Tyto techniky fungují bez ohledu na to, zda používáte grafické prostředí nebo tradiční textové TTY.

Běžné klávesové zkratky nefungují

Kopírování a vkládání textu je základní dovednost při práci s počítačem. Uživatelé, kteří přecházejí na Linux z Windows nebo macOS, často bývají překvapeni, že standardní klávesové zkratky pro kopírování a vkládání v terminálu nefungují.

Ve Windows se pro kopírování vybraného textu používá kombinace Ctrl+C a pro vložení Ctrl+V. V macOS se pro kopírování používá Command+C a pro vložení Command+V. Obě platformy používají stejnou konvenci: C pro kopírování a V pro vkládání.

Stejné klávesové zkratky fungují ve většině grafických aplikací v Linuxu, například v textovém editoru gedit nebo kancelářském balíku LibreOffice. Ctrl+C zkopíruje vybraný text a Ctrl+V jej vloží do místa kurzoru. Noví uživatelé Linuxu si často ani neuvědomují, že tyto konvence byly do těchto aplikací přeneseny. Spoléhají na svalovou paměť a pokračují ve své práci.

Jakmile však nováček otevře okno terminálu a pokusí se kopírovat a vkládat do příkazového řádku Bash shellu, zjistí, že se věci mění. Klávesové zkratky Ctrl+C a Ctrl+V mají přiřazeny funkce již dlouho předtím, než se o kopírování a vkládání vůbec uvažovalo. Tyto zkratky byly zavedeny ještě v době, kdy byl teletyp (TTY) fyzickým zařízením, dlouho před vznikem grafických prostředí.

Ctrl+C a Ctrl+V v TTY

V době fyzických TTY byla Ctrl+C zvolena jako praktická kombinace kláves pro generování signálu. Tento signál je SIGINT, který dává pokyn k ukončení aktuálního procesu. Protože okno terminálu je emulovaný TTY, tato kombinace kláves (a mnoho dalších) byla zachována a replikována. Je důležité si uvědomit, že emulací je samotné okno terminálu. Bash shell je program, který běží uvnitř tohoto emulovaného TTY.

Funkce kláves Ctrl+C a Ctrl+V jsou snadno viditelné. Představte si, že zadáte následující příkaz a stisknete Enter:

ls -R /

Vzhledem k tomu, že používáme volbu -R (rekurzivní), příkaz ls začne vypisovat všechny soubory a adresáře počínaje kořenovým adresářem. Po chvíli si uvědomíte, že jste to nechtěli, a proto proces ukončíte stisknutím Ctrl+C.

Ctrl+C

Proces ls je ukončen. Důkazem stisknutí Ctrl+C je zobrazení ^C.

Kombinace kláves Ctrl+V vyvolá „doslovné vložení“. To vám umožňuje zadat reprezentaci klávesy do textu, který píšete, namísto aktivování efektu dané klávesy. Chcete-li to vyzkoušet, zadejte následující příkazy (nepište čárky). (Například pro první příkaz stiskněte Ctrl+V a poté Enter.)

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

Enter se zobrazuje jako ^M. Dříve jsme viděli, že Ctrl+C se objevilo jako ^C. Zdá se, že ^ reprezentuje Ctrl. Ctrl+M tedy pravděpodobně znamená totéž co Enter. Můžeme tedy zadat Enter zadáním Ctrl+M? Vyzkoušejte to v okně terminálu. Zjistíte, že to funguje.

Je tedy zřejmé, že od kláves Ctrl+C a Ctrl+V nemůžeme očekávat funkci kopírování a vkládání textu, když už mají přiřazené jiné, pevně dané funkce. Co tedy můžeme použít?

Ctrl+Shift+C a Ctrl+Shift+V

Tyto klávesové zkratky se snadno pamatují, protože jsou podobné svým protějškům. Ctrl+Shift+C a Ctrl+Shift+V jsou přímou náhradou za Ctrl+C a Ctrl+V.

Pokud v okně terminálu myší vyberete text a stisknete Ctrl+Shift+C, zkopírujete tento text do schránky.

Ctrl+Shift+C

Pomocí Ctrl+Shift+V můžete vložit zkopírovaný text do stejného okna terminálu nebo do jiného okna terminálu.

Ctrl+Shift+V

Text můžete vložit i do grafické aplikace, jako je gedit. Nicméně pozor, když vkládáte do aplikace, nikoli do okna terminálu, musíte použít Ctrl+V.

Funguje to i opačně. Můžete vybrat text v gedit a stisknout Ctrl+C a následně jej vložit do okna terminálu pomocí Ctrl+Shift+V.

Kombinace kláves Ctrl+Insert funguje stejně jako Ctrl+Shift+C a kombinace Shift+Insert funguje stejně jako Ctrl+Shift+V. Je ovšem nutné upozornit, že tyto klávesové zkratky lze použít pouze ve stejném okně terminálu.

Použití myši: Kliknutí pravým tlačítkem

Pro kopírování a vkládání v okně terminálu můžete použít i myš. Když už musíte myší vybírat text, který chcete kopírovat, proč ji rovnou nepoužít i pro samotné kopírování a vkládání?

Jakmile myší vyberete text, klikněte pravým tlačítkem a z kontextové nabídky zvolte „Kopírovat“.

Pro vložení zkopírovaného textu znovu klikněte pravým tlačítkem a z kontextové nabídky vyberte „Vložit“.

Text se vloží do pozice kurzoru v příkazovém řádku. V tomto příkladu je relativní cesta zadána chybně a Bash nemůže změnit adresář. Uživatel vynechal „~/“ na začátku cesty. Zadal tedy „~/“ a poté zkopíroval zbytek cesty z předchozího pokusu a vložil ji do druhého příkazového řádku.

Po stisknutí klávesy Enter se přesune do daného adresáře.

Tento příklad demonstroval vkládání do stejného okna terminálu, ale techniku kliknutí pravým tlačítkem můžete použít také pro vkládání do různých oken terminálu a dokonce i do grafických aplikací.

Použití myši: Prostřední tlačítko

Existuje ještě rychlejší způsob kopírování a vkládání pomocí myši – pokud vaše myš má prostřední tlačítko. Pokud stlačíte rolovací kolečko (jemně!) a zacvakne, máte prostřední tlačítko.

Vyberte libovolný text v okně terminálu a poté stiskněte prostřední tlačítko. Vybraný text se vloží do pozice kurzoru v příkazovém řádku. Kopírování a vkládání probíhá současně.

Nejprve tedy vyberte text:

Poté stiskněte prostřední tlačítko:

Tuto metodu můžete použít i pro vkládání mezi okny různých terminálů a také do grafických aplikací. Stačí vybrat text, přejít do jiného okna terminálu nebo aplikace a stisknout prostřední tlačítko.

Stará škola – žádná myš

Co když nemáte myš? Pokud nemůžete vybrat žádný text, jak jej můžete zkopírovat a vložit?

Linuxové servery jsou často konfigurovány bez grafického desktopového prostředí (GDE), což znamená, že nemáte přístup k myši. I na počítači s Linuxem, na kterém běží grafické desktopové prostředí, jako je GNOME, a máte myš, mohou nastat situace, kdy nebudete moci myš použít k výběru textu.

Například jste mohli přejít na jedno z dalších TTY. V moderních distribucích se nacházejí pod klávesovými zkratkami Ctrl+Alt+F3 (TTY3) až Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 vás vrátí do relace GDE a Ctrl+Alt+F1 vás přenese na přihlašovací obrazovku vašeho GDE.)

Možná dokonce používáte originální hardwarové TTY zařízení pro připojení k počítači se systémem Linux nebo Unix.

Ať je situace jakákoli, tyto techniky vám budou fungovat. Důležité je pamatovat, že nejde o kopírování a vkládání, ale o vystřihování, kopírování a vkládání a vystřihnout a zkopírovat můžete pouze z aktuálního příkazového řádku. Samozřejmě můžete pomocí šipek procházet historii a najít příkazový řádek, z něhož chcete vystřihnout, zkopírovat a vložit.

Klávesové zkratky, které můžete použít, jsou:

Ctrl+W: Vystřihne slovo před kurzorem a přidá ho do schránky.
Ctrl+K: Odstraní část řádku za kurzorem a přidá ji do schránky. Pokud je kurzor na začátku řádku, odstraní a zkopíruje celý řádek.
Ctrl+U: Odstraní část řádku před kurzorem a přidá ji do schránky. Pokud je kurzor na konci řádku, odstraní a zkopíruje celý řádek.
Ctrl+Y: Vloží naposledy odstraněný a zkopírovaný text.

Přejdeme na TTY3. (Poté se pomocí Ctrl+Alt+F1 vraťte na plochu.)

Ctrl+Alt+F3
tty

Máme soubor, který chceme odstranit, a proto zkontrolujeme, jestli tam je.

ls -l file_to_delete.txt

Pokud použijeme klávesu šipka nahoru, vyvoláme z historie příkazů poslední použitý příkaz. Mohli bychom tento řádek jen upravit, ale cílem je demonstrovat vystřihování, kopírování a vkládání, takže náš úkol smazat soubor dokončíme poněkud zdlouhavým způsobem.

Přesuneme kurzor na první písmeno názvu souboru a poté stiskneme Ctrl+K. Tím odstraníme tuto část řádku a text se zkopíruje do schránky.

Stiskneme klávesu Backspace, dokud čáru nevyčistíme.

<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/GEX0e0iYERCXXsj8Vl/EQZZS3zHjV7RX+yPyy/PYndckr3luKzpL2qpRae2Q7W066XoaFGHqyeDU7B10Xn2jl6TvPPHbdwhRgyVGiOMBbFPgt/LhNsmyk+J9gnR1NVh3ZGy5ACsrqlvnig/I6ZPiMkolGS3wpRMAKT6JpJa0jdN