Персистентное именование для NICs в FreeBSD

Я знаю, что Ваш вопрос указывает использование vi или vim но вот несколько других опций для того, чтобы сделать это, не имея необходимость вручную открывать файл:

  • Perl

    perl -ne 'if($. <=8 && $. >= 6){s/^\s*#//;}print' foo.sh 
    
  • Версия Perl> =5.10

    perl -ne '$. ~~ [6..8] && s/^\s*#//;print' foo.sh 
    

    Это распечатает содержание файла, можно или перенаправить другому (> new_file.sh) или используйте i отредактировать файл на месте:

    perl -i -ne '$. ~~ [6..8] && s/^\s*#//;print' foo.sh 
    
  • sed

    sed '6,8 s/^ *#//' foo.sh
    

    Снова, для создания этого редактирования исходным файлом на месте использовать i:

    sed -i '6,8 s/^ *#//' foo.sh
    
  • awk/gawk и т.д.:

    gawk '(NR<=8 && NR>= 6){sub("^ *#","")}{print}' foo.sh
    
  • Чистый bash:

    c=1; while read line; do 
      if [ $c -ge 6 ] && [ $c -le 8 ]; then 
         echo "${line/\#/}"
      else 
         echo $line 
      fi
      let c++; done < foo.sh
    
4
26.08.2016, 18:23
2 ответа
[119887] Ближе всего к прямому ответу на ваш вопрос будет взгляд на devd.conf, но если вы просто хотите переименовать интерфейс, добавив

ifconfig_em0_name="eth0"

к вашему rc.conf должен выполнить этот трюк. Но это, вероятно, только усложнит задачу другим пользователям FreeBSD.[119892].

3
27.01.2020, 20:58

Я собрал сценарий для присвоения имен на основе MAC, который должен делать то, что вы хотите: https://github.com/eborisch/ethname

0
27.01.2020, 20:58

Теги

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