<Poprzedni | Spis treści | Następne>
Ponieważ jednak Linux jest systemem elastycznym, te ustawienia domyślne niekoniecznie muszą być stosowane. Standardowym wyjściem, na przykład na mocno monitorowanym serwerze w dużym środowisku, może być drukarka.
5.1.2. Operatorzy przekierowania
5.1.2.1. Przekierowanie wyjścia za pomocą > i |
Czasami będziesz chciał umieścić dane wyjściowe polecenia w pliku lub możesz chcieć wydać inne polecenie na wyjściu jednego polecenia. Jest to znane jako przekierowanie danych wyjściowych. Przekierowanie odbywa się za pomocą znaku „>” (symbol większości) lub znaku „|” (pipe) operator, który wysyła standardowe wyjście jednego polecenia do innego polecenia jako standardowe wejście.
Jak widzieliśmy wcześniej, jak polecenie łączy pliki i umieszcza je wszystkie razem na standardowym wyjściu. Przekierowując to wyjście do pliku, ta nazwa pliku zostanie utworzona - lub nadpisana, jeśli już istnieje, więc bądź ostrożny.
nancy: ~> test kota 1
niektóre słowa
nancy: ~> test kota 2
kilka innych słów
nancy: ~> test kota 1 test 2 > test 3
nancy: ~> test kota 3
niektóre słowa
nancy: ~> test kota 1
niektóre słowa
nancy: ~> test kota 2
kilka innych słów
nancy: ~> test kota 1 test 2 > test 3
nancy: ~> test kota 3
niektóre słowa
kilka inny słowa
Nie nadpisuj!
Uważaj, aby nie nadpisać istniejących (ważnych) plików podczas przekierowywania danych wyjściowych. Wiele powłok, w tym Bash, ma wbudowaną funkcję chroniącą przed tym ryzykiem: nocnik. Więcej informacji można znaleźć na stronach informacyjnych. W Bash chciałbyś dodać zestaw -o nocnik polecenie do swojego .bashrc plik konfiguracyjny, aby zapobiec przypadkowemu nadpisaniu plików.
Przekierowanie „nic” do istniejącego pliku jest równoznaczne z opróżnieniem pliku:
nancy: ~> ls -l lista -rw-rw-r-- 1 nancy | Nancy | 117 2 kwietnia 18:09 lista |
nancy: ~> > lista | ||
nancy: ~> ls -l lista -rw-rw-r-- 1 nancy | Nancy | 0 4 kwietnia 12:01 lista |
Ten proces jest wywoływany obcinanie.
To samo przekierowanie do nieistniejącego pliku spowoduje utworzenie nowego pustego pliku o podanej nazwie:
nancy: ~> ls -l nowa lista
ls: newlist: Brak takiego pliku lub katalogu
nancy: ~> > nowa lista
nancy: ~> ls -l nowa lista
ls: newlist: Brak takiego pliku lub katalogu
nancy: ~> > nowa lista
nancy: ~> ls -l nowa lista
-rw-rw-r-- 1 Nancy Nancy
0 4 kwietnia 12:05 nowa lista
nancy: ~> ls -l nowa lista
-rw-rw-r-- 1 Nancy Nancy
Rozdział 7 zawiera więcej przykładów wykorzystania tego rodzaju przekierowań. Kilka przykładów użycia potokowania poleceń:
Aby znaleźć słowo w jakimś tekście, wyświetl wszystkie wiersze pasujące do „wzór1” i wyklucz z wyświetlania wiersze pasujące również do „wzór2”:
grep pattern1 filet | chwyt -v pattern2
Aby wyświetlić dane wyjściowe katalogu z listą jednej strony na raz:
ls -The | mniej
Aby znaleźć plik w katalogu:
ls -l | chwyt część_nazwy_pliku
5.1.2.2. Przekierowanie wejścia
W innym przypadku możesz chcieć, aby plik był wejściem dla polecenia, które normalnie nie akceptuje pliku jako opcji. To przekierowanie danych wejściowych odbywa się za pomocą operatora „<” (mniej niż symbol).
Poniżej znajduje się przykład wysłania komuś pliku z wykorzystaniem przekierowania wejścia.
andy:~> Poczta mike@gdzieś.org < do zrobienia
Jeśli użytkownik mikrofon istnieje w systemie, nie musisz wpisywać pełnego adresu. Jeśli chcesz dotrzeć do kogoś w Internecie, podaj pełny adres jako argument Poczta.
To brzmi nieco trudniej niż kot początkującego filet | Poczta ktoś, ale jest to oczywiście znacznie bardziej elegancki sposób wykorzystania dostępnych narzędzi.
5.1.2.3. Łączenie przekierowań
Poniższy przykład łączy przekierowanie danych wejściowych i wyjściowych. Plik tekst.txt jest najpierw sprawdzany pod kątem błędów pisowni, a dane wyjściowe są przekierowywane do pliku dziennika błędów:
zaklęcie tekst.txt > error.log
Poniższe polecenie zawiera listę wszystkich poleceń, które można wydać w celu zbadania innego pliku podczas używania mniej:
Mike: ~> mniej --pomoc | grep -i zbadaj
:e [plik] Sprawdź nowy plik.
:n * Sprawdź (N-ty) następny plik z wiersza poleceń.
:p * Sprawdź (N-ty) poprzedni plik z wiersza poleceń.
:x * Sprawdź pierwszy (lub N-ty) plik z wiersza poleceń.
Mike: ~> mniej --pomoc | grep -i zbadaj
:e [plik] Sprawdź nowy plik.
:n * Sprawdź (N-ty) następny plik z wiersza poleceń.
:p * Sprawdź (N-ty) poprzedni plik z wiersza poleceń.
:x * Sprawdź pierwszy (lub N-ty) plik z wiersza poleceń.
Połączenia -i opcja jest używana do wyszukiwania bez rozróżniania wielkości liter - pamiętaj, że systemy UNIX bardzo rozróżniają wielkość liter. Jeśli chcesz zapisać dane wyjściowe tego polecenia do wykorzystania w przyszłości, przekieruj dane wyjściowe do pliku:
Mike: ~> mniej --pomoc | grep -i zbadaj > zbadaj-pliki-w-mniej
Mike: ~> cat sprawdza-pliki-w-mniej
:e [plik] Sprawdź nowy plik.
:n * Sprawdź (N-ty) następny plik z wiersza poleceń.
:p * Sprawdź (N-ty) poprzedni plik z wiersza poleceń.
:x * Sprawdź pierwszy (lub N-ty) plik z wiersza poleceń.
Mike: ~> mniej --pomoc | grep -i zbadaj > zbadaj-pliki-w-mniej
Mike: ~> cat sprawdza-pliki-w-mniej
:e [plik] Sprawdź nowy plik.
:n * Sprawdź (N-ty) następny plik z wiersza poleceń.
:p * Sprawdź (N-ty) poprzedni plik z wiersza poleceń.
:x * Sprawdź pierwszy (lub N-ty) plik z wiersza poleceń.
Wyjście jednego polecenia może być przesyłane potokowo do innego polecenia praktycznie tyle razy, ile chcesz, tak długo, jak te polecenia normalnie odczytałyby dane wejściowe ze standardowego wejścia i zapisały dane wyjściowe na standardowe wyjście.
Czasami tak nie jest, ale wtedy mogą istnieć specjalne opcje, które instruują te polecenia, aby zachowywały się zgodnie ze standardowymi definicjami; więc przeczytaj dokumentację (strony man i Info) używanych poleceń, jeśli napotkasz błędy.
Ponownie upewnij się, że nie używasz nazw istniejących plików, których nadal potrzebujesz. Przekierowanie danych wyjściowych do istniejących plików spowoduje zastąpienie zawartości tych plików.
5.1.2.4. Operator >>
Zamiast nadpisywać dane pliku, możesz również dołączyć tekst do istniejącego pliku, używając dwóch kolejnych znaków większości:
Przykład:
Mike: ~> lista życzeń dla kotów
więcej pieniędzy mniej pracy
Mike: ~> data >> lista życzeń
Mike: ~> lista życzeń dla kotów
więcej pieniędzy mniej pracy
Mike: ~> data >> lista życzeń
Mike: ~> lista życzeń dla kotów
więcej pieniędzy mniej pracy
Czwartek, 28 lutego 20, 23:07:2002 CET
Mike: ~> lista życzeń dla kotów