yn cychwyn sgript yn y gist ar gyfer kali linux

Использование:

sed '/^<?xml/d' filename

В GNU sed, \? означает ноль или один из предшествующих символов. (В POSIX sed \? не определено.) Поскольку вы хотите сопоставить литерал ? , оставьте его без экранирования.

Примеры

Рассмотрим этот тестовый файл:

$ cat filename
<?xml deleteme
<.xml keepme
..xml keepme

Приведенное выше решение дает желаемый результат:

$ sed '/^<?xml/d' filename
<.xml keepme
..xml keepme

Первая команда в вопросе неверно не дает результатов:

$ sed '/<\?xml/d' filename
$

Это потому, что она соответствует всем строкам, содержащим xml , которому может предшествовать <. Поскольку все строки содержат xml , все они удаляются.

Вторая команда ничего не удаляет:

$ sed '/^<\?xml/d' filename
<?xml deleteme
<.xml keepme
..xml keepme

Удаляет любую строку, которая начинается с нуля или единицы <, за которой сразу следует xml . Поскольку в строках всегда есть хотя бы один символ между < и xml , никакие строки не удаляются.

Как экранировать символы в случае сомнений

Если вы не уверены, является ли символ активным регулярным выражением, и хотите его деактивировать, безопаснее всего заключить его в квадратные скобки:

$ sed '/^[<][?]xml/d' filename
<.xml keepme
..xml keepme

Внутри [ ...] , все символы рассматриваются как буквальные символы.

3
20.04.2018, 04:53
2 ответа

Вы можете добавить этот скрипт в/etc/crontab:

@reboot /path/to/your/start.sh

Из man 5 crontab:

@reboot    :    Run once after reboot.
12
27.01.2020, 21:10

Была такая же проблема, нашел решение в этом посте в другом месте.

Резюме:

sudo vim /etc/systemd/system/rc-local.service

Затем добавьте к нему следующее содержимое.

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Примечание. :Начиная с версии 16.10 Ubuntu больше не поставляется с файлом /etc/rc.local. То же самое для других дистрибутивов, таких как Kali. Вы можете создать файл, выполнив эту команду.

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local

Затем добавьте разрешение на выполнение в файл /etc/rc.local.

sudo chmod +x /etc/rc.local

После этого включите службу при загрузке системы:

sudo systemctl enable rc-local

Наконец, запустите службу и проверьте ее статус:

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

Полный пост вhttps://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd

2
27.01.2020, 21:10

Теги

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