ubuntu 20.04.2 pi-hole install cmd не работает

Здесь можно задать несколько вопросов люди такие тупые, как я, но я не видел своей проблемы.

Только что установлен.

Выполняет все обновления.

откройте cmd и введите sudo curl -sSL https://install.pi-hole.net Я bash

sudo: curl: command not found

sudo apt install curl -sSL ...

E: Параметр командной строки 'S' не понят

remove

E: Параметр командной строки 'L'

Надеюсь, вы можете сказать, что я прочитал классную статью и забил себе голову.

0
задан 28 March 2021 в 03:53

2 ответа

Первая ошибка - вы помещаете I перед bash , а не | (вертикальная черта). Вторая ошибка - вы неправильно выполнили команду установки. Это sudo apt install curl без каких-либо параметров командной строки после.

Итак, для установки pi-hole это следующее:

sudo apt install curl
curl -sSL https://install.pi-hole.net | sudo bash
3
ответ дан 23 April 2021 в 23:29

Я хочу еще немного объяснить, о чем говорит @Aenfa. Просто чтобы вы это поняли (исправить проблему - хорошо, но лучше понять, что вы сделали неправильно).


Начнем с установки curl:

Вы сделали следующее: sudo apt install curl -sSL ...

Что вам нужно сделать, это: sudo apt install curl

Почему? Поскольку -sSL являются параметрами для curl. Таким образом, при использовании команды curl вы выбираете включение / использование некоторых из имеющихся у нее параметров (например: -s для молчания, -L для нет индикатора выполнения и -S , чтобы по-прежнему показывать ошибки, хотя используется -s ). Они называются флагами и используются постоянно. Вы можете увидеть доступные флаги (и общее использование) для команды, выполняющей man [[команда]] . Итак, в этом случае man curl .

При установке чего-либо (в данном случае curl ) вы просто выбираете то, что хотите установить, давая имя. Так, например, sudo apt install curl . Или sudo apt install wget . Или sudo apt install nano . Ты понял. -sSL является частью команды curl, и при установке curl вы не используете curl, поэтому эти флаги не применяются. Вы использовали apt . А apt не поддерживает флаги -s, -S и -L, поэтому он выдавал ошибки!


Теперь часть I :

Это немного сложнее, поэтому я предлагаю вам поискать его. Поиск трубопроводов Linux объяснил . Потому что это называется трубопровод.Вы неправильно поняли | для I . При подключении по конвейеру вы используете | (сдвиг, а затем клавишу выше Enter на клавиатуре).

Так вот в чем проблема. Вы пытались выполнить соединение, но использовали I вместо | . Все нормально. Все мы ошибаемся!

Но что такое трубопровод?

[[команда 1]] | [[команда 2]] | [[команда 3]]

Я снова предлагаю поискать его, но вкратце, выходные данные одной команды будут входными данными для второй команды, а выходные данные второй команды будут входными данными для третьей команды.

Пример:

cas@Waveserver:~$ echo "this is a test"
this is a test
cas@Waveserver:~$ echo "this is a test" | sed "s/test/joke/"
this is a joke
cas@Waveserver:~$ echo "this is a test" | sed "s/test/joke/" | grep -o "joke"
joke

Вывод команды echo, конечно, прост. Это просто текст, который отображается эхом.

Теперь мы собираемся направить этот вывод в sed и заменить test на шутку . Таким образом, вывод echo становится вводом sed. Таким образом, он может заменить слово, потому что на его входе присутствует слово test .

Теперь этот вывод будет передан команде grep. Это означает, что это шутка будет вводом для grep (обратите внимание, что я использую, верно, флаг! Когда мы выполняем man grep и прокручиваем вниз, мы видим что -o означает - only-matching или «Печатать только совпадающую часть строки вместо того, чтобы отмечать совпадающий текст красным»).Итак, grep ищет во входных данных шутку , которая находит ее и будет выводить!

Итак, три команды были выполнены, но есть только один выход, потому что выходные данные 1-й и 2-й команд были (вместо вывода на терминал) перенаправлены на вход следующей команды в конвейере.

В вашем случае вы скручивали скрипт (используемый для установки pi-hole) и передавали его по конвейеру команде bash , что в основном означает: «запустить скрипт». Итак:

[[получить сценарий]] | [[запустить его]]

Вы можете передать по конвейеру столько команд, сколько захотите. В нескольких сценариях, которые я написал, у меня есть 8 команд, которые передаются по конвейеру друг за другом, а в других случаях я просто передаю 1 или 2 команды!


Надеюсь, теперь вы это понимаете!

РЕДАКТИРОВАТЬ: Вот одна из тех длинных трубок, которые я нашел где-то внутри своих скриптов!

curl -s -L https://plex.tv/pms/downloads/5.json | jq -M | grep -PA 3 "Ubuntu. *? 64-бит" | хвост -n 1 | grep -Po "\" \ Khttp. *? (? = \ ")"

[[свернуть веб-страницу, содержащую информацию об обновлениях для медиасервера plex]] | [[красиво распечатать вывод json]] | [[возьмите строку и три строки ниже (- .. A 3) этой строки]] | [[из этого вывода показывать только нижнюю строку]] | [[возьмите URL-адрес внутри строки]]

1
ответ дан 23 April 2021 в 23:29

Другие вопросы по тегам:

Похожие вопросы: