GNU/Linux >> Linux Esercitazione >  >> Linux

Come sapere se la pagina uomo che sto guardando è quella corretta?

Ad esempio,

[fakename]$ type echo
echo is a shell builtin

Ma man echo mi dà la versione GNU coreutils di echo . Qual è il modo più semplice per sapere se la pagina man che sto guardando è quella corretta, ovvero quella per l'utilità che otterrei se la invocassi direttamente?

Risposta accettata:

Non lo fai, davvero. Non senza conoscenze esterne alla pagina man.

Nel caso di echo (e printf e test , …), è spesso una shell incorporata, quindi dovrai saperlo e leggere la documentazione della shell. (E echo è notoriamente diverso nelle diverse implementazioni, usa printf invece.)

Nella maggior parte, se non in tutte le shell, puoi scoprire se qualcosa è incorporato con type command , per esempio. type echo stamperà echo is a shell builtin . (type è specificato da POSIX ma ad es. anche fish lo supporta, per quanto non POSIXy com'è.) In Bash, dovresti quindi leggere man bash , la documentazione in linea o utilizzare il comando integrato help (che è specifico di Bash e che devi sapere che esiste).

Anche se il comando è non un builtin, è possibile che ci siano più comandi con lo stesso nome, rename essendo un esempio famoso (vedi Perché l'utilità di ridenominazione su Debian/Ubuntu è diversa da quella su altre distribuzioni, come CentOS?). Ora, il tuo sistema operativo dovrebbe avere la pagina man corretta per l'utilità effettivamente installata, e ad es. in Debian, il sistema “alternative” aggiorna le pagine man corrispondenti anche quando vengono modificate le alternative di comando. Ma se leggi una pagina man online, devi esserne consapevole.

Molte utilità hanno un'opzione della riga di comando come --version che potrebbe dirti quale implementazione è quel comando. (Ma non quasi tutte le utilità ce l'hanno. Penso che originariamente sia un GNUismo, quindi ce l'hanno le utilità GNU, così come quelle che hanno copiato la custom.) Nel caso di rename , funziona distinguendo due diverse implementazioni:

debian$ rename --version
/usr/bin/rename using File::Rename version 0.20
centos$ rename --version
rename (util-linux-ng 2.17.2)

Oltre a ciò, il tuo sistema potrebbe avere un alias o una funzione con lo stesso nome di un'utilità, di solito per modificare il comportamento dell'utilità. In tal caso, le impostazioni predefinite presentate in una pagina man potrebbero non essere applicabili. Alias ​​per ls sono comuni, così come gli alias che aggiungono -i a rm o mv . Ma type foo ti direbbe anche se foo è un alias o una funzione.

Correlati:perché non riesco a ottenere l'output di pgrep direttamente sulla variabile sullo script bash?
Linux
  1. Cosa significano i numeri in una pagina uomo?

  2. Come aggiungere voci alla pagina man per i propri utensili elettrici?

  3. Come faccio a conoscere il nome del file di script in uno script Bash?

  4. Come fare in modo che CRON chiami nei PERCORSI corretti

  5. Come conoscere il valore della macro incorporata in RPM?

Come trovare la pagina man più lunga in Linux

Come modificare il colore di output di "Echo" in Linux

Debian vs Ubuntu:15 cose da sapere prima di scegliere la migliore

Come conoscere i gruppi di un utente Linux

Come aggiungere la navigazione personalizzata alla Home page di ONLYOFFICE

Come condividere la connessione Internet?