GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich Hilfe für den Punktbefehl `.` in *nix?

Als erstes sollten Sie type . aufrufen , erhalten Sie wahrscheinlich etwas wie:

. is a shell builtin

Builtins sind Teile Ihrer Shell, sie haben keine eigenen Handbuchseiten. Einige von ihnen scheinen sie jedoch zu haben, z. echo ist in Bash eingebaut, aber höchstwahrscheinlich gibt es eine separate ausführbare Datei wie /bin/echo in Ihrem System und in diesem Fall man echo bezieht sich auf Letzteres . Diese beiden echo s sind wahrscheinlich nicht unbedingt gleichwertig.

Ihre Shell kann über help Informationen über alle eingebauten Funktionen bereitstellen eingebaut; versuchen Sie es mit help help , help type und schließlich:

help .

Builtins können auch in der Handbuchseite Ihrer Shell aufgeführt sein. Z.B. (in meinem Debian) Bash builtins werden direkt in man bash behandelt , jedoch für Zsh builtins man zsh sagt mir, dass ich man zshbuiltins ausführen soll . Im Allgemeinen können Shells ihre Builtins erklären oder auch nicht.


Versuchen Sie es mit man sh oder man bash oder die Manpage für die von Ihnen verwendete Shell. (Vielleicht man $SHELL .)

Dies wird offiziell nicht als "Punkt"-Befehl bezeichnet, sondern als source Befehl. Suche nach dem Wort source kann hilfreich sein.

B. Bash-Manpage (suchen Sie nach „each builtin command“), und Sie werden schnell die Dokumentation finden.

Was die Erklärung der Verwendung betrifft, kann ich das gleich hier tun. Ich werde dies einfach als source bezeichnen Befehl, wobei zu erkennen ist, dass er auf einen Punkt abgekürzt werden kann, wenn Sie einige Shells verwenden, und bei einigen Shells muss dieser Befehl möglicherweise sein (weil Punkt möglicherweise erkannt wird, aber das gesamte Wort source möglicherweise nicht).

Wenn Sie den source verwenden Befehl, liest Ihre Shell jede Zeile aus der Skriptdatei und versucht, sie auszuführen. Sie benötigen "Lese"-Berechtigungen für die Datei. (Es spielt keine Rolle, ob Sie "Ausführungs"-Berechtigungen haben.) Wenn Sie eine Variable ändern, kann dies Ihre aktuelle Shell beeinträchtigen.

Wenn Sie hingegen nur versuchen, die Datei auszuführen, wird Ihre Shell das Betriebssystem bitten, sich um diese Anfrage zu kümmern. Dies erfordert "Ausführungs"-Berechtigungen. (Auf einigen Systemen, wie OpenBSD, benötigen Sie dafür keine "Lese"-Berechtigungen. Auf anderen Systemen, einschließlich vieler Unix-Variationen, werden Sie dies tun.) Die Datei muss möglicherweise mit einem geeigneten Header beginnen (z. B. #!/bin/sh ), sodass das Betriebssystem dies als Skriptdatei erkennt. Das Betriebssystem führt eine Kopie der angeforderten Shell aus und weist diese Shell an, den Inhalt des Skripts auszuführen. Wenn die Shell-Umgebung geändert wird (z. B. eine Variable bekommt einen neuen Wert), wird das Arbeitsverzeichnis geändert (mit cd ), wird ein Dateideskriptor umgeleitet (mit exec ) usw.), wirkt sich dies nur auf die Sub-Shell aus, die für das Skript aufgerufen wurde, und kann die Umgebung in der übergeordneten Shell, die die Skriptdatei aufgerufen hat, nicht ändern.


Niemand sonst hat es erwähnt, da es oft vergessen wird.

Ihr größter Hinweis wäre der hilfreiche Befehl 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

BEARBEITEN:

Einige Leute haben in den Kommentaren darauf hingewiesen, dass dies nicht in einigen Distributionen enthalten ist - vielleicht ist es ein installierbares Paket oder auf irgendeine Weise aktiviert - ich hatte es standardmäßig in Gentoo;)

Es enthält das wunderbare which - das Ihnen sagt, welche ausführbare Datei aufgerufen wird, und whereis, das Ihnen alle Pfade zu einer von Ihnen benannten ausführbaren Datei gibt, und ihre Manpages (falls sie in mehreren Pfaden existiert).


Linux
  1. Wie erhalte ich die Bash-Vervollständigung für Befehlsaliase?

  2. Wie lässt sich Type-Ahead auf die Bash-Verlaufssuche anwenden (Strg-R)?

  3. Wie führe ich eine Anwendung für eine festgelegte Zeit in der Shell aus?

  4. So konfigurieren Sie eine eingeschränkte Bash-Shell unter Linux

  5. Shell - Wie finde ich das Verzeichnis eines Befehls?

Shell-Scripting für Anfänger – So schreiben Sie Bash-Scripts unter Linux

So suchen Sie nach Dateien über die Linux-Befehlszeile

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

Wie führe ich einen Befehl in einem Shell-Skript aus?

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl

So suchen Sie nach Dateien mit Regex im Linux-Shell-Skript