
在window下,如需在cmd命令行中输入窗口中运行某一程序,则需要进入到该程序所在目录才可以直接运行该程序。如果需要在不进入该目录下就运行程序的话,则需要在安装完改程序后,设置环境变量,将bin目录添加到系统环境变量中。即想要在终端运行程序,必须要程序所在的绝对路径或相对路径,以告诉终端我想要运行的程序在哪里。
在Linux中,.字符表示工作目录,斜杠/则是路径分隔符,用于工作目录和文件名。由于SRAtoolkits为非安装软件,解压即可用,解压后其bin文件下的程序并不包含在Linux系统的环境($PATH)。Linux系统在不指定路径的情况下运行程序时会只搜索环境变量$PATH,而在指定了路径的情况下,则搜索指定路径。这就是为何会造成上述问题的原因。
环境变量($PATH):决定了shell将到哪些目录中寻找命令或程序,$PATH的值是一系列目录,当你运行一个程序时,Linux 在这些目录下进行搜索。
运行echo $PATH命令,即可查看到当前所有环境变量的值。
可以通过which ls查看某一命令的bin目录的具体路径。
如果在路径名中存在 ./ 字符,那么就不搜索\ $PATH。
如果 ./ 不在路径名中,那么只在 $PATH 中搜索。
参考Linux-配置环境变量 ()。
~ 表示主目录,也就是当前登录用户的用户目录。例如,我的拥护名是shpc,则 ~ 表示/home/shpc
/是指根目录:就是所有目录最顶层的目录。
./表示当前目录,./一般需要和其他文件夹或者文件结合使用,指代当前目录下的东西。
..表示上级目录,../ 指代上级目录下的东西。
Linux 终端中可以通过ctrl + shift + c 来进行复制和ctrl + shift + v来黏贴(在window下ctrl + c 复制的内容来到Linux终端后也可以ctrl + shift + v来黏贴到指定位置。)
在类Unix系统中,默认搜索目录中并不包含当前目录 ,而./表示当前目录,直接输入命令(如 build.sh )linux系统会去环境变量PATH里寻找名为build.sh的文件,显然无法找到。
“ ./ ”表示当前目录 ,Linux系统无法找到 build.sh (path系统变量不包含当前目录),则执行程序时加入 “ ./ ”(如./build.sh) 将当前目录纳入搜索目录集,就可以找到需要运行的可执行文件。 由上述描述可以推测出,使用完整路径也可以搜索到当前目录下的文件。
PS:win/dos的默认搜索路径里有当前目录,所以不需要加 “ ./ ”。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)