This is an old revision of the document!
PID
-ul procesului bash ce rulează în terminal./proc/PID
, unde PID
este cel aflat anterior.fd
. Listați conținutul în format lung.ps
fără niciun argument.pts/0
?Fiecare terminal deschis în interfața grafică este de fapt un pseudo-terminal. Link-urile simbolice din directorul fd duc către device-ul corespunzător pseudo-terminal-ului.
yes a
. ls -l /proc/`pidof yes`/fd
.Intrare și ieșirile standard.
echo > my_out_file
.Este creat un fișier nou.
yes > a
.ls -l /proc/`pidof yes`/fd
.a
și repetați task-ul.Ieșirea standard este redirecționată.
echo Text > a
.a
.cat
.Fișierul a fost suprascris.
echo File >> a
.a
.Fișierul nu a mai fost suprascris. Textul a fost adăugat la final.
yes > /dev/null
./dev/null
./dev/null este folosit pentru a redirecționa output-ul (a îl face să nu mai apară pe ecran) și a îi face drop. Se evită practic scrierea acestuia într-un fișier care ocupă spațiu pe hard.
ls -l /proc/`pidof yes`/fd
.Ieșirea standard este redirecționată spre /dev/null.
set var=$<
.thales
apoi enter
.echo $var
?Set + $< citește de la tastatură text și îl salvează în variabila var. Comanda echo $var afișează conținutul variabilei. În acest caz afișează textul citit anterior.
a
.(set var=$<) < a
.a
este fișierul de la task-ul anteriorecho $var
.Comanda de citire nu a mai așteptat comenzi de la tastatură și a citit din fișierul a.
ls > out
.out
.Output-ul comenzii ls a fost redirecționat în fișierul out.
reboot > out
.out
.Comanda reboot dă eroare din cauza permisiunilor insuficiente. Se încearcă redirectarea output-ului în fișierul out, însă fișierul este suprascris și gol (deoarece nu se scrie nimic). Pe ecran apare mesajul scris la stderr de eroare.
reboot >& out
.out
.Pe ecran nu mai apare eroarea. Aceasta a fost redirecționată împreună cu ieșirea standard în fișierul out.
ls >& out
.out
.Operatorul redirecționează și standard output și standard error.
(ls > /dev/tty) >& out
.Se încearcă redirecționarea erorilor în fișierul out. Cum nu se produce nicio eroare, fișierul out o să fie gol, iar pe ecran o să apară output-ul comenzii ls.
mkfifo my_pipe
.echo
, scrieți ceva în fișierul my_pipe
.Terminal-ul se blochează. Comanda nu se termină.
my_pipe
.Apare textul scris mai devreme în pipe.
Primul terminal se deblochează
my_pipe
.Comanda se blochează. Pipe-ul cu nume nu reține date pe disk. Terminalul va rămâne agățat până când un alt proces va scrie în pipe.
echo
pentru a scrie ceva în fișier.Terminalele se deblochează. Textul a ajuns dintr-o parte în alta.
my_pipe
folosind comanda echo
.Închiderea terminal-ului a distrus mesajul din buffer-ul pipe-ului. (buffer-ul nu este persistent)
ls | cat
.Comanda cat primește ca input output-ul comenzii ls și îl afișează pe ecran.
ls | cat | cat | cat | cat
.Același lucru.
ls -l | less
.less te ajută să vizualizezi mai facil un output de dimensiune mare.
ls -lR / | less
.ls -l | grep rwx
.rwx
.grep filtrează input-ul primit după un anumit pattern. În acest caz afișează linile ce conțin gruparea "rwx"
cat /proc/cpuinfo | less
.Informații despre procesor.
ls -a | grep bash
.Fișier ascuns de history.
ls -l | wc -l wc -l: numără câte linii există în input-ul primit
yes
pentru a scrie într-un fișier.trap
pentru a scrie ceva în fișierul /tmp/file.log
la închiderea terminalului.man bash
și /trap