如何在不给出完整路径的情况下调用命令?

时间:2014-10-11 10:55:35

标签: shell ubuntu terminal command

我在/usr/share/my-editor/editor-executable下安装了一个文本编辑器。

当我想在终端中启动编辑器时,我必须编写完整的路径:

# /usr/share/my-editor/editor-executable file-to-open

我会为编辑器创建一个命令,所以我可以简单地数字:

# my-editor file-to-open

我该怎么办?

2 个答案:

答案 0 :(得分:4)

无法启动可执行文件的原因是shell在PATH环境变量(已知路径)中定义的任何路径中查找命令。 您可以使用以下方法检查已知路径

echo $PATH

如您所见,/usr/bin定义在那里以及其他路径。

无论如何,你可以通过多种方式获得你想要的东西。


请注意,当我使用目录时,该命令仅适用于当前用户。

创建别名my-editor

当您想要运行已知路径中找不到的命令时,这是我的最爱。对你来说这也是一个好主意。在bash中,您可以将别名放在~/.bash_aliases

echo alias my-editor=/usr/share/my-editor/my-editor-executable >> ~/.bash_aliases

在某些已知路径

中创建指向您文件的链接

这就是你完成它的方式并且只是为了澄清,如果你在任何已知路径中创建了链接,那么它也会起作用。

ln -s /usr/share/my-editor/my-editor-executable /usr/bin/my-editor

定义名为my-editor

的函数

我认为这是因为你的需求太多了,但如果你想尝试一下,这取决于你。它可用于其他目的。
您必须在shell读取的文件中定义它。例如~/.bashrc中的bashShell files invocation.

cat >> ~/.bashrc << "EOF"
function my-editor() {
    /usr/share/my-editor/my-editor-executable "$@"
}
EOF

/usr/share/my-editor/添加到PATH

您可以为PATH变量添加新路径。在Ubuntu中,PATH变量通常在/etc/environment中设置,如果您修改此文件,则所有用户都可以访问新路径。

但是,如果您希望成为唯一可以访问新路径的人,则可以在其中一个个人 shell文件中进行设置。例如在bash~/.bashrcShell files invocation.

echo 'export PATH="$PATH:/usr/share/my-editor/"' >> ~/.bashrc

[bash]在哈希表中输入命令

bash中获得相同结果的单一方法是将my-editor添加到shell hash表中。同样,您必须在bash~/.bashrc)读取的某个文件中添加该命令。

echo 'hash -p /usr/share/my-editor/my-editor-executable my-editor' >> ~/.bashrc

将可执行文件移动到已知路径

最后,如果您不再需要当前目录中的文件(my-editor-executable),则可以将其移至已知路径

mv /usr/share/my-editor/my-editor-executable /usr/bin/my-editor

答案 1 :(得分:0)

我自己回答:

我在/ usr / bin下创建了一个指向可执行文件的链接:

# ln -sF /usr/share/my-editor/my-editor-executable   /usr/bin/my-editor

现在可以运行应用程序&#34; my-editor&#34;通过文件系统中的各个终端