hash

Aus Foxwiki

hash - Verwaltung der Hash-Tabelle für Kommando-Pfade

Beschreibung

Installation

Anwendungen

Fehlerbehebung

Syntax

Optionen

Option Beschreibung
-d Vergessen des Speicherortes für jeden NAME
-l Anzeige in einem Format, das als Eingabe wiederverwendet werden kann
-p Pfadname verwendet PATHNAME als den vollständigen Pfadnamen von NAME
-r vergisst alle gespeicherten Pfade
-t gibt den Speicherort jedes NAMENS aus, wobei jedem Speicherort der entsprechende NAME vorangestellt wird, wenn mehrere NAMEs angegeben sind

Parameter

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

TMP

Beschreibung

Ein angegebenes Kommando muss von der Shell gesucht werden
  • Die Suche, vor allem wenn sie die Angaben aus PATH einschließt, kostet Zeit.
  • Deswegen merkt sich die Bash die Zugriffspfade zu allen externen Kommandos in einer Hashtabelle.
Hashtabelle wird zuerst konsultiert
  • Nur wenn der Pfad zu einem Kommando dort nicht erfasst wird, werden die Verzeichnispfade durchsucht
    • Es sei denn hashall ist nicht gesetzt (siehe set)
  • Beim nächsten Zugriff auf das Kommando wird haman den Geschwindigkeitszuwachs spüren.

Pfad-Cache

$ hash 
  • (ohne Parameter) zeigt die Liste der gemerkten Pfade zu den Programmen an.
  • Um die Zugriffe auf Programme zu beschleunigen, verwaltet die Bash einen internen Cache der Pfade auf bereits gestartete Programme.
  • Wird ein Programm erneut gestartet, kann die zeitaufwendige Suche entlang des Pfades entfallen.
  • Bei der Gelegenheit wird auch gleich angezeigt, wie oft das Programm gestartet wurde.

Verwerfen alle gespeicherten Pfade

$ hash -r

Anzeige der Hashtabelle

$ hash
hits    command
   2    /bin/ls
   1    /bin/mv
   6    /bin/sh
   8    /usr/bin/vi
   1    /bin/chmod
   3    /bin/date
   1    /usr/bin/id
   1    /usr/bin/man

Gleichnamigen Kommandos

  • Liegt eines in der Hashtabelle vor, so kann auf das andere nur über die vollständige Pfadangabe zugegriffen werden
  • Soll dieses "benachteiligte" Kommando nun vermehrt eingesetzt werden, ist ein Löschen der Hashtabelle mittels »-r« sinnvoll
$ hash -r
$ hash
hash: hash table empty

Indem »hash« mit einem oder mehreren Kommandonamen aufgerufen wird, werden diese Kommandos gesucht und in die Hashtabelle aufgenommen; sie werden jedoch nicht gestartet (sinnvoll ist dies eventuell in Startskripten).

Pfad zur Tabelle hinzufügen

$ hash -p <Pfad_zum_Kommando>


TMP

$ hash [-lr] [-p Pfadname] [-dt] [Name ...]

Programpfade merken oder anzeigen.

Ermittelt und speichert den vollständigen Pfadnamen jedes Kommandos NAME. Wenn keine Argumente angegeben werden, werden Informationen über gespeicherte Kommandod angezeigt.

Exit-Status

Gibt Erfolg zurück, es sei denn, NAME wird nicht gefunden oder es wird eine ungültige Option angegeben.