Android

Naredba povijesti u linuxu (bash history)

Section 1: More Comfortable

Section 1: More Comfortable

Sadržaj:

Anonim

, govorit ćemo o naredbi history , koja vam omogućuje pregled popisa prethodno izvršenih naredbi, pretraživanje po popisu i manipuliranje datotekom povijesti.

Korištenje history Naredba i proširenja povijesti

history je građena školjka, a njezino se ponašanje može malo razlikovati od ljuske do ljuske. Pokrivat ćemo Bash-ovu ugrađenu verziju history .

U svom je najjednostavnijem obliku kada se poziva bez ikakvih mogućnosti ili argumenata, naredba history prikazuje cijeli popis povijesti s brojevima linija.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Utipkajte !n izvršava n-tu naredbu s popisa povijesti, a !-n naredbu n retke natrag. U sljedećem primjeru izvršimo naredbu u retku 467 :

!467

Drugi način za izvršavanje naredbe je uporaba !word Ekspanzija. word odnosi na najnoviju naredbu koja započinje s riječju.

history obično prikazuje mnogo izlaznih linija koje se ne uklapaju u zaslon. Da biste pogledali izlaznu stranicu po jednu, dodajte je u pager program poput naredbe less ili less :

history | less

Za prikaz zadnjih n redaka, proslijedite broj kao argument naredbi. Na primjer, da biste pogledali samo zadnjih pet redaka s popisa povijesti, unijeli biste:

history -5

Upotrijebite tipke sa strelicama up i down da biste se kretali unosima na popisu. Kad se prikaže naredba koju ste tražili, pritisnite Enter da biste je izvršili.

Vrsta !! izvršiti prethodnu naredbu:

!!

Ovo je osobito korisno kada zaboravite da zapovijedite naredbu sudom i umjesto da ponovo upišete naredbu možete unijeti:

sudo !!

!-1 isto je kao !! i izvršava zadnju naredbu s popisa povijesti, ! !-2 do zadnje, i tako dalje.

^word1^word2^ ekspanzija omogućuje vam ponovno pokretanje posljednje naredbe koja zamjenjuje "word1" s "word2". Ako ste slučajno upisali sduo command umjesto sduo command sudo command možete ponoviti naredbu koristeći ispravnu riječ sa:

^sduo^sudo^

Upotrijebite naredbu grep za filtriranje izlaza. Na primjer, da biste pregledali sve naredbe uključujući „nano“, pokrenuli biste:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Ako želite ponovo pokrenuti naredbu nano setup.py jednostavno upišite:

!356

Drugi način pretraživanja povijesti naredbi je pritiskom na Ctrl-R . Odzivnik će se promijeniti u sljedeće i možete početi tražiti prethodno izvršenu naredbu.

(reverse-i-search)`':

Shell će prikazati odgovarajuću liniju. Da biste se prebacili na sljedeći podudarni prijedlog, ponovno pritisnite Ctrl-R .

Provjerite Bash priručnik za više informacija o Proširenju povijesti, modifikatorima i označiteljima.

Spremanje popisa povijesti

Prilikom započinjanja nove sesije Bash čita popis povijesti iz datoteke .bash_history . Popis naredbi koje se izvode u trenutnoj sesiji čuvaju se u memoriji i spremaju se u datoteku kada sesija bude zatvorena.

Opcija -a omogućuje spremanje trenutnog popisa povijesti sesija u datoteku .bash_history :

history -a

Opcija -w upisuje cijeli popis povijesti u datoteku povijesti.

history -w

Brisanje povijesti

Naredba history omogućuje vam da očistite cijeli popis povijesti ili uklonite određene dijelove.

Da biste očistili popis povijesti, koristite opciju -c :

history -c

Da biste izbrisali određenu liniju ili linije između početne i krajnje pozicije s popisa povijesti, koristite opciju -d .

Na primjer, da biste uklonili linije između 365 i 375 (uključujući te retke), unijeli biste:

history -d 365 375

Kada se koristi negativni cijeli broj, redovi se odbrojavaju s kraja popisa povijesti.

Gornje naredbe brišu popis povijesti koji se zadržava u memoriji, ali ne uklanja unose iz .bash_history datoteke na disku. Da biste izbrisali datoteku, morate je napisati popis povijesti u datoteku:

history -c history -w

Promjena ponašanja u povijesti

Ponašanje Bash povijesti može se definirati pomoću nekoliko različitih varijabli okruženja. Prilikom izmjene ponašanja u povijesti postavite varijable u ~/.bashrc ili bilo koju drugu konfiguracijsku datoteku koja se učitava kada se korisnik prijavi.

Bash prema zadanom drži 500 redaka na popisu povijesti naredbi. Varijabla HISTSIZE omogućuje vam promjenu ove vrijednosti. Da biste ga postavili na 10000, dodajte sljedeći redak u .bashrc datoteku:

HISTSIZE=10000

Promjena HISTCONTROL prihvaća popis vrijednosti odvojenih dvotočkom koji definiraju kako se naredbe spremaju u popis povijesti:

  • ignorespace - naredbe koje započinju s razmakom ne spremaju se na popis povijesti. ignoredups - duplicirane naredbe se ne spremaju. ignoreboth - skraćenica je koja uključuje i ignorespace i ignoredups .

HISTCONTROL=ignoreboth

Kad je HISTTIMEFORMAT varijabla HISTTIMEFORMAT , Bash sprema vremensku oznaku izvršenja za naredbu u svakom retku.

Na primjer, ako postavite:

HISTTIMEFORMAT="%F %T: "

Povijest će biti prikazana u sljedećem formatu:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Zaključak

Naredba za history prikazuje popis prethodno izvršenih naredbi. Na primjer, možete koristiti povijest da biste pregledali dugu naredbu koju ste prije koristili i koje se ne možete sjetiti.

terminal povijesti