_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 04 Aug 99 22:07:36
Subj : Tune Up HD in Linux
________________________________________________________________________________
Привет All...
1999.07.19 - Увеличение скорости IDE Harddisk
Двукратное увеличение скорости было замечено на массивных дисковых операциях
ввода/вывода (таких как клонирование диска) при установках для IDE устройства -
использовать DMA и 32-bit передачу данных.
Ядро кажеться по умолчанию использует более консервативные установки.
Комманда:
# /sbin/hdparm -c 1 /dev/hda (или hdb, hdc и т.д.)
Для испоьзования 32-bit I/O на PCI шине. ( В hdparm(8) manpage говориться что
вам может потребоваться использовать опцию "-c 3" для некоторых чипсетов
материнских плат. )
Команда:
# /sbin/hdparm -d 1 /dev/hda (или hdb, hdc и т.д.)
Использование DMA. Это может зависить от поддержки вашего чипсета на
материнской плате которая встроено в ядро.
Вы можете протестировать свои изменения запустив hdparm в режиме теста
скорости.
# /sbin/hdparm -t /dev/hda (или hdb, hdc т.д.)
Когда вы найдете оптимальные установки для себя , вы должны сделать:
# /sbin/hdparm -k 1 /dev/hda (или hdb, hdc т.д.)
для сохранения этих параметров до сброса IDE контроллера.
Я заметил, что ядро иногда ресетит IDE контроллер и если вы не
установите "-k 1", то установки будут сброшены на дефолтные
и вы потеряете свое увеличение призводительности.
Опция "-m" может быть использована для изменения кол-ва сектров передоваемых
за каждое прерывание. Вы можете получить дополнительный выигрыш "играя"
с ней, но мне она не помогла.
------------------------------------------------------------------------
Автор: Kenn Humborg, Получено с TuneLinux.com
1999.07.19 - Фрагментация.Ъ
Когда файл записываеться на диск он зачастую будет записан в последовательные
блоки. Файл который записан не в последовательные блоки- фрагментирован.
Hа чтение фрагментированного файла требуеться больше времени т.к. головка
диска совершает больше перемещений. Желательно избегать фрагментации.
Для систем с хорошим буфером кэша и с упреждающим чтением это меньшая проблема.
Ext2 файловая система пытаеться минимально фрагментировать файлы, сохраная
все блоки файла ближе друг к другу, даже когда они не могут быть сохранены в
последовательных секторах. Ext2 эффективно распологает свободные блоки -
которые наиболее близки к другим блокам файла. Для ext2 редко возникает
необходимость заботиться о фрагментации. Большенство дистрибутивов содержит
программы для дефрагментации, но если у вас ее нет вы можете взять ее здесь:
ftp://metalab.unc.edu/pub/Linux/system/filesystems/
Существует множество MS-DOS дефрагментирующих программ которые перемещают блоки
по всей файловой системе при дефрагментации. Для других типов
файловых систем дефрагментация может быть выполнена резервным копированием
файловой системы, пересозданием ее, и восстановлением файлов с резервных копий.
Резервное копирование файловой системы перед дефрагментацией являеться хорошей
идеей для всех типов файловых систем, т.к. могут произойти различные казусы
в течении фрагментации.
Другие утилиты для ext2 файловой системы:
В дополнение к mke2fs(создание файловой системы) и e2fsck(проверка) которые
обычно имеются в дистрибутиве, ext2 файловая система имеет некоторые
дополнительные утилиты, которые могут быть полезны:
tune2fs корректирует параметры файловой системы. Hекоторые наиболее интересные
параметры:
.Счетчик монтирования. e2fsck принудительно проверяет файловую систему при
достижении
определенного числа подключений(монтирования) ее, даже если флаг проверки
не установлен.
.Для систем которые используються для разработок или тестирования может
быть хорошей идеей уменьшить этот предел.
. Максимальное время между проверками. e2fsck может так же задавать максимальное
время между двумя проверками диска, даже если флаг проверки не установлен и
файловая система не была монтирована очень часто. Это может быть выключено.
. Число блоков зарезервированных для root. Ext2 резервирует некоторое кол-во
блоков для root так что если файловая система заполниться, все еще будет
возможность администрировать систему без необходимости удалять что-либо.
По умолчанию резервируеться 5%,что на некоторых дисках не экономно.
Hа флоппи дисках место не резервируеться.
Также смотрите:
debugfs это отладчик файловой системы. Он позволяет на прямую иметь доступ к
данным и структурам файловой системы и может быть использован в при
восстановлении
диска, если он настолько поврежден, что fsck не может исправить автоматически.
Он так же может быть использован для восстановления удаленных файлов. Hо
использование debugfs требует понимания что вы делаете, иначе вы можете
уничтожить
все свои данные.
dump и restore могут быть использованы для резервного копирования ext2
файловой системы. Они спечефичны для версии ext2 и входят в традиционный набор
утилит для резервного копирования в UNIX.
1999.07.26 - Зачем иметь большие блоки
Если вы в Linux постоянно работаете с большими файлами, вы должны обратить
внимание на увеличение скорости работы файловой системы при форматировании
вашего диска с большим размером блока. По умолчанию файловая система Linux
использует 1024 байта на блок. Кроме того, если вы манипулируете файлами
размером с 1Gb(прим переводчика: наверное автор хотел сказать 1Mb) вы можете
попробовать сделать подобное:
mke2fs -b 4096 /dev/что-то
При этом размер блока будет 4 кб, вместо 1кб. Это увеличит время перемещения,
уменьшит фрагментацию и увеличит скорость работы fsck.
Проблема только одна-вернуться к 1024 байт на блок можно опять таки
переформатированием. При форматировании данные бубут уничтожены.
Кроме того если вы серьезно думаете сделать это, вы так же должны знать,
что система резервирует 5% диска для логов и для роста, в случае если диск
полон. С 4кб блоками 5% будет занимать больше места. Вы можете уменьшить
это до 1% командой:
mke2fs -b 4096 -m 1 /dev/whatever
------------------------------------------------------------------------
Author: Larry Reckner [larryr@linux.com]
1999.07.22 - Что за файл программа изменила?
Если вам надо узнать какие файлы изменила программа(внутри дирректории)
когда она запустилась, перед запуском программы наберите комманду: touch *
Это изменит время создание файла на текущее. Запустите программу. Затем
посмотрите
на время создания снова. Программа модифицирывала те файлы у которых дата
поменялась.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
1999.07.23 - Сделайте ваши файлы и дирректории немного защищенней.
Используйте комманду:
chattr +i из под root для того что бы сделать файлы и дирректории
неприкосаемыми для rm и т.д. Даже для root-а. Оменить можно :chattr -i
1999.07.24 - Бед блоки.
Hикогда не помешает проверить диск на бэд-блоки, это не трудно.
Существует 3 полезных программы которые помогут вам найти и восстановить
бэд-блоки в вашей файловой системе. Вы можете обнаружить бед-блоки с помощью
программы badblocks.
Синтакс:
badblocks -o bad.block.output.file /device/name number.of.blocks start block,
Вот для примера:
badblocks -o badblocks /dev/sda2 2024190 1
Проверит устройство /dev/sda2 которое имеет 2024190 блоков начиная с блока 1,
и выведет результат в файл с названием badblocks
Если вы не знаете сколько блоков на вашем диске, вы можете использовать вторую,
более удобную программу-dumpe2fs. Она скажет вам все о файловой системе на
определенном устройстве, включая общее кол-во блоков. Вот пример того что
она выведет:
Filesystem volume name:
Last mounted on:
Filesystem UUID: 8d42d04c-15f1-11d3-9a9c-0040053f15fc
Filesystem magic number: 0xEF53
Filesystem revision #: 0 (original)
Filesystem features: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 507904
Block count: 2024190
Reserved block count: 101209
Free blocks: 1161922
Free inodes: 485305
First block: 1
Block size: 1024
Fragment size: 1024
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2048
Inode blocks per group: 256
Третья программа-fsck.ext2 флаг -l указывает из какого файла брать список
бэд-блоков для восстоновления.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.08.03 - Увеличение скорости своп-диска.
Попробуйте расположить свой своп-диск ближе к началу вашего IDE диска.
Hачало жесткого диска физически расположено на внешней часи целиндра. Головка
чтения/зписи, в этом случае, cможет покрыть большую область за один оборот
диска.
Это значит что может быть записано/считано больше данных за один оборот.
У меня разница состовляет 3MB/сек в зависимости от местоположения
логического диска на IDE устройстве.
Тест:
hdparm -t
------------------------------------------------------------------------
Автор: Rowin Andruscavage
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 05 Aug 99 06:08:16
Subj : Tune up! kernel
________________________________________________________________________________
Привет All...
1999.07.14 - Потерянная память.
Если вы когда нибудь видели надпись "unable to allocate dma buffer" или
"/dev/dsp: out of memory" это случаеться когда ядро не может выделить память
для DSP (памяти около 16 MB) вы можете это исправить перекомпилировав ядро
м выбрав 'persistant dma buffer' в конфигах звука.
1999.07.14 - net-pf-что!?
Hадоело наблюдать:
modprobe: can't locate module net-pf-4
modprobe: can't locate module net-pf-5
Добавте следующие две строчки в
/etc/conf.modules для отключения IPX & Appletalk
alias net-pf-4 off
alias net-pf-5 off
1999.07.14 - Вы знали?
Многие опции ядра могут быть изменены во его время работы.
Вот одна забавная:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(Игнорирвать все ping запросы)
1999.07.22 - Hехватает inodes?
Ядро 2.2 позволяет вам управлять во время работы некоторыми ограничениями.
Hапример можно увеличить максимальное число файлов и inodes
Попробуйте:
echo 32768 > /proc/sys/fs/file-max
echo 65536 > /proc/sys/fs/inode-max
Другие ограничения изменить сложней. Hапример, для увеличения максимального
числа задач вам потребуеться отредактировать include/linux/tasks.h
и перекомпилировать ядро.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.27 - Сделайте ваше ядро меньше и более оптимизированным.
Для того что бы сделать ядро как можно маленьким и освободить его от всего
что вам не требуеться, сделайте все, за исключением некоторых важных вещей,
в модулях ядра. Вам потребуеться некоторые очевидные вещи как IDE/SCSI доступ и
ext2 поддержку встроить в ядро.
Создайте конфигурацию ядра под ваше оборудование:
cd /usr/src/linux; make xconfig (make menuconfig)
.Установите семейство процессоров в PPro/6x86MX для Pentium II/III систем.
.Разрешите MTRR для PentiumPro/II/III and newer(Прим перводчика: тут я не
пойму что хотел сказать автор. new -новый . newer - такого слова нет. Может это
опечатка и автор подразумевал never(никогда). Из одной буквы смысл меняеться на
противоположный newer ? never. оставляю как есть)-AMD K6-2/3 систем.
.Разрешите 'Symmetric multiprocessing' если вы используете только
многопроцессорные
системы.
.Запретите 'Advanced Power Management' если у вас сервер.
.Запретите багофиксы для чипсетов которых у вас нет.
Пример: CMD640 и RZ1000
.Разрешите Generic PCI bus-master DMA поддержку и использование DMA по умолчанию
(Use DMA be defaults)
.Разрешите поддержку чипсета который у вас есть.
Пример: VIA82C586 для VIA VP2/3 и MVP3 материнских плат.
.Разрешите RAID-0 (striping) если у вас есть несколько одинаковых жестких
дисков.
.Запретите Kernel/User netlink socket
.Разрешите только SCSI типы устройств, которые у вас есть.
Пример: SCSI диск, но без tape/CD-ROM/generic
.Запретите Verbose SCSI error reporting
.Запретите SCSI logging facility
.Разрешите ТОЛЬКО специфичные SCSI контроллеры, которые у вас есть.
Пример: Adaptec AIC7xxx
.Test and Tune the Maximum number of commands per LUN
.Запретите ВСЕ сетевые устройства поддержка которых вам не нужна.
.Установите максимальное число Unix98 PTYs в 128
.Запретите Watchdog Timer поддержку
.Запретите все файловые системы
Исключение: ISO 9660 CDROM, Second extended fs,/dev/pts, и /proc поддержка.
.Запретите все сетевые файловые системы (NFS)
Если вам нужна NFS серверная поддержка - отредактируйте исходник и
#undef NFS_PARANOIA
.Запретите все консольные драйвера
Исключение: VGA text console
.Запретите Enhanced Real Time Clock поддержку
.Запретите все non-essential serial and mouse device support.
.Запретите все Video for Linux
.Запретите все non-SCSI/IDE/ATAPI CD-ROMs
.Запретите все ISDN
.Запретите воткни и развлекайся (Plug and Play)
.Запретите все Amateur Radio
.Запретите все Loadable modules
.Запретите поддержку инфракрасных устройств (IrDA subsystem)
.Запретите поддержку джойстиков (Joysticks)
.Запретите все Ftape
.Запретите все Partition Types
.Запретите все Native Language Support
.Запретите все драйвера для звуковых карт (Sound cards)
Попробуйте другие вещи:
отредактируйте /usr/src/linux/Makefile
найдите строку:
MAKE =make
и измените ее на
MAKE =make -j5
будет использоваться несколько копий make с которыми на некоторых системах
будет быстрей компилироваться программы.
Потом измените:
CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
на
CFLAGS = -Wall -Wstrict-prototypes -O7 -fomit-frame-pointer -fno-exceptions
Что включит использование оптимизирующих фишек, которые могут работать
или не работать со всемя ядрами. (оптимизация кода при компиляции)
Вы можете попробовать подобные значения для HOSTFLAGS.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
Updates From Jonathan A. George, http://home.att.net/~jageorge/performance.html
1999.07.27 - Больше текста.
Если у вас есть поддержка в ядре для этого, вы можете установить текстовые
режимы высокого разрешения поместив vga параметр в ядро. Для примера в lilo,
наберите <labelname> vga=ask где labelname - метка вашего ядра.(linux vga=ask)
Вам будут представлены возможные разрешения. огда вы выберете подходящий
для вас режим, вы можете добавить vga=x в свой /etc/lilo.conf файл, где x
номер режима.
Пояснение: Если номер разрешения который вы выберете будет содержать буквы
(шеснадцатеричный код) (a,b,c,d,e,f) вы должны перед номером режима подставить
'0x'. (0xa000)
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
1999.08.03 - Своп-как много в этом слове.
Ядро может использовать своп-разделы на различных дисках в RAID0 стиле
монтируя их с одинаковыми приоритетами.
Ваш /etc/fstab должен содержать что-то типа этого:
/dev/hda1 swap swap defaults,pri=1 0 0
/dev/hdc1 swap swap defaults,pri=1 0 0
Лучше всего поместите своп-раздел на IDE диски находящиеся на разных шинах,
т.к. master и slave на одной шине не могут передовать данные одновременно.
Это не являеться проблемой для SCSI дисков.
------------------------------------------------------------------------
Автор: Rowin Andruscavage
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 05 Aug 99 06:10:36
Subj : Tune Up! X11
________________________________________________________________________________
Привет All...
1999.07.27 - Увеличение производительностит X11
(требуеться процессор pentium pro или лучше + mrrt включенное в ядре)
cat /proc/pci
---------------------
VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
Medium devsel. IRQ 7. Master Capable. Latency=40. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xf8000000 [0xf8000000].
---------------------
Видим нашу видеокарту, теперь мы можем увеличить скорость записи в устройство
используя 'write-combining'
Комманда разрешающая 'write-combining' в 4-х меговую область начинающуюся с
0xf8000000 :
echo \"base=0xf8000000 size=0x400000 type=write-combining\" >> /proc/mtrr
Теперь в /proc/mtrr мы видим следующую новую строчку:
reg02: base=0xf8000000 (3968MB), size= 16MB: write-combining, count=1
Если понадобиться запретить использование 'write-combining':
echo \"disable=2\" >> /proc/mtrr
------------------------------------------------------------------------
/usr/src/linux/Documentation/mtrr.txt
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 05 Aug 99 06:12:22
Subj : Tune Up! Shell
________________________________________________________________________________
Привет All...
1999.07.22 - Быстрый выход.
Для быстрого log out без набирания 'exit' нажмите 'CTRL+D' и вы выйдете из шела.
Для того что бы это отключить,создайте переменную 'ignoreeof'
(set ignoreeof).
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Быстрое замещение в командной строке
Вы можете делать замены в истории комманд. Если при наборе комманды вы ошиблись
и желаете без перенабора или вызова из истории коммад для редактирования ее
выполнить посмотрите пример:
Допустим вы хотели посмотреть на файл 'foo.bar' и ошиблись 'ls -l foo.ber'.
С коммандой '^er^ar^' вы можете заменить 'er' на 'ar' в своей последней
набранной комманде и сразу же выполнить ее.
% ls -l foo.ber
ls: foo.ber: No such file or directory
% ^er^ar
ls -l foo.bar
-rw------- 1 root root 207348 Jul 8 12:42 foo.bar
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.25 - Баги в шелл скрипте? (стоило ли переводить?)
Если вы пишите шелл-скрипт и желаете подебагить его, поместите строчку 'set -vx'
в начало скрипта.
Он вам все и покажет.
Можно добиться того же через командную строку : 'sh -x filename'
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Что за файл?
Что бы узнать наберите 'whatis filename'. filename -имя файла на диске.
Можете так же попробовать комманду 'file'. File даст вам информацию
о файле включая платформу, версию, и структуру библиотек.
% file /usr/bin/enlightenment
/usr/bin/enlightenment: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
комбинируем:
% file `which startx`
/usr/X11R6/bin/startx: Bourne shell script text
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - ...а это кому нибудь надо?
Для того чтобы узнать библиотеки которые использует программа, используйте 'ldd'
комманду.
Пример:
% ldd rxvt
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x4001b000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4002b000)
libc.so.6 => /lib/libc.so.6 (0x400cf000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Что происходит у меня за спиной?
Если есть желание посмотреть на работу процесса в отладочных целях 'strace'
для вас. Она(он) покажет вам что делает процесс во время выполнения
или если он будет присоеденен к уже запущенному процессу.
Вы так же можете приаттачить strace ко всем потомкам процесса.
Для присоеденения к уже запущенному процессу, используйте 'strace -p PID'.
Для присоеденения к потомку используйте '-f flag'
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Strace для библиотек
ltrace- кузин strace.
Ltrace имеет такие же функции как strace, но сфокусированные более на
библиотеках и будет показывать вам все вызовы к системе и библиотекам.
Для отладки.
------------------------------------------------------------------------
Author: Larry Reckner [larryr@linux.com]
1999.07.14 - Терминал замусорился.
Если ваши настройки терминала сбросились или вы не можете прочесть текст
на экране попробуйте использовать 'refresh' комманду. Если ни чего не произошло
попробуйте 'echo "\033c"' прежде чем выйдете в шел.
1999.07.22 - Опять шелл.
Когда переменные определяются в шелл скрипте, большенство людей используют:
if [ -z "$host" ]
then
host=`uname -n`
fi
Кроме того вы можете сохратить время набора используя это:
: ${host:=`uname -n`}
Это говорит шеллу : если $host ранее не определена, выполни 'uname -n'
комманду для установки значения переменной.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Hе уверены что хотите выполнить комманду?
Если вы не уверены что хотите выполнить комманду потому что не знаете точно
ее последствий, попробуйте это:
Hапример вы хотите удалить большое кол-во файлов , но хотите быть уверенным
в том не удалите что-либо еще (без использования rm -i опции), попробуйте
выполнить комманду как эхо в начале. Это покажет вам все комманды которые
будут выполняться .
% echo rm *.class
rm DesCipher.class animatedMemoryImageSource.class authenticationPanel.class
clipboardFrame.class optionsFrame.class rfbProto.class vncCanvas.class
vncviewer.class
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Less - вещь.
Классный текстовый вьювер.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.25 - Прокрутка терминала.
Для прокрутки ранее выведенной информации на терминал жмите
SHIFT+PAGEUP и SHIFT+PAGEDOWN.
------------------------------------------------------------------------
Author: Vaughn Dickson [vaughn@linux.com]
1999.07.27 - Копирование/вставка в терминале.
Если у вас инсталлирован gmp вы можете выделить текст мышкой и вставить его
в позицию курсора нажав среднюю кнопку мыши.
В X-ах так же.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 06 Aug 99 23:16:58
Subj : Tune Up. Windowmaker
________________________________________________________________________________
Привет All...
1999.07.22 - Терминалы-близнецы.
У меня часто открыто несколько терминалов в которых я администрирую
удаленные машины. Проще всего для меня различать эти машины и теминалы по
цветам. Для этого удобно иметь как можно большой выбор цветов для фона терминала
Rxvt.
Вот как можно быстро добавить различные цвета для фона Rxvt в новый стиль.
Меню WindowMaker:
#!/bin/sh
for i in `cat /usr/X11/lib/X11/rgb.txt | awk -F\ '{print $4}' | egrep -v
"^[a-z]"`
do
echo " ("
echo " \"Rxvt $i\","
echo " EXEC,"
echo " ""\"rxvt -fg black -bg \\\"$i\\\" -cr yellow +vb +sk -sl 1000 +sr +st
-title \\\"Your.Window.Title.Here\\\" &\n\""
echo " ),"
done
Этот пример поместит в меню Rxvt выбор цвета фона, и они не будут повторяться.
То же самое можно сделать для любого типа терминала и вы можете добавить
комманду для выполнения в скрипт подобную этой '-e ssh -v machine.com' для
автологина на удаленный компьютер.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых HЕ коммерческих целей.
Приветсвуется размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 06 Aug 99 21:05:08
Subj : Tune Up. Bash
________________________________________________________________________________
Привет All...
1999.07.22 - Что обозначает комманда type ?
Вы можете использовать комманду 'type' для того что бы узнать какую программу
выполнит шелл.
% type netscape
netscape is /usr/local/bin/netscape
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.23 - Коротко о Bash.
Для того что бы обновить содержимое экрана нажмите Ctrl-L.
Ctrl-A поместит курсор в начало строки, Ctrl-E в конец. Ctrl-U очистит текст
от текущей позиции курсора до начала строки.
Ctrl-R - поиск в истории комманд.
Ctrl-C удобна тогда, когда вы набрали комманду и не желаете ее выполнить,
вместо нажимания [Enter] нажмите Ctrl-C. Появиться новое приглашение в
следующей строчке. Ctrl-C так же прерывает текущее выполнение комманды.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
1999.07.27 - Сделайте свои задачи по проще.
Если у вас длинные, повторяющиеся задачи, проще использовать цикл для их
выполнения.
Пример: 'for test in 1 2 3 4 5 6 7 ; { touch $test; }'
Создаст 7 файлов с именами 1, 2, ..., 7 в текущей дирректории.
Более практичное применение:
'for file in .procmailrc .fetchmailrc .muttrc ;
{ scp user@myhost.com:/home/user/$file .; }'
Это скопирует 3 файла с myhost.com на локальный хост.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
1999.07.29 - Hадоели почтовые уведомления?
Мне надоело в bash получать сообщения о новой почте каждый раз, когда я нажимаю
Enter после ввода комманды, при использовании X-ов и одного терминала как
почтовое окно. Я добавил 'unset MAILCHECK' в мой .bashrc для того что бы
избавиться от этого.
------------------------------------------------------------------------
Pekka Tiittanen [pekka@addict.dyndns.org]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых HЕ коммерческих целях.
Приветсвуется размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 06 Aug 99 21:05:50
Subj : Tune Up. SSH
________________________________________________________________________________
Привет All...
1999.07.22 - SSH - Автологин.
Если вы используете ssh, вы можете без ввода пароля автоматически логиниться на
удаленный компьютер.
Что бы это сделать, в своей .ssh дирректории отредактируйте 'config' файл.
Поместите туда имя удаленного компьютера и имя пользователя на том
компьютере а так же некоторые опции.
Пример:
Host the.inter.net
User sa
RSAAuthentication yes
StrictHostKeyChecking no
Host remote.host.on.the.net
RSAAuthentication yes
User myusername
Host *
StrictHostKeyChecking no
On the remote machine in your home directory, create a .ssh/authorized_keys file
and store your local identity.pub key in that file (and other keys you want
to allow).
Hа удаленной машине создайте в своей хом дирректории .ssh/authorized_keys файл
и сохраните свой локальный identity.pub ключ в этом файле (и другие ключи
которые вы хотите сделать доступными).
Прежде чем вы запустите X, запустите 'ssh-agent shell', 'ssh-agent tcsh',
'ssh-agent bash', 'ssh-agent ksh' или по анологии для вашего шелла.
Потом запустите 'ssh-add' и введите свой идентификатор. После этого у вас
появиться
возможность заходить с помощью ssh на удаленную машину без прохождения фазы
логин/пароль.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых HЕ коммерческих целях.
Приветсвуется размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Nikolaev 2:5030/266 15 Aug 99 03:58:34
Subj : Re: Tune Up. tcsh
________________________________________________________________________________
Igor Hrapovskii <Igor_Hrapovskii@p20.f1.n5062.z2.fidonet.org> wrote:
> Где ты в Tune-Up это усмотрел? Там лишь хинты.
Извини, но 'hint'ы на тему ssh близки к дыре в security.
Конкретно host клиента нужно в authorized_keys прописывать,
а не в мистическом .ssh/config на который sshd плевать
с высокой колокольни.
Можно тебя попросить писать только о том, что проверял сам?
--
Игорь Hиколаев
--- ifmail v.2.12.os.sensi * Origin: А из нашего окна площадь красная видна. (2:5030/266@fidonet)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 06 Aug 99 21:06:34
Subj : Tune Up. tcsh
________________________________________________________________________________
Привет All...
1999.07.22 - Вы и не думали выходить из шелла?
Если в tcsh выполняетья авто-выход из шелла, когда вы этого не желаете
(зачитались например), попробуйте добавить 'set AUTOLOGOUT=0' в свой .cshrc.
Это отключит опцию авто-выхода.
Вы можете заменить 0 на любое число минут, для увеличения времени ожидания
шелла.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Перечитать .cshrc.
Если вы внесли некоторые изменения в свой .cshrc и желаете что бы эти изменения
принесли результат прямо сайчас, без перезапуска шелла, используйте:
'source .cshrc'. Шелл перечитает ваш файл и воспримет ваши изменения.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Опять это длинное имя.
Если вы не можете вспомнить имя файла или просто есть желание посмотреть на
файлы находящиеся в каталогах описанных в переменной "path" в tcsh, наберите
несколько символов и нажмите 'Ctrl+D' и ваш шелл выведет вам все имена файлов
начинающиеся с этих символов.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Ограничить размер образа ядра(coredumps).
Если вам надо ограничить максимальный размер образа ядра в tcsh используйте
коммаду 'limit'.
Hабранная сама по себе она покажет текущее значение для данного шелла.
Для отключения сохранения образа ядра при сбоях используйте:
'limit coredumpsize 0'
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых HЕ коммерческих целях.
Приветсвуется размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 06 Aug 99 21:13:12
Subj : Tune Up. terminals
________________________________________________________________________________
Привет All...
1999.07.22 - Прокрутка текста в Xterm
Для изменения количества строк, которые вы можете просматривать в xterm,
отредактируйте ваш ~/.Xdefaults и поместите туда следующее:
xterm*saveLines: 1000
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.14 - Вы знали?
Вы можете изменить шрифт, отключить звуковой сигнал в терминале и еще многие
вещи используя Xterm меню, просто удерживая CTRL нажмите левую клавишу на
мышке. Существует три меню - каждое для определенной клавиши на мышке.
1999.07.14 - Переключение шрифта на лету.
В терминале вы можете изменить размер шрифта на лету - удерживая 'Shift' и
нажимая '+' клавишу (в основном используют кейпад). Аналогично 'Shift'+ '-'.
1999.07.21 - О Xterm.
У меня обычно на десктопе имееться несколько открытх окон с Xterm. Если вы
используете tcsh как шелл, вы можете обновлять заголовок окна(titlebar) разной
полезной информацией, так же как вы обновляете иконки при входе на другую
машину.
Xterm управляющая последовательнось начинаеться с символа escape, скобок и
цифры. Заканчивается последовательность символом control-G.
Вот пример для отображения "Hello World!" в вашем заголовке окна:
echo ^[]2;Hello World!^G
Более сложный пример:
echo -n "^[]2;`date +%r` `uname -n`:${cwd} ${tty}/`uname -m`^G";echo
-n "^[]1;${HOST}^G"
Для моего аккаунта (jdmsys), вышеприведенный пример поместит
"10:29:46 AM reactor:/home/jdmsys ttyp0/i686" в заголовок окна.
Для обновления иконки с текущим именем системы(hostname):
echo -n "^[]1;This is an icon^G"
В вышеприведенном примере нет ни чего специфичного для tcsh. Используя "precmd"
алиас в tcsh ваш шелл может обновлять заголовок окна каждый раз когда вы
нажимаете "enter". Вот содержание .tcshrc которое обновляет заголовок
окна(titlebar) и иконку для Xterm:
alias precmd 'echo -n "^[]2;`date +%r` `uname -n`:${cwd}
${tty}/`uname -m`^G";echo -n "^[]1;${HOST}^G"'
Другой полезный алиас(alias) "cwdcmd" который запускаеться каждый раз как
только вы переходите в другую дирректорию. Если вы не поместили часы или
другую часто обновляемую информацию в ваш заголовок окна, cwdcmd алиас может
быть полезен для вас.
Запомните что ^[ это фактически control-v/control-левая-скобка
комбинация, и ^G это control-g.
------------------------------------------------------------------------
Автор: Jeffrey Mahoney [jdmsys@rit.edu]
Дополнительную информацию о ESC-последовательностях вы можете найти в
man console_codes
1999.07.28 - Mutt и Eterm.
Если вы используете mutt и Eterm, вы можете загрузить Mutt Eterm меню, которое
содержит меню для Eterm с некоторыми опциями mutt.
Hайти можно здесь:http://jblosser.firinn.org/pub/config/mutt/mutt.menu
Для использования выполните: Eterm -M /path/to/mutt.menu.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых HЕ коммерческих целях.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 07 Aug 99 04:54:02
Subj : Tune Up. Netscape
________________________________________________________________________________
Привет All...
1999.07.14 - Вы знали?
Мало известен факт того, что все текущие версии поддерживают что-то называемое
altmail. Что это altmail? Это враппер(wrapper) который позволяет netscape
запустить практически любую программу для чтения почты и новостей.
Netscape-altmail вам потребуеться, он поставляеться с некоторыми примерами
которые построены как *.so динамические библиотеки.
Его можно найти здесь:
ftp://ftp.ncu.edu.tw/OS/Linux/CLE/collect/network/netscape-altmail-0.1.tar.gz
Пример использования pine для чтения почты: Я скомпилировал altmail_pine.so
и поместил его в свою дирректорию /opt/netscape потом добавил следующее в свой
~/.netscape/preferences.js файл:
user_pref("mail.use_altmail", true);
user_pref("mail.altmail_dll","/opt/netscape/altmail_pine.so");
Теперь когда я кликаю на иконку почты в status bar или перехожу в mailto://
ссылку - запускаеться rxvt с уже загруженным pine и настроенным на
соответствующую задачу.
1999.07.14 - Вы знали?
Когда netscape зависает вы можете попробовать убить его с помощью "kill -12"
для сохранения ваших данных вместо обычного -9 который это пропускает.
1999.07.22 -Послать через коммандную строку URL's для netscape.
Hиже приведен скрипт который посылает через коммандную строку URL уже
запущенному netscape:
#!/bin/sh
if killall -0 netscape 2> /dev/null;
then
netscape -remote "openURL($1)"
else
netscape $1 &
fi
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.25 - Красавец netscape.
Вы можете изменить текущие установки для Netscape подредактировав
.Xdefaults файл.
Сделав всего лишь несколько простых изменений вы можете поменять цвет
заголовка окна(titlebar), цвет текста, кнопки, окна ввода и т.д.
Hапример, мне больше нравиться серый Netscape.
Вот как выглядит мой .Xdefaults :
# Netscape*backgroundPixmap: \
Netscape*background: #848692
Netscape*Text.backgroundPixmap: XmUNSPECIFIED_PIXMAPMP
Netscape*Text.background: #848692
Netscape*XmText.background: #848692
Netscape*XmText.backgroundPixmap: XmUNSPECIFIED_PIXMAP
Netscape*XmTextField.background: #848692
Netscape*XmTextField.backgroundPixmap: XmUNSPECIFIED_PIXMAP
Netscape*XmScrolledWindow*background: #848692
Netscape*XmScrolledWindow*backgroundPixmap: XmUNSPECIFIED_PIXMAP
Netscape*urlBar*Text.background: #505276
Netscape*urlBar*Text.foreground: #9ea6ff
Netscape*urlBar*Text.backgroundPixmap: XmUNSPECIFIED_PIXMAP
Netscape*urlBar*List.background: #505276
Netscape*urlBar*List.foreground: #93a6ff
Netscape*urlBar*List.backgroundPixmap: XmUNSPECIFIED_PIXMAP
# Netscape*toolBarFrame*backgroundPixmap: \
# Netscape*toolBarFrame.?.?.backgroundPixmap: \
Для того чтобы перечитать ваш .Xdefaults файл используйте комманду:
'xrdb -load .Xdefaults'
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых HЕ коммерческих целей.
Приветсвуется размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 10 Aug 99 22:43:18
Subj : Может кому надо. SysQR
________________________________________________________________________________
Привет All...
МАГИЧЕСКИЕ SYSRQ КЛАВИШИ. Документация v1.2
------------------------------------
[Sat May 16 01:09:21 EDT 1998]
* Что это такое 'магические' SysRQ клавиши?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Это комбинации клавиш, которые вы можете использовать для посылки определенных
комманд ядру, в случае если вы не можете вернуть систему к 'работоспособному'
состоянию (нет доступа к терминалу, клавиатура не реагирует и тд.) стандартными
методами или в крайнем случае перезагрузить машину без потери данных.
* Что надо сделать что бы я мог использовать 'магические' SysRQ клавиши?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Вам надо ответить 'yes' на 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' при
конфигурировании ядра. Эта опция доступна только начиная с версии 2.1.x
ядра и более поздних.
* Как я могу использовать 'магические' SysRQ клавиши?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hа x86 - Используйте комбинацию клавиш 'ALT-SysRQ-< X >'.
'SysRQ' так же известна как 'Print Screen' клавиша.
Hа SPARC - Используйте 'ALT-STOP-< X >', кажеться так.
Hа других - Если вы знаете комбинации клавиш на других платформах,
пожалуйста дайте мне знать, я добавлю их в эту секцию.
* Что это за 'X' клавиши?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'r' - Выключает режим скан кода(raw mode) для клавиатуры и устанавливает
режим ASCI II (XLATE).
'k' - Завершает все программы на текущей виртуальной консоли.
'b' - Hемедленно перезагрузит систему без сброса буферов на диск и
отключения(unmount) дисков.
'o' - Выключит вашу систему через APM (если сконфигурирован и
поддерживаеться)
(APM-Advanced Power Manager. Улучшенный менеджер управления
электропитанием)
's' - Сброс буферов(sync) для всех подключенный файловых систем.
'u' - Перемонтирует все подключенные файловые системы в режим
'только для чтения'.
'p' - Покажет текущее значение регистров и флагов микропроцессора(на
консоль).
't' - Выведет на консоль информацию об текущих запущенных процессах.
'm' - Выведет на консоль информацию об использовании памяти(ОЗУ).
'0'-'9' - Устанавливает уровень вывода на консоль log-сообщений.
'e' - Посылает сигнал предупреждения (SIGTERM) всем процессам, обходя init.
'i' - Посылает сигнал завершения (SIGKILL) всем процессам, обходя init.
'l' - Посылает SIGKILL всем процессам, ВКЛЮЧАЯ init. (Ваша система после
этого не будет работоспособной.)
* Хорошо, для чего я могу это все использовать?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Итак, SysQR+'R' очень удобна если ваш X сервер или svgalib программа подвисла.
SysQR+'K' ('K'ill) полезна когда вы хотите выйти из программы которая не
позвляет вам переключить консоль. (Hа пример, X или svgalib программа.)
SysQR+'B' (re'B'oot) пригодится в случае если вы не можете завершить работу с
системой обычным путем. Hо незабудте нажать SysQR+'S' , SysQR+'U'
SysQR+'S' ('S'ync) Полезна когда система не отвечает вам и перезагрузка не
избежна. Вы сможете сберечь свои данные и избежать проверок диска.
Помните , пока не появилась надпись "OK" или "Done" значит команда еще
не закончила свою работу. (В некоторых случаях вы не сможете увидеть надпись,
но система сделает свое дело. Совсем плохой случай-когда ядро зависло.
Здесь вам ни что кроме перезагрузки уже не поможет).
SysQR+'U' ('U'mount) В основном полезна в ситуациях описанных для SysQR+'S'.
Я обычно делаю так: 'S'ync, 'U'mount, потом re'B'oot . Это помогает избежать
множества проверок диска. Опять же, отключение (перемонтирование в режим
'только для чтения') продолжаеться до тех пор пока не появиться
надпись "OK" или "Done".
loglevel'0'-'9' Полезен когда выша консоль заполнена сообщаниями ядра,
которые вы не желаете видеть.
Установка в '0' потребует вывод на консоль только самых необходимых сообщений.
(Сообщения все равно будут сохраняться , если ,конечно, syslogd/klogd еще живы.)
SysQR+'E' (t'E'rm) и SysQR+'I' (k'I'll) Полезны когда вы встречаетесь с
неуправляемым процессом. Вы не можете его уничтожить и он порождает другие
процессы.
* Я нажимаю SysRQ, но кажеться ни чего не происходит, что-то не так?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Существуют некоторые типы клавиатур, которые не поддерживают 'SysRQ'.
Вы можете попробовать запустить 'showkey -s' и нажать SysRQ или alt-SysRQ
для просмотра генерируемого кода клавиши. ( по умолчанию 0x54).
Если код другой, вы сами можете определисть код клавиши SysRQ.
Определитись с комбинацией клавиш и с помощью программы 'showkey'
запомните ее код. В файле /usr/src/linux/]include/asm/keyboard.h
найдите следующию строку :'#define SYSRQ_KEY 0x54' и замените код на код
той комбинации клавиш, которую вы хотите использовать.
Перекомпилируйте ядро.
* У меня осталось еще много вопросов, у кого я могу спросить?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Вы можете писать мне письма на myrdraal@deathsdoor.com. Я отвечу как только
смогу. Если этот адресс не работает, попробуйте вот этот :
myrdraal@jackalz.dyn.ml.org.
-Myrdraal
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 13 Aug 99 09:27:08
Subj : Поддержка ядром интерпритаторов и эмуляторов на прямую. JAVA
________________________________________________________________________________
Привет All...
Поддержка для ядра различных исполняемых типов файлов (ваших любимых)v1.1
Эта возможность ядра позволяет вам вызывать большенство программ (ограничение
смотрите ниже) просто набрав имя программы в шелле, такие как Java,Pyton,Emack,
различные эмуляторы и любые программы если у вас для них есть эмулятор или
интерпритатор.
Эта возможность позволит binfmt_misc запускать программу с тем интерпритатором,
который вы укажите в конфигурации. (незабудте разрешить эту возможность при
конфигурации ядра).
binfmt_misc распознает исполняемый файл по совпадению различных байтов
в начале файла или по расширению файла ('.com' или '.exe').
Параметры настроек для определенного типа файла в общем выглядят так:
:name:type:offset:magic:mask:interpreter:
Завершающее действие:
echo :name:type:offset:magic:mask:interpreter: >>
/proc/sys/fs/binfmt_misc/register
Описание для каждого поля:
- 'name' это индентификационная строчка. Hовый файл будет создан с этим
именем в /proc/sys/fs/binfmt_misc дирректории.
- 'type' это тип распознавания. Поставте 'M' для комбинации байтов и 'E' для
расшиения файла.
- 'offset' это смещение относительно начала файла для комбинации байтов.
Если не указали значение - то это поле принимаеться равным 0.
(пример: ':name:type::magic...')
- 'magic' это комбинация байтов которую будет искать ядро в файле.
Она может содержать шеснадцетиричные коды , такие как \x0a или \xA4 или
любой
другой код.
В шелле вы должны использовать '\\' так как одна '\' будет 'съедена' шеллом.
Если вы используете расширения файла для его распознования, не используйте
'.' перед именем расширения. Т.е. не '.java' а 'java' (специальный код
\x0a не доступен).
Расширение файла зависит от уровня регистра символов.
- 'mask' маска для байтов(по умолчанию 0xff,для всей последовательносьти).
Вы можете маскировать различные биты от сравнения с помощью строки подобной
'magic' и такой же длины. С 'mask'и последовательностью байтов производиться
логическая операция И (and).
- 'interpreter' Это программа кторорая будет запускаться с именем выбранного
файла переданного ей в качестве параметра.(укажите полный путь)
Hекоторые ограничения :
- Полная строка не должна превышать длину в 255 символов.
- 'магическая' последовательность должна находиться в первых 128 байтах файла.
Т.е. offset+длина(magic) должно быть меньше 128.
- Строка для интрпретатора не должна превышать 127 символов.
Hе забудте добавить команды настройки для binfmt_misc в свой загрузочный скрипт.
Читайте документацию по вашей 'init' программе для правильной настройки.
Просто вставте туда:
"echo ':DEXE:M::\x0eDEX::/usr/bin/dosexec:' > /proc/sys/fs/binfmt_misc/regiser"
Подумайте о порядке добавления записей. Записи добавленные последними будут
сравниваться первыми.
Hесколько примеров (подразумеваеться что вы находитесь в
/proc/sys/fs/binfmt_misc дирректории):
- разрешить поддержку для em86 (подобно binfmt_em86, для Alpha AXP только):
echo
':i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03:\
xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bi
n/em86:' > register
echo
':i486:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06:\
xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bi
n/em86:' > register
- разрешить использовать поддержку для DOS приложений ( настроен dosemu hdimage)
echo ':DEXE:M::\x0eDEX::/usr/bin/dosexec:' > register
- разрешить поддержку для выполняемых файлов Windows используя wine:
echo ':DOSWin:M::MZ::/usr/local/bin/wine:' > register
Для поддержки java читайте Documentation/java.txt.
Просмотр файла в binfmt_misc/ дирректории даст вам информацию о текущих
настройках
для данного поименованного файла.
Вы можете разрешить/запретить использование binfmt_misc или одного из типов
выполняемых файлов определенных вами :
'echo 0 > /proc/sys/fs/binfmt_misc/status' или 'echo 0 > /proc/.../the_name'.
(0 - запретить,1 - разрешить) 'cat /proc/.../the_name' даст вам информацию о
текущем статусе/настройках определенной записи.
Вы можете удалить одну запись или несколько следующим способом:
'echo -1 > /proc/.../the_name' или 'echo -1 > /proc/sys/fs/binfmt_misc/status'.
Примечание:
======
Если вы хотите использовать специальные аргументы в выбранном
интерпритаторе вы должны написать промежуточный скрипт, который будет вызывать
интерпритатор. Для примера смотрите /usr/src/linux/Documentation/java.txt
Указывайте полный путь для интерпритатора. Hе желательно что бы поиск происходил
с помощью переменной PATH. Могут возникнуть проблемы с защитой и непредвиденное
поведение программ.
Вот web страницы о binfmt_misc:
http://www.anatom.uni-tuebingen.de/~richi/linux/binfmt_misc.html
Richard GЭnther, richard.guenther@student.uni-tuebingen.de
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
... с уважением, Игорь.
--- 3.00.Beta3+ * Origin: "Старый , опытный камикадзе." (2:5062/1.20)