http://mtaalamu.ru
Сайт этот — audio-class.ru/. Он помогает быстро освоить или подтянуть разговорный английский. Я туда зашел как раз с этой целью: понадобилось освежить речевые навыки. Чтобы не выглядеть наглым пиратом и неблагодарной скотиной, искренне хочу поспособствовать посещаемости этого отличного ресурса, который его авторы развивают, как говорится, не за страх, а за совесть. Отличный контент, с юмором всё сделано, доброжелательно и без всякой рекламы. Спасибо, чуваки, энергии вам в вашем благородном деле!
Теперь о шкурном интересе. Одной из самых важных фишек вышеупомянутого сайта является сборник озвученных фраз, запоминание которых на слух и является, как известно, залогом успеха в изучении языка. Всё там прекрасно работает: небольшие аудиофрагменты звучат прямо с веб-страницы, только успевай глазами соответствующий текст читать. Всего 8 страниц по 50 фраз, итого 400. Но есть недостаток. Память у меня пока еще довольно цепкая и при повторном прослушивании я поймал себя на том, что помню не саму фразу, а ее положение на странице. А хотелось бы рандомно… Вот эта мысль и толкнула на небольшое «преступление»: решил выкачать все аудиофрагменты и прослушивать локально.
]]>
$ adb pull /data/data/com.android.providers.contacts/databases/contacts2.db ; sqlite3 -batch <<EOF contacts2.db <CR> .header on <CR> .mode tabs <CR> select * from data; <CR> EOF
Чтобы вытащить все СМС можно использовать
adb pull /data/data/com.android.providers.telephony/databases/mmssms.db ; sqlite3 -batch <<EOF contacts2.db <CR> .header on <CR> .mode tabs <CR> select * from sms; <CR> EOF
Источник.]]>
Окно выбора представляет собой список из 2х организаций, например (названия замазаны квадратиками)
Если нажать «Отмена» скрипт просто прекратит работу, если нажать «ОК» выбрав филиал, или просто 2 раза щелкнуть на названии филиала — сработает та или иная часть скрипта.
Сам скрипт:]]>
for i in {1..10}; do wget $(wget -O- -U "" "http://images.google.com/images?imgsz=xxlarge&hl=en&q=wallpaper&sa=N&start=$(($RANDOM%700+100))&ndsp=10" --quiet | grep -oe 'http://[^"]*\.jpg' | head -1);done
А почему бы и не испытать этот трюк? Скопипастить строку в консоль и дождаться результата закачки при хорошем соединении займет не более 3 минут. Вот такой получился «улов».
Остальное под катом.
]]>
$ qrencode -o contact.png ?`cat contact.vcs`?
vcs — текстовой формат для обмена визитными карточками.]]>
Рекурсивно в bash можно добавить расширение так:
find . -type f -not -name "*.doc" -exec mv "{}" "{}".doc \;
Источник]]>
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Источник.]]>
wget -O - http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java
выведет поток не в файл, а на экран. Только вот вспомогательный аутпут wget'а всё дело портит:
$ wget -O - http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java
--2012-05-03 18:54:32-- http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java
Resolving docs.oracle.com... 77.109.171.186, 77.109.171.152
Connecting to docs.oracle.com|77.109.171.186|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2514 (2.5K) [text/plain]
Saving to: `STDOUT'
0% [ ] 0 --.-K/s
/*
* "@(#)Timeout.java 1.1 02/11/01 SMI"
*
* Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
* и т.д.
Наверно, у этой утилиты есть ключи, позволяющие подавить ненужный текст, но мне, почему-то, подумалось, что он направлен в поток сообщений об ошибках, т.е. всё на ту же консоль. Предчувствия не обманули:
$ wget -O - http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java 2>/dev/null
/*
* "@(#)Timeout.java 1.1 02/11/01 SMI"
*
* Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
*
* Sun grants you ("Licensee") a non-exclusive, royalty free,
* license to use, modify and redistribute this software in source and
* binary code form, provided that i) this copyright notice and license
Юниксвей, фигли.]]>for file in *; do echo mv "${file}" "${file// /_}"; done
Не забудьте убрать слово echo, которое предохраняет от реального переименования на период отладки
Или даже так:
for file in "* *"; do mv "${file}" "${file// /_}"; done
Ох уж эти пробелы в именах файлов…
Отсюда.]]>
$ echo -e "o\nn\np\n1\n\n\nw\n" | fdisk /dev/sdX
Кажется, есть способ сделать это и более кошерным способом не входя в интерактивный режим, но неходчивость консольных гуру безгранична ]]>
]]>$ for f in $(find . -name "*.zip"); do if ( unzip -l $f | grep [file name] &> /dev/null ); then echo $f; fi; done
vi +5d +wq foo
Эта команда откроет файл foo, удалит 5-ю строку, сохранит и закроет. Всё, конечно же, «молча». Думаю, в некоторых bash-скриптах, где sed требует слишком сложных выражений, это свойство можно эффективно использовать.]]>
file -i файл.doc
файл.doc: application/msword; charset=binary
На bash можно сделать такую конструкцию — если тип файла (имя передается параметром скрипту) соответствует определенным типам, то производим с файлом какие-либо действия:
]]>type=$(file -i "$1")
if echo "$type" | egrep -q 'office|word'
then
# Делаем что-нибудь
fi
]]>makeself <archive_dir> <file_name> <label>
#!/bin/bash
while true
do
FN=`/usr/bin/inotifywait --format %f -e close_write /tmp`
IS_TIFF=`echo $FN | grep -o .tif`
if [ $IS_TIFF == ".tif" ] ; then
IP_TEST=`echo $FN | egrep -o [0-9]{3}`
echo -n "Fax for $IP_TEST..."
echo "" | mutt "ip$IP_TEST@localhost" -a "/tmp/$FN" -s "New fax"
echo ' done!'
echo "$FN" >> /tmp/asttest.log
rm -f "/tmp/$FN"
fi
done
На пользователей заведены почтовые ящики, соответствующие их номерам телефонов. Т.е. если факс принимается для абонента телефонной станции с номером 209, файл имеет название /tmp/209.tif и отправляется на почтовый ящик ip209@localhost.]]>
]]>find ./ -user someuser -exec chown www:www {} \;
UUID=`uuidgen` ; echo $UUID | sed s/-//g
можно делать так:
UUID=`uuidgen` ; echo ${UUID//-/}
Источник.]]>
ffmpeg -ss 5 -i video.avi -vframes 1 -s 320x240 thumb.jpg
Источник.]]>
]]>kill -9 `ps ux | grep 'wicd-client.py$' | awk '{print $2;}'`
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
Найдено здесь]]>