Scurtături în terminal

Tab completion

Funcția de tab completion este probabil una dintre cele mai utile funcții expuse de către terminal. Prin simpla apăsare a tastei Tab în timp ce scriem numele unei comenzi, al unei opțiuni a unei comenzi sau calea către un director sau fișier, terminalul va completa în mod automat textul. În cazul în care există mai multe opțiuni pentru auto-complete, prin dubla apăsare a tastei Tab ne va sugera opțiunile de auto-complete.

În imaginea de mai jos putem observa că pentru comanda cd D funcția de Tab completion a găsit mai multe opțiuni valide pentru auto-complete. În astfel de scenarii, cu mai multe opțiuni valide, apăsarea tastei Tab o singură dată nu produce niciun rezultat; trebuie să apăsăm tasta Tab de două ori consecutiv pentru a genera afișarea opțiunilor de auto-complete.

student@uso:~$ cd D
Desktop/   Documents/ Downloads/
student@uso:~$ cd D

Funcția de auto-complete este extrem de utilă și îmbunătățește semnificativ viteza cu care realizăm acțiuni în terminal.

Funcția este extrem de utilă atunci când lucrăm cu nume de fișiere, directoare și căi din sistem. În loc să scriem manual o cale către un nume foarte lung, lăsăm tasta Tab să facă asta pentru noi.

Atunci când avem o eroare în comandă (am scris greșit o anumită parte din numele comenzii sau al fișierului, fișierul nu există, etc.), tasta Tab nu produce nici un rezultat. Acesta este un alt motiv pentru care să folosim tasta Tab.

Folosiți funcția de Tab completion cât mai des cu putință1).

Shellul implementează funcția de a reține istoricul comenzilor pe care le-am executat. Pentru a vedea istoricul curent putem rula comanda history. Vom obține un rezultat asemănător cu cel de mai jos:

student@uso:~$ history
[...]
21  ls
22  cd sorting/
23  ls -l
24  ls
25  cd
26  ls ~/Desktop ~/Documents ~/Downloads
27  ls ~/Desktop
28  ls Desktop/todos.txt
29  cp Desktop/todos.txt cp
30  ls
31  rm cp
[...]

Ciclăm prin comenzile date anterior folosind combinația de taste Arrow Up sau Ctrl+p, respectiv Arrow Down sau Ctrl+n.

Exercițiu: Ciclați prin istoricul de comenzi folosind combinația de taste Ctrl+p, respectiv Ctrl+n.

Căutarea în istoricul comenzilor

Terminalul ne pune la dispoziție un mod mai inteligent de a căuta în istoricul comenzilor prin combinația de taste Ctrl+r, ordinea căutării fiind de la cea mai recentă comandă la cea mai veche. Funcția este cunoscută sub numele de history search.

Pentru a porni căutarea, apăsați combinația de taste Ctrl+r și începeți să scrieți o parte din textul comenzii pe care o căutați, de exemplu cd.

(reverse-i-search)`cd': cd workspace

De aici, avem următoarele opțiuni:

  • Căutăm în continuare o comandă care conține șirul cd, folosind combinația de taste Ctrl+r
  • Rulăm comanda pe care am găsit-o, folosind combinația de taste Ctrl+o
  • Anulăm căutarea comenzii și revenim la starea inițială, folosind combinația de taste Ctrl+g

Căutarea este incrementală. Adică se rafinează pe măsură ce tastăm un caracter. Orice caracter apăsat rafinează căutarea.

Textul căutat se poate afla oriunde în interiorul comenzii; nu trebuie să fie primele litere din comandă. Pentru exemplul de mai sus, căutarea folosind textul work ar fi produs același rezultat:

(reverse-i-search)`work': cd workspace

Ne găsim des în situația în care căutăm o comandă în istoric folosind funcția de history search, modificăm un argument al comenzii și apoi o executăm. Pentru navigarea în cadrul textului comenzii putem folosi Arrow Keys, iar pentru ștergeri putem folosi tasta Backspace sau Del.

Terminalul ne pune la dispoziție și o serie de scurtături cu ajutorul cărora putem face realiza aceeași acțiune mai rapid. Dacă vreți să vă impresionați prietenii, acesta este un mod simplu, dar eficient, de a o face.

Pentru a naviga în corpul textului putem folosi combinațiile de taste:

  • Ctrl+a - mută cursorul la începutul liniei
  • Ctrl+e - mută cursorul la sfârșitul liniei
  • Ctrl+f - mută cursorul cu un caracter înainte
  • Ctrl+b - mută cursorul cu un caracter înapoi
  • Alt+f - mută cursorul cu un cuvânt înainte
  • Alt+b - mută cursorul cu un cuvânt înapoi

Pentru a efectua ștergeri în corpul textului putem folosi combinațiile de taste:

  • Ctrl+k - șterge tot textul de la cursor până la sfârșitul liniei
  • Ctrl+u - șterge tot textul de la cursor până la începutul liniei
  • Alt+d - șterge tot textul de la cursor până la sfârșitul cuvântului

Textul șters este salvat într-un registru și poate fi folosit folosind combinația de taste Ctrl+y. Funcționalitatea este similară cu procesul de Cut (Ctrl+k, Ctrl+u sau Alt+d) și Paste (Ctrl+y).

Extra: Exerciții

Rulați comanda ls Documents/ Downloads/ Desktop/ Pictures/ Music/ înainte de a vă apuca de exerciții.

  1. Apăsați tasta Ctrl+p pentru a accesa comanda rulată anterior.
  2. Plasați-vă la începutul comenzii folosind combinația de taste Ctrl+a.
  3. Plasați-vă la sfârșitul comenzii folosind combinația de taste Ctrl+e.
  4. Mergeți, cuvânt cu cuvânt, la începutul comenzii folosind combinația de taste Alt+b.
  5. Mergeți, cuvânt cu cuvânt, la sfârșitul comenzii folosind combinația de taste Alt+f.
  6. Rulați comanda ls Docuents/ Downlads/ Dektop/ Pitures/ Muic/.
  7. Apăsați tasta Ctrl+p pentru a accesa comanda rulată anterior. Corectați typourile (greșelile de scriere) din comanda anterioară. Folosiți combinațiile de taste Ctrl+f, Ctrl+b pentru a deplasa cursorul în cadrul comenzii.
  8. Apăsați tasta Ctrl+p pentru a accesa comanda rulată anterior (comanda corectată). Avansați până la începutul cuvântului Desktop/. Ștergeți tot până la final folosind combinația de taste Ctrl+k. Acum anulați comanda curentă apăsând combinația de taste Ctrl+c. În acest moment, textul pe care l-ați șters folosind Ctrl+k (Desktop/ Pictures/ Music/) se află într-un buffer. O să rulați comanda ls pe textul din buffer. Scrieți comanda ls și apoi apăsați combinația de taste Ctrl+y. Textul a fost scris din buffer în continuarea comenzii ls (scrisă de voi).
  9. Rulați comanda ls Documents/ Downloads/ Desktop/ Pictures/ Music/. Apăsați tasta Ctrl+p pentru a accesa comanda rulată anterior (comanda corectată). Avansați până la începutul cuvântului Pictures/. Ștergeți cuvântul folosind combinația de taste Alt+d. Acum anulați comanda curentă apăsând combinația de taste Ctrl+c. În acest moment, textul pe care l-ați șters folosind Alt+d (Pictures) se află într-un buffer. O să rulați comanda ls pe textul din buffer. Scrieți comanda ls și apoi apăsați combinația de taste Ctrl+y. Textul a fost scris din buffer în continuarea comenzii ls (scrisă de voi).
1) Putem să ne găsim în situația în care ecranul terminalului nostru este plin cu rezultatele comenzilor rulate anterior sau cu opțiuni afișate de către auto-complete. Putem să curățăm ecranul folosind comanda clear. O alternativă mai rapidă este să folosim combinația de taste Ctrl+l. Aceasta va produce același rezultat (va curăța ecranul) și are avantajul că poate fi folosită în timp ce scriem deja o comandă.
uso/laboratoare/laborator-06/improve-terminal.txt · Last modified: 2023/11/07 20:03 by maria_irina.gherman
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0