Записки программиста.

Бывает, что в своей практике программирования я часто использую одни и те же команды, одни и те же строки кода. Поэтому я решил вести этот сайт - справочник для меня (хорошо если для кого-то ещё) и немного блог. На этой странице по возможности я напишу наиболее часто используемые команды и строки, остальное будет по разделам.

Часто используемые строки:

Уменьшение заданных изображений в папке

for f in *-big.png; do convert $f -resize $(($(file $f | awk '{print $5}') * 3 / 7)) ${f%%-big.png}-small.png; done

Генерация SSH Keys rsa и отправка на сервер

ssh-keygen -t rsa -C "your_email@example.com"
ssh-copy-id -i ~/.ssh/id_rsa.pub root@servername-or-ip

Изменение ID3 тэгов для mp3 файлов для всей папки

for i in *.mp3; do eyeD3 -a 'ArtistName' "$i"; done

Компиляция исходников локализации

msgfmt -cv -o domain-ru_RU.mo domain-ru_RU.po

Оформление терминала (ред .bashrc)

PS1="\[\033[1;34m\][\[\033[0m\]\t\[\033[1;30m\] \[\033[34m\]\W\[\033[1;34m\]]\[\033[32;1m\]:>\[\033[0m\] "

Виртуальная машина qemu

qemu --enable-kvm -boot d image.vdi -m 1000 -redir tcp:80::80

Вырезать кусок видео при помощи ffmpeg

ffmpeg -ss 00:02:15 -t 00:00:25 -i input.mov -vcodec copy -acodec copy out.mov

Отправка файла по ftp через curl

curl -T filename ftp://hostname --user username:password || while ! curl -C- -T filename ftp://hostname --user username:password ; do true ; done

Скачивание файла с докачкой

wget --continue -w 60 http://url/file.name

Работа с архивами

создать .tar.gz

tar -czvf file.tar.gz /full/path

создать .tar.bz2

tar -cjvf file.tar.bz2 /full/path

распаковать tar.gz

tar -xvf file.tar.gz -C /full/path

распаковать tar.bz2

tar -xvjf file.tar.bz2 -C /full/path

Работа с MySql из командной строки

установка

apt-get install mysql-server

или

emerge -av dev-db/mysql

подключение с запросом пароля

mysql -u root -p

создание базы

create database basename;

создание пользователя

grant usage on *.* to baseuser@localhost identified by 'userpasswd';

установка привилегий пользователя

grant all privileges on basename.* to baseuser@localhost;

импорт из файла в базу

mysql -u root -p basename < basename-file.sql

экспорт из базы в файл

mysqldump -u root -p basename > basename-$(date +%Y-%m-%d-%H-%M-%S).sql

Работа с MongoDB из командной строки

установка

apt-get install mongodb-org

или

emerge -av dev-db/mongodb

подключение с запросом пароля

mongo server-or-ip:port/path -u user -p

делаем бэкап

mongodump --host server-or-ip --port port --username user --password password --db dbname --out /path/to/dbdump/$(date +%Y-%m-%d-%H-%M-%S)

восстанавливаем бэкап

mongorestore --host server-or-ip --port port --username user --password password --db dbname --drop --verbose /path/to/dbdump/dir