我正在使用 Cloud9.io IDE。
我已经下载了 Julia 通用可执行文件并解压缩了它。
sudo wget https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.3-linux-x86_64.tar.gz
tar xvzf julia-1.0.3-linux-x86_64.tar.gz
Run Code Online (Sandbox Code Playgroud)
现在我可以通过julia-1.0.3/bin/julia
.
所以下一步我尝试创建一个符号链接,所以我只需输入julia
. 所以我试过了
sudo ln -s julia-1.0.3/bin/julia julia
当我运行时julia
它说
bash:julia:找不到命令
但该文件显然在我的目录中。我在这里缺少什么?
回答标题中提出的问题。
使符号链接可执行(或就此而言不可执行)不需要任何内容。
实际上,符号链接权限在包括 Linux 在内的大多数操作系统上都没有用处。考虑的执行权限是链接到的文件的权限(如果有)。
仅当 Bash 位于其搜索路径(存储在 PATH 变量中)时,才会找到由其裸文件名指定的可执行文件(即没有前面的路径元素)。当前目录不一定位于搜索路径上。
要查看当前搜索路径,请尝试以下操作:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
要查看命令是否在您的搜索路径上,请尝试以下操作:
which command
Run Code Online (Sandbox Code Playgroud)
如果command
位于搜索路径上,该which
命令将返回该命令在文件系统上的位置。- 要使用命令目录扩展搜索路径,请尝试:
PATH=$PATH:directory_to_be_added
Run Code Online (Sandbox Code Playgroud)
请注意,directory_to_be_added
应该是可执行文件的完整目录名称(而不是相对于当前目录的目录)。
将命令的目录julia
添加到 PATH 后,which julia
应该返回julia
的完整路径名,并且julia
应该可以从文件系统上的任何位置执行。
更改 PATH 是确保 shell 找到您经常使用的可执行文件的通用方法。如果您只想运行一次不在搜索路径上的命令(即一次性尝试),或者您希望覆盖搜索路径,则可以指定包含路径名元素的命令。因此,要运行当前目录中而不是搜索路径上的命令(或者不是搜索路径上具有该名称的第一个命令),您可以使用./command
.