Что означает символ $^@ (доллара в позиции )в сценарии оболочки?

«Общепринятая передовая практика» заключается в установке всех наборов файлов, (что не следует путать с «запуском всех демонов» ). Если вы склонны оставить некоторые наборы из соображений безопасности, помните, что если кто-то проник в вашу систему достаточно глубоко, чтобы запустить компилятор, запустить демоны (, такие как X )или что-то в этом роде, у вас есть много возможностей. уже большие проблемы. Кроме того, помните, что даже если OpenBSD поставляется с (удивительно )большим набором демонов в базовой установке, они не будут работать по умолчанию, если вы не настроите их. Вкратце,наличие файлов в «не -основных» наборах данных создает проблему (безопасности -с точки зрения ), только если они могут быть использованы злонамеренно, и если кто-то имеет достаточно привилегий, чтобы использовать их против вашей воли, ты уже облажался.

Если вы пропускаете некоторые наборы из-за нехватки места на диске, то это совсем другая история. У меня есть несколько небольших/старых машин, использующих IPSec и маршрутизацию, которые работают на небольших SD-картах, поэтому я склонен опускать все, кроме ядер (, включаяbsd.rdbase**.tgz. Да, и man**.tgz, потому что мне лень переключать терминалы только для того, чтобы найти какую-нибудь страницу man. Но это не имеет ничего общего с безопасностью.

Упоминание в часто задаваемых вопросах связано с такими случаями, как запуск веб-сервера, на котором размещено какое-либо приложение PHP, которое выполняет манипуляции с изображениями/шрифтами с помощью таких вещей, как GD (через модуль php-gd). Из-за этого мне пришлось установить xbaseна безголовый сервер. Я не думаю, что он вам понадобится для tor, но вы всегда можете оставить X-элемент и добавить его позже.

Короче говоря, вы можете не указывать comp*, x*и games*, но помните, что вы их исключили , имейте в виду, что что-то может сломаться, и будьте готовы добавить наборы постов. -установить, если необходимо. Кроме того, имейте в виду, что вам нужно знать, какие наборы вы установили при обновлении машины. Легко забыть, что вы добавили xbaseк вашему (, например. )система 6.4, де -выбираем ее при обновлении до 6.5, а заканчиваем франкенштейном.

В большинстве случаев проще установить все и ни о чем не беспокоиться.

Обновление:sysupgrade, инструмент для автоматического обновления, поставляемый с OpenBSD, автоматически установит все наборы при обновлении системы.

0
18.11.2021, 18:43
1 ответ

В оболочке zshfoo${^array}bar, где array— массив, такой как (a b c), будет расширяться до fooabar, foobbarи foocbar(, как раскрытие фигурной скобки ). ] вместо строк fooa, bиcbar:

$ array=(a b c)
$ print -rC1 foo${^array}bar
fooabar
foobbar
foocbar
$ print -rC1 foo${array}bar
fooa
b
cbar

В коде, который вы цитируете, это используется для добавления~/(пути к домашнему каталогу пользователя )к каждому элементу списка позиционных параметров:

$ set -- a b c "bumble bee"
$ print -rC1 ~/$^@
/home/myself/a
/home/myself/b
/home/myself/c
/home/myself/bumble bee

~/$^@совпадает с ~/${^@}. $@или ${@}— это список позиционных параметров (, обычно являющихся аргументами, передаваемыми текущему сценарию или функции оболочки, или строками, заданными встроенной -утилитой set, как показано выше ).

Найдите в руководстве zshallRC_EXPAND_PARAM. Расширение может изначально исходить из оболочки rc.

4
18.11.2021, 19:34

Теги

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