Символические ссылки resolvconf Kali Linux прерываются после каждой перезагрузки

Это может быть проще с perl, если вы хотите сохранить интервалы:

perl -lne '
   $i = 0;
   for (/\S+\s*/g) {
      $cell[$.][$i] = $_;
      $sum[$i++] += $_
   }
   END{
     @keep=(0, grep {$sum[$_]} (1..$#sum));
     print((@{$cell[$_]})[@keep]) for (1..$.)
   }'

Это загружает весь файл в память. Чтобы избежать этого, вам понадобится два прохода в файле.

Это можно сделать с помощью комбинации awk и sed:

awk '
  NR>1{for (i=2; i<=NF; i++) sum[i]+=$i; if (NF>n) n = NF}
  END {
    for (;n>1;n--)
      if (!sum[n])
        print "s/[^[:blank:]]\\{1,\\}[[:blank:]]*//" n
  }' < file | sed -f - file

awk генерирует сценарий sed для удаления столбцов, сумма которых равна 0. Команды s/[^[:blank:]]\{1,\}[[:blank:]]*//3 sed удалят столбцы с сохранением интервалов между остальными столбцами, но это будет довольно дорого, вы можете захотеть сделать это удаление в perl, если производительность является проблемой.

Для строк все гораздо проще:

perl -MList::Util=sum -lane 'print if $. == 1 or sum @F'
2
21.08.2017, 14:23
2 ответа

У меня та же проблема с установкой Kali. Первоначально я думал, что это связано с установленным мной программным обеспечением VPN, но после некоторых исследований оказалось, что проблема связана с Kali.

Более простое решение проблемы, которое я использовал, это:sudo apt-get purge resolvconf

Затем сразу после этого прогонаsudo apt-get install resolvconf

К сожалению, на данный момент мне приходится делать это при каждой загрузке, но у меня была такая же мысль, как и у вас, создать сценарий запуска для автоматической очистки и повторной -установки файла resolvconf. Использование этих двух команд было бы немного проще, чем повторное создание отсутствующего каталога вручную, и, возможно, упростить написание сценария запуска.

5
27.01.2020, 21:56

Я только что создал простой bash-скрипт в своей корневой папке...

touch netresolv.sh
vim netresolv.sh 

// заменяем избранный редактор наvim

Код:

#!/bin/bash
echo "nameserver 8.8.8.8" > /etc/resolv.conf && echo "nameserver 1.1.1.1" >> /etc/resolv.conf && service 
NetworkManager restart && exit

//сохранение и выход из текстового -редактора

chmod +x netresolv.conf

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

Может ли кто-нибудь сказать мне, как довести этот скрипт до конца? Я не хочу, чтобы он запускался до входа в систему, потому что это подключит Интернет до того, как пользователь root войдет в систему, что сделает его уязвимым, или так? Добавлю ли я его как задание cron? или как сервис systemd? или добавить к ~/.profile?

0
27.01.2020, 21:56

Теги

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