Главная / Однострочники

🚀 Однострочники

Готовые команды под частые задачи — без разбора синтаксиса, только команда и что она делает.

🔌 Убить процесс, занявший порт

kill -9 $(lsof -t -i:8080)

📊 Топ-10 IP по числу запросов в access.log

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10

🗑️ Удалить файлы старше 30 дней

find /var/backups -type f -mtime +30 -delete

✏️ Массовая замена расширения файлов

for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done

📦 Бэкап с датой в имени файла

tar czf backup-$(date +%F).tar.gz /etc /var/www

📁 Топ-10 самых тяжёлых файлов рекурсивно

find . -type f -exec du -h {} + | sort -rh | head -10

🌍 Быстрый HTTP-сервер для раздачи файлов

python3 -m http.server 8000

🔍 Проверить, свободен ли порт

ss -lnt | grep -q ':8080 ' && echo занят || echo свободен

🧲 Извлечь все IP-адреса из файла

grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' app.log | sort -u

🎨 Красиво распечатать JSON-ответ API

curl -s https://api.example.com/data | python3 -m json.tool

🌈 Слежение за логом с подсветкой ошибок

tail -f app.log | grep --color=always -E 'ERROR|$'

📡 Массовый пинг подсети

for ip in 192.168.1.{1..254}; do
  ping -c1 -W1 $ip &>/dev/null && echo "живой: $ip" &
done; wait

👥 Проверить доступность списка хостов из файла

while read -r h; do ping -c1 -W1 "$h" &>/dev/null && echo "$h up"; done < hosts.txt

🧬 Найти дубликаты файлов по хэшу

find . -type f -exec md5sum {} + | sort | uniq -w32 -d

🎲 Сгенерировать случайный пароль

openssl rand -base64 16

🔡 Base64 кодирование / декодирование

echo -n "text" | base64
echo "dGV4dA==" | base64 -d

🌱 Amend последнего коммита без изменения сообщения

git commit --amend --no-edit

📐 Занятое место по подпапкам, от большего к меньшему

du -h --max-depth=1 . | sort -rh

🔧 Замена текста рекурсивно во всех файлах

grep -rl "old_value" . | xargs sed -i 's/old_value/new_value/g'

👀 Слежение за изменением содержимого директории

watch -d -n1 'ls -la /var/www/uploads'

🔎 Кто слушает конкретный порт

sudo lsof -i :443

⬇️ Скачать файл с ретраями и докачкой

curl -C - --retry 5 -O https://example.com/file.zip

🗑️ Почистить старые docker-образы

docker image prune -af --filter "until=240h"

🔄 Синхронизация папок с исключениями

rsync -avz --exclude='.git' --exclude='node_modules' src/ dest/

⏸️ Заморозить / разморозить процесс

kill -STOP pid   # заморозить
kill -CONT pid   # продолжить

🔒 Не дать скрипту запуститься второй раз параллельно

flock -n /tmp/myscript.lock -c "./myscript.sh"

💽 Бенчмарк скорости записи на диск

dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct

🧹 Обрезать разросшийся лог без остановки процесса

tail -n 1000 app.log > app.log.tmp && mv app.log.tmp app.log

🪞 Сравнить локальный файл с удалённым без scp

diff /etc/hosts <(ssh remote-host cat /etc/hosts)

🔗 Пересечение двух списков (общие строки)

sort a.txt b.txt | uniq -d

➖ Разность списков (что есть только в a.txt)

sort a.txt b.txt b.txt | uniq -u

➕ Сумма значений в столбце лога

awk '{ x += $3 } END { print x }' access.log

📈 Топ значений параметра в логе

egrep -o 'user_id=[0-9]+' access.log | cut -d= -f2 | sort | uniq -c | sort -rn | head

👥 Одна команда на список серверов из файла

cat hosts.txt | xargs -I{} ssh root@{} uptime

✍️ Отредактировать текущую команду в редакторе

export EDITOR=vim   # в .bashrc, дальше ctrl-x ctrl-e в любой момент

🔓 Самоподписанный TLS-сертификат за одну команду

openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -subj "/CN=localhost"

📶 Проверить срок действия TLS-сертификата удалённого хоста

echo | openssl s_client -connect host:443 -servername host 2>/dev/null | openssl x509 -noout -enddate

🔍 Все открытые порты вместе с процессами

sudo ss -tulpn

📩 Извлечь все email-адреса из файла

grep -oE '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' file.txt | sort -u

🧹 Полная очистка docker (образы, контейнеры, сети, кэш билда)

docker system prune -af --volumes

🚩 Найти все SUID/SGID бинарники в системе

find / -xdev \( -perm -4000 -o -perm -2000 \) -type f 2>/dev/null

🌿 Удалить все локальные ветки git, уже влитые в main

git branch --merged main | grep -v '\*\|main' | xargs -r git branch -d

📡 Кто ест больше всего исходящего трафика прямо сейчас

sudo iftop -i eth0

🧾 Красиво в таблицу: топ процессов по памяти

ps aux --sort=-%mem | head -11 | awk '{printf "%-10s %-6s %-6s %s\n", $1,$2,$4,$11}'

🗓️ Проверить, когда истекает пароль у всех пользователей

for u in $(cut -d: -f1 /etc/passwd); do echo -n "$u: "; sudo chage -l "$u" 2>/dev/null | grep "Password expires"; done

🔁 Бесконечный retry команды до успеха

until command; do sleep 2; done

📥 Скачать все ссылки со страницы одной командой

curl -s https://example.com | grep -oE 'href="[^"]+"' | cut -d'"' -f2

🧮 Быстро посчитать SHA256 множества файлов и сравнить

find . -type f -exec sha256sum {} + | sort > sums.txt && sha256sum -c sums.txt