Cum să copiați și să lipiți text în Bash Shell Linux

Doriți să copiați și să lipiți în linia de comandă a shell-ului Bash? Vă vom arăta mai multe tehnici, indiferent dacă preferați tastatura sau mouse-ul. Acestea funcționează indiferent dacă vă aflați la un desktop grafic sau la un TTY tradițional bazat pe text.

Comenzile rapide obișnuite de la tastatură nu vor funcționa

Copierea și lipirea textului este o parte de bază a utilizării unui computer. Când oamenii folosesc un computer Linux pentru primele câteva ori, indiferent dacă provin din lumea Windows sau din lumea macOS, ei sunt adesea derutați când încearcă să copieze și să lipească într-o fereastră de terminal.

În Windows, utilizați Ctrl+C pentru a copia o secțiune de text evidențiat și Ctrl+V pentru a o lipi. În macOS, utilizați Command+C pentru a-l copia și Command+V pentru a-l lipi. Ele urmează aceeași convenție a lui C pentru a copia și V pentru a insera.

Aceleași apăsări ale tastelor funcționează în majoritatea aplicațiilor grafice Linux, cum ar fi editorul gedit sau LibreOffice suite office.Ctrl+C copiază textul evidențiat și Ctrl+V îl lipește pe cursor. Noul nostru venit la Linux probabil nici măcar nu se gândește la faptul că aceste convenții au fost aplicate în aceste aplicații. Ei folosesc tastele din memoria musculară și își continuă munca.

Odată ce noul nostru venit deschide o fereastră de terminal și încearcă să copieze și să lipească la Bash shell prompt de comandă, toate modificările. Ctrl+C și Ctrl+V au fost alocate funcții cu mult înainte de a se gândi vreodată la copiere și lipire. De fapt, acele apăsări de taste au fost recrutate cu mult timp înainte ca shell-urile grafice să fie inventate, pe vremea când un teletype (TTY) era un lucru fizic.

Ctrl+C și Ctrl+V în TTY-uri

Când un TTY era un dispozitiv fizic, Ctrl+C a fost ales ca o combinație de taste la îndemână pentru a genera un semnal. Semnalul este SIGINT, care spune procesului curent să se încheie. Deoarece o fereastră de terminal este un TTY emulat, acea combinație de taste (și multe altele) au fost păstrate și replicate în emulare. Rețineți că fereastra terminalului este emularea. Shell-ul Bash este un program care rulează în acel TTY emulat.

  7 cele mai bune teme întunecate pentru Linux în 2019

Putem vedea cu ușurință funcțiile care au fost alocate Ctrl+C și Ctrl+V. Să presupunem că tastați următoarea comandă și apăsați „Enter”.

ls -R /

Deoarece folosim opțiunea -R (recursivă), comanda ls va începe să listeze fiecare fișier și director, începând de la directorul rădăcină. După câteva momente, îți dai seama că nu este ceea ce ți-ai dorit, așa că încheiați procesul apăsând Ctrl+C.

Ctrl+C

Procesul ls este încheiat. Dovada vizibilă a Ctrl+C este evidențiată în captură de ecran. Este afișat ca ^C.

Combinația de taste Ctrl+V invocă „inserare verbală”. Acest lucru vă permite să introduceți o reprezentare a unei taste în ceea ce introduceți, în loc să obțineți efectul tastei. Pentru a vedea acest lucru, încercați următoarele comenzi (nu introduceți virgulele). (De exemplu, pentru a încerca primul, apăsați Ctrl+V și apoi apăsați Enter.)

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

Ca o scurtă deoparte, puteți observa că Enter este reprezentat de ^M . Am văzut mai devreme că Ctrl+C a apărut ca ^C. S-ar părea că ^ reprezintă Ctrl. Deci Ctrl+M înseamnă probabil același lucru cu Enter. Asta înseamnă că putem introduce Enter tastând Ctrl+M? Încercați într-o fereastră de terminal. Vei vedea că se întâmplă.

Deci, în mod evident, nu ne putem aștepta ca Ctrl+C și Ctrl+V să efectueze copierea și lipirea textului atunci când au deja alocate funcții onorate. Deci, ce putem folosi?

Ctrl+Shift+C și Ctrl+Shift+V

Ușor de reținut deoarece sunt foarte asemănătoare cu omologii lor, Ctrl+Shift+C și Ctrl+Shift+V sunt înlocuitori directe pentru Ctrl+C și Ctrl+V.

Dacă evidențiați textul în fereastra terminalului cu mouse-ul și apăsați Ctrl+Shift+C, veți copia acel text într-un buffer clipboard.

Ctrl+Shift+C

Puteți folosi Ctrl+Shift+V pentru a lipi textul copiat în aceeași fereastră de terminal sau într-o altă fereastră de terminal.

Ctrl+Shift+V

De asemenea, puteți lipi într-o aplicație grafică, cum ar fi gedit. Dar rețineți, atunci când lipiți într-o aplicație – și nu într-o fereastră de terminal – trebuie să utilizați Ctrl+V.

Și poți merge și pe altă cale. Puteți evidenția textul în gedit și apăsați Ctrl+C, apoi îl inserați într-o fereastră de terminal folosind Ctrl+Shift+V.

Combinația de taste Ctrl+Insert este aceeași cu Ctrl+Shift+C, iar combinația Shift+Insert este aceeași cu Ctrl+Shift+V. Avertismentul aici este că acestea pot fi utilizate numai în aceeași fereastră de terminal.

Folosind mouse-ul: faceți clic dreapta

Puteți folosi mouse-ul pentru a copia și lipi într-o fereastră de terminal. Trebuie să utilizați mouse-ul pentru a evidenția textul pe care îl veți copia, așa că de ce să nu îl folosiți pentru a efectua acțiunile de copiere și inserare?

  Cum să adăugați și să eliminați surse de software personalizate pe OpenSUSE Linux

După ce ați evidențiat un text, faceți clic dreapta cu mouse-ul și selectați „Copiere” din meniul contextual.

Pentru a lipi textul copiat, faceți clic dreapta cu mouse-ul încă o dată și selectați „Lipire” din meniul contextual.

Textul este lipit în poziția cursorului pe linia de comandă. În acest exemplu, calea relativă a fost dată incorect și Bash nu poate schimba directorul. Utilizatorul a ratat „~/” de la începutul căii. Au tastat „~/” și apoi au copiat restul căii din încercarea lor anterioară și l-au lipit în a doua linie de comandă.

Când apăsă Enter, sunt mutați în director.

Acest exemplu a arătat lipirea în aceeași fereastră de terminal, dar puteți folosi această tehnică de clic dreapta pentru a lipi în ferestre de terminal diferite. Puteți, de asemenea, să lipiți în aplicații grafice folosind această metodă.

Utilizarea mouse-ului: butonul din mijloc

Există o modalitate și mai rapidă de a copia și lipi folosind mouse-ul, atâta timp cât mouse-ul are un buton din mijloc. Dacă apăsați pe rotița de derulare (ușor!) și face clic, aveți un buton din mijloc.

Evidențiați un text într-o fereastră de terminal și apoi apăsați butonul din mijloc. Textul evidențiat este lipit în poziția cursorului pe linia de comandă. Copierea și lipirea au loc în același timp.

Deci, evidențiați un text:

Apoi apăsați butonul din mijloc:

Puteți folosi această metodă pentru a lipi între diferite ferestre de terminale și, de asemenea, în aplicații grafice. Doar evidențiați textul, treceți la cealaltă fereastră de terminal sau aplicație și apăsați butonul din mijloc.

Old School – Fără șoarece

Dar când nu ai mouse? Dacă nu puteți evidenția niciun text, cum îl puteți copia și lipi?

Serverele Linux sunt adesea configurate fără a mediu desktop grafic (GDE), ceea ce înseamnă că nu aveți acces la un mouse. Chiar și pe un computer Linux care rulează un mediu desktop grafic precum GNOME și aveți un mouse, vor exista cazuri când nu puteți utiliza mouse-ul pentru a evidenția text.

De exemplu, este posibil să fi schimbat la unul dintre TTY-urile suplimentare. În distribuțiile moderne, acestea sunt situate de la Ctrl+Alt+F3 (TTY3) până la Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 vă va întoarce la sesiunea dvs. GDE și Ctrl+Alt+F1 vă va duce la ecranul de conectare al GDE.)

  Cum să faci o copie de rezervă a setărilor desktopului Gnome Shell pe Linux

Poate că utilizați chiar și un dispozitiv hardware TTY autentic pentru a vă conecta la un computer Linux sau Unix.

Oricum, aceste tehnici vor funcționa pentru tine. Ideea de reținut aici este că acest lucru nu este copiere și lipire, este tăiat, copiere și lipire și puteți tăia și copia doar din linia de comandă curentă. Desigur, puteți folosi tastele săgeți pentru a parcurge istoricul pentru a găsi linia de comandă din care doriți să tăiați, copiați și lipiți.

Apăsările de taste pe care le puteți folosi sunt:

Ctrl+W: Tăiați cuvântul dinaintea cursorului și adăugați-l în memoria tampon din clipboard.
Ctrl+K: Tăiați partea de linie după cursor și adăugați-o în tamponul clipboard. Dacă cursorul se află la începutul liniei, acesta va tăia și copia întreaga linie.
Ctrl+U: Tăiați partea de linie dinaintea cursorului și adăugați-o în memoria tampon din clipboard. Dacă cursorul se află la sfârșitul liniei, acesta va tăia și copia întreaga linie.
Ctrl+Y: Lipiți ultimul text care a fost tăiat și copiat.

Să trecem la TTY3. (Folosiți Ctrl+Alt+F1 pentru a reveni apoi la desktop.)

Ctrl+Alt+F3
tty

Avem un fișier pe care dorim să-l ștergem, să verificăm că este aici.

ls -l file_to_delete.txt

Dacă folosim tasta săgeată sus, vom apela ultima comandă pe care am folosit-o din istoricul comenzilor. Am putea doar edita această linie, dar scopul este de a demonstra tăierea, copierea și lipirea, așa că ne vom îndeplini sarcina de a șterge fișierul într-un mod ușor prelungit.

Vom muta cursorul la prima literă a numelui fișierului, apoi apăsăm Ctrl+K. Aceasta va elimina acea parte a liniei și va copia textul în tamponul clipboard.

Vom apăsa Backspace până când ștergem linia.

Vom introduce rm pentru a șterge fișierul.

Și acum putem apăsa Ctrl+Y și lipim în restul liniei.

Acest lucru completează comanda noastră și putem apăsa Enter pentru a șterge fișierul.

Acest tip de tăiere, copiere și lipire nu poate fi utilizat între TTY-uri suplimentare. Nu puteți tăia, copia și lipi între TTY3 și TTY4, de exemplu.

TTY-urile suplimentare sunt cel mai bine gândite ca o linie de TTY-uri fizice așezate unul lângă altul. Nu există nicio modalitate de a tăia și lipi între diferitele terminale fizice și nu există nicio modalitate de a face acest lucru în aceste emulări.

Copiați asta, control

Indiferent de situația în care vă aflați când utilizați un computer Linux, va exista o modalitate de a copia și lipi. Ai optiuni. Unele dintre ele sunt opțiuni ciudate, dar cel puțin există opțiuni.