Yanıtlar:
GNU ekranı - çok sayıda sistemi yönetirken ve bir düzine terminal penceresini açmak istemiyorsanız önemlidir.
Bazıları onsuz yaşayamayacağımı biliyorum.
tee - aynı anda STDOUT (standart çıktı) ve bir dosyaya yazmaya izin verir. Bilgileri görüntülemek ve daha sonra kaydetmek için harika.
Sayfa başı - UNIX'in görev yöneticisi, sisteme harika bir genel bakış sağlar.
tail -f - bir dosya büyüdükçe eklenen verileri görüntülemenizi sağlar, bir sunucudaki günlük dosyalarını izlemek için harikadır.
grep - Global Regular Expression Print, dosyalardaki verileri aramak için mükemmeldir.
df - geçerli dosya sistemlerinin disk kullanımını bildirir.
du - belirli bir dosya / dizinin disk kullanımını rapor eder.
daha az - man sayfalarını görüntülemek için gerekli! ayrıca komutların çıktısını kolayca aranabilir bir şekilde görüntülemek için de kullanışlıdır.
vim / Emacs / nano / pico / ed - seçtiğiniz metin editörünüz ne olursa olsun, niçin ihtiyaç duyulduğunu kendiliğinden açıklar.
more
ya less
da her zaman deneyebilirsin most
.
htop
bir "daha iyi" sürümüdür top
.
lsof (umount'd olmaktan bir cihaz engelliyor anlamaya çalışırken kullanışlı) işlemleri bir dosya veya dizini kullanarak hangi belirlemek için
netstat , hangi işlemlerin ağ bağlantılarını kullandığını belirlemek için (özellikle hangi arka planın belirli bir bağlantı noktasına bağlandığını anlamaya çalışırken yararlıdır)
Tüm temel araçları öğren, fakat Perl'i öğren.
Perl, metni işlemek için idealdir ve un * x operatörleri metin dosyaları, borular, giriş ve çıkışlarda yaşadığından Perl mükemmel bir seçimdir.
Eklenen bonus Perl çapraz platformdur ve eğer bir windows kutusundan bazı işler yapmak zorundaysanız, kolayca kurulabilen (zaten sunucuya bir Perl dizini bırakmanız) bildiğiniz bir dil vardır.
Ve bu düşünce treninde, Cygwin'i de edinin. Eğer bir un * x admin iseniz ve ls, rm, grep, sed, tail vb. İçeren bir pencere kutusunda (masaüstünüzde bile) çalışmak zorundaysanız, işletim sistemlerini değiştirirken size zaman kazandırır.
Modern sistemlerin unutulmuş dedeleri komut dosyası yazıyor. Perl'in sevginin çoğunu aldığını biliyorum (Bash komut dosyası, Python, Ruby ve [en sevdiğiniz komut dosyası dilini buraya ekleyin) ve beni yanlış anlamayın, Perl'i seviyorum. Neredeyse her gün kullanıyorum.
Ancak sed ve awk unutulmamalı, gözden kaçırılmamalı veya ihmal edilmemelidir. Birçok durumda, sed ve awk iş için en iyi araçtır. Hızlı örnekler sed ile komut satırı filtreleme ve awk ile hızlı ve kirli günlük işlemedir. Her ikisi de Perl'de yapılabilir, ancak daha fazla çalışma ve geliştirme süresi gerektirir.
Netcat.
Ağ, dedikleri gibi, ordu çakısı swiss.
Hızlı komut dosyaları, otomasyon vb. İçin:
* NIX sunucunuza bağlanmak için:
Listelenen araçların çoğunu kullanıyorum, ancak işte henüz kimsenin dokunmadığı bir tane:
Kukla - sistem yönetimi görevlerini otomatikleştirmek için sistem
Henüz bahsetmediğim birkaç kullanışlı araç:
expect
ClusterSSH, komutların ssh bağlantısı üzerinden birden çok sunucuda etkileşimli olarak çalışmasına izin vermek için tek bir grafik konsol penceresi aracılığıyla bir dizi xterm penceresini kontrol eder.
pv: Yeniden yönlendirilebilecek uzun işlemlerin ilerlemesini görüntüler. http://www.ivarch.com/programs/pv.shtml
Kullanışlı olduktan sonra, yaşlanacak bir şeyi izlemek istersiniz, örneğin bir ham blok cihazını ağ üzerinden kopyalamak / sıkıştırmak gibi (8Gb netbook'umun paranoya yedeklemesini dosya sistemi ayarlarıyla yapılan ince ayar gibi büyük bir şeyle uğraşmadan önce alırım).
Ayrıca: ssh, rsync, screen, htop ve yukarıdaki kullanıcıların belirttiği netcat için ikinci oy kullanacağım - hepsi pv'den daha önemli, ancak pv henüz belirtilmedi. Aslında pv, netcat'e veya netcat'den malzeme alırken sıklıkla yararlı bir ilavedir.
pv
kullanışlı bir araç olabilir, ancak aşırı kullanılmasına dikkat edin. Verilerin içinden geçirilmesinin kesinlikle bir performans etkisi vardır (tüm verilerin başka bir programdan geçmesi gerekir ). Son işimde çok fazla günlük işleme yaptık. Adamlardan biri, günlük işlem betiğine pv koymaya karar verdi, biz onların işlem süresine yaklaşık% 15 eklediğini keşfedene kadar. Şimdi sadece birkaç dakikadan az süren veya mevcut bir kaynak sınırlaması olan (yavaş bir ağ bağlantısını geçmek gibi) işler için kullanılır.
pv
CPU / bellek bağlı değil de disk veya ağ G / Ç bağlı). Aynı argüman da aşırı kullanımın karşıtı olan anahtardır cat
(bazen sadece soldan sağa güzel şeyler okumak için aslında gerekmediğinde kedi kullanıyorum, ancak boru ve bağlam anahtarlama yoluyla kopyalanan ekstra hafızadaki verilerin ölçülebilir performans etkisi).
cat
kullanımımın çoğu, baştan başlamak cat foo
, ardından "yukarı" okuna basmak ve ardından önceki satırıma eklemek | [command]
geliyor. Kedinin orada tutulmasıyla (küçük) bir performans vuruşu yaptığımı biliyorum, ancak onu bırakmak, komutu yeniden yazmak / yeniden yazmaktan daha az çaba gerektiriyor [command] < foo
. Özel bir komut satırı çalışması (çoğu) için endişe etmeyin, ancak komut dosyaları için ideal değil (nasıl hissettiğimle aynı pv
, sanırım).
tar çıkışını başka bir yardımcı programa, aynı kutuda çalışan tar'a veya SSH üzerinden çalışan tar'a pipolamak, dosyaları bir yerden başka bir yere taşımak için en sevdiğim eski okul Unix hamlesidir.
Bu aynı zamanda size bir klasörü diğerine kopyalamanız ve kaynak ve hedef dizindeki tüm dosyalar ile sonlandırmanız konusunda Windows tarzı seçeneği sunar.
kabuk olarak zsh
Özellikle grml.org'un eklentileri / kurulumunda etkilidir .
iotop, disklerinize G / Ç erişimini izlemek için en üste benzer bir programdır.
Bu araçların çoğu Bash "programlanabilir tamamlama" kullanılarak çok daha güçlü hale getirilir - böylece komut satırı seçenekleri gibi sekmeleri tamamlayabilir veya "apt-get install" ile bir paketin adını söyleyebilirsiniz. Ayrıca, ilgili dosyalar için sekmeyle tamamladığınız şeyleri de sınırlar - örneğin, "unzip" yalnızca desteklenen arşiv dosyalarını tamamlar.
Gerçekten de ispiyontolar - eğer hiç denememişseniz büyük olasılıkla sadece .bashrc'nizi kemanlamanız gerekir:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Tabi bu Ubuntu ve Debian için de geçerlidir. Paketi bazı Linux dağıtımlarında edinmeniz gerekebilir.
Bu benzer soruda bazı ek cevaplar bulunabilir.
Gözardı edilen birkaç şeyden bahsetmek istedim.
Oh, ve yazarken, herzaman Korn kullanmanız gerektiğine inanıyorum. Korn'dan nefret ediyorum (Grup değil. Grubu seviyorum :-P) ama tam anlamıyla her yerde. Bir senaryo alabilir ve Solaris, AIX ve Linux arasında hareket ettirebilir ve yöneticinin Bash'i kurmaya karar vermiş olup olmadığından endişelenmenize gerek yoktur.
Bazen çok kullanışlı bir araç nohup. Uzak SSH istemcilerini kullanarak uzun süre devam eden komut dosyalarını çalıştırmak için kullanıyorum.