GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso trovare aiuto per il comando punto `.` in *nix?

Prima di tutto dovresti invocare type . , probabilmente otterrai qualcosa del tipo:

. is a shell builtin

I builtin sono parti della tua shell, non hanno le proprie pagine di manuale. Alcuni di loro potrebbero sembrare averli, ad es. echo è integrato in Bash ma molto probabilmente esiste un eseguibile separato come /bin/echo nel tuo sistema e in questo caso man echo si riferisce a quest'ultimo . Questi due echo probabilmente non sono strettamente equivalenti.

La tua shell può fornire informazioni su qualsiasi builtin tramite help incorporato; prova help help , help type e infine:

help .

I builtin possono anche essere elencati nella pagina man della tua shell. Per esempio. (nella mia Debian) I builtin di Bash sono trattati direttamente in man bash , ma per i builtin Zsh man zsh mi dice di eseguire man zshbuiltins . In generale le shell possono spiegare o meno i propri builtin.


Prova a utilizzare man sh o man bash o la pagina man per qualunque shell tu stia usando. (Forse man $SHELL .)

Questo non è ufficialmente chiamato comando "punto", ma source comando. Ricerca della parola source può essere utile.

ad esempio, bash man page (cerca "each builtin command") e troverai rapidamente la documentazione.

Per quanto riguarda la spiegazione dell'uso, posso farlo proprio qui. Mi riferirò a questo solo come al source comando, riconoscendo che può essere abbreviato solo in un punto quando si utilizzano alcune shell, e con alcune shell potrebbe essere necessario che il comando sia (perché il punto potrebbe essere riconosciuto ma l'intera parola source potrebbe non esserlo).

Se usi il source comando, la tua shell leggerà ogni riga dal file di script e tenterà di eseguirlo. Sono necessari i permessi di "lettura" sul file. (Non importa se hai i permessi di "esecuzione".) Se modifichi una variabile, è probabile che ciò influisca sulla tua shell corrente.

Se, d'altra parte, provi solo ad eseguire il file, la tua shell chiederà al sistema operativo di occuparsi di questa richiesta. Ciò richiederà i permessi di "esecuzione". (Su alcuni sistemi, come OpenBSD, non avrai bisogno dei permessi di "lettura" per questo. Su altri sistemi, incluse molte varianti di Unix, lo farai.) Il file potrebbe dover iniziare con un'intestazione appropriata (ad esempio, #!/bin/sh ) in modo che il sistema operativo lo riconosca come un file di script. Il sistema operativo eseguirà una copia della shell richiesta e dirà a quella shell di eseguire il contenuto dello script. Se l'ambiente della shell viene modificato (ad esempio, una variabile ottiene un nuovo valore, la directory di lavoro viene modificata (con cd ), viene reindirizzato un descrittore di file (con exec ), ecc.), avrà un impatto solo sulla sub-shell che è stata chiamata per lo script e non può modificare l'ambiente nella shell madre che ha chiamato il file di script.


Nessun altro ne ha parlato, poiché spesso viene dimenticato.

Il tuo più grande indizio verrebbe dall'utile comando whatis .

[email protected] ~ $ whatis .
builtins (1)         - bash built-in commands, see bash(1)
[email protected] ~ $ whatis source
builtins (1)         - bash built-in commands, see bash(1)
[email protected] ~ $ whatis bash
bash (1)             - GNU Bourne-Again SHell
[email protected] ~ $ whatis lynx
lynx (1)             - a general purpose distributed information browser for the World Wide Web
[email protected] ~ $ whatis linux
linux: nothing appropriate.
[email protected] ~ $ whatis whatis
whatis (1)           - display one-line manual page descriptions

MODIFICA:

Alcune persone hanno sottolineato nei commenti che questo non è in alcune distribuzioni - forse è un pacchetto installabile, o abilitato in qualche modo - l'avevo di default in gentoo;)

Include il meraviglioso which - che ti dice quale eseguibile viene chiamato, e whereis che ti dà tutti i percorsi di un eseguibile che chiami, e le sue pagine man (se esiste in più percorsi).


Linux
  1. Come eseguire l'applicazione per un determinato periodo di tempo in Shell?

  2. Come escludere una directory in find . comando

  3. Come cercare i file usando regex nello script della shell linux

  4. Procedura:cronologia Bash/shell illimitata?

  5. Come eseguire un comando più volte, usando bash shell?

Script di shell per principianti - Come scrivere script Bash in Linux

Come cercare file dalla riga di comando di Linux

Come utilizzare il comando Declare in Linux Bash Shell

Come eseguire un comando in uno script della shell?

Come trovare file con dozzine di criteri con il comando Trova Bash

Come posso trovare la mia versione della shell usando un comando Linux?