Kullanıcı bir Linux etkileşimli kabuğunda bir komut yürüttüğünde, çıktı metin terminalinde görüntülenir. Ancak, bir işlem hattına bağlı ek kabuk komutlarını kullanarak bu davranışı değiştirmenin yolları vardır.
Bu öğreticide, bir komutun çıktısını yönetmek için tee komutunu Linux’ta nasıl kullanacağınızı öğreneceksiniz.
Önkoşullar
- Linux çalıştıran bir sistem
- Komut satırına veya terminale erişim
- sudo ayrıcalıkları
Tee Komutu Linux’ta Ne Yapar?
bu
tee komut standart girişi (stdin) okur ve bunu hem standart çıktıya (stdout) hem de bir veya daha fazla dosyaya yazar.
tee genellikle bir işlem hattının parçasıdır ve herhangi bir sayıda komut ondan önce veya sonra gelebilir.
tee Örneklerle Linux’ta Komutlar
bu
tee komutu tek başına veya ek seçeneklerle birlikte kullanılır. Aşağıdaki bölümlerde mevcut seçenekler listelenmekte ve komut kullanım örnekleri verilmektedir.
Temel Kullanım
için temel sözdizimi
tee komut şudur:
[command] | tee [options] [filename]
Aşağıdaki örnek, kullanımını göstermektedir
tee terminalde aynı çıktıyı sağlarken bir ağ arabirimi hakkında bilgi depolayan bir dosya oluşturmak için:
cat komutu bunu onaylar
tee çıktısını başarıyla yazdı
ifconfig dosyaya
example.txt:
Komut için kullanılan dosya zaten mevcutsa,
tee dosyanın önceki içeriğinin üzerine yazar.
Verilen Dosyaya Ekle
Dosya içeriğinin üzerine yazmak, dosyanın varsayılan davranışıdır.
tee emretmek. Argüman kullan
-a (veya
--append) komut çıktısını dosyanın sonuna eklemek için.
[command] | tee -a [filename]
Örneğin,
echo bir dosyaya bir metin satırı ekleme komutu:
ile başarılı eklemeyi onaylayın.
cat emretmek:
Birden Fazla Dosyaya Yaz
Kullanmak
tee ardından her birine aynı çıktıyı yazmak için herhangi bir sayıda dosya:
[command] | tee [options] [filename1] [filename2]...
Aşağıdaki örnek, çıktının yazılmasını göstermektedir.
echo iki dosyaya komut:
bu
ls komut şunu gösteriyor
tee başarıyla oluşturulan dosyalar
example1.txt Ve
example2.txt.
Çıktıyı Gizle
Söylemek
tee komut çıktısını bir dosyada saklamak ve terminal çıktısını atlamak için aşağıdaki sözdizimini kullanın:
[command] | tee [options] [filename] >/dev/null
Aşağıdaki örnekte,
tee standart çıktıyı atlayarak ağ arayüzü verilerini içeren bir dosya oluşturur:
Bir Komutun Çıktısını Diğerine Yönlendirme
tee boru hattındaki son komut olmak zorunda değildir. Çıktıyı başka bir komuta iletmek için kullanın:
[command] | tee [options] [filename] | [command]
Aşağıdaki örnekte,
tee çıktısını saklar
ls komut
example.txt ve bu dosyanın içeriğini, “örnek” kelimesinin tüm örneklerini bulan ve görüntüleyen grep komutuna iletir:
Kesintileri Yoksay
Etkinleştirmek
tee önceki komut kesintiye uğradıktan sonra bile düzgün şekilde çıkmak için argümanı ekleyin
-i (veya
--ignore-interrupts):
[command] | tee -i [filename]
Bir sonraki örnek gösterir
tee ping komutundan çıktı yazmak ve sonrasında bile işlemi başarıyla tamamlamak
ping ile kesilir
Ctrl+C:
Tee’yi Sudo ile kullanma
Etkinleştirmek
tee root’a ait bir dosyaya veya başka bir kullanıcıya ait dosyaya yazmak için hemen önce sudo komutunu yerleştirin.
tee.
[command] | sudo tee [options] [filename]
Aşağıdaki örnek, root’a ait başarısız bir yazma girişimini göstermektedir.
sudoex.txt. Ne zaman
sudo komut eklenir, işlem tamamlanır:
Tee’yi Vim Düzenleyici’de kullanma
Root’a ait bir dosyayı Vim’de açar ve düzenlerseniz,
sudo komutu, değişiklikleri kaydetmeye çalışırken bir hata veriyor:
Bu hatayı geçersiz kılmak için Vim’e aşağıdakini yazın:
:w !sudo tee %
girdikten sonra
sudo Vim bir uyarı görüntüler ancak değişiklikleri dosyaya yazar.
Kanal Dışına Yazma Hatalarını Teşhis Etme
talimat vermek
tee işlem başarısız olduğunda bir hata mesajı yazdırmak için
-p argüman:
[command] | tee -p [filename]
varsayılan eylemi
tee -p bir boruya yazarken hata tespit edildiğinde hemen çıkmak ve hata mesajını yazdırmaktır. Yazma hatası durumunda komutun davranışını değiştirmek için,
--output-error bağımsız değişken, ardından davranışı belirten mod:
[command] | tee --output-error=[mode] [filename]
Dört olası mod vardır:
warn– herhangi bir çıktıya yazma hatalarını teşhis eder.
warn-nopipe– kanal dışı herhangi bir çıktıya yazma hatalarını teşhis eder.
exit– herhangi bir çıktıya yazma hatalarında çıkar.
exit-nopipe– herhangi bir kanal dışı çıktıya yazma hatalarında çıkar.
tee Komutunu Bash Komut Dosyası ile kullanma
bu
tee komutu genellikle bash betiklerinde bulunur. Aşağıdaki örneği göz önünde bulundurun:
Yukarıdaki komut dosyası “Merhaba Dünya” mesajını yazdırır ve çıktıyı bir günlük dosyasında saklar. Komut dosyasının çalıştırılması, içinde bir günlük dosyası oluşturur.
tmp dosya. Günlük, betiğin çıktısını içerir:
Günlük Dosyalarını İzle
Komut dosyası çıktısını bir günlük dosyasına yazmak genellikle
>Şebeke:
./testbash.sh > testbash.log
Yukarıdaki komut bir günlük dosyası oluşturur ancak standart çıktıya hiçbir şey yazmaz.
Kullanmak
tee bir günlük dosyası oluşturmak ve terminaldeki çıktıyı görmek için:
./testbash.sh | tee testbash.log
Yardım ve Sürüm Bilgilerine Bakın
Geçerli sürüme bakın
tee yazarak komut:
tee --version
ile ilgili talimatlar için
tee komut sözdizimi ve mevcut bağımsız değişkenler için, komutun yardım bağımsız değişkenini kullanın:
tee --help
Çözüm
Bu öğreticiyi okuyarak, nasıl kullanılacağını öğrendiniz.
tee komut çıktısını yönetmek için bir ardışık düzende komut. Makale ayrıca kullanımı hakkında konuştu
tee bash betiklerinde.
Bu Linux komutları kısa bilgi sayfasında kabuk komutları hakkında daha fazla bilgi edinin.