Table of Contents

7. Folosirea eficientă a liniei de comandă

Întrucât folosim des comenzi în shell, dorim să eficientizăm cât mai mult lucrul cu acestea. Shell-ul permite (prin intermediul bibliotecii readline) editarea comenzilor și scrierea acestora cât mai rapid. O funcționalitate utilă este căutarea în istoricul de comenzi (reverse history search).

Subiecte abordate

Utilitare folosite

Resurse utile

Exerciții

Demo-uri

Despre scurtăturile din shell pentru navivagarea în comenzi shell

Despre Alt+.

Despre istoricul de comenzi, !! și reverse history search (Ctrl+r)

Exerciții de încălzire

Accesați pagina de manual a Bash

man bash

și căutați șirul Commands for Moving. Observați care sunt scurtăturile uzuale pentru comenzi în shell.

Scrieți la prompt, fără să rulați, comanda

cd /h

și apoi folosiți tasta TAB pentru autocompletare. Se completează la cd /home.

Pentru listarea tuturor comenzilor ce încep cu ap, scrieți acest prefix în terminal și folosiți de două ori consecutiv tasta TAB. Se completează la lista de comenzi care încep cu ap

Scieți comanda apt-get install nmap, fără să o executați. Folosiți combinația de taste Ctrl + a pentru a vă deplasa la începutul comenzii. Similar, folosiți Ctrl + e pentru a vă deplasa înapoi la finalul comenzii. Folosind săgețile, plasați cursorul după cuvântul get. După aceea, folosiți combinația Ctrl + k. Observați efectul.

După ce comanda este din nou completă, din aceeași poziție a cursorului, folosiți Ctrl + w și observați ce efect are.

Rulați următoarea comandă:

ping -c 1 google.com > result.out

După aceea, folosiți combinația de taste Alt + . (adică țineți apăsat tasta Alt și apoi apăsați tasta . (punct)). Observați efectul acesteia: completează ultimul argument al ultimei comenzi.

Folosiți de mai multe ori Alt + .. Rezultatul este parcurgerea ultimului argument al ultimelor comenzi la fiecare apăsare

Ștergeți ce s-a afișat la punctul anterior. Rulați comanda:

echo $_

Diferența față de Alt + . este că este neinteractiv și că nu afișează expandarea acelui argument.

În același terminal în care ați tastat comenzile de mai sus, rulați comanda:

ping -c 1 8.8.8.8

Apăsați Ctrl + r și în noul prompt apărut tastați ping. Mai apăsați o dată Ctrl + r. Observați ce se afișează. Folosiți tasta ENTER. Apoi repeteți primul pas și folosiți ESC. Observați diferența dintre cele două utilizări.

Rulați comanda de schimbare a directorului:

cd /etc

După aceea, folosiți:

cd -
pwd

Observați ce efect are: schimbă directorul în directorul anterior.

Rulați comanda ls /var/cache/apt/archives/ (utilizând cât mai mult command completion). Ce comandă vă permite schimbarea cât mai eficientă în directorul /var/cache/apt/archives/?

Folosire scurtături

Comanda de mai jos selectează numele fișierelor din /etc/ care se termină în .conf și scrie lista într-un fișiere:

find /etc -name "*.conf" > result.txt

Folosind shortcut-urile de mai jos căutați fișierele care încep cu mod și schimbați numele fișierul în care se scrie în shiny-result.txt. Stergeți criteriul de căutare după nume și acum căutați toate directoarele din /etc. (Hint: man find, /type)

  • Alt-f / Alt-b - deplasare cuvânt următor/anterior
  • Alt-d: ștergere cuvânt curent
  • Alt-Backspace: șterge cuvânt anterior

Folosire eficientă a liniei de comandă

Pentru a deschide un tab nou de terminal folosiți scurtătura Ctrl+Shift+t. Închideți tab-urile nou deschise folosind scurtătura Ctrl+d.

Vreți să afișați discurile sistemului.Rulați comanda

fdisk -l

În cazul în care sistemul are disc cu suport de GPT, folosiți comanda

gdisk -l /dev/sda

Vă dați seama că trebuie să rulați sub sudo. Ce faceți? (gândiți-vă la eficiență)

Vreți să aflați informații despre executabilul aferent comenzii md5sum. Întâi aflați care este calea către executabilul aferent comenzii. Pentru aceasta rulați comanda

which md5sum

Pentru a afla din ce pachet face parte executabilul trebuie să folosiți comanda

dpkg -S /cale/catre/executabil

Contrucția $(comanda) vă întoarce rezutaltul comenzii comanda.Ce faceți? (gândiți-vă la eficiență)

Rulați comenzile de mai jos pentru a crea un director nou și pentru a face o copie a fișierului /etc/passwd:

mkdir -p ~/store/system/
cp /etc/passwd ~/store/system/passwd-copy

Folosiți comanda less pentru a vizualiza conținutul fișierului astfel copiat.

Fiți eficienți, folosiți combinația Alt+. pentru obținerea ultimului argument al ultimei comenzi.

Rulați încă o dată comanda care afișa din ce pachet face parte utilitarul md5sum. Fiți eficienți, căutați în istoricul de comenzi.