编写命令行应用程序

Writing a command line app

我在 Ubuntu 16.4。我刚刚编写了一个可以使用命令执行的程序(假设我在正确的目录中)./Main.py -h
但是我希望它是可分发的,这样你就可以从命令行使用它,比如 nmap 或 youtube-dl。我的想法是放一个别名是.bashrc。这有两个问题。一个是如果后面有命令,我不能在命令中包含选项 (-h),所以它更改了你的目录。其次,我不知道用户会将它安装在哪个目录中。所以即使我将别名附加到 .bashrc 中,我也不知道它安装在哪个目录中。我试图通过将文件复制到他们的家来解决这个问题目录,但这给了我一个错误,说 Permission Denied(while 运行ning the program) 因为它需要能够写入文件。我尝试了一段时间来解决这个问题,但最后他们需要 运行 它作为 root 用户,这不是必需的。那么我应该如何安装它才能像常规命令行工具一样使用它?

命令行程序的常规约定是将它们放在默认路径上,也就是说,放在由 $PATH 环境变量表示的目录之一中。 There is also a default 在各种系统上。

这样,当您输入命令时,您的 shell 将尝试在其中一个目录中找到匹配项,您可以省略调用的 ./ 部分。

尝试命令 echo $PATH 以查看特定系统上的路径目录。 /usr/local/bin 通常是自定义脚本的不错选择。

由于您正在使用 Python,因此您还需要 set it up as an executable script,这是很常见的事情。

祝你好运!