суббота, 31 января 2009 г.

Мдя, таки KDE 4.2

Обновил кеды и на работе и дома до версии 4.2. Ну, что вам сказать, первое впечатление на удивление положительное. По сравнеинию с KDE 4.0 и 4.1 это уже таки нечто похожеее на стабильный продукт. Хотя, то что они сделали с рабочим столом, и эта безумная виджетизация меня страшно бесит. Но во всяком случае, тут уже можно выполнять основные задачи.

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

Монтирование разделов

welinux.ru/How-to`s → Монтирование разделов

Рано или поздно пользователи Linux сталкиваются с таким понятием как монтирование разделов и дисков в Linux. Многие, особенно бывшие пользователи Windows, испытывают трудности с монтированием разделов, хотя если задуматься, то всё очень просто и логично. Ниже приводятся описание процесса монтирования в UNIX-like системах и разбор наиболее типичных случаев. И даже если вы окружены графическим интерфейсом, знание консольных команд может очень пригодиться. Кроме того, узнав пару-тройку полезных команд UNIX, приобщитесь к этой чёрной магии и, может быть, начнёте её использовать.



Монтирование разделов в Linux - общие слова
Если ядро Linux опознало ваше устройство-носитель данных, то оно должно предоставить какой-то внешний интерфейс пользователю для работы с устройством. Этим интерфейсом является создание файлов-устройств в каталоге /dev

Пример:
Устройствам, подключённым к IDE, будут соответствовать файлы-устройства /dev/hda, /dev/hdb и так далее.

Устройствам типа SCSI, а так же близкие им по духу SATA-устройства и USB-флешки, будут иметь файлы-устройства /dev/sda, /dev/sdb и тому подобное.

Если на диске есть разделы, то цифра в имени файла-устройства будет соответствовать номеру раздела.

Пример:
если на USB-флешке есть два раздела, то первый будет называться /dev/sda1, а второй /dev/sda2
Монтирование разделов = объяснение системе, как добраться до ваших данных и сделать их доступными для использования. Системе нужно объяснить три простые вещи:
какая файловая система на разделе;
какой файл-устройство вам нужно;
куда его подключить для просмотра = точка монтирования;
Каталог, в котором вы будете просматривать содержимое ваших разделов, называется точкой монтирования (mount point). Поэтому нужно объяснить системе - командой или через графический интерфейс - что вы хотите смонтировать, куда и что за файловая система на этом разделе.

В переводе на язык UNIX, это звучит так:
1
2
3

mount -t vfat /dev/hda3 /mnt/storage

Если нужно часто монтировать одни и те же разделы, занесите их в /etc/fstab - это общесистемный конфиг, в котором указаны все необходимые разделы для монтирования. Редактировать этот файл может не абы кто, а только root. Так что разживитесь рутовыми полномочиями и редактируйте /etc/fstab

Файл /etc/fstab состоит из колонок, разделители между колонками параметров - табуляция (клавиша TAB). Вот пример содержимого файла /etc/fstab:
1
2
3
4
5
6
7
8

# /etc/fstab: static file system information.
#
#
/dev/hda2 / reiserfs notail,noatime 0 1
/dev/hdb /mnt/cdrom iso9660 ro,user,noauto 0 0
/dev/sda1 /mnt/flash vfat iocharset=koi8-r,codepage=866,rw,user,auto 0 0

Формат колонок такой:
Монтируемое устройство (файл-устройство, он же раздел, который вы хотите примонтировать).
Точка монтирования (в какую директорию в файловой системе монтировать, точка монтирования).
Тип монтируемой файловой системы.
Опции монтирования (кодировка языка, необходимость монтирования при старте).
Dump (обычно 0).
Pass (обычно 0).
Важно, чтобы вы вставляли Тab после каждой колонки при редактировании /etc/fstab

Ниже приводятся уточнения для каждого случая файловой системы, но идея монтирования разделов в Linux одна и та же.

1
2
3

mount -t vfat /dev/hda1 /home/vasya/tempdir


прикрутить тип FAT что прикрутить куда это прикрутить



Пишем буквально то, чего хотим: от имени суперпользователя, прикрутить логическую структуру с файловой системой FAT, находящуюся в файле /dev/hda1, к каталогу /home/vasya/tempdir.

После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками в Windows. Для этого следует дать команду:
1
2
3

$ umount /mnt/XX

или
1
2
3

$ sudo umount /mnt/XX

где /mnt/XX - точка монтирования. Если ни одно приложение не работает с разделом, то раздел размонтируется отключится и данные на него полностью запишутся. После этого устройство можно безопасно извлечь.

Чтобы посмотреть, что можно смонтировать, и увидеть информацию о разделах, можно воспользоваться командой (запуск от root):
1
2
3

# fdisk -l

Увидите что-то вроде:
1
2
3
4
5
6
7
8
9

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 36 289138+ 82 Linux swap / Solaris
/dev/hda2 * 37 7296 58315950 83 Linux

Всё очень просто и логично. Как и многое другое в UNIX.


Предварительные действия перед монтированием
Прежде, чем монтировать разделы, нужно создать точки монтирования. Точки монтирования следует создавать в каталогах /mnt или /media. Для этого даём команду:
1
2
3

$ sudo mkdir /mnt/win

или
1
2
3

# mkdir /mnt/win

и даём каталогу права доступа для обычных пользователей:
1
2
3

$ sudo chmod 777 /mnt/win

или
1
2
3

# chmod 777 /mnt/win

Это позволит считывать и записывать данные не только суперпользователю-руту, но и обычному пользователю. Даже если в системе вы - единственный пользователь. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.

Далее приводятся описания нескольких типичных случаев монтирования разделов и файлов.


Как примонтировать раздел с файловой системой FAT в Linux
Самое главное здесь - кодировка. Замечательная корпорация Microsoft изобрела свою собственную кодировку CP866 для MS DOS, CP1251 для Windows и только в последнее время прозрела до UTF8. Благодарим Microsoft за изобретение велосипеда с треугольными колёсами и приступаем к монтированию.

Однократное монтирование FAT
Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
1
2
3

$ sudo mount -t vfat /dev/XX /mnt/YY -o iocharset=utf8,codepage=cp866

или
1
2
3

# mount -t vfat /dev/XX /mnt/YY -o iocharset=utf8,codepage=cp866

Пример: монтирование типичной флешки выглядит так
1
2
3

$ sudo mount -t vfat /dev/sda1 /mnt/flash -o iocharset=utf8,codepage=cp866

То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash


Постоянное монтирование FAT
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1
2
3

/dev/XX /mnt/YY vfat iocharset=utf8,codepage=866,user,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так
1
2
3

/dev/sda1 /mnt/flash vfat iocharset=utf8,codepage=866,user,rw 0 0


То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash После этого раздел FAT в Linux будет доступен. Отмонтирование по команде
1
2
3

umount /mnt/flash

Как правильно говорят в комментариях, iocharset совпадает с текущей локалью - например, iocharset=utf8.



Как примонтировать раздел с файловой системой NTFS в Linux
Кодировка в NTFS нормальная, но здесь нас ждёт другая засада. Замечательная корпорация Microsoft изобрела не просто новый велосипед с треугольными колёсами, а ещё и закрыла его, треугольноколесатого велокактуса, описание. Да так, что пришлось очень долго его взламывать и создавать драйвера обратной разработкой. О сложности проблемы даёт понять описание дефрагментации NTFS, что, как говорится, внушает.

Но с этим надо жить, и это всё монтировать. Монтировать и записывать на NTFS в Linux, тем не менее, возможно, благодаря героическим усилиям ребят, создавших драйвер NTFS-3g. Этот драйвер можно установить командой:
1
2
3

aptitude install ntfs-3g

или поискать пакет ntfs-3g в графической оболочке установки программ вашего любимого дистрибутива.


Однократное монтирование NTFS
Временное, однократное монтирование, например, раздела с данными Windows, выглядит так:
1
2
3

$ sudo mount -t ntfs-3g /dev/XX /mnt/YY -o umask=0,nls=utf8

или
1
2
3

# mount -t ntfs-3g /dev/XX /mnt/YY -o umask=0,nls=utf8

Пример: монтирование раздела Windows с NTFS разделом выглядит так
1
2
3

$ sudo mount -t ntfs-3g /dev/sda1 /mnt/flash -o umask=0,nls=utf8

То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/flash



Постоянное монтирование NTFS
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1
2
3

/dev/XX /mnt/YY ntfs-3g umask=0,nls=utf8,user,auto,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так
1
2
3

/dev/sda1 /mnt/windows ntfs-3g umask=0,nls=utf8,user,auto,rw 0 0

То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/windows После этого раздел NTFS в Linux будет доступен. Отмонтирование по команде
1
2
umount /mnt/windows




Как примонтировать CD/DVD диск в Linux
Всё проще - скорее всего, это уже сделано в вашем дистрибутиве. Тем не менее, привожу это здесь для примера.

Однократное монтирование CD/DVD
Временное, однократное монтирование, например, DVD-диска с данными в Linux, вглядит так:
1
2
3

$ sudo mount -t iso9660 /dev/XX /mnt/YY

или
1
2
3

# mount -t iso9660 /dev/XX /mnt/YY

Пример: монтирование DVD-диска с данными выглядит так
1
2
3

$ sudo mount -t iso9660 /dev/cdrom /mnt/dvd

То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/dvd


Постоянное монтирование CD/DVD
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1
2
3

/dev/XX /mnt/YY iso9660 user,ro 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так
1
2
3

/dev/cdrom /mnt/cdrom iso9660 user,ro 0 0

То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/cdrom После этого оптический диск в Linux будет доступен. Отмонтирование по команде
1
2
3

umount /mnt/cdrom




Как примонтировать ISO-файл или другой файл в Linux
Вы откуда-то скачали ISO-файл и хотите просмотреть его содержимое. Для этого в Windows есть такой костыль под названием Alcohol. В Linux и вообще в UNIX такие костыли не требуются, так как монтирование ISO-образа ничем для системы не отличается от монтирования CD/DVD-диска. Нужно только передать один параметр -o loop чтобы сообщить системе, что монтировать мы собираемся на петлевое устройство (loopback). Если делать это надо много и часто, можно воспользоваться программой GmountISO, описанной тут.

Для монтирования ISO-образа в командной строке даём команду:
1
2
3

$ sudo mount -t iso9660 file.iso /mnt/YY -o loop

или
1
2
3

# mount -t iso9660 file.iso /mnt/YY -o loop

Пример: монтирование DVD-диска с данными выглядит так
1
2
3

$ sudo mount -t iso9660 file.iso /mnt/dvd -o loop

То есть монтируем файл file.iso типа iso9660 в точку монтирования /mnt/dvd на петлевое устройство loop
Точно так же можно монтировать любой CD/DVD образ, а так же файл-образы сжатых\зашифрованных\экзотических файловых систем типа SquashFS. Отмонтирование по команде
1
2
3

umount /mnt/dvd



Как примонтировать раздел с файловой системой EXT2/EXT3/ReiserFS/XFS/JFS... в Linux
Монтирование нормальных файловых систем проблем не создаёт. Приведу пример только с ext3, остальные файловые системы в Linux монтируются точно так же, только вместо ext3 подставьте буквально: ext2, reiserfs, xfs, jfs в зависимости от вашей файловой системы.

Однократное монтирование
Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
1
2
3

$ sudo mount -t ext3 /dev/XX /mnt/YY

или
1
2
3

# mount -t ext3 /dev/XX /mnt/YY

Пример: монтирование раздела с данными выглядит так
1
2
3

$ sudo mount -t ext3 /dev/sda1 /mnt/data

То есть монтируем раздел /dev/sda1 типа ext3 в точку монтирования /mnt/data


Постоянное монтирование
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1
2
3

/dev/XX /mnt/YY ext3 user,auto,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так
1
2
3

/dev/sda1 /mnt/data ext3 user,auto,rw 0 0

То есть монтируем раздел /dev/sda1 типа ext3 в точку монтирования /mnt/data После этого раздел EXT3 в Linux будет доступен. Отмонтирование по команде
1
2
3

umount /mnt/data




Что делать, если устройство в Linux не хочет размонтироваться!?
Вы пытаетесь размонтировать раздел с данными (флешка, CD/DVD диск...) и получаете сообщение с ошибкой - устройство занято. Например, при выполнении команды umount /mnt/windows получаете сообщение вида:
1
2
3
4

umount /mnt/windows
umount: /mnt/windows: device is busy

Ну и что делать, если раздел в Linux не размонтируется!? Очень просто - посмотреть, какой процесс держит раздел или файл и не даёт отмонтировать его. Дальше либо закрыть это приложение, либо придушить его с помощью команды kill. Даём команду:
1
2
3

lsof -n 2>&1 | grep /mnt/windows

Вертикальная черта означает передачу вывода команды lsof программе grep и фильтрации по слову /mnt/windows
После этого вы получите ответ вида:
1
2
3
4
5
6

$ lsof -n 2>&1 | grep /mnt/windows
lsof: WARNING: can't stat() reiserfs file system /dev/.static/dev
Output information may be incomplete.
mc 14134 beast cwd DIR 8,1 4096 1 /mnt/windows


Стало быть, ваш раздел держит MC (Midnight Commander), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.

Оригинал - http://mydebianblog.blogspot.com/2008/09/linux.html

*модифицировано в соответствии с замечанием товарища zb
zb29.01.09 06:53 +0
что бросилось в глаза -
lsof -n лучше использовать, - сокеты бывают и не местными
вообще команду эту лучше вот так юзать:

lsof -n 2>&1 | grep /mnt/windows
KerneL29.01.09 07:03 +0
Разумно, кстати. Спасибо, поправил



Username29.01.09 11:32 +0
Статья хороша. Но вот два вопроса у меня:
1.) при монтировании для чтения-записи нтфс раздел в КДЕ по крайней мере при копировании туда чего-нибуь возникает сообщение типа Не удалось изменить права доступа к файлу <INSERT_NAME_HERE>. В чем дело?
2.) как монтировать zfs? дрова нужны?
KerneL29.01.09 15:48 +0
1)В NTFS не поддреживаются линуксовые права доступа. Поэтому и не может сменить аттрибуты. Попробуйте убрать dmask, fmask, default_permissions везде где монтируейте ntfs и поставить вместо них umask=0

Цитата: man mount
1
2
3
4
5
6
7
8
9
10
11
12
13
umask=value
Устанавливает биты полномочий. По умолчанию берутся биты
полномочий текущего процесса в восьмеричной форме (0..7).

dmask=value
Устанавливает биты полномочий только к каталогам. По умолчанию
берутся биты полномочий текущего процесса в восьмеричной форме
(0..7).

fmask=value
Устанавливает биты полномочий только к обычным файлам. По
умолчанию берутся биты полномочий текущего процесса в
восьмеричной форме (0..7).


2)Монтирование файловых систем ZFS

ZFS автоматически монтирует файловые системы при их создании или начальной загрузке системы. Команда zfs mount необходима только при изменении параметров монтирования, а также при явном монтировании или размонтировании файловых систем.

Команда zfs mount без аргументов используется для отображения всех смонтированных в настоящее время файловых систем под управлением ZFS. Старые точки монтирования не отображаются. Пример:
1
2
3
4
5
6
# zfs mount
tank /tank
tank/home /tank/home
tank/home/bonwick /tank/home/bonwick
tank/ws /tank/ws


Для монтирования всех файловых систем под управлением ZFS используется параметр -a. Старые файловые системы не монтируются. Пример:
# zfs mount -a



По умолчанию ZFS запрещает монтирование поверх непустого каталога. Для принудительного монтирования поверх непустого каталога необходимо указать параметр -O. Пример:
1
2
3
4
# zfs mount tank/home/lalt
cannot mount '/export/home/lalt': directory is not empty
use legacy mountpoint to allow this behavior, or use the -O flag
# zfs mount -O tank/home/lalt



Управление старыми точками монтирования должно осуществляться с использованием старых средств. Попытка применения средств ZFS приводит к ошибке. Пример:
1
2
3
4
# zfs mount pool/home/billm
cannot mount 'pool/home/billm': legacy mountpoint
use mount(1M) to mount this filesystem
# mount -F zfs tank/home/billm



При монтировании файловой системы используется ряд параметр монтирования на основе значений свойств, связанных с набором данных. Между свойствами и параметрами монтирования существует следующая корреляция:
Свойство

Параметры монтирования
devices

devices/nodevices
exec

exec/noexec
readonly

ro/rw
setuid

setuid/nosetuid

Параметр монтирования nosuid является псевдонимом для nodevices,nosetuid.
Взял тут

пятница, 30 января 2009 г.

История Linux и BSD

Блогосайт Алисы и Alv'а » История

Здесь есть немного о UNIX и Linux, немного поэзии и прозы, беллетристики и публицистики, технологической и гуманистической. Говорится на нём о пацифизме и милитаризме, о любви человека к операционным системам и домашним животным, о свободе, равенстве и братстве во FOSS, и о вражде и ненависти во проприетаризме. И, разумеется, есть здесь и небольшая тайна: почему всё это собрано вместе? Разгадать её предлагается посетителям.

Январь 30, 2009

Семь шагов Linux-дистрибуции

Рубрика: История, Linux — alv @ 12:39 дп

Автор: Алексей Федорчук
Впервые опубликовано: LinuxFormat, #82 (август 2006)

Первые дистрибутивы Linux, возникли из стремления избавиться от лишней ОС – ведь, чтобы сварить суп из курицы (Linux), следовало как минимум иметь кошку (MINIX). И, например, спасение пользователей от ада пакетных зависимостей оставалось делом рук самих пользователей – благо таковыми в то время были почти исключительно разработчики Linux'а же. (далее…)

Январь 29, 2009

Берклиада, или история одной системы

Рубрика: История, FreeBSD — alv @ 8:22 пп

Автор: Алексей Федорчук
Citkit, 2008

В этом материале объединены две главы из книги Сага о FreeBSD, публикация которой начата на сайте Citkit. В своей протоисторической части она во многом перекливается с материалами по истории Linux. А один из форков настоящего повествования — DragonFlyBSD: история полета. (далее…)

DragonFlyBSD: история полета

Рубрика: История, Иные ОСи — alv @ 8:22 пп

Автор: Алексей Федорчук

Сочинялось на протяжении 2004-2005 годов и в разных вариантах размещалось на нескольких сайтах. Ибо не каждый день на наших глазах возникает (и, главное, активно развивается, а не забрасывается по прошествии недолгого времени) новая операционная система. (далее…)

Debian и Ubuntu в истории Linux'а

Рубрика: История, Deb-based, FOSS — alv @ 8:21 пп

Автор: Алексей Федорчук
2006 гг.

Это глава из книги: Алексей Федорчук aka alv. Гуманистический Linux или Ubuntu и сородичи. М.: "Научный мир", 2006, 392 стр. Здесь размещается слегка модернизированный вариант. (далее…)

Linux на Руси

Рубрика: История, FOSS — alv @ 8:20 пп

Автор: Алексей Федорчук
2005-2006 гг.

Этот материал, подобно статье Linux: вопросы истории, сочинялся на протяжении нескольких лет, включил в себя все ранее публиковавшиеся мои статьи по данной теме и в конце концов вошел в книгу: Алексей Федорчук aka alv. Гуманистический Linux или Ubuntu и сородичи. М.: "Научный мир", 2006, 392 стр. (далее…)

Linux: вопросы истории

Рубрика: История, FOSS — alv @ 8:18 пп

Автор: Алексей Федорчук
2005-2006 гг.

Этот материал сочинялся на протяжении нескольких лет, включил в себя все ранее публиковавшиеся мои статьи по данной теме и в конце концов вошел в книгу: Алексей Федорчук aka alv. Гуманистический Linux или Ubuntu и сородичи. М.: "Научный мир", 2006, 392 стр. (далее…)

Дистрибутивы Linux: обзор. 2006 г.

Рубрика: История, Linux — alv @ 8:17 пп

Автор: Алексей Федорчук
2004-2006 гг.

Этот материал сочинялся на протяжении нескольких лет, включил в себя все ранее публиковавшиеся мои статьи по данной теме и в конце концов вошел в книгу: Алексей Федорчук aka alv. Гуманистический Linux или Ubuntu и сородичи. М.: "Научный мир", 2006, 392 стр. (далее…)

О причинах, по коим геокомпьютинг должен стать основным полем приложения сил сообщества Open Source

Рубрика: История, Геология — alv @ 7:00 пп

Автор: Алексей Федорчук
2000 г.

Первая версия этой заметки была сочинена в ночь с 1 апреля на день геолога 2000 г. и размещена на моем старом сайте на Чертовых Куличках (недавно с удивлением обнаружил, что моя страница там еще существует — администрация сайта выполняет свое обещание "хранить вечно", что на фоне нехорошего поведения некоторых других хостеров заслуживает быть отмеченным). Давеча, разбирая свои архивы, я перечитал это сочинение — и вдруг понял, что оно отнюдь не потеряло актуальности. Поскольку намеченная в нем тенденция не только не ослабла, но и продолжает прогрессировать. Впрочем, судите сами. Ссылки, по причине лени, не актуализированы. (далее…)

Об исконно русских дистрибутивах в текущем сезоне. Весна 2001 г.

Рубрика: История, FOSS — alv @ 5:52 пп

Автор: Алексей Федорчук
Первая версия 2001.06.30
опубликована в Соффтерра on-line

Историческая часть этой заметки, опубликованной в свое время в онлайновой Софтерре, по сию пору представляет исторический же интерес. (далее…)

Linux: ресурсы и библиография. Весна 2001 г.

Рубрика: История, FOSS — alv @ 5:31 пп

Автор: Алексей Федорчук
Фрагмент из книги: Алексей Федорчук. Офис, графика, Web в Linux. СПб: BHV-СПб. 2001, 416 с.

Здесь содержатся источники сведений о Linux на конец 2000 г., позднее дополненные сведениями на весну 2001 г. Как оказалось, по крайней мере часть из них (в частности, библиографические описания книг и статей) могут представлять интерес для истории. Список Интернет-ресурсов не обновлялся - иных уж нет, а те далече. Поэтому ссылки, даже ныне действующие, не активизированы - воспринимайте их как снапшот эпохи. (далее…)

суббота, 24 января 2009 г.

Xen server своими руками.

Xen server своими руками. Часть первая. / Системное администрирование / Хабрахабр

Часть первая.

В комментариях к топику Системное администрирование. Начало. прочитал, что сообществу были бы интересны статьи о виртуализации. Довольно давно у меня на жёстком диске лежит описание процесса установки Xen hypervisor и гостевой ОС на сервер под управлением Ubuntu/Debian.


Большинство людей пользуют для виртуализации VmWare или VirtualBox редко кто Qemu.
В том числе и под Win x32\x64 платформой они очень популярны. Творение The Sun даже понимает аппаратную поддержку Intel VT.
Но я бы хотел поговорить о реальной альтернативе на Linux платформах — Xen.
Тем более что он присутствует в репозиториях Ubuntu\Debian.


Ставим Xen на сервер


Для полной совместимости и возможности использовать все функции нам нужна аппаратная поддержка со стороны сервера.
Intel VT (Virtualization Technology, aka Vanderpool): Selected Pentium 4 and Pentium D, Xeon 5000 and later, Xeon LV, Core Duo, Core 2 Duo, and Core 2 Quad processors
AMD — V/SVM (Virtualization/Secure Virtual Machine, aka Pacifica): Selected Athlon, Opteron, and Turion Socket F and AM2 processors

Intel VT — поддерживается во всех Core2Duo, так что это не проблема. Желательно зайти в BIOS и проверить включен ли.
Аппаратная совместимость позволит нам запускать не модифицированные ОС (читай Win XP и прочее )


uname -a

Получаем версию ядра — в моём случае 2.6.24-19-generic, это нам пригодится позже.

Ставим Xen на наш Ubuntu server 8.04.1 x64.
Все команды приведённые далее требуют привилегий root, поэтому для экономии времени полностью переходим в рутовую консоль:

sudo su -


Ставим Xen:

aptitude install ubuntu-xen-server

подтвердить установку всех запрошенных пакетов.
Ждем конца установки.

sudo reboot

После старта сервера в удачном случае вы должны увидеть что система на новом ядре Xen.

uname -a

Видим что теперь ядро называется — 2.6.24-19-xen — как раз то что нам нужно.

Гипервизор Xen запускает саму ОС Ubuntu уже на своем ядре.

# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 2048 8 r----- 167826.8


Эта команда показывает что демон Xend запущен и работает, запустив основную систему и показывая ее состояние.

Система готова для инсталяции гостевых ОС (далее DomU)

Часть вторая.

Готовим систему к установке DomU


Начнем по пунктам.

1. Дальше следует определить места хранения конфиг. файлов

Конфиги складываем в директорию

/etc/xen/config
Если папки config там нет — создаем.
И не забываем там держать конфиги всех систем и парочку чистых темплейтов.

2. На каких носителях у нас будут DomU — LVM или физические образы дисков созданные dd или qemu.

Изначально я только за LVM — и потому что он быстрее чем просто образы прилепленные в
/dev/loop и потому что бекап их существенно проще и приятней чем все что может быть ;)
Остановлюсь на этом примере. Кому инетесно могу потом дополнить примером работы с физическим
образом.

Для того чтобы создать раздел LVM нам нужен отдельный раздел на винтчестере. Желательно его
наличие продумать изначально и с запасом места, потому как там будут храниться образы lvm и он
будет не доступен для хранения там чего-либо еще.
Допустим у нас есть такой раздел /dev/sdb6 и размер его 270 Гб.

Переходим в рутовую консоль (sudo su - ) и ставим сам lvm

aptitude install lvm2

Далее, нужно подгрузить модули LVM:

modprobe dm_mod modprobe dm_mirror modprobe dm_snapshot

Инициализируем поддержку LVM этим разделом

pvcreate /dev/sdb

Создаем группу томов которую назовем vg (virtual group)

vgcreate vg /dev/sdb

Все, создаем образ который будет виден в системе как физический и можно ставить туда Win XP например.

lvcreate -L10240M -n hdd vg

lvs
LV           VG   Attr   LSize  Origin Snap%  Move Log Copy%
hdd vg -wi-a- 10.00G


В списке устройств появилось устройство /dev/vg/hdd
Все, можно начинать ставить. Винчестер у нас уже есть ;)

3. Бэкап. Как делать и куда складывать.


Прелесть LVM в том, что бекап с него делается быстро и безболезненно в любой момент без остановки операционки на LVM.

Предположим бекап остается у нас на винте, варианты куда положить оч индивидуальны.
Складывать мы будем в /mnt/backup
Первое что мы делаем — снепшот — снимок образа в «замороженном» состоянии.

lvcreate -L10G -s -n back-image /dev/vg/hdd

А дальше знакомая всем команда dd

dd if=/dev/vg/hdd bs=1024000 | gzip -cf > /mnt/backup/hdd.gz

Если после этого вам необходимо будет восстановить из бекапа то:

gunzip -c hdd.gz | dd of=/dev/vg/hdd bs=1024000

Далее по желанию делаем скрипты для бекапа всех DomU и заносим в cron, тут уже каждый сам выбирает.


Установка DomU.



Итак.
У нас есть «харддрайв» под будующую WinXP виртуальную — /dev/vg/hdd — 10Gb
Теперь нам нужен образ Win для установки или CD-диск. Лучше образ — практичнее.
Допустим у вас лицензия WinXP и есть диск с ней.
Пишем конфиг будующей машины:

import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
# сколькол памяти выделять будующей машине
memory = 386
# имя в xm list
name = "xp-test-1"
# кол-во процессоров с кот он будет работать
vcpus=2
#acpi=1
#apic=1
# мак адресс и через что он будет видеть сеть
vif = [ 'type=ioemu, mac=aa:3c:40:b0:01:11, bridge=xenbr0' ]
# физический диск (наш образ кот мы делали в lvm) и сдром (тут физический девайс cdrom основного сервака)
disk = [ 'phy:/dev/vg/hdd,ioemu:hda,w', 'phy:/dev/cdrom,ioemu:hdc:cdrom,r' ]
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
# способ загрузки - dc - грузимся по умолчанию с сдрома, если там не загрузочный - с винта
boot="dc"
# всегда вывешивать vnc порт для доступа с основого сервера
sdl=0
vnc=1
vncviewer=1
vncpasswd=''
ne2000=0


подробнее про конфиг можно узнать, набрав

xm create --help_config

Если вы хотите указать не cdrom физический, а например образ загрузочного диска с дистрибутивом системы то строку:

disk = [ 'phy:/dev/vg/hdd,ioemu:hda,w', 'phy:/dev/cdrom,ioemu:hdc:cdrom,r' ]

мы меняем на

disk = [ 'phy:/dev/vg/hdd,ioemu:hda,w', 'phy:/dev/loop1,ioemu:hdc:cdrom,r' ]

предварительно смонтировав наш iso образ на вирутальное устройство /dev/loop1 (от 1 до N — смотря сколько свободных есть)

Назовем образ winxp.hvm
Старайтесь не использовать лишних знаков в именах конфигов и именах машин в конфиге name = «xp-test-1»
Напимер бывают глюки с "_" в этих местах.

Смотрим свободные loop девайсы:
losetup -a
/dev/loop4: [0801]:5955594 (/home/backup/daily/xp_second.dd)
/dev/loop6: [0801]:5955586 (/home/backup/daily/arch_back.dd)
/dev/loop7: [0801]:5955588 (/home/backup/daily/arch_17_00.dd)


Монтируем образ:

losetup /dev/loop1 /home/felvis/distr.iso

В мануале Xen написано что в конфиге можно было бы указать напрямую образ 'file:/full/path/to/vm1disk,hdc,r'
Но на bugzilla ubuntu можно найти кучу репортов на баг, который делает это невозможным.
И кстати на данный момент (28.10.2008) его не пофиксили. Так что монтируем в /dev/loop как диски cdrom так и образы винтов.

Теперь можно запускать установку WinXP:

cd /etc/xen/config
xm create winxp.hvm

Using config file "./winxp.hvm".
VNC= 1
Started domain "xp-test-1"


xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0 0 577 8 r----- 186810.6
xp-test-1 1 386 2 -b---- 15.1


Если у вас дистрибутив состоит из нескольких дисков — не беда, на лету можно перемаунтить источник cdrom на другой диск:

xm block-configure 1 phy:/dev/null hdс:cdrom r
losetup -d /dev/loop1
losetup /dev/loop1 /home/felvis/distr2.iso
xm block-configure 1 phy:/dev/loop1 hdс:cdrom r


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

aptitude install xtightvncviewer

После этого виртуальная машина будет доступна на 0 порту vnc (соотв. следующая поднятая машина на 1,2,3 и т.д.)
Выполняем:

vncviewer :0

и если вы под Х, то у появится вид от первого лица на винду.
Если вы не под Х, а, например через ssh сидите — выход тоже есть — Xming.
Ставим эту программу туда где вы сидите под win. Она поможет вам отображать GUI окна запущенные в ssh.
Ставим Xming, запускаем ее.
На Ubuntu выставляем переменную окружения:

export DISPLAY=ваш ip:0.0

и теперь при запуске команды vncviewer через какую-нибудь putty вы получаете графическое окно из линукса.

Заканчиваем установку и радуемся вирутальной машине.

Статья написана ЖЖ-юзером felvis и мной во время собственно установки и настройки всего этого хозяйства для продакшен-использования.
Использованы материалы из книги «Professional Xen® Virtualization» от William von Hagen и мануал с сайта Xen.ru — Читать мануал.

Ссылки. Альтернативное Open Source ПО в замену программ для Windows.

Альтернативное Open Source ПО в замену программ для Windows. | Open Source в республике Татарстан. Linux.


Здесь представлены ресурсы на которых описывается различный платный софт для Windows и его Open Source аналоги. Буду обновлять список как только найду что нибудь свежее.

Clonezilla - клонируем диски бесплатно и эффективно

Иногда вощзникает дикое желание сохранить копию всей ситсемы в данной конфигурации, либо перенести ее на аналогичный компьютер минуя процесс стандартной установки и настройки. Как это сделать расказывается в приведенной ниже статьье, взятой отсюда:
Clonezilla - клонируем диски бесплатно и эффективно « It_blog's

Всем привет!
Сейчас у меня сессия в институте, поэтому статьи пишу по реже.

Сегодня решил познакомить Вас, уважаемые читатели с проектом Clonezilla

Вот выдержка из оф.сайта, о возможностях дистрибутива:

* Free (GPL) Software.
* Filesystem supported: ext2, ext3, reiserfs, xfs, jfs of GNU/Linux, FAT, NTFS of MS Windows, and HFS+ of Mac OS (testing feature provided by partclone). Therefore you can clone GNU/Linux, MS windows and Intel-based Mac OS. For these file systems, only used blocks in partition are saved and restored. For unsupported file system, sector-to-sector copy is done by dd in Clonezilla.
* LVM2 (LVM version 1 is not) under GNU/Linux is supported.
* Multicast is supported in Clonezilla SE, which is suitable for massively clone. You can also remotely use it to save or restore a bunch of computers if PXE and Wake-on-LAN are supported in your clients.
* Based on Partimage, ntfsclone, partclone, and dd to clone partition. However, clonezilla, containing some other programs, can save and restore not only partitions, but also a whole disk.
* By using another free software drbl-winroll, which is also developed by us, the hostname, group, and SID of cloned MS windows machine can be automatically changed.

Т.е Clonezilla - бесплатная альтернатива Acronis, Norton Ghost и т.д
При создании образа раздела/диска копируются только занятые блоки данных, допускается возможность сжатия образа. Полученный образ можно записать как локально, так и на удаленный сервер (ssh, smb, nfs).
В отличие от простого копирования командой dd, которая копирует и свободное место, в Clonezilla входят несколько утилит, обрабатываю поток данных до утилиты dd, полностью игнорируя свободные блоки.
Поэтому в образ войдут только данные.
Так-же не стоит забывать, что получаемый образ - это образ созданный с помощью утилиты dd , и архиватора (опционально) с которым можно работать на любой UNIX системе, и Вы не привязаны к одному дистрибутиву(продукту).

Так же помимо LiveCD есть серверный вариант.
Clonezilla поддерживает PXE установку образов. Этот вариант я рассматривать не буду. Кому интересно об этом можно почитать ТУТ

Приступим:
1) Идём на Clonezilla.org и оттуда закачиваем последний Stable Live CD
Пишем его на CD или в случае использования Grub4DOS делаем следующие:
Монтируем образ :

mkdir -p /mnt/iso
mount -o loop /tmp/clonezilla-live-1.2.1-23.iso /mnt/iso

2) Монтируем раздел Flash, на который будем копировать файлы Clonezilla

mkdir -p /mnt/flash
mount /dev/sdb1 /mnt/flash # sdb - моя Flash, а sdb1 мой 1-й раздел Flash c Grub4DOS
cp -r /mnt/iso/live /mnt/flash # копируем папку live из iso образа, в котором содержаться файлы Clonezilla

3) В файл menu.lst вписываем:

title Clonezilla
root (hd0,0)
kernel /live/vmlinuz1 boot=live union=aufs ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" vga=791 ip=frommedia nolocales
initrd=/live/initrd1.img

4) Сохраняем, поздравляю, у Вас теперь Live Flash версия Clonezilla с загрузкой через Grub4DOS

Теперь остаётся следовать инструкциям мастера Clonezilla.
Если вдруг Вы вышли в командную стоку и не знаете как запустить мастера, выполните:

sudo -i # получите права root'a и можете например монтировать диски, и т.д
clonezilla # запуск мастера

По окончании клонирования Вы получите образ, который можно легко восстановить через Clonezilla или любой другой Live Linux дистрибутив.
Если Вам понадобятся отдельные файлы ил образа, то Вы можете просто скопировать их из образа, привязав его к виртуальному устройству.
Как это сделать я писал ранее.

четверг, 22 января 2009 г.

Xneur - автоматическое переключение раскладок под Linux (аналог Punto Switcher) (rus lang x11)



From: Павел Закляков

Date: Mon, 21 Jan 2009 17:02:14 +0000 (UTC)
Subject: Xneur - автоматическое переключение раскладок под Linux (аналог Punto Switcher)


Материал предоставлен редакцией журнала Системный администратор.
Опубликовано в журнале "Системный администратор" N 10 2008

Казалось, на пути внедрения Linux на рабочие станции пользователей
решены все проблемы, а нет. Есть ещё одна проблема - это привычки
пользователей. На днях один мой знакомый признался: "Если на
компьютере не будет привычного Punto Switcher - не поставлю эту
операционную систему". Пришлось мне ему не только рассказать про
xneur, но и показать, как это работает. Результат его сколько
порадовал, столько и озадачил, ведь теперь перейти на Linux ему ничего
не мешает.

Если в первом приближении набор текста на компьютере можно представить
как некоторую последовательность случайных событий, то во втором
приближении, эта последовательность будет обладать хитрой зависимостью.
Эти зависимости отличаются для разных языков. Так, я не знаю слов в
русском языке, где встречаются две буквы "ы" подряд, в то время как
найти английские слова с двумя буквами "s" не составит труда (буквы
"ы" и "s" находятся на одной и той же клавише).

Таким образом, можно написать программу, которая по встречаемым
последовательностям букв (нажатию клавиш), смогла бы определять в каком
языке набирается то или иное слово и осуществляла бы автоматическое
переключение раскладок. Естественно, при работе подобных программ
используются словари, и алгоритм их работы несколько сложнее. Чаще
всего вы набираете половину слова, а лишь потом происходит переключение
и конвертирование уже набранной части.

Большая часть читателей наверняка слышали, а то и используют программу
Punto Switcher [3], написанную Сергеем Москалёвым [4]. Это не
единственная программа автоматического переключения раскладок, есть и
менее известные, как Keyboard Ninja и Orfo Switcher. Все они хороши, но
их недостаток в том, что они не работают под Linux.

Но не всё так плохо. Благодаря Андрею Кузнецову и Янкину Николаю (чьи
электронные адреса содержатся в исходных кодах) для Linux имеется своя
программа - X Neural Switcher (Xneur) [4], распространяемая по лицензии
GPL, об установке которой и пойдёт речь.


X Neural Switcher

Несмотря на то что последняя версия программы датируется 30 июля 2008
года, то есть свежая и актуальная, разнообразием скомпилированных
версий она не отличается. В мае вышла Fedora 9, а на сайте нет даже
скомпилированного пакета под Fedora 8. Исходные коды если и есть, то
требуют большого числа зависимых библиотек, ставить которые вручную
очень утомительно. Предполагаю, что автор программы и ещё ряд
программистов используют программу для себя и для них нет проблем с
компиляцией, в то время как, если установка программы сложнее
привычного "yum install имя_программы", то число её пользователей
становится в разы меньше.

В моём случае выбора не было. Одной ссылкой на сайт xneur [4] я бы не
отделался, а выставлять ОС Linux с плохой стороны, где ничего не
работает, мне не хотелось, поэтому программу пришлось ставить. Так как
под рукой оказался дистрибутив Fedora 8, на нём мне и пришлось
демонстрировать всю мощь Linux.


Установка xneur на Linux Fedora 8

Так как других подходящих версий нет - скачиваем [5] старую версию
программы (для Fedora Core 7):

wget http://dists.xneur.ru/release-0.9.0/rpm/Fedora/xneur-0.9.0-0.fc7.i386.rpm
wget http://dists.xneur.ru/release-0.9.0/rpm/Fedora/gxneur-0.9.0-0.fc7.i386.rpm


Далее, ставим freealut (иначе xneur не ставится):

# yum install freealut


а после ставим пакеты:

# rpm -ihv xneur-0.9.0-0.fc7.i386.rpm gxneur-0.9.0-0.fc7.i386.rpm


После установки в меню "Приложения -> Стандартные" появляется
"Переключатель раскладок клавиатуры"

После запуска через меню на панели появится соответствующая картинка с
флагом, соответствующим языку раскладки. Всё, установка
закончена, переключение раскладок осуществляется автоматически.

Если необходимо, то запуск соответствующего пункта меню можно прописать
в автозагрузку через меню "Система -> Параметры -> Персональные ->
Сеансы".


Поддержка других языков

Нигде в описании программы не написано, что поддержка ограничивается
двумя языками - русским и английским. Так как другие раскладки я не
использую, то и не проверял. Беглое изучение исходных кодов показало,
что имеются директории c файлами: uk, ru, be, fr, kz, ro, de, что
напоминает двухбуквенные обозначений стран согласно ISO 3166.

Заключение

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

1. Домашняя страница программы Punto Switcher -
http://punto.yandex.ru (http://punto.ru, http://www.punto-switcher.ru).

2. О программе Punto Switcher - http://ru.wikipedia.org/wiki/Punto_Switcher

3. Интервью с автором программы Punto Switcher - http://www.kv.by/index2002042801.htm

4. X Neural Switcher (Xneur) - http://www.xneur.ru

5. Старые версии программы xneur - http://xneur.ru/wiki/VersionsArchive

понедельник, 19 января 2009 г.

Флеш-галерея в программе Picasa

Предложенный ниже пост был взят с Хабра. Я пользуюсь Picasa уже давно. Поэтому функционал данной программулины мне весьма интересен. Тем более, что недавно я сам искал возможность создания автономных фотоальбомов, правда в виде слайд-шоу . Так что вариант интересный. Особенно, что в комментах к посту говорится что данный вариант работает и под Linux (сам пока не проверял).


Делаем красивую флеш галерею в программе Picasa

image
Совсем недавно мне понадобилось составить подборочку из нескольких моих фотографий. Это должны были быть портреты. Недолго думая, я решил что нужно всё это реализовать это на флеш, т.к. это просто, карасиво, да и флеш-плеер я думаю уже почти у всех есть.

Первая мысль была скачать какую-нибудь галерею, куда можно привязать фликр или пикасу. Но вдруг я наткнулся на один хороший сайт. Там были выложены шаблоны галерей и их демонстрации. Скачав понравившийся шаблон я, к своему удивлению, не нашел никакого readme… Пришлось поискать на сайте. Оказалось что эти шаблоны нужно вставлять в программу пикаса… А потом в интерфейсе программы создавать готовую галерею.

А теперь обо всем поподробнее.

1)Для начала нужно установить саму пикасу. Скачать её можно на официальном сайте picasa.google.ru/
image

2)Далее идем на www.paulvanroekel.nl/picasa Там выбираем и скачиваем нужный шаблон.
image

3)Содержимое архива распаковываем в \Program Files\Google\Picasa\web\templates\ Каждый шаблон нужно помещать в отдельную папку.
image

4)Создаем папку с готовыми изображениями, которые мы хотим добавить в галерею.

5)А теперь самое интересное. В программе пикаса выбираем «Папка»-> «Экспортировать в формате HTML...» Далее все просто. Настраиваем нужные параметры и получаем красивую флеш-галерею.

image

image

В итоге у меня получилась такая штуковина photo.lev-a.spb.ru/

суббота, 17 января 2009 г.

Работа с буфером обмена в Linux: теория и практика

Оригинал
Работа с буфером обмена в Linux: теория и практика / Linux для всех / Хабрахабр

Совсем немного теории


Copy and PasteИсторически сложилось так, что в X Window System (X11, — оконная система для Linux, UNIX) существует два буфера обмена.

Один из них (clipboard) похож на буфер обмена в Windows — при нажатии на Ctrl+Insert или Ctrl+C выделенный фрагмент (текст, картинка, файл) копируется в буфер обмена, а при нажатии на Shift+Insert (или Ctrl+V) — вставляется из него. Следует заметить, что во многих программах эти сочетания зарезервированы для иных целей и приходится пользоваться другими — например, в терминале сочетание Ctrl+C используется для завершения процесса, а для работы с буфером обмена используются сочетания Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки.

Второй буфер (primary) является специфичным для оконной системы X11. Выделенный текст незамедлительно попадает в буфер primary, и для того, чтобы вставить скопированный текст, достаточно лишь нажать среднюю кнопку мышки (колёсико). У кого в наличии не имеется трёхкнопочной мышки, а так же владельцам ноутбуков с тачпадами следует одновременно нажать левую и правую кнопки мышки для вставки текста.

Обычно эти буферы не связаны друг с другом (некоторые программы некорректно их обрабатывают и считают, что это один и тот же буфер обмена). Следовательно, хранящиеся в них данные не влияют друг на друга, что, несомненно, крайне удобно. Следует заметить, что при закрытии программы, из которой были скопированы данные, содержимое буфера обмена теряется.


Практика


Для решения проблемы утери данных из буфера обмена при закрытии программы существует сторонний софт. Например, Clipboard Daemon. Этот маленький демон держит содержимое буфера обмена в памяти независимо от того, было ли закрыто приложение, из которого скопированы данные.

Для более комфортной работы с буфером обмена существует целый ряд программ:
  • Parcellite — многообещаюший менеджер буфера обмена на GTK
  • glipper — для Gnome
  • klipper — для KDE
  • wmcliphist — для Window Maker
  • и куча других (в том числе для Windows, Mac OS и прочего).
Эти программы позволяют существенно облегчить работу — они хранят историю содержимого буферов обмена — в любой момент можно вернуться к любому из предыдущих состояний (в пределах разумного, конечно, — этот предел, как водится, устанавливается в настройках) и воспользоваться им =)

Существует так же весьма и весьма полезная в умелых руках утилита под названием xclip, предназначенная для работы с буферами обмена из командной строки. Копирование и вставка текста осуществляется простыми командами, что позволяет использовать её в различного рода вспомогательных скриптах, примеры которых я продемонстрирую ниже.

К сожалению, официальная версия xclip у меня с кириллицей корректно не заработала, несмотря на то, что я собирал последнюю версию. Поэтому я предлагаю скачать и собрать версию xclip для дистрибутива Alt Linux.


Скрипты


Я предлагаю два скрипта, которые смогут облегчить вашу повседневную работу. Первый скрипт:
xclip -o | sed -r '2~1d;s/(^\s+|\s+$)//g;s/%/%25/g;s/#/%23/g;s/\$/%24/g;s/&/%26/g;s/\+/%2B/;s/,/%2C/g;s/:/%3A/g;s/;/%3B/g;s/=/%3D/g;s/\?/%3F/g;s/@/%40/g;s/\s/+/g' | awk '{print "http://www.google.ru/search?hl=ru&q=" $1}' | xargs firefox -new-tab
Он открывает вкладку в Firefox, переходит на страничку google с поисковой фразой, являющейся содержимым вашего буфера обмена. Для работы со скриптом достаточно выделить любое слово, словосочетание или предложение и запустить скрипт (я рекомендую назначить выполнение этого скрипта на горячие клавиши — например, у меня это сочетание Win+G). Рассмотрим его чуть подробнее:
  1. Программа xclip выводит содержимое буфера обмена (параметр «-o»).
  2. Далее это содержимое передаётся текстовому редактору sed, который удаляет все строки, кроме первой (в случае, если они были) и заменяет все специальные символы на их безопасный для адресной строки вариант (urlencode).
  3. Обработанная строка передаётся программе awk, которая, в свою очередь, добавляет полученную поисковую фразу к ссылке google.
  4. Ссылка открывается в новой вкладке Firefox. Всё =)
Второй скрипт чуть проще, и логически следует из первого:
xclip -o | sed -n 1p | xargs firefox -new-tab
Он открывает новую вкладку в Firefox с адресом, который находится в буфере обмена (очень часто нужно открыть ссылку в виде простого текста — например, если ссылка встретилась в текстовом редакторе — приходится её копировать, открывать вкладку в браузере и вставлять скопированный адрес. Скрипт делает всё за вас ;). Я назначил его на сочетание Win+F.

Благодаря тому, что буфер обмена является универсальной для ОС сущностью, эти скрипты будет работать везде — от терминала и текстового редактора до самого Firefox'а (впрочем, желающие могут настроить этот же скрипт и для альтернативных браузеров. Назначить скриптам сочетание кнопок можно как с помощью вашего windows manager'а (например, gconf-editor для Gnome), так и с помощью сторонних программ, таких как xmodmap или actkbd.


Что дальше?


Да что угодно =) Можно переводить фразы, выделенные мышкой, можно копировать их в программу для заметок — всё зависит от вашей фантазии и потребностей. Конечно, для таких вещей могут существовать отдельные программы, но такие вот самописные скрипты, на мой взгляд, для любого пользователя окажутся удобнее всего — linux тем и хорош, что можно всё, абсолютно всё настроить под себя и для себя.


Update: добавлена ссылка на менеджер буфера обмена Parcellite — спасибо хабрапользователю drujebober

Update 2: по просьбе хабраюзера dimaka добавил скрипты для перевода:

Lingvo.yandex.ru:
xclip -o | sed -r '2~1d;s/(^\s+|\s+$)//g;s/%/%25/g;s/#/%23/g;s/\$/%24/g;s/&/%26/g;s/\+/%2B/;s/,/%2C/g;s/:/%3A/g;s/;/%3B/g;s/=/%3D/g;s/\?/%3F/g;s/@/%40/g;s/\s/+/g' | awk '{print "lingvo.yandex.ru/en?st_translate=on&text=" $1}' | xargs firefox -new-tab

Google translate (перевод с английского на русский):
xclip -o | sed -r '2~1d;s/(^\s+|\s+$)//g;s/%/%25/g;s/#/%23/g;s/\$/%24/g;s/&/%26/g;s/\+/%2B/;s/,/%2C/g;s/:/%3A/g;s/;/%3B/g;s/=/%3D/g;s/\?/%3F/g;s/@/%40/g;s/\s/+/g' | awk '{print "translate.google.com/translate_t?hl=ru#en|ru|" $1}' | xargs firefox -new-tab

Update 3: Добавление пункта «копировать полный путь текущего файла» в меню Midnight Commander (Добавить в файл ~/.mc/menu):
+ ! t t
f Copy full filename into clipboard
echo -n %d/%f | xclip
Автор:Dreadatour