Добавить в избранное | Сделать стартовой страницей

Большая Linux библиотека для пользователей OS Linux и ПО для нее
Есть что сказать? Нужен совет? Посети наш форум.




Советы по оптимизации Linux - 2.

Автор : Richard GЭnther
Перевод : Игорь Храповский
1999.07.22 - Вы и не думали выходить из шелла?
Если в tcsh выполняетья авто-выход из шелла, когда вы этого не желаете
(зачитались например), попробуйте добавить 'set AUTOLOGOUT=0' в свой .cshrc.
Это отключит опцию авто-выхода.
Вы можете заменить 0 на любое число минут, для увеличения времени ожидания
шелла.

------------------------------------------------------------------------
Автор: Larry Reckner []
1999.07.22 - Перечитать .cshrc.

Если вы внесли некоторые изменения в свой .cshrc и желаете что бы эти изменения
принесли результат прямо сайчас, без перезапуска шелла, используйте:
'source  .cshrc'. Шелл перечитает ваш файл и воспримет ваши изменения.
------------------------------------------------------------------------
Автор: Larry Reckner []

1999.07.22 - Опять это длинное имя.
Если вы не можете вспомнить имя файла или просто есть желание посмотреть на
файлы находящиеся в каталогах описанных в переменной "path" в tcsh, наберите
несколько символов и нажмите 'Ctrl+D' и ваш шелл выведет вам все имена файлов
начинающиеся с этих символов.
------------------------------------------------------------------------
Автор: Larry Reckner []
1999.07.22 - Ограничить размер образа ядра(coredumps).

Если вам надо ограничить максимальный размер образа ядра в tcsh используйте
коммаду 'limit'.
Набранная сама по себе она покажет текущее значение для данного шелла.
Для отключения сохранения образа ядра при сбоях используйте:
'limit coredumpsize 0'
------------------------------------------------------------------------
Автор: Larry Reckner []
============================================================================
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail:
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых НЕ коммерческих целях.
Приветсвуется размещение на сайтах и 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 []

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 []

Дополнительную информацию о ESC-последовательностях вы можете найти в
man console_codes

1999.07.28 - Mutt и Eterm.
Если вы используете mutt и Eterm, вы можете загрузить Mutt Eterm меню, которое
содержит меню для Eterm с некоторыми опциями mutt.
Найти можно здесь:http://jblosser.firinn.org/pub/config/mutt/mutt.menu
Для использования выполните:  Eterm -M /path/to/mutt.menu.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen []
==============================================================================
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail:
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых НЕ коммерческих целях.
Приветсвуеться размещение на сайтах и 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.

Ниже приведен  скрипт который посылает через коммандную строку URL уже
запущенному netscape:
#!/bin/sh

if killall -0 netscape 2> /dev/null;
then
netscape -remote "openURL($1)"
else
netscape $1 &
fi


------------------------------------------------------------------------
Автор: Larry Reckner []

1999.07.25 - Красавец netscape.

Вы можете изменить текущие установки для Netscape подредактировав
.Xdefaults файл.
Сделав всего лишь несколько простых изменений вы можете поменять цвет
заголовка окна(titlebar), цвет текста, кнопки, окна ввода и т.д.
Например, мне больше нравиться серый 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 []
=========================================================================
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail:
Приветствуются любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых НЕ коммерческих целей.
Приветсвуется размещение на сайтах и 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 клавиши?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
На x86   - Используйте комбинацию клавиш 'ALT-SysRQ-< X >'.
           'SysRQ'  так же известна как 'Print Screen' клавиша.

На SPARC - Используйте 'ALT-STOP-< X >', кажеться так.

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

*  Что это за 'X' клавиши?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'r'     - Выключает режим скан кода(raw mode) для клавиатуры и устанавливает
      режим ASCI II (XLATE).

'k'     - Завершает все программы на текущей виртуальной консоли.

'b'     - Немедленно перезагрузит систему без сброса буферов на диск и
      отключения(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)  полезна когда вы хотите выйти из программы  которая не
позвляет вам переключить консоль. (На пример, X или svgalib программа.)

SysQR+'B' (re'B'oot) пригодится в случае если вы не можете завершить работу с
системой обычным путем. Но незабудте нажать 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
==============================================================================
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail:
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Не коммерческих целей.
Приветсвуеться размещение на сайтах и 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' это индентификационная строчка. Новый файл будет создан с этим
   именем в /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' Это программа кторорая будет запускаться с именем выбранного
   файла переданного ей в качестве параметра.(укажите полный путь)

Некоторые ограничения :
- Полная строка не должна превышать длину в 255 символов.
- 'магическая' последовательность должна находиться в первых 128 байтах файла.
   Т.е. offset+длина(magic) должно быть меньше 128.
- Строка для интрпретатора не должна превышать 127 символов.

Не забудте добавить команды настройки для binfmt_misc в свой загрузочный скрипт.
Читайте документацию по вашей 'init' программе для правильной настройки.

Просто вставте туда:
"echo ':DEXE:M::\x0eDEX::/usr/bin/dosexec:' > /proc/sys/fs/binfmt_misc/regiser"

Подумайте о порядке добавления записей. Записи добавленные последними будут
сравниваться первыми.

Несколько примеров (подразумеваеться что вы находитесь в
/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
Указывайте полный путь для интерпритатора. Не желательно что бы поиск происходил
с помощью переменной PATH. Могут возникнуть проблемы с защитой и непредвиденное
поведение программ.


Вот web страницы о binfmt_misc:
http://www.anatom.uni-tuebingen.de/~richi/linux/binfmt_misc.html

Richard GЭnther,
==============================================================================
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail:
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Не коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.


Обсудить данную тему на нашем форуме "Все о Linux"