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

Содержание

Журнал

Понедельник (06/01/09)

/dev/pts/2
09:40:56
#fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8368247b
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2432    19535008+  83  Linux
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbcb3237f
...
Disk /dev/dm-0: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/dm-1 doesn't contain a valid partition table
09:41:51
#lvdisplay
  --- Logical volume ---
  LV Name                /dev/TESTLVM/LV1
  VG Name                TESTLVM
  LV UUID                aQJEEI-3LYm-rZnO-9r96-tZKP-4dZw-328WEe
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                6,00 GB
  Current LE             1536
  Segments               1
...
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                4,00 GB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1
09:42:20
#lvre
lvreduce  lvremove  lvrename  lvresize
09:42:20
#lvremove /dev/TESTLVM/LV{1,2}
Do you really want to remove active logical volume "LV1"? [y/n]: y
  Logical volume "LV1" successfully removed
Do you really want to remove active logical volume "LV2"? [y/n]: y
  Logical volume "LV2" successfully removed
09:43:14
#vgdisplay
  --- Volume group ---
  VG Name               TESTLVM
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               37,26 GB
  PE Size               4,00 MB
  Total PE              9538
  Alloc PE / Size       0 / 0
  Free  PE / Size       9538 / 37,26 GB
  VG UUID               KKXQDE-jesa-wzPs-cDBT-mmMR-6Opt-OVcUgW
09:43:19
#vgre
vgreduce  vgremove  vgrename
09:43:19
#vgremove TESTLVM
  Volume group "TESTLVM" successfully removed
09:43:49
#vgdisplay

09:43:51
#pv
pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan
09:43:51
#pvre
pvremove  pvresize
09:43:51
#pvdisplay
  "/dev/sdb2" is a new physical volume of "18,63 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name
  PV Size               18,63 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
...
  --- NEW Physical volume ---
  PV Name               /dev/sdb3
  VG Name
  PV Size               18,63 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               F301Cx-o0hp-FZc2-80UG-BReo-2sA3-TLvBjX
09:44:18
#pvremove /dev/sdb{2,3}
  Labels on physical volume "/dev/sdb2" successfully wiped
  Labels on physical volume "/dev/sdb3" successfully wiped
09:44:48
#pvdisplay

09:44:52
#fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8368247b
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2432    19535008+  83  Linux
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbcb3237f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        2432    19535008+  83  Linux
/dev/sdb2            2433        4864    19535040   83  Linux
/dev/sdb3            4865        7296    19535040   83  Linux
/dev/sdb4            7297       30401   185590912+   5  Extended
/dev/sdb5            7297       19454    97659103+  83  Linux
/dev/sdb6           19455       30401    87931746   83  Linux
09:45:00
#cfdisk /dev/sdb
09:46:14
#cfdisk /dev/sda
09:47:15
#cfdisk /dev/sdb
09:48:28
#fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8368247b
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2432    19535008+  83  Linux
/dev/sda2            2433        3648     9767520   83  Linux
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbcb3237f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        2432    19535008+  83  Linux
/dev/sdb2            2433        3648     9767520   83  Linux
09:49:31
#apt-get install mdadm
 │                                                                                                                                           │
 │                                                                  <Ok>                                                                     │
 │                                                                                                                                           │
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────â”
Выбор ранее не выбранного пакета mdadm.
(Чтение базы данных ... на данный момент установлено 56298 файлов и каталогов.)
Распаковывается пакет mdadm (из файла .../mdadm_2.6.9-3_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет mdadm (2.6.9-3) ...
Generating array device nodes... done.
Generating mdadm.conf... done.
update-initramfs: deferring update (trigger activated)
Starting MD monitoring service: mdadm --monitor.
Assembling MD arrays...done (no arrays found in config file or automatically).
Обрабатываются триггеры для initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.29-2-686
dpkg: предупреждение: obsolete option '--print-installation-architecture', please use '--print-architecture' instead.
dpkg: предупреждение: obsolete option '--print-installation-architecture', please use '--print-architecture' instead.
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
W: mdadm: no arrays defined in configuration file.
прошло 16 минут
10:05:34
#mdadm --help
mdadm is used for building, managing, and monitoring
Linux md devices (aka RAID arrays)
Usage: mdadm --create device options...
            Create a new array from unused devices.
       mdadm --assemble device options...
            Assemble a previously created array.
       mdadm --build device options...
            Create or assemble an array without metadata.
       mdadm --manage device options...
            make changes to an existing array.
...
            Shorthand for --manage.
Any parameter that does not start with '-' is treated as a device name
or, for --examine-bitmap, a file name.
The first such name is often the name of an md device.  Subsequent
names are often names of component devices.
 For detailed help on the above major modes use --help after the mode
 e.g.
         mdadm --assemble --help
 For general help on options use
         mdadm --help-options
10:06:27
#mount
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
rootfs on / type rootfs (rw)
10:11:51
#vim /etc/init.d/digitemp
10:19:41
#fdisk -lu /dev/sda
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x8368247b
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63    39070079    19535008+  83  Linux
/dev/sda2        39070080    58605119     9767520   83  Linux
10:19:54
#vim /etc/init.d/digitemp
10:20:20
# 49 +q436f+q6b75+q6b64+q6b72+q6b6c+q2332+q2334+q2569+q2a37+q6b31

10:20:39
#cat /etc/init.d/digitemp
#!/bin/sh
PIDFILE=/var/run/digitemp.pid
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin
exit 0
start ()
{
        if [ -f $PIDFILE ]; then
                echo "Warning : $PIDFILE still present. Unclean shutdown ?"
                kill -9 `cat $PIDFILE` 2>/dev/null
                rm -f $PIDFILE 2>/dev/null
...
        restart)
                stop
                sleep 1
                start
                ;;
        *)
                echo "Usage: $0 (start|stop|restart)"
                exit 1
                ;;
esac
10:29:46
#fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8368247b
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2432    19535008+  83  Linux
/dev/sda2            2433        3648     9767520   83  Linux
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbcb3237f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        2432    19535008+  83  Linux
/dev/sdb2            2433        3648     9767520   83  Linux
10:30:00
#mdadm /dev/md0 -C -l 1 -n 2 /dev/sd /dev/sdb2
sda   sda1  sdb   sdb1  sdb2
10:30:00
#mdadm /dev/md0 -C -l 1 -n 2 /dev/sda /dev/sdb2
sda   sda1
10:30:00
#mdadm /dev/md0 -C -l 1 -n 2 /dev/sda2 /dev/sdb2
mdadm: Cannot open /dev/sda2: No such file or directory
mdadm: create aborted
10:30:43
#partprobe --help
Usage: partprobe [OPTION] [DEVICE]...
Inform the operating system about partition table changes.
  -d, --dry-run    do not actually inform the operating system
  -s, --summary    print a summary of contents
  -h, --help       display this help and exit
  -v, --version    output version information and exit
When no DEVICE is given, probe all partitions.
Report bugs to <bug-parted@gnu.org>.
10:31:09
#partprobe

10:31:15
#mdadm /dev/md0 -C -l 1 -n 2 /dev/sda2 /dev/sdb2
mdadm: array /dev/md0 started.
10:31:19
#whatch 'cat /proc/mdstat'
bash: whatch: команда не найдена
10:31:51
#whatch cat /proc/mdstat
bash: whatch: команда не найдена
10:32:02
#watch cat /proc/mdstat

10:36:05
#Personalities : [raid1]

10:37:14
#Personalities : [raid1]
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8368247b
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2432    19535008+  83  Linux
/dev/sda2            2433        3648     9767520   83  Linux
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbcb3237f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        2432    19535008+  83  Linux
/dev/sdb2            2433        3648     9767520   83  Linux
Disk /dev/md0: 10.0 GB, 10001842176 bytes
2 heads, 4 sectors/track, 2441856 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000
Disk /dev/md0 doesn't contain a valid partition table
10:37:58
#pvcreate /dev/md0
  Physical volume "/dev/md0" successfully created
10:40:26
#vgcreate LV2 /dev/md0
  Volume group "LV2" successfully created
10:41:01
#vgdisplay
  --- Volume group ---
  VG Name               LV2
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9,31 GB
  PE Size               4,00 MB
  Total PE              2384
  Alloc PE / Size       0 / 0
  Free  PE / Size       2384 / 9,31 GB
  VG UUID               O9nDHV-KOND-fwh3-coJL-ExDv-id7E-I38t7w
10:41:06
#lvcreate --help
  lvcreate: Create a logical volume
lvcreate
        [-A|--autobackup {y|n}]
        [--addtag Tag]
        [--alloc AllocationPolicy]
        [-C|--contiguous {y|n}]
        [-d|--debug]
        [-h|-?|--help]
        [-i|--stripes Stripes [-I|--stripesize StripeSize]]
        {-l|--extents LogicalExtentsNumber |
...
        {-l|--extents LogicalExtentsNumber[%{VG|LV|PVS|FREE}] |
         -L|--size LogicalVolumeSize[kKmMgGtTpPeE]}
        [-M|--persistent {y|n}] [--major major] [--minor minor]
        [-n|--name LogicalVolumeName]
        [-p|--permission {r|rw}]
        [-r|--readahead ReadAheadSectors|auto|none]
        [-t|--test]
        [-v|--verbose]
        [--version]
        OriginalLogicalVolume[Path] [PhysicalVolumePath...]
10:42:32
#lvcreate -l1024 -nL1 /dev/LV1
  Volume group "LV1" not found
10:43:03
#vgdisplay
  --- Volume group ---
  VG Name               LV2
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9,31 GB
  PE Size               4,00 MB
  Total PE              2384
  Alloc PE / Size       0 / 0
  Free  PE / Size       2384 / 9,31 GB
  VG UUID               O9nDHV-KOND-fwh3-coJL-ExDv-id7E-I38t7w
10:43:13
#lvcreate -l1024 -nL1 /dev/LV2
  Logical volume "L1" created

Файлы

  • /etc/init.d/digitemp
  • /etc/init.d/digitemp
    >
    #!/bin/sh
    PIDFILE=/var/run/digitemp.pid
    PATH=/sbin:/bin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin
    exit 0
    start ()
    {
            if [ -f $PIDFILE ]; then
                    echo "Warning : $PIDFILE still present. Unclean shutdown ?"
                    kill -9 `cat $PIDFILE` 2>/dev/null
                    rm -f $PIDFILE 2>/dev/null
                    killall digitemp
            fi
            cd /opt/etc
            echo -n "Starting digitemp... "
            if [ ! -f /opt/etc/.digitemprc ]; then
                    digitemp -i
            fi
            digitemp_DS9097 -a -q -o"%4.1C" -n 0 -d 300 -l /var/log/temperature| while true; do
                    read t3;
                    if [ "$t3" != "Found DS9097 device #1 at 003/002" ]; then
    #                wget -q "http://192.168.1.1/cgi-bin/t.cgi?sensor=3;value=$t3" -O - >/dev/null 2>&1
                    fi
            done &
            echo $! > $PIDFILE
            echo "done"
    }
    stop ()
    {
            if [ -f $PIDFILE ]; then
                    kill -9 `cat $PIDFILE` 2>/dev/null
                    rm -f $PIDFILE 2>/dev/null
                    killall digitemp
            fi
            echo "done"
    }
    case "$1" in
            start)
                    start
                    ;;
            stop)
                    stop
                    ;;
            restart)
                    stop
                    sleep 1
                    start
                    ;;
            *)
                    echo "Usage: $0 (start|stop|restart)"
                    exit 1
                    ;;
    esac
    

    Статистика

    Время первой команды журнала09:40:56 2009- 6- 1
    Время последней команды журнала10:43:13 2009- 6- 1
    Количество командных строк в журнале45
    Процент команд с ненулевым кодом завершения, % 6.67
    Процент синтаксически неверно набранных команд, % 4.44
    Суммарное время работы с терминалом *, час 1.04
    Количество командных строк в единицу времени, команда/мин 0.72
    Частота использования команд
    fdisk5|===========| 11.11%
    mdadm5|===========| 11.11%
    vgdisplay4|========| 8.89%
    cfdisk3|======| 6.67%
    lvcreate3|======| 6.67%
    Personalities2|====| 4.44%
    vim2|====| 4.44%
    pvdisplay2|====| 4.44%
    partprobe2|====| 4.44%
    whatch2|====| 4.44%
    491|==| 2.22%
    vgcreate1|==| 2.22%
    mount1|==| 2.22%
    vgre1|==| 2.22%
    pvcreate1|==| 2.22%
    lvdisplay1|==| 2.22%
    vgremove1|==| 2.22%
    pv1|==| 2.22%
    watch1|==| 2.22%
    cat1|==| 2.22%
    apt-get1|==| 2.22%
    lvre1|==| 2.22%
    lvremove1|==| 2.22%
    pvre1|==| 2.22%
    pvremove1|==| 2.22%
    ____
    *) Интервалы неактивности длительностью 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$