有人能解释一下这个安装 Heroku 工具带的 wget 命令的作用吗?

有人能解释一下这个安装 Heroku 工具带的 wget 命令的作用吗?

我正在熟悉终端命令,并且遇到了安装 Heroku 工具带的命令:

wget -qO- https://toolbelt.heroku.com/install.sh | sh

现在从这里我了解到 wget 用于通过各种支持的协议从互联网下载文件,即使我注销,它们也会下载。

是对的吗?

我还想了解有关该命令的另外两件事:

  1. -q0-在代码中看到了。这是什么意思?从手册页中我看到-q用于关闭输出Wget。但这又是什么意思呢?使用-q-q0-

  2. |sh命令末尾的是做什么的?它起什么作用?

非常感谢您抽出时间!

答案1

该命令实际上wget -qO不是wget -q0

它将下载文件https://toolbelt.heroku.com/install.sh默默地(-q选项)并且下载的任何内容将被连接在一起并写入单个文件缓冲区文件(-O选项),然后会将下载的缓冲区复制到 并使用 执行sh

sh是一个shell解释器,它将运行wget刚刚下载的信息。

因此,简单地说,您可以使用这个命令来告诉:下载这个 sh 文件,不要创建进度输出,无论您下载什么,都用 执行它sh

答案2

  1. 与大多数从终端启动的独立程序一样,wget 通常不会在其父级(终端)关闭(通过注销等)后继续运行。

  2. -qO-是两个命令行选项的缩写-q -O-

    • q 告诉 wget 不要输出状态/进度信息
    • O- 告诉它将下载的数据输出到标准输出
  3. | sh将数据从标准输出传输到sh命令,执行脚本

答案3

那不是一个 0(数字),而是一个 O(字母),它将输出重定向到一个文件,在本例中是(-)标准输出,因此下载的文件的内容将被重定向(通过 |)到标准输入shsh是一个 shell,一个命令解释器,它将执行它收到的命令。

您可以搜索了解更多重定向在 sh 手册页 ( man sh) 中。

相关内容