$ find .mozilla/firefox -type f -name "*.sqlite" -exec time sqlite3 \{\} "VACUUM" ";"
Архив рубрики «unix»
firefox: оптимизация внутренних баз данных sqlite
26.08.2009linux: как узнать (проверить) key fingerprint?
08.06.2009Узнать fingerprint ключа можно при помощи команды ssh-keygen:
# ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key 2048 e2:02:50:2b:d8:1f:ce:d4:18:07:02:7b:22:90:44:25 /etc/ssh/ssh_host_rsa_key.pub (RSA)
По-умолчанию команда ищет публичный ключ и печатает для него fingerprint.
tar: Просмотр содержимого архива (tar.gz, tgz, tar.bzip2)
05.12.2008Для вывода оглавления tar-архива используется команда -t:
~$ tar -tvf archive.tar -rw-rw-rw- 0 username groupname 45523421 Dec 5 16:17 file1.txt -rw-r--r-- 0 username groupname 13234112 Dec 5 16:17 file2.txt -rw-r--r-- 0 username groupname 75323624 Dec 5 16:17 file3.txt
Для tar.gz (tgz; tar+gzip):
~$ tar -ztvf archive.tar.gz ...
Для tar.bz2 (tar+bzip2):
~$ tar -jtvf archive.tar.bz2 ...
Использованные команды:
-t – печать содержимого архива на stdout
-v - подробный вывод, аналог ключа -l утилиты ls. Без этой команды будет выведен краткий спискок файлов без размеров и прав.
-f имя_файла - использовать указанный файл в качестве архива, иначе читать с ленты
-z – gzip-фильтр. В некоторых реализациях использовать необязательно.
-j – bzip2-фильтр. В некоторых реализациях использовать необязательно.
Ubuntu: x-term в UTF-8, соединение с удаленным хостом в KOI8-R
27.11.2008Дано: X-терминал в Ubuntu настроен на работу в локали ru_RU.UTF-8. Удаленный сервер может адекватно работать только с кодировкой ru_RU.KOI8-R. Что делать?
Решение: перекодировать на лету
Для этого удобно использовать утилиту luit, входящую в дистрибутив и устанавливаемую по умолчанию в составе пакета x11-utils.
$ LANG=ru_RU.KOI8-R luit $ ssh user@koi8.host.tld
Если случилось так, что у вас нет локали KOI8-R, то придется ее создать:
$ sudo locale-gen ru_RU.KOI8-R
цветное приглашение bash prompt
15.10.2008В unix-консоли, а в частности в приглашении bash можно использовать ANSI-последовательности для задания цветового вывода:
PS1='[\\e[01;32m]\\u@\\h[\e[00m]:[\\e[01;34m]\\w[\\e[00m]$ '; export PS1
Цвет задается последовательностью вида \e[ATTR;FG;BGm, где ATTR - необязательный аттрибут, FG - цвет переднего плана, BG - цвет фона.
Сброс цвета к значению по умолчанию - \e[0m
Краткую таблицу соответствия кодов конкретным цветам опубликовал в статье "Prompt Magic" Дэниел Роббинс:

С помощью ATTR можно делать текст полужирным, подчеркнутым, мигающим, и т.п.:
| 0 | по-умолчанию |
| 1 | жирный |
| 22 | не жирный |
| 4 | подчеркнутый |
| 24 | не подчеркнутый |
| 5 | мигающий |
| 25 | не мигающий |
| 7 | инвертированный |
| 27 | не инвертированный |
В качестве примера полезно посмотреть небольшой скрипт, выводящий на консоль таблицу возможных цветовых комбинаций:
#!/bin/sh ############################################################ # Nico Golde <nico(at)ngolde.de> Homepage: http://www.ngolde.de # Last change: Mon Feb 16 16:24:41 CET 2004 ############################################################ for attr in 0 1 4 5 7 ; do echo "----------------------------------------------------------------" printf "ESC[%s;Foreground;Background - \\n" $attr for fore in 30 31 32 33 34 35 36 37; do for back in 40 41 42 43 44 45 46 47; do printf '\\033[%s;%s;%sm %02s;%02s ' $attr $fore $back $fore $back done printf '\\n' done printf '\\033[0m' done
Ссылки по теме:
- Linux Tips: Prompt Magic, by Daniel Robbins
- Colorful Shells -- Using ANSI Color Codes, by Nico Golde
Макросы RCS
13.10.2008Ниже приведен список макросов RCS, которые можно использовать внутри любых текстовых файлов. При checkout'е макрос будет развернут в значение.
Макросы RCS (RCS Keywords)
© http://babbage.cs.qc.edu/courses/cs701/Handouts/rcs_keywords.html
© Перевод Алексей Шатловский, 2008, http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/
$Author$
Имя учетной записи юзера, который внес зарегистрировал (check-in) последнию ревизию
$Date$
Дата и время (UTC) последнего check-in.
$Header$
Стандартный заголовок, содержащий полное имя RCS-файла, номер ревизии, дату (UTC), автора, состояние и имя учетной записи юзера, заблокировавшего ревизию (если заблокировано).
$Id$
То же, что и $Header$, но имя файла без полного пути.
$Locker$
Имя учетной записи юзера, заблокировавшего ревизию (пусто, если не заблокировано).
$Log$
Лог-сообщение, введенное во время checkin, предваренное заголовком, содержащим имя RCS-файла, номер ревизии, автора и дату. Существующие логи замещаются. Вместо этого, новые логи вставляются после $Log:...$. Это полезно для сохранения полной истории изменений исходного файла.
$RCSfile$
Имя RCS-файла без пути.
$Revision$
Номер ревизии.
$Source$
Имя и полный путь к RCS-файлу.
$State$
Состояние, назначенное ревизии опцией -s команд rcs(1) или ci(1).
vim: old-skool h0tkeyz
23.09.2008" F2 = Save file map <silent> <f2> :write<cr> imap <silent> <f2> <esc>:write<cr> " F10 = Exit without save map <silent> <f10> :quit<cr> imap <silent> <f10> <esc>:q<cr>
Инструкция по установке Ruby + Gems + Rails на Ubuntu
19.09.2008Ставим Ruby через менеджер пакетов apt-get:
~$ sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev build-essential
Пакеты rdoc и irb не входят в зависимости, хотя и необходимы для Gem и Rails.
Ставим RubyGems из исходников. Это позволит в дальнейшем RubyGems спокойно само-обновляться:
~$ wget "http://rubyforge.org/frs/download.php/38646/rubygems-x.x.x.tgz" ~$ tar -xvzf rubygems-x.x.x.tgz ~$ rm rubygems-x.x.x.tgz ~$ cd rubygems-x.x.x ~$ sudo ruby setup.rb ~$ cd .. ~$ rm -r rubygems-x.x.x
(НЕЛЬЗЯ запускать установку снаружи, типа use sudo ruby rubygemsx.x.x/setup.rb)
Теперь можно обновить RubyGems
~$ sudo gem update --system
Если эта команда не сработала, то, возможно, нужно создать симлинк /usr/bin/gem1.8 -> /usr/bin/gem
~$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
Ставим Rails и mongrel через RubyGems:
~$ sudo gem install rails mongrel
Добавляем /var/lib/gems/1.8/bin/ в пути, и все готово!
~$ PATH=${PATH}:/var/lib/gems/1.8/bin/ ~$ export PATH
[источник]
Харитон Мизгирь пишет: NB! если при установке какого-нибудь gem'а выдается ошибка
"no such file to load — mkmf"
это значит, что не установлен ruby1.8-dev, libsqlite3-dev
или еще какой-нибудь *-dev
~$ sudo apt-get install ruby1.8-dev libsqlite3-dev
и т.д.
grep+awk: запросто вынимаем значение параметра из конфига
18.09.2008Задача: передать в sh-скрипт значение параметра PidFile из конфига apache.
Решение:
CONF="/usr/local/apache/conf/httpd.conf" PIDFILE=`grep -i ^[[:space:]]*pidfile $CONF | tail -n 1 | awk '{ print $2 }'`
Где:
grep -i ^[[:space:]]*pidfile $CONF
- выбираем из конфига все строки, начинающиеся сPidFile
tail -n 1
- берем последнюю из них
awk '{ print $2 }'
- выбираем из нее второе поле (значение)
tar.gz: извлечение конкретного файла
17.09.2008Если из архива .tar(.gz) нужно извлечь конкретные файлы, то просто надо просто перечислить их в параметрах. Например, из архива archive.tar.gz надо извлечь файл public_html/index.html. Используем заклинание:
alex@test:~$ tar zxvf archive.tar.gz public_html/index.html