в bash, debian

Топ ваших Linux команд + полезности


Здесь собрано несколько непростых для запоминания «терминальных» команд, которые мне приходилось использовать более одного раза — просто чтобы не потерять. Давайте разберемся!

Как вы знаете, когда вы вводите любую команду в терминале, она сохраняется в истории. Об этом даже была отдельная статья с конкретными примерами. Мне стало интересно, какие же команды чаще всего используются в моей работе — посмотреть список самых часто используемых команд следующей конструкцией:

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}'

Добавить комментарий

  1. Рабочая тачка.
    $ history | awk ‘{print $2}’ | awk ‘BEGIN {FS=»|»}{print $1}’ | sort | uniq -c | sort -n | tail | sort -nr
    512 ssh
    133 host
    45 dig
    38 ping
    34 make
    28 git
    24 curl
    21 hs
    18 vim
    17 whois