Я знакомлюсь с командами терминала, и я наткнулся на эту команду для установки пояса для инструментов Heroku:
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Теперь из здесь Соберите, что wget используется для загрузки файлов из Интернета по различным поддерживаемым протоколам, и они будут загружаться, даже если я выйду из системы.
Это верно?
И я хотел бы узнать еще две вещи об этой команде:
Я вижу -q0-
в коде. Что это значит? Из man-страниц я вижу, что -q
используется для выключения выхода Wget
. Но что это значит тоже? И чем использование -q
отличается от -q0-
Для чего нужен |sh
в конце команды? Что это делает?
Большое спасибо за время!
Эта команда на самом деле wget -qO
не wget -q0
.
Он автоматически загрузит файл https://toolbelt.heroku.com/install.sh (опция -q ), и все загруженное будет объединено и записано в один файл буферного файла (опция -O ), этот загруженный буфер будет затем отправлен и выполнен с sh
.
sh
- интерпретатор оболочки, который будет запускать информацию, которую только что скачал wget.
Итак, простыми словами вы говорите с этой командой: загрузите этот sh-файл и не создавайте вывод прогресса, и все, что вы загружаете, выполняйте его с помощью sh
.
Как и большинство изолированных программ, запускаемых с терминала, wget обычно НЕ будет продолжать работать после закрытия родительского (терминала) (через выход из системы и т. Д.)
-qO-
- это аббревиатура двух опций командной строки -q -O-
| sh
передает данные из стандартного вывода в команду sh
, выполняя скрипт
Это не 0 (число), это O (буква), он перенаправляет вывод в файл, в данном случае (-) стандартный вывод, поэтому содержимое загруженного файла будет перенаправлено (с помощью |) на sh
стандартный ввод. sh
- это оболочка, интерпретатор команд, который будет выполнять команды, которые он получает.
Вы можете узнать больше о поиске Перенаправления в sh manpage (man sh
).