试图弄清楚命令的含义

试图弄清楚命令的含义

请解释一下这个命令的含义:

wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
  1. wget- 使用 wget 下载某些内容
  2. -qO- 第一个参数是 -q,但它是什么0-意思?为什么它后面有一个破折号?
  3. | sh- 关于管道的一些信息,但具体是什么呢?

是的,我读过 man wget。

答案1

-q以安静模式运行 wget。

 -O file
       --output-document=file
           The documents will not be written to the appropriate files, but all
           will be concatenated together and written to file.  If - is used as
           file, documents will be printed to standard output, disabling link
           conversion.  (Use ./- to print to a file literally named -.)

sh是 Bourne shell。有几种 shell,其中 Bourne 是旧标准。

上面的命令表示wget以安静模式运行 ( -q),并且由于输出 ( O) 需要,因此不会提供文件作为目标,而是将文档打印到标准输出,从而禁用链接转换。然后开始-使用管道。|sh

答案2

-q
      --quiet
          Turn off Wget's output.

-O file
      --output-document=file
          The documents will not be written to the appropriate files, but all
          will be concatenated together and written to file.  If - is used as
          file, documents will be printed to standard output, disabling link
          conversion.  (Use ./- to print to a file literally named -.)

sh
      The shell is a command that reads lines from either a file or the terminal,
      interprets them, and generally executes other commands. 

sh 之前的竖线管道符将输出从-O-(标准输出到终端)传输到sh命令,该命令表示将在终端中下载的文件作为程序执行,假设首先下载的文件的权限设置为允许将文件作为程序执行。

要设置权限以允许将文件作为程序执行:右键单击该文件,选择特性打开“属性”弹出窗口,然后特性选择“权限”选项卡,然后在其左侧勾选:允许作为程序执行文件

答案3

* wget:非交互式网络下载器

* -q (--quit):关闭 Wget 的输出。

* -O file (--output-document=file):文档不会写入相应的文件,但会全部连接在一起并写入文件。如果将 - 用作文件,文档将打印到标准输出,从而禁用链接转换。  

* URL https://toolbelt.heroku.com/install-ubuntu.sh wget [选项]... [URL]...

* | 管道
    管道是由控制运算符 | 或 |& 分隔的一个或多个命令序列。
    管道的格式为:

           [时间 [-p]] [ ! ] 命令 [ [|⎪|&] 命令2 ... ]

    command 的标准输出通过管道连接到 command2 的标准输入。


* sh 命令解释器(shell)

总的来说,这个命令只会从给定的 URL 下载名为 install-ubuntu.sh 的脚本,然后传递给管道作为下一个命令 sh 的输入。因此,这将在单个命令中安装并运行名为 install-ubuntu.sh 的脚本。

相关内容