Короткие команды и однострочники, которые использую каждый день. Без воды - только то, что реально работает.

Найти большие файлы

BASH
# Топ-10 больших файлов
find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -10

# Или через ncdu (нужно установить)
ncdu /
Нажмите, чтобы развернуть и увидеть больше

Быстрый бэкап перед правками

BASH
# Бэкап с датой в имени
cp nginx.conf{,.bak.$(date +%Y%m%d_%H%M%S)}

# Результат: nginx.conf.bak.20240724_143022
Нажмите, чтобы развернуть и увидеть больше

Мониторинг в реальном времени

BASH
# Следить за логом и подсвечивать ERROR
tail -f /var/log/app.log | grep --color=auto -E "ERROR|$"

# Обновляющийся вывод команды
watch -n 1 'docker ps'
watch -d 'kubectl get pods'  # -d подсветит изменения
Нажмите, чтобы развернуть и увидеть больше

Массовое переименование

BASH
# Убрать пробелы из имён файлов
for f in *\ *; do mv "$f" "${f// /_}"; done

# Изменить расширение
for f in *.txt; do mv "$f" "${f%.txt}.md"; done
Нажмите, чтобы развернуть и увидеть больше

Работа с процессами

BASH
# Найти процесс по части имени
pgrep -f "part_of_name"

# Убить все процессы пользователя
pkill -u username

# Дерево процессов
ps auxf
# или красивее
pstree -p
Нажмите, чтобы развернуть и увидеть больше

Сетевая магия

BASH
# Кто слушает порт
ss -tlnp | grep :80
lsof -i :80

# Проверить доступность порта
nc -zv hostname 443
timeout 2 bash -c "</dev/tcp/google.com/443" && echo "Port open"

# Простой веб-сервер для тестов
python3 -m http.server 8080
Нажмите, чтобы развернуть и увидеть больше

Git лайфхаки

BASH
# Отменить последний коммит (оставить изменения)
git reset --soft HEAD~1

# Исправить сообщение последнего коммита
git commit --amend

# Показать изменения в последнем коммите
git show --stat

# Удалить все локальные ветки кроме main
git branch | grep -v "main" | xargs git branch -D
Нажмите, чтобы развернуть и увидеть больше

Docker однострочники

BASH
# Удалить все остановленные контейнеры
docker container prune -f

# Логи с таймстампами
docker logs -t --since 30m container_name

# Выполнить команду во всех контейнерах
docker ps -q | xargs -I {} docker exec {} df -h

# Размер образов и контейнеров
docker system df
Нажмите, чтобы развернуть и увидеть больше

Быстрый анализ логов

BASH
# Топ IP адресов в access.log
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20

# Количество 4xx и 5xx ошибок
awk '$9 ~ /^[45]/ {print $9}' access.log | sort | uniq -c

# Запросы медленнее 1 секунды (nginx)
awk '$NF > 1' access.log | wc -l
Нажмите, чтобы развернуть и увидеть больше

Полезные алиасы

BASH
# Добавить в ~/.bashrc
alias ll='ls -alh'
alias ..='cd ..'
alias ...='cd ../..'
alias ports='netstat -tulanp'
alias myip='curl -s ifconfig.me'
alias serve='python3 -m http.server'

# Docker алиасы
alias dps='docker ps'
alias dpsa='docker ps -a'
alias dex='docker exec -it'
alias dlog='docker logs -f'

# K8s алиасы
alias k='kubectl'
alias kgp='kubectl get pods'
alias kgs='kubectl get svc'
alias kdp='kubectl describe pod'
Нажмите, чтобы развернуть и увидеть больше

Проверка ресурсов

BASH
# CPU и память топ процессов
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10

# Использование диска по директориям
du -h --max-depth=1 / 2>/dev/null | sort -hr

# iostat для дисков
iostat -x 1
Нажмите, чтобы развернуть и увидеть больше

Работа с текстом

BASH
# Удалить пустые строки
sed '/^$/d' file.txt

# Заменить во всех файлах
find . -type f -name "*.conf" -exec sed -i 's/old/new/g' {} +

# Посчитать строки кода (без пустых)
find . -name "*.py" -exec cat {} + | sed '/^$/d' | wc -l
Нажмите, чтобы развернуть и увидеть больше

Безопасность

BASH
# Генерация паролей
openssl rand -base64 32
# или
tr -dc 'A-Za-z0-9!@#$%' < /dev/urandom | head -c 20

# Проверить SSL сертификат
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
Нажмите, чтобы развернуть и увидеть больше

Дебаг и тестирование

BASH
# HTTP запрос с заголовками
curl -I https://example.com
curl -H "Host: example.com" http://localhost

# DNS lookup
dig +short example.com
# Все записи
dig example.com ANY

# Трассировка системных вызовов
strace -e open,read,write -p PID
Нажмите, чтобы развернуть и увидеть больше

Бонус: полезные функции для .bashrc

BASH
# Распаковать любой архив
extract() {
  if [ -f $1 ]; then
    case $1 in
      *.tar.bz2)   tar xjf $1   ;;
      *.tar.gz)    tar xzf $1   ;;
      *.tar.xz)    tar xJf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1   ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xf $1    ;;
      *.tbz2)      tar xjf $1   ;;
      *.tgz)       tar xzf $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *)           echo "'$1' cannot be extracted" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}

# Создать директорию и перейти в неё
mkcd() {
  mkdir -p "$1" && cd "$1"
}
Нажмите, чтобы развернуть и увидеть больше

Авторские права

Автор: Vasiliy Fakunin

Ссылка: https://notes.melancholic.tech/posts/%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-%D0%B8-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D1%8F%D1%82-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F/

Лицензия: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша