Ich führe eine Simulation aus, die in einem bestimmten Verzeichnis gestartet werden soll, weiß aber nicht mehr, aus welchem Verzeichnis ich die Simulation gestartet habe. Ich verwende Python, um die Simulation auszuführen, also
ps aux | grep PID
zeigt nur an, wo sich das ausgeführte Programm befindet. (/usr/bin/python). Ich möchte jedoch wissen, wo der Befehl vom allerersten Punkt aus ausgeführt wird, wo sich die von mir ausgeführte Datei befindet.
Ich würde mich über jeden hilfreichen Kommentar sehr freuen!
Danke :)
Antwort1
Vielleicht möchtest Du den history
Befehl nutzen, um zu sehen, welchen Befehl Du tatsächlich verwendet hast?
Antwort2
Um den Pfad des Python-Skripts anzuzeigen, können Sie ihn normalerweise wie folgt anzeigen ps
( w
ggf. mit der Option „wide“):
~% ps ugxw | grep python
romano 2136 0.0 0.2 10524 4132 ? S 09:13 0:00 python /home/romano/software/wallpap/bg_slideshow.py
romano 5839 0.0 0.0 4440 832 pts/1 S+ 10:00 0:00 grep python
Beispielsweise ist Prozess 2136 das Skript /home/romano/software/wallpap/bg_slideshow.py
. Wenn Sie wissen möchten, welches das Arbeitsverzeichnis des Prozesses ist, geben Sie
~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano
/home/romano
Der Prozess wird im aktuellen Verzeichnis ausgeführt .
In der Datei /proc/2136/cmdline
befindet sich die vollständige Befehlszeilenspezifikation --- dieselbe, die Sie in sehen ps
, wobei die Befehle und Argumente durch 0-wertige Bytes getrennt sind (um die Leerzeichen beizubehalten). Sie können dies auf Ihrem Terminal mit sehen
% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py %
wobei „tr“ für jedes gefundene „Nul“-Zeichen ein Leerzeichen ausgibt. (Das fehlerhafte % am Ende liegt daran, dass die Datei nicht mit einem Newline-Zeichen endet.)
Das /proc-Dateisystem ist ein wirklich nützliches Werkzeug. Die vollständige Dokumentation ist etwas „schwierig“, aber es ist oft nützlich, einen Link dazu zu haben:https://www.kernel.org/doc/Documentation/filesystems/proc.txt
Antwort3
Verwenden Sie den which
Befehl. Gibt beispielsweise which ifconfig
den Speicherort des ifconfig-Befehls aus.