Come posso ottenere assistenza sui comandi del terminale?


33

Vedo spesso cose del genere

leggi Per maggiori informazioni leggi la pagina man di xyz . vedereman xyz

info xyz

quindi mi chiedo:

  • Come posso ottenere aiuto sui comandi del terminale in generale?
  • Cosa sono esattamente queste pagine man e info ?
  • Come posso trovarli e visualizzarli?

1
Parzialmente un duplicato
muru,


Vorrei anche menzionare tldr.sh , che è uno sforzo per semplificare e presentare le pagine man in un modo migliore.
No, non ho mostrato il mio vero nome il

@ Nodon'tshownmyrealname Scriveresti una risposta su tldr? Potresti anche menzionare cheate forse cheat.sh .
dessert

Risposte:


44

Cos'è una pagina man ?

Una pagina man (abbreviazione di pagina manuale) è la tradizionale forma di documentazione software su un sistema operativo simile a Unix come Ubuntu. Per la stragrande maggioranza dei comandi e dei programmi c'è una pagina man che elenca le sue opzioni e ne spiega l'utilizzo.

Come posso trovare e visualizzare le pagine man?

Offline in un terminale

Le pagine man vengono installate automaticamente sul tuo sistema insieme ai comandi che descrivono. Per visualizzare e cercare le pagine man c'è il comando man:

man mv

visualizza la pagina man di mvwhile

man -k mv

cerca i nomi e le brevi descrizioni di tutte le pagine man installate per la stringa mv. Sono consentite espressioni regolari estese POSIX ed è una ricerca , quindi questo troverà anche ad esempio git-mve semver, se si desidera cercare, mvutilizzare esattamente ^mv$.

Vedi Qual è la differenza tra `man` e` man (#) `? per leggere le sezioni della pagina man. Per maggiori informazioni leggi manla pagina man. ;)

Come posso influenzare come viene visualizzata una pagina man?

Il programma predefinito per visualizzare le pagine man è less. Questo cosiddetto cercapersone fornisce un'utile funzione di ricerca, basta inserire /seguito dal termine di ricerca, ad es

/--version

e premere Enter. Questo segnerà ogni scoperta e scorrerà fino alla prima. Premere Nper passare alla successiva ricerca e ⇧ Shift+ Nper passare alla precedente (vedere Come posso effettuare una ricerca in una manpage? ). Per un elenco di comandi premere H, per uscire lesspremere Q.

Accanto lessci sono altri cercapersone disponibili: pg, moste w3msolo per la lista a tre. Consiglio most: viene fornito con una colorazione molto utile delle parole chiave che rende molto più facile la lettura e la navigazione di una pagina man , vedere di persona:

la maggior parte degli screenshot mostra la manpage di mv

Per visualizzare una pagina man in un pager diverso da quello predefinito, utilizzare l' -Popzione, ad esempio:

man -P most mv

Se si desidera modificare le pagine man predefinite del cercapersone vengono visualizzate con sono disponibili due opzioni:

  • cambia il cercapersone predefinito solo di man

    export MANPAGER=most
    

    Per rendere persistente la modifica, aggiungi questo comando al tuo ~/.bashrcfile.

  • cambia il cercapersone predefinito dell'intero sistema

    sudo update-alternatives --config pager
    

I fan possono anche (ab) usare vimcome MANPAGER, vedi questo articolo scritto da Muru .

Le pagine man vengono visualizzate nel tipo di carattere specificato nelle impostazioni dell'emulatore di terminale. Se lavori regolarmente con il terminale, potresti voler cambiare questo carattere; Posso solo raccomandare Hack - un carattere tipografico progettato per il codice sorgente , vedi lo screenshot sopra per la sua bellezza.

Offline tramite GUI

Un programma semplice e intuitivo per visualizzare le pagine man con una semplice GUI è il yelpprogramma preinstallato . Per avviare una pagina man con yelpexecute yelp man:PROGRAMo gnome-help man:PROGRAM, ad esempio:

yelp man:mv

Puoi anche visualizzare le pagine man con il tuo browser preferito , vedi Come posso aprire le pagine man in un browser web? , ad esempio per man mvin firefox:

man -Hfirefox mv

Ultimo ma non meno importante, puoi convertire le pagine man in PDF e visualizzarle con il tuo visualizzatore PDF preferito, vedi: Esiste un modo per stampare informazioni / pagine man in PDF?

in linea

http://manpages.ubuntu.com

Puoi visualizzare le pagine man dei programmi disponibili tramite i repository di ogni versione di Ubuntu attualmente supportata con l'URL di scorciatoia manpg.es/PROGRAM, ad esempio http://manpg.es/mv . Questo apre mvla pagina man dell'ultima versione di Ubuntu, puoi scegliere una versione diversa nella barra in alto. Per cercare pagine man è possibile utilizzare ad esempio http://manpages.ubuntu.com/cgi-bin/search.py?q=mv .

Come spiegato sopra, è manpossibile visualizzare solo le pagine man del software installato sul sistema. Per visualizzare le pagine man da http://manpages.ubuntu.com usando un cercapersone terminale è dmandisponibile nel bikeshedpacchetto.

Altre fonti

Quando leggi la documentazione da altre fonti online è una buona idea tenere d'occhio la versione del programma. La maggior parte dei programmi ha --versionun'opzione che visualizza la versione del programma in questione, ad es

$ mv --version
mv (GNU coreutils) 8.25

Ci sono molti siti Web che si sono dedicati a rendere facilmente disponibili le pagine man, presenterò solo le due che mi piacciono di più:

  • man7.org viene fornito con l'evidenziazione della sintassi utile, ma presenta solo l'ultima versione rilasciata del programma
  • manpag.es ospita le pagine man delle versioni di Ubuntu ormai obsolete

Fonte non già collegata: https://wiki.ubuntuusers.de/man/


Un altro trucco utile (almeno se sei un programmatore) è quello di scrivere un piccolo script per scaricare l'output di man nel tuo editor di testo preferito. Ad esempio (\ n è newline) #! / Bin / tcsh \ n set name = $ argv [$ # argv] \ n set file = /tmp/man.$name.out\n / usr / bin / man $ * | col -bx> $ file \ n (percorso al tuo editor) $ file \ n rm $ file \ n Una macro simile ma specifica per l'editor ti permetterà di chiamare man dall'interno dell'editor, il che è abbastanza utile.
jamesqf,

@jamesqf Interessante, perché lo fai e quando lo usi? Come editori di solito sono in grado di leggere da stdin è possibile semplificare a ad esempio man $*|col -bx|nano -o man $*|col -bx|kate -i.
dessert

@jamesqf se esporti una pagina man in un file di testo per cercare o navigare facilmente, dovresti davvero dare un'occhiata alla pagina "SINTESI DEI MINORI COMANDI". Puoi aprirla digitando 'h' in less( manusa il lesscomando per l'impaginazione quindi funziona mananche da )
Ludovic Ronsin

@Ludovic Ronsin: lo faccio nel mio editor piuttosto che meno per due motivi. Innanzitutto, perché conosco i comandi del mio editor (che sono molto più potenti dei meno comandi) e non devo preoccuparmi di imparare un altro set di comandi, che inevitabilmente confonderei in contesti diversi. In secondo luogo, perché posso collegare la versione dell'editor a un tasto premuto (Alt-m, come succede) e quindi ottenere aiuto su qualsiasi chiamata di funzione che ha una pagina man. Per quanto riguarda il motivo per cui lo faccio nel modo in cui lo faccio, l'ho scritto più di 20 anni fa e ha funzionato abbastanza bene.
jamesqf,

@jamesqf avrebbe semplicemente impostato PAGER = "vim -" fare?
d33tah,

13

Le basi sono già state trattate, ma penso che un sito web sia abbastanza utile per dirti cosa fa un comando è https://explainshell.com , che suddivide un comando nelle sue sezioni e mostra cosa fa ogni bit.

inserisci qui la descrizione dell'immagine


1
1 Questo è assolutamente non ciò che cercavo quando ho scritto questo Q & A, ma è una grande risorsa non sapevo su - vi ringrazio molto! Dato che le altre risposte coprono deliberatamente un argomento principale, forse estendi la tua risposta per coprire gli strumenti online in generale? shellcheck.net mi viene in mente ...
dessert

12

Che cos'è una pagina di informazioni ?

accanto

man program-name

c'è spesso anche

info program-name

A volte sono uguali (duplicati), ma a volte una di queste pagine contiene più informazioni. Per esempio

info ddrescue

contiene più informazioni di

man ddrescue

e

info date

contiene più informazioni di

man date

L'equilibrio tra mane infodipende dalla politica delle persone che mantengono il particolare programma [pacchetto].

Vedi questo link per maggiori dettagli,

unix.stackexchange.com/questions/19451/difference-between-help-info-and-man-command


11

Qual è il helpcomando?

helpvisualizza informazioni utili sui bashcomandi integrati. Fornisce aiuto solo per i comandi della shell bash. È possibile utilizzare typeper determinare se un comando è tale un built-in, ad esempio type echocontro type rm.

Viene chiamato con un modello come argomento:

help if

visualizza la pagina di aiuto per il ifcomando. Se sei solo interessato alla sintassi di un comando usa l' -sopzione, se vuoi helpprodurre output in manformato pagina usa -m. Per visualizzare comodamente i testi di aiuto lunghi è possibile reindirizzare l'output al cercapersone preferito (vedere la sezione "Come posso influenzare" di questa risposta ):

help -m if | less

Confronto con maneinfo

È possibile eseguire e confrontare i seguenti comandi:

help echo  # for the bash built-in command `echo`
man echo   # for the program `/bin/echo`
info echo  # for the program `/bin/echo`

Come in questo esempio ci sono programmi che sono disponibili sia come programma integrato che normale (vedi Perché c'è un / bin / echo e perché dovrei usarlo? ), In questo caso la pagina man di solito contiene un nota che indica quello.

Vedi questo link per maggiori dettagli: Differenza tra aiuto, informazioni e comando man · U&L

un'opzione di programma -he / o--help

Di solito c'è in linea integrata nei programmi stessi disponibili attraverso almeno una delle opzioni -h, --helpoppure -?:

PROGRAM -h
PROGRAM --help
PROGRAM -?

Se entrambe le opzioni -he --helpesistono, spesso sono equivalenti, ma a volte si ottiene 'più aiuto' con --help, -H, --longhelp, --help-allo comandi simili. Questo comportamento è documentato nella pagina man/ del programma info.

Di solito ci sono più informazioni tramite mane info, ma a volte ci sono informazioni esclusive tramite -h. Esegui e confronta l'output di

man lsblk

e

lsblk -h

Alcuni programmi come df, tare rsyncutilizzare l'opzione -hper qualcos'altro. Questo è descritto nella pagina man/ infodi ciascun programma.

Ancora una volta puoi reindirizzare l'output al tuo cercapersone preferito, ad esempio:

lsblk -h | less

Grazie per la menzione --help, questa è spesso l'unica cosa di cui ho bisogno con la maggior parte dei comandi, e sempre la prima cosa che provo.
JPhi1618,

6

Che cos'è un tutorial e come posso trovarne uno utile

Quando hai esperienza con Linux, le pagine man , le pagine di informazioni e le opzioni di aiuto sono molto utili. Ma all'inizio, possono essere difficili da capire; hai bisogno di un aiuto più dettagliato per iniziare.

Puoi trovare assistenza dettagliata in esercitazioni ,

  • spiegazione dettagliata su come usare un comando
  • esempi

Di solito troverai tutorial via Internet, a volte c'è un tutorial utile nella pagina man o nella pagina info.

  • Prova ad esempio alcune stringhe di ricerca quando usi il motore di ricerca del tuo browser web

    • Alla ricerca di strumenti specifici

      • tutorial nano
      • tutorial di sed
      • tutorial di imagemagick
      • tutorial di rsync
    • Cercare attività (e trovare esercitazioni per vari strumenti)

      • tutorial editor di modalità testo linux
      • tutorial editor di immagini in modalità batch di Linux

Guarda brevemente alcuni dei link che trovi e inizia a lavorare con un tutorial adatto a ciò di cui hai bisogno .

  • man rsync è abbastanza dettagliato da poter essere utilizzato come tutorial, ma potresti volere maggiori dettagli (e cercare un tutorial via Internet).
  • info ddrescue ha un buon tutorial integrato.

Perfetto, grazie per il tuo costante contributo - Sento che questa domanda diventerà una fonte molto utile che possiamo indicare ai principianti. Aggiungerò un indice dei contenuti alla domanda e collegherò le risposte agli spettatori di riserva lo scorrimento.
dessert

1
@dessert, questa è una buona iniziativa da parte tua, e sono felice di contribuire :-)
sudodus


2

Il mio preferito è commandlinefu.com , ha una funzione nella tua .bashrco in .zshrcquesto modo

cmd() { curl "http://www.commandlinefu.com/commands/matching/$(echo "$@" \
    | sed 's/ /-/g')/$(echo -n $@ | base64)/plaintext" ;}

Proviamo cmd mount cd, ho chiamato la mia funzione cmd, puoi chiamarla come vuoi

inserisci qui la descrizione dell'immagine

La funzione sopra cerca nel sito web di commandlinefu, è un sito web guidato dalla comunità proprio come qui, gli utenti hanno la possibilità di aggiornare i comandi e così via. Quindi mostra i risultati migliori come in figura.

o c'è un nuovo modo per farlo usando questo .

http://samirahmed.github.io/fu/

Ecco un tutorial .

Facciamolo fu cron

inserisci qui la descrizione dell'immagine


1

Scopri come aprire una finestra del terminale ed emettere il comando man man. Digita la barra spaziatrice per passare alla schermata successiva ogni volta che dice "Altro" in fondo. Stai leggendo la pagina di manuale per il programma manuale-lettura, man!

C'è un piccolo problema con l'uovo e la gallina da superare. Il mancomando ti aiuta a leggere il manuale su ogni comando sul sistema. Ma l' manoutput utilizza un altro comando chiamato more. Puoi anche leggere man moreper apprendere ulteriori comandi di navigazione per more.

E questo è tutto! Ho imparato tutto ciò che so su unix leggendo le pagine man per centinaia di comandi.


3
Su Ubuntu, manusa lessdi default, no more.
Muru,

0

Molti ne hanno mangià parlato . Una piccola caratteristica interessante per manpochi è a conoscenza

man -t $ (manpage) > manpage.ps

che produce un file PostScript per la pagina di manuale. PostScript può essere facilmente convertito in PDF. Ciò si traduce in una formattazione molto migliore rispetto alla versione predefinita del terminale della riga di comando di man.

Per esempio:

man -t man> man.ps

pstopdf man.ps

L'ho appena testato su Ubuntu (e dovrebbe funzionare su altri Linuces) e Mac OS.

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.