![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
如何理解Linux下使用“./”运行程序
1个回答
展开全部
我们在Linux下运行程序的时候,一般都是这样的操作的,例如启动Tomcat:
[root@hostname bin]# ./catalina.sh run
我一直不理解这个“./”到底是什么意思,其实很好理解。
1.首先,我们看一下Windows在命令行里是怎么运行可执行程序的:
当前目录在D盘时,我运行C盘下的微信,需要指定完整的路径;当前目录就在微信的安装目录下时,我运行微信,直接指定exe可执行文件名就可以了。
搞懂了Windows怎么运行程序,Linux也是一样,说白了,都是直接敲文件名就能执行。
2.那Linux中的“.”到底是啥意思?为啥一定要敲一个“./”呢?
.和./就是表示当前目录。同Windows一样,Linux也是当前目录下没有可执行文件时,需要指定完整的路径;当前目录下有可执行文件时,直接指定可执行文件名就可以了。只不过Linux有点呆呆的,执行当前目录下的可执行文件时,必须要额外多敲一个"./",否则的话它自己不知道在当前目录下找这个可执行文件。
不加这个“./”,Linux就会从环境变量PATH中定义的路径中找可执行文件,只有加了这个“./”之后,Linux才会从当前目录中找可执行文件。
外延1:Windows和Linux中的command not found道理也是一样的,都是给定的路径不正确,导致找不到可运行文件。
Windows中直接运行微信如图:
Linux中直接运行Tomcat如图:
外延2:Windows中的PATH这个环境变量和Linux中的PATH作用是一样的
Windows中能直接运行记事本,就是因为环境变量PATH里设置了C:\Windows\System32这个路径
当把PATH里中的C:\Windows\System32这个路径去掉之后,就无法直接在命令行中运行记事本了。
[root@hostname bin]# ./catalina.sh run
我一直不理解这个“./”到底是什么意思,其实很好理解。
1.首先,我们看一下Windows在命令行里是怎么运行可执行程序的:
当前目录在D盘时,我运行C盘下的微信,需要指定完整的路径;当前目录就在微信的安装目录下时,我运行微信,直接指定exe可执行文件名就可以了。
搞懂了Windows怎么运行程序,Linux也是一样,说白了,都是直接敲文件名就能执行。
2.那Linux中的“.”到底是啥意思?为啥一定要敲一个“./”呢?
.和./就是表示当前目录。同Windows一样,Linux也是当前目录下没有可执行文件时,需要指定完整的路径;当前目录下有可执行文件时,直接指定可执行文件名就可以了。只不过Linux有点呆呆的,执行当前目录下的可执行文件时,必须要额外多敲一个"./",否则的话它自己不知道在当前目录下找这个可执行文件。
不加这个“./”,Linux就会从环境变量PATH中定义的路径中找可执行文件,只有加了这个“./”之后,Linux才会从当前目录中找可执行文件。
外延1:Windows和Linux中的command not found道理也是一样的,都是给定的路径不正确,导致找不到可运行文件。
Windows中直接运行微信如图:
Linux中直接运行Tomcat如图:
外延2:Windows中的PATH这个环境变量和Linux中的PATH作用是一样的
Windows中能直接运行记事本,就是因为环境变量PATH里设置了C:\Windows\System32这个路径
当把PATH里中的C:\Windows\System32这个路径去掉之后,就无法直接在命令行中运行记事本了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询