Conducte
Capacitatea comenzilor de a citi date de la intrarea standard și de a trimite la ieșirea standard este utilizată de o caracteristică shell numită conducte. Utilizarea operatorului de conducte „|” (bară verticală), ieșirea standard a unei comenzi poate fi conductă în intrarea standard a altuia:
command1 | command2
command1 | command2
Pentru a demonstra pe deplin acest lucru, vom avea nevoie de câteva comenzi. Îți amintești cum am spus că există unul pe care îl știam deja care acceptă intrarea standard? este mai puțin. Putem folosi mai puțin pentru a afișa, pagină cu pagină, rezultatul oricărei comenzi care își trimite rezultatele la ieșirea standard:
[eu@linuxbox ~]$ ls -l /usr/bin | Mai puțin
[eu@linuxbox ~]$ ls -l /usr/bin | Mai puțin
Acesta este extrem de util! Folosind această tehnică, putem examina în mod convenabil rezultatul oricărei comenzi care produce rezultate standard.
Diferența dintre > și |
La prima vedere, poate fi greu de înțeles redirecționarea efectuată de operatorul conductei | față de operatorul de redirecționare >. Mai simplu spus, operatorul de redirecționare conectează o comandă cu un fișier, în timp ce operatorul pipeline conectează ieșirea unei comenzi cu intrarea unei a doua comenzi.
command1 > fișier1 comandă1 | command2
Mulți oameni vor încerca următoarele când învață despre conducte, „doar pentru a vedea ce se întâmplă”.
command1 > command2
Răspuns: Uneori ceva foarte rău.
Iată un exemplu real trimis de un cititor care administra un dispozitiv server bazat pe Linux. În calitate de superutilizator, el a făcut asta:
# cd /usr/bin
# ls > mai puțin
Prima comandă l-a pus în directorul în care sunt stocate majoritatea programelor, iar a doua comandă a spus shell-ului să suprascrie fișierul mai puțin cu ieșirea lui ls comanda. Din momentul în care / usr / bin directorul conținea deja un fișier numit „mai puțin” (the mai puțin program), a doua comandă a suprascris mai puțin fişier program cu textul din ls distrugând astfel mai puțin program pe sistemul său.
Lecția aici este că operatorul de redirecționare creează sau suprascrie fișiere în tăcere, așa că trebuie să le tratați cu mult respect.