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 tee
moż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 tee
jest 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 tee
dział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 tee
wykonuje 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. tee
Za pomocą tego polecenia można tworzyć kopie zapasowe , znajdować błędy w skryptach i śledzić dzienniki systemowe.
Polecenie tee
umoż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ą tee
preinstalowane polecenie, które jest częścią pakietu Coreutils.
Polecenie tee
ma podobną składnię jak inne polecenia systemu Linux. Ma dwa argumenty –OPCJE i PLIKI:
tee [OPTION]... [FILE]...
Aby dowiedzieć się, której wersji polecenia tee
używasz, po prostu uruchom następujące polecenie:
tee --version
Jeśli potrzebujesz pomocy dotyczącej składni i dostępnych argumentów polecenia tee
, wpisz to:
tee --help
tee Opcje poleceń
Polecenie tee
posiada kilka opcji modyfikacji jego funkcjonalności. Poniższa tabela przedstawia kilka opcji, które pomogą Ci tee
efektywnie korzystać z polecenia:
Opcja |
Opis |
---|---|
|
Dołącz dane wyjściowe na końcu plików, zamiast je nadpisywać. |
|
Ignoruj sygnały przerwań, takie jak Ctrl+C. |
|
Wydrukuj komunikat o błędzie standardowym dla każdego błędu występującego podczas zapisu do plików. |
|
Wyświetla podstawową pomoc związaną z opcjami poleceń. |
|
Wyświetl |
Zapisz dane wyjściowe do pliku w systemie Linux za pomocą tee
Polecenie tee
zapisuje dane wyjściowe polecenia do pliku, jednocześnie wyświetlając je na terminalu. Na przykład tee
polecenie pozwoli ci zobaczyć pliki i katalogi w twoim katalogu domowym , a także zapisać je w osobnym pliku. Aby to zrobić, potokuj tee
polecenie za pomocą polecenia ls w następujący sposób:
ls ~ | tee list.txt
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 more
polecenie.
cat list.txt
Wykonajmy inny przykład z poleceniem echo , aby zapisać i wyświetlić dane wyjściowe. Najpierw użyj echo
polecenia, aby wydrukować tekst na terminalu. Następnie prześlij tee
polecenie z echo
poleceniem zapisania tego samego tekstu do pliku o nazwie „output.txt”.
echo "Welcome to Ubuntu"| tee output.txt
Na koniec użyj polecenia cat , aby sprawdzić zawartość pliku „output.txt”.
cat output.txt
Zapisz dane wyjściowe do wielu plików w systemie Linux za pomocą tee
Polecenie tee
może również zapisywać dane wyjściowe do wielu plików jednocześnie. Musisz tylko zdefiniować nazwy plików po tee
poleceniu, do którego chcesz pisać. Po prostu oddziel je spacjami.
Na przykład, aby zapisać dane wyjściowe polecenia echo
w trzech różnych plikach, użyj następującej składni:
echo "Welcome to Ubuntu"| tee file1.txt file2.txt file3.txt
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 cat
lub head
:
head -v file1.txt file2.txt file3.txt
Podobnie cat
polecenie wyświetli również identyczne dane wyjściowe:
cat -v file1.txt file2.txt file3.txt
Za pomocą polecenia możesz zapisać dane wyjściowe w dowolnej liczbie plików tee
. Po prostu wpisz nazwy plików po tee
poleceniu, oddzielając je spacjami.
Dołącz dane wyjściowe do pliku za pomocą tee
Polecenie tee
w systemie Linux domyślnie nadpisuje zawartość pliku. Opcja -a
lub --append
z tee
poleceniem 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
Teraz możemy dodać nowe dane bez ich nadpisywania, wpisując:
echo "tee Command on Linux"| tee -a output.txt
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 cat
polecenie:
cat output.txt
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/null
urządzenia. Często określa się je /dev/null
mianem „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
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 cat
polecenie pozwoli zweryfikować dane wyjściowe, przeglądając zawartość pliku:
cat output.txt
Przekieruj wyjście jednego polecenia na drugie za pomocą tee
Polecenie tee
może również przekierować dane wyjściowe jednego polecenia do pliku lub dowolnego innego polecenia. Polecenie tee
z 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
Dane echo
wyjściowe polecenia „Witamy w Ubuntu” są zapisywane w pliku Output.txt. Następnie z tee
poleceniem używany jest operator potoku. Spowoduje to przekazanie zawartości pliku do polecenia wc . Polecenie wc
wyświetli całkowitą liczbę zliczonych znaków i wyświetli wartość całkowitą.
Aby sprawdzić, czy tee
polecenie zapisało również dane wyjściowe do pliku, użyj cat
polecenia, aby wyświetlić zawartość pliku:
cat output.txt
Używanie polecenia tee z sudo
Kiedy używasz tee
polecenia, 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 tee
w 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
Jednakże, jeśli użyjesz polecenia sudo
with tee
, zostanie ono uruchomione bez żadnego błędu. Możesz użyć tego sudo
polecenia, aby uruchomić je tee
jako użytkownik root lub właściciel pliku. Wystarczy poprzedzić sudo
polecenie tee
:
echo "This is Ubuntu"| sudo tee -a /etc/file.conf
Najpierw tee
polecenie pobierze dane echo
wyjściowe polecenia. Następnie przechodzi do sudo
uprawnień i zapisuje tekst do pliku.
Przykłady użycia tee w skrypcie Bash
Polecenie tee
może być przydatne w różnych scenariuszach skryptowych. Pomaga rejestrować lub przechwytywać dane wyjściowe polecenia w celu dalszego przetwarzania lub debugowania. Polecenie tee
nie 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
W tym przypadku standardowym wejściem jest wyjście polecenia date, które pokazuje aktualną datę i godzinę. Polecenie tee
zapisuje 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 -a
opcji dołączenia do pliku.
cat log.txt
#!/bin/bashdate | tee log1.txt log2.txt
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ą cat
polecenia.
cat log1.txt log2.txt
Rozważmy inny prosty skrypt bash, który pobiera dane wejściowe i zapisuje je w pliku dziennika — za pomocą tee
polecenia.
#!/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"
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 echo
polecenia i read
polecenia, aby poprosić o wprowadzenie tekstu i zapisanie go w zmiennej. Następnie użyj tee
polecenia z -a
opcją wyświetlenia wejścia Enter na terminalu i dołącz je do pliku dziennika.
Na koniec użyj echo
ponownie 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ą bash
polecenia.
bash test.sh
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 tee
polecenie, 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