我是Linux的初学者。我很困惑,有人能告诉我什么时候我们应该用./来启动命令行来运行一个程序而我们什么时候不运行? 我看到他们没有在教程中使用它,但是bash不会识别它的程序。
非常感谢,
答案 0 :(得分:3)
''指的是当前目录。同样'..'指的是父母导演。
请考虑以下示例:
./foo
将尝试在当前目录中执行名为foo的程序。
../foo
将尝试在父目录中执行程序。这和./foo被称为“相对路径”,因为它们相对于您当前的位置。
foo
将在您当前的PATH中搜索该程序,该程序是shell搜索以查找可执行文件的目录序列。您可以通过输入'echo $ PATH'来查看PATH的值。
最后,你可以给出一个'绝对路径',例如:
/home/bar/foo
将使用从root('/')开始的整个路径。
答案 1 :(得分:1)
app
指定了/usr/bin/app
的路径。与{{1}}相同的是指定路径。
除非包含应用程序的目录位于PATH上,否则您需要指定路径。
答案 2 :(得分:1)
当你输入一个命令时,linux会找到执行它的可执行文件。 问题是它应该在哪里搜索? bash中有一个变量叫做$ PATH。让我们回应它以查看它的内容:
./program_name
所以操作系统会查看这些路径
那么,如果您的可执行文件不在$ PATH变量中会发生什么? (例如你的脚本) 在这种情况下,你应该告诉它你的可执行文件在哪里! 如果它在当前目录中运行:
{{1}}