进入shell所在目录不能直接执行命令

进入shell所在目录不能直接执行命令

进入shell所在目录直接输入shell文件名如
#rt
时不能执行程序,
但加入环境变量
export PATH=${PATH}:/home/shell
后可以在任意目录直接执行shell程序

不懂为什么进入shell目录不能直接执行,而加入环境变量后变成可任何执行,      
dos/windows 下执行一个命令时,首先会搜索当前目录,如果可执行命令不在当前目录,才到 PATH 中去找;但 linux 不同,它只到 PATH 中去找可执行命令,不会首先搜索当前目录      
linux 下,如果一个命令不在 PATH 中,要运行它,必须指定全路径名,如:
$ ./foo.sh      
多谢版主,
好象原来看到过,会找当前目录下的,
如果安装程序直接make后,不执行make install在当前目录下可以直接执行,但是在其他目录就不能执行,这个又是为什么了,

难道这两个不一样嘛,      
make 是在 /usr/bin 下面的,并不在你的当前目录中,它只是在你的当前目录中找 Makefile 而已      
如果你经常执行当前目录下的命令,可以将当前目录加到 PATH 变量中,不过这样有点儿安全问题      
[QUOTE]最初由 dearvoid 发布
[B]make 是在 /usr/bin 下面的,并不在你的当前目录中,它只是在你的当前目录中找 Makefile 而已 [/B][/QUOTE]


不是这样的吧,如果只执行make还没有安装到系统,只有执行make install后才安装到系统的,版主试试看      
1)make 命令本身并不是安装包的一部分,它只是一个工具而已
2)命令 which make 会告诉你它在哪儿      
[QUOTE]最初由 dearvoid 发布
[B]如果你经常执行当前目录下的命令,可以将当前目录加到 PATH 变量中,不过这样有点儿安全问题 [/B][/QUOTE]

请问有什么安全问题?      
比如我是一个普通用户 guest,我在自己的目录里面写了一个程序,名字为 ls,其功能是删除整个文件系统,某日,root 用户闲着无聊,到我的目录下面来逛逛,他首先肯定要看看我的目录下面有些什么东西,于是他执行了一下 ls,如果先执行当前目录下面的命令的话 ……