Każdy proces w Linuksie wytwarza trzy strumienie danych, stdin, stdout i stderr:
- stdin : Pobiera dane wejściowe od użytkownika za pomocą klawiatury
- stdout : Wyświetla dane wyjściowe na ekranie
- stderr : Wyświetla informacje o błędzie na ekranie
Każdy strumień danych ma identyfikator liczbowy:
Numeryczny identyfikator | Nazwa |
0 | stdin |
1 | stdout |
2 | stderr |
Wyjaśnijmy przekierowanie nieco bardziej szczegółowo:
Jak przekierować standardowe wyjście i błąd standardowy w Bash:
Aby przekierować standardowe wyjście polecenia, użyjemy 1 z operatorem przekierowania, który jest większy niż znak >:
$ls 1>stdout.txtPowyższe polecenie utworzy plik i umieści standardowe wyjście polecenia ls w pliku stdout.txt.
Aby odczytać plik stdout.txt, użyj:
$Kotstdout.txt
Możemy również przekierować błąd standardowy do pliku za pomocą polecenia:
$Kotmojplik.txt2>stderr.txt
Aby wyświetlić plik stderr.txt, użyj:
$Kotstderr.txt
Upewnij się, że użycie 2 będzie większe niż znak >. Ponieważ w katalogu nie ma pliku myfile.txt, polecenie cat zwróci błąd, który zostanie dołączony do pliku stderr.txt.
Te standardowe wyjścia można również przekierować za pomocą jednego polecenia, użyj:
$ls 1>stdout.txt2>stderr.txt
Dane wyjściowe polecenia ls zostaną zapisane w stdout.txt plik, ale stderr.txt pozostanie pusty, ponieważ nie będzie błędu.
Teraz zróbmy dla stderr.txt:
$Kotmojplik.txt1>stdout.txt2>stderr.txt
Użyj poniższego polecenia, aby odczytać stderr.txt.
$Kotstderr.txt
I oczywiście stdout.txt będzie pusty.
Wniosek :
Polecenie Linuksa po wykonaniu daje standardowe wyjście, które może być wyjściem sukcesu lub wyjściem błędu. Ogólnie rzecz biorąc, te dane wyjściowe nie mogą być przekierowane za pomocą operatorów przekierowania; musimy użyć określonych identyfikatorów numerycznych ze znakiem >. W tym przewodniku dowiedzieliśmy się, jak używać tych klawiszy numerycznych do przekierowywania standardowego wyjścia do pliku z przykładami.