从终端打开文件


30

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

okular file.dvi

这将打开应用程序,但还会显示应用程序的状态。我们无法关闭终端,因为它会终止进程。不幸的是,例如,如果您尝试创建LaTeX文件,则将需要一个选项卡用于文本编辑器,一个选项卡用于dvi文件,依此类推。而且,如果您尝试从终端打开所有窗口,则可以将其忘记。我正在尝试尽可能多地使用该终端,而当我拥有Yakuake时,仍然麻烦不已,因为它具有如此众多的选项卡,并且看到其中哪些选项卡被我杀死了,依此类推。

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


给定您的请求,关于看不到任何输出,查看器不是终端的子进程等,对于仅使用键盘快捷方式打开查看器,或使用例如grun来传递文件名的情况,这似乎是一个理想的选择。 ,比坚持使用终端更合适。
jmetz 2012年

我不介意看不到任何输出...我介意必须为多个应用程序打开多个终端/选项卡。我选择的答案非常适合我的所有喜好。
Tipsy

Answers:


51
xdg-open file.dvi

xdg-open将使用默认应用程序打开任何文件。另外,您可以关闭终端而不会杀死该应用程序。

由于xdg-open名称很长,我在其中添加了一个别名.bashrc

alias open='xdg-open'

甜!这是最好的,甚至比我选择的还要好!然后您会获得“复兴”徽章:)
值得注意的是2012年

简单很棒!
Yugal Jindle 2013年

只是要指出,由于这实际上并未运行该程序,因此,您可以在不创建该程序的新实例的情况下打开文件。这意味着您可以打开一个文件,它将在已打开的应用程序实例中自动打开。
Arc676 '17

如果您最近从Mac转到Linux,则可能是个好主意 alias open="xdg-open"
Pedro Luz

16
okular file.dvi &

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


哇!完善!有趣的是...我在Google上搜索“从终端打开而不显示状态”,从没想到它的行为就像一个单独的过程!不幸的是,它说我必须等待8分钟,所以……
值得注意的是2012年

14

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

如果您仅使用okular file.dvi &该程序,则通常会在工作过程中仍在终端上报告事件


6

例如,evince file.pdf &关闭终端仍将关闭进程,因此它仍然是终端的子进程,并且没有独立性;nohup evince file.pdf &将允许您在不关闭程序的情况下关闭终端,因为nohup意味着将关闭进程关闭(挂起)的任何信号。您也可以以类似的方式取消流程,请参见此处的讨论。


谢谢,我不知道。我使用Yakuake,但我从未关闭过它,所以这不是问题。但是了解这样的事情总是有用的。
Tipsy

我刚刚编辑了我的

抱歉-我忘了在&末尾
加上

1
当我尝试尝试时evince file.pdf &,退出终端机并不会终止进程……
值得注意的是

1
当您启动子进程时,它属于父进程。在这种情况下,证据是属于终端的子进程。因此,当您关闭终端时,它也会关闭子进程。nohup分隔了此所有权,因此如果要关闭终端,则使用它。但是,默认情况下,nohup在您的主文件夹中创建一个文件nohup.out。如果您不想要该文件,请按如下方式使用重定向:nohup evince file.pdf &>/dev/null &
Paddy Landau
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.