Например, я обычно открываю коврик для мыши (эквивалент gfit для xfce) из меню приложений. Тем не менее, я знаю, что вы также можете сделать это в терминале, набрав mousepad
.
Следуя этому примеру, я хочу, чтобы всякий раз, когда я открывал коврик для мыши через графический интерфейс, в файле журнала записывалась новая строка, в которой указывалось что-то вроде Sep 5 15:35:11 lucho@lucho:~$ mousepad
. В общем, я хочу регистрировать все действия с графическим интерфейсом, которые потенциально выполнимы через командную строку (например, открытие программ, изменение разрешений, изменение системных настроек и т. Д.), Но записанные в альтернативном формате выполнения командной строки . Я хочу это, чтобы улучшить мои знания о том, как использовать командную строку (не просматривая man
страницы). Есть много вещей, которые я делаю через графический интерфейс, которые я не делаю через командную строку (некоторые потенциально автоматизируются с помощью скрипта или сочетаний клавиш), и наличие этого файла журнала было бы хорошим способом изучить их.
Я знаю о существовании файла системного журнала, /var/log
но это не то, что мне нужно. Насколько я знаю, приложение Activity Log Manager из репозиториев Ubuntu не показывает формат командной строки. Мне нужно что-то вроде файла .bash_history, который существует в моей домашней папке, но записывает мои действия на основе графического интерфейса.
unity-control-center background
илиgnome-control-center background
(в зависимости от вашего рабочего стола, Unity или XFCE или GNOME). Но внешний мир, наверное, только увидитgnome-control-center
Ответы:
Введение
Хотя невозможно зарегистрировать все действия графического интерфейса, такие вещи, как команды регистрации, соответствующие открытым окнам, могут быть выполнены. Ниже приведен простой скрипт Python, который делает эту работу. Он все еще находится в разработке, но выполняет 90% необходимой задачи.
Исходный код
Тестовый забег:
Сценарий показывает метку времени, тип события, PID окна и соответствующую команду.
Как пользоваться
Применяются стандартные правила любого сценария. Убедитесь, что вы храните скрипт в
~/bin
каталоге. Если у вас нет~/bin
каталога, создайте его. Сохраните файл скрипта там и убедитесь, что он исполняется сchmod +x ~/bin/log_open_windows.py
. После этого вы можете запустить его из командной строки в любое время, позвонив~/log_open_windows.py
в командной строке.источник
Предложение такого рода файла журнала в качестве основы для обучения - действительно блестящая идея!
К сожалению, многие действия программ с графическим интерфейсом реализованы в самой программе, без использования внешних команд; И даже если он использует внешние команды, это может быть не так, как в оболочке;
Так что этого не существует, и его нелегко реализовать.
Но у меня есть решение для части проблемы: имя программы в GUI иногда отличается от имени программы, которое нужно знать для команды оболочки, - не только если имя GUI переводится на местный язык.
Например, как запустить программу
Files
в командной строке?Нам нужно посмотреть все
*.desktop
файлы на имя. Там мы находим команду вExec
строке:locate -b '.desktop' | xargs grep -ls '^Name.*=Files$' | xargs grep '^Exec.*'
перечисляет имена файлов на рабочем столе и команды для программы с графическим интерфейсом
File
- замените его на точное имя, которое вы ищете - даже если это несколько слов (для поиска по подстроке, пропустите=
и$
).С помощью команды, я считаю ,
Files
может бытьnautilus
,dolphin
илиactive-filebrowser
:источник