我可以script.py
在没有 sudo 的情况下成功运行,但运行时出现“sudo:script.py:未找到命令” sudo script.py
。我需要做什么才能运行sudo script.py
?
答案1
尝试./
像这样添加:
sudo ./script.py
以上假设script.py
文件位于您当前的工作目录中。.
表示“此目录”,因此./script.py
指的是“script.py
在当前目录中”。
答案2
为了通过名称调用可执行文件,它需要位于特殊变量 中存储的目录之一中$PATH
。对于普通用户和 ,该 PATH 是不同的sudo
:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
~$ sudo sh -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
假设,由于脚本位于您当前的目录中,因此您所在的目录包含在常规用户的 PATH 中,但不在 PATH 中sudo
。因此,您需要使用其完整路径或相对路径来调用该脚本:
## If it is in _this_ directory, use ./
sudo ./script.py
## Alternatively, use the full path:
sudo /home/terdon/myscripts/script.py
## or a relative path. If you're in /home/terdon/foo, use:
sudo ../myscripts/script.py