logo

Rurociągi w systemie Unix lub Linux

Potok jest formą przekierowania (przeniesienia standardowego wyjścia do innego miejsca docelowego) używaną w systemie Linux i innych systemach operacyjnych typu Unix w celu przesłania danych wyjściowych jednego polecenia/programu/procesu do innego polecenia/programu/procesu w celu dalszego przetwarzania . Systemy Unix/Linux umożliwiają połączenie standardowego wyjścia polecenia ze standardowym wejściem innego polecenia. Można to zrobić za pomocą znaku potoku '|' .

Potok służy do łączenia dwóch lub więcej poleceń i w tym przypadku dane wyjściowe jednego polecenia działają jako dane wejściowe dla innego polecenia, a dane wyjściowe tego polecenia mogą działać jako dane wejściowe dla następnego polecenia i tak dalej. Można to również przedstawić jako tymczasowe połączenie pomiędzy dwoma lub większą liczbą poleceń/programów/procesów. Programy wiersza poleceń, które wykonują dalsze przetwarzanie, nazywane są filtrami.



To bezpośrednie połączenie pomiędzy poleceniami/programami/procesami umożliwia im jednoczesne działanie i pozwala na ciągłe przesyłanie danych między nimi, bez konieczności przesyłania ich przez tymczasowe pliki tekstowe lub przez ekran wyświetlacza.
Rury są jednokierunkowe, tj. dane przepływają potokiem od lewej do prawej.

Składnia:

command_1 | command_2 | command_3 | .... | command_N>

Przykład rurociągu w systemie Unix lub Linux

1. Wyświetl listę wszystkich plików i katalogów i podaj je jako dane wejściowe polecenia `grep`, używając potokowania w systemie Linux

ls | grep file.txt>

jest | plik grep.txt



co robi Ravel w Pythonie

W tym pierwszym używamy `ls` do wyświetlenia listy wszystkich plików i katalogów w bieżącym katalogu, następnie przekazujemy dane wyjściowe do polecenia `grep` i wyszukujemy nazwę pliku `file.txt`. Dane wyjściowe polecenia ls są wysyłane do wejścia polecenia grep, a wynikiem jest lista plików pasujących do wyszukiwanego hasła.

konstruktory w Javie

2. Wypisz wszystkie pliki i katalogi i podaj je jako dane wejściowe dla poleceń „więcej” przy użyciu potokowania w systemie Linux.

$ ls -l | more>

$ ls -l | więcej

Polecenie more przyjmuje na wejściu wynik $ ls -l. Efektem netto tego polecenia jest to, że wynik polecenia ls -l jest wyświetlany po jednym ekranie na raz. Potok działa jak kontener, który pobiera wyjście ls -l i przekazuje je more jako dane wejściowe. To polecenie nie używa dysku do podłączenia standardowego wyjścia ls -l do standardowego wejścia more, ponieważ potok jest zaimplementowany w pamięci głównej.
Jeśli chodzi o operatory przekierowania we/wy, powyższe polecenie jest równoważne poniższej sekwencji poleceń.



$ ls -l ->temp więcej -> temp (lub więcej temp) [zawartość temp] rm temp>
temp

ls -l -> temp

Dane wyjściowe powyższych dwóch poleceń są takie same.

3. Posortuj listę plików według rozmiaru za pomocą potokowania w systemie Linux

ls -l sort -k 5>
ls -l sortuj -k 5

if instrukcja Java

To polecenie wyświetla listę wszystkich plików w bieżącym katalogu, a następnie używa polecenia `sort` do sortowania listy według piątej kolumny, która reprezentuje rozmiar pliku.

4. Użyj poleceń sort i uniq, aby posortować plik i wydrukować unikalne wartości za pomocą rurociągów w systemie Linux

$ sort record.txt | uniq>

Spowoduje to posortowanie danego pliku i wydrukowanie tylko unikalnych wartości.

sortuj rekord.txt | wyjątkowy

5. Użyj nagłówka i ogona, aby wydrukować linie z określonego zakresu w pliku.

$ cat sample2.txt | head -7 | tail -5>

To polecenie wybiera pierwsze 7 linii z polecenia (head -7), które zostanie wprowadzone do polecenia (tail -5), które ostatecznie wydrukuje 5 ostatnich linii z tych 7 linii.

przykład kota2.txt | głowa -7 | ogon -5

6. Użyj ls i find, aby wyświetlić i wydrukować wszystkie linie pasujące do określonego wzorca w pasujących plikach.

$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;>

To polecenie wybiera pliki z .tekst rozszerzenie w podanym katalogu i wyszukuje wzorce takie jak program w powyższym przykładzie i wypisuje te, które zawierają program.

ls -l | znajdź ./ -type f -name *.txt -exec program grep {} ;

7. Użyj poleceń cat, grep, tee i wc, aby odczytać konkretny wpis od użytkownika i zapisać go w pliku oraz wydrukować liczbę wierszy.

$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>

To polecenie wybiera Rajat Dua i zapisz je w pliku2.txt i wydrukuj całkowitą liczbę pasujących linii Rajat Dua

wynik kota.txt | grep Rajat Dua | plik tee2.txt | wc -l

stany zjednoczone, ile miast

8. Jak mogę przekierować wyjście polecenia potokowego do pliku w systemie Unix lub Linux?

Możemy użyć operatora przekierowania `>`, aby przekierować wyjście polecenia potokowego.

Na przykład:

ładowanie javascript

Jeśli mam plik o nazwie „file.txt” i chcę go przekierować do pliku o nazwie „geeks.txt”.

 ls | grep 'file'>geeks.txt>
geeks.txt

jest | grep „plik”> geeks.txt

Wniosek

Piping to zaawansowana funkcja systemów operacyjnych Unix i Linux, która pomaga nam łączyć ze sobą różne polecenia w celu szybkiego i wydajnego wykonywania złożonych zadań. W tym artykule dowiedzieliśmy się, jak możemy przekierować wyjście jednego polecenia na wejście innego polecenia. Ogólnie możemy powiedzieć, że stosując rurociągi, możemy zaoszczędzić czas, poprawić produktywność i zmniejszyć wykorzystanie miejsca na dysku.