Wie erinnerst du dich an Befehlsoptionen? [geschlossen]
13
Ich bin gespannt, mit welchem Trick Sie sich Optionen für verschiedene Befehle merken können. Das ständige Nachschlagen von Manpages ist zeitaufwändig und nicht so cool!
Unter anderem: unix.stackexchange.com/questions/138720/… ist praktisch, um eine benutzerdefinierte Zusammenfassung von Dingen zu erstellen, die ich gewöhnlich vermassele oder vergesse. Übrigens, je mehr man Manpages liest, desto mehr schätzt man sie.
Goldlöckchen
Ich habe das Gefühl, dass ich irgendwann alles vergesse. Ich habe mich gefragt, ob ich der einzige bin, der Schwierigkeiten hat, sich an alle nützlichen Optionen zu erinnern. Ihr Vorschlag scheint eine gute Lösung zu sein. Danke!
Der Trick ist einfach: Sie tun es einfach nicht. Es ist Zeitverschwendung und einfach nicht notwendig. Das Auswendiglernen von Befehlsoptionen ist keine besonders nützliche Fähigkeit. Es ist viel wichtiger zu verstehen, wie Dinge im Allgemeinen funktionieren und eine vage Vorstellung davon zu haben, welche Tools überhaupt existieren und wofür Sie sie verwenden. Eine sehr wichtige Fähigkeit dabei ist, Dinge herauszufinden, die Sie noch nicht kennen.
Manpages sind zeitaufwändig? Nicht so. Es ist nicht so, dass man sie lesen muss - zumindest nicht jedes Mal - es gibt eine Suchfunktion. Also, wenn ich mich nicht erinnere, welche kryptische Option für hdparmdas Deaktivieren des Leerlauf-Timers auf einigen WD-Datenträgern geeignet war, tue ich man hdparmund /idle3und hey, das war es -J. So etwas nachzuschauen ist so schnell, dass ich mich nicht daran erinnere, es danach getan zu haben.
Stellen Sie sich vor, jemand merkt sich tatsächlich alle hdparmOptionen. Was für eine Zeitverschwendung.
Es ist in Ordnung, wenn Sie sich gerade an Optionen erinnern, weil Sie diese häufig verwenden. Das passiert automatisch, ohne darüber nachzudenken. Aber eigentlich bewusst Zeit darauf verwenden, sie auswendig zu lernen ... wozu soll das gut sein? Ein Papiertest?
Upvoted: Die Fähigkeit besteht darin, das zu finden, was Sie brauchen, nicht auswendig zu lernen. man hdparm | less -p idle3ist auch eine praktische Möglichkeit, um zum gewünschten Begriff zu springen ...
jasonwryan
Ich stimme dieser Antwort uneingeschränkt zu, obwohl ich der Meinung bin, dass es normal ist, die wenigen gängigen Optionen für gängige Programme auswendig zu lernen, nur weil Sie sie so oft verwenden. Wie rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -a, usw. (die Liste variiert von Person zu Person).
David Z
8
Zsh hat die Funktion run-help , die standardmäßig an gebunden ist Alth. Mit dieser Funktion können Sie einen Befehl mit vielen oder komplexen Optionen eingeben, an die Sie sich nur schwer erinnern können. rsyncAnschließend können Sie die manSeite dieses Befehls öffnen. So:
rsync Alth
Lesen Sie die manSeite und finden Sie heraus, welche Schalter Sie benötigen. Drücken Sie qund kehren Sie zu Ihrer Eingabeaufforderung zurück, genau dort, wo Sie aufgehört haben. Dann können Sie den Befehl mit den erforderlichen Optionen ausführen:
rysnc -azP file dir/
Wie das Wiki feststellt:
Die Funktion kann weiter angepasst werden, indem Hilfsfunktionen des Formulars run-help-command definiert werden. In der Standarddistribution stehen drei solcher Funktionen zur Verfügung: run-help-git, run-help-svk und run-help-svn.
Ähnliches gilt bashfür, bash-completedas viele Parameteroptionen für viele Befehle bereitstellt.
Ericx
2
@ericx "Ähnlich" könnte es ein wenig übertreiben ... Zsh hat auch die Fertigstellung, dies ist ein Schritt weiter.
Jasonwryan
Hey ... ich habe Leute prahlen hören, aber ich habe es nie versuchtzsh
Ericx
Die Vervollständigung von @ericx unterstützt auch bashnicht das Hinzufügen von Beschreibungen zur Vervollständigungsliste oder das Gruppieren von Einträgen ( --classify -F -- append file type indicatorsz. B. in der GNU-Vervollständigung von zsh) und ist daher bei weitem nicht so nützlich wie die von zsh.
Stéphane Chazelas
** root @ milicent ** ~ / tmp ** Di Aug 05 09:24:55 # pkg info (-e -d -f -l -o -p -D) -r [Zeigt die umgekehrten Abhängigkeiten an] (-e -d -r -f -o -p -D) -l [Zeigt alle Dateien an] (-e -d -r -l -f -p -D) -o [Zeigt den Ursprung an] (-e -d -r - l -o -f -D) -p [Zeigt das Präfix an] (-e -d -r -l -o -p -D) -f [Zeigt die vollständigen Informationen an] (-e -d -r -l -o -p -f) -D [Zeigt die Meldung an] (-e -f -r -l -o -p -D) -d [Zeigt die Abhängigkeiten an] (-f -d -r -l -o -p -D) -e [Gibt 0 zurück, wenn <pkg-name> installiert ist] (-g -X -a -F) -x [Pakete verarbeiten, die dem Regex-Muster entsprechen] (-g -x -X -F) -a [Alle Pakete verarbeiten
Ericx
4
Die meisten Befehle haben --help als Kurzreferenz und es reicht normalerweise aus, um daran zu erinnern, was ich früher wusste.
Das heißt, haben Sie die Angewohnheit zu schreiben - Hilfe statt -h oder sogar -?. Sie wissen nie, was -h ist, bevor Sie die Verwendungsausgabe oder die Handbuchseite anzeigen. Im schlimmsten Fall könnte das -h eine Abkürzung für - gefährliche-automatische-Zerstörung sein.
... Die meisten Befehle auf GNU-Systemen . Befehle auf Unix-Systemen haben normalerweise keine --help. -?Bedürfnisse zitiert mit zsh, csh, tcshoder fishoder , wenn es Dateien , deren Namen werden -durch ein einzelnes Zeichen im aktuellen Verzeichnis gefolgt. -:kann dort vorzuziehen sein.
Stéphane Chazelas
Nun ja, viele Nicht-GNU-Systeme haben so entsetzliche Benutzungsausgaben, dass es keinen Sinn macht, sie auch nur anzusehen. In diesem Fall siehe Manpages und viel Glück beim Auswendiglernen, da sonst nichts funktioniert.
Kerolasa
Msgstr "Hab die Gewohnheit zu schreiben". Fehlendes Wort?
Faheem Mitha
Fehlendes Komma. Da es sich nur um ein Zeichen handelt, kann ich es auf der Website leider nicht hinzufügen.
Mark
4
Die Verwendung eines sehr langen Befehlsverlaufs und das Durchsuchen ist sehr nützlich.
Grundsätzlich sammle ich alle Shell-Verlaufsdateien und gehe sie durch.
Die gefundenen Ergebnisse sind in vielen Fällen sehr nützlich, da es einfach ist, nach guten Stichwörtern zu suchen.
Wenn Sie nach einem bestimmten Argument suchen, das Sie wie eine URL verwendet haben, finden Sie auch die zugehörigen Befehle und Optionen. Wenn Sie nach bestimmten Optionen suchen, finden Sie möglicherweise auch relevante Argumente.
Eine Option, die ich mag, ist das Erstellen von Aliasen mit den gleichen oder ähnlichen Optionen, z
alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'
Auf diese Weise haben Sie eine schöne Verknüpfung, an die Sie sich schnell erinnern können, die jedoch auch Informationen zu den tatsächlich darin enthaltenen Optionen enthält.
Ein weiterer Ansatz bei Aliasen besteht darin, die am häufigsten verwendeten Optionen auszuwählen und einen superkurzen Alias zu erstellen, der sie verwendet. Zum Beispiel lsmache ich das fast immer, lund das liegt daran, dass ich Folgendes habe:
alias l='ls -alFtrG'
Eine andere Möglichkeit ist, einfach die gewünschten Optionen in den Basisbefehl einzubringen, z
alias ls='ls -F --color=always'
Schließlich üben, üben, üben und Geduld. Geben Sie häufig verwendete Optionen weiter ein, und Sie werden sie schließlich lernen. Die häufigsten in Tagen, andere in Wochen und ja, einige brauchen Jahre, um Ihnen bekannt zu werden. Stellen Sie sich das als Vergnügen vor, denn die Unix-Programmierung wird Sie noch lange unterhalten.
Eine andere Option, die mir gefällt, ist ein Alias, der das Durchsuchen meines Verlaufs erleichtert. Dafür habe ich zwei ähnliche Aliasnamen:
alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'
Mit diesen kann ich nach Verwendungen eines Befehls suchen, zum Beispiel:
hg lsZeigt alle aktuellen Verwendungen von ls aus der Geschichte hga lsan. Zeigt alle Verwendungen von ls aus meiner gesamten Geschichte an.
Ich entwickelte hg, nachdem ich herausgefunden hatte, dass hga zu viel zeigte.
Wenn OP sich nicht erinnern kann, was es rm -ivtut, wird sich OP wahrscheinlich auch nicht erinnern, was es rmivtut. Ich glaube nicht, dass der Bindestrich das Problem ist.
Bis zum
Ich würde persönlich alias rm -ivzu safe_deleteoderrm_prompt
slebetman
Danke Jungs! Ich schätze, ich habe mir zu viele Sorgen gemacht, weil ich mich an mehr erinnere als an mehr zu lernen. Ich werde lernen, wann man die Waffe benutzt, anstatt zu lernen, wie groß und schnell die Kugel ist! Glück, dass so viele gute Linux-Leute hier sind. Ein Hoch auf Unix / Linux !!
Atul
1
Ich mache normalerweise:
man ${CMD}| grep 'what was I thinking about?'
Oder eine Variation davon. Mit einigen greps können Sie -C / A / B für angeben Kontext , nach und vor sind. Wenn nicht, nlund sedkann ziemlich gut zusammenpassen:
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,nextDrive'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
Die gleichen Techniken funktionieren mit --helpMenüs, wenn Sie sie haben, aber Sie müssen möglicherweise eine ausführen, ${CMD} --help 2>&1 | ..filter..da dies eine ziemlich übliche Vorgehensweise ist, um solche Dinge zu drucken stderr.
Wie auch immer, ich denke die Moral der Geschichte ist, erinnere mich zumindestman und grep. Vielleicht den Rest nicht schwitzen.
man
Seiten ist sehr cool ... :)Antworten:
Der Trick ist einfach: Sie tun es einfach nicht. Es ist Zeitverschwendung und einfach nicht notwendig. Das Auswendiglernen von Befehlsoptionen ist keine besonders nützliche Fähigkeit. Es ist viel wichtiger zu verstehen, wie Dinge im Allgemeinen funktionieren und eine vage Vorstellung davon zu haben, welche Tools überhaupt existieren und wofür Sie sie verwenden. Eine sehr wichtige Fähigkeit dabei ist, Dinge herauszufinden, die Sie noch nicht kennen.
Manpages sind zeitaufwändig? Nicht so. Es ist nicht so, dass man sie lesen muss - zumindest nicht jedes Mal - es gibt eine Suchfunktion. Also, wenn ich mich nicht erinnere, welche kryptische Option für
hdparm
das Deaktivieren des Leerlauf-Timers auf einigen WD-Datenträgern geeignet war, tue ichman hdparm
und/idle3
und hey, das war es-J
. So etwas nachzuschauen ist so schnell, dass ich mich nicht daran erinnere, es danach getan zu haben.Stellen Sie sich vor, jemand merkt sich tatsächlich alle
hdparm
Optionen. Was für eine Zeitverschwendung.Es ist in Ordnung, wenn Sie sich gerade an Optionen erinnern, weil Sie diese häufig verwenden. Das passiert automatisch, ohne darüber nachzudenken. Aber eigentlich bewusst Zeit darauf verwenden, sie auswendig zu lernen ... wozu soll das gut sein? Ein Papiertest?
quelle
man hdparm | less -p idle3
ist auch eine praktische Möglichkeit, um zum gewünschten Begriff zu springen ...rm -i -f -r
,ln -s
,df -s -h
,cp -r -i
,ls -l -h -a
, usw. (die Liste variiert von Person zu Person).Zsh hat die Funktion run-help , die standardmäßig an gebunden ist Alth. Mit dieser Funktion können Sie einen Befehl mit vielen oder komplexen Optionen eingeben, an die Sie sich nur schwer erinnern können.
rsync
Anschließend können Sie dieman
Seite dieses Befehls öffnen. So:Lesen Sie die
man
Seite und finden Sie heraus, welche Schalter Sie benötigen. Drücken Sie qund kehren Sie zu Ihrer Eingabeaufforderung zurück, genau dort, wo Sie aufgehört haben. Dann können Sie den Befehl mit den erforderlichen Optionen ausführen:Wie das Wiki feststellt:
quelle
bash
für,bash-complete
das viele Parameteroptionen für viele Befehle bereitstellt.zsh
bash
nicht das Hinzufügen von Beschreibungen zur Vervollständigungsliste oder das Gruppieren von Einträgen (--classify -F -- append file type indicators
z. B. in der GNU-Vervollständigung von zsh) und ist daher bei weitem nicht so nützlich wie die von zsh.Die meisten Befehle haben --help als Kurzreferenz und es reicht normalerweise aus, um daran zu erinnern, was ich früher wusste.
Das heißt, haben Sie die Angewohnheit zu schreiben - Hilfe statt -h oder sogar -?. Sie wissen nie, was -h ist, bevor Sie die Verwendungsausgabe oder die Handbuchseite anzeigen. Im schlimmsten Fall könnte das -h eine Abkürzung für - gefährliche-automatische-Zerstörung sein.
quelle
--help
.-?
Bedürfnisse zitiert mitzsh
,csh
,tcsh
oderfish
oder , wenn es Dateien , deren Namen werden-
durch ein einzelnes Zeichen im aktuellen Verzeichnis gefolgt.-:
kann dort vorzuziehen sein.Die Verwendung eines sehr langen Befehlsverlaufs und das Durchsuchen ist sehr nützlich.
Grundsätzlich sammle ich alle Shell-Verlaufsdateien und gehe sie durch.
Die gefundenen Ergebnisse sind in vielen Fällen sehr nützlich, da es einfach ist, nach guten Stichwörtern zu suchen.
Wenn Sie nach einem bestimmten Argument suchen, das Sie wie eine URL verwendet haben, finden Sie auch die zugehörigen Befehle und Optionen. Wenn Sie nach bestimmten Optionen suchen, finden Sie möglicherweise auch relevante Argumente.
quelle
Eine Option, die ich mag, ist das Erstellen von Aliasen mit den gleichen oder ähnlichen Optionen, z
Auf diese Weise haben Sie eine schöne Verknüpfung, an die Sie sich schnell erinnern können, die jedoch auch Informationen zu den tatsächlich darin enthaltenen Optionen enthält.
Ein weiterer Ansatz bei Aliasen besteht darin, die am häufigsten verwendeten Optionen auszuwählen und einen superkurzen Alias zu erstellen, der sie verwendet. Zum Beispiel
ls
mache ich das fast immer,l
und das liegt daran, dass ich Folgendes habe:Eine andere Möglichkeit ist, einfach die gewünschten Optionen in den Basisbefehl einzubringen, z
Schließlich üben, üben, üben und Geduld. Geben Sie häufig verwendete Optionen weiter ein, und Sie werden sie schließlich lernen. Die häufigsten in Tagen, andere in Wochen und ja, einige brauchen Jahre, um Ihnen bekannt zu werden. Stellen Sie sich das als Vergnügen vor, denn die Unix-Programmierung wird Sie noch lange unterhalten.
Eine andere Option, die mir gefällt, ist ein Alias, der das Durchsuchen meines Verlaufs erleichtert. Dafür habe ich zwei ähnliche Aliasnamen:
Mit diesen kann ich nach Verwendungen eines Befehls suchen, zum Beispiel:
hg ls
Zeigt alle aktuellen Verwendungen von ls aus der Geschichtehga ls
an. Zeigt alle Verwendungen von ls aus meiner gesamten Geschichte an.Ich entwickelte hg, nachdem ich herausgefunden hatte, dass hga zu viel zeigte.
quelle
rm -iv
tut, wird sich OP wahrscheinlich auch nicht erinnern, was esrmiv
tut. Ich glaube nicht, dass der Bindestrich das Problem ist.rm -iv
zusafe_delete
oderrm_prompt
Ich mache normalerweise:
Oder eine Variation davon. Mit einigen
grep
s können Sie -C / A / B für angeben Kontext , nach und vor sind. Wenn nicht,nl
undsed
kann ziemlich gut zusammenpassen:Die gleichen Techniken funktionieren mit
--help
Menüs, wenn Sie sie haben, aber Sie müssen möglicherweise eine ausführen,${CMD} --help 2>&1 | ..filter..
da dies eine ziemlich übliche Vorgehensweise ist, um solche Dinge zu druckenstderr
.Wie auch immer, ich denke die Moral der Geschichte ist, erinnere mich zumindest
man
undgrep
. Vielleicht den Rest nicht schwitzen.quelle
grep
Manpages, wenn ich nach einem bestimmten Feature suche, das ist ziemlich praktisch.-A
-B
-C
Optionen von grep können auch nützlich sein, z. B.man bash | grep -A 25 PROMPTING$