linux系统要运行一个程序为啥必须程序在当前目录下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统要运行一个程序为啥必须程序在当前目录下相关的知识,希望对你有一定的参考价值。

linux系统在运行程序时,若不指定具体文件路径,则系统会在环境变量PATH所指定的搜索路径中搜索该程序,如果找到,则执行该程序,如果找不到会报告:command not found (命令未找到)
因此,若想不加路径名运行当前目录下的程序,必须在PATH中进行搜索路径设置,如:
export PATH=$PATH:.
点(.)是指当前目录,点点(..)是指上一级目录
如果,没有在PATH中指定当前目录,则运行程序,必须要加上路径名,如:
./myprog
/tmp/test_prog
参考技术A 这个应该没有必然的联系
运行程序有两种方式
1.
是在程序所在的目录下直接运行./XXX
2.
是在任何目录下运行程序的完整路径,比如/local/test/XXX

在linux中怎么使用sh执行当前目录的程序

command not found:程序1
command not found:程序2
..
为什么啊??

这种提示就是说明你要执行的程序对象没有可执行的权限,要么手动chmod 777,要么在shell命令中加入权限修改 -m XXX; 参考技术A sh 程序名字
或./程序名字
然后需要说明的就是程序的属性必须是可执行的,即具有x属性,你可以试试,我也是刚刚接触shell追问

如果直接点的话可以出来 就是麻烦 我想把他放在里面有没有办法 直接一股脑全部运行了

参考技术B 直接放到里面的话需要看你什么命令了,又些非系统下的命令需要先进入环境,例如oracle的startup,需要先进去sqlplus才行
你要只是一些cd md什么的,看好权限路径,应该没什么问题了

以上是关于linux系统要运行一个程序为啥必须程序在当前目录下的主要内容,如果未能解决你的问题,请参考以下文章

在linux中怎么使用sh执行当前目录的程序

linux下的./本质

Linux系统编程进程地址空间和虚拟地址空间

linux系统下,输入绝对路径程序运行不了

Linux 命令大全

linux为啥没有病毒