Komut seçeneklerini nasıl hatırlıyorsunuz? [kapalı]


13

Çeşitli komutların seçeneklerini hatırlamak için hangi hileyi kullandığınızı merak ediyorum? Her zaman man sayfalarına bakmak zaman alıcı ve çok havalı değil!


2
Diğer şeylerin yanı sıra: unix.stackexchange.com/questions/138720/… , alışkanlık olarak sıktığım veya unuttuğum şeylerin özelleştirilmiş bir özetini oluşturmak için kullanışlıdır. BTW, man sayfalarını ne kadar çok okursanız, onları o kadar çok takdir edersiniz.
goldilocks

Biraz zaman herşeyi unuttuğumu hissediyorum. Başının üstündeki tüm yararlı seçenekleri hatırlamakta zorlanan tek kişi olup olmadığımı merak ediyordum ... Öneriniz iyi bir çözüm gibi görünüyor ... Teşekkürler!
Atul

3
manSayfaları okumak çok güzel ... :)
jasonwryan

1
S: Carnegie Hall'a nasıl ulaşırsınız ? C: Pratik yapın!
evilsoup

4
Bu bazı XKCD hak ediyor düşünüyorum: xkcd.com/1168
Darkhogg

Yanıtlar:


39

Hile basit: Sadece yapmıyorsun. Bu bir zaman kaybıdır ve sadece gerekli değildir. Komut seçeneklerini ezberlemek özellikle yararlı bir yetenek değildir. İşlerin genel olarak nasıl çalıştığını anlamak ve en başta hangi araçların var olduğunu ve bunları ne için kullandığınıza dair belirsiz bir fikre sahip olmak çok daha önemlidir. Burada çok önemli bir beceri, henüz bilmediğiniz şeyleri nasıl bulacağınızı bilmektir.

Man sayfaları zaman alıyor mu? Öyle değil. Bunları okumak zorunda değilsiniz - en azından her seferinde değil - bir arama fonksiyonu var. Ben biriydi şifreli hangi seçeneği hatırlamıyorum Yani eğer hdparmbazı WD diskler üzerinde devre dışı boşta zamanlayıcı, yapmam man hdparmve /idle3ve hey, oldu -J. Böyle görünmek o kadar hızlı ki daha sonra yaptığımı hatırlamıyorum bile.

Birisinin tüm hdparmseçenekleri ezberlediğini düşünün . Ne zaman kaybı.

Seçenekleri hatırlıyorsanız iyi olur çünkü bunları sık sık kullanırsınız. Bu, düşünmeden bile otomatik olarak gerçekleşir. Ama aslında bilinçli olarak onları ezberlemeye zaman harcıyoruz ... bunun ne için iyi olması gerekiyordu? Kağıt testi mi?


4
Oylanan: yetenek hafızayı değil, ihtiyacınız olanı bulmaktır. man hdparm | less -p idle3da istenen terime atlamak için kullanışlı bir yoldur ...
jasonwryan

Bu yanıta tamamen katılıyorum, ancak sık sık kullandığınız için yaygın programların en yaygın birkaç seçeneğinin ezberlenmesinin normal olduğunu vurgulamaya değer olduğunu düşünüyorum. Gibi rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -a, vb (liste kişiden kişiye değişir).
David Z

8

Zsh, varsayılan olarak bağlı olan run-help işlevine sahiptir Alth. Bu işlevle, rsyncörneğin hatırlanması zor birçok veya karmaşık seçenek içeren bir komut yazmaya başlayabilir ve ardından o komutun mansayfasını açabilirsiniz . Yani:

 rsync Alth

mansayfayı okuyun ve hangi anahtarlara ihtiyacınız qolduğunu öğrenin , vurun ve ardından komut isteminize, tam olarak kaldığınız yere geri dönün, komutu gerekli seçeneklerle tamamlamaya hazırsınız:

rysnc -azP file dir/

Wiki'nin belirttiği gibi:

İşlev, run-help-command formunun yardımcı işlevleri tanımlanarak daha da özelleştirilebilir. Standart dağıtımda bu tür üç işlev vardır: run-help-git, run-help-svk ve run-help-svn.

Benzer şekilde bash, bash-completebirçok komut için çok sayıda parametre seçeneği sunacaktır.
ericx

2
@ericx "Benzer şekilde" biraz abartıyor olabilir ... Zsh da tamamlandı, bu bir adım daha.
jasonwryan

hey ... millet övünme duydum, ama hiç denemedimzsh
ericx

@ericx, ayrıca bash's tamamlama, tamamlama listesine açıklama eklemeyi veya girişleri gruplamayı ( --classify -F -- append file type indicatorsörneğin zsh'ın GNU ls tamamlanmasında) desteklemez, bu nedenle neredeyse zsh kadar kullanışlı değildir.
Stéphane Chazelas

** root @ milicent ** ~ / tmp ** Sal 05 Ağu 09:24:55 # pkg info (-e -d -f -l -o -p -D) -r [Ters bağımlılıkları görüntüler] (-e -d -r -f -o -p -D) -l [Tüm dosyaları görüntüler] (-e -d -r -l -f -p -D) -o [Menşei görüntüler] (-e -d -r - l -o -f -D) -p [Öneki görüntüler] (-e -d -r -l -o -p -D) -f [Tüm bilgileri görüntüler] (-e -d -r -l -o -p -f) -D [Mesajı görüntüler] (-e -f -r -l -o -p -D) -d [Bağımlılıkları görüntüler] (-f -d -r -l -o -p -D) -e [<pkg-name> kuruluysa 0 değerini döndürür] (-g -X -a -F) -x [Normal ifade modeliyle eşleşen işlem paketleri] (-g -x -X -F) -a [Tüm paketi işle
ericx

4

Çok uzun bir komut geçmişi kullanmak ve bu yoldan arama yapmak çok faydalıdır.

Temel olarak tüm kabuk geçmişi dosyalarını topluyorum ve onları grep.

Bulunan sonuçlar birçok durumda çok yararlıdır, çünkü iyi anahtar kelimeler aramak kolaydır.
URL gibi kullandığınız özel bir argümanı ararken ilgili komutları ve seçenekleri de bulabilirsiniz. Spesifik seçenekleri ararken, ilgili argümanları da bulabilirsiniz.


4

Komutların çoğunda hızlı başvuru için --help vardır ve genellikle bildiğim bir şeyin ne olduğunu hatırlatmak yeterlidir.

Bununla birlikte, -h ve hatta - yerine - yazma konusunda alışkanlığınız var. Kullanım çıktısına veya manuel sayfaya bakmadan önce -h'nin ne olduğunu asla bilemezsiniz. En kötü durumda, -h tehlikeli-otomatik imha için kısa el olabilir.


2
... GNU sistemlerindeki komutların çoğu . Unix sistemlerindeki komutlarda genellikle yoktur --help. -?ile alıntı ihtiyaçları zsh, csh, tcshveya fishveya ismi dosyalar varsa -geçerli dizinde tek karakteri ile izledi. -:orada tercih edilebilir.
Stéphane Chazelas

Pek çok .. GNU olmayan birçok sistem, bakmak için anlamsız oldukları kadar korkunç kullanım çıktılarına sahiptir. Böyle bir durumda adam sayfaları görmek ve zor coz tarafından ezberlemek şans iyi başka hiçbir şey işe yaramaz.
kerolasa

"Bu yazma alışkanlığı var dedi". Kayıp kelime?
Faheem Mitha

1

Sevdiğim bir seçenek, aynı veya benzer seçeneklere sahip takma adlar oluşturmaktır, örn.

alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'

Bu şekilde kısa sürede kolayca hatırlayacağınız ancak yansıttığı gerçek seçenek (ler) hakkındaki bilgileri koruyacak hoş bir kısayolunuz olur.

Takma adlarla başka bir yaklaşım, en yaygın seçenekleri seçmek ve bunları kullanan süper kısa bir takma ad yapmaktır. Örneğin lsneredeyse her zaman yaparım lve bunun nedeni:

alias l='ls -alFtrG'

Başka bir seçenek de sadece temel komuta istediğiniz seçenekleri getirmektir, örn.

alias ls='ls -F --color=always'

Son olarak alıştırma, alıştırma, alıştırma ve sabır. Ortak seçenekler yazmaya devam edin ve sonunda bunları öğreneceksiniz. Günlerde yaygın olanlar, haftalar içinde diğerleri ve evet bazılarının sizi tanıması yıllar alır. Bunu, unix programlamanın sizi uzun süre eğlendirmeye devam edeceği bir tedavi olarak düşünün.

Sevdiğim başka bir seçenek, geçmişimi aramayı kolaylaştırmak için bir takma ad ve bunun için iki benzer takma adım var:

alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'

Bunlar, örneğin bir komutun kullanımlarını aramama izin veriyor:

hg lsls tarihinin son kullanımlarını
hga lsgösterecek ls tüm geçmişimdeki tüm kullanımlarını gösterecektir.

Ben hga çok fazla göstermek eğiliminde bulduktan sonra hg geliştirdi.


4
OP ne yaptığını hatırlayamazsa rm -iv, OP muhtemelen ne yaptığını da hatırlamaz rmiv. Sorunun tire işareti olduğunu sanmıyorum.
tobyink

Ben ediyorum şahsen takma rm -iviçin safe_deleteyarm_prompt
slebetman

Sağolun beyler! Sanırım daha fazlasını öğrenmekten daha çok hatırlamak için çok endişeleniyordum. Mermi boyutları ve hızının ne olduğunu öğrenmek yerine silahı ne zaman kullanacağımı öğreneceğim! Burada çok iyi linux millet olduğu için şanslı .. Unix / linux şerefe!
Atul

1

Genellikle yaparım:

man ${CMD} | grep 'what was I thinking about?'

Veya bazı varyasyonları. Bazı sayesinde grepsizin için -C / A / B belirtebilirsiniz s bağlamda , sonra ve önce sırasıyla. Değilse nlve sedoldukça iyi eşleştirilebilir:

man hdparm |                      #hard to forget
nl -bp'idle3' -nln -w1 |          #I had to grep man to put this together
sed -n '/^[0-9]/{N;N;N;s///p}'    #no print until line begins w/ number, next,next,next

           Drive's "idle3" timeout value.  This timeout
            controls how often the drive parks its heads
            and  enters  a  low power consumption state.
            The factory default is  eight  (8)  seconds,
           zero (0) to disable the WD idle3 timer  com‐
            pletely (NOT RECOMMENDED!).

     -k     Get/set  the "keep_settings_over_reset" flag

Aynı teknikler, --helpvarsa menülerle de çalışır, ancak yapmanız gerekebilir, ${CMD} --help 2>&1 | ..filter..çünkü bu tür şeyleri yazdırmak için oldukça standart bir uygulamadır stderr.

Her neyse, sanırım hikayenin ahlaki, en azından hatırla manve grep. Belki gerisini terletme.


1
+1. grepBelirli bir özelliği ararken genellikle sayfaları yönetiyorum, bu oldukça kullanışlı.
John WH Smith

grep en -A -B -Cseçenekler örneğin çok yararlı olabilirman bash | grep -A 25 PROMPTING$
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.