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