为程序分配命令行

为程序分配命令行

在我的 Linux 上,我安装了同一个程序的三个版本。

所以我有 QWERTY4.0、QWERTY4.1 和 QWERTY4.2。

我交替使用它们,但默认的 Linux 命令行“qwerty”将我发送到 QWERTY4.0 版本。

我如何更改此命令应转到哪个版本?更一般地说,如果命令不存在,如何指定命令来打开某个程序?

答案1

您可以通过在二进制文件前面加上精确路径来启动程序的特定版本,例如/path/to/qwerty4.0/qwerty/path/to/qwerty4.1/qwerty等等。

您可以创建一个别名并将其添加到您的 shell 配置中(.bashrc如果您的 shell 是 bash):

alias qwerty40=/path/to/qwerty4.0/qwerty
alias qwerty41=/path/to/qwerty4.1/qwerty
alias qwerty41=/path/to/qwerty4.2/qwerty

答案2

一些快速提示:

which qwerty
file $(which qwerty)

哪个输出可执行文件/符号链接的绝对路径。第二个命令只是从哪个命令,这样我就不必输入它了。您也可以使用类型命令(而不是哪个)来找出绝对路径。 文件会告诉您它是否是符号链接、脚本或者甚至是可执行文件。

该文件可能是指向 qwerty4.0 的简单符号链接。如果是这样,那么它有可能通过备择方案(或者更新替代方案) 系统。您可以通过查看 的输出来弄清楚这一点update-alternatives --get-selections。如果是,您可以使用 之类的命令更改默认值update-alternatives --config qwerty。它不受 控制备择方案系统(但是一个符号链接)您可以像这样更新符号链接:

ln -s -f /path/to/qwerty4.2/qwerty /usr/local/bin/qwerty

...假设which qwerty给了在/usr/local/bin/qwerty

它也可能是一个启动器,通常是 shell/bash 脚本。如果是这样,您可以尝试更改(编辑)它以指向启动正确的版本。您还可以在相应的应用程序目录中查找此启动器的更新版本,然后将其复制到位。

如果它是一个直接可执行文件,您可能只需复制一个新的,但如果是这样,我宁愿建议用适当的符号链接替换它。

别名已经提到过了。别名很好用,但如果你需要一个系统范围的解决方案,符号链接通常是更快的方法。此外,根据系统范围的 shell 别名的设置方式,它们可能无法在不同的 shell 等中工作。本地(bash)别名可以保留在.bashrc或者可能.bash_别名. 如果您想要系统范围的别名/etc/profile.d/可能是放置它们的好地方(应该适用于大多数/所有 shell)。

相关内容