- Memperkenalkan berbagai alat command-line modern yang meningkatkan efisiensi kerja di Linux
- Banyak di antaranya menggantikan perintah Unix tradisional secara modern atau memperluas fungsinya, dan mencakup berbagai alat berorientasi performa yang dikembangkan dengan Rust, Go, dan lainnya
Alat untuk melihat dan menjelajah file
bat : versi cat yang ditingkatkan dengan syntax highlighting dan integrasi git
exa : penampil daftar file modern pengganti ls/tree, namun saat ini sudah tidak lagi dipelihara
eza : fork dari exa, menyediakan ls/tree modern
lsd : ls generasi berikutnya yang mendukung kompatibilitas lama dan output yang lebih rapi
broot : penjelajah file berbentuk tree dengan navigasi yang ditingkatkan
nnn : file manager terminal yang ringan dan cepat
Analisis ukuran file dan direktori
ncdu : menyediakan antarmuka du berbasis teks yang intuitif
dust : pengganti du yang lebih mudah dan diimplementasikan dengan Rust
duf : alat analisis penggunaan disk dengan kemudahan penggunaan yang lebih baik dibanding df
Pencarian file dan kode
fd : pengganti find yang ringkas dan cepat dengan usability yang sangat baik
ripgrep : pengganti grep super cepat dengan dukungan gitignore
ag : alat pencarian kode yang mirip ack, tetapi lebih cepat
fzf : pencari fuzzy serbaguna. Dapat digunakan di pipeline dan berbagai tempat lain
bfs : pengganti find berbasis breadth-first
Penampil Git/diff di terminal
delta : memvisualisasikan hasil git dan diff agar lebih mudah dibaca
Riwayat dan pemrosesan perintah
mcfly : secara inovatif meningkatkan pencarian dan penelusuran riwayat shell. Menawarkan kualitas pencarian yang lebih baik dan UI yang intuitif
Pemrosesan data
choose : alternatif yang lebih intuitif dan cepat untuk cut dan sebagian fungsi awk
jq : parser data yang digunakan seperti sed khusus JSON
sd : find/replace yang lebih ramah, alat pengganti sed
Pemantauan sistem/proses
bottom : monitor sistem dan proses berbasis grafis lintas platform
glances : versi yang ditingkatkan dari top/htop
gtop : monitor sistem bergaya dashboard terminal
procs : perintah pengganti ps yang ditulis dengan Rust
Benchmarking dan jaringan
hyperfine : alat otomatisasi benchmarking CLI
gping : alat ping dengan fitur output grafik
Klien HTTP
httpie : klien HTTP CLI yang modern dan ramah pengguna. Cocok untuk pengujian API developer
curlie : alat yang menggabungkan kekuatan curl dengan kemudahan penggunaan httpie
xh : alat pengganti httpie yang berfokus pada performa
Perpindahan direktori dan editor
zoxide : perintah cd cerdas yang terinspirasi dari z
micro : editor teks terminal dengan fitur modern
Utilitas CLI yang baru muncul
up : alat pipeline dengan pratinjau real-time, memungkinkan output perintah langsung dilihat
Alat bantuan dan dokumentasi
ManKier : halaman man bergaya ringkasan, dengan penjelasan perintah yang rapi
tldr : ringkasan halaman man yang singkat dan berfokus pada contoh
tealdeer : implementasi tldr berbasis Rust dengan kecepatan eksekusi tinggi
explainshell : menganalisis argumen perintah secara otomatis dan menjelaskan maknanya secara visual
cheat.sh : layanan bantuan online yang menggabungkan tldr dan cheatsheet
Alat GUI
baobab : penganalisis penggunaan disk berbasis GUI
stacer : alat GUI untuk optimasi dan pemantauan sistem, termasuk manajemen layanan
1 komentar
Pendapat Hacker News
Alat-alat seperti ini mungkin secara objektif lebih unggul, tetapi saya sadar bahwa setiap kali memasang OS baru, menyalakan VM, atau masuk lewat SSH, menyiapkan alat-alat ini terus-menerus adalah penderitaan tanpa akhir. Menyiapkannya di setiap lingkungan itu melelahkan, dan saya juga tidak ingin mencampur alat baru di satu tempat lalu alat tradisional di tempat lain. Menguasai alat klasik dengan baik adalah cara yang paling memudahkan hidup
Ada orang yang menghabiskan sebagian besar waktunya di komputernya sendiri, jadi nilai dari peningkatan kenyamanan seperti ini besar. Meski begitu, mereka tetap cukup bisa memakai alat klasik, jadi sesekali mengerjakan server lain juga tidak masalah. Tidak semua orang adalah sysadmin yang harus login ke banyak server berbeda sepanjang hari
Beberapa alat memang jauh lebih baik, jadi walau agak merepotkan untuk dipasang, nilainya tetap sepadan. Saya cukup mahir memakai alat klasik, tetapi fd atau ripgrep tetap selalu lebih baik
Alasan saya sangat menyukai Nix adalah karena saya bisa mendapatkan setup yang sama hampir di semua lingkungan (selama lingkungan yang saya pakai adalah Linux atau macOS, hanya dua itu yang saya pedulikan). Ada beberapa cara memasang Nix tanpa hak akses root, jadi saya bisa membawa lingkungan saya ke mana saja. Tentu saja tanpa Nix pun alat klasik tetap sangat bisa dipakai. Ini bukan soal harus memilih salah satu; Anda bisa punya keduanya
Saat memasang OS baru, toh saya tetap harus memasang paket yang dibutuhkan dengan apt-get, pacman, dnf, brew, dan semacamnya, lalu memasang browser atau editor pribadi saya juga secara terpisah. Saat masuk lewat SSH saya juga tidak bisa memakai GUI, tetapi itu bukan alasan untuk menghindari alat GUI. Saya tidak menganggap masalah besar bila kombinasi alat di lingkungan pribadi dan lingkungan bersama berbeda. Misalnya, bat tidak sepenuhnya menggantikan cat, tetapi menambahkan syntax highlighting yang membuat hidup lebih nyaman. Kalau tidak terpasang, ya tinggal tidak dipakai
Menurut saya, jika dilihat dari filosofi UNIX “lakukan satu hal dengan baik”, inti dari utilitas sederhana semacam ini justru adalah bahwa ketika ada alternatif yang lebih unggul, ia bisa diganti dengan mudah. Untuk karier, memang benar kita perlu mempelajari alat klasik terlebih dahulu, tetapi saya juga merasa alternatif baru wajib dipelajari. Bagi saya, dibanding bat atau eza, alternatif seperti fd (pengganti find) dan sd (pengganti sed) jauh lebih membantu karena menghemat waktu
Dari sudut pandang orang yang harus terhubung ke ratusan server di berbagai jaringan dan pelanggan, hampir tidak ada nilai dalam memakai alat kustom. Karena di 90% lingkungan alat-alat seperti ini tidak terpasang. Saya menambahkan hanya beberapa hal ke ansible-config lalu mendistribusikannya lewat otomatisasi, tetapi daftar itu saya jaga tetap sangat ringkas. 95% sistem yang saya kelola adalah Debian atau Ubuntu, jadi baseline-nya hampir sama, dan saya hanya menambahkan hal-hal seperti ack, etckeeper, vim, pv, dstat
Kata kuncinya di sini adalah "server". Banyak program yang sedikit diperbaiki untuk sysadmin mungkin tidak terlalu bernilai, tetapi sebagian adalah devtool sungguhan untuk lingkungan pengembangan, jadi cukup dipasang pada sedikit mesin tempat kita benar-benar menulis kode. Contoh yang menonjol adalah ripgrep (recursive grep yang hebat), jq (pemroses JSON yang tidak punya padanan di toolkit dasar Unix), dan hyperfine (benchmarking)
Karena saya bekerja bolak-balik antara Windows dan Linux, alat lintas platform yang hebat seperti ripgrep sangat nyaman
Saya penasaran apakah benar ada alat atau ekstensi SSH yang bisa otomatis membawa aplikasi seperti ini ke sesi SSH jarak jauh. Jika binarinya kecil, mungkin bisa disalin ke folder temp lalu dipakai, dan saya bisa membayangkan proses itu diotomatisasi. Tapi pertanyaannya adalah apakah ada masalah keamanan, dan apakah butuh hak akses tambahan. Pada akhirnya, portabilitas aplikasi-aplikasi ini adalah inti persoalannya. Saya juga sering memikirkan hal ini
emacs hampir berfungsi seperti sebuah sistem operasi, jadi di sistem apa pun Anda bisa mendapatkan lingkungan yang familier. Dari situlah muncul ungkapan "GNU is my operating system, linux is just the current kernel". Dari sudut pandang admin veteran, itulah alasan saya menyarankan orang yang baru belajar Linux untuk mulai dengan melihat perintah "info" dan membaca manualnya sampai selesai. Dengan begitu Anda bisa jauh melampaui kebanyakan admin lain. Jika Anda tahu alat bawaan apa saja yang ada, manualnya juga bagus sehingga penulisan skrip menjadi mudah, dan itulah inti filosofi Linux. Dulu pernah ada masa tanpa nano, hanya vi, tetapi sekarang menambahkan editor TUI lewat otomatisasi CI/CD pun mudah
Saya kurang bisa relate dengan komentar model “saya ini orang seperti apa”. Banyak orang memang tidak peduli bahwa alat kustom tidak dipasang di remote. Maksud komentarnya adalah: pasang saja alat seperti ini setidaknya di komputer lokal Anda dan dapatkan manfaatnya
Saya rasa akan bagus kalau tabel ini punya kolom tambahan “alat ini menyelesaikan masalah apa”. Dan saya tidak menganggap hal seperti ‘diimplementasikan dengan Rust’ sebagai pembeda
Saya pernah punya pengalaman absurd di rapat kantor saat mendengar penjelasan bahwa “ditulis dengan Go” adalah pembeda. #facepalm
Banyak item di tabel memang menyebut masalah nyata seperti “syntax highlight”, “antarmuka ncurses”, “lebih intuitif”. Tetapi ungkapan seperti “ditulis dengan Rust”, “modern”, “better” menurut saya tidak membantu
Tujuan utama sebagian besar alat ini adalah peningkatan UX
Memakai lisensi non-GPL juga bukan pembeda
Banyak dari alat-alat ini juga bagus karena bisa dipakai di Windows
Daftar alat seperti ini selalu menyenangkan. Kebanyakan orang mungkin akan menemukan satu atau dua alat di sini yang benar-benar berguna. Secara pribadi, ripgrep dan jq itu wajib. ripgrep adalah pengganti grep terbaik yang paling mendekati drop-in, dan jq menyelesaikan masalah yang benar-benar saya butuhkan. Saya juga mungkin akan mencoba lsd dan dust. Bahkan kalau alat baru itu tidak langsung saya butuhkan, saya tetap berterima kasih karena ada orang yang mencurahkan waktu untuk membuatnya. Upaya untuk sedikit demi sedikit memperbaiki toolbox seluruh komunitas itu luar biasa
Saya mungkin akan memilih fzf lebih dulu. Saya jauh lebih menyukainya daripada rg atau jq
ripgrep berbeda perilakunya dari grep, jadi sebenarnya bukan pengganti drop-in. Program ini hebat, tetapi tidak sepenuhnya kompatibel
Admin Linux seperti saya biasanya punya daftar ketat seperti ini masing-masing. Saya membangun kubu saya terutama di atas stack berbasis GPL, dan format ikrima.dev ini sangat saya sukai
Saya hidup di terminal, tetapi alat-alat ini tidak menyelesaikan masalah yang saya butuhkan saat ini, atau tidak terpasang di sistem saya, tetapi entah kenapa punya puluhan ribu bintang GitHub. Saya benar-benar tidak paham kenapa bisa sepopuler itu
Orang yang hidup di dalam perpustakaan musik juga bisa bingung ketika artis yang bukan seleranya atau tidak ada di perpustakaannya ternyata menjual jutaan kopi. Di luar candaan itu, saya ingin bertanya apakah Anda pernah benar-benar mencoba alat-alat seperti ini. Dulu saya juga tidak paham kenapa orang memakai vim, tetapi setelah benar-benar memakainya saya jadi mengerti
Tidak pakai fzf? Hidup di terminal pasti berat sekali. Bukan cuma menjalankan langsung, tapi lewat plugin shell Anda bisa fuzzy search
bash_historydengan Ctrl+R dan file di direktori saat ini dengan Ctrl+T, jadi benar-benar bergunaToolkit inti Unix sudah sangat solid, jadi pekerjaan tetap bisa dilakukan hanya dengan alat bawaan. Banyak alat pengganti memang lebih baik, tetapi tidak benar-benar wajib, dan lagi pula kebanyakan tidak terpasang secara default
Sekadar penasaran, adakah cara elegan dengan alat Unix bawaan saja untuk melakukan recursive grep pada ekstensi tertentu sambil mengabaikan file tersembunyi (seperti .git)? Misalnya, perintah
rg -g '*.foo' baradalah pola yang sangat sering saya pakai. Hal yang sama juga berlaku untuk mencari file dengan fd berdasarkan regex atau glob. Saya belum menemukan cara yang rapi hanya dengan alat bawaanSaya penasaran kerja seperti apa yang Anda lakukan seharian di terminal sampai tidak merasa perlu meningkatkan toolkit. Apakah Anda menulis semua alat sendiri?
Dalam dark mode, teks tautannya terlalu sulit terlihat jadi susah dibaca
Saya rasa hanya jq yang benar-benar menyelesaikan masalah nyata yang tidak bisa diselesaikan alat lama. Sisanya kebanyakan hanya perbedaan preferensi, performa, highlighting, atau implementasi Rust
Saya berharap ada satu tim yang merilis “suite” alat dengan desain yang konsisten dalam hal parameter, warna, tabel, dan sebagainya
Sudah lama saya memakai htop karena terasa lebih mudah diakses daripada top, tetapi ternyata htop secara default tidak menampilkan kernel thread, dan itu sempat menghambat saya saat mencari penyebab gangguan. Sejak itu saya kembali ke top karena menampilkan semua informasi dan lebih bisa dipercaya. UI seperti htop/btop menurut saya cenderung sekadar showmanship
Artikel ini dari 2023. Sebagian besar “alat modern” itu mungkin sudah diperbarui, dan mungkin juga sudah ada yang baru dan lebih trendi
Karena alatnya banyak, bahkan kalau hanya separuh yang bertahan pun tetap sangat bernilai
Pengalaman saya justru kebalikannya. Sebagian besar alat ini hanyalah “penemuan ulang” dari GNU coreutils yang sebenarnya sangat kuat, kalau saja Anda mau meluangkan waktu untuk benar-benar mempelajarinya