从终端打开文件

not*_*psy 42 command-line files

当我们想从终端打开一个应用程序或文件时,我们输入,比如,

okular file.dvi
Run Code Online (Sandbox Code Playgroud)

这将打开应用程序,但也会显示应用程序的状态。我们无法关闭终端,因为它会终止进程。不幸的是,例如,如果您尝试创建一个 LaTeX 文件,您将需要一个用于文本编辑器的选项卡,一个用于 dvi 文件的选项卡,等等。如果您试图从终端打开所有窗口,您可以忘记它。我正在尝试尽可能多地使用终端,虽然我有 Yakuake,但拥有这么多标签并查看其中哪些有我杀死的应用程序等仍然很麻烦。

那么,有没有办法从终端打开应用程序/文件,以便不显示状态并立即给出提示,以便我们可以使用它来打开更多应用程序?

Mih*_*otă 71

xdg-open file.dvi
Run Code Online (Sandbox Code Playgroud)

xdg-open将使用其默认应用程序打开任何文件。作为奖励,您可以在不终止应用程序的情况下关闭终端。

由于xdg-open是一个很长的名字,我把它的别名放在.bashrc

alias open='xdg-open'
Run Code Online (Sandbox Code Playgroud)

  • 如果您最近从 Mac 迁移到 Linux,那么执行 `alias open="xdg-open"` 可能是个好主意 (2认同)

use*_*992 17

okular file.dvi &
Run Code Online (Sandbox Code Playgroud)

只需附加一个&即可使您的命令作为单独的进程运行。


jos*_*lvo 14

okular file.dvi &> /dev/null &会好一点。这样,程序就不会写入终端。

如果你只使用okular file.dvi &该程序仍然会在终端上报告事情,通常是在你工作的中间


小智 6

比如说,evince file.pdf &关闭终端仍然会关闭进程,所以它仍然是终端的子进程,没有独立性;nohup evince file.pdf &将允许您在不关闭程序的情况下关闭终端,因为 nohup 意味着关闭(挂断)进程的任何信号都将被忽略。您也可以以类似的方式否认进程,请参阅此处的讨论。