Ketika Anda menjalankan perintah dasar pada terminal, output biasanya dicetak ke terminal yaitu standar keluar. Tetapi bagaimana jika Anda juga dapat menyimpan output dalam file serta mencetaknya ke standar? Inilah yang dilakukan perintah tee. Perintah tee Linux membaca dari stdin ( input standar ) dan kemudian menulis ke stdout ( output standar ) serta ke file atau beberapa file.
Sintaks Dasar dari perintah tee
Perintah tee menggunakan sintaks berikut.
$ perintah | tee [ options ] file
Sekarang mari kita contoh beberapa contoh penggunaan perintah tee.
Penggunaan dasar perintah tee
Misalkan kita ingin mencetak memori dan menukar penggunaan menggunakan gratis perintah dan simpan hasilnya dalam file bernama memory_usage.txt . Perintah tee akan dipanggil sebagai berikut.
$ free -h | tee memory_usage.txt
Perintah tee membaca dari perintah, menyimpan output ke memory_usage.txt file, lalu mencetaknya ke standar.
Untuk mengonfirmasi bahwa output telah disimpan ke memory_usage.txt file jalankan perintah cat seperti yang ditunjukkan.
$ cat memory_usage.txt
Tulis output ke beberapa file
Selain itu, Anda dapat menyimpan output ke beberapa file seperti yang ditunjukkan
$ perintah | tee [ pilihan ] file1 file2 …
Pada perintah di bawah ini, string “Hai, Selamat Datang di Linux” disimpan dalam dua file teks:file1.txt dan file2.txt
$ echo Hey, Welcome to Linux | tee file1.txt file2.txt
Menambahkan konten ke file
Biasanya, perintah tee menimpa file, dan ini tidak selalu diinginkan karena dapat menghapus data penting yang sudah ada. Untungnya, Anda dapat menggunakan -a opsi untuk menambahkan teks ke file. Mari kita uji ini.
Pertama, kita akan menulis output dari uptime perintah ke stats.txt file seperti yang ditunjukkan.
$ waktu aktif | tee stats.txt
Gunakan kucing perintah untuk memverifikasi ini.
$ cat stats.txt
Selanjutnya, kita akan menambahkan output dari free -h perintah yang mencetak memori kita dan menukar penggunaan ke file.
$ free -h | tee -a stats.txt
Sekali lagi, verifikasi konten stats.txt mengajukan. Kali ini, file akan menampilkan output dari dua perintah seperti yang ditunjukkan pada gambar di bawah. Ini karena kami menambahkan output dari free -h perintah ke stats.txt file dan oleh karena itu teks yang ada tidak terpengaruh.
Tekan output dari perintah tee
Jika Anda tidak ingin memiliki keluaran tee perintah dicetak ke standar keluar, Anda dapat mengarahkannya ke /dev/null yang merupakan perangkat khusus yang membuang informasi yang dimasukkan ke dalamnya.
Ambil contoh di bawah ini di mana kita mencetak output dari df -Th perintah ke file teks tetapi menekan output pada terminal.
$ df -Th | tee disk_usage.txt >/dev/null
Biarkan perintah tee mengabaikan interupsi
Terkadang, Anda mungkin ingin menghentikan perintah yang terus berjalan. Ketika itu terjadi, Anda mungkin mempertimbangkan untuk meminta perintah tee keluar dengan anggun bahkan setelah gangguan program. Untuk melakukannya, gunakan -i atau –ignore-interrupts opsi yang disediakan dalam sintaks yang ditampilkan.
$ perintah | tee -i nama file
Perintah ping di bawah ini terus mengirimkan permintaan ping ke DNS Google ( 8.8.8.8 ). Kami telah menghentikan perintah setelah 4 permintaan ping berturut-turut. Untuk kaos perintah untuk keluar dengan anggun, aktifkan -i pilihan.
$ ping 8.8.8.8 | tee -i ping_stats.txt
Tanpa -i pilihan, output dan ringkasan statistik tidak akan dicetak.
Gunakan perintah tee dengan sudo
Saat memodifikasi file yang dimiliki oleh pengguna root atau pengguna login yang berbeda, cukup menggunakan perintah tee tanpa menjalankan perintah sudo akan menghasilkan kesalahan.
Pada contoh di bawah, kita membuat repositori baru bernama anydesk-stable.list untuk aplikasi AnyDesk di /etc/apt/sources.list.d jalur yang merupakan cadangan untuk pengguna root.
$ echo "deb http://deb.anydesk.com/ all main" | tee /etc/apt/sources.list.d/anydesk-stable.list
Seperti yang diharapkan, kami mengalami kesalahan 'izin ditolak' karena kami tidak memiliki izin untuk membuat atau memodifikasi file di jalur tersebut.
Solusinya adalah mendahului tee dengan perintah sudo seperti yang ditunjukkan.
$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list
Pada kesempatan ini, perintah berhasil setelah menempatkan sudo sebelum tee.
Dapatkan bantuan dengan perintah tee
Untuk opsi perintah lainnya dan bantuan dalam menggunakan perintah tee, jalankan perintah di bawah ini.
$ tee --help
Selain itu, jelajahi halaman manual seperti yang ditunjukkan
$ man tee
Untuk memeriksa versi, jalankan:
$ tee --version
Ringkasan
Ini semua tentang perintah tee Linux. Khususnya, perintah membaca dari standar in ( stdin ) dan setelah itu menulis ke standar out ( stdout ) dan file(s).