Crontab для лентяев
Время от времени требуется запустить задание по расписанию в cron, и линуксоид начинает судорожно вспоминать в какой последовательности идут звездочки в crontab. Вот функция, позволяющая облегчить эту задачу:
Эту строчку можно добавить в ~/.bashrc. Использовать так:
— показать, как будет выглядеть в crontab время, чтобы задание запустилось через 5 минут.
Источник.
crontest () { date "-d +$1 minutes" '+%M %k %d %m *'; }
Эту строчку можно добавить в ~/.bashrc. Использовать так:
crontest 5
— показать, как будет выглядеть в crontab время, чтобы задание запустилось через 5 минут.
Источник.
Быстро посмотреть статистику по сетевым подключениям
netstat -tn | awk 'NR>2 {print $6}' | sort | uniq -c | sort -rn
Output примерно такой будет:
9 ESTABLISHED
3 TIME_WAIT
1 CLOSE_WAIT
Источник.
Linux: выводим в консоль все имеющиеся в css цвета
Сегодня настроение для консольного кунг-фу. Задача — вывести список используемых в css цветов. Часто возникающая задача при работе над оформлением.
Warning! Hardcore content!
Под конец желательно сделать:
Найдено здесь
Warning! Hardcore content!
grep -ihr color *.css | sed "s/.*color.*:\ *\"\?\([^\"|^\;|^\!]*\)\(.*\)/color:\1;/" | grep ";" > 1.colors
grep -ihr "background[^\-]" *.css | sed "s/.*background.*:\ *\"\?\([^\"|^\;|^\!|\S]*\)\(.*\)/color:\1;/" | grep ";" >> 1.colors
grep -ihr "border[^\-]" *.css | sed "s/.*border.*:\ *\"\?\([^\"|^\;|^\!|\S]*\)\(.*\)/color:\1;/" | grep ";" >> 1.colors
grep -v url 1.colors > 2.colors
grep -v "\/\*" 2.colors > 3.colors
sort 3.colors | uniq > 4.colors
more 4.colors
Под конец желательно сделать:
cat 4.colors | grep '#' > 5.colors
Найдено здесь
Консольная бубнилка
Очередную bash-няшечку опубликовали на уже хорошо знакомом читателям Мтааламу сайте консольных джыдаев. Вместо того, чтобы для озвучивания текстов использовать громоздкий и специфически настраемаемый синтезатор речи Festival, можно просто добавить в .bashrc
а потом обращаться к ней как
Упражнения из разряда "Ваш кролик написа'л", думаю, каждый выполнит самостоятельно
say() { mplayer "http://translate.google.com/translate_tts?q=$1"; }
а потом обращаться к ней как
say hello
Упражнения из разряда "Ваш кролик написа'л", думаю, каждый выполнит самостоятельно
Vim как читалка электронных книг
Освоив загрузку текстов для чтения с помощью консольного браузера lynx, пришел к выводу, что лучше, все-таки, хранить их не в виде html-документов, а в plain-формате. Для этого, загрузив нужное литературное произведение в lynx, нужно нажать клавишу «p» (от print) — текст будет сохранен на диск с подходящим именем. Открывать же txt-документы привычнее всего с помощью редактора vim:
где ключ -R означает «только для чтения». Одно плохо: при открытии текста появляется его начало, а не то место, где остановился. Оказывается, и это решаемо. Для создания закладки нужно набрать в vim m{метка}, где {метка} — любая последовательность латинских букв. В большинстве случаев достаточно набрать просто
где a — метка.
Чтобы перейти к метке можно использовать `{метка} или '{метка}, например
или
vim -R foo.txt
где ключ -R означает «только для чтения». Одно плохо: при открытии текста появляется его начало, а не то место, где остановился. Оказывается, и это решаемо. Для создания закладки нужно набрать в vim m{метка}, где {метка} — любая последовательность латинских букв. В большинстве случаев достаточно набрать просто
ma
где a — метка.
Чтобы перейти к метке можно использовать `{метка} или '{метка}, например
`a
или
'a
Синхронизация времени по ssh
Симпатичная команда:
Отсюда.
$ date --set="$(ssh [email protected] date)"
Отсюда.
Консольный скриншот
Конечно, легче всего скопировать содержимое консоли через обычный буфер обмена, но, оказывается, можно также получить его в виде картинки:
Изврат, но прикольно.
/sbin/ifconfig | convert label:@- ip.png
Изврат, но прикольно.
Консольное рисование
Не только недавно упоминавшаяся программа sdedit создает графику на основе текстовых команд. В таком режиме могут работать AutoCad, InkScape и другие серьезные редакторы. Но можно, оказывается, создавать графику вообще без графического редактора:
Результат:
Источник.
c=blue;convert -size 50x50 xc:$c $c.png; for i in red green yellow; do convert $c.png -background $i -rotate 20 $i.png; c=$i; done; mv yellow.png logo.png; display logo.png
Результат:
Источник.
Linux: просмотр информации об установленной оперативке
Узнать что за память установлена в Linux можно так:
dmidecode --type 17
Array Handle: 0x0015
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: J2
Bank Locator: CHAN A DIMM 0
Type: DDR2
Type Detail: Synchronous
Speed: 533 MHz (1.9 ns)
Manufacturer: XXXXXXXXXXXXXX
Serial Number: 0x00000000
Asset Tag: Unknown
Part Number: XXXXXXXXXXXXXXXXXXXXXXXXX
- —
- 20 августа 2011, 14:34
- комментировать
bash: выполнение команд с пробелами в именах файлов
Иногда в качестве аргументов скрипту передаются имена файлов с пробелами. Пробелы, естественно, экранированы слешем \. Но, тем не менее, при подстановке аргумента в скрипте могут возникнуть проблемы. Например, если в такой скрипт передать имя файла с экранированными пробелами, это вызовет ошибку:
Тем не менее, если просто выполнить в консоли…
… то проблем не возникнет.
Используем в скрипте такой трюк: временно меняем глобальную переменную IFS (в ней содержатся образцы разделителей), сменив разделитель на \n. Теперь bash будет рассматривать строку в переменной $1 как единое целое.
Такой скрипт будет работать без проблем.
#!/bin/bash
rsync -avz /source/$1 rsync://192.168.0.1/dest/
Тем не менее, если просто выполнить в консоли…
rsync -avz /source/имя\ файла\ с\ пробелами rsync://192.168.0.1/dest/
… то проблем не возникнет.
Используем в скрипте такой трюк: временно меняем глобальную переменную IFS (в ней содержатся образцы разделителей), сменив разделитель на \n. Теперь bash будет рассматривать строку в переменной $1 как единое целое.
#!/bin/bash
tmpIFS=$IFS; IFS='\n'
rsync -avz /source/$1 rsync://192.168.0.1/dest/
IFS=$tmpIFS
Такой скрипт будет работать без проблем.