расставляй правильно приоритеты и не отвлекайся на мелочи

Еще 25 полезных Linux команд

Перевод: 25 Even More – Sick Linux Commands
Автор: Isaiah

Третья часть команд Linux, которыми бы стоило пользоваться. Вот здесь: Часть 1 и Часть 2.

  1. Мониторинг прогресса выполнения команды
    pv access.log | gzip > access.log.gz
    

    Pipe viewer утилита для мониторинга прогресса данных проходящих через конвейер. Она может быть вставлена в любой конвейер между двумя процессами для получения визуального отображения того, как быстро данные проходят через него, и как долго это происходит, сколько данных осталось для обработки и как скоро это завершится. Источник: http://www.catonmat.net/blog/unix-utilities-pipe-viewer/ (прим. hb: я публиковал перевод здесь)
  2. Графическое дерево директорий
    ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'
    
    Выводит графическое дерево директорий начиная с текущей
  3. Удалить все файлы в директории которые не соответствуют заданным расширениям
    rm !(*.foo|*.bar|*.baz)
    
    Удаляет все файлы в директории, которые НЕ попадают под шаблон *.foo, *.bar или *.baz. Отредактируйте шаблон внутри скобок на тот, который вам нужен.
  4. Легкий и быстрый доступ к часто используемым командам, которые могут быть очень длинными и составными.
    some_very_long_and_complex_command # label
    
    При использовании обратного поиска вам требуется набрать некоторую часть команды, которую вы хотите вызвать. Однако, если команда очень сложная, может показаться довольно трудным, вспомнить ту ее часть, которая будет ункальным образом характеризовать команду. Используя трюк предложенный выше вы можете прикрепить метку для вашей команды и затем получить простой доступ к ней нажав ^R и набрав метку (она должна быть короткой и понятной).
  5. Определение функции «быстрого калькулятора»
    ? () { echo "$*" | bc -l; }
    
    определяет сподручную функцию для быстрых подсчетов прямо из консоли.
    после этого можем посчитать:
    ? 10*2+3
    
  6. Вывод часов в вашем терминале
    watch -t -n1 "date +%T|figlet"
    
    Эта команда выводит часы, которые обновляются каждую секунду. Нажмите Ctrl-C для выхода.
    Пара вариаций:
    Немного больший текст:
    watch -t -n1 "date +%T|figlet -f big"
    
    Вы можете попробовать любой другой figlet фонт.
    watch -n 1 -t '/usr/games/banner -w 30 $(date +%M:%S)'
    
    Эта команда требует определенной версии баннера и 40-строчного терминала или вы можете подобрать его с помощью ширины (здесь используется ?30?).
  7. Перехват stdout/stderr другого процесса
    strace -ff -e trace=write -e write=1,2 -p SOME_PID
    
  8. Удаление дублированных записей в файле без необходимости в его сортировке.
    awk '!x[$0]++' <file>
    
    Используя awk, найдем дубликаты в файле без его сортировки, которая перетусует содержимое. Awk не перетусует его, и все же найдет и удалит дубликаты, которые вы можете перенаправить в другой файл.
  9. Запись screencast и конвертирование его в mpeg
    ffmpeg -f x11grab -r 25 -s 800x600 -i :0.0 /tmp/outputFile.mpg
    
    Перехватывает X11 вход и создает MPEG с частотой 25 fps и разрешением 800×600
  10. Монтирование .iso файла в UNIX/Linux
    mount /path/to/file.iso /mnt/cdrom -o loop
    
    «-o loop» позволяет вам использовать файл как блоковое устройство
  11. Вставить последнюю команду без последнего аргумента (bash)
    !:-
    /usr/sbin/ab2 -f TLS1 -S -n 1000 -c 100 -t 2 http://www.google.com/ затем
    !:- http://www.urfix.com/ то-же самое
    /usr/sbin/ab2 -f TLS1 -S -n 1000 -c 100 -t 2 http://www.urfix.com/
    
  12. Преобразовать секунды в человекочитаемый формат
    date -d@1234567890
    
    Этот пример выведет следующее: Fri Feb 13 15:26:30 EST 2009
  13. Контроль за исполнением
    ^Z $bg $disown
    
    Вы запускаете скрипт, команду, что угодно… Вы не задумываетесь о том, как долго он будет работать, но вот 5 часов и вы собираетесь домой… Подождите, скрипт все еще работает… Как быть, если прерывать его работу нежелательно? Вы просто нажимаете Ctrl-Z, вводите команду bg и далее disown. Все, ваш скрипт «ушел» в бэкграунд, можете смело выходить из терминала и идти домой.
    (hb: !!! очень полезная вещь, советую вам с ней разобраться. Еще как вариант запуска из командной строки вместо пресловутого & выглядит так: mylongtask.sh ; < ctrl > Z; bg; disown)
  14. Редактирование файла на удаленном хосте через vim
    vim scp://username@host//path/to/somefile
    
  15. Мониторинг процессов запущенных MySQL
    watch -n 1 mysqladmin --user=<user> --password=<password> processlist
    
    Watch очень полезная команда для периодического запуска другой команды – в данном случае используется mysqladmin для отображения результатов processlist. Этот прием хорошо применим для мониторинга за «тяжелыми» запросами.
    Более подробную информацию вы можете найти здесь: http://codeinthehole.com/archives/2-Monitoring-MySQL-processes.html
  16. Экранирование(escape) алиасов команд
    \[command]
    
    к примеру, если rm это алиас для ‘rm -i’, вы можете заэкранировать(escape) алиас предварив его обратным слэшем:
    rm [file] # будет запрашивать подтверждение перед удалением (срабатывает алиас)
    \rm [file] # не будет запрашивать подтверждение перед удалением (будут срабатывать "умолчания" для rm)
    
  17. Показать приложения, которые используют интернет соединение в данный момент.
    ss -p
    
    каждый процесс в новой строке:
    ss -p | cat
    
    только установившиеся сокет соединения:
    ss -p | grep STA
    
    процессы по именам:
    ss -p | cut -f2 -sd\" или
    ss -p | grep STA | cut -f2 -d\"
    
  18. Отправить всплывающее сообщение в Gnome
    notify-send ["<title>"] "<body>"
    
    Заголовок (title) не обязателен.
    Опции:
    -t: время окончания в миллисекундах.
    -u: срочность (низкая — low, обычная — normal, критическая — critical).
    -i: путь до иконки.
    Для Debian систем вам может понадобится установка пакета ‘libnotify-bin’.
    Полезный пример использования: когда wget закончит скачивание будет выведено сообщение:
    wget URL ; notify-send "Done"
    
  19. Быстрое переименование файла
    mv filename.{old,new}
    
  20. Удалить все, за исключением определенного файла
    rm -f !(survivior.txt)
    
  21. Сгенерировать случайный 30 символьный пароль
    strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
    
    Находим случайную строку в /dev/urandom. Используем grep фильтр выбирая только буквенно-цифровые символы и затем выводим первые 30 и удаляем все переводы строк.
  22. Запустить команду только в том случае, когда средняя нагрузка достигнет определенного уровня
    echo "rm -rf /unwanted-but-large/folder" | batch
    
    Прием хорош для выполнения работ, которые необходимо выполнить в «спокойное» время. Уровень средней загрузки по умолчанию равен 0.8, но он может быть установлен с помощью atrun.
  23. Двоичные часы
    watch -n 1 'echo "obase=2;`date +%s`" | bc'
    
    Создает двоичные часы.
  24. Производительность Процессора / памяти в GB/s
    dd if=/dev/zero of=/dev/null bs=1M count=32768
    
    Читает 32GB нулей и отбрасывает их.
    Насколько быстра ваша система?
  25. Сохранить все базы данных MySQL в отдельные файлы
    for I in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $I | gzip > "$I.sql.gz"; done