Polecenie rur Linux

Polecenie rur Linux
To polecenie „Rury” jest łatwo dostępne na platformach UNIX/LINUX. To polecenie prowadzi do wyjścia poprzedniego polecenia do następnego polecenia. Istnieje dosłownie mnóstwo sytuacji, w których ta metoda oferuje poważną wartość.Przed skoczeniem jest coś do zrozumienia. Każdy program w systemie Unix/Linux ma 3 wbudowane strumienie danych.
  • Stdin (0) - standardowe wejście
  • Stdout (1) - standardowe wyjście
  • Stderr (2) - błąd standardowy

Kiedy będziemy pracować z sztuczkami „rury”, „Rura” weźmie stadout polecenia i przekazuje je do stdina następnego polecenia.

Sprawdźmy niektóre z najczęstszych sposobów włączenia polecenia „rur” do codziennego użycia.

Polecenie rur

Podstawowe użycie

Lepiej opracować metodę roboczą „rury” za pomocą na żywo, prawda? Zacznijmy. Poniższe polecenie poinformuje „Pacman”, domyślny menedżer pakietów dla Arch i wszystkich dystrybucji opartych na Arch, aby wydrukować wszystkie zainstalowane pakiety w systemie.

PACMAN -QQE

To naprawdę długa lista pakietów. Jak, o zebraniu tylko kilku komponentów? Moglibyśmy użyć „grep”. Ale jak? Jednym ze sposobów zrzucanie wyjścia do pliku tymczasowego „GREP” żądane wyjście i usuwanie pliku. Ta seria zadań sama w sobie można przekształcić w skrypt. Ale pisamy tylko do bardzo dużych rzeczy. Do tego zadania wzywajmy moc „rury”!

Pacman -qqe | Grep

Niesamowite, prawda?? „|” Znak jest wywołanie polecenia „Rury”. Chwyta stdout z lewej sekcji i zasila go do stdina prawej sekcji.

We wspomnianym przykładzie polecenie „rury” faktycznie minęło wyjście na końcu części „GREP”. Oto jak to się rozgrywa.

pacman -qqe> ~/Desktop/pacman_package.tekst
Grep Python ~/Desktop/Pacman_Package.tekst

Wiele rur

Zasadniczo nie ma nic specjalnego z zaawansowanym użyciem polecenia „rury”. To całkowicie zależy, jak go używać.

Na przykład zacznijmy od ułożenia wielu rurociągów.

Pacman -qqe | GREP P | GREP T | Grep py

Wyjście polecenia Pacmana jest filtrowane coraz dalej przez „GREP” poprzez serię rur.

Czasami, kiedy pracujemy z treścią pliku, może być naprawdę, naprawdę duży. Znalezienie właściwego miejsca naszego pożądanego wejścia może być trudne. Szukajmy wszystkich wpisów zawierających cyfry 1 i 2.

Demo CAT.txt | grep -n 1 | GREP -N 2

Manipulowanie listą plików i katalogów

Co zrobić, gdy masz do czynienia z katalogiem z mnóstwem plików? Przewijanie całej listy jest dość denerwujące. Jasne, dlaczego nie uczynić go bardziej znośnym z rurą? W tym przykładzie sprawdźmy listę wszystkich plików w folderze „/usr/bin”.

ls -l |. więcej

Tutaj „LS” drukuje wszystkie pliki i ich informacje. Następnie „rura” przekazuje to do „więcej” do pracy z tym. Jeśli nie wiesz, „więcej” to narzędzie, które zamienia SMS -y w jeden ekranowy widok na raz. Jest to jednak stare narzędzie i zgodnie z oficjalną dokumentacją „mniej” jest bardziej zalecane.

ls -l /usr /bin | mniej

Sortowanie wyjścia

Istnieje wbudowane narzędzie „sortowanie”, które przyjmie wprowadzanie tekstu i sortuje je. To narzędzie jest prawdziwym klejnotem, jeśli pracujesz z czymś naprawdę bałaganem. Na przykład dostałem ten plik pełen losowych ciągów.

Demo CAT.tekst

Po prostu załóż to, aby „sortować”.

Demo CAT.txt | sortować

To lepiej!

Drukowanie dopasowania określonego wzoru

LS -L | znajdować ./ -Type f -name "*.txt "-exec grep 00110011 \;

To jest dość pokręcone polecenie, prawda? Początkowo „LS” przedstawia listę wszystkich plików w katalogu. Narzędzie „Znajdź” przyjmuje wyjście, wyszukuje „.Pliki i przywołuje „GREP” do wyszukiwania „00110011”. To polecenie sprawdzi każdy plik tekstowy w katalogu z rozszerzeniem TXT i będzie szukać dopasowań.

Wydrukuj zawartość pliku z określonego zakresu

Kiedy pracujesz z dużym plikiem, często potrzebuje sprawdzania treści określonego zakresu. Możemy to zrobić za pomocą sprytnej kombinacji „kota”, „głowy”, „ogona” i oczywiście „rur”. Narzędzie „głowicy” wysyła pierwszą część zawartości, a „ogon” wyświetla ostatnią część.

kot |. Głowa -6
kot |. ogon -6

Unikalne wartości

Podczas pracy z zduplikowanymi wyjściami może być dość denerwujące. Czasami duplikat wkładu może powodować poważne problemy. W tym przykładzie obserwujmy „Uniq” na strumieniu tekstu i zapiszmy go w osobnym pliku.

Na przykład oto plik tekstowy zawierający dużą listę liczb o długości 2 cyfr. Zdecydowanie jest tu duplikat, prawda?

Cat duplikat.txt | sortować

Teraz wykonajmy proces filtrowania.

Cat duplikat.txt | SORT | Uniq> unikalne.tekst

Sprawdź wyjście.

nietoperz unikalny.tekst

Wygląda lepiej!

Rury błędów

To interesująca metoda rur. Ta metoda służy do przekierowania STDDERR do stdout i kontynuowania rur. Jest to oznaczone przez symbol „| &” (bez cytatów). Na przykład utwórzmy błąd i wyślijmy wyjście do innego narzędzia. W tym przykładzie właśnie wpisałem losowe polecenie i przekazałem błąd „GREP”.

adsfds | i grep n

Końcowe przemyślenia

Podczas gdy sama „rura” jest dość uproszczona, sposób, w jaki działa, oferuje bardzo wszechstronny sposób wykorzystania metody w nieskończony sposób. Jeśli lubisz skrypty bash, to jest o wiele bardziej przydatne. Czasami możesz po prostu zrobić szalone rzeczy wprost! Dowiedz się więcej o skryptach Bash.