CURL является инструментом командной строки. Это также еще и библиотека, с помощью которой передаются данные с URL
Он дает возможность вам скачивать файлы с (веб) сервера.
Вы можете получить тот же результат, открыв а затем сохранив отображаемый файл на диск.
SH
Запуск sh дает возможность открыть новую оболочку. Здесь он применяется для выполнения списка команд через -c флаг в новой оболочке с привилегиями root ( sudo ).
sh -c
Эта часть необходима из-за перенаправления ( > /etc/apt/sources.list.d/atom.list). Так как для записи в файл /etc/apt/sources.list.d/atom.list нужны права root, вы не можете просто выполнить sudo echo ... > file, потому что перенаправление не «наследует» привилегии от sudo части. Вы должны обернуть все echo+ в его в новом экземпляре оболочки. Это несколько эквивалентно этой последовательности шагов:
sudo sh
чтобы открыть новую оболочку с привилегиями root
echo "deb [arch=amd64] any main" > /etc/apt/sources.list.d/atom.list
записать новую строку в atom.list файл
exit
возвращает обычной пользовательской оболочке.
Например
$ curl -sL sudo apt-key add -
Это на самом деле две команды.
curl -sL загружает ключ GPG из PackageCLoud для хранилища Atom Editor.
sudo apt-key add
добавляет его, apt чтобы он мог распознавать и проверять подписи GPG репозитория на пакетах.
$ sudo sh -c 'echo "deb [arch=amd64] any main" > /etc/apt/sources.list.d/atom.list'
Проще, если мы разделим его на три составляющие части.
sudo выполняет sh команду как суперпользователь.
sh -c указывает на выполнение определенной команды в sh оболочке.
'echo "deb [arch=amd64] any main" > /etc/apt/sources.list.d/atom.list'
это запускаемая команда
sh -c создает отдельную запись в данном репо,
/etc/apt/sources.list.d/atom.list
для того, чтобы при sudo apt update ее выполнении проверять этот репозиторий на наличие данных пакета.