Comanda history în Linux (Istoria Bash)
Comanda history în Linux este un instrument puternic pentru utilizatorii care lucrează cu shell-ul Bash. Aceasta ține evidența comenzilor executate anterior, permițând utilizatorilor să vizualizeze, să reamintească și chiar să reexecute comenzile fără a le mai tasta din nou. Acest lucru poate crește semnificativ productivitatea prin economisirea de timp și reducerea șanselor de a face greșeli la rescrierea comenzilor lungi.
Ce este Bash History?
Bash, la fel ca multe alte shell-uri, păstrează o înregistrare a comenzilor pe care le introduceți într-un fișier istoric. În majoritatea distribuțiilor Linux, acest istoric este stocat într-un fișier numit .bash_history în directorul home al fiecărui utilizator (~/.bash_history). În mod implicit, fiecare comandă introdusă în shell este anexată la acest fișier atunci când sesiunea se încheie, permițând utilizatorilor să revadă comenzile din sesiunile anterioare.
Utilizarea de bază a comenzii history
Comanda history este simplu de utilizat și oferă diverse modalități de vizualizare și interacțiune cu istoricul comenzilor. Iată câteva dintre cele mai comune utilizări:
- Afișarea istoricului comenzilor:
Executarea comenzii history fără niciun argument va afișa o listă a celor mai recente comenzi pe care le-ați introdus, împreună cu un număr lângă fiecare comandă.history
Aceasta afișează ultimele n comenzi, unde n este de obicei în jur de 500 sau 1000, în funcție de configurația sistemului dumneavoastră.
- Specificarea numărului de comenzi:
Puteți limita numărul de comenzi afișate prin specificarea unui număr. De exemplu, pentru a vedea ultimele 10 comenzi:history 10
Rechemarea comenzilor din istoric
Comanda History vă permite, de asemenea, să rechemați și să reutilizați cu ușurință comenzile executate anterior:
- Utilizarea notației ! (Semnul exclamării):
Aceasta vă permite să re-executați comenzile direct din istoric:- !! – Rulează din nou ultima comandă executată.
!!
- !n – Rulează comanda de la poziția n din lista istorică.
!42
Aceasta va re-executa comanda listată la numărul 42 în istoric.
- !string – Găsește cea mai recentă comandă care începe cu string și o execută.
!git
Aceasta va executa cea mai recentă comandă care începe cu git.
- !! – Rulează din nou ultima comandă executată.
- Utilizarea tastelor săgeată:
Puteți utiliza tastele săgeată sus și jos pentru a parcurge comenzile anterioare direct în terminal. Acest lucru este util în special pentru găsirea rapidă a comenzilor recente.
Editarea și modificarea istoricului
- Eliminarea unor intrări specifice:
Puteți șterge o anumită comandă din istoric utilizând history -d urmat de numărul liniei:history -d 42
Aceasta va șterge comanda de la linia 42 din lista istoricului.
- Ștergerea întregului istoric:
Pentru a șterge toate comenzile din fișierul istoric, utilizați:history -c
Acest lucru șterge istoricul pentru sesiunea curentă. Pentru a șterge și istoricul salvat în ~/.bash_history, suprascrieți fișierul:
history -c && > ~/.bash_history
Configurarea istoricului Bash
Comportamentul istoricului poate fi personalizat prin variabile de mediu și setări de configurare în fișierele ~/.bashrc sau ~/.bash_profile:
- HISTSIZE:
Această variabilă controlează câte comenzi sunt păstrate în memorie în timpul unei sesiuni. De exemplu, pentru a păstra 1000 de comenzi:export HISTSIZE=1000
- HISTFILESIZE:
Această variabilă stabilește numărul de linii (comenzi) care sunt salvate în fișierul ~/.bash_history. De exemplu:export HISTFILESIZE=2000
Aceasta înseamnă că 2000 de comenzi vor fi păstrate în fișierul istoric chiar și după încheierea logării.
- HISTCONTROL:
Această variabilă determină modul în care sunt stocate comenzile. Opțiunile uzuale includ:- ignoredups – Împiedică adăugarea comenzilor duplicate la istoric.
- ignorespace – Comenzile care încep cu un spațiu nu sunt adăugate la istoric.
- ignoreboth – Combină ignoredups și ignorespace.
Exemplu de setare a HISTCONTROL pentru a ignora comenzile duplicate:
export HISTCONTROL=ignoredups
- HISTTIMEFORMAT:
Pentru a include o marcă temporală cu fiecare intrare din istoric, setați HISTTIMEFORMAT:export HISTTIMEFORMAT="%F %T "
Acest lucru va preceda fiecare intrare din istoric cu data (%F) și ora (%T).
Căutarea în istoric
- Căutarea inversă cu Ctrl r:
Una dintre cele mai eficiente modalități de a căuta o comandă în istoricul dvs. este folosind Ctrl r. Începeți să tastați o parte din comandă, iar Bash va găsi comenzile corespunzătoare pe măsură ce tastați. Apăsând din nou Ctrl r, veți parcurge în mod ciclic căutările anterioare. - Grep cu istoric:
De asemenea, puteți utiliza grep pentru a căuta prin ieșirea din istoric:history | grep git
Aceasta va afișa toate comenzile care conțin cuvântul git.
Concluzii
Comanda history este o parte fundamentală a lucrului cu shell-ul Bash, oferind o modalitate de a ține evidența comenzilor anterioare și de a simplifica fluxurile de lucru. Cu capacitatea sa de a reaminti, căuta și personaliza istoricul comenzilor, aceasta contribuie la eficientizarea și facilitarea utilizării operațiunilor din linia de comandă. Prin stăpânirea istoricului și a caracteristicilor sale conexe, utilizatorii își pot accelera semnificativ munca în mediile Linux.