Какова цель - опция класса в личинках menuentry?

Так как Вы сказали, "неважно, как hacky"...

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

5
20.12.2018, 02:13
2 ответа

Найдено это для menuentry:

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

Для использования необходимо посмотреть на grub-темы .


Другие опции:
. Опция --users предоставляет определенным пользователям доступ к определенным пунктам меню. См. раздел "Безопасность".

Опция --unrestricted предоставляет всем пользователям доступ к определенным пунктам меню. См. раздел Безопасность.

Опция --hotkey ассоциирует горячую клавишу с пунктом меню. клавиша может быть одной буквой или одним из псевдонимов "пробел", "табуляция" или "удалить"

.
2
27.01.2020, 20:39

IOW Я всегда задавался вопросом, означает ли >/dev/null , что cat mybigfile >/dev/null фактически обрабатывает каждый байт файла и записывает его в /dev/null , который его забывает.

Это не полный ответ на ваш вопрос, но да, вот как он работает.

cat считывает именованные файлы или стандартный ввод, если файлы не названы, и выводит в стандартный вывод содержимое этих файлов до тех пор, пока он не встретит EOF на (включая стандартный ввод) последнем файле с именем. Это его задание.

Добавляя >/dev/null , вы перенаправляете стандартный вывод в/dev/null. Это специальный файл (узел устройства), который выбрасывает все записанное в нем (и немедленно возвращает EOF при чтении). Обратите внимание, что перенаправление ввода-вывода является функцией, предоставляемой оболочкой, а не каждым отдельным приложением, и что нет ничего волшебного в имени /dev/null, только то, что существует там в большинстве Unix-подобных систем .

Важно также отметить, что конкретные механики узлов устройств варьируются от операционной системы к операционной системе, но cat (который в системе GNU означает coreutils) является кроссплатформенным (один и тот же исходный код должен выполняться по крайней мере на Linux и Hurd) и, следовательно, не может принимать зависимости от конкретных ядер операционной системы. Кроме того, он по-прежнему работает, если вы создаете псевдоним/dev/null (в Linux это означает узел устройства с тем же самым номером мажорного/второстепенного устройства) с другим именем. И всегда есть случай написания где-то еще, который ведет себя эффективно так же (скажем ,/dev/zero).

Из этого следует, что cat не знает об особых свойствах/dev/null и, скорее всего, не знает о перенаправлении в первую очередь, но ему все равно нужно выполнить точно такую же работу: он считывает именованные файлы и выводит содержимое/этих файлов на стандартный вывод. То, что стандартный выход cat попадает в пустоту, само по себе не касается cat .

-121--7677-

Нет, вы, конечно, не хотите закрывать дескрипторы файлов 0, 1 и 2.

Если вы это сделаете, то при первом открытии файла приложение станет stdin/stdout/stderr...

Например, если вы делаете:

echo text | tee file >&-

Когда tee (по крайней мере некоторые реализации, такие как busybox ') открывает файл для записи, он будет открыт на дескрипторе файла 1 (stdout). Таким образом, tee запишет текст дважды в файл :

$ echo text | strace tee file >&-
[...]
open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 1
read(0, "text\n", 8193)                 = 5
write(1, "text\n", 5)                   = 5
write(1, "text\n", 5)                   = 5
read(0, "", 8193)                       = 0
exit_group(0)                           = ?

, который, как известно, вызывает уязвимости системы безопасности. Например,

chsh 2>&-

и chsh (приложение setuid) могут в конечном итоге записывать сообщения об ошибках в /etc/passwd .

Некоторые инструменты и даже библиотеки стараются избегать этого.Например, GNU tee переместит дескриптор файла в один из двух выше, если файлам, которые он открывает для записи, назначены 0, 1, 2, в то время как busybox tee не будет.

Большинство инструментов, если они не могут записать в stdout (например, потому, что он не открыт), будут сообщать об ошибке на stderr (на языке пользователя, что означает дополнительную обработку для открытия и анализа файлов локализации...), так что это будет значительно менее эффективным и, возможно, приведет к сбою программы.

В любом случае, это не будет более эффективным. Программа по-прежнему будет выполнять системный вызов write () . Это может быть более эффективным, только если программа прекращает запись в stdout/stderr после первого неудачного системного вызова write () , но программы обычно этого не делают. Обычно они либо выходят с ошибкой, либо продолжают попытки.

-121--7675-

При просмотре руководства это относится только к тематике. У этого отрывка было немного больше на эту тему.

фрагмент - http://www.gnu.org/software/grub/manual/grub.html#menuentry

Меню загрузки, в котором GRUB отображает пункты меню из «grub.cfg» файл. Это список предметов, где каждый предмет имеет заголовок и необязательный значок. Пиктограмма выбирается на основе указанных классов для элемента меню. При наличии PNG-файла с именем «myclass.png» в каталог «grub/themes/icons», он будет отображаться для предметов, которые имеют класс myclass . Меню загрузки может быть настроено в нескольких способы, такие как шрифт и цвет, используемые для заголовка пункта меню, и задание стилевых полей для самого меню и для выбранного предмета выделить.

3
27.01.2020, 20:39

Теги

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