Поиск файлов в Linux и Unix — find, grep, ack, ripgrep
Cuprins:
- Utilizarea
historyComandă și extensii istoric - Salvarea listei istoric
- Ștergerea istoriei
- Modificarea comportamentului istoric
- Concluzie
, vom vorbi despre comanda
history
, care vă permite să vizualizați o listă de comenzi executate anterior, să căutați prin listă și să manipulați fișierul istoric.
Utilizarea
history
Comandă și extensii istoric
history
este un shell integrat, iar comportamentul său poate diferi ușor de la coajă la coajă. Vom acoperi versiunea
history
Bash builtin.
În cea mai simplă formă, când este invocat fără nicio opțiune sau argument, comanda
history
afișează întreaga listă de istorie cu numere de linie.
history
… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history
Typing
!n
execută comanda a n-a din lista istoricului, iar
!-n
comanda n liniile înapoi. În următorul exemplu, executăm comanda de pe linia
467
:
!467
Un alt mod de a executa o comandă este de a utiliza
!word
Expansiunea
!word
word
se referă la cea mai recentă comandă începând cu „cuvânt”.
De obicei,
history
afișează multe linii de ieșire care nu se potrivesc pe ecran. Pentru a vizualiza o pagină de ieșire o dată, conectați-o la un program pager, ca
more
sau
less
comanda:
history | less
Pentru a afișa ultimele
n
linii, treceți numărul ca argument la comandă. De exemplu, pentru a vizualiza doar ultimele cinci rânduri din lista istoricului, trebuie să introduceți:
history -5
Utilizați tastele săgeată
up
și
down
pentru a naviga în intrările din listă. Când se afișează comanda căutată, apăsați
Enter
pentru a o executa.
Tipul
!!
pentru a executa comanda anterioară:
!!
Acest lucru este deosebit de util când uitați să perpendicați o comandă cu
sudo
, iar în loc să re-tastați comanda puteți introduce:
sudo !!
!-1
este la fel ca
!!
și execută ultima comandă din lista de istoric
!-2
secunda până la ultima, etc.
^word1^word2^
expansion vă permite să rulați ultima comandă înlocuind „word1” cu „word2”. Dacă ați tastat din
sduo command
în loc de
sudo command
puteți repeta comanda folosind cuvântul corect cu:
^sduo^sudo^
Utilizați comanda
grep
pentru a filtra ieșirea. De exemplu, pentru a vizualiza toate comenzile, inclusiv „nano”, ați rula:
history | grep nano
302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh
Acum, dacă doriți să rulați din
nano setup.py
comanda
nano setup.py
introduceți pur și simplu:
!356
Un alt mod de a căuta în istoricul comenzilor este apăsând
Ctrl-R
. Promptul se va schimba la următorul și puteți începe să căutați o comandă executată anterior.
(reverse-i-search)`':
Învelișul va afișa o linie de potrivire. Pentru a trece la următoarea sugestie potrivită, apăsați din nou
Ctrl-R
.
Consultați manualul Bash pentru mai multe informații despre Extinderea istoricului, modificatorii și designatorii.
Salvarea listei istoric
În mod implicit, la începerea unei sesiuni noi, Bash citește lista de istoric din fișierul
.bash_history
. Lista comenzilor care sunt executate în sesiunea curentă sunt păstrate în memorie și salvate în fișier la închiderea sesiunii.
Opțiunea
-a
vă permite să salvați lista istoricului sesiunilor curente în fișierul
.bash_history
:
history -a
Opțiunea
-w
scrie lista completă de istoric în fișierul istoric.
Ștergerea istoriei
Comanda
history
vă permite să ștergeți lista completă de istoric sau să eliminați anumite părți.
Pentru a șterge lista de istoric, utilizați opțiunea
-c
:
history -c
Pentru a șterge o listă sau linii specifice între pozițiile de început și de final din lista istoricului, utilizați opțiunea
-d
.
De exemplu, pentru a elimina liniile între 365 și 375 (inclusiv liniile respective), ar trebui să tastați:
history -d 365 375
Când este utilizat un număr întreg negativ, liniile sunt numărate înapoi de la sfârșitul listei de istorie.
Comenzile de mai sus șterg lista de istorie, care este păstrată în memorie, dar nu elimină intrările din fișierul
.bash_history
pe disc. Pentru a șterge fișierul, trebuie să scrieți istoricul în fișier:
Modificarea comportamentului istoric
Comportamentul istoricului Bash poate fi definit folosind mai multe variabile de mediu diferite. Când modificați comportamentul istoricului, setați variabilele în
~/.bashrc
sau orice alt fișier de configurare care este încărcat atunci când utilizatorul se conectează.
În mod implicit, Bash păstrează 500 de linii în lista istoricului de comenzi. Variabila
HISTSIZE
vă permite să modificați această valoare. Pentru a o seta la 10000, adăugați următoarea linie la fișierul dvs.
.bashrc
:
HISTSIZE=10000
Variabila
HISTCONTROL
acceptă o listă de valori separată de colon care definește modul în care comenzile sunt salvate în lista de istoric:
-
ignorespace- comenzile care încep cu spațiul nu sunt salvate în lista istoricului.ignoredups- comenzile duplicate nu sunt salvate.ignoreboth- este un shorthand, care include atâtignorespacecât șiignoredups.
HISTCONTROL=ignoreboth
Când este setată variabila
HISTTIMEFORMAT
, Bash prepară o marcă de timp de execuție pentru comanda de pe fiecare linie.
De exemplu, dacă setați:
HISTTIMEFORMAT="%F %T: "
Istoricul va fi afișat în următorul format:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
Concluzie
Comanda
history
afișează o listă de comenzi executate anterior. De exemplu, puteți utiliza istoricul pentru a vizualiza o comandă lungă pe care ați folosit-o înainte de a vă aminti.
Utilizați linia de comandă cu comandă
Integrați linia de comandă, interfața grafică și o limbă puternică cu pachetul de instrumente Take Command. > Nu-ți place când vânezi un program pe care trebuie să-l faci, să-l găsești, și apoi să descoperi că face mai mult? Am găsit Command Command (100 $, încercare gratuită de 30 de zile) după ce am fost frustrat de linia de comandă necorespunzătoare din Windows. Am descoperit că mi-a dat ce vroiam și multe lucruri pe care nu știam că le-am vrut - dar acum cu siguranță o fac.
Comanda sursă Bash
Comanda sursă citește și execută comenzi din fișierul specificat ca argument în mediul shell actual. Source este un shell integrat în Bash și alte shell-uri populare utilizate în sistemele de operare Linux și UNIX.
Cum să folosiți comanda linux sleep pentru a întrerupe un script bash
Sleep este un utilitar al liniei de comandă care vă permite să suspendați procesul de apelare pentru o perioadă specificată. În acest tutorial, vă vom arăta cum să utilizați comanda de repaus Linux.







