如何从终端打开PDF文件?

我以前在Mac终端上工作,我使用的是:
open file2open.pdf

然后PDF文件将在预览或者我的默认阅读器中打开。当我在Ubuntu终端中使用时,我会收到这个错误信息:

Couldn't get a file descriptor referring to the console

26Ubuntu不是Mac(只是指出而已)。 - RolandiXor
2@Roland 但是Mac声称自己是一个基于Unix的系统,所以我认为终端至少会有相同的行为方式。 - yayu
17Linux不是Unix。 - RolandiXor
23Linux是Unix在成长过程中想要成为的样子。 - david6
1你可以使用fbi(Linux帧缓冲图像查看器)apt-get -y install fbi fbgs arch.pdf man fbgs来获取颜色和分辨率。 - user195833
我在寻找如何在Mac上打开PDF文件,而"open"这个词简直完美! - damned
@yayu 这对于基本命令是正确的,但有时候在OS X上的BASH与Linux上的表现不同。 - Kellen Stuart
open 在 Pop! 上可用。 - Erdinc Ay
13个回答

现代系统上的大多数桌面环境(通用)

open file2open.xxx

或者

xdg-open file2open.xxx    

GNOME
  • 直到Xenial(16.04):

    gvfs-open file2open.xxx
    
  • 从Artful(17.10)开始:

    gio open file2open.xxx
    
xxx = 某个文件扩展名)。使用此命令将调用xxx的默认应用程序(例如,如果您想打开PDF,则为evince)。

特定于应用程序

使用 Evince,GNOME 的默认文档查看器: evince file2open.pdf
使用 Okular,KDE 的默认文档查看器: okular file2open.pdf

1所以绝对没有办法在终端内查看PDF文件的文本内容吗?即使将图片删除或转换为ASCII艺术形式? - Vorac
8那是另一个问题。你可以以较少的方式查看。例如:less my-file.pdf - desgua
2使用evince时,您关闭终端后文档也会关闭。根据elmicha的回答,使用xdg-open对我来说效果很好。 - Jon49
1对于gnome(3),这需要libgnome2-bin,它不会默认安装。 - Lode
1evince file2open.pdf是一种简单的方法。 - Vikrant
我使用Okular只是因为它允许我进行高亮标记,但它相当占用资源。如果mupdf有一个高亮功能,我将不再使用其他任何软件,mupdf速度快且按键绑定很棒。 - Ricardo Pietrobon
1open 在 Pop! 上可用。 - Erdinc Ay
我刚刚意识到它也适用于Debian稳定版。 - desgua

您还可以使用:
xdg-open foo.pdf

xdg-open 在 Gnome、KDE、xfce、LXDE 及其他桌面环境中都可以使用。

你可以在你的 ~/.bash_aliases 中设置一个别名:

alias open=xdg-open

2+1。这是Chrome浏览器的一个功能。它也支持URI(例如:xdg-open irc://...)。非常酷。 - crazy2be
3这是正确的答案,而不是上面那个,而且这适用于所有现代的桌面环境。 - OneOfOne

对于所有在Ubuntu世界中迷失的Mac用户...
编辑你的.bashrc文件,并添加:
alias open='gnome-open'

然后你可以直接使用:
open file2open.pdf

在Linux Mint上的Cinnamon桌面环境下不起作用。使用`xdg-open'是一个好方法。 - Cain
无论是在Mint上使用xdb-open file.pdf还是xreader file.pdf。 - zzapper

如果PDF文件很简单...
pdftotext -layout file2open.pdf - | more

我们可以在文本模式、ssh等中使用这个。

如果你想在终端(命令行界面)中查看PDF,试试使用zathura
安装Zathura:sudo apt-get install zathura -y
要查看一个PDF文件,只需运行 => zathura /path/to/xxx.pdf 顺便说一下:无论如何,zathura都需要X11,它不适用于未安装X的服务器。

工作得很好,而且在GitHub上仍然有很好的更新。 - james-see
zathura在当前终端(Gnome)中不显示,而是打开自己的窗口?这是一个GTK应用程序吗? - user598527

如果您已安装了文档查看器,请输入以下命令:
evince Name_of_pdf_file

如果尚未安装,您可以首先使用以下命令进行安装:
sudo apt-get install evince

1当它没有安装时,你可以添加如何安装的说明。 - MadMike

Z shellzsh)具有基于后缀的别名(-s),这些别名允许您在文件扩展名(例如.jpg)和适当的应用程序(例如xreader)之间建立文件关联:

alias -s pdf='xreader'

如果有这样的别名,您只需输入文件名并按 ↵回车键,例如:

file.pdf

zsh shell具有基于后缀的别名(-s),这使您可以在文件扩展名(例如jpg)和适当的应用程序(比如xnview)之间建立文件关联。 - zzapper

你也可以使用
ooffice filename.pdf

打开你的文件在open office中。

在Ubuntu 17.04中,您可以使用以下命令: gio open

在Ubuntu上,至少在16.04版本中,没有gio命令可用。 - luisgonzalez

我个人使用一个shell脚本:

$ cat pdf
#! /bin/bash

gnome-open ${1:-*.pdf}

当您调用pdf时,它将打开当前目录中的所有pdf文件,通过提供参数来指定要打开的pdf文件。我有许多只包含一个pdf文件的目录(例如许多LaTeX目录),因此只需编写pdf就可以节省我很多时间和按键。