Какие команды запускаются клавишами ALT + F2 и «r»?

Bash имеет встроенную команду под названием time. Так что если вы просто введете time, он будет использовать встроенную команду оболочки, которая не имеет опций, таких как -f. Но man time (в котором говорится о -f) даст manpage программы /usr/bin/time. Поэтому, если вы хотите использовать опции, описанные в manpage, вы должны убедиться, что вызываете программу, а не встроенную оболочку. Один из способов достижения этого - использование полного пути.

(IMHO, это очень некрасиво в bash)

Для получения дополнительной информации смотрите ссылки под вопросом.

2
10.05.2019, 18:54
2 ответа

После публикации этого вопроса и с помощью обсуждения, последовавшего за ранее опубликованным ответом, я нашел следующий ответ в исходном коде Cinnamon:

/**
 * cinnamon_global_reexec_self:
 * @global: A #CinnamonGlobal
 *
 * Restart the current process.  Only intended for development purposes.
 */
 void cinnamon_global_reexec_self (CinnamonGlobal *global)
 {
     meta_restart ();
 }

Я реализовал доступ к этой функции как команду bash (restartcinnamon), добавив следующую строку в мой файл .bashrc:

alias restartcinnamon='dbus-send --type=method_call --print-reply \\
      --dest=org.Cinnamon /org/Cinnamon org.Cinnamon.Eval \\
      string:'\''global.reexec_self()'\'''   \\
      /usr/bin/dbus-send
6
27.01.2020, 22:02

Cinnamon, как и GNOME, из которого он был создан, перезапустит сеанс, когда вы наберете rв окне Alt-F2 . Он просто говорит ему повторно -выполнить себя, поэтому он не вызывает новую команду, а говорит оконному менеджеру Cinnamon повторно -выполнить.

5
27.01.2020, 22:02

Теги

Похожие вопросы