Журнал лабораторных работ

Содержание

Журнал

Понедельник (03/27/17)

/dev/pts/0
09:30:17
#vim
09:36:08
#ps aux | grep l3script
root      3408  0.0  0.1  18164   840 pts/0    S+   10:30   0:00 script -f -c l3script -q /root/.lilalo//2095430568322224326-1490599817.script
root      3439  0.0  0.0  18168   468 pts/0    S+   10:30   0:00 script -f -c l3script -q /root/.lilalo//2095430568322224326-1490599817.script
root      3440  0.0  0.4  21628  2232 pts/1    Ss   10:30   0:00 l3script
root      3487  0.0  0.1   9972   872 pts/1    S+   10:36   0:00 grep l3script
09:36:13
#useradd ivan

09:39:41
#echo $?
0
09:41:20
#useradd ivan
useradd: пользователь «ivan» уже существует
09:41:55
#echo $?
9
09:41:58
#useradd petr

09:44:53
#passwd ivan
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
09:46:30
#passwd petr
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
09:47:23
#rmuser ivan
l3script: rmuser: команда не найдена
09:49:34
#userdel ivan

09:49:42
#userdel petr

09:49:47
#adduser
adduser: Можно указать только одно или два имени.
09:50:32
#adduser --help
adduser [--home КАТ] [--shell ОБОÐ--no-create-home] [--uid ID]
[--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup ГРУППА | --gid ID]
[--disabled-password] [--disabled-login] ПОÐ
ователя
adduser --system [--home КАТ] [--shell ОБОÐ--no-create-home] [--uid ID]
[--gecos GECOS] [--group | --ingroup ГРУППА | --gid ID] [--disabled-password]
[--disabled-login] ПОÐ
ьзователя
adduser --group [--gid ID] ГРУППА
addgroup [--gid ID] ГРУППА
...
adduser ПОÐ
ующего пользователя в существующую группу
общие параметры:
  --quiet | -q              не выводить информацию при работе в stdout
  --force-badname           разрешить имена пользователей, которые не
                            удовлетворяют конфигурационной переменной
                            NAME_REGEX
  --help | -h               показать справку об использовании
  --version | -v            показать версию и авторские права
  --conf | -c ФАЙконфигурационного
09:50:40
#useradd -m ivan

09:52:51
#useradd -m pt

09:52:54
#userdel pe
userdel: пользователь «pe» не существует
09:53:02
#userdel pet
userdel: пользователь «pet» не существует
09:53:04
#ls /home
ivan  pt  user
09:53:10
#userdel pt

09:53:14
#useradd -m petr

09:53:20
#passwd ivan
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
09:54:40
#passwd petr
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
09:54:45
#echo $SHELL
/bin/bash
09:56:38
#chsh --help
Использование: chsh [параметры] [ПОÐ
, --help                    показать данное сообщение и закончить работу
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОолочка для учётной
                                записи
09:57:15
#chsh -s /bin/bash ivan

09:57:30
#usermod -s /bin/bash petr

09:59:10
#chsh /bin/sh
chsh: пользователь «/bin/sh» не существует
10:04:40
#chsh -s /bin/sh

10:04:57
#chsh -s /bin/bash
Пароль:
10:05:05
#chsh -s /bin/bash
Пароль:
chsh: PAM: Сбой при проверке подлинности
10:05:14
#chsh -s /bin/bash
Пароль:
прошло >2 часов
/dev/pts/1
12:50:43
#ls
install
12:50:46
#cd install
l3script: cd: install: Это не каталог
12:50:49
#vim install
12:50:55
#{

12:50:59
#ls -l
итого 12
drwxr-xr-x 2 root root 4096 Мар 27 13:50 d1
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
12:51:01
#ls -F
d1/  install
12:51:15
#man mkdir
12:52:07
#ls -t
d1  install
12:53:24
#tree
l3script: tree: команда не найдена
12:53:34
#apt-get install tree
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  tree
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 91 пакетов не обновлено.
Необходимо скачать 43,3 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 112 kB.
Получено:1 http://ftp.ua.debian.org/debian/ wheezy/main tree amd64 1.6.0-1 [43,3 kB]
Получено 43,3 kБ за 0с (244 kБ/c)
Выбор ранее не выбранного пакета tree.
(Чтение базы данных … на данный момент установлено 28860 файлов и каталогов.)
Распаковывается пакет tree (из файла …/tree_1.6.0-1_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет tree (1.6.0-1) …
12:54:04
#tree
.
├── d1
└── install
1 directory, 1 file
12:54:06
#mkdir -p d2/d3

12:55:31
#tree
.
├── d1
├── d2
│   └── d3
└── install
3 directories, 1 file
12:55:33
#tree -X
<?xml version="1.0" encoding="UTF-8"?>
<tree>
  <directory name=".">
    <directory name="d1">
    </directory>
    <directory name="d2">
      <directory name="d3">
      </directory>
    </directory>
    <file name="install"></file>
  </directory>
  <report>
    <directories>3</directories>
    <files>1</files>
  </report>
</tree>
12:56:16
#pwd
/root
13:00:24
#ls
d1  d2  install
13:00:25
#touch d1/f1

13:00:37
#> d2/f2

13:01:20
#tree
.
├── d1
│   └── f1
├── d2
│   ├── d3
│   └── f2
└── install
3 directories, 3 files
13:01:22
#man dd
13:02:42
#ls
d1  d2  install
прошло 13 минут
13:16:40
#cd ~

13:16:43
#tree
.
├── d1
│   └── f1
├── d2
│   ├── d3
│   └── f2
└── install
3 directories, 3 files
13:16:45
#rm -R *

13:16:49
#ls

13:16:50
#tree
.
0 directories, 0 files
13:16:51
#scp -r root@192.168.13.6 ~
cp: не удалось выполнить stat для «root@192.168.13.6»: Нет такого файла или каталога
13:18:27
#scp -r root@192.168.13.6:/root ~
The authenticity of host '192.168.13.6 (192.168.13.6)' can't be established.
ECDSA key fingerprint is bb:7b:f3:72:0e:3d:91:4c:a0:5b:88:ff:0d:0d:33:1d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.13.6' (ECDSA) to the list of known hosts.
root@192.168.13.6's password:
config                                                                                                                                                                          100%    0     0.0KB/s   00:00
.bashrc                                                                                                                                                                         100%  630     0.6KB/s   00:00
2525264871024819419-1403867138.info                                                                                                                                             100%  692     0.7KB/s   00:00
143184190977814884-1413212456.info                                                                                                                                              100% 2759     2.7KB/s   00:00
l3-agent.pid                                                                                                                                                                    100%    4     0.0KB/s   00:00
...
f1                                                                                                                                                                              100%    0     0.0KB/s   00:00
f2                                                                                                                                                                              100%    0     0.0KB/s   00:00
.l3rc                                                                                                                                                                           100%   50     0.1KB/s   00:00
f1                                                                                                                                                                              100%    0     0.0KB/s   00:00
f2                                                                                                                                                                              100%    0     0.0KB/s   00:00
.viminfo                                                                                                                                                                        100% 5189     5.1KB/s   00:00
MBR                                                                                                                                                                             100%  512     0.5KB/s   00:00
.netrwhist                                                                                                                                                                      100%  135     0.1KB/s   00:00
.bash_profile                                                                                                                                                                   100%   10     0.0KB/s   00:00
install                                                                                                                                                                         100% 5268     5.1KB/s   00:00
13:18:55
#ls
root
13:19:00
#tree
.
└── root
    ├── d1
    │   ├── f1
    │   └── f2
    ├── d2
    │   ├── d1
    │   │   ├── f1
    │   │   └── f2
    │   ├── d3
    │   └── f2
    ├── f2
    ├── install
    └── MBR
5 directories, 8 files
13:19:04
#mv root/* ~/

13:19:16
#ls
d1  d2  f2  install  MBR  root
13:19:17
#rm root
rm: невозможно удалить «root»: Это каталог
13:19:19
#tree
.
├── d1
│   ├── f1
│   └── f2
├── d2
│   ├── d1
│   │   ├── f1
│   │   └── f2
│   ├── d3
│   └── f2
├── f2
├── install
├── MBR
└── root
5 directories, 8 files
13:19:39
#rm -r root

13:19:42
#tree
.
├── d1
│   ├── f1
│   └── f2
├── d2
│   ├── d1
│   │   ├── f1
│   │   └── f2
│   ├── d3
│   └── f2
├── f2
├── install
└── MBR
4 directories, 8 files
13:19:45
#ls
d1  d2  f2  install  MBR
прошло 13 минут
13:33:03
#less install
прошло 26 минут
13:59:09
#ls -l /bin | grep ls
-rwxr-xr-x 1 root root  22880 Янв 26  2013 false
-rwxr-xr-x 1 root root 114032 Янв 26  2013 ls
-rwxr-xr-x 1 root root  48720 Дек 11  2012 lsblk
lrwxrwxrwx 1 root root      4 Апр  7  2013 lsmod -> kmod
13:59:15
#man find
13:59:41
#man ls
прошло 44 минуты
14:43:50
#man ls

Вторник (03/28/17)

/dev/pts/0
10:17:12
#cd /etc/skel

10:17:18
#ls

10:17:19
#ls -lah
итого 20K
drwxr-xr-x  2 root root 4,0K Окт 13  2014 .
drwxr-xr-x 69 root root 4,0K Мар 28 11:12 ..
-rw-r--r--  1 root root  220 Дек 30  2012 .bash_logout
-rw-r--r--  1 root root 3,4K Дек 30  2012 .bashrc
-rw-r--r--  1 root root  675 Дек 30  2012 .profile
10:17:21
#echo $HISTSIZE
500
10:23:20
#history
    1  ifconfig
    2  vim /etc/network/interfaces
    3  nano /etc/network/interfaces
    4  /etc/init.d/networking restart
    5  ifconfig
    6  route
    7  ping 192.168.13.253
    8  shutdown -r now
    9  exit
   10  ping ya.ru
...
  174  sudo apt-get update
  175  apt-get update
  176  apt-get install tmux
  177  tmux
  178  tmux
  179  cd /etc/skel
  180  ls
  181  ls -lah
  182  echo $HISTSIZE
  183  history
10:23:38
#history --hel0p
l3script: history: --: неправильная опция
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
10:23:52
#history --help
l3script: history: --: неправильная опция
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
10:23:54
#history --hel
l3script: history: --: неправильная опция
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
10:23:58
#history --help
l3script: history: --: неправильная опция
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
10:24:00
#vim /etc/profile
--- /tmp/l3-saved-9439.24184.16892	2017-03-28 11:24:58.547924453 +0300
+++ /etc/profile	2017-03-28 11:27:14.487921015 +0300
@@ -35,3 +35,7 @@
   done
   unset i
 fi
+
+HISTSIZE=2000
+HISTFILESIZE=2000
+export HISTSIZE HISTFILESIZE
/dev/pts/0
10:28:39
#echo

10:28:43
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.187 49747 22
L3_PARENT_TTY=/dev/pts/0
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=12345299631881525288-1490689719
PWD=/root
LANG=ru_RU.UTF-8
10:28:44
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.187 49747 22
L3_PARENT_TTY=/dev/pts/0
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=12345299631881525288-1490689719
PWD=/root
LANG=ru_RU.UTF-8
10:31:37
#echo $HISTSIZE
2000
10:31:50
#echo $HISTFILESIZE
2000
10:31:56
#echo $HISTFILESIZE
2000
прошло 18 минут
10:50:39
#vim bash.bashrc
10:51:02
#~
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
...
#  elif [ -f /etc/ /usr/bin/python /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
#    . /etc/bas elsepletion
                   printf "%s: command not found\n" "$1" >&2
#  fi              return 127
                fi
#fi     }
fi
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
10:52:13
#~
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# set variable identifying the chroot you work in (used in the prompt below)
"/etc/bash.bashrc" 55L, 1895C
...
#  fi           elif [ -x /usr/share/command-not-found/command-not-found ]; then
                   /usr/bin/python /usr/share/command-not-found/command-not-found -- "$1"
#fi                return $?
                else
                   printf "%s: command not found\n" "$1" >&2
                   return 127
# if the comman fiot-found package is installed, use it
        }
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
fi
10:52:21
#~
screenrc                   shadow                     staff-group-for-usr-local
securetty                  shadow-                    sudoers
security/                  shells                     sudoers.d/
selinux/                   skel/                      sysctl.conf
services                   ssh/                       sysctl.d/
sgml/                      ssl/                       systemd/
10:52:21
#cd /etc/s
screenrc                   shadow                     staff-group-for-usr-local
securetty                  shadow-                    sudoers
security/                  shells                     sudoers.d/
selinux/                   skel/                      sysctl.conf
services                   ssh/                       sysctl.d/
sgml/                      ssl/                       systemd/
10:52:21
#cd /etc/skel

10:52:32
#ls

10:52:33
#ls -lah
итого 20K
drwxr-xr-x  2 root root 4,0K Окт 13  2014 .
drwxr-xr-x 69 root root 4,0K Мар 28 11:52 ..
-rw-r--r--  1 root root  220 Дек 30  2012 .bash_logout
-rw-r--r--  1 root root 3,4K Дек 30  2012 .bashrc
-rw-r--r--  1 root root  675 Дек 30  2012 .profile
10:52:37
#vifm .
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
      *) return;;
# If not running interactively, don't do anything
esac
case $- in
    *i*) ;;
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
...
 49     if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
 50         # We have color support; assume it's compliant with Ecma-48
 51         # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
 52         # a case would tend to support setf rather than setaf.)
 53         color_prompt=yes
 54     else
 55         color_prompt=
 56     fi
 57 fi
 58
11:02:02
#diff ~ivan/.bash
.bash_history  .bash_logout   .bashrc

Статистика

Время первой команды журнала09:30:17 2017- 3-27
Время последней команды журнала11:02:02 2017- 3-28
Количество командных строк в журнале100
Процент команд с ненулевым кодом завершения, %15.00
Процент синтаксически неверно набранных команд, % 2.00
Суммарное время работы с терминалом *, час 2.48
Количество командных строк в единицу времени, команда/мин 0.67
Частота использования команд
ls16|===============| 15.53%
tree10|=========| 9.71%
echo8|=======| 7.77%
chsh7|======| 6.80%
useradd6|=====| 5.83%
man5|====| 4.85%
userdel5|====| 4.85%
cd5|====| 4.85%
history5|====| 4.85%
passwd4|===| 3.88%
vim4|===| 3.88%
rm3|==| 2.91%
~3|==| 2.91%
env2|=| 1.94%
scp2|=| 1.94%
grep2|=| 1.94%
adduser2|=| 1.94%
ps1|| 0.97%
touch1|| 0.97%
mkdir1|| 0.97%
diff1|| 0.97%
rmuser1|| 0.97%
pwd1|| 0.97%
vifm1|| 0.97%
>1|| 0.97%
{1|| 0.97%
f21|| 0.97%
less1|| 0.97%
apt-get1|| 0.97%
mv1|| 0.97%
usermod1|| 0.97%
____
*) Интервалы неактивности длительностью 30 минут и более не учитываются

Справка

Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
  1. В журнал автоматически попадают все команды, данные в любом терминале системы.

  2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

  3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
    $ l s-l
    bash: l: command not found
    

  4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
    $ test 5 -lt 4
    Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

  5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
    $ find / -name abc
    find: /home/devi-orig/.gnome2: Keine Berechtigung
    find: /home/devi-orig/.gnome2_private: Keine Berechtigung
    find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
    find: /home/devi-orig/.metacity: Keine Berechtigung
    find: /home/devi-orig/.inkscape: Keine Berechtigung
    ^C
    

  6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
    # id
    uid=0(root) gid=0(root) Gruppen=0(root)
    

  7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
    $ vi ~/.bashrc
    2a3,5
    >    if [ -f /usr/local/etc/bash_completion ]; then
    >         . /usr/local/etc/bash_completion
    >        fi
    

  8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
    $ patch ~/.bashrc
    В данном случае изменения применяются к файлу ~/.bashrc

  9. Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.

    Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

  10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

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

  12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

  13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

  14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

    $ whoami
    
    user
    
    $ #^ Интересно, кто я?
    
    в журнале это будет выглядеть так:
    $ whoami
    
    user
    
    Интересно, кто я?

  15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

    $ whoami
    
    user
    
    $ cat > /dev/null #^ Интересно, кто я?
    
    Программа whoami выводит имя пользователя, под которым 
    мы зарегистрировались в системе.
    -
    Она не может ответить на вопрос о нашем назначении 
    в этом мире.
    
    В журнале это будет выглядеть так:
    $ whoami
    user
    
    Интересно, кто я?
    Программа whoami выводит имя пользователя, под которым
    мы зарегистрировались в системе.

    Она не может ответить на вопрос о нашем назначении
    в этом мире.
    Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

  16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

  17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
  18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
  19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
    1
        2
    3   
        4
    
    Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

О программе

LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008

$Id$