Come saltare a una bandiera particolare in una manpage Unix?


23

Quando leggo una manpage Unix nel terminale, come posso passare facilmente alla descrizione di una bandiera specifica?

Ad esempio, ho bisogno di conoscere il significato della -obandiera per mount. Corro man mounte voglio saltare al posto in cui -oè descritto. Attualmente, cerco /-ocomunque che l'opzione sia menzionata in diversi punti prima della sezione che la descrive effettivamente, quindi devo saltare un bel po '.

Grazie.

Risposte:


27

Quello che faccio è mettere alcuni spazi vuoti davanti alla bandiera in questo modo:

/     -o

Non è affidabile al 100%, ma salti attraverso molti meno cerchi. Se vuoi un tasso di successo ancora migliore, prova "/^ +-o". Ciò troverebbe le righe che iniziano con gli spazi e seguite da -o. Tuttavia, non vorrei digitare quella strana stringa.


11

Ho definito questa funzione nel mio .bashrc

function manswitch () { man $1 | less -p "^ +$2"; }

che puoi usare come segue

manswitch grep -r

L'ho preso da questo commandlinefu .

Nota: l'argomento per lo -pswitch di lessè un regexp che dice a meno di cercare una riga che inizia con ( ^) uno o più spazi ( +) seguito dallo switch (secondo argomento, quindi $2), quindi ha il vantaggio di lavorare con una formattazione diversa.


5

Inoltre è possibile aprire la pagina man su una posizione specifica dalla riga di comando con

man -P 'less -p "     -o"' mount

È stato votato per essere possibile, ma è un po 'più da scrivere che cercare dall'interno dell'uomo. Grazie comunque!
dotancohen,

È abbastanza utile mandare qualcuno nel posto esatto nella pagina man :)
precipita il

Sì, stavo solo pensando che se per qualche motivo avessi dovuto aprire una pagina man in una sceneggiatura sarebbe utile. Grazie!
dotancohen,

3

La risposta di @ piccobello è ottima, ma stava mangiando i colori nelle mie pagine man. Invece di eseguire il piping a less(poiché di solito manutilizza già lessdi default), passo semplicemente il lesscomando modificato a man:

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

Ciò mantiene la funzionalità di @piccobello nella sua funzione, ma mantiene i colori.


1

Le altre soluzioni sono abbastanza buone, ma ricorda anche che le pagine man sono solo dati e puoi facilmente fare quasi tutto con loro in Linux.

man some-command> file.txt

converte la pagina in un file di testo semplice che puoi quindi manipolare. Conservo una copia del manuale di bash come testo nella mia directory bin in modo da poterlo semplicemente caricare nel mio editor di testo per cercare cose e copiare e incollare mentre sto modificando gli script.

Oppure puoi inserirlo in filtri come

man qualche comando | grep -A righe-after "some pattern"

Anche se non funzionerebbe per te in un terminale, io (con l'aiuto di un amico) ho anche scritto uno script che prende una pagina man e la visualizza in un browser web in modo da poter usare le sue funzioni di navigazione / ricerca che sono molto meglio di meno. Dipende da KDE, ma è facile da modificare.

http://dl.dropbox.com/u/54584985/kman


3
Potresti provare man://a Konqueror. KDE ha una manpage KIOSLAVE!
dotancohen,

@dotancohen - Fantastico. Non lo sapevo.
Joe

@dotancohen -Ho appena provato in Dolphin e funziona anche, ma visualizza le pagine man come directory e file e avvia il browser predefinito quando si fa clic su un file. Non capisco la parte di KIOSLAVE. Ho provato man: // kioslave ed è stato lo stesso di man: //.
Joe

@dotancohen - Non importa - Ho cercato i chioschi su Wikipedia. en.wikipedia.org/wiki/KIO
Joe

Sì, KDE ha praticamente tutto. Godere!
dotancohen

1

Ho scritto uno strumento che fa proprio questo, chiamato flagman . Ancora in sviluppo ma già utilizzabile. Per esempio:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
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.