nix:shell:hacks
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| nix:shell:hacks [2022/04/08 10:09] – [Делпаем свой "Антивирус"] san | nix:shell:hacks [2025/08/15 08:18] (текущий) – [pipefail] san | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Всякие хитрости в shell ====== | ====== Всякие хитрости в shell ====== | ||
| + | |||
| + | ===== сбор сетевой информации о системе ===== | ||
| + | |||
| + | <file bash get_net_info.sh> | ||
| + | # | ||
| + | | ||
| + | log=" | ||
| + | :> | ||
| + | ( | ||
| + | echo "ip a" | ||
| + | ip a | ||
| + | echo "ip r list table all" | ||
| + | ip r list table all | ||
| + | echo "ip ru" | ||
| + | ip ru | ||
| + | | ||
| + | echo " | ||
| + | iptables -S | ||
| + | echo " | ||
| + | iptables -S -t nat | ||
| + | echo " | ||
| + | iptables -S -t mangle | ||
| + | ) >> | ||
| + | </ | ||
| ===== получить список каталогов в текущей папке ===== | ===== получить список каталогов в текущей папке ===== | ||
| Строка 34: | Строка 58: | ||
| </ | </ | ||
| - | ===== Делаем свой " | ||
| - | Ну антивирус - громко сказано, | ||
| - | База сигнатур, | ||
| - | <file text scanbase.txt [enable_line_numbers=" | ||
| - | Simple Text | ||
| - | Simple {0,1}Text | ||
| - | Simple[ -_]{0, | ||
| - | (S|s)imple (T|t)ext | ||
| - | ^Simple Text | ||
| - | Simple Text$ | ||
| - | </ | ||
| - | Пояснения к строкам сигнатур: | ||
| - | - Поиск точного соответствия строке | ||
| - | - Поиск строки с пробелом или без | ||
| - | - Поиск строки, | ||
| - | - Поиск строк, где слова начинаются с заглавной либо строчной буквы | ||
| - | - Поиск шаблона в начале строки | ||
| - | - Поиск шаблона в конце строки | ||
| + | ===== получить список каталогов в текущей папке ===== | ||
| - | Сам скрипт сканера: | + | <code bash> |
| - | <file bash scan.sh> | + | ls -d */|sed 's/\/ |
| - | #!/bin/bash | + | |
| - | dir=$(cd " | + | </ |
| - | if [[ -z "$1" | + | ===== полный путь к каталогу скрипта ===== |
| - | inc="" | + | |
| - | if [[ -n "$2" ]]; then | + | <code bash> |
| - | for i in $(echo " | + | dir="$(cd "$(dirname |
| - | fi | + | |
| + | </ | ||
| + | |||
| + | ===== имя текущего скрипта ===== | ||
| + | |||
| + | <code bash> | ||
| + | basename | ||
| + | |||
| + | </ | ||
| + | |||
| + | То же самое, но еще отрезаем от имени расширение файла | ||
| + | |||
| + | <code bash> | ||
| + | basename | ||
| + | |||
| + | </ | ||
| + | |||
| + | То же самое, но еще отрезаем от имени все расширения файла | ||
| + | |||
| + | <code bash> | ||
| + | basename $0|sed | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== tail с подсветкой слов ===== | ||
| + | |||
| + | <code 4cs> | ||
| + | tail -F / | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | Команда будет выводить на экран файл как обычный tail, но при этом подсвечивая строки ' | ||
| + | |||
| + | Ключ -E для grep включает расширенные регулярные выражения. Это даст возможность использования пайпа '' | ||
| - | echo " | ||
| - | cmd=$(echo egrep -rnI -f " | ||
| - | echo " | ||
| - | eval $cmd | ||
| - | echo " | ||
| - | </ | ||
nix/shell/hacks.1649401747.txt.gz · Последнее изменение: — san
