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 podstawowy element korzystania z komputera. Kiedy ludzie używają komputera z Linuksem po raz pierwszy, niezależnie od tego, czy pochodzą ze świata Windows, czy macOS, często są zdezorientowani, próbując skopiować i wkleić w oknie terminala.

W systemie Windows użyj Ctrl + C, aby skopiować fragment podświetlonego tekstu i Ctrl + V, aby go wkleić. W macOS używasz Command + C, aby go skopiować, i Command + V, aby go wkleić. Postępują zgodnie z tą samą konwencją C kopiowania i V do wstawiania.

Te same naciśnięcia klawiszy działają w większości aplikacji graficznych Linuksa, takich jak edytor gedit albo LibreOffice pakiet office. Ctrl + C kopiuje zaznaczony tekst, a Ctrl + V wkleja go do kursora. Nasz nowicjusz w Linuksie prawdopodobnie nawet nie myśli o tym, że te konwencje zostały przeniesione do tych aplikacji. Używają klawiszy z pamięci mięśniowej i kontynuują swoją pracę.

Gdy nasz nowicjusz otworzy okno terminala i spróbuje skopiować i wkleić w Bash shell wiersz polecenia, że ​​wszystkie zmiany. Ctrl + C i Ctrl + V przydzielono funkcje na długo przed kopiowaniem i wklejaniem. W rzeczywistości te naciśnięcia klawiszy zostały zrekrutowane na długo przed wynalezieniem powłok graficznych, kiedy teletyp (TTY) był czymś fizycznym.

Ctrl + C i Ctrl + V w TTY

Gdy TTY był urządzeniem fizycznym, wybrano kombinację klawiszy Ctrl + C jako poręczną kombinację klawiszy do generowania sygnału. Ten sygnał jest SIGINT, który mówi bieżącemu procesowi o zakończeniu. Ponieważ okno terminala jest emulowanym TTY, ta kombinacja klawiszy (i wiele innych) została zachowana i zreplikowana podczas emulacji. Zauważ, że to okno terminala jest emulacją. Powłoka Bash to program działający w tym emulowanym TTY.

Z łatwością możemy zobaczyć funkcje, które zostały przypisane do Ctrl + C i Ctrl + V. Załóżmy, że wpisujesz następujące polecenie i naciskasz „Enter”.

ls -R /

ls -R / w oknie terminala

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

Ctrl+C

Ctrl + C w oknie terminala

Proces ls został zakończony. Widoczny 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 klucza. Aby to zobaczyć, wypróbuj następujące polecenia (nie wpisuj przecinków). (Na przykład, aby wypróbować pierwszy, naciśnij Ctrl + V, a następnie naciśnij Enter).

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

Ctrl + V, Enter w oknie terminala

Na marginesie możesz zauważyć, że Enter jest reprezentowany przez ^ M. Widzieliśmy wcześniej, że Ctrl + C pojawiło się jako ^ C. Wydawałoby się, że ^ reprezentuje Ctrl. Więc Ctrl + M prawdopodobnie oznacza to samo co Enter. Czy to oznacza, że ​​możemy wpisać Enter, naciskając Ctrl + M? Wypróbuj w oknie terminala. Zobaczysz, że tak.

Tak więc, po prostu nie możemy oczekiwać, że Ctrl + C i Ctrl + V będą kopiować i wklejać tekst, gdy mają już przydzielone funkcje uświęcone czasem. Więc czego możemy użyć?

Ctrl + Shift + C i Ctrl + Shift + V

Łatwo je zapamiętać, 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

Ctrl + Shift + C w oknie terminala

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

Ctrl+Shift+V

Ctrl + Shift + V w oknie terminala

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

Wklejanie z okna terminala do edytora gedit

Możesz też pójść w drugą stronę. Możesz podświetlić tekst w gedit i nacisnąć Ctrl + C, a następnie wkleić go do okna terminala za pomocą Ctrl + Shift + V.

Kopiowanie z edytora gedit i wklejanie do okna terminala

Kombinacja klawiszy Ctrl + Insert jest taka sama jak Ctrl + Shift + C, a kombinacja Shift + Insert jest taka sama jak Ctrl + Shift + V. Zastrzeżenie polega na tym, że 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. Musisz użyć myszy, aby zaznaczyć tekst, który zamierzasz skopiować, więc dlaczego nie użyć go do wykonania operacji kopiowania i wklejania?

Po zaznaczeniu tekstu kliknij prawym przyciskiem myszy i wybierz „Kopiuj” z menu kontekstowego.

okno terminala z menu kontekstowym i podświetloną kopią

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

okno terminala z menu kontekstowym i zaznaczonym wklejaniem

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ą przenoszone do katalogu.

okno terminala ze zmienionym katalogiem uzyskanym poprzez kopiowanie i wklejanie

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. Za pomocą tej metody można również 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 kliknie, 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:

okno terminala z podświetlonym tekstem

Następnie naciśnij środkowy przycisk:

okno terminala z podświetlonym tekstem wklejonym w wierszu poleceń

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 rozszerzenia graficzne środowisko graficzne (GDE), co oznacza, że ​​nie masz dostępu do myszy. Nawet na komputerze z systemem Linux, na którym działa graficzne środowisko graficzne, takie jak GNOME, i masz mysz, będą 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.

Tak czy inaczej, te techniki będą działać dla Ciebie. Należy tutaj pamiętać, że to nie jest kopiowanie i wklejanie, tylko wycinanie, kopiowanie i wklejanie, a można wycinać i kopiować tylko z bieżącego wiersza poleceń. Oczywiście możesz użyć klawiszy strzałek, aby przewinąć historię, aby znaleźć wiersz poleceń, 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

tty3 w oknie terminala

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

ls -l file_to_delete.txt

ls -l file_to_delete.txt w oknie terminala

Jeśli użyjemy klawisza strzałki w górę, wywołamy ostatnie polecenie, którego użyliśmy, 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.

Pobrano polecenie z historii poleceń w oknie terminala

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.

Efekt Ctrl + K w oknie terminala

Będziemy naciskać Backspace, aż wyczyścimy linię.

Linia wyczyszczona cofnięciem w oknie terminala

Wpisz rm, aby usunąć plik.

rm w oknie terminala

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

Efekt Ctrl + Y w oknie terminala

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

Plik został usunięty bez komunikatu o błędzie w oknie terminala

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, będzie sposób na kopiowanie i wklejanie. Masz opcje. Niektóre z nich to dziwne opcje, ale przynajmniej są opcje.