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