Глупый пингвин робко прячет, умный - смело достает...


ramok аватар

Работа с бинарными данными в expect

Изначально expect предназначен для работы с тестовыми данными, поэтому по умолчанию из входного потока удаляет все нули. Изза этого работать с бинарными данными невозможно.
Но эту "особенность" можно отключить с помощью команды remove_nulls 0

Попробуем:

$ echo 003100 | xxd -ps -r | expect -c 'remove_nulls 0; expect -re {.+} { send_user $expect_out(buffer) }' | xxd -ps
0031000a

В дополнение к этому во всех руководствах указано что можно отлавливать из потока нули только с помощью ключевого слова null вместо паттерна, и использовать в glob или regex паттернах этого нельзя.
Эта информация уже не актуальна, в связи с переходом в актуальных tcl на unicode для внутренного представления данных. Поэтому null можно отлавливать привычным \x00

$ echo 003100 | xxd -ps -r | expect -c 'remove_nulls 0; expect -re {\x00} { send_user "NULL!\n" }'
NULL!
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ramok аватар

Скрип показывающий координаты ближайшей wifi соты

Как извесно тенденция "Большой брат смотрит за тобой" все больше нарастает, и у гугла появился сервис определение нахождения fiwi точки доступа по MAC адресу.
При осутсвии GPS, и наличия ноута с wifi и интернетом можно выяснить свое положение по ближайшей точке доступа.

iwlist wlan0 scan | sed -n 's/.* Address: //p;T;s/ //g;q' |
    sed 's/.*/{version:1.1.0,host:maps.google.com,request_address:true,address_language:'${LANG/.*/}',wifi_towers:[{mac_address:"&",signal_strength:8,age:0}]}/' |
    curl -sX POST -d @- http://www.google.com/loc/json |
     sed -e 'h;s/.*latitude":\([^,]*\).*/\1/;G;s/\n[^\n]*longitude":\([^,]*\).*/,\1\n/;s|^|http://maps.google.com/maps?q=|;x;s/[,{]/\n/g;s/["}]//g;s/:/\t/g;s/\n//;G'

Выведется примерно такое

location    
latitude    xx.xxxxxxx
longitude   yy.yyyyyyy
address 
country Страна
country_code    RU
region  Город
county  Город
city    Город
street  Улица
street_number   71
postal_code 12345
0
Ваша оценка: Ничего
ramok аватар

Передача файлов по сети в zsh

Когда то тут был совет как копировать файлы по сети между компьютерами с помощью netcat и tar.


zsh умеет заменять netcat:
На хосте который будет применят файлы слушаем порт 1111, и вывод пренаправляем на распаковывающий tar

host1$ zmodload -i zsh/net/tcp && ztcp -ld3 1111 && ztcp -ad4 3 && tar zvxp <&4 && ztcp -c 3 && ztcp -c 4

На хосте откуда хотим передавать файлы отправляем на host1 запакованные файлы в директории $DIR

host2$ zmodload -i zsh/net/tcp && ztcp -d3 $HOST1 1111 && tar zc $DIR >&3 && ztcp -c 3
0
Ваша оценка: Ничего
ramok аватар

Скрипт нахождения символических ссылок указывающих за пределы каталога

Как то на канале #linux в RusNet возникла у кого то необходимость найти все символические линки в каталоге, которые указывают за пределы каталога.

12:54 < rm_> в общем я миррорю дебиановский реп с недоверяемого сервера
12:54 < rm_> там есть симлинки внутри него... но мне не надо чтоб там где-нибудь затесался симлинк на /
12:54 < rm_> или даже на ../../../../ и т.д
12:55 < Ilmarinen> rm_: а что в этом страшного, все равно апач за документ_рут не выйдет
12:55 < rm_> не апач, а lighttpd
12:55 < rm_> он фолловит куда угодно вроде
12:56 < rm_> почему... после каждого миррора можно пробегать дерево

Родился вот такой вот скрипт, на примере директории /usr/src

$ DIR=/usr/src; find $DIR -type l -print -exec readlink -m '{}' \; | sed -ne 'N;\,\n'$DIR',!{s/\n.*//;s/\n/ /g;s/^/rm /p}'
/usr/src/uClinux -> /usr/local/home/komar/work/dnp5370/uClinux
/usr/src/linux-kbuild-2.6.37 -> /usr/lib/linux-kbuild-2.6.37
0
Ваша оценка: Ничего
ramok аватар

Вывод текста в dc

dc - старейший стековый канкулятор в unix. И как оказалось он умеет выводить текст.
Зачем? Да потому что это возможно! Ж;-))

$ dc -e 138766332635614047970275836748312617226P
hello linsovet!

Число в десятичной форме представляет собой строку, которая выводится с помощью команды P.

Для генерации подобных команд можно использовать такой однострочник

$ perl -Mbigint -pe 'map{($s<<=8)|=$_}unpack"C*";$_="dc -e ${s}P\n"' <<< 'hello linsovet!'
dc -e 138766332635614047970275836748312617226P

Автор идеи скрипта stasikos , сократил до однострочника ams

PS
весия с генерацией сообщения в hex виде (что не так прикольно как в десятичной форме Ж;-)

$ echo 'Привет всем' | xxd -u -ps | sed -ne 'H;$!b;g;s/\n//g;s/^/echo 16i/;s/$/P | dc/p'
echo 16iD09FD180D0B8D0B2D0B5D18220D0B2D181D0B5D0BC0AP | dc
0
Ваша оценка: Ничего
i-sat аватар

Fedora 15 Alpha GNOME3 и настройка 3G модема ZTE MF626 под Мегафон

Этот совет был готов ранее чем совет по Mandriva Linux 2011 Beta 1 Errata, однако никак не доходили руки его оформить. Да, и он тоже написан в продолжение совета про настройку 3G модема от ZTE MF626 на Мегафоне под Fedora Electronic Lab 12.

Не так давно мне стало интересно, что же из себя представляет GNOME 3 в видении команды Fedora. Скажу сразу, что всегда являлся поклонником KDE, однако посмотрев на GNOME 3, он меня приятно удивил. С одной сторны он напомнил мне некоторые удобства MacOSX, а с другой элементы Android.

И, конечно же для подготовки этого совета я использовал Fedora 15 Alpha GNOME 3 LiveCD подготовленный как и ранее по методике писанной в статье про мультибут.

Пожалуй начнём...

0
Ваша оценка: Ничего
i-sat аватар

Мультибут разных LiveCD ISO

Порой возникает желание или необходимость посмотреть на что способен тот или иной дистрибутив Linux без его установки на HDD.

Сейчас это не так сложно, многие дистрибутивы сейчас выкладывают свои LiveCD, однако, каждый раз ждать пока запишется CD или тем более DVD диск, а кроме того каждый раз тратить болванку на каждую Альфу и Бэту очень грустно.

Если у Вас уже установлен Linux и grub, то можно существенно облегчить себе жизнь...

0
Ваша оценка: Ничего
ramok аватар

Бенчмарки процессоров

Бечмарки различных процессоров с выводами.
Так же имеется скрипт для проведения бечмарка и возможность добавить свой результат

0
Ваша оценка: Ничего
i-sat аватар

Mandriva Linux 2011 Beta 1 Errata настройка 3G модема ZTE MF626 на Мегафон unlimited traffic

Пишу этот совет в продолжение совета про настройку 3G модема от ZTE MF626 на Мегафоне под Fedora Electronic Lab 12 http://linsovet.com/zte-mf626-setup

Для кого эта статья?

Во-первых, Вы решили проверить, на что будет способна Mandriva Linux 2011 и для этого загрузили Beta 1 Errata ISO LiveCD и у Вас нет желания ставить Beta-версию на HDD!
Во-вторых, у Вас уже есть USB 3G-модем ZTE MF626, который работает с SIM-картами любых ОПСОСов, и Вы никак иначе не можете настроить Интернет, а без Интернета любая ОС сейчас выглядит уныло.
В-третьих, может Вам нужна система, которая после перезагрузки будет опять свежа как зимний ветер и девственно чиста как самое чистое озеро.

Начнём?

0
Ваша оценка: Ничего

FreeBSD: Решение проблемы с мышкой и клавиатурой

Возможно я что-либо неправильно собрал при установке FreeBSD 7, но факт есть факт - что под KDE4, что под XFCE мышка и клавиатура никак не реагировали на внешние раздражители.

Вот, собственно, то, что мне в этом помогло:

$ echo hald_enable=\"YES\" >> /etc/rc.conf
$ sudo /usr/local/etc/rc.d/hald start

После чего рестартуем иксы.

0
Ваша оценка: Ничего

rlwrap - используем readline в приложениях, в которых его нет

rlwrap позволяет обернуть ввод в приложение, снабдив его функциями редактирования строки от readline. То есть, мы запускаем через rlwrap любую программу, которая просто читает ввод с терминала, например cat, telnet, netcat и получаем историю ввода, передвижение по строке курсорными клавишами, редактирование строки и прочие плюшки нормального, удобного ввода.
Устанавливается rlwrap в виде отдельного одноименного пакета и есть в репозиториях большинства дистрибутивов.

Примеры использования:

1. Подключаемся к локальному SMTP-серверу и имеем чуть более удобную возможность говорить с ним напрямую.

$ rlwrap netcat localhost 25

Удобно для проверки на open proxy.

2. Точно таким же образом можно подключатся к паритилайт IRC бота eggdrop.

3. Ваш пример :)

0
Ваша оценка: Ничего
ramok аватар

Как в zsh удалить битые символические ссылки

В каталоге с активной разработкой могут накапливатся битые символические линки.
Их видно по ls -l.
Удалить их всех разом в zsh можно так

$ rm *(-@)

0
Ваша оценка: Ничего
ramok аватар

Новый интерфейс конфигурации ядра linux

Начиная с версии 2.6.35 в ядре появился новый текстовый интерфейс для конфигурация опций ядра.

$ make nconfig

0
Ваша оценка: Ничего
ramok аватар

Фортунки для zsh

Нашел неплохую подборку советов по zsh.
Что бы постепенно оставивать решил выводить случайный совет при старте каждого шела

$ mkdir ~/.fortunes
$ cd ~/.fortunes
$ wget http://www.strcat.de/tmp/zsh-fortunes.tar.gz
$ tar xf zsh-fortunes.tar.gz

В ~/.bashrc или ~/.zshrc прописываем

if [ -x "`which fortune`" ]; then
    if [ -f ~/.fortunes/zsh-fortune/zsh-fortunes ]; then
        FDB="$FDB .fortunes/zsh-fortune/zsh-fortunes"
    fi
 
    # если debian, то показывать идущие с пакетом fortunes-debian-hints
    if [ -f /etc/debian_version ]; then
        FDB="$FDB debian-hints"
    fi
 
    [ "$FDB" ] && eval fortune -e $FDB
fi

0
Ваша оценка: Ничего

Как скопировать файлы из другой ветки репозитория git

Что же делать, если нужно скопировать файлик из одной ветки git в другую? Браться за голову и делать это руками? Совсем нет. :)

Достаточно сделать в нашей ветке, где файла нет вот такое действие:

$ git checkout другая_ветка путь_к_файлу

и файл магически скопируется из другая_ветка. Останется добавить его и закоммитить.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Узнать время в другом часовом поясе

Иногда нам хочется узнать время в другом часовом поясе. Иногда (но еще реже) нам нужно, чтобы таймзона нашего пользователя была не такой, как системная. Для этого существует переменная окружения TZ, в которую можно записать значение и получить нужный эффект.

$ date
Fri Feb 18 10:22:53 EET 2011
 
$ TZ="America/Chicago" date
Fri Feb 18 02:22:53 CST 2011

Узнать название зоны поточнее всегда можно в каталоге /usr/share/zoneinfo.

0
Ваша оценка: Ничего
FrBrGeorge аватар

Восстановление удалённого, но ещё не закрытого файла в Linux

Если файл был открыт программой, а затем удалён, он ещё доступен среди /proc/$PID/fd/*

0
Ваша оценка: Ничего
ramok аватар

Настройка удалённого рабочего стола на tightvnc

Настройка удалённого рабочего стола на tightvnc.

Имеем:
1. work - компьютер на работе с ubuntu 10.04 (имеет белый ip или возможность прямого проброса портов через роутер)
2. home - компьютер дома с ubuntu 10.04 (имеет серый ip, например в сети передачи данных Beeline Internet)
3. Интернет и руки.

Что нужно:
Как зайти на удалённый рабочий стол из дома на работу (например во время болезни),

Приступим:

0
Ваша оценка: Ничего
ramok аватар

Пересылка письма в mutt вместе с атачами

Пересылка письма в mutt вместе с атачами

  1. Выбираем песьмо и переходим в режим просмотра аттачей кнопкой v (view)
  2. Выделяем все нужные аттачи которые хотим переслать с помощью t (tag entry). Если хотим переслать само тело письма, не забываем его выделить тоже.
  3. Пересылаем письмо нажав ;f, где ; - "применить следующую функцию к помеченным сообщениям"
    f - переслать письмо (forward)
  4. Появится стока "To:" где вводим адрес пересылки

PS
И не забываем хелп по клавише ?

0
Ваша оценка: Ничего