Linux执行命令时为何要添加./

如题所述

第1个回答  2022-07-02

在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来黏贴到指定位置。)