xinit /usr/bin/firefox
似乎做了预期的事情:在没有窗口管理器的情况下运行 Firefox。
xinit firefox
好像做的差不多,只是跟在xterm
后面跑了个小。
有人可以解释我这里发生了什么吗?
我怀疑您根本没有~/.xinitrc
文件。当xinit
启动时,它寻找该文件,如果没有找到它,然后它运行一个微小xterm
。确切地说,它运行:
xterm -geometry +1+1 -n login -display :0
Run Code Online (Sandbox Code Playgroud)
此外,命令行为xinit
:
xinit [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
Run Code Online (Sandbox Code Playgroud)
我们可以忽略--
(右侧)之后的部分,因为那是针对服务器(X 服务器)端的,您只是在那里使用默认值。现在对于客户端(左侧),您有一些模棱两可的东西:[ [ client ] options ... ]
. 换句话说,xinit
优先选择 options而不是client。
该行为实际上在以下内容中描述man
:
客户端程序名称和服务器程序名称都必须以斜杠 (/) 或句点 (.) 开头。否则,它们将被视为要附加到其各自启动行的参数。这使得添加参数(例如,前景色和背景色)成为可能,而无需重新键入整个命令行。
所以:
/usr/bin/firefox
是X客户端,所以执行firefox
是一个客户端选项,因此xterm
被执行,带有上面的这些参数和一个额外的参数(选项):“firefox”。正是这个:
xterm -geometry +1+1 -n login -display :0 firefox
Run Code Online (Sandbox Code Playgroud)