logo

muhas.ru — это просто блог…

О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»

Включаем Magic SysRq в ArchLinux

Magic SysRq это действительно магия, магия ядра. Сочетания клавиш с использованием SysRq обрабатываются напрямую ядром, к примеру Alt + SysRq + B перезагрузит вашу систему. Если же система реально подвисла, можно элегантно перезагрузить её с помощью Alt + SysRq R > E > I > S > U > B.

Всё бы ничего, но в ArchLinux Magic SysRq по умолчанию выключен. И выключен не в ядре, с помощью опции CONFIG_MAGIC_SYSRQ, а всего лишь параметром kernel.sysrq=0 в /etc/sysctl.conf — и сие, по-моему, идеологически более правильно, ибо не каждый кому Magic SysRq нужен будет пересобирать ядро. Установив kernel.sysrq в 1, в /etc/sysctl.conf можно включить SysRq. Так же sysctl и файл /proc/sys/kernel/sysrq позволяют включить SysRq только на текущий сеанс до ребута, либо до отключения sysctl -w kernel.sysrq=1 и echo 1 > /proc/sys/kernel/sysrq соответственно.

Alt + SysRq +
0-9 Установить уровень журналирования
E Отправить сигнал SIGTERM всем процессам, кроме init. Ожидается что приложения ответят на этот сигнал, приведут всё в порядок и корректно завершаться.
R Переключить клавиатуру в режим XLATE
I Отправить сигнал SIGKILL всем процессам, кроме init. Это принудительно завершит все процессы.
S Синхронизировать все файловые системы (аналог sync)
U Перемонтировать все файловые системы в режиме "только для чтения"
B Незамедлительно перезагрузить систему
O Отключить питание
M Вывести статистику использования памяти в консоль
T Вывести список задач в консоль
H Показать краткую информацию по использованию всех клавиш SysRq


Вывод числа непрочитанных писем в GNU Screen

Прочитал заметку о том как получать число непрочитанных писем Gmail в статус баре GNU Screen.

У мну в hardstatus (почти тот же caption, только при разбивке GNU Screen на регионы он остается внизу, а на каждом регионе отображается именно caption) тоже показывается количество входящих в gmail, а так как я использую imap, то заодно и общее количество писем. В общем не буду долго распинаться, Сразу приведу листинг конфигов и скриптов. Кстати, благодаря fetchmail можно смотреть количество сообщений не только в gmail, но и в других почтовых ящиках

Скрипт проверки почты
#!/bin/sh

# каталог imap, в которыом проверять (можно несколько, через запятую):
IMAPDIRS="INBOX"
TOTALMSG=0
SEENMSG=0

	# вывод fetchmail:
	CHECKMAIL=`fetchmail -c -r $IMAPDIRS`

	# всего сообщений:
	_TOTALMSG=`echo $CHECKMAIL | cut -d " " -f 1`
	# прочитанных сообщений:
	_SEENMSG=`echo $CHECKMAIL | cut -d "(" -f 2 | cut -d " " -f 1`

	# считаем общее количество сообщений:
	TOTALMSG=`echo $_TOTALMSG | awk -v _totalmsg="$_TOTALMSG" '{ totalmsg += $1} END {print totalmsg}'`

	# считаем количество прочитанных сообщений:
	SEENMSG=`echo $_SEENMSG | awk -v _seenmsg="$_SEENMSG" '{ seenmsg += $1} END {print seenmsg}'`

	# считаем количество непрочитанных сообщений:
	let "NEWMSG = $TOTALMSG - $SEENMSG"

	# выдаём строку "непрочитанных/всего":
	echo $NEWMSG/$TOTALMSG
~/.fetchmailrc

poll imap.gmail.com with proto IMAP
    user "USER@gmail.com" there with password "PASS"
    options nofetchall keep ssl
Для использования просто добавляем %1` в caption или hardstatus и директиву похожую на backtick 1 60 60 путь_к_скрипту_проверки_почты
Где, еденица это id, каждый id можно выводить отдельно, %` (%номер`), а последующие цифры это количество секунд в течении которых вывод можно считать действительным и время обновления соответственно.

Немного горячих клавиш zsh

Сразу оговорюсь, я не буду описывать все возможные сочетания клавиш, здесь описание только тех хоткеев которые использую сам и которые помогают мне в моей повседневности. В основном эти хоткеи касаются редактирования команды и навигации.
Все хоткеи работают в zsh в emacs-style раскладке и в дефолтной конфигурации bash.

Символ ^ означает клавишу Control, а ` это Meta (чаще известная как Alt, так же однократное нажатие Escape тоже приравнивается к Meta)
^i - аналог Tab, автодополнение
^a - переход к началу строки
^e - переход к концу строки
^b - аналог стрелки влево
^f - аналог стрелки вправо
^p - аналог стрелки вверх
^n - аналог стрелки вниз
^h - аналог BackSpace
^k - удалить всё до конца строки (все удаляемое по горячим клавишам удаляется переносится в буфер)
^u - удалить строку
^w - удалить от курсора до начала слова
^x^x - скачок между началом строки и текущей позицией курсора
^y - вставить текст буфера
^_ - undo, отмена последнего действия
^l - очистить экран (набранная строка и даже позиция курсора остаётся)
`< - к первой команде в истории сессии
`> - к последние команде в истории сессии
`. - вставить последний аргумент из предыдущей команды
`b - переход к началу текущего или предыдущего "слова"
`f - переход к следующему "слову"
`d - удалить от курсора до начала "слова"
`BackSpace - удалить текст от текущей позиции до начала "слова"


Так же в у меня в .zshrc есть строки
autoload -U edit-command-line
zle -N  edit-command-line
bindkey -M emacs "^X^E" edit-command-line 

благодаря которым можно вызвать редактор который прописан в переменной EDITOR c помощью сочетания ^x^e. Таким же способом можно назначить хоткей на любую команду и функцию

Естественно что это не все горячие клавиши, но этот минимум очень удобен при работе в консоли, более полный список можно найти в документации

mnear: Предыдущее и следующее сообщение для mosquito BM

Плагин выводящий ссылки на предыдущее и следующее сообщение.

Для использования необходимо включить плагин в админке и прописать в шаблоне поста php код e(@$post['mprev']) и e(@$post['mnext']) в то место где вы хотите увидеть ссылки на предыдущее и следующее сообщение соответственно.
Пример можно видеть на моем блоге, за основу взяты некоторые идеи Bolzamo
Скачать mnear

seo плагин переделывать не буду, ибо не вижу смысла в воде дескрипшена вручную.

Визуальный редактор для mosquito

Если кому не хватало визуального редактора для mosquito, то неплохой редактор NicEdit прикручивается доовльно просто, для этого надо всего лишь в post_form.html из шаблона добавить строки
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>

Так же можно собрать NicEdit с опциональными возможностями и закинув к себе поменять путь к js.

Приятного добавления и редактирования постов.