Я запускаю симуляцию, которая должна начаться в каком-то каталоге, но не помню, из какого каталога я запустил симуляцию. Я использую python для запуска симуляции, поэтому
ps aux | grep PID
показывает только, где находится исполняемая программа. (/usr/bin/python). Однако я хочу знать, где команда выполняется с самой начальной точки, где находится файл, который я запускаю.
Буду очень признателен за любые полезные комментарии!
Спасибо :)
решение1
Возможно, вы захотите использовать history
команду, чтобы увидеть, какую команду вы на самом деле использовали?
решение2
Чтобы увидеть путь к скрипту Python, вы обычно можете сделать это с помощью ps
(используя w
опцию ,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
Например, процесс 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
решение3
Используйте which
команду. Например, which ifconfig
выводит местоположение команды ifconfig.