Debian 10:`startx `на консольном терминале через ssh выдает ошибку

Основная проблема, которая создает ошибки, заключается в том, что вы используете строку чтения в $lineв качестве имени файла для cutдля чтения.

Вы также используете echoдля вывода результата подстановки команд. Это анти-паттерн -. Просто запустите конвейер, без echoи подстановки команд. Он сам выведет свой результат на терминал.

Здесь мы используем printf, чтобы дать cutстроку, прочитанную из файла:

file="filename"

while IFS= read -r line; do
    printf '%s\n' "$line" | cut -d '[' -f2 | cut -d ' ' -f1
done <"$file"

Следующее, что следует отметить, это то, что цикл whileсовершенно не нужен. Вы вызываете cutдважды для каждой строки в файле журнала. Утилита cutсама по себе способна читать файл построчно:

file="filename"

cut -d '[' -f2 "$file" | cut -d ' ' -f1

Или вы можете использовать GNUgrep:

grep -oP '(?<=\[)[^ ]+' "$file"

(Это извлекает все до первого пробела после первого[)

или стандартные sed,

sed 's/\].*//; s/.*\[//; s/.*//' "$file"

(Это удаляет все после первого ], затем удаляет все до первого [,затем отбивные из космоса и остальное часто)

Связанные:

-3
28.06.2020, 19:05
1 ответ

Вы не используете startxдля соединения ssh, вы используете переадресацию X. После подключения с помощью ssh -Yили ssh -Xвы можете запустить X-приложение, которое будет рисовать окна на вашем локальном компьютере, используя ваш локальный X-сервер. Попробуйте выполнить xclock &или firefox &или любое другое приложение с графическим интерфейсом, которое вам нужно выполнить на удаленной машине, но отобразите его окна локально.

Проверить наличие этой строки в/etc/ssh/sshd_config:
X11Forwarding yes

В современных системах с включенной переадресацией X вам не нужно устанавливать переменную DISPLAY; если у вас возникнут проблемы,export DISPLAY=[your local display, for example :0]

На самом деле вы даже можете запускать X-приложения локально, вообще не запуская X на удаленной машине, поскольку используется ваш локальный X-сервер.

Xpraтоже интересно, особенно на медленных соединениях. Это более сложный способ пересылки X-приложений.

Если вам нужен полный доступ к удаленному рабочему столу, вы должны использовать что-то вроде VNC, X2Go, xrdpи т. д.

3
18.03.2021, 23:23

Теги

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