我最近从 windows 转移到 linux,我看到了一件奇怪的事情:
./configure
Run Code Online (Sandbox Code Playgroud)
或者
nano /something/something2
Run Code Online (Sandbox Code Playgroud)
这是something2
一个文件吗?它看起来像一个目录,我不明白如何编辑它?对于./configure
. 这是什么意思?
phe*_*mer 10
您的 2 个示例彼此完全无关,因此我将这样处理它们。
这是 shell 表示法,意思是执行configure
在当前工作目录中调用的文件。
通常,当您想运行一个程序时,例如/bin/ls
,您只需将其称为ls
. 您不需要指定路径。这是有效的,因为您的 shell 有一个名为的变量$PATH
,其中包含在输入非限定命令时要搜索的位置列表。所以$PATH
会包含/bin
,当您运行时ls
,它会在 中查找/bin
并执行它。
现在,当您想要运行不在 中的程序时$PATH
,您必须限定该路径。如果您当前在 中/home/johndoe
,并且configure
在该目录中调用了一个程序/脚本,则可以将其作为/home/johndoe/configure
或运行./configure
。由于您已经在该目录中,因此./
符号较短。
在这种情况下,您只是将参数传递给nano
. 没有什么比这更重要的了。
nano
是一名编辑。所以你只是/something/something2
作为参数传递给nano
. 由 nano 决定如何处理该参数。编辑器可能会查看参数并“哦,那是一个文件,让我们打开它”,或者它可能会“哦,那是一个目录,让我们列出内容并让用户选择一个文件”。或者它可能会向您抛出错误:-)
重点是,虽然nano
可以智能地确定是什么/something/something2
,但这完全取决于 nano。另一个编辑器或程序可能会有完全不同的反应。