Топ ваших Linux команд + полезности
Jan 5, 2017 18:08 · 361 words · 2 minute read
Здесь собрано несколько непростых для запоминания «терминальных» команд, которые мне приходилось использовать более одного раза — просто чтобы не потерять. Давайте разберемся!
Как вы знаете, когда вы вводите любую команду в терминале, она сохраняется в истории. Об этом даже была отдельная статья с конкретными примерами. Мне стало интересно, какие же команды чаще всего используются в моей работе — посмотреть список самых часто используемых команд следующей конструкцией:
history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr
В моем случае результат выполнения команды на одном из серверов БД такой:
116 ls
93 crm
92 cat
82 megacli
69 pt-online-schema-change
56 cd
44 mc
39 df
33 grep
23 less
На рабочем ноутбуке я чаще выполняю другие команды:
260 ssh
71 ansible-playbook
32 cd
30 ping
26 sudo
19 mc
11 ls
11 cat
9 history
8 cp
А вот и несколько полезностей:
- получить топ-50 запущенных процессов, отсортированных по потребляемой памяти:
ps -ewwwo pid,size,command --sort -size | head -50 | awk '{ pid=$1 ; printf("%7s ", pid) }{ hr=$2/1024 ; printf("%8.2f Mb ", hr) } { for ( x=3 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
- получить топ-50 запущенных процессов, отсортированных по использованию CPU:
ps -ewwwo pcpu,pid,user,command --sort -pcpu | head 50
- ‘прибить’ все процессы, использующие сетевой диск с резервными копиями (случались неприятности при проблемах в сети):
kill -9 $(ps aux | grep /usr/local/backup/ | awk '{ print $2 }')
- если не обновляются файлы в хранилищах, подключенных по GlusterFS (replicated volume):
find . -type f -exec dd if='{}' of=/dev/null bs=1M \; > /dev/null 2>&1
- найти недавно модифицированные файлы (файл, измененный последним, будет первым в списке):
find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
- список файлов, которые изменялись сегодня:
ls -al --time-style=+%D | grep `date +%D`
- топ-10 процессов, которые запустили не вы, отсортированные по использованию CPU:
ps aux --sort=-%cpu | grep -m 11 -v `whoami`
- отсортированный список самых больших файлов в текущем каталоге:
ls -lSh
- отсортированный список самых больших файлов в текущем и вложенных каталогах:
find /home/ -type f -ls 2> /dev/null | sort -rnk7 | head -100 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'