Beberapa perintah terminal yang digabungkan menggantikan aplikasi Linux yang saya gunakan untuk pencarian, log, dan penggunaan disk


Selama beberapa tahun, saya adalah orang dengan selusin aplikasi GUI di desktop Linux saya. Mereka semua memiliki tujuan: satu untuk pencarian file, satu untuk melihat log, dan satu lagi untuk penggunaan disk. Saya terus-menerus beralih antar jendela untuk melakukan bagian berbeda dari alur kerja saya.

Namun, semuanya berubah saat saya mulai menghubungkan perintah terminal dasar seperti grep, find, du, jq, dan sort. Ini telah menjadi peningkatan berharga untuk alur kerja saya, meningkatkan efisiensi dan mengurangi waktu yang dihabiskan untuk beralih antara aplikasi GUI. Saya akan membimbing Anda melalui kombinasi tepat yang saya gunakan dan bagaimana itu telah membantu.

Pencarian menjadi lebih cepat

Temukan dan grep mengubah cara saya mencari file

Saya selalu percaya bahwa pencarian file seharusnya merupakan tugas yang sepenuhnya terpisah. Ini membuat saya nyaman membuka pengelola file saya, mencari, dan kemudian membuka aplikasi lain untuk mencari di dalam file setelahnya. Ini berhasil, tetapi masalahnya adalah ketidakefisienan.

Memahami bahwa pencarian terminal tidak berhenti pada menemukan file mengubah segalanya bagi saya. Dengan find, saya bisa menemukan file .conf dalam proyek tertentu dan mengalirkan hasilnya ke grep untuk menemukan jalur yang sudah usang. Selama saya menggunakan terminal, pencarian yang tampaknya terpisah ini tidak memerlukan membuka aplikasi kedua dan hanya membutuhkan perintah sederhana seperti ini:

find ~/Projects -name "*.conf" | xargs grep -l "localhost"

Menambahkan -l pada perintah grep Anda (misalnya xargs grep -l "localhost") hanya mengembalikan nama file alih-alih setiap baris yang cocok.

Saya menyadari bahwa saya bisa menerapkan pendekatan ini untuk menemukan setiap ISO, tangkapan layar lama, cadangan yang terlupakan, dan segala macam kekacauan. Bahkan ketika mereka tersebar di beberapa direktori, saya tidak perlu mencari folder demi folder.

Saya masih percaya bahwa untuk penelusuran santai, ada alasan untuk menggunakan alat pencarian GUI. Namun, mereka masih bergantung pada pengindeksan melalui alat seperti Baloo. Perbedaannya adalah find mencari langsung ke sistem berkas, sehingga bekerja bahkan ketika pengindeksan belum diatur.

Dengan begitu, yang membuat ini lebih berharga adalah bahwa saya bisa menjadikan pencarian sebagai bagian dari alur kerja yang lebih besar, karena hasilnya bisa langsung masuk ke perintah lain. Ini membuat terminal menjadi tempat termudah untuk mendapatkan jawaban di sistem Linux.

Catatan akhirnya masuk akal

Menyaring log langsung terasa lebih menyenangkan daripada melihat dasbor

Pengalaman telah menunjukkan kepada saya bahwa salah satu waktu terburuk untuk menavigasi menu di dalam penampil log GUI adalah setelah suatu layanan mengalami kerusakan. Inilah yang membuat pipeline terminal benar-benar mulai bekerja dengan baik bagi saya.

Saya beralih dari membuka aplikasi khusus ke menggunakan terminal. Saya mulai menonton log secara langsung dengan tail -f, memfilter hasilnya dengan grep, dan menggunakan awk untuk mengambil hanya yang penting. Pada awalnya, ini terasa seperti pekerjaan tambahan, tetapi setelah menatap tembok output log, semuanya mulai masuk akal. Misalnya, dengan perintah di bawah ini, saya terus-menerus menonton log autentikasi sistem dan langsung mencetak hanya baris yang menunjukkan upaya kata sandi gagal.

tail -f /var/log/auth.log | grep "Failed password"

Perintah ini telah menjadi andalanku untuk login SSH yang gagal dan kesalahan kontainer Docker secara real-time.

GNOME Logs membaca dari aliran journald yang sama yang diakses terminal—perbedaannya adalah presentasi, bukan informasi.

Menggunakan terminal membuat sesi pemecahan masalah menjadi jauh lebih tenang karena banyak gangguan yang tersembunyi, dan Anda bisa dengan mudah menemukan kegagalan yang berulang, kode kesalahan tertentu, dan pola waktu.

Masalah penyimpanan menjadi lebih jelas

du menunjukkan padaku apa yang ditunda oleh analis GUI

Sebuah paket Linux mungkin gagal saat pembaruan jika ruang penyimpanan habis, dan tidak selalu memberikan peringatan. Baobab dulunya adalah analis penggunaan disk GUI saya; ia memindai dan menampilkan peta visual. Masalahnya adalah meskipun memberikan informasi yang akurat, saya biasanya harus menunggu visualisasi sebelum bisa mengambil tindakan lebih lanjut. Tapi satu perintah du mengubah semuanya secara total.

du -h --max-depth=1 ~/ | sort -hr | head -10

Ini menunjukkan sepuluh folder terbesar di direktori home saya, diurutkan secara menurun (format yang mudah dibaca manusia), dan hasilnya muncul hampir seketika setelah Anda menekan Enter.

Ganti ~/ dengan / dan jalankan dengan sudo untuk mengaudit seluruh sistem (hanya perlu diingat bahwa /proc, /sys, dan /dev akan muncul tetapi tidak berisi data disk yang sebenarnya).

Anda mungkin awalnya merasa keluaran mentahnya asing, tetapi pola folder cepat menjadi dikenali. Ini adalah keluaran teks, dan Anda mendapatkan hasil tanpa server tampilan, rendering, atau penundaan.

Baobab memberikan informasi yang sama, tetapi saya akan selesai sebelum peta disk visualnya selesai dimuat.

jq menggantikan tab browser

Saya berhenti menempelkan JSON ke situs web pemformat






Saya tidak begitu bangga dengan alur kerja lama saya untuk menangani respons API. Itu melibatkan menyalin JSON, membuka situs web pemformat, menempelkan JSON, dan akhirnya menggulir untuk menemukan satu bidang. Mungkin terlihat tidak aneh, tapi ketika Anda harus melakukannya beberapa kali sehari, itu menjadi gesekan yang bertambah.

Ini adalah alur kerja yang sepenuhnya saya ganti dengan jq. Dengan filter dasar, saya bisa mengambil nama pengguna, cap waktu, atau kode status semuanya dari terminal. Misalnya, dengan perintah di bawah ini, saya mengambil profil GitHub dan mengambil hanya nama penggunanya:

curl -s https://api.github.com/users/octocat | jq '.login'

Ketika saya menggabungkan curl dengan jq, keluaran dari satu perintah menjadi masukan bagi perintah lainnya, dan saya melakukannya tanpa menyimpan file, mengganti jendela, atau membuka apa pun yang baru. Ini menjadi cara yang efisien untuk membersihkan log JSON yang berisik.

Meskipun ini benar-benar meningkatkan efisiensi, setelah beberapa saat, membuka tab browser untuk membaca JSON mulai terasa seperti jalan yang panjang.

Peningkatan nyata adalah berpikir dalam alur kerja

Kita sering melihat terminal sebagai alat yang kuat yang akan Anda gunakan setelah bertahun-tahun memakai Linux. Cara berpikir ini mungkin menahan Anda lebih lama dari yang diperlukan. Ini lebih tentang mengajukan pertanyaan yang berbeda daripada menghafal perintah.

Saya beralih dari "aplikasi mana yang menangani ini?" ke "apa yang ingin saya lakukan dengan data ini?" Ini adalah perubahan signifikan untuk alur kerja harian karena aliran data hampir terasa seperti menulis sendiri jika Anda mulai melihat pencarian file, aliran log, atau respons JSON sebagai data yang bisa Anda bentuk.

Artinya, Anda tidak harus mengganti setiap aplikasi sekaligus; biasanya, memperbarui satu alur kerja pada satu waktu adalah yang terbaik.

Artikel terkait