Операционная система линукс, несмотря на кажущуюся сперва «топорность» на самом деле позволяет гораздо быстрее и гибче настраивать окружение и получать необходимую информацию. Из рядовых команд можно мутить самые настоящие трюки в консоли, которые позволят вам полюбить работу в терминале ещё больше.

В этой небольшой статье я хочу поделиться с вами набором небольших «лайфхаков» для всяких разных задач в линуксе, которыми со мной поделился один мой знакомый работник службы Unix-хостинга.

Сразу скажу, что ярым любителям «окошечек» и ненавистникам терминалов можно  переключиться на другие статьи, так как здесь у нас будет только консоль и только хардкор.

Итак, поехали!

операции с папками и файлами:

найти что занимает больше всего места (процесс расчёта может занять несколько минут)

du --max-depth=1 / | sort -n -r

найти самые большие папки (по размеру) в текущей

du -kx | egrep -v "\./.+/" | sort -n

найти самый большой файл в текущей папке

ls -lSrh

узнать сколько места занимает папка

du -kh --max-depth=1 адрес_папки

например узнать размер папки /home

du -kh --max-depth=1 /home

мгновенная очистка файла — cat /dev/null > путь_к_файлу

cat /dev/null > file.txt

Рекурсивно выставить всем вложенным файлам, начиная с текущей папки права 644

find путь_к_исходной_папке -type f -exec chmod 644 {} \;

Рекурсивно выставить всем вложенным папкам, начиная с текущей папки права 755

find путь_к_исходной_папке -type d -exec chmod 755 {} \;

узнать свободное и занятое место на всех дисках

df -kh

отсортировать все папки по размеру (например в папке /usr)

du --max-depth=1 /usr| sort -n -r

Поиск самых больших файлов

find / -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'

несколько хитростей с MySQL:

«прибиваем» mysql

mysql -e "show processlist\G" | grep Id | awk '{print $2}' | xargs -iX mysql -e "kill X"

Накатить дамп на базу данных

cat имя_файла_дампа | mysql название_базы

Если после накатывания дампа сайт отображается иероглифами (неверная кодировка)

nano файл_дампа.sql

затем в самое начало файла добавить строку

“SET NAMES 'utf8';”

Проверка баз данных

mysql --execute="SHOW DATABASES" | xargs -P4 -iX mysqlcheck --auto-repair -f X

ещё несколько хаков:

убить все процессы аккаунта

ps aux | grep имя_аккаунта | awk '{ print $2; }' | xargs -iX kill -9 X

Перезапуск swap

swapoff -a && swapon -a

Найти DDOS:

ngrep -W byline port 80 | grep Host

Забанить 10 топ IP

cat LOG | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10 |awk '{print $2}' | xargs -iX iptables -A INPUT -s X -j DROP

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

mkpasswd -s 0

узнать текущую версию Debian (разумеется, актуально только для Debian-дистрибутивов)

lsb_release -a

узнать IP-адрес сайта (например, http://sinclairos.ru)

dig -trace sinclairos.ru

найти расположение файла php.ini

php -i | grep php.ini

Берите себе на вооружение и пользуйтесь!