Инструменты пользователя

Инструменты сайта


nix:shell:hacks

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
nix:shell:hacks [2021/09/27 13:02] – внешнее изменение 127.0.0.1nix:shell:hacks [2025/01/28 14:29] (текущий) – [Всякие хитрости в shell] san
Строка 1: Строка 1:
 ====== Всякие хитрости в shell ====== ====== Всякие хитрости в shell ======
 +
 +===== сбор сетевой информации о системе =====
 +
 +<file bash get_net_info.sh>
 +#!/bin/bash                                                                                                                                                                                                         
 +                                                                                                                                                                                                                    
 +log="$(basename $0).$(date +%Y%m%d%H%M%S).log"                                                                                                                                                                      
 +:>$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"                                                                                                                                                                                                  
 +iptables -S                                                                                                                                                                                                         
 +echo "iptables -S -t nat"                                                                                                                                                                                           
 +iptables -S -t nat                                                                                                                                                                                                  
 +echo "iptables -S -t mangle"                                                                                                                                                                                        
 +iptables -S -t mangle                                                                                                                                                                                               
 +) >>$log 2>&                                
 +</file>
  
 ===== получить список каталогов в текущей папке ===== ===== получить список каталогов в текущей папке =====
Строка 33: Строка 57:
 set -o pipefail set -o pipefail
 </code> </code>
 +
 +
 +
 +===== получить список каталогов в текущей папке =====
 +
 +<code bash>
 +ls -d */|sed 's/\/$//'|xargs
 +
 +</code>
 +
 +===== полный путь к каталогу скрипта =====
 +
 +<code bash>
 +dir="$(cd "$(dirname "$0")"; pwd)"
 +
 +</code>
 +
 +===== имя текущего скрипта =====
 +
 +<code bash>
 +basename $0
 +
 +</code>
 +
 +То же самое, но еще отрезаем от имени расширение файла
 +
 +<code bash>
 +basename $0|sed 's/\.[^.]*$//'
 +
 +</code>
 +
 +То же самое, но еще отрезаем от имени все расширения файла
 +
 +<code bash>
 +basename $0|sed 's/\..*$//'
 +
 +</code>
 +
 +===== pipefail =====
 +
 +Если опция pipefail включена — статус выхода из конвейера является значением последней (самой правой) команды, завершённой с ненулевым статусом, или ноль — если работа всех команд завершена успешно.
 +
 +<code bash>
 +set -o pipefail
 +
 +</code>
 +===== tail с подсветкой слов =====
 +
 +<code 4cs>
 +tail -F /path/to/file | grep -E --color=always '^|word1|string 1'
 +
 +
 +</code>
 +
 +Команда будет выводить на экран файл как обычный tail, но при этом подсвечивая строки 'word1' и 'string 1'.
 +
 +Ключ -E для grep включает расширенные регулярные выражения. Это даст возможность использования пайпа ''|'' как элемента ''или''. Первая часть строки для grep ''^'' позволяет выводить все строки (не отфильтровывая), так как совпадает с любой строкой
  
  
nix/shell/hacks.1632736954.txt.gz · Последнее изменение: 2021/09/27 13:02 — 127.0.0.1

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki