linux 点杠问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 17:48:23
比如执行某个文件在一个目录下都有执行权限,有时直接执行就可以,但在其他机子上就必须加上./,这是为什么?
我在A,B机都没有配置该目录的环境变量,但在A机的该目录sbin下直接执行ifocnfig就可以.但在B机上执行就必须加./.
现在以下四个答案暂时没有回答到重点,谢谢!

命令的执行都是要指定路径的.
打一个命令时(不带任何路径),系统会在$PATH路径中搜索.
查看PATH: echo $PATH
显示: /bin;/sbin;/usr/bin;...
例如 ls
系统就会在 /bin 下找到它. 实际上执行的是 /bin/ls
但如果你的执行文件不在 PATH 路径下,那就必须自己指明路径了.
比如要执行 my (自己写的程序),假设是放的 /opt/program 下
执行方法:
(1) >> exprot PATH=/opt/program:$PATH > /etc/profile #加入到PATH
>> source /etc/profile #使环境变量生效
>> my #这样才可以直接执行.(不推荐使用,这样会很乱 - -)
(2) >> cd /opt/program #先进入目录
>> ./my #在当前目录下执行("./"的意思就是指在当前目录下)
(3) >> /opt/program/my #直接使用绝对路径

./configure

如果是系统的环境变量里的 执行程序
linux会自己去找的,所以不用./

但是你要是自己随意创建的一个目录,系统不知道在里面找
所以必须要告诉系统是执行在当前目录下的程序,就是用 ./

可执行文件放到$HOME/bin/之类的目录下后就可以在任何目录下直接执行,而放到普通目录下就不行了。“./”表示当前目录。