我写了一个脚本。它启动后不会停止,并不断从互联网获取数据。我可以这样调用它:
cd /User/Desktop/project/internetScanner/
python3 main.py start
但我想像这样直接从终端在目的地内调用它:
internetScanner start
我怎样才能这样做?
答案1
您可能应该将文件重命名main.py
为internetScanner
。 *nix 上的扩展名完全是可选的。 在这里应该无关紧要。
mv main.py internetScanner
然后,在该文件的最前面添加以下行:
#!/usr/bin/env python3
这将确保当 shell 执行文件时,它知道使用什么python3
来解释内容。这被称为舍邦.现在,使文件可执行:
chmod +x internetScanner
您现在可以从内部运行您的程序/User/Desktop/project/internetScanner/
:
./internetScanner start
您的程序将在前台运行,并持续运行,直到您按下Ctrl- C。如果您不想这样,您也可以在后台启动该程序,方法是在命令后添加一个 & 符号:
./internetScanner start &
这将让你的程序运行,但你可以继续使用你的 shell。这称为作业控制,有一个简单的教程这里。
如果您现在希望能够从系统上的任何位置运行该程序,则需要将internetScanner
目录添加到您的PATH
:什么是 PATH 和其他环境变量?如何设置或使用它们?
答案2
假设/User/Desktop/project/internetScanner/
不需要中的其他文件,如果您想为单个用户安装,请链接(ln -s
)main.py
到$HOME/bin/internetScanner
。您可能需要$HOME/bin
先进行 mkdir。
下次登录时,$HOME/bin
可能会添加到您的 PATH。如果您希望它可供所有用户使用,请将其复制到/usr/local/bin
。
如果必须在中执行/User/Desktop/project/internetScanner/
,则首先导入os
并调用
os.chdir('/User/Desktop/project/internetScanner/')
$HOME/bin
或者在或中创建一个启动器脚本,/usr/local/bin
更改/User/Desktop/project/internetScanner/
并执行该脚本。
答案3
放入alias internetScanner "python /User/Desktop/project/internetScanner/main.py"
.aliases 文件(用于 csh)。对于 bash,放入alias internetScanner="python /User/Desktop/project/internetScanner/main.py"
.bashrc。之后,您可以从任何地方使用 internetScanner 启动。