我知道这sudo
是一个用于管理员任务的命令,例如安装或卸载程序。
我从这个命令中不明白的是:
sudo pip3 install name-of-the-file.whl
是pip3
,它可能是 的一个参数sudo
,但是它有什么用呢?
我使用的是 Mac OSX 10.9.5。
答案1
该命令sudo
是一个前端程序,它接受参数、开关和命令。大多数命令可以接受参数和开关,但有些命令可以接受其他命令来运行。如果愿意的话,可以将它们视为包装。
因此,sudo
将创建一个全新的 Bash 实例(以 root 身份提升权限),然后运行您提供的命令。
所以在这种情况下sudo
是运行程序pip3
+它后面出现的所有参数。这些论点是为了pip3
,而不是为了sudo
。笔记:当您看到以下内容时,请记住此模板sudo
:
$ sudo <switches> "<command> <command's arguments + switches>"
那么pip3是什么?
当您不确定命令的用途时,命令本身通常蕴藏着丰富的信息。大多数都会为您提供一个简短的概要,说明如何使用它们以及使用开关运行它们时它们会做什么--help
。这可能会有所不同,有时-help
甚至是-h
。
我没有pip3
安装,但是我已经安装了pip2
。它们实际上是相同的工具,但pip3
版本较新。
$ pip2 --help
Usage:
pip <command> [options]
Commands:
install Install packages.
uninstall Uninstall packages.
freeze Output installed packages in requirements format.
list List installed packages.
show Show information about installed packages.
search Search PyPI for packages.
zip Zip individual packages.
unzip Unzip individual packages.
bundle Create pybundles.
help Show help for commands.
General Options:
-h, --help Show help.
-v, --verbose Give more output. Option is additive, and can be used up to 3 times.
-V, --version Show version and exit.
-q, --quiet Give less output.
--log <file> Log file where a complete (maximum verbosity) record will be kept.
--proxy <proxy> Specify a proxy in the form [user:passwd@]proxy.server:port.
--timeout <sec> Set the socket timeout (default 15 seconds).
--exists-action <action> Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
--cert <path> Path to alternate CA bundle.
该图--help
向我们展示了该工具可以执行的命令和开关,但没有告诉我们它的作用。让我们看看它在哪里。为此,您可以使用以下type
命令:
$ type -a pip2
pip2 is /usr/bin/pip2
pip2 is /bin/pip2
请注意,它位于/usr/bin
和中/bin
。这表明我们的包管理器安装了这个工具。在基于 Red Hat 的发行版上,您可以使用它rpm
来查找此可执行文件pip2
属于哪个包。
$ rpm -qf /bin/pip2
file /bin/pip2 is not owned by any package
有趣的是,这个可执行文件没有作为我系统的包管理工具rpm
.
那么现在怎么办?
好吧,我们离死还很远。让我们看看系统是否可以给我们任何关于安装了什么的额外提示pip2
。
大多数 Linux 发行版都附带mlocate
一个工具,可以定期为硬盘上的所有文件构建索引。因此,我们可以搜索pip2
以获取其碎片可能潜伏的其他位置的线索。
$ locate pip2
/usr/bin/pip2
/usr/bin/pip2.7
所以我们知道安装了 2 个版本:2 和 2.7。但这并没有多大帮助,所以让我们把网撒得更大一点,寻找pip
.此外,我们将对结果进行一些过滤,只得到以pip
.我们将用来grep
做这件事。
$ locate pip | grep 'pip$'
/home/saml/.pip
/home/saml/dotfiles/.pip
/home/saml/dotfiles/.pyenv/shims/pip
/home/saml/dotfiles/.pyenv/versions/3.2.5/bin/pip
/home/saml/dotfiles/.pyenv/versions/3.2.5/lib/python3.2/site-packages/pip-1.3.1-py3.2.egg/pip
/opt/ec2-api-tools/bin/ec2apip
/opt/ec2-api-tools/bin/ec2upip
/usr/bin/pip
/usr/bin/python-pip
/usr/lib/python2.7/site-packages/pip
大奖!
最后!一些有用的信息。pip2
是我们安装Python时使用的一个工具。因此,如果我们去 Google 查找“pip python”:
哦!pip2
是 Python 的包管理器。
该命令正在.whl
为我们的 Python 安装安装一个文件。