Вы читаете журнал [info]aonick

Про Linux

Ноя. 21, 2011

11:46 pm - TMOUT=1200

Хорошая настройка - уж привык.

Сент. 13, 2011

11:52 pm - mkfifo foo; script -f foo

www.commandlinefu.com

mkfifo foo; script -f foo

Share your terminal session real-time

One person does "mkfifo foo; script -f foo" and another can supervise real-time what is being done using "cat foo".

Июл. 8, 2011

12:26 pm - "while read" да плюс "$RANDOM"

Ask: Добрый день!!!
I'm: Добрый
Ask: начал вчера писать скрипт
Ask: но упёрся в то, что не знаю как считывать, например в цикле, из текстового файла строку за строкой и брать каждую для обработки в скрипте.
Ask: и прекратить это дело, когда строки в исходном файле-списке кончатся.
I'm: cat FILE.txt | while read STR;do Чего нить с переменной STR делать;done
Ask: О!
Ask: Так просто!!!
Ask: Попробую..
I'm: можно еще так:
cat FILE.txt | while read STR1 STR2 STR3;do ...
Тогда строки будут разбиватся по пробелу
I'm: плюс как пример:
cat /etc/passwd| while IFS=":" read Name x Uid Gid Comment Home Shell; do echo $Name  - $Home;done
Ask: Это можно бесстрашно попробовать?
I'm: да
I'm: попробывать и проанализировать)
Ask: Хорошо. СПАСИБО!
...
Ask: да, цикл с  passwd интересный
Ask: но не понимаю что такое IFS?
I'm: InputFieldSeporator - указываем таким образом разделитель другой (по умолчанию пробел и табуляция)
Ask: аааа.. прикольно. То есть такая предопределённая переменная в системе.
I'm: угу

Ask: ещё воевал с функцией случайной генерации числа, оказалось всё просто: $ RANDOM % 100 это  кпримеру если нужен диапазон от 0 до 100
I'm: это диапозон от 0 до 99
I'm: $[$RANDOM%100+1]  -  это в диапозоне 1-100
I'm: на тему случаностей - есть еще команда shuf
I'm: cat FILE.txt | shuf   -перемешает строки на выводе
cat FILE.txt | shuf  -n1      -  выведет одну случайную строку из файла
I'm: и $RANDOM  сама в диапозоне от 0 до 32767 - стоит учитывать когда нужно из большего диапозона

Окт. 26, 2010

10:14 pm - Загрузчик

Ответ на вопрос: Как загрузчики определяют между собой какой из них будет использоваться?, особенно если присутствуют загрузчики от разных систем - от Linux и Windows, например.

Порядок загрузки следующий:
Шаг1) запускается то что в MBR.
Шаг2) А всё - нету стандартного шага второго - смотря что там в MBR, то дальше и работает...


В SUSE'ях щас по-умолчанию инстолятор делает такую схему:

  1. Например у нас на компьютере стоит Виндавс(для сложности картинки, да и для многих это описание действительности). Тогда у ней реализовано так: в MBR - dos'овский загрузчик, который смотрит какой раздел в таблице разделов помечен как bootable(или "активный" еще называют) и начинает грузить то что на этом разделе прописано загрузочном секторе(первые 512байт раздела). Там у Винды обычно(имхо, мне так долго кажется - но умных книг не читал, может у них там чего еще бывает) загрузчик ntloader (настройки, которого прописаны в C:\boot.ini).
  2. SUSE-инстолятор при установке, заменяет содержимое MBR таким же dos'ким загрузчиком как и описано выше (заменяет на всякий случай - мало ли вдруг там чего-то нето и ли вообще пусто).
  3. Дальше он метит раздел с Линухом как bootable. И ставит в загрузочный сектор этого раздела загрузчик(по умолчанию GRUB).
  4. В настройках GRUB'а прописывает как пункт запуска Линукса, так и пункт запуска загрузчика Виндавса(тот ntloader, который всё так же лежит в начале раздела Виндавс)
Итого: порядок - как после всего этого запускается Винда:
Вместо ранее:
[MBR = dos-загрузчик] -> [1сектор Win-раздела = ntloader] -> [запуск Винды],
теперь:
[MBR = dos-загрузчик] -> [1сектор Linux-раздела = GRUB] -> [1сектор Win-раздела = ntloader] -> [запуск Винды]
Ну а Linux:
[MBR = dos-загрузчик] -> [1сектор Linux-раздела = GRUB] -> [запуск Linux: ядро, initrd и далее по обычной схеме]


Еще раз - это описана схема по-умолчанию, то есть можно при установке сделать всё совсем по другому.
Можно GRUB - ставить в MBR(я так обычно и делаю, так как не предпологаю сносить Linux(то есть и не удалятся настройки grub) и GRUB настраивеемее чем dos'кий загрузчик. ).
Можно даже в виндузовый boot.ini добавить пункт запуска Linux и не перетерать MBR. Но по мне - опять же GRUB более настраиваемый чем ntloader.

Если где про Винду обманул - поправьте


Tags:

Окт. 16, 2010

01:02 pm - Куды Винды?

Попросили сегодня родственники виндавс на ноут поставить, ...а я отказался, хотя и хотел помочь.

И не потому, что "красноглазый линуксойд"  и "вера" не позволяет)) - просто как далеко в прошлом от меня те знания как ставятся виндоус и какие бывают под неё антивирусы, Вордексель. Где это всё "сщастье" взять, да затем активировать, обновить... Жесть.

Даже желая помочь, при попытке подумать над выше перечислеными вопросами, понял что как же это сложно, да и абсолютно, неимоверно скучно. ...Вобщем не смог побороть внутреннее сопративление)))

Но ведь, влёгкую согласился бы поставить какой-нибудь доселе мне не известный дистрибутив Linux'а или BSD-unix'а(ну или чего-нить в этом роде - не закрытое)... потому что просто занятие интереснее, хотя разбиратся где софт брать и как ставить тоже бы пришлось.

Окт. 14, 2010

10:45 pm - ...выравнивает, ресайзит и раскидывает окна по рабочим столам...

Повесел себе кнопку на панель Gnome - которая выравнивает, ресайзит и раскидывает окна по рабочим столам - в соответствии с уже сложившимися взглядами "где им быть правильнее".

Примечания:
1)На нетбуке 1024x600 - можно было бы легко сделать унивирсальный скрипт под разные разрешения, но "ну нафиг - не хочу". Все равно у каждого к тому же еще свои предпочтения, что и где размещать. Скорее это инструкция "как сделать так же себе" для тех кому понравится идея.
2) установлен compiz - с треми(!) рабочими столами. Кому под куб - учитываете это.
3) пример частично урезаный список моих программ, причем правила по ходу использования скрипта всё еще добавляю.
4) нужные координаты, ширину, высоту окон определял следующим образом - раскидал окна "как надо" и "прошелся по ним" запущенной командой xwininfo.

#!/bin/bash
#Dc - определяю текущий рабочий стол
Dc=$(wmctrl -d | grep -o "VP: [0-9,]*" | sed "s/^VP: \([0-9]*\),[0-9]*$/\1/")
#D1, D2, D3 - координаты рабочих столов 1го, 2го и 3го.
D1=$[0-$Dc]       # Буду использовать для браузера и аськи.
D2=$[1024-$Dc] # Для GIMP''а - с эго сложной многооконностью
D3=$[2048-$Dc] # Для "казуальной игрухи" - Wine и если запущена игруха - аську тогда здесь держу.))

# Смотрю список запущенных программ - и по каждой отедьно выделяю ID(уникальный индификатор окна - можно также его узнать, запустив xwininfo), Pid(индификатор процесса - это чтобы окна qutIM - выловить, так как по заголовку они сложно выявляются), Name(заголовок окна).
wmctrl -l -p | while read ID x Pid x Name;do
        case "$Name" in
                "Панель инструментов")
                        # GMP - Панель инструментов - широной 160
                        wmctrl -i -r "$ID"  -e 0,$[$D2+665],0,160,583
                        ;;
                "Слои")
                        # GMP - Панель слоев - шириной 200
                        wmctrl -i -r "$ID"   -e 0,$[$D2+824],0,200,583
                        ;;
                "GNU Image Manipulation Program"|*\(*\)*x*GIMP)
                        # GMP - основное окно - всю оставшуюся часть рабочего стола
                        wmctrl -i -r "$ID" -e 0,$[$D2+0],0,665,583
                        ;;
                "Default - Wine desktop")
                        # Wine-окно 800x600
                        wmctrl -i -r "$ID" -e 0,$[$D3+0],0,800,600
                        # Аська - занимает оставшуюся часть экрана
                        wmctrl -F -r "qutIM"  -e 0,$[$D3+800],0,219,580
                        ;;
                "qutIM")
                        # Ничего - так как все операциии по его размещению переместил к Wine и браузеру
                        ;;
                *Mozilla\ Firefox)
                        # Если не запущен wine то аську запустить рядом с браузером
                        if ! wmctrl -l | grep "Default - Wine desktop" && wmctrl -l | grep "qutIM" ; then
                           wmctrl -F -r "qutIM"  -e 0,$[$D1+919],0,100,580
                           wmctrl -i -r "$ID" -e 0,$[$D1+0],0,919,600
                        else
                        # Если не запущена  аська - весь рабочий стол отдать браузеру
                           wmctrl -i -r "$ID" -e 0,$[$D1+0],0,1024,600
                       fi
                        ;;
                *)
                        # Окно сообщений qutIM'а - откурывать в том же экране где и сама "Аська" - заполняя остальную часть
                        [ "$Pid" -eq "$(pgrep qutim)" ] && {
                                X=$D3
                                W=800
                                wmctrl -l | grep "Default - Wine desktop" || { X=$D1; W=919; }
                                wmctrl -i -r "$ID" -e 0,$[$X+0],0,$W,600
                        }
                ;;
        esac
done
# Повернуть compiz-куб(у меня три стороны) на то окно, которое было активным при нажатии. То есть если сидел в браузере - то при нажатии, всё поперемещалась и "куб" повернулся той стороной, где стал браузер
wmctrl  -a  :ACTIVE:


Верю что наверно(кто знает подвердите, а то может и нет) в tiling-оконныхМенеджерах что-нибудь подобное есть. Но иногда приятее "изобретать свой велосипед".

Неделю - пользуюся и радуюсь.
P.S. Хотя конечно можно было б каждую программу при запуске в нужное место помещать :)

P.P.S. А потом подумал еще и создал файл /etc/acpi/events/my_keys:
event=hotkey (ATKD|HOTK) 0000001b
action=
/path/to/script/my_wmctrl
Который теперь при нажатии на ноутбучную медийную кнопку всё это делает. Код клавиши(0000001b) узнал выполнив команду acpi_listen. Одно только смущает от root'а выполняется - надо "su -c" туда вставить внутрь.

P.P.P.S. Теперь не от root'a - по нажатию вызываю скрипт следующего содержания:
su - user -c "DISPLAY=:0 $(for i in DBUS_SESSION_BUS_ADDRESS XAUTHLOCALHOSTNAME XAUTHORITY;do cat /proc/$(pgrep gnome-session)/environ|tr "\0" "\n"|grep $i;done| tr "\n" " ") /path/to/script/my_wmctrl"

Tags: ,

Окт. 2, 2010

12:07 pm - sopcaster - Просмотр интернет-TV

Уж пару лет как ставил одним знакомым програмку sopcaster для того чтобы смотреть интернетное телевидение, в частности футбольные матчи.

Утилита - консольная, с хитрым способом работы: вначале запускаешь  
sp-sc URL localPORT
а затем подключаешся на этот локальный порт каким-нибудь видео-проигрывателем.

Заставлять делать такие телодвижения человека, который от командной строки очень далек, было не гуманно и поэтому тогда(пару лет назад) родился скрипт(про который сейчас вспомнил(всё это время человек им пользовался не реже раза в неделю, а во время чемпионатов, так и  раз пять на дню) и решил выложить):

#!/bin/bash
URL="$(zenity --entry --text "Укажи URL:" --title SOPCASTer --width=300)"
/usr/local/sopcaster/sp-sc $URL 3908 8908 &> /dev/null &
smplayer http://localhost:8908/tv.asf
killall sp-sc


Комментарий:
Вешается это всё на кнопку(в меню или на панели, или еще куда).
При нажатии появляется менюшка с запросом sop-URL'я(по умолчанию, можно было б например вставлять туда предыдущую указанную ссылку(--text-entry), но тогда гляжу я этого не сделал).
Дальше запускается всё необходимое, в том числе проигрыватель, когда проигрыватель закроют - sopcaster также отключал.


Откуда качал sopcaster - не помню, но гугл показывает вполне достаточное количество ссылок - например:
http://www.linux.ryukent.co.uk/show.php?id=36

Сент. 23, 2010

08:59 pm - youtube-ролик

Для выкачивания роликов с youtube использую утилиту youtube-dl

Сент. 22, 2010

08:51 pm - Прогресс выполнения команды

Писал скриптик для обработки файлов и как всегда добавил отображения прогресса выполнения, но в этот раз подумал "А почему бы не выводить его в той же строке, где и вызвал скрипт - там же еще куча свободного места".

Итого:

Покрупнее
Запускаю скрипт и он выводит: номер_обрабатываемого_файла (общее_количество_файлов) [процент_выполненого]

Сделано это так:
#!/bin/bash
A=0;
N=$(ls $Dir | wc  -l)
for i in $(ls $Dir | tail -n +$A); do
    let A++

    echo -e "\033[1A\033[30CОбработано: $A($N) [$[$A*100/$N]%]"
    команды_обрабатывающие_файл $i
done


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

Добавки:
* конструкция "tail -n +$A" - нужна на случай, когда уже какое-то количество файлов в начале было обработано, тогда просто меняю вначале  "A=0" на, например, "A=50", либо на "A=${2-0}" (то есть если указывать второй аргумент в команде - начинать с него)
* gif-ку делал так:
  1. узнал "window id" для терминала командой xwininfo. Вывело "...xwininfo: Window id: 0x3601b89 "Терминал"..."
  2. for i in {1..200}; do /usr/bin/import -display :0 -window 0x3601b89 scr_${i}.jpg;sleep 1; done - это создало кучу файлов scr_№.jpg
  3. convert $(ls scr*| sort -t_ -k2 -n) itog.gif

Сент. 17, 2010

02:02 pm - sort -R SOMEFILE

Вывод строк в случайном порядке


sort -R SOMEFILE

http://www.commandlinefu.com/commands/view/6593/randomize-lines-in-a-file?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Command-line-fu+%28Command-Line-Fu%29
 

Сент. 12, 2010

03:07 pm - Полезный "alert" через NotifyOSD

http://www.commandlinefu.com/commands/view/6569/get-notified-when-a-job-you-run-in-a-terminal-is-done-using-notifyosd


Get notified when a job you run in a terminal is done, using NotifyOSD
This is an alias you can add to your .bashrc file to get notified when a job you run in a terminal is done.

alias alert='notify-send -i /usr/share/icons/gnome/32x32/apps/gnome-terminal.png "[$?] $(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/;\s*alert\s*$//'\'')"'

example of use:
sleep 20; alert

Сент. 8, 2010

10:19 am - ~/Desktop/

Бывает root'ом сохраняю  какие-то файлы\папки на рабочий стол пользователя, а потом "мучаюсь
" их удаляя или пытаясь отредактировать обычным пользователем. 
А решение вполне простое - сделать так, чтобы всё создаваемое на рабочем столе пользователя было ему доступно:

chmod g+s /home/aonick/Desktop/ 
либо
setfacl -d -m  user:aonick:rwx /home/aonick/Desktop/

Авг. 29, 2010

01:54 pm - Ответ на вопрос: "Монохромная тема, а цветные иконка сильно выбиваются. Как можно заменить иконку?"

Можно всю директорию с иконками /usr/share/pixmaps - промонохромить
(на всякий случай - предварительно сделал бы её копию):

cp -r /usr/share/pixmaps /usr/share/pixmaps.bak
find /usr/share/pixmaps -type f -name "*.png" -exec mogrify -fx intensity {} \;


mogrify - утилита из пакета ImageMagick(нужно установить если нету)

А еще можно "промонохромить" /usr/share/icons/НазваниеТемыИконок и /usr/share/themes/НазваниеТемы


Да памятка для себя - иногда требуется:
---------------------------------------------------------------
Еще можно обесцветить так:
mogrify -modulate 100,0,100   pic.jpg
---------------------------------------------------------------
И в догонку: контраст увеличить:
mogrify -normalize -enhance -unsharp 0 pic.jpg
---------------------------------------------------------------

Авг. 3, 2010

10:04 pm - Время вместо done

Глупость, но всё же - уже привык. А так как исхожу из мнения, что к хорошему быстро привыкаешь, значит полезное.

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

Итого:
в /etc/rc.status (дистриб openSUSE 11.2):
rc_done="${stat}${done}done${norm}"
заменил  на:
rc_done="${stat}${done}$(date +%T)${norm}"

Теперь вместо:
Starting MegaService                                                    done
пишет:
Starting MegaService                                                    22:01:11

Стало более информативно при включении и выключении компьютера.
Кстати в /boot/grub/menu.lst у меня "splash=verbose", чтобы видеть стандартный запуск Линукса, а не картинку bootsplash.

P.S. Перейду уж как-нибудь в ближайшее время на openSUSE 11.3 - на днях потестю и перейду.

Июл. 14, 2010

06:17 pm - перенаправление вывода

Вопрос: Есть возможность при перенаправлении вывода результатов команды в файл вначале вставить еще и саму команду?

Как вариант решения:

{
set -x
команда
} &> файл


Что такое "&>" написано в  "man bash":
There are two formats for redirecting standard output and standard error:
&>word
and
>&word
Of the two forms, the first is preferred. This is semantically equivalent to
>word 2>&1


Пример: Команда:
{ set -x; ls $HOME; } > file.txt
выводит
+ ls -N --color=tty -T 0 /home/aonick
и сохраняет вывод команды ls в файл file.txt

Команда:
{ set -x; ls $HOME; } &> file.txt
и строку
+ ls -N --color=tty -T 0 /home/aonick
и вывод команды ls сохраняет в файл file.txt

Просто "set -x" - начинает еще по stderr выводить выполняемые "распарсенные" команды (кстати может "set -v" больше подходит по постановке задачи - вывод "нераспарсенных" команды) и чтобы он также писался в файл - пишу "&>".

P.S. Какже хорошо log'и аськи постить)

Июн. 8, 2010

07:22 pm - Бывает нужно скачать - за пару дней уже два раза понадобилось

eval $(cat main.html | egrep -o '(thumb|vkid|vtag|uid)\":"[^"]*'|sed 's/":"/=/')
host="$(echo $thumb|cut -d/ -f3)"
wget http://$host/as""sets/videos/$vtag$vkid.vk.flv || wget http://$host/u$uid/video/$vtag.flv

_________________Скрипт(зашел на сайт, Ctrl-U, Ctrl-A и запустил этот скрипт)
eval $(xsel | egrep -o '(thumb|vkid|vtag|uid|md_title)\":"[^"]*'|sed 's/":"/=/')
host="$(echo $thumb|cut -d/ -f3)"
md_title=$(echo $md_title| sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs -n1 echo -e | tr "+()" "_"|sed "s/\&[a-z]*;/-/g").flv
echo $md_title
wget "http://$host/u$uid/video/$vtag.360.mp4" -O ${md_title/.flv/_360.flv} ||  wget "http://$host/u$uid/video/$vtag.240.mp4" -O ${md_title/.flv/_240.flv}

Июн. 3, 2010

02:40 pm - Вывод ps

# Вывод списка процессов и их относительный приоритета указаного пользователя
## опция U - указывает для какого пользователя вывести
## опция o - определяет что выводить, в данном случае: pid процесса, относительный приоритет и имя команды
## опция h - не выводить заголовок
ps U $mUser o pid,ni,comm h

Просто писал скрипт,  который всем процессам определенного пользователя уменьшает приоретет на заданное значение.

Июн. 2, 2010

12:37 am - В URL'ах заменить %20 на "пробел" и не только...

# echo http://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D0%B3%D0%BE-%D1%82%D0%BE_%D0%BD%D0%B0_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%BC | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs -n1 echo -e
http://ru.wikipedia.org/wiki/Чего-то_на_русском

Май. 19, 2010

04:20 pm - Список процессов, проигрывающих звук в текущий момент (commandlinefu)

lsof | grep pcm

http://www.commandlinefu.com/commands/view/5634/list-processes-playing-sound?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Command-line-fu+%28Command-Line-Fu%29

Апр. 30, 2010

08:06 pm - [Полезность из инета] ввод Unicode-символа

Ctrl+Shift+u (появится u) затем Unicode-номер и Enter

Thanks to http://welinux.ru/user/booley

Мар. 29, 2010

05:57 pm - Запись видео с веб-камеры

Используя http://www.opennet.ru/tips/info/2000.shtml - добавил себе на клавишу запуск скрипта:
#!/bin/bash
f_rec(){
        mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:alsa:forceaudio:amode=0:adevice=hw.0,0    -ovc lavc -lavcopts vcodec=mpeg4 -oac mp3lame -lameopts vbr=3:br=32:mode=3 -af volnorm -o ~/Desktop/rec-$(date +%y%m%d_%H%M).avi &>/dev/null
}
if pgrep mencoder; then
        kill $(pgrep mencoder)
else
        f_rec
fi

Теперь при нажатии пишит видео и звук с вебкамеры, а при повторном - прекращает запись.

Мар. 10, 2010

10:21 pm - Ты ещё не анализировал какими командами чаще пользуешься?

- спросил DzhidayРуслан

Грубо и не точно - ответ был получен так:
cat ~/.bash_history | tr "|;" "\n\n"|sed "s/^ //" | awk '{print $1}' |sort |uniq -c |sort -n -r

И из 1000 строк истории -в top'е:
172 grep
153 cut
123 vi
122 sed
93 for
93 echo
88 fold
77 tr
64 cat


А тут уж - можно и диагнозы ставить :)

Правда стоит заметить, что в одной строке истории у меня обычно несколько команд помещается. Прикольно выглядит следующая статистика(количество "пайпов" в одной строке):
cat ~/.bash_history | sed "s/[^|]*//g"|sort |uniq -c|sort -n |while read A B;do echo "$A $B <$(echo $B|wc -c)>";done
2 |||||||||||||| <15>
3 |||||||||||| <13>
3 ||||||||||||||| <16>
  - вот он рекорд (повторенный трижды) :)
5 ||||||||| <10>
8 |||||||||| <11>
9 |||||||| <9>
10 ||||||||||||| <14>
14 |||||| <7>
24 ||||||| <8>
26 ||| <4>
33 ||||| <6>
38 |||| <5>
52 | <2>
53 || <3>
720  <1>


Количество символов в среднем на комманду:

:) Команда в 576 символов - это да!))))), а в среднем порядка 17,584 символа на строку ))))

Вот такая вот статистика - и это причем не на серваке, и от не root'пользователя

Мар. 7, 2010

11:02 pm - Мелочи vim'а - замена и прогон через внешнюю команду

:1,$s/ЧтоМеняем/НаЧтоМеняем/gc - по всему тексту

:1,$! tr "a-z" "A-Z"  - прогонит текст через команду, например замена букв нихнего регистра на верхнего

А еще очень удобно так - замена или прогон через команду в выбраном куске текста:
1)Нажимаем в командном режиме клавишу "v" - першли в "Визуальный режим"(причем "shift-v" - выбор строк, "Ctrl-v" - выбор блока текста).
2)Клавишами "верх", "вниз", "вправо", "влево" - выделяем нужный кусок текста текст.
3) Нажимаем ":"(для выполнения :s/ЧтоМеняем/НаЧтоМеняем/) или "!"(для :! команда)  - и дописываем необходимое - витоге получаем что- то типа такого:
:'<,'>s/^/#/   - таким образом я закомментил выбраные строки(вставил символ "#" в начало строки)

Кстати разделитель не обязательно должен быть "/" часто удобно восродьзоваться каким-нить другим, например:
:1,$s|ЧтоМеняем|НаЧтоМеняем|g

Также про Vim уже писал ранее

02:27 am - Список URLов в октрытых сейчас tab'ах firefox

cat ~/.mozilla/firefox/*.default/sessionstore.js |sed "s|\"_closedTabs\"|\n|" |head -1| grep -o '"url":"http://[^"]*"'| cut -d\" -f4

потребовалось тут накачать всякого - после поисков в браузере открыто около 30 табов страниц скоторых нужно качать - вообщем после команды выше получаем список url'ов и скармливаю их уже другому скрипту.

Фев. 28, 2010

08:13 pm - Погода

wget -q --header='Accept-Language: ru'  "http://www.google.com/ig/api?weather=Moscow" -O - | sed "s|/>|\n|g"|egrep "<(temp_c data|condition data|day_of_week data|low data|high data)=" | iconv -f cp1251 -t utf8 |tr -d \"|while IFS="=" read A B;do echo "$A" | grep -q "forecast_conditions" && echo; echo -ne " \t$B";done
     Сплошная облачность     -3
     Вс     -3     0     Местами солнечно
     Пн     1     3     Местами солнечно
     Вт     -1     4     Снегопад
     Ср     -7     1     Местами солнечно

натолкнуло с http://boombick.org/blog/posts/90

Navigate: (Previous 25 Entries)