红联Linux门户
Linux帮助

一点小小的发现

发布时间:2009-10-17 14:19:20来源:红联作者:wangdonghua
说出来大家可不要笑话我 , 我终于知道了在linux 命令模式下运行一个可执行文件为什么先要输入一个 ./

这个点代表的是本目录的意思 。
假如我们新建一个目录如 myfile 然后cd myfile 执行ls -al
会出现两个文件 一个是 . 另一个是 . .
第一个代表的是本目录,第二个代表的是上一层目录,如果执行 cd . 的话你会发现路径没有改变,而执行 cd .. 的话会返回上一层目录

所以 ./可执行文件 是告诉shell 执行的是本目录下的命令,否则得话Shell 会 command not found


为什么会出现这种情况,可能是因为 环境变量的设置问题 例如 执行 ls 命令直接输入 ls 就可以了 不必输入 /bin/ls 了

这些都是我看书偶然所得,小弟菜鸟,愿未贻笑大方....
文章评论

共有 36 条评论

  1. yingyun 于 2009-10-25 00:26:38发表:

    . .. ../.. 这些都挺实用

  2. dert 于 2009-10-25 00:24:57发表:

  3. englisa 于 2009-10-23 20:44:22发表:

    受教了

  4. 774964107 于 2009-10-23 18:30:37发表:

    继续努力……

  5. hanzhijie_2005 于 2009-10-23 18:08:41发表:

    学会的都是自己的,支持原创!!!

  6. 大宝 于 2009-10-22 16:43:37发表:

    奖励小红花一朵
    [attach]21185[/attach]

  7. garnettwhu 于 2009-10-22 15:39:51发表:

    8# acrofox


    学习了

  8. xiaomeng 于 2009-10-22 11:32:49发表:

    引用:
    学习了
    angline 发表于 2009-10-18 00:05

  9. pl_014 于 2009-10-22 10:30:38发表:

    呵呵,其实这在一些书里早就写到了,不过这些东西一般人不易想到,如果是你自己想到的话,当然是不错了。

  10. allenquhua 于 2009-10-22 08:38:54发表:

    呵呵,重大发现

  11. wangdonghua 于 2009-10-22 08:31:01发表:

    26# prinse


    谢了

  12. prinse 于 2009-10-21 21:03:08发表:

    赞 LZ 一个……,所以这里再告诉 LZ 一个小小的密秘:你在命令行下行执行

    PATH=.:$PATH

    然后,你再执行当前目录中的可执行文件时,就不用输入前缀 ./ 了。

    试试看……

  13. shanyangmao 于 2009-10-21 18:10:00发表:

    居然有这种事

  14. hnuzhoulin 于 2009-10-21 16:58:32发表:

    这个我终于也知道了啊

  15. marki1986 于 2009-10-21 10:37:54发表:

    恩, 输入自定义的命令时, 他也会到环境变量的PATH里去找, 自己的命令肯定是找不到的, 必须得加当前文件夹才行.

  16. kakashiljf 于 2009-10-20 23:58:11发表:

    想起以前的自己……LZ加油……即使再小也是进步……

  17. Poseidon0922 于 2009-10-20 21:16:19发表:

    好神奇的事

  18. wumiao59 于 2009-10-20 11:00:53发表:

    DOS里也是这样的

  19. liu351128 于 2009-10-19 22:37:48发表:

    呵呵 和我一年钱 差不多

  20. 守望者WD 于 2009-10-19 22:31:55发表:

    这都被你发现了,呵呵!~

  21. yangshan 于 2009-10-19 20:45:47发表:

    楼主还是有心人啊 值得学习!

  22. fmirage 于 2009-10-19 17:08:08发表:

    lz心态挺好,继续努力吧。

  23. dragon008 于 2009-10-18 23:51:11发表:

    linux下面点还有隐藏文件的意思,所以你用ls -a会看到.和..还有一些以.开头的隐藏文件

  24. xianjian0320 于 2009-10-18 22:12:22发表:

    不错,同意!!

  25. 寻路行者 于 2009-10-18 15:16:02发表:

    呵呵……

  26. kinglou 于 2009-10-18 11:49:47发表:

    呵呵 善于发现总结是个好习惯啊

  27. wangdonghua 于 2009-10-18 09:01:49发表:

    学习的兴趣在于突然发现,虽然小但是却有惊喜的感觉,继续努力

  28. angline 于 2009-10-18 00:05:19发表:

    学习了

  29. sxsexe 于 2009-10-17 23:58:24发表:

    哈哈,有意思

  30. acrofox 于 2009-10-17 23:00:04发表:

    在 DOS 中也用 . 和 .. 来表示当前目录和父目录。
    不同的是,在 DOS 中,输入外部命令总是会先从当前目录中查找,找不到了再从PATH中查找。在UNIX/Linux中,外部命令中不带“/”就只搜索 PATH 变量,要自动搜索当前目录,就应该在 PATH 分量中包含一个“.” 或一个空项(“:”开头或结尾,或者中间两个连续的“:”)。

  31. stack 于 2009-10-17 17:27:13发表:

    基本命令。。

  32. deepwhite 于 2009-10-17 17:12:43发表:

    引用:
    我也发现了ls命令竟然可以列出目录和文件名的,真是太奇妙了也!
    hantu 发表于 2009-10-17 16:36

    别逗人新手玩了……

  33. hantu 于 2009-10-17 16:36:06发表:

    我也发现了ls命令竟然可以列出目录和文件名的,真是太奇妙了也!

  34. Plahand 于 2009-10-17 15:27:59发表:

    学习楼主的心得

  35. lw5254 于 2009-10-17 15:01:09发表:

    不错

  36. 绿色圣光 于 2009-10-17 14:39:34发表:

    关于这个.和..在dos中也是这样的……