Wenn ich egxc kompiliere durch:
GCC x.c -o x
Um das Ergebnis auszuführen, muss ich schreiben:
./x
Und tippe einfach:
x
Schlägt mit dieser Meldung fehl:
x: Befehl nicht gefunden
Das bedeutet, dass Linux das aktuelle Verzeichnis nicht danach durchsucht! Gibt es (ich bin sicher, dass es einen gibt) einen vernünftigen Grund für dieses Verhalten?
Antwort1
Denn standardmäßig befindet sich das aktuelle Arbeitsverzeichnis nicht in der PATH
Variable.
Dies ist eine Sicherheits-/Komfortmaßnahme. Wenn Sie in Ihrem aktuellen Arbeitsverzeichnis Binärdateien/Skripte mit den Namen cd
, usw. haben, wäre es sehr ärgerlich, wenn diese standardmäßig ausgeführt würden.ls
Antwort2
Dies bedeutet, dass sich das aktuelle Verzeichnis nicht in der Variable $PATH befindet.
Antwort3
Sie können dies beheben, indem Sie das aktuelle Verzeichnis (dargestellt durch einen einzelnen Punkt) zur PATH
Umgebungsvariable hinzufügen.
Die Vorgehensweise hängt von der verwendeten Shell ab.
Wenn Sie Bash verwenden, können Sie die Zeile export PATH=$PATH:.
zur .bashrc
Datei in Ihrem Home-Verzeichnis hinzufügen.
Wenn Sie CSH oder TCSH verwenden, fügen Sie die Zeile
set PATH = ($PATH .)
zur Datei .cshrc in Ihrem Home-Verzeichnis hinzu.
Meiner Meinung nach ist dies für einen Desktop-Computer zu Hause aus Sicherheitsgründen eine akzeptable Vorgehensweise.