- Linux'ta çalışma verimliliğini artıran çeşitli modern komut satırı araçlarının tanıtımı
- Geleneksel Unix komutlarını modern biçimde ikame eden veya yeteneklerini geliştiren, ayrıca Rust·Go gibi dillerle geliştirilmiş performans odaklı birçok araç içeriyor
Dosya görüntüleme ve gezinme araçları
bat : cat komutunun syntax highlighting ve git entegrasyonu güçlendirilmiş sürümü
exa : ls/tree yerine geçen modern bir dosya listeleme görüntüleyicisi, ancak şu anda bakımının durdurulmuş durumda
eza : exa'nın bir fork'u olarak modern ls/tree sunar
lsd : yeni nesil ls; mevcut uyumluluğu ve daha şık çıktıyı destekler
broot : gezinmeyi geliştiren ağaç yapılı dosya gezgini
nnn : hafif ve hızlı terminal dosya yöneticisi
Dosya·dizin boyutu analizi
ncdu : metin tabanlı, sezgisel bir du arayüzü sunar
dust : Rust ile yazılmış, daha kolay bir du alternatifi
duf : klasik df'ye göre geliştirilmiş kullanılabilirlik sunan disk kullanım analizi aracı
Dosya ve kod arama
fd : yalın ve hızlı bir find alternatifi; kullanılabilirliği çok iyi
ripgrep : gitignore destekli ultra hızlı grep alternatifi
ag : ack'e benzer ama daha hızlı bir kod arama aracı
fzf : genel amaçlı bulanık arama aracı. Pipeline'larda ve çeşitli yerlerde kullanılabilir
bfs : breadth-first tabanlı bir find alternatifi
Terminal içi Git/diff görüntüleyicileri
delta : git ve diff sonuçlarını yüksek okunabilirlikle görselleştirir
Komut geçmişi ve işleme
mcfly : shell geçmişi arama ve gezinmesini çarpıcı biçimde geliştirir. Daha iyi arama kalitesi ve sezgisel bir UI sunar
Veri işleme
choose : cut ve bazı awk kullanımlarına göre daha sezgisel ve hızlı bir alternatif
jq : JSON'e özel bir sed gibi kullanılan veri ayrıştırıcı
sd : daha tanıdık bir find/replace deneyimi sunan, sed alternatifi araç
Sistem/süreç izleme
bottom : çapraz platform grafik tabanlı sistem ve süreç monitörü
glances : top/htop'un geliştirilmiş sürümü
gtop : terminal panosu tarzı sistem monitörü
procs : Rust ile yazılmış ps alternatifi komut
Benchmark ve ağ
hyperfine : CLI benchmark otomasyon aracı
gping : grafik çıktı özelliği içeren bir ping aracı
HTTP istemcileri
httpie : modern ve kullanıcı dostu bir CLI HTTP istemcisi. Geliştirici API testleri için uygun
curlie : curl'ün gücünü httpie'nin kullanılabilirliğiyle birleştiren araç
xh : performans odaklı bir httpie alternatifi
Dizin geçişi·editör
zoxide : z'den esinlenen akıllı cd komutu
micro : modern özelliklere sahip terminal metin editörü
Yeni ortaya çıkan CLI yardımcı araçları
up : gerçek zamanlı önizleme pipeline aracı; komut çıktısı anında görülebilir
Yardım·dokümantasyon araçları
ManKier : özet biçimli man sayfaları, temiz komut açıklamaları
tldr : kısa, örnek odaklı man sayfası özeti
tealdeer : Rust tabanlı tldr implementasyonu, hızlı çalışma sunar
explainshell : komut argümanlarını otomatik analiz edip anlamlarını görsel olarak açıklar
cheat.sh : tldr ile cheatsheet'i birleştiren çevrimiçi yardım servisi
GUI araçları
baobab : GUI tabanlı disk kullanım analiz aracı
stacer : sistem optimizasyonu ve izleme için GUI aracı, servis yönetimi de içerir
1 yorum
Hacker News yorumu
Bu tür araçlar nesnel olarak daha iyi olabilir ama ne zaman yeni bir OS kursam, bir VM ayağa kaldırsam ya da SSH ile bağlansam, bu araçları her seferinde yeniden kurmanın bitmeyen bir eziyet olduğunu fark ettim. Her ortamda ayrı ayrı ayarlamak yorucu; bir yerde yeni araçları, başka bir yerde geleneksel araçları karışık kullanmak da istemiyorum. Klasik araçları gerçekten iyi öğrenmek, hayatı en rahat ettiren yol
Bazı insanlar zamanlarının çoğunu kendi bilgisayarlarında geçiriyor; bu yüzden bu tür kullanım kolaylığı iyileştirmelerinin değeri büyük. Yine de klasik araçları da belli ölçüde kullanmayı biliyorlar, bu yüzden arada başka sunucularda çalışmaları gerektiğinde de yeterli oluyor. Herkes bütün gün birçok farklı sunucuya giriş yapmak zorunda olan bir sistem yöneticisi değil
Bazı araçlar o kadar daha iyi ki, biraz zahmetli kurulsa bile buna fazlasıyla değiyor. Klasik araçları iyi kullanırım ama
fdya daripgrepher zaman daha iyiNix’i gerçekten sevmemin nedeni, neredeyse her ortamda aynı kurulumu sağlayabilmesi (kullandığım ortam linux ya da macOS olduğu sürece, sadece bu ikisini dert ediyorum). Root yetkisi gerektirmeyen çeşitli Nix kurulum yöntemleri var; bu yüzden her yerde kendi ortamımı aynen oluşturabiliyorum. Elbette Nix olmasa da klasik araçlar gayet kullanılabilir. Ya o ya bu diye bir seçim yapmak gerekmiyor; ikisine de sahip olabilirsiniz
Yeni bir OS kurarken zaten gerekli paketleri
apt-get,pacman,dnf,brewgibi araçlarla yüklüyorsunuz; kendi tarayıcınızı, editörünüzü vb. de ayrıca kuruyorsunuz. SSH ile bağlanınca GUI kullanamıyorsunuz diye bu, GUI araçlardan kaçınmak için bir sebep değil. Kişisel ortamla ortak ortamda araç setinin farklı olması bana büyük bir sorun gibi gelmiyor. Örneğinbat,cat’in tam yerine geçmekten çok sözdizimi vurgulaması ekleyerek hayatı kolaylaştırıyor. Kurulu değilse, kullanmazsınız olur biterBence UNIX’in “tek işi iyi yap” felsefesi açısından bakınca, daha iyi bir alternatif çıktığında onunla kolayca yer değiştirilebilmesi zaten bu basit yardımcı programların özünü oluşturuyor. Kariyer açısından önce klasik araçları öğrenmek doğru, ama yeni alternatifleri de mutlaka öğrenmek gerekir diye düşünüyorum.
batya daezayerine,fd(findalternatifi),sd(sedalternatifi) gibi zaman kazandıran araçlar bana gerçekten daha faydalı geliyorBirden fazla ağda ve müşteri ortamlarında yüzlerce sunucuya bağlanan biri olarak, özel araçlar kullanmanın neredeyse hiçbir değeri yok. Çünkü ortamların %90’ında bu araçlar kurulu değil. Ben
ansible-configiçine sadece birkaç şey ekleyip otomasyonla dağıtıyorum ama listeyi çok kısa tutuyorum. Yönettiğim sistemlerin %95’i Debian ya da Ubuntu olduğu için temel seviye zaten büyük ölçüde aynı; üstüne sadeceack,etckeeper,vim,pv,dstatgibi birkaç şey ekliyorumBurada kilit nokta “sunucu” kısmı. Sysadmin’lere yönelik hafif iyileştirilmiş programların çoğu çok değerli olmayabilir ama bazıları geliştirme ortamında kullanılan gerçek dev araçları; dolayısıyla bunları sadece kod yazdığınız az sayıdaki makineye kurmanız yeterli.
ripgrep(harika bir recursive grep),jq(Unix’in temel araç setinde alternatifi olmayan bir JSON işlemcisi),hyperfine(benchmark aracı) buna iyi örneklerWindows ve Linux arasında gidip gelerek çalıştığım için
ripgrepgibi güçlü çapraz platform araçları gerçekten çok kullanışlıBu tür uygulamaları uzak SSH oturumuna otomatik taşıyan bir araç ya da SSH eklentisi var mı diye merak ediyorum. Küçük binary’lerse geçici klasöre kopyalayıp kullanmak mümkün olabilir; bu süreci otomatikleştirmek de hayal edilebilir. Ama güvenlik açısından sorun çıkarır mı, ek yetkiler gerekir mi, asıl mesele bu. Sonuçta belirleyici olan şey bu uygulamaların taşınabilirliği. Ben de bunu sık sık düşünüyorum
emacsneredeyse başlı başına bir işletim sistemi gibi çalışıyor; bu sayede hangi sistem olursa olsun tanıdık bir ortama sahip olabiliyorsunuz. “GNU is my operating system, linux is just the current kernel” sözü de buradan geliyor. Deneyimli bir admin olarak, Linux öğrenmeye yeni başlayan birine neden önceinfokomutuna bakmasını ve o kılavuzu baştan sona okumasını önerdiğimi bu açıklıyor. Bunu yaparsa çoğu yöneticinin çok önüne geçebilir. Yerleşik araçların neler olduğunu bilirseniz kılavuzlar da çok iyi olduğu için script yazmak kolaylaşır; Linux felsefesinin özü de tam olarak budur. Eskidennanobile olmadan sadecevibulunan zamanlar vardı ama bugünlerde CI/CD otomasyonuyla bir TUI editörü eklemek de kolayBu “ben şöyle biriyim” tarzı yorumlara pek katılamıyorum. Uzağa bağlandığı sistemlere özel araç kurmuyor olması kimsenin umrunda olmayabilir. Söylenmek istenen şey, en azından yerel bilgisayarınıza bu araçları kurup avantajlarından yararlanmanız
Bu tabloda “bu araç hangi sorunu çözüyor?” diye ek bir sütun olsa iyi olurdu diye düşünüyorum. Ayrıca “Rust ile yazıldı” gibi ifadelerin ayırt edici bir özellik olduğunu da düşünmüyorum
Bir şirket toplantısında “Go ile yazıldı” ifadesinin ayırt edici özellik diye sunulmasını dinleyip afalladığım olmuştu. #facepalm
Tablodaki birçok öğe aslında “syntax highlight”, “ncurses interface”, “more intuitive” gibi gerçek sorunlara değiniyor. Ama “Rust ile yazıldı”, “modern”, “better” gibi ifadeler bence yardımcı olmuyor
Çoğu aracın birincil amacı UX’i iyileştirmek
GPL dışı lisans kullanmak da ayırt edici bir özellik değil
Bu araçların önemli bir kısmının Windows’ta da çalışabilmesi güzel
Böyle araç listeleri her zaman keyifli. Muhtemelen çoğu insan burada yer alan araçlardan en az bir ya da ikisini iyi kullanabilir. Benim için
ripgrepvejqvazgeçilmez.ripgrep,grepalternatifi olarak en iyi drop-in seçenek;jqise tam da ihtiyaç duyduğum bir problemi çözüyor.lsdvedust’ı da denemeyi düşünüyorum. Yeni bir aracın bana doğrudan gerekli olmaması önemli değil; insanların bu tür araçlara zaman harcamasını takdir ediyorum. Topluluğun genel araç kutusunu biraz daha iyi hâle getirmek gerçekten etkileyiciİlk seçeceğim şey muhtemelen
fzfolurdu.rgya dajq’dan çok daha fazla tercih ediyorumripgrep,grepile aynı şekilde davranmadığı için aslında tam bir drop-in alternatifi değil. Harika bir program ama tamamen uyumlu da değilBenim gibi Linux admin’lerinin her birinin böyle sıkı sıkıya derlenmiş listeleri vardır. Ben GPL tabanlı bir stack etrafında kendi tarafımı kurdum ve özellikle bu ikrima.dev formatını seviyorum
Ben terminalde yaşıyorum ama bu araçlar ya benim şu anki sorunlarımı çözmüyor, ya sistemimde kurulu olmuyor, ama nedense on binlerce GitHub yıldızına sahip oluyor. Bu popülerliğin sebebini gerçekten anlayamıyorum
Müzik arşivinin içinde yaşayan biri de kendi zevkine uymayan ya da arşivinde olmayan bir sanatçı milyonlarca albüm sattığında şaşırabilir. Şaka bir yana, bu araçlardan herhangi birini gerçekten deneyip denemediğinizi sormak isterim. Ben de eskiden
vim’in neden kullanıldığını anlamazdım; ama düzgün kullanınca nedenini anladımfzfkullanmıyor musunuz? Terminal hayatınız çok zor olmalı. Komutları doğrudan çalıştırmaktan ziyade, çeşitli shell eklentileriyleCtrl+Rüzerindenbash_history,Ctrl+Tile de mevcut dizindeki dosyalar üzerinde fuzzy search yapabilmek gerçekten çok faydalıTemel Unix araç seti o kadar sağlam ki, sadece varsayılan araçlarla da işinizi gayet görebilirsiniz. Birçok alternatif araç daha iyi olabilir ama zorunlu değiller; ayrıca çoğu varsayılan kurulumla gelmiyor
Merakımdan soruyorum: yerleşik Unix araçlarıyla gizli dosyaları (
.gitvb.) yok sayıp yalnızca belirli uzantılarda recursive grep yapmanın zarif bir yolu var mı? Meselarg -g '*.foo' barbenim çok sık kullandığım bir desen.fdile regex ya da glob’a uyan dosyaları bulmak da aynı şekilde. Temel araçlarla bunun temiz bir yolunu bulamadımTerminalde bütün gün ne yaptığınızı merak ediyorum da, araç setinizi iyileştirme isteğiniz hiç olmuyor mu? Yoksa bütün araçları kendiniz mi yazıyorsunuz diye sormak isterim
Karanlık modda bağlantı metni çok az görünüyor, okumak zorlaşıyor
Bence
jq, mevcut araçlarla gerçekten çözülemeyen somut bir problemi çözen tek araç. Geri kalanların çoğu sadece sözdizimi, performans, vurgulama ya da Rust ile yazılmış olma gibi farklar sunuyorKeşke tek bir ekip, parametreler, renkler, tablolar vb. tasarımı tutarlı olan bir araç “suite”i çıkarsa
Uzun süre
htop’utop’tan daha erişilebilir olduğu için kullandım amahtopvarsayılan olarak kernel thread’lerini göstermediğinden sorun kaynağını bulmamı zorlaştırdı. Sonra tekrartop’a döndüm; çünkü tüm bilgiyi gösteriyor ve daha güvenilir.htop/btopgibi arayüzlerin biraz gösterişten ibaret olduğunu düşünüyorumBu yazı 2023 tarihli. “Modern araçların” çoğu muhtemelen çoktan güncellenmiştir, hatta yeni ve daha popüler olanlar çıkmış olabilir
Araç sayısı çok olduğu için, yarısı bile hayatta kalsa bu bile yeterince değerli
Benim deneyimim tam tersi. Bu araçların çoğu, zaman ayırıp iyice öğrenirseniz inanılmaz güçlü olan GNU temel araçlarını bir kez daha “yeniden icat etmekten” ibaret gibi geliyor bana