我一直在网上闲逛,看到了有关如何安装新文本编辑器 atom 的信息:
$ curl -sL https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
我只是想知道这些命令实际上在做什么。做什么curl
?
我还阅读sh
了关于运行一些 shell 实例的信息,但是为了什么,这个命令可以实现什么,以及它在这里具体做了什么?
这实际上是两个命令。
curl -sL https://packagecloud.io/AtomEditor/atom/gpgkey
从 PackageCLoud 下载 Atom 编辑器存储库的 GPG 密钥。sudo apt-key add -
添加它,apt
以便它可以识别和验证包上存储库的 GPG 签名。如果我们把它分成三个组成部分,那就更容易了。
sudo
以超级用户身份执行sh
命令。sh -c
sh
表示在shell中执行特定的命令。'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
是正在运行的命令,sh -c
它会在其中创建单独的存储库条目,/etc/apt/sources.list.d/atom.list
以便在您执行此操作时sudo apt update
检查该存储库中的包数据。卷曲
就像主页说的那样,
curl
是一个非常简单,它允许您从(网络)服务器下载文件。
https://packagecloud.io/AtomEditor/atom/gpgkey
您可以通过使用浏览器打开然后将显示的文件保存到磁盘来获得相同的结果。上海
运行会
sh
打开一个新的 shell。它在这里使用的方式是在具有 root 权限(部分)的新shell 中执行命令列表(通过-c
标志)。sudo
由于重定向 ( ) ,需要该
sh -c
部分。> /etc/apt/sources.list.d/atom.list
由于文件/etc/apt/sources.list.d/atom.list
需要写入 root 权限,因此您不能简单地这样做sudo echo ... > file
,因为重定向不会从该sudo
部分“继承”权限。您必须将整个echo
+>
它包装在一个新的 shell 实例中。它在某种程度上等同于这些单独的步骤:sudo sh
以root权限打开一个新的shell;echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list
将新行写入atom.list
文件;exit
返回到您的普通用户外壳。对于初学者:
sh (shell) 是一个命令解释程序。像 Bash “Bourne Again SHell”是 GNU 项目的 shell。
curl 或 cURL 是一个计算机软件项目,它提供了一个库和命令行工具,用于使用各种协议传输数据。cURL 项目产生两个产品,libcurl 和 cURL。它于 1997 年首次发布。名称代表“客户端 URL”。