Что означают эти две команды

Конечно, вы можете отключить или даже удалить ssh-сервер из своей системы.

В любом случае, если кто-то мог войти на ваш рабочий стол через SSH, он в какой-то мере мог получить к нему сетевой доступ. Если доступ был извне, вам также следует взглянуть на свои правила NAT / Port Forwarding, я боюсь, что это не единственная проблема безопасности, с которой вы столкнулись в вашей среде. Если вы обнаружите, что доступ был внутренним, позаботьтесь об устройствах, подключенных к вашей сети!

1
10.05.2019, 15:53
3 ответа
sed 's/^[ \t]*//'

Якорь ^указывает sedначинать с начала строки, а группа регулярных выражений [ \t]*— сопоставлять все *пробелы [ ]или табуляции [\t]от начала строки до конца строки. сначала не совпадают -и заменить их ничем//(т.е. удалить их ).

В квадратных скобках []вы можете указать диапазон символов для соответствия.

sed 's/[ \t]*$//'

Якорь $отмечает конец строки, поэтому на этот раз sed сопоставляет все пробелы и табуляции от конца строки до первого несоответствия -и снова заменяет их ничем.

Ваше второе выражение ищет все`файлы.cfg ниже текущего каталога

find. -type f -name *.cfg

и grepих по отдельности

-exec grep -li "$TYPE" '{}' \; 

ищет нечувствительное к регистру совпадение -iдля любой строки, хранящейся в переменной $TYPE, и возвращает имя файла -lдля всех совпадений. Из вашего поста невозможно понять, что $TYPEсодержит

Окончательный sedиспользует другой разделитель(sedпринимает первый не -командный символ в вашем аргументе в качестве разделителя,поэтому вы можете использовать все, что вам подходит, и в этом случае вам не нужен обычный /, потому что это один из ваших поисковых символов, а sed 's/.\///'менее понятен)

sed 's|./||' 

удалит первые два символа из каждого из имен файлов grep, если вторым символом является /. Это связано с тем, что первый .является подстановочным знаком для «любого символа».

Это, вероятно, предназначено для удаления ./из всех путей (, и в данном случае это будет ), но .интерпретируется как «любой символ», а не литерал .. Чтобы убедиться, что заменяется только литерал ., следует экранировать специальный символ .

sed 's|\./||'

И наконец, совпадения grepобъединяются в виде списка, разделенного пробелами, в

CONFIG_FILE=$(.....)
2
27.01.2020, 23:18
sed 's/^[\t]*//; s/[\t]*$//'

Это заменит все вкладки до и после разрыва строки ничем.

Вторая операция sedимеет на момент написания этой статьи синтаксическую ошибку и вообще не будет работать.

1
27.01.2020, 23:18
  • https://linux.die.net/man/8/dmidecode
  • что касается части sedпервой строки :много лишних пробелов (добавлено при размещении кода здесь ? ). В любом случае, эта часть удаляет TABсимволов, найденных в начале или в конце строк, выводимых dmidecode. Результат заканчивается переменной TYPE
  • вторая строка (снова лишние пробелы )довольно загадочно, так как у нас недостаточно информации:

    • нет информации о переменной $HW_TYPE
    • часть sedкажется мне неполной (вы уверены, что эта вторая строка действительно работает?)
1
27.01.2020, 23:18

Теги

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