Jak pamiętasz opcje poleceń? [Zamknięte]

13

Jestem ciekawy, jakiej sztuczki używasz do zapamiętywania opcji dla różnych poleceń? Ciągłe przeglądanie stron podręcznika jest czasochłonne i nie takie fajne!

Atul
źródło
2
Między innymi: unix.stackexchange.com/questions/138720/... jest przydatny do tworzenia spersonalizowanych podsumowań rzeczy, które zwykle popsuję lub zapominam. BTW, im więcej czytasz stron podręcznika, tym bardziej je doceniasz.
goldilocks
Czasem czuję, że wszystko zapominam. Zastanawiałem się, czy tylko ja z trudem pamiętam wszystkie przydatne opcje na czubku głowy. Twoja sugestia wydaje się dobrym rozwiązaniem. Dziękuję!
Atul
3
Czytanie manstron jest bardzo fajne ... :)
jasonwryan
1
P: Jak dostać się do Carnegie Hall ? Ćwiczenia!
evilsoup
4
Myślę, że zasługuje na trochę XKCD: xkcd.com/1168
Darkhogg

Odpowiedzi:

39

Sztuczka jest prosta: po prostu nie. To strata czasu i po prostu nie jest to konieczne. Zapamiętywanie opcji poleceń nie jest szczególnie przydatną umiejętnością. O wiele ważniejsze jest, aby zrozumieć, jak działają rzeczy w ogóle, i mieć niejasne pojęcie, które narzędzia istnieją przede wszystkim i do czego ich używasz. Bardzo ważną umiejętnością jest tutaj wiedza na temat rzeczy, których jeszcze nie znasz.

Strony podręcznika są czasochłonne? Skąd. To nie tak, że musisz je czytać - przynajmniej nie za każdym razem - jest funkcja wyszukiwania. Więc jeśli nie pamiętam która opcja tajemniczy był jeden na hdparmcelu wyłączenia czuwania zegara na niektórych dyskach WD, robię man hdparmi /idle3i hej, to było -J. Wyszukiwanie takich rzeczy jest tak szybkie, że nawet nie pamiętam, żeby to robić później.

Wyobraź sobie, że ktoś zapamiętuje wszystkie hdparmopcje. Co za strata czasu.

To dobrze, jeśli akurat pamiętasz opcje, ponieważ często z nich korzystasz. Dzieje się to automatycznie, nawet o tym nie myśląc. Ale faktycznie świadomie spędzam czas na zapamiętywaniu ich ... po co to powinno być dobre? Test papierowy?

frostschutz
źródło
4
Upvoted: umiejętność polega na znajdowaniu tego, czego potrzebujesz, a nie na pamięci. man hdparm | less -p idle3jest również przydatnym sposobem na przejście do pożądanego terminu ...
jasonwryan
W pełni zgadzam się z tą odpowiedzią, choć uważam, że warto podkreślić, że zapamiętanie kilku najczęściej używanych opcji wspólnych programów jest zapamiętywane tylko dlatego, że tak często z nich korzystasz. Jak rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -a, itd. (Lista różni się od osoby).
David Z
8

Zsh ma domyślnie funkcję run-helpAlth . Dzięki tej funkcji możesz zacząć wpisywać polecenie z wieloma lub złożonymi opcjami, które są trudne do zapamiętania, rsyncna przykład, a następnie manotworzyć stronę tego polecenia . Więc:

 rsync Alth

przeczytaj manstronę i ustal, które przełączniki potrzebujesz, naciśnij, qa następnie wrócisz do wiersza poleceń, dokładnie tam, gdzie przerwałeś, gotowy do wykonania polecenia za pomocą wymaganych opcji:

rysnc -azP file dir/

Jak zauważa wiki:

Funkcję można dodatkowo dostosować, definiując funkcje pomocnicze w postaci polecenia run-help-command. Istnieją trzy takie funkcje dostępne w standardowej dystrybucji: run-help-git, run-help-svk i run-help-svn.
jasonwryan
źródło
Podobnie bashma, bash-completeco zapewni wiele opcji parametrów dla wielu poleceń.
ericx
2
@ericx „Podobnie” może to trochę przesadzać ... Zsh też ma ukończenie, to krok w górę.
jasonwryan
hej ... Słyszałem, jak ludzie się chwalą, ale nigdy nie próbowałemzsh
ericx
@ericx, także bashzakończenie nie obsługuje dodawania opisów do listy ukończeń ani grupowania wpisów ( --classify -F -- append file type indicatorsna przykład w zakończeniu GNU ls zsh), więc nie jest tak przydatne jak zsh.
Stéphane Chazelas,
** root @ milicent ** ~ / tmp ** Tue Aug 05 09:24:55 # pkg info (-e -d -f -l -o -p -D) -r [Wyświetla odwrotne zależności] (-e -d -r -f -o -p -D) -l [wyświetla wszystkie pliki] (-e -d -r -l -f -p -D) -o [wyświetla początek] (-e -d -r - l -o -f -D) -p [Wyświetla prefiks] (-e -d -r -l -o -p -D) -f [Wyświetla pełną informację] (-e -d -r -l -o -p -f) -D [Wyświetla komunikat] (-e -f -r -l -o -p -D) -d [Wyświetla zależności] (-f -d -r -l -o -p -D) -e [Zwraca 0, jeśli zainstalowano <nazwa_pkg>] (-g -X -a -F) -x [Przetwarzaj pakiety, które pasują do wzorca wyrażenia regularnego] (-g -x -X -F) -a [Przetwarzaj cały pakiet
ericx
4

Używanie bardzo długiej historii poleceń i przeglądanie jej jest bardzo przydatne.

Zasadniczo zbieram wszystkie pliki historii powłoki i przeglądam je.

Znalezione wyniki są w wielu przypadkach bardzo przydatne, ponieważ łatwo znaleźć odpowiednie słowa kluczowe.
Szukając konkretnego użytego argumentu, takiego jak adres URL, można znaleźć powiązane polecenia i opcje. Poszukując konkretnych opcji, możesz znaleźć odpowiednie argumenty.

Volker Siegel
źródło
4

Większość poleceń ma opcję --help do szybkiego odniesienia i zwykle wystarczy przypomnieć o czymś, co kiedyś wiedziałem.

To powiedziawszy, masz nawyk pisania - pomoc zamiast -h lub nawet - ?. Nigdy nie wiadomo, co to jest -h przed wyszukaniem danych wyjściowych użycia lub strony podręcznika. W najgorszym przypadku -h może oznaczać krótką rękę dla -niebezpiecznego-automatycznego-zniszczenia.

Kerolasa
źródło
2
... Większość poleceń w systemach GNU . polecenia w systemach Unix zazwyczaj nie mają --help. -?potrzeby cytowania z zsh, csh, tcshlub fishczy istnieją pliki, których nazwy są -następnie pojedynczego znaku w bieżącym katalogu. -:może być tam lepiej.
Stéphane Chazelas
Cóż ... wiele systemów innych niż GNU ma tak przerażające wyniki użytkowania, że ​​nawet bez sensu wyglądają. W takim przypadku zobacz strony podręcznika i powodzenia na pamięć, bo nic więcej nie zadziała.
Kerolasa
„Powiedział, że masz zwyczaj pisać”. Brakujące słowo?
Faheem Mitha,
1

Jedną z opcji, którą lubię, jest tworzenie aliasów, które mają takie same lub podobne opcje, np

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

W ten sposób masz ładny skrót, który wkrótce łatwo zapamiętasz, ale zachowa również informacje o rzeczywistych opcjach, które odzwierciedla.

Innym podejściem do aliasów jest wybranie najczęstszych opcji i utworzenie super krótkiego aliasu, który ich używa. Na przykład lsprawie zawsze tak robię, la to dlatego, że mam:

alias l='ls -alFtrG'

Inną opcją jest po prostu wprowadzenie opcji, które lubisz do polecenia podstawowego, np

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

Wreszcie ćwicz, ćwicz, ćwicz i cierpliwość. Wpisuj często używane opcje, a w końcu się ich nauczysz. Zwykłe w ciągu kilku dni, inne w tygodniach i tak, niektórzy potrzebują lat, aby się poznać. Pomyśl o tym jak o uczcie w tym, że programowanie w Uniksie będzie Cię długo bawić.

Inną opcją, którą lubię, jest alias ułatwiający przeszukiwanie mojej historii i do tego mam dwa podobne aliasy:

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

Umożliwiają mi to wyszukiwanie na przykład użycia polecenia:

hg lspokaże wszelkie ostatnie zastosowania LS z historii
hga lspokażą wszystkie zastosowania LS z całej mojej historii.

Rozwinąłem hg po stwierdzeniu, że hga zwykle wykazuje zbyt wiele.

Michael Durrant
źródło
4
Jeśli OP nie pamięta, co rm -ivrobi, OP prawdopodobnie również nie pamięta, co rmivrobi. Nie sądzę, że to jest myślnik.
tobyink
Osobiście pseudonim rm -ivdo safe_deletelubrm_prompt
slebetman
Dzięki chłopaki! Wydaje mi się, że martwiłem się zbytnio o tym, że nie pamiętałem więcej, niż dowiedziałem się więcej. Nauczę się, kiedy używać broni, zamiast dowiedzieć się, jakie są wymiary i prędkość pocisku! Na szczęście, że jest tu tak wielu dobrych ludzi z Linuksem .. Pozdrowienia dla unix / linux !!
Atul
1

Zazwyczaj robię:

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

Lub niektóre ich odmiany. Z niektórymi greps możesz określić -C / A / B odpowiednio dla kontekstu , po i przed . Jeśli nie, nli sedmożna je całkiem dobrze dopasować:

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

Te same techniki działają z --helpmenu, jeśli je masz, ale być może trzeba to zrobić, ${CMD} --help 2>&1 | ..filter..ponieważ jest to dość standardowa praktyka drukowania takich rzeczy stderr.

W każdym razie, morałem tej historii jest, pamiętaj przynajmniej man i grep. Może nie przejmuj się resztą.

mikeserv
źródło
1
+1. Często przeglądam grepstrony, gdy szukam konkretnej funkcji, co jest całkiem przydatne.
John WH Smith
-A -B -COpcje grep również mogą być przydatne, np.man bash | grep -A 25 PROMPTING$