GNOME 中的“运行命令控制台”(Alt+F2) 是什么?

yur*_*rad 5 gnome gnome-shell

我不太明白运行命令控制台是什么,我不太明白两点。

\n
    \n
  1. 有一个著名的重启 gnome-shell 的方法: Alt+F2 然后 \xe2\x80\x9cr\xe2\x80\x9d 。\n这 \xe2\x80\x9cr\xe2\x80\x9d 是什么?只是运行控制台的内部命令?那么\n运行控制台有多少个内部命令?
  2. \n
  3. 我可以通过运行控制台执行我自己的脚本。但是,我\n必须指定完整路径,只有这样脚本才能工作。如果我使用快捷方式 ~/my-path/script,该脚本将在编辑器中作为 Nautilus 中的 Display 命令打开。我不明白为什么。
  4. \n
\n

小智 8

是的,“r”是运行对话框中的内部命令之一。它们记录在https://wiki.gnome.org/Projects/GnomeShell/CheatSheet#Developer_tools

  • 'r' 或 'restart':重新启动 shell
  • 'rt':重新加载 shell 主题(在编写/修改主题时非常有用)
  • 'lg':打开 Looking Glass,它相当于浏览器中 DevTools 的 gnome-shell
  • 'debugexit':退出 gnome-shell,并显示错误退出代码;可能仅当您在 shell 本身上进行开发时才有用

对于第二部分,我们需要在https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/runDialog.js_run()中准确了解该函数的作用。

首先,它处理上面列出的内部命令。

接下来,它使用 解析输入GLib.shell_parse_argv(),这只是将其拆分为 /bin/sh 等单词,并且不进行任何类型的扩展。然后它尝试直接使用 运行结果GLib.spawn_async()。这将搜索该程序$PATH,这就是为什么像“firefox”这样的东西会如您所期望的那样工作。

如果失败,它将获取您的整个输入,将“~”扩展到您的主目录,并尝试将其作为文件打开。