]Менее эффективный ( но очень гибкий ) процесс - это создание пакетного файла:[
] [ls | grep .gz | sed -e 's/^/gunzip /' | less
]
[]показывает, что произойдет, чтобы простая опечатка не уничтожила вашу систему[
] [ls | grep .gz | sed -e 's/^/gunzip /' | bash
]
[]делает это прямо сейчас[
] [ls | grep .gz | sed -e 's/^/gunzip /' > unpack
at 02:00
bash unpack
<ctrl-d>
]
[]делает это за ночь[
] [] (обратите внимание, что в этом примере не учитываются пробелы в именах файлов)[
].Необходимо удалить # из # SecAction в фрагменте, процитированном для правила 900015. Над этим строкой написано, что нужно сделать это, если использовать правила DoS.
-121--244564-Порядок важен. Оболочка обрабатывает перенаправления файлов в том порядке, в котором они отображаются. Учтите:
cat >file.txt 2>&1
Сначала stdout перенаправляется в файл file.txt
. Затем stderr перенаправляется в stdout, который является file.txt
. Таким образом, stdout и stderr отправляются в file.txt
.
Напротив, рассмотрим:
cat >file.txt 1>&2
Сначала stdout перенаправляется в файл file.txt
. (При этом файл file.txt
создается как пустой файл.) Затем stdout перенаправляется на stderr. Таким образом, stdout переходит к stderr и ничего не переходит к file.txt
и, следовательно, file.txt
остается пустым файлом.
Рассмотрим:
cat 2>&1 >file.txt
Сначала stderr перенаправляется в stdout, который все еще является терминалом. Затем stdout перенаправляется на file.txt
. Это второе перенаправление не влияет на stderr. Он по-прежнему отправляется на терминал. Он не отправляется в file.txt
.
Это поведение документировано в man bash
:
Обработка перенаправлений в порядке их появления слева направо.
Исключением из этого порядка, которое также документировано в man bash
, являются трубопроводы. Рассмотрим:
command1 ... | command2
Стандартный выход command1
передается трубопроводом на стандартный вход command2
и это соединение выполняется
перед любыми перенаправлениями, указанными первой командой.
Рассмотрим:
command1 >file.txt | command2
Поскольку перенаправление на file.txt
происходит после перенаправления на конвейер, stdout из command1
перейдет в file.txt
. command2
не будет принимать входные данные.
Если вы спугнали IP, ответ пойдет на этот IP, а не на ваш IP, так что либо вы переведете свою плату Ethernet в неразборчивый режим, либо вы ничего не получите (кстати, в промиссном режиме вы не получите ответ на арпинг, но вы можете видеть ответные пакеты с tcpdump или whireshark).