Latest web development tutorials

Shell wejście / wyjście przekierowania

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 wyjścia

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.

Przykłady

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.w3big.com" > users
$ cat users
本教程:www.w3big.com
$

Jeśli nie chcesz, aby zawartość pliku zostanie zastąpiony, można użyć >> dołącz do pliku, na przykład:

$ echo "本教程:www.w3big.com" >> users
$ cat users
本教程:www.w3big.com
本教程:www.w3big.com
$

przekierowanie wejścia

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ż (<).

Przykłady

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.

Przekierowanie głębokości wyjaśnienie

W normalnych okolicznościach każda Unix / Linux działa polecenie otworzy trzy pliki:

  • Standardowy plik wejściowy (stdin): stdin plik deskryptora 0, Unix domyślny program odczytuje dane ze standardowego wejścia.
  • Standardowy plik wyjściowy (stdout): stdout do deskryptor pliku 1, domyślnie programu Unix danych wyjściowych stdout.
  • Błąd standardowy (stderr): stderr plik deskryptora 2, Unix Program zapisuje komunikaty o błędach do strumienia stderr.

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 dokumentu

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.

Przykłady

Liczba wierszy w informatyce wiersza poleceń Tutaj dokumentu przez wc -l komendy:

$ wc -l << EOF
    欢迎来到
    本教程
    www.w3big.com
EOF
3          # 输出结果为 3 行
$

Możemy tu także dokument wykorzystywany w skrypcie, na przykład:

#!/bin/bash
# author:本教程
# url:www.w3big.com

cat << EOF
欢迎来到
本教程
www.w3big.com
EOF

Realizacja powyższego skryptu, Wyjście:

欢迎来到
本教程
www.w3big.com

/ Dev file / null

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).