Najlepszy samouczek Shell wejście / wyjście przekierowania W 2024 r. W tym samouczku możesz dowiedzieć się przekierowanie wyjścia,przekierowanie wejścia,tutaj dokumentu,/ Dev file / null,
Większość systemów UNIX do przyjmowania poleceń od wejścia i wyjścia terminala generowany jest wysyłany z powrotem do terminala. Polecenie zazwyczaj odczytać z wejścia lokalnego o nazwie standardowe wejście, domyślnie, to dzieje się terminal. Podobnie polecenie zwykle pisze swoje wyjście na standardowe wyjście, domyślnie jest to terminal.
Przekierowanie Lista poleceń jest następująca:
komenda | wyjaśnienie |
---|---|
Polecenie> plik | Przekierować dane wyjściowe do pliku. |
Polecenie <plik | Przekierowanie wejścia do pliku. |
Plik polecenie >> | Wyjście zostanie przekierowany do pliku dopisywania. |
n> plik | Deskryptor pliku dla n przekierowany do pliku. |
n >> plik | Plik deskryptora n złożyć dodatkowych sposobów, aby przekierować plik. |
n> & m | Plik wyjściowy m i n są scalane. |
n <& m | Plik wejściowy m i n są scalane. |
<< Tag | Zawartość tag tag tag początkowy i końcowy znacznik pomiędzy jako wejście. |
Zauważ, że deskryptor pliku 0 jest zwykle standardowe wejście (stdin), 1 jest standardowe wyjście (stdout), 2 standardowe wyjście błędów (STDERR).
Przekierowanie zazwyczaj poprzez między poleceniem, aby wstawić konkretne symbole osiągnąć. W szczególności, symbole te przedstawiono w następującej strukturze:
command1 > file1
Powyższe polecenie wykona Command1 i wtedy wyjście zawartość przechowywaną w plik1.
File1 Należy pamiętać, że wszelkie treści, które już istnieje, zostanie zastąpiony przez nową treść. Jeśli chcesz dodać nową treść na końcu pliku, należy użyć >> operatora.
Uruchom następującą komendę, którzy ukończą będzie przekierować dane wyjściowe polecenia w plikach użytkownika (użytkowników):
$ who > users
Po realizacji, nie ma wyjścia na terminalu, to dlatego, że wyjście został przekierowany z domyślnego standardowego urządzenia wyjściowego (terminal) do podanego pliku.
Można użyć polecenia cat, aby wyświetlić zawartość pliku:
$ cat users _mbsetupuser console Oct 31 17:35 tianqixin console Oct 31 17:35 tianqixin ttys000 Dec 1 11:33
Przekierowanie wyjścia nadpisuje zawartość pliku, patrz poniższy przykład:
$ echo "本教程:www.w3write.com" > users $ cat users 本教程:www.w3write.com $
Jeśli nie chcesz, aby zawartość pliku zostanie zastąpiony, można użyć >> dołącz do pliku, na przykład:
$ echo "本教程:www.w3write.com" >> users $ cat users 本教程:www.w3write.com 本教程:www.w3write.com $
A jako wyjście przekierowania poleceń Unix może pobierać dane z pliku, składnia jest:
command1 < file1
Zatem, oryginalny potrzeba, aby dostać wejście z klawiatury zostaną przeniesione do pliku poleceń czytać zawartość.
Uwaga: Przekierowanie wyjścia znak większości (>), przekierowanie wejścia jest mniejsza niż (<).
Następnie powyższy przykład, musimy policzyć liczbę wierszy pliku użytkowników, wykonaj następujące polecenie:
$ wc -l users 2 users
Można również przekierować plików wejściowych do użytkowników:
$ wc -l < users 2
Uwaga: Wyniki powyższych dwóch przykładach są różne: pierwszy przykład nazwa pliku wyjściowego będzie, a drugi nie, bo to wie tylko do odczytu ze standardowego wejścia.
command1 < infile > outfile
Wymienić zarówno wejście i wyjście, wykonaj Command1, plik_we odczytane z pliku, a następnie napisać wyjście do OUTFILE.
W normalnych okolicznościach każda Unix / Linux działa polecenie otworzy trzy pliki:
Domyślnie polecenie> plik Przekieruj standardowe wyjście do pliku, polecenie <plik będzie stdin przekierowany do pliku.
Jeśli chcesz przekierować stderr do pliku, można napisać:
$ command 2 > file
Jeśli chcesz dołączyć do końca pliku pliku stderr, można napisać:
$ command 2 >> file
2 reprezentuje standardowy plik błędu (stderr).
Jeśli chcesz połączyć po stdout i stderr przekierowany do pliku, można napisać:
$ command > file 2>&1 或者 $ command >> file 2>&1
Jeśli chcesz przekierować stdin i stdout, można napisać:
$ command < file1 >file2
komend stdin przekierowany do pliku1 przekierować stdout do plik2.
Tutaj Shell dokument jest w specjalnych metod wykorzystywanych do przekierowywania przekierować wejście do interaktywnego skrypt powłoki lub programu.
Jego podstawową formą jest w następujący sposób:
command << delimiter document delimiter
Jest to rola zawartości (dokument) jest przekazywany do dwóch separatorów między poleceniem jako wejście.
Uwaga:
- Zakończenie separator musi być górna siatka zapisu, nie może mieć dowolny ze znaków z przodu z tyłu nie ma żadnych znaków, w tym spacje i zakładki wcięcia.
- Spacje przed i po separatora startowym jest ignorowany.
Liczba wierszy w informatyce wiersza poleceń Tutaj dokumentu przez wc -l komendy:
$ wc -l << EOF 欢迎来到 本教程 www.w3write.com EOF 3 # 输出结果为 3 行 $
Możemy tu także dokument wykorzystywany w skrypcie, na przykład:
#!/bin/bash # author:本教程 # url:www.w3write.com cat << EOF 欢迎来到 本教程 www.w3write.com EOF
Realizacja powyższego skryptu, Wyjście:
欢迎来到 本教程 www.w3write.com
Jeśli chcesz, aby wykonać polecenie, ale nie chcę, aby wyświetlić dane wyjściowe na ekranie, można przekierować wyjście do / dev / null:
$ command > /dev/null
/ Dev / null jest specjalnym plikiem, jego zawartość są zapisywane do wyrzucenia, jeśli próby odczytu z pliku, a następnie co nie umie czytać. Jednakże, / dev file / null jest bardzo przydatne przekierować dane wyjściowe polecenia do niego, będzie działać jako wyjście "zakazać" efektu.
Jeśli chcesz, aby chronić stdout i stderr, można napisać:
$ command > /dev/null 2>&1
Uwaga: 0 jest standardowe wejście (stdin), 1 jest standardowe wyjście (stdout), 2 standardowe wyjście błędów (STDERR).