четверг, 23 октября 2008 г.

Маленькие полезности (.inputrc, .vimrc, grep, wget ....)

У каждого пользователя Linux со временем накапливаются решения/настройки/способы работы с системой, которые можно отнести к категории "маленькие полезности".


Файл .inputrc

set input-meta on
set output-meta on
set convert-meta off
set completion-ignore-case on
set completion-query-items 100
set show-all-if-ambiguous on
set bell-style none

В программах использующих readline (bash...) автодополнение файлов не учитывает регистр, не пищит и не требует повторного нажатия если встречается несколько вариантов. Мелочь, а приятно... Также к полезности можно отнести биндинги readline (man readline). Например, гораздо быстрее использовать ctrl-a/ctrl-e для перехода в начало/конец строки и даже ctrl-h для удаления символа, чем привычные, но далеко расположенные home/end/backspace,

Файл .bashrc

alias grep='grep --color=auto'


Цветной grep.

Файл .vimrc

:syntax on
:colorscheme elflord


Подсветка синтаксиса.


" Set spelling language.
set spelllang=ru
" Toggle spell checking for the current buffer with Ctrl-i
map <F7> :setlocal invspell<CR>
imap <F7> <C-o>:setlocal invspell<CR>

Проверка орфографии по F7 (vim >=7.0). При этом словарь может быть скачан из сети автоматически. Правда для этого надо выполнить первое включение орфографии от root, чтобы у vim'а было достаточно прав для записи словаря в систему.


set mouse=a

Задействовать мышку в vim.


:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

Автоматический переход к последней запомненной позиции в редактируемом файле.


set keymap=russian-jcuken
set iminsert=0
set imsearch=0
" Toggle layout for the current buffer
function ToggleRu()
if &iminsert == 0
set iminsert=1
else
set iminsert=0
endif
endfunction

map <M-space> :call ToggleRu()<CR>
imap <M-space> <C-o>:call ToggleRu()<CR>


Переключение раскладки по alt-space с помощью keymap. При этом независимо от раскладки в Vim работают все команды!!!

Файл /etc/x11/xorg.conf
Секция InputDevice для клавиатуры:

Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"

Переключалка на русскую раскладку по ctrl+shift, индиктор -- лампочка scroll lock'a.

Аварийный интернет. Автоматическая авторизация в сети goldenwifi или неожиданные возможности wget
Если в организации по какому-нибудь недорозумению нет интернета, нас почти наверняка спасет goldenwifi. Ставим squid, оплачиваем карточку и вперед... Одна загвоздка -- веб авторизация которая напрягает... Ниже приводится bash скрипт, который демонстрирует возможности wget в этом направлении... ;)

#!/bin/bash
LOG=/var/log/wifi.log
ADDR=start.goldenwifi.ru
INETADDR=www.ru

function login_gwifi()
{
/usr/bin/wget --save-cookies /tmp/cookies.txt \
--post-data 'lang=ru&screen=normal&url=http%3A%2F%2Fwww.yandex.ru%2F&mode=normal&p1uname=USERNAME&p2uname=goldenwifi.ru&password=PASSWORD&is_limits_checkbox=1&show_limits=1' \
https://start.goldenwifi.ru:2443/cgi-bin/status.cgi -q -O /dev/null
}

function check_loop()
{
while /bin/ping -A -c 10 -W6 $ADDR >/dev/null 2>&1; do
if ! /bin/ping -c 10 -W6 $INETADDR >/dev/null 2>&1; then
echo `/bin/date`" - trying login..." >> $LOG
login_gwifi
fi
sleep 60
done
echo `/bin/date`" - no inet found..." >> $LOG
return 1
}

function daemon()
{
echo `/bin/date`" - wifi daemon running..." >> $LOG
while [ 1 ]; do
check_loop
while ! /usr/local/bin/wifiup >> $LOG 2>&1; do
sleep 10
done
done
}

daemon

Комментариев нет:

Архив блога