GNU/Linux >> Belajar Linux >  >> Linux

Perintah Tee Linux &Unix Praktis untuk Admin Linux

Sebagai admin Linux, ada banyak kesempatan ketika Anda harus menyimpan output perintah ke file, selain hanya mencetak output di terminal. Tidak yakin bagaimana? Biarkan perintah tee Unix melakukan triknya.

Dalam tutorial ini, Anda akan mempelajari banyak cara menggunakan tee perintah untuk menyimpan dan menambahkan output ke file.

Siap? Baca terus untuk membawa skrip shell Anda ke level berikutnya!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki sistem Linux. Tutorial ini menggunakan Ubuntu 20.04, tetapi Anda dapat menggunakan Linux apa saja.

Mengarahkan Output Perintah (STDOUT/STDERR)

Sebelum menjalankan tee perintah, sangat penting untuk memahami cara kerja pengalihan. Di Linux, semuanya dianggap sebagai file, termasuk perangkat, direktori, dan bahkan output dari perintah. Akibatnya, Anda dapat mengambil output dari satu perintah dan menggunakan output tersebut sebagai input untuk perintah lain (pengalihan file).

Ada berbagai jenis pengalihan, dan masing-masing memiliki tujuan. Tetapi ketika menjalankan tee perintah, Anda terutama menggunakan dua jenis pengalihan yang berbeda:

  • Pengalihan Output Standar (STDOUT) (>) – Output default dari suatu perintah.
  • Pengalihan Kesalahan Standar (STDERR)(2>) – Pesan kesalahan yang dibuat oleh perintah dan ditampilkan di layar Anda.

Kedua pengalihan mengambil dan menyimpan keluaran perintah ke file, tetapi Anda akan melihat cara kerja pengalihan di bawah.

Jalankan ls perintah tanpa argumen untuk membuat daftar semua konten (file dan folder) dari direktori kerja Anda.

ls

Di bawah ini adalah STDOUT dari perintah ls.

Selanjutnya, jalankan perintah di bawah ini untuk secara sengaja membuat daftar isi direktori (fake_directory ) yang tidak ada.

ls fake_directory

Anda akan mendapatkan pesan kesalahan yang mengatakan bahwa direktori tidak ada. Output ini adalah STDERR dari perintah ls.

Menyimpan Output Perintah ke File

Misalkan Anda ingin menyimpan STDOUT dari ls perintah ke file alih-alih hanya mencetak output ke terminal. Dalam hal ini, operator pengalihan (> ) sangat berguna.

1. Jalankan perintah berikut untuk menyimpan/mengalihkan (>) STDOUT dari perintah ls ke file bernama ls_stdout.txt. Karena perintah ini menyimpan output ke file, Anda tidak akan mendapatkan output di terminal Anda.

ls > ls_stdout.txt

2. Sekarang, jalankan perintah cat di bawah ini untuk melihat isi file ls_stdout.txt Anda.

cat ls_stdout.txt

3. Demikian pula, jalankan perintah berikut untuk menyimpan STDERR (2>) dari perintah ls ke file bernama ls_stderr.txt. Sekali lagi, Anda tidak akan mendapatkan output di terminal Anda karena output disimpan ke file.

ls fake_directory 2> ls_stderr.txt

4. Sekarang, jalankan perintah cat di bawah ini untuk melihat isi file ls_stderr.txt.

cat ls_stderr.txt

Di bawah ini, Anda dapat mengonfirmasi bahwa STDERR dari perintah ls telah disimpan ke ls_stderr.txt berkas.

5. Jalankan perintah di bawah ini untuk menyimpan (&>) STDOUT dan STDERR dari perintah ls ke file bernama ls_alloutput.txt.

Mengapa puas dengan satu ketika Anda dapat memiliki keduanya, bukan? Biasanya, Anda mungkin ingin menyimpan kedua keluaran dalam file yang sama untuk tujuan pemecahan masalah atau pencatatan.

ls &> ls_alloutput.txt

6. Terakhir, jalankan perintah cat berikut untuk melihat isi file ls_alloutput.txt

cat ls_alloutput.txt

Menghubungkan Program dengan Pipa

Selain hanya menyimpan output ke file, Anda dapat mencapai lebih banyak lagi dengan menggunakan pipa, seperti menghubungkan program. Dalam skenario dunia nyata, kemungkinan besar Anda akan menggunakan pipa bersama dengan pengalihan file dan tee perintah.

Sebuah pipa (| ) adalah mekanisme untuk komunikasi antar-proses yang memungkinkan Anda menghubungkan output satu perintah ke input perintah lain. Dengan kata lain, pipa mengambil STDOUT dari satu proses dan menghubungkan STDOUT tersebut ke STDIN dari proses lain.

Jalankan perintah grep berikut untuk menemukan semua baris yang berisi kata tcp di file /etc/services.

grep tcp /etc/services

Sekarang, jalankan grep yang sama perintah di bawah. Tapi kali ini, pipa output dari grep di atas perintah ke less perintah untuk menampilkan hasil pencarian satu layar pada satu waktu.

grep tcp /etc/services | less

Bagaimana cara kerja perpipaan? Seperti yang Anda lihat di bawah, ketika Anda menggunakan karakter pipa (|), output dari grep perintah disimpan di lokasi sementara. Outputnya kemudian diteruskan sebagai input ke less perintah.

Menggabungkan Unix Tee (tee ) Perintah, Pipa, dan Pengalihan

Sejauh ini, Anda telah mempelajari cara tee perintah, pipa, dan pengalihan berfungsi. Tetapi mengapa tidak menggunakan ketiganya bersama-sama untuk kontrol output perintah yang lebih baik?

Anda sebelumnya menggunakan perpipaan dengan pengalihan, dan itu adalah langkah besar. Kali ini, Anda akan menggunakan perpipaan dan tee perintah untuk mengirim output satu perintah ke perintah lain untuk diproses lebih lanjut.

Jalankan perintah di bawah ini untuk mengirim output dari ls perintah ke layar dan result.txt mengajukan. Keluaran dari ls selanjutnya disalurkan ke grep perintah untuk memfilter hanya baris yang mengandung kata ip .

ls | grep 'ip' | tee result.txt

Sekarang, jalankan cat perintah untuk memverifikasi isi hasil file .txt.

cat result.txt

Menambahkan Output ke File yang Ada

Anda sebelumnya menyimpan output dari perintah ke file, tetapi dapatkah Anda memperbarui file yang ada alih-alih membuat yang baru? Ya! Biarkan tee perintah lakukan keajaiban.

Secara default, tee perintah menimpa isi file yang ada. Namun dalam banyak kasus, Anda mungkin ingin menambahkan output dari perintah ke file yang sudah ada. Seperti mencatat semua kejadian server secara real-time ke file log.

Dengan fitur ini, file log akan ditambahkan dengan entri baru setiap kali suatu peristiwa terjadi di server.

Jalankan perintah di bawah ini untuk mengambil output dari perintah ls -lR dan menambahkan output (tee -a) ke result.txt konten file. Perintah ini tidak memberikan output karena Anda mengirim output perintah ke file.

ls -lR | tee -a result.txt

Sekarang, jalankan cat perintah untuk memverifikasi konten result.txt berkas.

cat result.txt

Seperti yang Anda lihat di bawah, output dari ls -lR perintah ditambahkan ke akhir result.txt berkas.

Menggunakan tee Perintah Bersama dengan sudo

Banyak perintah memerlukan hak istimewa yang lebih tinggi atau sudo akses, seperti melakukan modifikasi di dalam /etc direktori. Pertanyaannya adalah, apakah tee perintah bekerja bergandengan tangan dengan sudo ? Ya!

Mengawali sudo ke perintah tee memungkinkan pengguna non-root untuk menulis data ke file yang hanya dapat dimodifikasi oleh pengguna root. Misalnya, Anda ingin mengaktifkan pengguna ata untuk menulis data ke /etc/ata.conf mengajukan. Tetapi, pada saat yang sama, Anda tidak ingin memberikan ata kepada pengguna hak akses root.

1. Masuk ke mesin Anda dengan pengguna non-root.

2. Selanjutnya, jalankan perintah berikut tanpa sudo untuk menulis data teks ke file /etc/ata.conf.

echo "data" > tee /etc/ata.conf

Seperti yang Anda lihat di bawah, Anda akan mendapatkan kesalahan Izin ditolak sejak ata pengguna tidak memiliki akses tulis ke /etc/ata.conf berkas.

3. Jalankan perintah yang sama di bawah ini seperti yang Anda lakukan pada langkah kedua untuk menulis data teks ke file /etc/ata.conf. Tapi kali ini, tambahkan perintah sudo ke perintah tee. Melakukannya memungkinkan pengguna ata untuk menyelesaikan perintah (ditingkatkan) sebagai pengguna non-root.

echo "data" | sudo tee /etc/ata.conf

Terakhir, jalankan perintah cat di bawah ini untuk memverifikasi bahwa ata pengguna dapat menulis teks “data” ke /etc/ata.conf.

cat /etc/ata.conf

Kesimpulan

Sepanjang tutorial ini, Anda telah belajar cara menggunakan perintah tee Unix untuk menulis data ke file dan cara kerjanya dalam hubungannya dengan perintah lain. Pada titik ini, Anda harus memiliki kombinasi perintah yang kuat yang dapat Anda gunakan untuk mengelola input dan output di lingkungan baris perintah Linux.

Anda seperti koki sushi, sepenuhnya mengontrol bahan dan proporsi yang masuk ke setiap hidangan. Anda dapat menyesuaikan setiap pesanan dengan cepat agar sesuai dengan selera pelanggan Anda. Satu-satunya batasan adalah imajinasi Anda (dan mungkin ukuran jendela terminal Anda).

Sekarang, maju dan buat beberapa ramuan baris perintah yang menakjubkan!


Linux
  1. 8 tips untuk baris perintah Linux

  2. Perintah bash bang:Trik yang harus diketahui untuk baris perintah Linux

  3. Apa yang setara dengan perintah File Linux untuk windows?

  1. 5 Contoh Praktis Perintah Kepala di Linux

  2. Contoh Penting dari Perintah File di Linux

  3. 5 Contoh Praktis Perintah dd di Linux

  1. Cara Menggunakan Perintah tee Linux

  2. 16 Contoh Praktis perintah LS Linux untuk Pemula

  3. ls Perintah di Linux untuk Mendaftar File