Pendahuluan
Ketika pengguna menjalankan perintah di shell interaktif Linux, output ditampilkan di terminal teks. Namun, ada beberapa cara untuk mengubah perilaku ini menggunakan perintah shell tambahan yang terhubung dalam sebuah pipeline.
Dalam tutorial ini, Anda akan mempelajari cara menggunakan perintah tee di Linux untuk mengelola output dari sebuah perintah.
Prasyarat
- Sistem yang menjalankan Linux
- Akses ke baris perintah atau terminal
- Hak istimewa Sudo
Apa yang Dilakukan Perintah tee di Linux?
tee
perintah membaca input standar (stdin) dan menulisnya ke output standar (stdout) dan satu atau lebih file. tee
biasanya merupakan bagian dari pipeline, dan sejumlah perintah dapat mendahului atau mengikutinya.
Perintah tee di Linux Dengan Contoh
tee
perintah digunakan sendiri atau dengan opsi tambahan. Bagian berikut mencantumkan opsi yang tersedia dan memberikan contoh penggunaan perintah.
Penggunaan Dasar
Sintaks dasar untuk tee
perintahnya adalah:
[command] | tee [options] [filename]
Contoh di bawah ini menunjukkan penggunaan tee
untuk membuat file yang menyimpan informasi tentang antarmuka jaringan sambil memberikan output yang sama di terminal:
Perintah cat mengonfirmasi bahwa tee
berhasil menulis output ifconfig
ke file example.txt
:
Jika file yang digunakan untuk perintah sudah ada, tee
menimpa isi file sebelumnya.
Tambahkan ke File yang Diberikan
Menimpa konten file adalah perilaku default tee
memerintah. Gunakan argumen -a
(atau --append
) untuk menambahkan output perintah ke akhir file.
[command] | tee -a [filename]
Misalnya, gunakan echo
perintah untuk menambahkan sebaris teks ke file:
Konfirmasikan penambahan yang berhasil dengan cat
perintah:
Menulis ke Beberapa File
Gunakan tee
diikuti oleh sejumlah file untuk menulis output yang sama ke masing-masing file:
[command] | tee [options] [filename1] [filename2]...
Contoh di bawah ini menunjukkan penulisan output dari echo
perintah ke dua file:
ls
perintah menunjukkan bahwa tee
file berhasil dibuat example1.txt
dan example2.txt
.
Sembunyikan Outputnya
Untuk memberi tahu tee
untuk menyimpan output perintah dalam file dan melewatkan output terminal, gunakan sintaks berikut:
[command] | tee [options] [filename] >/dev/null
Pada contoh di bawah, tee
membuat file yang berisi data antarmuka jaringan, melewatkan keluaran standar:
Mengalihkan Output dari Satu Perintah ke Perintah lainnya
tee
tidak harus menjadi perintah terakhir dalam pipeline. Gunakan untuk meneruskan output ke perintah lain:
[command] | tee [options] [filename] | [command]
Dalam contoh berikut, tee
menyimpan keluaran ls
perintah ke example.txt
dan meneruskan konten file itu ke perintah grep, yang menemukan dan menampilkan semua contoh kata “contoh”:
Abaikan Interupsi
Untuk mengaktifkan tee
untuk keluar dengan benar bahkan setelah perintah sebelumnya terputus, tambahkan argumen -i
(atau --ignore-interrupts
):
[command] | tee -i [filename]
Contoh berikutnya menunjukkan tee
menulis output dari perintah ping dan menyelesaikan tindakan dengan sukses bahkan setelah ping
disela dengan Ctrl+C
:
Menggunakan kaus dengan Sudo
Untuk mengaktifkan tee
untuk menulis ke file milik root atau file milik pengguna lain, letakkan perintah sudo tepat sebelum tee
.
[command] | sudo tee [options] [filename]
Contoh di bawah ini menunjukkan upaya yang gagal untuk menulis ke sudoex.txt
. milik root . Saat sudo
perintah ditambahkan, operasi selesai:
Menggunakan tee di Vim Editor
Jika Anda membuka dan mengedit file milik root di Vim tanpa menggunakan sudo
perintah, mencoba menyimpan perubahan menghasilkan kesalahan:
Untuk menimpa kesalahan ini, ketik berikut ini ke dalam Vim:
:w !sudo tee %
Setelah Anda memasukkan sudo
password, Vim menampilkan peringatan tetapi menulis perubahan ke file.
Diagnosis Kesalahan Penulisan ke Non-Pipa
Untuk menginstruksikan tee
untuk mencetak pesan kesalahan saat proses gagal, gunakan -p
argumen:
[command] | tee -p [filename]
Tindakan default tee -p
adalah untuk keluar dan mencetak pesan kesalahan segera setelah mendeteksi kesalahan menulis ke pipa. Untuk mengubah perilaku perintah pada kesalahan penulisan, gunakan --output-error
argumen, diikuti oleh mode yang menentukan perilaku:
[command] | tee --output-error=[mode] [filename]
Ada empat kemungkinan mode:
warn
– mendiagnosis kesalahan penulisan ke keluaran apa pun.warn-nopipe
– mendiagnosis kesalahan penulisan ke keluaran non-pipa apa pun.exit
– keluar pada kesalahan penulisan ke keluaran apa pun.exit-nopipe
– keluar pada kesalahan penulisan ke keluaran non-pipa apa pun.
Gunakan Perintah tee dengan Bash Script
tee
perintah sering ditemukan di skrip bash. Perhatikan contoh berikut:
Script di atas mencetak pesan “Hello World” dan menyimpan output dalam file log. Menjalankan skrip membuat file log di tmp
map. Log berisi output dari skrip:
Tonton File Log
Menulis output skrip ke file log biasanya dilakukan dengan >
operator:
./testbash.sh > testbash.log
Perintah di atas membuat file log tetapi tidak menulis apa pun ke output standar.
Gunakan tee
untuk membuat file log dan melihat output di terminal:
./testbash.sh | tee testbash.log
Lihat Bantuan dan Informasi Versi
Lihat versi saat ini dari tee
perintah dengan mengetik:
tee --version
Untuk petunjuk mengenai tee
sintaks perintah dan argumen yang tersedia, gunakan argumen bantuan perintah:
tee --help