Jak korzystać z polecenia tee w systemie Linux

Jak korzystać z polecenia tee w systemie Linux

Kluczowe dania na wynos

  • Polecenie „tee” w systemie Linux zapisuje dane wyjściowe polecenia do pliku, jednocześnie wyświetlając je na terminalu.
  • Może także zapisywać dane wyjściowe do wielu plików jednocześnie, co pozwala na łatwe tworzenie kopii zapasowych i śledzenie dzienników systemowych.
  • Polecenie „tee” może być także używane z innymi poleceniami za pośrednictwem rurociągów. Umożliwia to dalsze przetwarzanie wyniku podczas zapisywania go do pliku. Na przykład możesz użyć go z „ls” w tym poleceniu: „ls ~ | lista tee.txt”

Polecenie teemoże zapisać dane wyjściowe poleceń do późniejszego przejrzenia. Polecenie to nie tylko wyświetla dane wyjściowe na ekranie, ale także zapisuje je w oddzielnym pliku dziennika . Załóżmy, że chcesz zapisać wynik polecenia df w pliku, aby móc śledzić wykorzystanie miejsca na dysku w czasie. To polecenie pomaga w rozwiązywaniu problemów z procesem, ponieważ utrzymuje pisemny zapis procesów.

Jakie jest polecenie tee w systemie Linux?

Polecenie Linux teejest użytecznym narzędziem oszczędzającym czas i poprawiającym wydajność w systemie Linux. Może czytać standardowe wejście (stdin) i zapisywać je zarówno na standardowe wyjście (stdout), jak i do określonego pliku lub plików. Polecenie teedziała jak rura w kształcie litery T, która rozdziela wodę na dwa kierunki. Umożliwia jednoczesne przeglądanie wyników działania programu i zapisywanie ich w pliku.

Polecenie teewykonuje obie czynności razem. Pozwala skopiować dane wyjściowe do wybranych plików lub zmiennych i wyświetlić je. To polecenie jest również używane w skryptach powłoki i poleceniach terminala do wysyłania danych wyjściowych do różnych lokalizacji. teeZa pomocą tego polecenia można tworzyć kopie zapasowe , znajdować błędy w skryptach i śledzić dzienniki systemowe.

Polecenie teeumożliwia także potokowanie go za pomocą innych poleceń . W ten sposób możesz zapisać wynik w pliku, a także przetworzyć go dalej za pomocą dowolnego innego polecenia.

Prawie wszystkie dystrybucje Linuksa mają teepreinstalowane polecenie, które jest częścią pakietu Coreutils.

Polecenie teema podobną składnię jak inne polecenia systemu Linux. Ma dwa argumenty –OPCJE i PLIKI:

tee [OPTION]... [FILE]...

Aby dowiedzieć się, której wersji polecenia teeużywasz, po prostu uruchom następujące polecenie:

tee --version

Wersja polecenia tee na terminalu

Jeśli potrzebujesz pomocy dotyczącej składni i dostępnych argumentów polecenia tee, wpisz to:

tee --help

pomoc dotycząca polecenia tee

tee Opcje poleceń

Polecenie teeposiada kilka opcji modyfikacji jego funkcjonalności. Poniższa tabela przedstawia kilka opcji, które pomogą Ci teeefektywnie korzystać z polecenia:

Opcja

Opis

-a or --append

Dołącz dane wyjściowe na końcu plików, zamiast je nadpisywać.

-i or --ignore-interrupts

Ignoruj ​​sygnały przerwań, takie jak Ctrl+C.

-p or --output-error

Wydrukuj komunikat o błędzie standardowym dla każdego błędu występującego podczas zapisu do plików.

--help

Wyświetla podstawową pomoc związaną z opcjami poleceń.

--version

Wyświetl teewersję polecenia.

Zapisz dane wyjściowe do pliku w systemie Linux za pomocą tee

Polecenie teezapisuje dane wyjściowe polecenia do pliku, jednocześnie wyświetlając je na terminalu. Na przykład teepolecenie pozwoli ci zobaczyć pliki i katalogi w twoim katalogu domowym , a także zapisać je w osobnym pliku. Aby to zrobić, potokuj teepolecenie za pomocą polecenia ls w następujący sposób:

ls ~ | tee list.txt

ls za pomocą polecenia tee i zapisz dane wyjściowe w pliku tekstowym

Spowoduje to wyświetlenie wszystkich plików i katalogów w twoim katalogu domowym i zapisanie ich w pliku „list.txt”. Aby wyświetlić zawartość pliku „list.txt”, użyj dowolnego edytora tekstu lub polecenia, takiego jak cat , less lub morepolecenie.

cat list.txt

polecenie cat, aby odczytać plik tekstowy listy

Wykonajmy inny przykład z poleceniem echo , aby zapisać i wyświetlić dane wyjściowe. Najpierw użyj echopolecenia, aby wydrukować tekst na terminalu. Następnie prześlij teepolecenie z echopoleceniem zapisania tego samego tekstu do pliku o nazwie „output.txt”.

echo "Welcome to Ubuntu"| tee output.txt

potok poleceń echo za pomocą polecenia tee

Na koniec użyj polecenia cat , aby sprawdzić zawartość pliku „output.txt”.

cat output.txt

polecenie cat do odczytania zawartości pliku tekstowego

Zapisz dane wyjściowe do wielu plików w systemie Linux za pomocą tee

Polecenie teemoże również zapisywać dane wyjściowe do wielu plików jednocześnie. Musisz tylko zdefiniować nazwy plików po teepoleceniu, do którego chcesz pisać. Po prostu oddziel je spacjami.

Na przykład, aby zapisać dane wyjściowe polecenia echow trzech różnych plikach, użyj następującej składni:

echo "Welcome to Ubuntu"| tee file1.txt file2.txt file3.txt

polecenie echo połączone z poleceniem tee z wieloma nazwami plików

Spowoduje to zapisanie ciągu „Witamy w Ubuntu” w trzech plikach: plik1.txt, plik2.txt i plik3.txt. Wyświetla je również na terminalu. Aby wyświetlić zawartość tych plików, użyj polecenia catlub head:

head -v file1.txt file2.txt file3.txt

polecenie head do odczytania zawartości wielu plików tekstowych

Podobnie catpolecenie wyświetli również identyczne dane wyjściowe:

cat -v file1.txt file2.txt file3.txt

polecenie cat do odczytania zawartości wielu plików tekstowych

Za pomocą polecenia możesz zapisać dane wyjściowe w dowolnej liczbie plików tee. Po prostu wpisz nazwy plików po teepoleceniu, oddzielając je spacjami.

Dołącz dane wyjściowe do pliku za pomocą tee

Polecenie teew systemie Linux domyślnie nadpisuje zawartość pliku. Opcja -alub --appendz teepoleceniem umożliwia dołączenie danych wyjściowych na końcu plików zamiast zastępowania ich zawartości.

Zanim dołączymy dane do pliku, sprawdźmy, jakie dane znajdują się w pliku, używając poniższego polecenia:

cat output.txt

polecenie cat w celu odczytania danych z pliku Output.txt

Teraz możemy dodać nowe dane bez ich nadpisywania, wpisując:

echo "tee Command on Linux"| tee -a output.txt

polecenie echo potokowane z tee i opcją -a dołączenia danych wyjściowych do istniejącego pliku

Spowoduje to dołączenie danych wyjściowych polecenia na końcu pliku wyjściowego.txt, bez usuwania jakiejkolwiek wcześniejszej zawartości. Aby to zweryfikować, uruchom catpolecenie:

cat output.txt

polecenie cat, które odczytuje wyjściowy plik tekstowy

Ukryj wyjście za pomocą tee

Czasami możesz chcieć zapisać wynik polecenia w pliku bez pokazywania go na terminalu. Może to być przydatne, jeśli chcesz uruchomić polecenie po cichu, bez zaśmiecania terminala niepotrzebnymi danymi wyjściowymi. W takich przypadkach należy skierować wyjście polecenia do /dev/nullurządzenia. Często określa się je /dev/nullmianem „urządzenia zerowego” lub „pliku zerowego”. Działa jak ujście danych, co oznacza, że ​​wszelkie zapisane na nim dane są odrzucane i tak naprawdę nie są nigdzie przechowywane.

Oto sposób na ukrycie wyników polecenia echo:

echo "Welcome to Ubuntu"| tee output.txt > /dev/null

polecenie echo połączone z poleceniem tee i urządzeniem zerowym dev

Spowoduje to zapisanie wyniku polecenia w pliku Output.txt, a także wysłanie go do /dev/null, co skutecznie ukryje je na ekranie. Jednak catpolecenie pozwoli zweryfikować dane wyjściowe, przeglądając zawartość pliku:

cat output.txt

polecenie cat do odczytania zawartości pliku tekstowego-1

Przekieruj wyjście jednego polecenia na drugie za pomocą tee

Polecenie teemoże również przekierować dane wyjściowe jednego polecenia do pliku lub dowolnego innego polecenia. Polecenie teez potokiem (|) pozwoli ci wysłać wynik pierwszego polecenia zarówno na standardowe wyjście, jak i drugie polecenie lub plik. Rozważ następujący przykład:

echo "This is Ubuntu"| tee output.txt | wc -c

polecenie echo połączone z tee i wc, aby przekierować wyjście

Dane echowyjściowe polecenia „Witamy w Ubuntu” są zapisywane w pliku Output.txt. Następnie z teepoleceniem używany jest operator potoku. Spowoduje to przekazanie zawartości pliku do polecenia wc . Polecenie wcwyświetli całkowitą liczbę zliczonych znaków i wyświetli wartość całkowitą.

Aby sprawdzić, czy teepolecenie zapisało również dane wyjściowe do pliku, użyj catpolecenia, aby wyświetlić zawartość pliku:

cat output.txt

Polecenie Cat, które odczytuje wyjściowy plik tekstowy

Używanie polecenia tee z sudo

Kiedy używasz teepolecenia, zapisuje ono wynik polecenia do zwykłego pliku. Jednak niektóre pliki i katalogi, takie jak katalogi systemowe lub pliki chronione, wymagają uprawnień administratora do modyfikacji. Aby zapisać w tych plikach lub plikach będących własnością innych użytkowników, użyj teew połączeniu z sudo.

W poniższym przykładzie próba zapisania pliku „file.conf” należącego do roota bez użycia sudo spowoduje wyświetlenie błędu odmowy uprawnień.

echo "This is Ubuntu"| tee -a /etc/file.conf

polecenie echo połączone z poleceniem tee bez pozwolenia sudo

Jednakże, jeśli użyjesz polecenia sudowith tee, zostanie ono uruchomione bez żadnego błędu. Możesz użyć tego sudopolecenia, aby uruchomić je teejako użytkownik root lub właściciel pliku. Wystarczy poprzedzić sudopolecenie tee:

echo "This is Ubuntu"| sudo tee -a /etc/file.conf

polecenie echo połączone z poleceniem tee z uprawnieniami sudo

Najpierw teepolecenie pobierze dane echowyjściowe polecenia. Następnie przechodzi do sudouprawnień i zapisuje tekst do pliku.

Przykłady użycia tee w skrypcie Bash

Polecenie teemoże być przydatne w różnych scenariuszach skryptowych. Pomaga rejestrować lub przechwytywać dane wyjściowe polecenia w celu dalszego przetwarzania lub debugowania. Polecenie teenie tylko wyświetli dane wyjściowe, ale także zapisze je w pliku lub plikach do późniejszego wykorzystania.

Na przykład, jeśli chcesz zobaczyć datę i godzinę na terminalu, a także zapisać je w pliku o nazwie log.txt, użyj następującego skryptu bash :

#!/bin/bashdate | tee log.txt

Skrypt Bash do zapisywania daty w pliku dziennika

W tym przypadku standardowym wejściem jest wyjście polecenia date, które pokazuje aktualną datę i godzinę. Polecenie teezapisuje te dane wyjściowe do terminala i do pliku log.txt. Jeżeli plik log.txt nie istnieje, zostanie utworzony. Jeśli istnieje, zostanie nadpisany, chyba że użyjesz -aopcji dołączenia do pliku.

cat log.txt

Polecenie Cat odczytujące zawartość pliku dziennika

#!/bin/bashdate | tee log1.txt log2.txt

Skrypt Bash do zapisu wielu plików za pomocą polecenia tee

Skrypt ten drukuje datę i godzinę na terminalu oraz w dwóch plikach o nazwach log1.txt i log2.txt. Przeczytaj zawartość obu plików za pomocą catpolecenia.

cat log1.txt log2.txt

Polecenie Cat, które odczytuje zawartość wielu plików tekstowych dziennika

Rozważmy inny prosty skrypt bash, który pobiera dane wejściowe i zapisuje je w pliku dziennika — za pomocą teepolecenia.

#!/bin/bashlog_file="user_input.log"echo "Please enter some text:"read user_inputecho "$user_input" | tee -a "$log_file"echo "User input has been logged to $log_file"

Skrypt Bash, który odczytuje dane wejściowe użytkownika i wyświetla dane wyjściowe na terminalu

W podanym skrypcie basha zdefiniuj zmienną o nazwie „plik_loga” i przypisz jej nazwę pliku dziennika, którego chcesz użyć, np. „user_input.log”. Następnie użyj echopolecenia i readpolecenia, aby poprosić o wprowadzenie tekstu i zapisanie go w zmiennej. Następnie użyj teepolecenia z -aopcją wyświetlenia wejścia Enter na terminalu i dołącz je do pliku dziennika.

Na koniec użyj echoponownie polecenia, aby przekazać opinię. Dzięki temu dowiesz się, że wprowadzone dane zostały zapisane w pliku. W ten sposób umożliwia utworzenie skryptu bash, który zapisuje wprowadzone dane w pliku dziennika i wyświetla je na ekranie.

Uruchom skrypt bash za pomocą bashpolecenia.

bash test.sh

polecenie bash, które uruchamia skrypt testowy

Monitorowanie procesów w systemie Linux

Aby mieć kontrolę nad tym, jak dobrze działa Twój system Linux, powinieneś obserwować aktywność jego procesów. Obejmuje to użycie procesora i pamięci, operacje we/wy dysku i aktywność sieciową.

Podobnie jak teepolecenie, Linux ma wiele innych poleceń , które pomagają łatwo monitorować procesy. Niektóre z głównych poleceń obejmują polecenie ps , top i pgrep . W systemach Linux często uruchamianych jest wiele procesów jednocześnie. Za pomocą tych poleceń można ustalać priorytety zadań krytycznych, odpowiednio przydzielać zasoby i zapobiegać rywalizacji o zasoby.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *