Come ricordi le opzioni di comando? [chiuso]


13

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!


2
Tra le altre cose: unix.stackexchange.com/questions/138720/… è utile per la creazione di un riepilogo personalizzato di cose che abitualmente rovino o dimentico. A proposito, più leggi le pagine man, più le apprezzerai.
Riccioli d'oro

Qualche volta sento di dimenticare tutto. Mi chiedevo se sono l'unico che ha difficoltà a ricordare tutte le opzioni utili in cima alla testa ... Il tuo suggerimento sembra una buona soluzione ... Grazie!
Atul,

3
Leggere le manpagine è molto bello ... :)
Jasonwryan,

1
Q: Come si arriva a Carnegie Hall ? A: Pratica!
evilsoup,

4
Penso che questo meriti alcuni XKCD: xkcd.com/1168
Darkhogg

Risposte:


39

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 hdparmdisabilitare il timer inattivo su alcuni dischi WD, lo faccio man hdparme /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 hdparmopzioni. 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?


4
Eseguito l'upgrade: l'abilità sta nel trovare ciò di cui hai bisogno, non nella memoria. man hdparm | less -p idle3è anche un modo pratico per saltare al termine desiderato ...
jasonwryan,

Sono pienamente d'accordo con questa risposta, anche se penso che valga la pena sottolineare che è normale avere memorizzate le poche opzioni più comuni ai programmi comuni, solo perché le usi così spesso. Come rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -a, ecc (l'elenco varia da persona a persona).
David Z,

8

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 rsyncad esempio, e quindi manaprire la pagina di quel comando . Così:

 rsync Alth

leggere la manpagina 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.

Allo stesso modo bashha bash-completeche fornirà molte opzioni di parametri per molti comandi.
Ericx,

2
@ericx "Allo stesso modo" potrebbe esagerare un po '... Zsh ha anche il completamento, questo è un passo avanti da quello.
Jasonwryan,

ehi ... ho sentito gente vantarsi, ma non ho mai provatozsh
ericx

Il completamento di @ericx, inoltre, bashnon supporta l'aggiunta di descrizioni all'elenco di completamento o il raggruppamento di voci ( --classify -F -- append file type indicatorsad esempio nel completamento di GNU di zsh), quindi non è altrettanto utile di zsh.
Stéphane Chazelas,

** root @ milicent ** ~ / tmp ** mar 05 ago 09:24:55 # pkg info (-e -d -f -l -o -p -D) -r [Visualizza le dipendenze inverse] (-e -d -r -f -o -p -D) -l [Visualizza tutti i file] (-e -d -r -l -f -p -D) -o [Visualizza l'origine] (-e -d -r - l -o -f -D) -p [Visualizza prefisso] (-e -d -r -l -o -p -D) -f [Visualizza informazioni complete] (-e -d -r -l -o -p -f) -D [Visualizza il messaggio] (-e -f -r -l -o -p -D) -d [Visualizza le dipendenze] (-f -d -r -l -o -p -D) -e [Restituisce 0 se <pkg-name> è installato] (-g -X -a -F) -x [Elabora pacchetti che corrispondono al modello regex] (-g -x -X -F) -a [Elabora tutto il pacchetto
ericx,

4

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.


4

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.


2
... La maggior parte dei comandi sui sistemi GNU . i comandi sui sistemi Unix in genere non hanno --help. -?esigenze citando con zsh, csh, tcsho fishoppure se ci sono file il cui nome sono -seguito da un singolo carattere nella directory corrente. -:potrebbe essere preferibile lì.
Stéphane Chazelas,

Bene ... molti sistemi non GNU hanno output di utilizzo così spaventosi che sono inutili persino guardare. In tal caso, consultare le pagine man e buona fortuna per memorizzare a memoria, nient'altro funzionerà.
Kerolasa,

"Detto questo hanno l'abitudine di scrivere". Parola mancante?
Faheem Mitha,

1

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 lsquasi sempre lo faccio le 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 lsmostrerà tutti gli usi recenti di ls dalla storia
hga lsmostrerà tutti gli usi di ls della mia intera storia.

Ho sviluppato hg dopo aver scoperto che hga tendeva a mostrare troppo.


4
Se OP non riesce a ricordare cosa rm -ivfa, probabilmente anche OP non ricorderà cosa rmivfa. Non penso che sia il trattino il problema.
tobyink

Personalmente alias rm -ivdi safe_deleteorrm_prompt
slebetman il

Grazie ragazzi! Immagino che mi stavo preoccupando troppo per ricordare di più che imparare di più ... Imparerò quando usare l'arma invece di imparare quali sono le dimensioni e la velocità del proiettile! Fortunato di avere così tante brave persone su Linux qui .. Saluti a unix / linux !!
Atul,

1

In genere faccio:

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

O qualche sua variazione. Con alcuni greps puoi specificare -C / A / B per il contesto , rispettivamente dopo e prima . In caso contrario, nle sedpuò 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 --helpmenu 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.


1
+1. Spesso grepman page quando cerco una funzione particolare, è abbastanza utile.
John WH Smith,

Anche le -A -B -Copzioni di grep possono essere utili, ad esempioman bash | grep -A 25 PROMPTING$
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.