До сиx пор ищешь правду и смысл жизни? Может ты пропустил основы: помогать, сострадать и любить?

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

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

Третья часть команд Linux, которыми бы стоило пользоваться (предыдущие части, в конце статьи).

  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 и разрешением 800x600

  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