当前位置: 技术问答>linux和unix
用gcc编译的c文件(如a.out)运行时为什么还要写成./a.out,不加路径的话不可执行?
来源: 互联网 发布时间:2014-12-22
本文导语: 如何解决?谢谢!!! | 1. 是搜索路径设置的问题: 直接打a.out的话,你的SHELL无法在它已知的路径里面找到你给它的程序/文件a.out 。 2. 是安全问题: 在文件/etc/profile或$HOME/.profi...
如何解决?谢谢!!!
|
1. 是搜索路径设置的问题:
直接打a.out的话,你的SHELL无法在它已知的路径里面找到你给它的程序/文件a.out 。
2. 是安全问题:
在文件/etc/profile或$HOME/.profile里加入一行
export PATH=.:$PATH
是不安全的。
假如别人在某一路径下放置了一个木马程序,起一个系统里面常见的SHELL命令的名字,而你又可能会用到这个SHELL命令用于特定操作或系统维护等,这样的情况出了问题由谁来负责!?
比较好的解决方法是在文件/etc/profile或$HOME/.profile里加入一行
export PATH=$PATH:.
当然,这样还是有可能的,如:
一不小心,打了个 cd..
一般而言,cd..是一个错误的SHELL命令,可是又有谁能够保证你所处的当前目录下没有一个名叫cd..的木马程序呢!?
对于用户比较多且比较复杂的系统来说,小心些总是没有错的。
直接打a.out的话,你的SHELL无法在它已知的路径里面找到你给它的程序/文件a.out 。
2. 是安全问题:
在文件/etc/profile或$HOME/.profile里加入一行
export PATH=.:$PATH
是不安全的。
假如别人在某一路径下放置了一个木马程序,起一个系统里面常见的SHELL命令的名字,而你又可能会用到这个SHELL命令用于特定操作或系统维护等,这样的情况出了问题由谁来负责!?
比较好的解决方法是在文件/etc/profile或$HOME/.profile里加入一行
export PATH=$PATH:.
当然,这样还是有可能的,如:
一不小心,打了个 cd..
一般而言,cd..是一个错误的SHELL命令,可是又有谁能够保证你所处的当前目录下没有一个名叫cd..的木马程序呢!?
对于用户比较多且比较复杂的系统来说,小心些总是没有错的。
|
在你的.profile里加入这一句
PATH = .
PATH = .
|
up!不是gcc编译的问题,而是path没有设
|
linux的运行规则,必须指明程序执行路径
建议不要使用楼上的方法,呵呵
建议不要使用楼上的方法,呵呵
|
同意楼上,别养成这种习惯,那样不安全.