http://mtaalamu.ru ru (http://mtaalamu.ru) (http://mtaalamu.ru) http://mtaalamu.ru http://mtaalamu.ru Консольный английский. Урок 1. "Награбить" английских фраз /blog/coding/2703.html /blog/coding/2703.html yababay
Сайт этот — audio-class.ru/. Он помогает быстро освоить или подтянуть разговорный английский. Я туда зашел как раз с этой целью: понадобилось освежить речевые навыки. Чтобы не выглядеть наглым пиратом и неблагодарной скотиной, искренне хочу поспособствовать посещаемости этого отличного ресурса, который его авторы развивают, как говорится, не за страх, а за совесть. Отличный контент, с юмором всё сделано, доброжелательно и без всякой рекламы. Спасибо, чуваки, энергии вам в вашем благородном деле!

Теперь о шкурном интересе. Одной из самых важных фишек вышеупомянутого сайта является сборник озвученных фраз, запоминание которых на слух и является, как известно, залогом успеха в изучении языка. Всё там прекрасно работает: небольшие аудиофрагменты звучат прямо с веб-страницы, только успевай глазами соответствующий текст читать. Всего 8 страниц по 50 фраз, итого 400. Но есть недостаток. Память у меня пока еще довольно цепкая и при повторном прослушивании я поймал себя на том, что помню не саму фразу, а ее положение на странице. А хотелось бы рандомно… Вот эта мысль и толкнула на небольшое «преступление»: решил выкачать все аудиофрагменты и прослушивать локально.

]]>
Tue, 16 Apr 2013 14:10:44 +0400 bash автоматизация
Вытащить базы данных из устройства с Android /blog/coding/2462.html /blog/coding/2462.html yababay
$ 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


Источник.]]>
Wed, 26 Dec 2012 16:46:15 +0400 bash
Графический интерфейс в bash скриптах /blog/coding/2439.html /blog/coding/2439.html Sergei_T
Окно выбора представляет собой список из 2х организаций, например (названия замазаны квадратиками)



Если нажать «Отмена» скрипт просто прекратит работу, если нажать «ОК» выбрав филиал, или просто 2 раза щелкнуть на названии филиала — сработает та или иная часть скрипта.

Сам скрипт:]]>
Wed, 12 Dec 2012 14:35:57 +0400 bash консоль GTK linux
10 случайных обоев из командной строки /blog/coding/2388.html /blog/coding/2388.html yababay
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 минут. Вот такой получился «улов».



Остальное под катом.
]]>
Thu, 26 Jul 2012 15:13:38 +0400 for fun coding bash
Qr-код из текста /blog/coding/2382.html /blog/coding/2382.html yababay
$ qrencode -o contact.png ?`cat contact.vcs`?


vcs — текстовой формат для обмена визитными карточками.]]>
Thu, 12 Jul 2012 13:08:03 +0400 bash консоль
Рекурсивное добавление расширения к именам файлов. /blog/2356.html /blog/2356.html Sergei_T
Рекурсивно в bash можно добавить расширение так:

find . -type f -not -name "*.doc" -exec mv "{}" "{}".doc \;


Источник]]>
Mon, 04 Jun 2012 13:27:02 +0400 консоль bash
Список каталогов и файлов в виде дерева /blog/coding/2347.html /blog/coding/2347.html yababay
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'




Источник.]]>
Wed, 30 May 2012 21:42:00 +0400 bash консоль
Вывести содержимое веб-ресурса на экран /blog/coding/2310.html /blog/coding/2310.html yababay
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


Юниксвей, фигли.]]>
Thu, 03 May 2012 23:05:18 +0400 bash скрипты
Замена пробелов на нижние подчеркивания в именах файлов /blog/coding/2304.html /blog/coding/2304.html yababay for file in *; do echo mv "${file}" "${file// /_}"; done

Не забудьте убрать слово echo, которое предохраняет от реального переименования на период отладки

Или даже так:

for file in "* *"; do mv "${file}" "${file// /_}"; done


Ох уж эти пробелы в именах файлов…

Отсюда.]]>
Wed, 25 Apr 2012 10:27:38 +0400 bash
Автоматическая разметка жесткого диска /blog/admining/2287.html /blog/admining/2287.html yababay
$ echo -e "o\nn\np\n1\n\n\nw\n" | fdisk /dev/sdX


Кажется, есть способ сделать это и более кошерным способом не входя в интерактивный режим, но неходчивость консольных гуру безгранична ]]>
Thu, 05 Apr 2012 22:21:21 +0400 bash
Поиск файла в zip-архивах /blog/coding/2278.html /blog/coding/2278.html yababay
$ for f in $(find . -name "*.zip"); do if ( unzip -l $f | grep [file name] &> /dev/null ); then echo $f; fi; done
]]>
Fri, 30 Mar 2012 14:17:55 +0400 bash архивация
Vim в режиме автомата /blog/coding/2201.html /blog/coding/2201.html yababay
vi +5d +wq foo


Эта команда откроет файл foo, удалит 5-ю строку, сохранит и закроет. Всё, конечно же, «молча». Думаю, в некоторых bash-скриптах, где sed требует слишком сложных выражений, это свойство можно эффективно использовать.]]>
Wed, 25 Jan 2012 22:52:48 +0400 редактирование текста bash скрипты
Bash: проверяем тип файла /blog/2195.html /blog/2195.html Sergei_T file, например, вывести mime-тип файла можно так (естественно, определение идет по содержимому файла):

file -i файл.doc
файл.doc: application/msword; charset=binary


На bash можно сделать такую конструкцию — если тип файла (имя передается параметром скрипту) соответствует определенным типам, то производим с файлом какие-либо действия:

type=$(file -i "$1")
if echo "$type" | egrep -q 'office|word'
then
  # Делаем что-нибудь
fi
]]>
Mon, 23 Jan 2012 15:35:36 +0400 bash консоль
Извлеки себя сам /blog/coding/2177.html /blog/coding/2177.html yababay
makeself <archive_dir> <file_name> <label>
]]>
Thu, 12 Jan 2012 00:10:18 +0400 консоль bash архивирование дистрибуция
Inotify: датчик изменения файлов /blog/coding/2158.html /blog/coding/2158.html yababay
#!/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.]]>
Wed, 21 Dec 2011 23:26:28 +0400 bash inotify
Поиск и изменение владельца файлов и директорий /blog/2136.html /blog/2136.html Sergei_T
find ./ -user someuser -exec chown www:www {} \;
]]>
Wed, 30 Nov 2011 21:57:58 +0400 консольные инструменты bash
Замена в тексте без sed /blog/coding/2121.html /blog/coding/2121.html yababay
UUID=`uuidgen` ; echo $UUID | sed s/-//g


можно делать так:

UUID=`uuidgen` ; echo ${UUID//-/}


Источник.]]>
Thu, 24 Nov 2011 00:10:15 +0400 bash замена текста
Выхватить кадр из фильма /blog/coding/2093.html /blog/coding/2093.html yababay
ffmpeg -ss 5 -i video.avi -vframes 1 -s 320x240 thumb.jpg


Источник.]]>
Mon, 31 Oct 2011 21:05:43 +0400 bash видео
Linux: убиваем процессы одной командой /blog/admining/2042.html /blog/admining/2042.html Sergei_T
kill -9 `ps ux | grep 'wicd-client.py$' | awk '{print $2;}'`
]]>
Sat, 24 Sep 2011 13:45:51 +0400 linux bash
Linux: выводим в консоль все имеющиеся в css цвета /blog/coding/2010.html /blog/coding/2010.html Sergei_T
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


Найдено здесь]]>
Thu, 08 Sep 2011 15:08:06 +0400 css bash sed grep консоль