不是太明白运行命令控制台是啥,有两点不明白。
- 重启 gnome-shell 有个很出名的方法:Alt+F2 然后按 “r”。这个 “r” 是什么?只是运行控制台的一个内部命令吗?那么运行控制台有多少个内部命令呢?
- 我可以通过运行控制台执行自己的脚本。但是,我必须指定完整路径,这样脚本才能工作。如果我使用快捷方式 ~/my-path/script,脚本将在编辑器中作为 Nautilus 中的 Display 命令打开。我不明白为什么。
答案1
是的,“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 本身上进行开发时有用
对于第二部分,我们需要确切地了解该_run()
函数的作用https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/runDialog.js。
首先,它处理上面列出的内部命令。
接下来,它使用 解析输入GLib.shell_parse_argv()
,它只是将其拆分为像 /bin/sh 这样的单词,而不进行任何类型的扩展。然后它尝试直接使用 运行结果GLib.spawn_async()
。这将在 中搜索程序$PATH
,这就是为什么像“firefox”这样的内容会按预期工作的原因。
如果失败,它会获取您的全部输入,将“~”扩展至您的主目录,并尝试将其作为文件打开。