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.