Маленькие хитрости

Получить заставку с ролика YouTube

http://img.youtube.com/vi/VIDEO_ID/#.jpg

where for the video example above, VIDEO_ID=bQVoAWSP7k4 and # (0,1,2, or 3) corresponds to one of the 3 thumbnails that YouTube automatically generates.

Парсинг URL в JS

var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port;     // => "3000"
parser.pathname; // => "/pathname/"
parser.search;   // => "?search=test"
parser.hash;     // => "#hash"
parser.host;     // => "example.com:3000"

Создание пользователей в htpasswd

А теперь, мой маленький друг, необходимо создать сам файлик с паролями где ему положено быть – тоже нет ничего сложного, правда для этого потребуется немного апача ; ))) точнее одна его встроенная утилита – htpasswd:

htpasswd –c /usr/local/etc/oops/passwd pupkin 

Все, мы создали и файл с паролем и пользователя в придачу. Но следующего пользователя нужно уже создавать без ключа –c, иначе файл перезапишется и прежний юзверь исчезнет.

htpasswd /usr/local/etc/oops/passwd nepupkin

Рекурсивная перекодировка

Сей незатейливый скрипт позволит тебе, камрад, перекодировать всю твою библиотеку, со всеми подкаталогами из ненавистной виндовой кодировки, в расово правильную utf-8

#!/bin/sh 
find . -name '*.txt' -type f | while read i; do iconv -c -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done
Чтобы создать архив `project.tar' содержимого каталога `project', введите: 
tar -cvf project.tar project

Чтобы создать упакованный архив `project.tar.gz' содержимого каталога `project', введите:
tar -zcvf project.tar.gz project

Чтобы увидеть содержимое `project.tar', введите:
tar -tvf project.tar

Чтобы увидеть содержимое упакованного архива `project.tar.gz', введите:
tar -ztvf project.tar

Чтобы распаковать архив `project.tar', введите:
tar -xvf project.tar

Чтобы распаковать упакованный архив `project.tar.gz', введите:
tar -zxvf project.tar.gz
На старом хостинге воспользоваться утилитой mysqldump ( user - имя пользователя базы данных, base - имя базы данных).
mysqldump -uuser -p base > base.sql
На новом хостинге создаешь пользователя и базу данных.
mysql -uuser -p base < base.sql

Импорт/экспорт данных из MySQL

Для создания резервной копии базы MySQL и переноса её на другой сервер используется утилита mysqldump. Данная утилита позволяет получить SQL-скрипт (дамп базы), с помощью которого на другом сервере можно полностью восстановить базу данных (таблицы и данные в них).

Для того, чтобы создать дамп базы, можно использовать такую команду:

mysqldump -u<логин1> -p -h<хост1> -P<порт1> <база1> > database.sql

После выполнения этой команды в файле database.sql и будет дамп базы данных. Этот файл Вы можете копировать и переносить на другие серверы, где восстановить структуру и содержание базы.

Восстановить базу из дампа можно вот так:

mysql -u<логин2> -p -h<хост2> -P<порт2> <база2> < database.sql

Обратите внимание на следующую особенность. Если Вы посмотрите содержимое файла дампа, то увидите, что он представляет из себя обычный текстовый файл, в котором содержится последовательность команд для заполнения базы - создание таблиц и запись в них данных. В процессе восстановления базы эти команды выполняются, таким образом перенося данные в базу. Если в дампе database.sql и в базе база2 содержится таблица с одинаковым именем, то восстановление базы прервётся и Вы получите сообщение об ошибке, поскольку нельзя будет создать таблицу с уже существующим именем. С другой стороны, при успешном завершении восстановления базы уже существующие в ней таблицы не будут затронуты, в базу просто добавятся новые таблицы из дампа. Поэтому, если Вы хотите полностью заменить содержимое базы без сохранения старых данных, то предварительно нужно удалить все таблицы из базы командой DROP TABLE.

В случае, если база данных имеет большой объем, то дамп можно сразу заархивировать, а при восстановлении базы передать команде mysql данные из архива, например, таким образом:

mysqldump -q -u<логин1> -p -h<хост1> -P<порт1> <база1> | gzip -c > dump.gz
gunzip -cd dump.gz | mysql -u<логин2> -p -h<хост2> -P<порт2> <база2>

Обратите внимание на ключ -q (--quick). Его обязательно нужно использовать.

При очень больших объемах данных размер файла дампа может превысить 2 Гб - это максимально допустимый размер файла на хостинге. В этом случае при переносе базы можно вообще не создавать дамп, а выполнить подряд команды mysqldump и mysql:

mysqldump -q -u<пользователь1> -P<порт1> -h<хост1> -p<пароль1> <база1> | mysql -u<пользователь2> -P<порт2> -h<хост2> -p<пароль2> <база2>
Сия незатейливая строчка запускает процесс замены во все файликах htm в текущем каталоге. 
Меняется src=" на src="resource/image".При небольшой смекалке, можно использовать в целях порабощения человечества...

sed -i 's/src=\"/src=\"resource\/image\//g' *.htm

И рекурсивно

find . -type f -name \*.htm -exec sed -i 's/regexp1/regexp2/g' {} \;
7 = read, write & execute 
6 = read & write
5 = read & execute
4 = read
3 = write & execute
2 = write
1 = execute

Рекурсивно, только каталоги
find . -type d -exec chmod 755 {} \;

Рекурсивно, только файлы
find . -type f -exec chmod 644 {} \;
тоже, что 2 предыдущие вместе взятые

chmod -R go=rX,u=rwX /home/test

Рекурсивно, файлы по маске (например *.php)

find . -type f -name '*.php' -exec chmod 644 {} \;

Рекурсивный поиск текста в файлах
find . -type f -exec grep -H 'keyword' {} \;