# self sign cert for localhost openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt # find folder which content's size less than 10kb find /volume1/Volume/fapfapbackup -mindepth 1 -maxdepth 1 -type d -exec du -ks {} + | awk '$1 <= 10' | cut -f 2- # Send output to Telegram, JSON POST with curl # telelog.sh LOG=`cat <&0` curl -H "Content-Type: application/json" \ -X POST -d '{"chat_id":"","text":"'"$LOG"'"}' \ "https://api.telegram.org/bot/sendMessage" #usage cat file.log | telelog.sh # Format ls date, get columns ls -l --time-style iso folder | awk '{print $5, $6, $7, $8}' # Case by user input param case "$1" in "action") echo 'do action' ;; *) echo 'do default' ;; esac # Чтение файла построчно # Line by line file reading while read line; do value=`expr $value + 1`; echo $value; done < "myfile" # Чтение токенов из строки # Reading tokens string while IFS=' ' read -ra ADDR; do for letter in "${ADDR[@]}"; do echo $letter; done done <<< "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" # Создать директорию если она не существует # Create folder if it’s does not exists if [-d /tmp/old]; then; elif; fi # Разбиение на подстроки с разделителем # Split line by divider echo $string |cut -d';' -f1 | read str1 echo $string |cut -d';' -f2 | read str2 # Запуск команды или скрипта в фоне # Run in background command-name & # Запуск скрипта или команды работающего после логаута # Run command in background after logout nohup find / -xdev -type f -perm +u=s -print > out.txt 2>&1 & # Найти # Find # … и удалить / and remove (delete) find . -type f -name "FILE-TO-FIND" -exec rm -f {} \; # … Case Insensitive find . -iname PatTeRn -print # … с глубиной поиска / limti search depth find . -maxdepth 1 # Архивировать без сжатия, кусками по 100 мегабайт # Do archive without compression, split by parts zip -0 -s100mb -r archive.zip folder_to_archive # Поиск файла по содрежимому # Search file by contents find . -type f -exec grep -il "pattern" {} \; grep -il "pattern" `find . -type f` # для большого кол-ва файлов find . -type f | xargs grep -il "pattern" # Размер директории # Total directory size du -sh /path/to/folder; # Подсчет строк в файле # How to count lines in a file wc -l /path/to/file; # Использование памяти процессами # Memory usage per process ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'; # Найти все файлы по контенту # Find files by content grep -rn 'bindToDoc' ./bower_components/islands-components/*/popup/ # Найти все файлы с кириллическими символами в одинарных ковычках (локализация в коде) grep -rniEe "'.*[а-я]+.*'" ./blocks/ | grep -v i18n # Какой процесс слушает порт # Which process port used by netstat -lnp # Переименовать с префиксом # Batch rename with prefix for f in * ; do mv "$f" "PRE_$f" ; done # Найти битые ссылки на сайте # Find broken links for site wget --spider -e robots=off --wait 1 --recursive --level=8 -o wget.log -p https://www.site.com/ # --spider – используем HEAD запросы # -e robots=off – игнорируем инструкции robots.txt # --wait 1 – ждём 1 секунду между запросами # --recursive --level=8 – рекурсивно обходим в глубину на 8 уровней cat wget.log | grep -B 2 '404'