我想要一种在 SSH 终端中快速启动程序的方法。但我不想记住确切的命令。例如,如果我在 kupfer/synapse/quicksilver 或 unity search 中输入“fox”,它将打开 firefox。同样,如果我输入“浏览器”,它会打开 Firefox。
与此等效的命令行是什么?这样我就可以输入并在终端中browser
列出firefox
我当然熟悉点击选项卡,但这假设我的前几个字母是正确的,并且不允许我输入“浏览器”。我熟悉 findutilslocate
命令,但同样的问题。我希望通过文本获得流畅的桌面体验,就像lynx
浏览器通过控制台提供网络体验一样。
答案1
有几个命令行 shell。交互式使用的主要有:
您更有可能发现此类高级功能要么内置于 Fish 中,要么通过某些自定义代码在 zsh 中提供(随 zsh 一起提供或通过第三方插件提供)。对你来说不幸的是,我认为 Fish 没有任何像你正在寻找的东西,而且我也不知道 zsh 有什么真正好的东西。
寻找fox
在 zsh 中,您可以根据输入名称的一部分来完成。其工作原理取决于配置。通过以下配置,您可以键入*fox
并按Tab以完成firefox
:
autoload -U compinit; compinit
zstyle ':completion:*' completer _expand _complete _match _prefix
您可以从在没有配置文件的情况下启动 zsh 时显示的配置屏幕中获取此设置。您可能想尝试一下与完成相关的配置选项。
寻找browser
查找browser
是一个非常不同的问题,因为信息并不存储在同一个地方。获取firefox
只fox
需要查看可执行文件的名称,而firefox
a 的信息browser
必须来自其他地方。
您可以使用恰到好处命令根据程序顶部的一行描述来查找程序文档。
apropos browser
在某种程度上,这是对您的问题的正式答案 - 这是根据程序的描述查找程序的命令行方式。但您可能不会发现它那么方便,原因有两个:
命令行程序比可以从 GUI 运行的程序多得多,因此
apropos
输出中的噪音也多得多。该apropos
命令还向您显示编程接口;你可以把它删掉apropos -s 1,8 browser
或
apropos -s 1 browser
排除系统管理命令。数字是手册页部分。手册页顶部的一行描述由每个应用程序的开发人员维护,他们并不总是使用相同的术语。因此,有时您会错过某个应用程序,因为它的开发人员使用了不同的方式来描述该应用程序。例如,如果您只想查找网络浏览器,你可以运行
apropos -a web browser
您会找到
lynx
和firefox
,但不是links
因为它被描述为“WWW 浏览器”。
查找应用程序的 GUI 界面基于.desktop
文件。您可以使用以下命令浏览这些文件
grep browser /usr/share/applications/*
可以在此基础上构建一个用户界面,但我无法提供。