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!
man
Seiten ist sehr cool ... :)
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!
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 ich man 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?
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 die man
Seite dieses Befehls öffnen. So:
rsync Alth
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:
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.
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.
--help
. -?
Bedürfnisse zitiert mit zsh
, csh
, tcsh
oder fish
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.
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 ls
mache ich das fast immer, l
und 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 ls
Zeigt alle aktuellen Verwendungen von ls aus der Geschichte
hga ls
an. Zeigt alle Verwendungen von ls aus meiner gesamten Geschichte an.
Ich entwickelte hg, nachdem ich herausgefunden hatte, dass hga zu viel zeigte.
rm -iv
tut, wird sich OP wahrscheinlich auch nicht erinnern, was es rmiv
tut. Ich glaube nicht, dass der Bindestrich das Problem ist.
rm -iv
zu safe_delete
oderrm_prompt
Ich mache normalerweise:
man ${CMD} | grep 'what was I thinking about?'
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
und sed
kann 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,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
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 drucken stderr
.
Wie auch immer, ich denke die Moral der Geschichte ist, erinnere mich zumindest man
und grep
. Vielleicht den Rest nicht schwitzen.
grep
Manpages, wenn ich nach einem bestimmten Feature suche, das ist ziemlich praktisch.