Jak skopiować i wkleić tekst w powłoce Bash w systemie Linux

Chcesz skopiować i wkleić w wierszu poleceń powłoki Bash? Pokażemy Ci wiele technik, niezależnie od tego, czy wolisz klawiaturę, czy mysz. Działają one niezależnie od tego, czy korzystasz z graficznego pulpitu, czy tradycyjnego tekstowego urządzenia TTY.

Zwykłe skróty klawiaturowe nie będą działać

Kopiowanie i wklejanie tekstu to podstawowe umiejętności korzystania z komputera. Kiedy ludzie używają Linuksa po raz pierwszy, często są zdezorientowani, próbując skopiować i wkleić w oknie terminala.

W systemie Windows używamy Ctrl + C do skopiowania zaznaczonego tekstu i Ctrl + V do jego wklejenia. W macOS używamy Command + C do skopiowania i Command + V do wklejenia. Te same naciśnięcia klawiszy działają w większości aplikacji graficznych Linuksa, takich jak edytor gedit lub LibreOffice. Ctrl + C kopiuje zaznaczony tekst, a Ctrl + V wkleja go do kursora. Nowicjusze w Linuksie często używają tych skrótów z pamięci mięśniowej, kontynuując swoją pracę.

Jednak gdy nowicjusz otworzy okno terminala i spróbuje skopiować i wkleić w Bash shell, wszystko się zmienia. Ctrl + C i Ctrl + V mają przypisane funkcje od dawna, zanim pojawiły się powłoki graficzne, kiedy teletyp (TTY) był czymś fizycznym.

Ctrl + C i Ctrl + V w TTY

Kiedy TTY był urządzeniem fizycznym, kombinacja klawiszy Ctrl + C została wybrana jako wygodny sposób generowania sygnału. Sygnał ten, SIGINT, informuje bieżący proces o zakończeniu. Okno terminala jest emulowanym TTY, więc ta kombinacja klawiszy (i wiele innych) została zachowana i zreplikowana podczas emulacji. Powłoka Bash działa w tym emulowanym TTY.

Możemy łatwo zobaczyć, jakie funkcje przypisano do Ctrl + C i Ctrl + V. Załóżmy, że wpisujesz polecenie i naciskasz „Enter”.

ls -R /

Ponieważ używamy opcji -R (rekurencyjna), polecenie ls zacznie wyświetlać każdy plik i katalog, zaczynając od katalogu głównego. Po chwili zdajesz sobie sprawę, że to nie jest to, czego chciałeś, więc przerywasz proces, naciskając Ctrl + C.

Ctrl+C

Proces ls został zakończony, a dowód Ctrl + C jest zaznaczony na zrzucie ekranu. Jest wyświetlany jako ^C.

Kombinacja klawiszy Ctrl + V wywołuje „dosłowne wstawianie”. Pozwala to na wprowadzenie reprezentacji klucza do tego, co piszesz, zamiast uzyskania efektu klawisza. Aby to zobaczyć, wypróbuj następujące polecenia (nie wpisuj przecinków):

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

Na marginesie, możesz zauważyć, że Enter jest reprezentowany przez ^M. Widzieliśmy wcześniej, że Ctrl + C pojawiło się jako ^C. Wydaje się, że ^ oznacza Ctrl. Dlatego Ctrl + M prawdopodobnie oznacza to samo co Enter. Możesz to sprawdzić w oknie terminala.

Ctrl + Shift + C i Ctrl + Shift + V

Te kombinacje są łatwe do zapamiętania, ponieważ są bardzo podobne do swoich odpowiedników. Ctrl + Shift + C i Ctrl + Shift + V są bezpośrednimi zamiennikami Ctrl + C i Ctrl + V.

Jeśli zaznaczysz tekst w oknie terminala za pomocą myszy i naciśniesz Ctrl + Shift + C, skopiujesz ten tekst do bufora schowka.

Ctrl+Shift+C

Możesz użyć Ctrl + Shift + V, aby wkleić skopiowany tekst do tego samego okna terminala lub do innego okna terminala.

Ctrl+Shift+V

Możesz także wkleić do aplikacji graficznej, takiej jak gedit. Pamiętaj, że kiedy wklejasz do aplikacji, a nie do okna terminala, musisz użyć Ctrl + V.

Możesz także skopiować tekst z gedit i wkleić go do okna terminala za pomocą Ctrl + Shift + V.

Kombinacja klawiszy Ctrl + Insert jest taka sama jak Ctrl + Shift + C, a kombinacja Shift + Insert jest taka sama jak Ctrl + Shift + V. Uwaga: można ich używać tylko w tym samym oknie terminala.

Za pomocą myszy: Kliknij prawym przyciskiem myszy

Możesz użyć myszy, aby skopiować i wkleić w oknie terminala. Po zaznaczeniu tekstu kliknij prawym przyciskiem myszy i wybierz „Kopiuj” z menu kontekstowego.

Aby wkleić skopiowany tekst, ponownie kliknij prawym przyciskiem myszy i wybierz „Wklej” z menu kontekstowego.

Tekst jest wklejany w miejscu kursora w linii poleceń. W tym przykładzie ścieżka względna została podana niepoprawnie, a Bash nie może zmienić katalogu. Użytkownik pominął „~/” na początku ścieżki. Wpisali „~/”, a następnie skopiowali pozostałą część ścieżki z poprzedniej próby i wkleili ją do drugiego wiersza poleceń.

Po naciśnięciu Enter są przenoszeni do katalogu.

Ten przykład pokazał wklejanie do tego samego okna terminala, ale możesz użyć tej techniki kliknięcia prawym przyciskiem myszy, aby wkleić do różnych okien terminala. Możesz także wkleić do aplikacji graficznych.

Za pomocą myszy: środkowy przycisk

Istnieje jeszcze szybszy sposób kopiowania i wklejania za pomocą myszy, o ile mysz ma środkowy przycisk. Jeśli naciśniesz kółko przewijania (delikatnie!) i klikniesz, masz środkowy przycisk.

Podświetl tekst w oknie terminala, a następnie naciśnij środkowy przycisk. Podświetlony tekst zostanie wklejony w miejsce kursora w wierszu poleceń. Kopiowanie i wklejanie odbywa się w tym samym czasie.

Więc zaznacz jakiś tekst:

Następnie naciśnij środkowy przycisk:

Możesz użyć tej metody do wklejania między różnymi oknami terminali, a także do aplikacji graficznych. Po prostu zaznacz tekst, przejdź do innego okna terminala lub aplikacji i naciśnij środkowy przycisk.

Stara szkoła – bez myszy

A co, gdy nie masz myszy? Jeśli nie możesz zaznaczyć żadnego tekstu, jak możesz go skopiować i wkleić?

Serwery Linux są często konfigurowane bez graficznego środowiska (GDE), co oznacza, że nie masz dostępu do myszy. Nawet na komputerze z systemem Linux, na którym działa graficzne środowisko, mogą zdarzyć się przypadki, w których nie możesz użyć myszy do podświetlenia tekstu.

Na przykład mogłeś przełączyć się na jeden z dodatkowych TTY. W nowoczesnych dystrybucjach znajdują się one od Ctrl + Alt + F3 (TTY3) do Ctrl + Alt + F6 (TTY6). (Ctrl + Alt + F2 spowoduje powrót do sesji GDE, a Ctrl + Alt + F1 przeniesie Cię do ekranu logowania do GDE).

Być może używasz nawet oryginalnego sprzętowego urządzenia TTY do łączenia się z komputerem z systemem Linux lub Unix.

W tych sytuacjach możesz skorzystać z technik wycinania, kopiowania i wklejania, które działają tylko w bieżącym wierszu poleceń. Możesz użyć klawiszy strzałek, aby przewinąć historię i znaleźć wiersz, z którego chcesz wycinać, kopiować i wklejać.

Klawisze, których możesz użyć, to:

  • Ctrl + W: Wytnij słowo przed kursorem i dodaj je do bufora schowka.
  • Ctrl + K: Wytnij część linii za kursorem i dodaj ją do bufora schowka. Jeśli kursor znajduje się na początku linii, wycina i kopiuje całą linię.
  • Ctrl + U: Wytnij część linii przed kursorem i dodaj ją do bufora schowka. Jeśli kursor znajduje się na końcu linii, wycina i kopiuje całą linię.
  • Ctrl + Y: Wklej ostatni tekst, który został wycięty i skopiowany.

Przejdźmy do TTY3. (Użyj Ctrl + Alt + F1, aby później wrócić na pulpit).

Ctrl+Alt+F3
tty

Mamy plik, który chcemy usunąć, sprawdźmy, czy jest tutaj.

ls -l file_to_delete.txt

Jeśli użyjemy klawisza strzałki w górę, wywołamy ostatnie polecenie z historii poleceń. Moglibyśmy po prostu edytować tę linię, ale celem jest zademonstrowanie wycinania, kopiowania i wklejania, więc wykonamy nasze zadanie usunięcia pliku w nieco przedłużony sposób.

Przesuniemy kursor do pierwszej litery nazwy pliku, a następnie naciśniemy Ctrl + K. Spowoduje to usunięcie tej części wiersza i skopiowanie tekstu do bufora schowka.

Wpisz rm, aby usunąć plik.

A teraz możemy nacisnąć Ctrl + Y i wkleić pozostałą część linii.

To kończy nasze polecenie i możemy nacisnąć klawisz Enter, aby usunąć plik.

Tego typu wycinanie, kopiowanie i wklejanie nie może być używane między dodatkowymi TTY. Nie można na przykład wycinać, kopiować i wklejać między TTY3 i TTY4.

Dodatkowe TTY najlepiej traktować jako linię fizycznych terminali TTY ustawionych obok siebie. Nie ma możliwości wycinania i wklejania między różnymi fizycznymi terminalami i nie ma sposobu, aby to zrobić w tych emulacjach.

Kopiuj, Control

Niezależnie od sytuacji, w której się znajdziesz podczas korzystania z komputera z systemem Linux, zawsze jest sposób na kopiowanie i wklejanie. Masz wiele opcji, niektóre z nich mogą być nietypowe, ale przynajmniej są dostępne.


newsblog.pl