`xinit /usr/bin/firefox` 与 `xinit firefox`

Min*_*Kim 5 x11 xinit

xinit /usr/bin/firefox 似乎做了预期的事情:在没有窗口管理器的情况下运行 Firefox。

xinit firefox好像做的差不多,只是跟在xterm后面跑了个小。

有人可以解释我这里发生了什么吗?

gro*_*mal 6

我怀疑您根本没有~/.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)