Есть ли какой-либо инструмент текстового поиска, предварительно загруженный с хорошо известными регулярными выражениями?

Файлы в / sys не являются физическими файлами на диске. Это виртуальные файлы, которые позволяют вам получить доступ к информации в вашем активном ядре. Практическое влияние этого заключается в том, что выполнение на них chown , chmod и т. Д. Является эфемерной операцией, как вы обнаружили. Полное представление файловой системы в / sys создается ядром при загрузке системы, поэтому нет возможности вносить постоянные изменения.

Самое простое решение - запустить ваш скрипт от имени пользователя root. Обычным решением является использование sudo . Вам нужно будет дать вашему пользователю возможность запускать ваш скрипт от имени пользователя root. Так, например, если ваш сценарий установлен как / usr / local / bin / configure-Brightness , вы можете создать /etc/sudoers.d/brightness со следующим содержимым:

yourusername ALL=(ALL) NOPASSWD:/usr/local/bin/configure-brightness

Этот файл ( /etc/sudoers.d/brightness ) должен принадлежать root и иметь режим 440 .

Имея эту конфигурацию, вы можете запустить:

sudo /usr/local/bin/configure-brightness

... и сценарий будет работать как root , что означает, что он сможет читать / записывать файлы в / sys .

1
07.03.2016, 15:53
1 ответ

Да, Perl - ваш друг. В данном случае, в частности, Perl Regexp :: Common. Он предоставляет предопределенные определения регулярных выражений (дополнительные сведения см. В документации: http://search.cpan.org/~abigail/Regexp-Common-2016020301/lib/Regexp/Common.pm ).

Пример IPv4:

$ perl -MRegexp::Common -lne 'print $1 if /($RE{net}{IPv4})/g' file
172.18.0.1
172.17.0.1
127.0.0.1
3
27.01.2020, 23:26

Теги

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