Dowiedz się, jak działają przekierowanie I/O Linux (wejście/wyjście)

Dowiedz się, jak działają przekierowanie I/O Linux (wejście/wyjście)

Jednym z najważniejszych i interesujących tematów pod administracją Linuksa jest przekierowanie we/wy. Ta funkcja wiersza poleceń umożliwia przekierowanie wejścia i/lub wyjścia poleceń z i/lub plików lub połączenie wielu poleceń razem za pomocą rur do tworzenia tak zwanego „Rurociąg z dowództw".

Wszystkie polecenia, które zasadniczo uruchamiamy, produkują dwa rodzaje wyjściowych:

  1. Wynik polecenia - dane, do których program ma na celu wytworzenie i
  2. Komunikaty o statusie programu i błędów, które informują użytkownika o szczegółach wykonania programu.

W systemie Linux i innych systemów podobnych do UNIX istnieją trzy domyślne pliki wymienione poniżej, które są również identyfikowane przez powłokę przy użyciu numerów deskryptora plików:

  1. stdin lub 0 - Jest podłączony do klawiatury, większość programów odczytuje dane wejściowe z tego pliku.
  2. stdout lub 1 - Jest dołączony do ekranu, a wszystkie programy wysyłają swoje wyniki do tego pliku i
  3. Stderr lub 2 - Programy wysyłają komunikaty o statusie/błędach do tego pliku, który jest również dołączony do ekranu.

Dlatego przekierowanie we/wy umożliwia zmianę źródła wejściowego polecenia, a także tam, gdzie wysyłane są jego komunikaty wyjściowe i błędów. I jest to możliwe dzięki "<” I „>” Operatorzy przekierowania.

Jak przekierować standardowe wyjście do pliku w Linux

Możesz przekierować standardowe dane wyjściowe, jak w poniższym przykładzie, tutaj chcemy przechowywać dane wyjściowe Top Command do późniejszej kontroli:

$ top -bn 5> top.dziennik 

Gdzie flagi:

  1. -B - pozwala szczyt Aby uruchomić w trybie wsadowym, abyś mógł przekierować jego wyjście do pliku lub innego polecenia.
  2. -N - Określa liczbę iteracji przed końcem polecenia.

Możesz wyświetlić zawartość szczyt.dziennik Plik za pomocą polecenia CAT w następujący sposób:

$ cat top.dziennik 

Aby dołączyć wyjście polecenia, użyj „>>” operator.

Na przykład, aby dołączyć wyjście najwyższego polecenia powyżej w szczyt.dziennik Plik szczególnie w skrypcie (lub w wierszu poleceń) wprowadź wiersz poniżej:

$ top -bn 5 >> top.dziennik 

Notatka: Korzystając z numeru deskryptora pliku, powyższe polecenie przekierowania wyjściowego jest takie samo jak:

$ top -bn 5 1> top.dziennik 

Jak przekierować standardowy błąd do pliku w Linux

Aby przekierować standardowy błąd polecenia, musisz wyraźnie określić numer deskryptora pliku, 2 aby skorupa zrozumiała, co próbujesz zrobić.

Na przykład poniższe polecenie LS wytworzy błąd po wykonaniu przez normalnego użytkownika systemu bez uprawnień root:

$ ls -l /root / 

Możesz przekierować błąd standardowy do pliku, jak poniżej:

$ ls -l / root / 2> ls -error.log $ cat ls-error.dziennik 
Przekieruj standardowy błąd do pliku

Aby dołączyć błąd standardowy, użyj poniższego polecenia:

$ ls -l / root / 2 >> LS -error.dziennik 

Jak przekierować standardowe wyjście/ błąd do jednego pliku

Możliwe jest również przechwycenie wszystkich wyjściowych polecenia (zarówno standardowego wyjścia, jak i błędu standardowego) w jednym pliku. Można to zrobić na dwa możliwe sposoby, określając numery deskryptora pliku:

1. Pierwsza to stosunkowo stara metoda, która działa następująco:

$ ls -l / root /> ls -error.Log 2> i 1 

Powyższe polecenie oznacza, że ​​powłoka najpierw wyśle ​​dane wyjściowe polecenia LS do pliku LS-error.dziennik (za pomocą > LS-error.dziennik), a następnie zapisuje wszystkie komunikaty o błędach do deskryptora pliku 2 (standardowe wyjście), które zostało przekierowane do pliku LS-error.dziennik (za pomocą 2> i 1). Sugerując, że błąd standardowy jest również wysyłany do tego samego pliku, co standardowe wyjście.

2. Druga i bezpośrednia metoda to:

$ ls -l / root / &> ls -error.dziennik 

Możesz także dołączyć standardowy wyjście i błąd standardowy do jednego pliku, takiego jak:

$ ls -l / root / & >> ls -error.dziennik 

Jak przekierować standardowe dane wejściowe do pliku

Większość, jeśli nie wszystkie polecenia, otrzymuje swoje dane wejściowe ze standardowego wejścia, a domyślnie standardowe wejście jest dołączone do klawiatury.

Aby przekierować standardowe wejście z pliku inne niż klawiatura, użyj "<” Operator jak poniżej:

$ cat   Przekieruj standardowe wejście do pliku 

Jak przekierować standardowe wejście/wyjście do pliku

Możesz wykonać standardowe wejście, standardowe przekierowanie wyjściowe w tym samym czasie, używając polecenia sort, jak poniżej:

$ sort.wyjście 

Jak używać przekierowania we/wy za pomocą rur

Aby przekierować dane wyjściowe jednego polecenia jako wejścia drugiego, możesz użyć rur, jest to potężny sposób budowania przydatnych wierszy poleceń dla złożonych operacji.

Na przykład poniższe polecenie wyświetli listę pięciu niedawno zmodyfikowanych plików.

$ ls -lt | głowa -n 5 

Tutaj opcje:

  1. -L - Włącza format długiego listy
  2. -T - Sortuj czas modyfikacji z najnowszymi plikami jest pokazany pierwszy
  3. -N - Określa liczbę linii nagłówka do pokazania

Ważne polecenia budowania rurociągów

Tutaj krótko przejrzymy dwa ważne polecenia budowania rurociągów i są one:

Xargs który służy do budowy i wykonywania wierszy poleceń ze standardowego wejścia. Poniżej znajduje się przykład użycia rurociągu Xargs, To polecenie służy do kopiowania pliku do wielu katalogów w Linux:

$ echo/home/aaronkilik/test//home/aaronkilik/tmp | xargs -n 1 cp -v/home/aaronkilik/bin/sys_info.cii 
Skopiuj pliki do wielu katalogów

I opcje:

  1. -n 1 - Instruuje Xarg, aby używał co najwyżej jednego argumentu na wiersz polecenia i wysyłał do polecenia CP
  2. CP - kopiuje plik
  3. -v - Wyświetla postęp polecenia kopiowania.

Aby uzyskać więcej opcji i informacji użytkowania, przeczytaj Xargs Strona Man:

$ man xargs 

A trójnik Polecenie odczytuje od standardowego wejścia i zapisów do standardowych danych wyjściowych i plików. Możemy wykazać, jak trójnik Działa w następujący sposób:

$ echo „Testowanie, jak działa polecenie tee” | Plik TEE1 
Przykład polecenia TEE

Filtry plików lub tekstu są powszechnie używane z rurami do efektywnych operacji plików Linux, aby przetwarzać informacje w potężny sposób, takie jak restrukturyzacja wyjściowych poleceń (może to być niezbędne do generowania użytecznych raportów Linuksa), modyfikując tekst w plikach oraz kilka innych administracji systemu Linux zadania.

Aby dowiedzieć się więcej o filtrach i rurach Linux, przeczytaj ten artykuł Znajdź 10 najlepszych adresów IP dostęp do serwera Apache, pokazuje przydatny przykład używania filtrów i rur.

W tym artykule wyjaśniliśmy podstawy przekierowania we/wy w Linux. Pamiętaj, aby podzielić się swoimi przemyśleniami za pośrednictwem sekcji informacji zwrotnej poniżej.