Архив рубрики «howto»

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 имя_файла - использовать указанный файл в качестве архива, иначе читать с ленты
-zgzip-фильтр. В некоторых реализациях использовать необязательно.
-jbzip2-фильтр. В некоторых реализациях использовать необязательно.

установка adobe flash player 10 на ubuntu

28.11.2008

Если установлена предыдущая версия Flash Player из комплекта Ubuntu, сносим её:

$ sudo apt-get remove flashplugin-nonfree

Со страницы http://get.adobe.com/flashplayer/ скачиваем пакет со свежим плеером в формате .deb для ubuntu.

И, собственно, ставим:

$ sudo apt-get install install_flash_player_10_linux.deb

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

vim + paste: no indent

17.11.2008

При вставке через буфер обмена, vim автоматически табуляцией делает отбивку (indent). Это приводит к тому, что код теряет форматирование, выстраиваясь "лесенкой":

MinSpareServers   5
  MaxSpareServers   10
    StartServers    10
      MaxClients    500
        MaxRequestsPerChild 3000
          Timeout     150
            KeepAlive   off
              HostnameLookups   off

Чтобы избежать ненужного форматирования, можно использовать пару параметров paste/nopaste:

:set paste

... вставлям текст ...

:set nopaste

nvidia + binary drivers

31.10.2008

Система: Ubuntu
Вручную установлены бинарные драйверы NVIDA.
После обновления системы менеджером пакетов, X.org работает только в безопасном режиме.

Решение: пока нет
Суть проблемы в том, что при обновлении ядра пропал модуль, который драйвер собирал при предыдущей установке.
Поэтому драйвер надо переустановить. К сожалению, при работающем X.org сделать это невозможно. Поэтому:

  • Переключаемся в текстовую консоль (Alt-F1)
  • Убиваем X.org:
     ~$ sudo /etc/init.d/gdm stop
  • Собственно, устанавливаем драйвер:
     ~$ sudo ./NVIDIA-Linux-x86-177.80.pkg1.ru
  • И перегружаемся:
     ~$ sudo reboot

Что читать:
http://habrahabr.ru/blogs/ubuntu/42105/
http://albertomilone.com/nvidia_scripts1.html
http://forum.ubuntu.ru/index.php?topic=3031.0
https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia

Git links: что читать

20.10.2008

Харитон прислал немного чтива по Git:

git в картинках:
http://www.altlinux.org/Git/SomeDestReposViaBranches

о том как правильно и безопасно построить процесс работы
сервер <-> рабочий компьютер
http://iportnov.blogspot.com/2008/06/deployment-git.html

еще один must read
file:///home/hariton/Doc/Git/by_Zolotariov/198-git-na-dvoih.html

это, если изучать глубины (очень интересное чтиво):
http://los-t.livejournal.com/tag/git+guts

шпаргалка
http://cheat.errtheblog.com/s/git/

это переводы канонических статей на русский язык
http://www.freesource.info/wiki/RuslanHihin/20povsedevnyxkomandgit&

и вот главное:
http://freesource.info/wiki/RuslanHihin/gitusermanual?v=b7s&

UPD:
The Git Community Book
This book has been built by dozens of people in the Git community, and is meant to help you learn how to use Git as quickly and easily as possible.
http://book.git-scm.com/

цветное приглашение 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" Дэниел Роббинс:

colortable.gif

С помощью ATTR можно делать текст полужирным, подчеркнутым, мигающим, и т.п.:

0 по-умолчанию
1 жирный
22 не жирный
4 подчеркнутый
24 не подчеркнутый
5 мигающий
25 не мигающий
7 инвертированный
27 не инвертированный

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

#!/bin/sh
############################################################
# Nico Golde &lt;nico(at)ngolde.de&gt; 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
 

Ссылки по теме:

Макросы 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 tabs

01.10.2008

Открыть сразу несколько файлов в tab'ах в vim можно так:

~$ vim -p `find -type f -name '*.rb' -print0 | xargs -0 file -i | grep -v 'utf-8' | awk '{print $1}' | sed 's/://'`

(пример от Харитона, открываем в vim все ruby-файлы в кодировке, отличной от utf-8)
Здесь важен ключ -p: открыть файлы в табах.

Vim откроет столько буферов, сколько нашлось файлов, но не более tabpagemax, по умолчанию 10. Изменить количество табов можно в ~/.vimrc так:

set tabpagemax=15

При превышении tabpagemax новые табы не создаются, но навигировать по файлам все равно можно командами :next и :last.

Переключаться между табами можно командами: :tabnext, :tabprevious, :tablast, :tabfirst. Можно замапить из на горячие клавиши. Можно пользоваться горячими клавишами <C-PgUp> and <C-PgDown>.

Ещё полезное:
:tabn[ew] - открыть новый таб
:tabe[dit] [++opt] [+cmd] {file} - открыть файл в новом табе (типа :edit)
:tabf[ind] [++opt] [+cmd] {file} - найти файл в path и открыть в новом табе (типа :find)
CTRL-W gf - редактировать файл с именем, находящимся под курсором, в новом табе
CTRL-W gF - редактировать файл с именем, находящимся под курсором, в новом табе. Отмотать на строку которая указана после имени файла
:tabc[lose][!] - закрыть таб
:tabo[nly][!] - закрыть все табы кроме активного
:tabn[ext] (gt, <C-PageDown>) - переключиться на следующий таб
:tabp[revious] (:tabN[ext], gT) - на предыдущий таб
:tabr[ewind] (:tabfir[st]) - на первый таб
:tabl[ast] - на последний
:tabs - список табов
:tabm[ove] [N] - переместить текущий таб на место сразу за N-ым
:tabd[o] {cmd} - выполнить команду на каждом из табов (:tabdo %s/foo/bar/g)

Подробнее здесь - :help tabpage

Еще интересная фишка. Если переместить курсор на имя файла и нажать gf (go-to-file), то откроется альтернативный буфер с содержимым указанного файла. Старый файл как-бы пропадет из поля зрения. Однако на него можно быстро переключиться командой C-^, так же и обратно. Так удобно редактировать 2 файла одновременно.

По поводу полезных маппингов:
http://www.bygonesky.com/Programming/Settings/Vim/carlos.vim.html, смотреть начиная со 125-й строки.

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>