g3k*_*3k0 1 shell terminal ubuntu command
我在 下安装了一个文本编辑器/usr/share/my-editor/editor-executable
。
当我想在终端中启动编辑器时,我必须编写完整路径:
# /usr/share/my-editor/editor-executable file-to-open
Run Code Online (Sandbox Code Playgroud)
我会为编辑器创建一个命令,这样我就可以简单地数字:
# my-editor file-to-open
Run Code Online (Sandbox Code Playgroud)
我能怎么做?
您无法启动可执行文件的原因是 shell 在PATH
环境变量中定义的任何路径(现在已知的路径)中查找命令。您可以使用以下命令检查这些已知路径:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,/usr/bin
在那里定义了 以及其他路径。
无论如何,您可以通过多种方式获得您想要的东西。
请注意,当我使用~目录时,该命令仅对当前用户可用。
my-editor
当您想要运行在已知路径中找不到的命令时,这是我最喜欢的。这对你来说也是个好主意。bash
您可以将别名放在中~/.bash_aliases
。
echo alias my-editor=/usr/share/my-editor/my-editor-executable >> ~/.bash_aliases
Run Code Online (Sandbox Code Playgroud)
这就是您完成此操作的方式,只是为了澄清,如果您在任何已知路径中创建了链接,它也会起作用。
ln -s /usr/share/my-editor/my-editor-executable /usr/bin/my-editor
Run Code Online (Sandbox Code Playgroud)
my-editor
我认为由于您的需求,这太多了,但是否想尝试一下取决于您。它可用于其他目的。
您必须在 shell 读取的文件中定义它。例如~/.bashrc
在bash
. Shell 文件调用。
cat >> ~/.bashrc << "EOF"
function my-editor() {
/usr/share/my-editor/my-editor-executable "$@"
}
EOF
Run Code Online (Sandbox Code Playgroud)
/usr/share/my-editor/
到PATH
您可以向变量添加新路径PATH
。在 Ubuntu 中,PATH
通常会设置该变量/etc/environment
,如果修改此文件,则所有用户都可以访问新路径。
但是,如果您想成为唯一有权访问新路径的人,则可以在个人shell 文件之一中进行设置。例如在bash
:~/.bashrc
。Shell 文件调用。
echo 'export PATH="$PATH:/usr/share/my-editor/"' >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
bash
] 将命令输入到哈希表中获得相同结果的一种独特方法bash
是添加my-editor
到 shellhash
表中。同样,您必须将命令添加到bash
( ~/.bashrc
) 读取的某个文件中。
echo 'hash -p /usr/share/my-editor/my-editor-executable my-editor' >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
最后,如果您不再需要当前目录中的文件( ),只需将其移动到已知路径my-editor-executable
即可。
mv /usr/share/my-editor/my-editor-executable /usr/bin/my-editor
Run Code Online (Sandbox Code Playgroud)