关于可执行文件的unix命令

时间:2014-10-16 16:59:13

标签: unix executable

在unix pc计算机中,有一个目录具有可执行的程序示例。 如果有人在目录中并且他尝试了上述命令:

> example
example: command not found
>./example
Hello world!
>

1)为什么程序没有第一次运行? 2)为什么程序第二次运行? 3)程序第一次成功运行需要什么?

另一个与上述不同的问题是 使用unix操作系统中的哪个命令,我们可以检查名为example11的文件的大小?

3 个答案:

答案 0 :(得分:3)

阅读bash(1)intro(1)ls(1)stat(1)strace(1)execve(2)stat(2),{{的文档3}},intro(2)execvp(3)hier(7)

大多数environ(7)(特别是bash)正在使用PATH环境变量来查找可执行文件。 command not found消息可能是在您的shell中execvp失败之后(或者更可能是因为shell在shells之后没有找到任何文件可执行文件传递给execve)。 / p>

如果您想要更改~/.bashrc文件,请考虑修改它(例如设置PATH)。

另请阅读fork(2)& Advanced Linux Programming。顺便说一句,Advanced Bash Scripting GuideGNU bash,因此您可以研究其free software代码。

键入/bin/ls --help或简单ls --help。然后尝试ls -l example1列出名为example1

的文件

另请阅读source,例如globbing。然后尝试ls -l exampl*,但首先要了解shell在将参数传递给exampl*之前展开/bin/ls

答案 1 :(得分:1)

1)你的shell不知道example的位置。

2)在此,您指定example位于当前目录中。现在,你的shell可以找到并运行它。

3)对于第一次成功运行的尝试,example需要位于一个目录中,该目录是shell已知的地方,其中包含许多程序。要查看符合此条件的目录,请运行echo $PATH。要将example中包含$PATH的目录添加到export PATH=$PATH:/path/to/your/directory,请运行ls -l example11

最后,运行{{1}}以查找有关该文件的信息。

答案 2 :(得分:0)

  1. 运行可执行shell时,将查看环境变量$PATH中是否存在该可执行文件,因为$PATH变量中的路径不存在,无法运行可执行文件。

  2. 您告诉shell在哪里可以找到您的可执行文件。所以.表示当前目录,/表示路径分隔符。这意味着,在当前文件夹中查找可执行文件名example

  3. 为了像(案例1)那样运行您的可执行文件,您需要执行以下操作:
    在bash上:

    PATH=$PATH:/home/cprogtes/ ; export PATH

    (假设example目录中存在/home/cprogtes。)

    或者,您可以在主目录中的.bash_profile中添加以下条目。

    export PATH=$PATH:/home/cprogtes/

  4. 要检查文件大小,您可以使用命令du -h <filename>