Я запускаю симуляцию, которая должна начинаться с некоторого каталога, но не помню, из какого каталога я командовал симуляцией. Я использую python для запуска симуляции, поэтому
ps aux | grep PID
показывает только то, где находится исполняемая программа. (/ USR / бен / питон). Тем не менее, я хочу знать, где работает команда с самого начала, где находится файл, который я запускаю.
Буду очень признателен за любые полезные комментарии!
Спасибо :))
Возможно, вы захотите использовать команду history
, чтобы увидеть, какую команду вы действительно использовали?
Чтобы увидеть путь скрипта Python, вы можете обычно видеть его с помощью ps
(используя w
, широкий, если необходимо):
~% 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
Например, процесс 2136 имеет вид сценарий /home/romano/software/wallpap/bg_slideshow.py
. Если вы хотите узнать, какой рабочий каталог процесса, выполните
~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano
Процесс выполняется с /home/romano
в качестве текущего каталога.
В файле /proc/2136/cmdline
есть полная спецификация командной строки - то же, что вы видите в ps
, с командами и аргументом, разделенными 0-значными байтами (для сохранения пробелов). Вы можете увидеть это на своем терминале с помощью
% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py %
, где «tr» печатает пробел для каждого найденного символа «nul». (ложный% в конце связан с тем, что файл не заканчивается символом перевода строки).
Файловая система / proc является действительно полезным инструментом - полная документация немного «трудна», но часто бывает полезно иметь ссылку на нее: https://www.kernel.org /doc/Documentation/filesystems/proc.txt
Используйте команду which
. Например, which ifconfig
выводит местоположение команды ifconfig.