В Linux было хорошо иметь собственные сценарии или программное обеспечение в
/ usr / local
дерево, чтобы они были четко отделены от программного обеспечения распространенияИ это именно то, что вы получаете от FreeBSD . Оболочки, такие как оболочка Z и оболочка Bourne Again , не являются частью FreeBSD . Это сторонние дополнения. Операционная система иногда называется сленговым названием «база». В общем, в мире BSD сторонние дополнения поверх "base" не живут в
/ usr
. Они живут в/ usr / local
.В мире BSD - и это верно для других операционных систем BSD, таких как OpenBSD - вы получаете операционную систему в
/
и/ usr
, а все остальное, что не операционная система находится в/ usr / local
. Если кто-то хочет только функциональность операционной системы без дополнений, он не принимает во внимание/ usr / local
в том, что он делает.Небольшой поворот в том, что производные от FreeBSD, такие как TrueOS Server и TrueOS Desktop, скромно считают свои дополнения поверх FreeBSD не частью операционной системы.Таким образом, в
/ usr / local
есть целая куча готовых к работе вещей TrueOS вместе с другими, не относящимися к операционной системе. Например: здесь вы найдете PCDM, диспетчер дисплеев TrueOS.И наоборот,
/ usr / local
- это все специально разработанное программное обеспечение, не являющееся частью операционной системы.Чтобы показать, насколько сильно это разделение:
- Скрипты Mewburn
rc
для вещей, не связанных с операционной системой, находятся в/usr/local/etc/rc.d/
и не добавляются в/etc/rc.d/
. Здесь вы найдете/usr/local/etc/rc.d/nginx
.- Файлы конфигурации, не относящиеся к операционной системе, находятся в
/ usr / local / etc /
, а не в/ etc /
. Здесь вы найдете/ usr / local / etc / cups
.- Существует различие между
/ usr / share / man
, где находятся руководства по операционной системе, и/ usr / local / man
, где находятся руководства, не связанные с операционной системой.Даже сам диспетчер пакетов (в настоящее время) не является частью собственно операционной системы. Есть менеджер пакетов «начальной загрузки»,
pkg-static
. Это устанавливаетpkg
, фактический менеджер пакетов, который имеет файлы конфигурации в/ usr / local / etc / pkg
и сам по себе является надстройкой.Концептуальный скачок, который вам нужно сделать, выйдя из мира «дистрибутивов» Linux, заключается в том, что вы не получите операционную систему, созданную путем выбора из мешанины пакетов, поставляемых «дистрибьютором».Вы получаете полную операционную систему как единое целое (устанавливается установщиком, обновляется с помощью
freebsd-update
и поддерживается как единая «загрузочная среда» с использованием ZFS), а все сторонние материалы как порты и пакеты отдельно от этого. Если вы сами поставляете сторонние материалы, будь вы разработчиком или системным администратором, вы также создаете порты и пакеты или просто помещаете их прямо в/ usr / local
как-то.С другой стороны, специально разработанные программы, которые являются частями операционной системы, размещаются в
/
и/ usr
, где находится операционная система. Исходный код и система сборки для всей операционной системы поставляются в/ usr / src
как часть этой единственной самодостаточной системы. Вы вносите там локальные изменения, делитесь ими с другими людьми, используя Subversion (FreeBSD) и git (TrueOS), если хотите, и перестраиваете либо «пользовательскую среду» отдельно, либо всю операционную систему (как «оболочку», так и «ядро» ) отсюда.Интересное примечание
Если вы, тем не менее, создаете свою собственную структуру для своих собственных машин, вы, согласно самому руководству по операционной системе, должны предоставить локальную
hier
страницу руководства, заменяющую операционную систему один. ☺Дополнительная литература
- « Глава 4. Установка приложений: пакеты и порты ». Справочник FreeBSD . 2016. Проект документации FreeBSD.
- Справочник носителя FreeBSD . 2016. Проект документации FreeBSD.
ир
. §7. Руководство FreeBSD .- « TrueOS для пользователей Linux ». Руководство пользователя TrueOS . 2016.
- https://unix.stackexchange.com/a/332441/5132
Я не уверен, что regexp может запомнить длину шаблона, поэтому для чистого (частичного) решения sed :
edit:
это было немного сложнее.
Я придумал sed-файл a.sed
p
s/[0-9]\.[0-9]/a.a/g
s/with/phase 1/
p
s/[0-9]a\.a/aa.a/g
s/a\.a[0-9]/a.aa/g
s/phase 1/phase 2/
p
s/[0-9]aa.a/aaa.a/g
s/a.aa[0-9]/a.aaa/g
s/phase 2/final/
это в основном делает то же самое, что и командная строка, но с отладочной строкой.
1.2
в a.a
(обратите внимание, что цифра в тексте, такая как 1.12%
будет превращена в a.a2%
)1.2
в a.a
(обратите внимание, что цифра в тексте, например, 1,12%
будет превращен в a.a2%
)p
и s/фаза x/.. /
когда OKuse
sed -f a.sed u
, где u
(да, это недопустимый IP-адрес, но это тоже не так)
*random text with different numbers* 255.43.23.8 *some more text* "SpecialWord" 32.123.21.44 *text again*
*random text with different 12* 255.4.2.8 *some more text* "SpecialWord" 32.12.21.44 *text again*
*random text with different 13* 255.453.263.788 *some more text* "SpecialWord" 2.123.21.454 *text again*
*random text with different 1.12%* 255.43.23.8 *some more text* "SpecialWord" 32.123.21.44 *text again*
*random text with different numbers* 5.43.23.8 *some more text* "SpecialWord" 32.3.1.44 *text again*
это приведет к
*random text final different numbers* aaa.aa.aa.a *some more text* "SpecialWord" aa.aaa.aa.aa *text again*
*random text final different 12* aaa.a.a.a *some more text* "SpecialWord" aa.aa.aa.aa *text again*
*random text final different 13* aaa.aaa.aaa.aaa *some more text* "SpecialWord" a.aaa.aa.aaa *text again*
*random text final different a.aa%* aaa.aa.aa.a *some more text* "SpecialWord" aa.aaa.aa.aa *text again*
*random text final different numbers* a.aa.aa.a *some more text* "SpecialWord" aa.a.a.aa *text again*
edit2 : если вы можете позволить себе временный файл
grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' u > v
получите список IP-адресов в v
sed s/[0-9]/a/g v > w
превратитесь в anonnymous IP в w
paste -d '/' v w | sed -e 's|^.*$|s/&/|'
сгенерируйте sed-файл, который превращает IP-адрес в анонимный IP...
paste -d '/' v w | sed -e 's|^.*$|s/&/|' | sed -f - u
... и применить к файлу.
результат такой же, как и выше, за исключением строки с 1.12%
*random text with different 1.12%* aaa.aa.aa.a *some more text* "SpecialWord" aa.aaa.aa.aa *text again*
это предполагает, что вы можете иметь временные файлы и любите использовать крылатую ракету, чтобы убить кролика.
Заменить IP без условий можно с помощью:
perl -pe 's!(\d+(\.\d+){3})! $1 =~s/\d/a/gr !ge'
Пояснение: заменить IP на результат (заменить цифры на "a")
Чтобы защитить IP после "SpecialWord", пометьте IP знаком "#" (и уберите его в конце)
perl -pe 's/"SpecialWord"\s*\d+/$&#/;
.....
s/#//'
Все вместе:
perl -pe 's/"SpecialWord"\s*\d+/$&#/;
s!(\d+(\.\d+){3})! $1 =~s/\d/a/gr !ge;
s/#//' file