September 16th, 2007 Alex
Istoria liniei de comandă Bash
Bash reţine o istorie a comenzilor date. Şi după câteva luni de utilizare se adună destule artifacte valoroase
De multe ori aţi vrea să vă reamintiţi vreo comandă pe care aţi dat-o acum câteva săptămâni, aşa cum am fost eu pus în situaţia asta, azi. Aveam nevoie să folosesc funcţia “split” în awk, dar am uitat cum, şi mi-a fost lene să caut pe net. Comanda era ceva de genul:
echo $PATH | awk '{split($0,sep,":"); for (x in sep) print sep[x]}’
Bash reţine toate comenzile date în fisierul .bash_history din directorul personal al utilizatorului. O variantă pentru căutare ar fi deschiderea fişierului cu un editor de texte.
O altă variantă este comanda “history” a cărei rulare este aproximativ echivalentă cu:
cat -n ~/.bash_history
Dacă vrei să deschizi istoria într-un editor de texte, dar nu vrei decât o functionalitate minimală (căutare şi scroll up/down), comanda e ceva de genul:
history | less
Pentru a căuta comanda mea în istoria liniei de comandă, o bună variantă ar fi:
history | grep split
Desigur, în linia de comandă merge să afişezi comenzi din istorie, una câte una, folosind tastele săgeţi UP/DOWN, sau combinaţiile de taste Ctrl-P/Ctrl-N. Se poate deasemenea căuta direct de la promptul liniei de comandă folosind combinaţia de taste Ctrl-R (reverse-interactive-search). Începeţi să tastaţi primele caractere ale comenzi, şi ultima comandă ce corespunde şirului introdus este interactiv afişată.
Raising Elephants Is Utterly Boring
Când calculatorul s-a blocat, deşi se întâmplă mai rar ca-n alte sisteme de operare, se poate totuşi întâmpla, iar combinaţia Ctrl-Alt-Del atât de familiară utilizatorilor de Window nu prea merge.
Restartarea sistemului de operare folosind butonul de RESET al calculatorului nu este sigură deoarece sistemul de fişiere poate fi corupt şi poţi pierde date importante.
Metoda cea mai sigură de restartare este apăsând pe rând tastele R-E-I-U-B în timp ce apăsaţi tastele Alt+SysReq.
Deci încă odată:
Alt + SysReq + R-E-I-U-B
Desigur, fiecare tastă din secvenţa REIUB face ceva diferit, şi poate fi folosită de una singură, dar personal uit mereu ce fac tastele respective (poate dacă mi se bloca calculatorul mai frecvent, le memoram
). Însă un rezumat bun găseşti aici: http://en.wikipedia.org/wiki/Magic_SysRq_key
Omorârea proceselor blocate
Pentru omorârea proceselor blocate din consolă avem nevoie de PID-ul comenzii, găsirea sa făcându-se cu comanda ps. N-o să insist prea mult pe comanda ps, folosirea sa uzuală fiind ceva de genul:
ps ax | grep -i [a]pache
Rezultatul fiind:
6569 ? SNs 0:00 /usr/sbin/apache2 -k start
6573 ? SN 0:00 /usr/sbin/apache2 -k start
6574 ? SN 0:00 /usr/sbin/apache2 -k start
6575 ? SN 0:00 /usr/sbin/apache2 -k start
6576 ? SN 0:00 /usr/sbin/apache2 -k start
6577 ? SN 0:00 /usr/sbin/apache2 -k start
În exemplul de mai sus procesul cu PID-ul 6569 este procesul principal (master), restul proceselor fiind copii creaţi de procesul principal.
Pentru omorârea unui proces se foloseşte comanda “kill”, ce transmite un semnal de oprire procesului:
kill 6569
Dacă procesul este capabil să răspundă la semnalul “kill”, atunci oprirea va fi facută de proces, nu de sistem. Şi procesele copil vor fi automat oprite, şi fără pierderi de date. Însă există situaţia în care procesul s-a blocat şi vrei să forţezi oprirea sa, comanda fiind astfel:
kill -9 6569
Die mother f*cker
Dacă ai vreun program ce rulează sub Wine (ex. Microsoft Office) şi vrei satisfacţie maximă când îl omori, poţi folosi psDoom, un progrămel bazat pe motorul jocului Doom creat de id Software

Posted in linux, tips&tricks, unix | 2 Comments »