在ubuntu脚本中可以使用以下命令执行:
$ chmod +x manage.py
$ manage.py
但是在Mac中你需要使用 ./ 来实际运行脚本,如下所示:
$ chmod +x manage.py
$ ./manage.py
我想知道究竟是什么 ./ (特别是两个系统默认使用bash)以及是否有办法直接在mac中运行脚本?
答案 0 :(得分:3)
这是因为你(非常明智地)在你的.
环境变量中没有PATH
。如果你这样做,它就会成为一种攻击向量,让人们可以让你执行自己的代码而不是真正的代码。
例如,让我们说你的路径是:
.:/usr/bin
以便首先在当前目录中搜索命令,然后在/usr/bin
。
然后另一个用户在其主目录中创建一个可执行脚本文件ls
,该文件将更改为您的主目录并删除所有文件。然后他们告诉你他们在他们的主目录中有一些有趣的东西。您运行ls
以查看它们的内容,并删除您的文件。全部是因为它首先从您的当前目录运行ls
。
对于天真的系统管理员来说,这是一个特别喜欢的攻击媒介。
老实说,在我的家用机器上,我不用太担心,因为我是唯一的用户而且我不容易下载我不信任的东西。因此,为方便起见,我通常会将.
添加到我的路径中,但通常位于 end ,因此它不会妨碍我更常规的命令。
答案 1 :(得分:0)
执行命令时,系统需要找到文件(脚本/二进制文件)。这是通过将目录放在PATH环境变量中来完成的。因此,如果它在ubuntu中有效,则意味着PATH包含'。' (当前目录)。如果你想在mac上有相同的行为,那么输入像export PATH =“$ PATH:”这样的东西。在你的.bashrc中(假设你正在使用bash ..)