Sono curioso di sapere quale trucco usi per ricordare le opzioni per vari comandi? Cercare pagine man tutto il tempo richiede tempo e non è così bello!
man
pagine è molto bello ... :)
Sono curioso di sapere quale trucco usi per ricordare le opzioni per vari comandi? Cercare pagine man tutto il tempo richiede tempo e non è così bello!
man
pagine è molto bello ... :)
Risposte:
Il trucco è semplice: semplicemente no. È una perdita di tempo e non è necessario. Memorizzare le opzioni di comando non è un'abilità particolarmente utile. È molto più importante capire come funzionano le cose in generale e avere una vaga idea di quali strumenti esistono in primo luogo e per cosa li usi. Un'abilità molto importante qui è sapere come scoprire cose che non conosci ancora.
Le pagine man richiedono tempo? Non così. Non è come se dovessi leggerli - almeno non tutte le volte - c'è una funzione di ricerca. Quindi, se non ricordo quale opzione criptica era quella per hdparm
disabilitare il timer inattivo su alcuni dischi WD, lo faccio man hdparm
e /idle3
, ehi, lo è stato -J
. Apparire cose del genere è così veloce che non ricordo nemmeno di averlo fatto dopo.
Immagina che qualcuno stia effettivamente memorizzando tutte le hdparm
opzioni. Che spreco di tempo.
Va bene se ti capita di ricordare le opzioni perché le usi frequentemente. Succede automaticamente senza nemmeno pensarci. Ma in realtà passare consapevolmente tempo a memorizzarli ... per cosa dovrebbe andare bene? Un test cartaceo?
man hdparm | less -p idle3
è anche un modo pratico per saltare al termine desiderato ...
rm -i -f -r
, ln -s
, df -s -h
, cp -r -i
, ls -l -h -a
, ecc (l'elenco varia da persona a persona).
Zsh ha la funzione run-help , per impostazione predefinita associata a Alth. Con questa funzione puoi iniziare a digitare un comando con molte o complesse opzioni che sono difficili da ricordare, come rsync
ad esempio, e quindi man
aprire la pagina di quel comando . Così:
rsync Alth
leggere la man
pagina e capire quali interruttori sono necessari, premere qe poi si torna al prompt dei comandi, esattamente da dove si era interrotto, pronto per completare il comando con le opzioni richieste:
rysnc -azP file dir/
Come osserva la wiki:
La funzione può essere ulteriormente personalizzata definendo le funzioni di supporto del modulo run-help-command. Ci sono tre di queste funzioni disponibili nella distribuzione standard: run-help-git, run-help-svk e run-help-svn.
bash
ha bash-complete
che fornirà molte opzioni di parametri per molti comandi.
zsh
bash
non supporta l'aggiunta di descrizioni all'elenco di completamento o il raggruppamento di voci ( --classify -F -- append file type indicators
ad esempio nel completamento di GNU di zsh), quindi non è altrettanto utile di zsh.
L'uso di una cronologia dei comandi molto lunga e la ricerca attraverso di essa è molto utile.
Fondamentalmente raccolgo tutti i file della cronologia della shell e li grep.
I risultati trovati sono in molti casi molto utili, in quanto è facile ricercare buone parole chiave.
Cercando un argomento specifico che hai usato, come un URL, trovi anche i comandi e le opzioni correlate. E alla ricerca di opzioni specifiche, potresti trovare anche argomenti pertinenti.
La maggior parte dei comandi ha --help per un rapido riferimento, e di solito è sufficiente ricordare cosa era qualcosa che conoscevo.
Detto questo, hai l'abitudine di scrivere - aiuto invece di -h o addirittura - ?. Non si sa mai cos'è -h prima di vedere l'output di utilizzo o la pagina di manuale. Nel peggiore dei casi il -h potrebbe essere abbreviato per --hazardous-automatic-distruzione.
--help
. -?
esigenze citando con zsh
, csh
, tcsh
o fish
oppure se ci sono file il cui nome sono -
seguito da un singolo carattere nella directory corrente. -:
potrebbe essere preferibile lì.
Un'opzione che mi piace è creare alias con opzioni uguali o simili, ad es
alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'
In questo modo hai una bella scorciatoia che presto ricorderai facilmente ma che conserverà anche le informazioni sulle opzioni effettive che riflette.
Un altro approccio con gli alias è quello di scegliere le opzioni più comuni e creare un alias super corto che le usi. Ad esempio per ls
quasi sempre lo faccio l
e questo perché ho:
alias l='ls -alFtrG'
Un'altra opzione è quella di portare semplicemente le opzioni che ti piacciono al comando di base, ad es
alias ls='ls -F --color=always'
Finalmente pratica, pratica, pratica e pazienza. Continua a digitare le opzioni comuni e alla fine le imparerai. Quelli comuni in giorni, altri in settimane e sì, alcuni impiegano anni per farsi conoscere. Pensa a questo come un piacere in quella programmazione unix continuerà a divertirti per molto tempo.
Un'altra opzione che mi piace è un alias per facilitare la ricerca nella mia cronologia e per questo ho due alias simili:
alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'
Questi mi permettono di cercare ad esempio l'uso di un comando:
hg ls
mostrerà tutti gli usi recenti di ls dalla storia
hga ls
mostrerà tutti gli usi di ls della mia intera storia.
Ho sviluppato hg dopo aver scoperto che hga tendeva a mostrare troppo.
rm -iv
fa, probabilmente anche OP non ricorderà cosa rmiv
fa. Non penso che sia il trattino il problema.
rm -iv
di safe_delete
orrm_prompt
In genere faccio:
man ${CMD} | grep 'what was I thinking about?'
O qualche sua variazione. Con alcuni grep
s puoi specificare -C / A / B per il contesto , rispettivamente dopo e prima . In caso contrario, nl
e sed
può essere abbinato abbastanza bene:
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
Le stesse tecniche funzionano con i --help
menu se li hai, ma potresti aver bisogno di fare un ${CMD} --help 2>&1 | ..filter..
perché è una pratica abbastanza standard per stampare tali cose stderr
.
Ad ogni modo, immagino che la morale della storia sia, ricordate almeno man
e grep
. Forse non sudare il resto.
grep
man page quando cerco una funzione particolare, è abbastanza utile.