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

Содержание

Журнал

Суббота (05/30/09)

/dev/pts/1
12:07:20
#fdisk -s /dev/sda
244198584
12:07:41
#fdisk -s /dev/sda1
9767488
12:07:45
#blkid /dev/sda1
/dev/sda1: UUID="baca012a-dd60-4cbb-8c70-07b897f17ef1" SEC_TYPE="ext2" TYPE="ext3"
12:08:03
#vol_id /dev/sda1
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=baca012a-dd60-4cbb-8c70-07b897f17ef1
ID_FS_UUID_ENC=baca012a-dd60-4cbb-8c70-07b897f17ef1
ID_FS_LABEL=
ID_FS_LABEL_ENC=
12:08:49
#vol_id /dev/sda
unknown or non-unique volume type (--probe-all lists possibly conflicting types)
12:08:50
#vol_id /dev/sda5
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=376210b8-ae55-4425-9ca8-cf4425755b75
ID_FS_UUID_ENC=376210b8-ae55-4425-9ca8-cf4425755b75
ID_FS_LABEL=
ID_FS_LABEL_ENC=
12:08:55
#tune2fs /dev/sda1
tune2fs 1.41.5 (23-Apr-2009)
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]
        [-i interval[d|m|w]] [-j] [-J journal_options] [-l]
        [-m reserved_blocks_percent] [-o [^]mount_options[,...]]
        [-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]
        [-M last_mounted_dir] [-O [^]feature[,...]]
        [-E extended-option[,...]] [-T last_check_time] [-U UUID]
        [ -I new_inode_size ] device
12:10:04
#apt-get uuid-runtime
E: Неверная операция uuid-runtime
12:11:50
#e2label /dev/sda5

12:14:08
#e2label /dev/sda5 MEGAMETKA

12:14:30
#mount -L MEGAMETKA
mount: no such partition found
12:14:51
#fdisk -l /dev/
last_lba(): I don't know how to handle files with mode 40755
12:15:06
#fdisk -l /dev
last_lba(): I don't know how to handle files with mode 40755
12:15:09
#fdisk -l
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaded2131
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1216     9767488+  83  Linux
/dev/sda2            1217        3648    19535040   83  Linux
/dev/sda3            3649        6080    19535040    5  Extended
/dev/sda5            3649        6080    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: 0x523285e5
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2432    19535008+  83  Linux
12:15:11
#e2label /dev/sda1 M1

12:15:29
#mount -L M1
mount: no such partition found
12:15:34
#mount /dev/sda1 /mnt/

12:16:36
#ls -l /mn
ls: невозможно получить доступ к /mn: Нет такого файла или каталога
12:16:52
#ls -l /mnt/
итого 16
drwx------ 2 root root 16384 Май 30 12:06 lost+found
12:16:55
#df
Файловая система     1K-блоков      Исп  Доступно  Исп% смонтирована на
tmpfs                  1553824         0   1553824   0% /lib/init/rw
udev                     10240       120     10120   2% /dev
tmpfs                  1553824         4   1553820   1% /dev/shm
rootfs                19228276   1754660  16496868  10% /
/dev/sda1              9614116    152684   8973060   2% /mnt
12:17:01
#cd /mnt/

12:17:21
#umount /mnt
umount: /mnt: device is busy
umount: /mnt: device is busy
12:17:31
#lsof +D /mnt
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    1630 root  cwd    DIR    8,1     4096    2 /mnt
lsof    8484 root  cwd    DIR    8,1     4096    2 /mnt
lsof    8485 root  cwd    DIR    8,1     4096    2 /mnt
12:17:42
#fuser /mnt/
/mnt/:                1630c
12:17:54
#ps aux |grep 1630
root      1630  0.0  0.0   7256  3084 pts/2    Rs   11:39   0:00 bash
root      8806  0.0  0.0   4908   756 pts/2    R+   12:18   0:00 grep 1630
12:18:52
#cd ..

12:19:10
#ps aux |grep 1630
root      1630  0.0  0.0   7256  3084 pts/2    Rs   11:39   0:00 bash
root      8836  0.0  0.0   4908   760 pts/2    R+   12:19   0:00 grep 1630
12:19:13
#umount /mnt

12:19:23
#echo fuser -k
fuser -k
12:19:38
#mount /dev/sda1 /mnt/

12:20:58
#umount /mnt

12:21:09
#mount /dev/sda1 /mnt/

12:21:31
#lsof +D /mnt/
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    7710 user  cwd    DIR    8,1     4096    2 /mnt
12:21:48
#umount /mnt

12:22:19
#vi /etc/fstab
--- /tmp/l3-saved-1630.26810.16922	2009-05-30 12:22:29.000000000 +0300
+++ /etc/fstab	2009-05-30 12:24:06.000000000 +0300
@@ -1 +1,4 @@
 # UNCONFIGURED FSTAB FOR BASE SYSTEM
+#LABEL=DATA /data /ext3 defaults 1 0
+/dev/sda1 /data /ext3 defaults 1 0
+
12:27:29
#=DATA /data /ext3 defaults 1 0
fdformat  fdisk     fdp
12:27:29
#fdisk -s /dev/sda1
9767488
12:27:42
#fdisk -s /dev/sda5
19535008
12:27:49
#fdisk -s /dev/sda
244198584
12:27:50
#echo mount -a
mount -a
12:31:59
#vi /etc/fstab
--- /tmp/l3-saved-1630.29536.15381	2009-05-30 12:32:34.000000000 +0300
+++ /etc/fstab	2009-05-30 12:33:15.000000000 +0300
@@ -1,4 +1,4 @@
 # UNCONFIGURED FSTAB FOR BASE SYSTEM
 #LABEL=DATA /data /ext3 defaults 1 0
-/dev/sda1 /data /ext3 defaults 1 0
+/dev/sda1 /mnt /ext3 defaults 1 0
 
12:33:15
#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)
12:33:19
#mount -a
mount: unknown filesystem type '/ext3'
12:33:28
#vi /etc/fstab
--- /tmp/l3-saved-1630.19950.18133	2009-05-30 12:33:37.000000000 +0300
+++ /etc/fstab	2009-05-30 12:33:51.000000000 +0300
@@ -1,4 +1,4 @@
 # UNCONFIGURED FSTAB FOR BASE SYSTEM
 #LABEL=DATA /data /ext3 defaults 1 0
-/dev/sda1 /mnt /ext3 defaults 1 0
+/dev/sda5  /mnt /ext3 defaults 1 0
 
12:33:51
#mount -a
mount: unknown filesystem type '/ext3'
12:33:53
#mkfs.ext3 /dev/sda1
mke2fs 1.41.5 (23-Apr-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
610800 inodes, 2441872 blocks
122093 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2503999488
75 block groups
32768 blocks per group, 32768 fragments per group
8144 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
12:36:04
#mount -a
mount: unknown filesystem type '/ext3'
12:36:06
#tail /var/lo
local/ lock/  log/
12:36:06
#tail /var/log/messages
May 30 11:59:06 linux6 kernel: [ 9527.415969]  sda: sda1 sda2 sda3 < sda5 >
May 30 12:16:36 linux6 kernel: [10577.573989] kjournald starting.  Commit interval 5 seconds
May 30 12:16:36 linux6 kernel: [10577.576307] EXT3 FS on sda1, internal journal
May 30 12:16:36 linux6 kernel: [10577.576313] EXT3-fs: mounted filesystem with ordered data mode.
May 30 12:20:58 linux6 kernel: [10839.305073] kjournald starting.  Commit interval 5 seconds
May 30 12:20:58 linux6 kernel: [10839.308295] EXT3 FS on sda1, internal journal
May 30 12:20:58 linux6 kernel: [10839.308300] EXT3-fs: mounted filesystem with ordered data mode.
May 30 12:21:20 linux6 kernel: [10861.288867] kjournald starting.  Commit interval 5 seconds
May 30 12:21:20 linux6 kernel: [10861.292307] EXT3 FS on sda1, internal journal
May 30 12:21:20 linux6 kernel: [10861.292312] EXT3-fs: mounted filesystem with ordered data mode.
12:37:40
#tail /var/log/messages
May 30 12:37:50 linux6 kernel: [11851.425828] usb 2-5: Product: USB2.0 Card Reader
May 30 12:37:50 linux6 kernel: [11851.425831] usb 2-5: Manufacturer: Generic       ,   .
May 30 12:37:50 linux6 kernel: [11851.425833] usb 2-5: SerialNumber: 12345678901234567890
May 30 12:37:50 linux6 kernel: [11851.425928] usb 2-5: configuration #1 chosen from 1 choice
May 30 12:37:50 linux6 kernel: [11851.484888] Initializing USB Mass Storage driver...
May 30 12:37:50 linux6 kernel: [11851.484988] scsi4 : SCSI emulation for USB Mass Storage devices
May 30 12:37:50 linux6 kernel: [11851.485066] usbcore: registered new interface driver usb-storage
May 30 12:37:50 linux6 kernel: [11851.485070] USB Mass Storage support registered.
May 30 12:37:55 linux6 kernel: [11856.485268] scsi 4:0:0:0: Direct-Access     Generic                   6000 PQ: 0 ANSI: 0 CCS
May 30 12:37:55 linux6 kernel: [11856.569515] sd 4:0:0:0: [sdc] Attached SCSI removable disk
12:37:58
#tail /var/log/messages |less
12:38:36
#tail -f /var/log/messages
May 30 12:37:50 linux6 kernel: [11851.425828] usb 2-5: Product: USB2.0 Card Reader
May 30 12:37:50 linux6 kernel: [11851.425831] usb 2-5: Manufacturer: Generic       ,   .
May 30 12:37:50 linux6 kernel: [11851.425833] usb 2-5: SerialNumber: 12345678901234567890
May 30 12:37:50 linux6 kernel: [11851.425928] usb 2-5: configuration #1 chosen from 1 choice
May 30 12:37:50 linux6 kernel: [11851.484888] Initializing USB Mass Storage driver...
May 30 12:37:50 linux6 kernel: [11851.484988] scsi4 : SCSI emulation for USB Mass Storage devices
May 30 12:37:50 linux6 kernel: [11851.485066] usbcore: registered new interface driver usb-storage
May 30 12:37:50 linux6 kernel: [11851.485070] USB Mass Storage support registered.
May 30 12:37:55 linux6 kernel: [11856.485268] scsi 4:0:0:0: Direct-Access     Generic                   6000 PQ: 0 ANSI: 0 CCS
May 30 12:37:55 linux6 kernel: [11856.569515] sd 4:0:0:0: [sdc] Attached SCSI removable disk
...
May 30 12:45:02 linux6 kernel: [12283.109310] scsi 8:0:0:0: Direct-Access     JetFlash Transcend 16GB   8.07 PQ: 0 ANSI: 2
May 30 12:45:02 linux6 kernel: [12283.111043] sd 8:0:0:0: [sdc] 31375360 512-byte hardware sectors: (16.0 GB/14.9 GiB)
May 30 12:45:02 linux6 kernel: [12283.111539] sd 8:0:0:0: [sdc] Write Protect is off
May 30 12:45:02 linux6 kernel: [12283.135941] sd 8:0:0:0: [sdc] 31375360 512-byte hardware sectors: (16.0 GB/14.9 GiB)
May 30 12:45:02 linux6 kernel: [12283.136545] sd 8:0:0:0: [sdc] Write Protect is off
May 30 12:45:02 linux6 kernel: [12283.136557]  sdc: sdc1
May 30 12:45:02 linux6 kernel: [12283.203699] sd 8:0:0:0: [sdc] Attached SCSI removable disk
May 30 12:53:52 linux6 kernel: [12813.016636] usb 2-5: USB disconnect, address 7
q
^C
прошло 16 минут
12:55:27
#tail -f /var/log/messages
May 30 12:44:57 linux6 kernel: [12278.106584] usb 2-5: configuration #1 chosen from 1 choice
May 30 12:44:57 linux6 kernel: [12278.108536] scsi8 : SCSI emulation for USB Mass Storage devices
May 30 12:45:02 linux6 kernel: [12283.109310] scsi 8:0:0:0: Direct-Access     JetFlash Transcend 16GB   8.07 PQ: 0 ANSI: 2
May 30 12:45:02 linux6 kernel: [12283.111043] sd 8:0:0:0: [sdc] 31375360 512-byte hardware sectors: (16.0 GB/14.9 GiB)
May 30 12:45:02 linux6 kernel: [12283.111539] sd 8:0:0:0: [sdc] Write Protect is off
May 30 12:45:02 linux6 kernel: [12283.135941] sd 8:0:0:0: [sdc] 31375360 512-byte hardware sectors: (16.0 GB/14.9 GiB)
May 30 12:45:02 linux6 kernel: [12283.136545] sd 8:0:0:0: [sdc] Write Protect is off
May 30 12:45:02 linux6 kernel: [12283.136557]  sdc: sdc1
May 30 12:45:02 linux6 kernel: [12283.203699] sd 8:0:0:0: [sdc] Attached SCSI removable disk
May 30 12:53:52 linux6 kernel: [12813.016636] usb 2-5: USB disconnect, address 7
^C
прошла 71 минута
14:06:27
#dd if=/dev/zero of=hardisk.img count=200 bs=1024
200+0 записей считано
200+0 записей написано
 скопировано 204800 байт (205 kB), 0,00933134 c, 21,9 MB/c
14:06:34
#ls -l /
итого 316
drwxr-xr-x   3 root root   4096 Май 26 10:57 a
drwxr-xr-x   2 root root   4096 Май 26 10:29 aa
drwxr-xr-x   2 root root   4096 Май 26 10:29 ab
drwxr-xr-x   2 root root   4096 Май 26 10:29 ac
drwxr-xr-x   2 root root   4096 Май 30 11:05 bin
drwxr-xr-x   3 root root   4096 Окт 25  2008 boot
drwxr-xr-x  15 root root   3600 Май 30 12:53 dev
drwxr-xr-x  89 root root   4096 Май 30 12:52 etc
drwxr-xr-x   2 root root   4096 Май 30 12:41 flash
...
lrwxrwxrwx   1 root root     11 Окт 24  2008 sdb1 -> /media/sdb1
lrwxrwxrwx   1 root root     11 Окт 24  2008 sdb2 -> /media/sdb2
lrwxrwxrwx   1 root root     11 Окт 24  2008 sdb3 -> /media/sdb3
drwxr-xr-x   2 root root   4096 Фев 21 16:55 selinux
drwxr-xr-x   2 root root   4096 Май 24 13:15 srv
drwxr-xr-x  12 root root      0 Май 30 09:20 sys
drwxrwxrwt   7 root root   4096 Май 30 12:50 tmp
drwxr-xr-x  11 root root   4096 Май 24 13:22 usr
drwxr-xr-x  13 root root   4096 Май 24 13:15 var
lrwxrwxrwx   1 root root     25 Окт 24  2008 vmlinuz -> boot/vmlinuz-2.6.29-2-686
14:06:45
#dd if=/dev/zero of=hardisk.img count=200 bs=1024k
200+0 записей считано
200+0 записей написано
 скопировано 209715200 байт (210 MB), 2,711 c, 77,4 MB/c
14:07:41
#date
Суб Май 30 14:08:38 EEST 2009
14:08:38
#ls -l / |rgrep img
-rw-r--r--   1 root root 209715200 Май 30 14:07 hardisk.img
lrwxrwxrwx   1 root root        28 Окт 24  2008 initrd.img -> boot/initrd.img-2.6.29-2-686
14:09:31
#modprobe loop

14:17:54
#ps aux |grep loop
root     32219  0.0  0.0   1772   168 pts/2    R+   14:18   0:00 grep loop

Статистика

Время первой команды журнала12:07:20 2009- 5-30
Время последней команды журнала14:17:54 2009- 5-30
Количество командных строк в журнале60
Процент команд с ненулевым кодом завершения, %20.00
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.99
Количество командных строк в единицу времени, команда/мин 1.01
Частота использования команд
mount9|=============| 13.85%
fdisk8|============| 12.31%
tail6|=========| 9.23%
umount4|======| 6.15%
ls4|======| 6.15%
ps3|====| 4.62%
vol_id3|====| 4.62%
e2label3|====| 4.62%
vi3|====| 4.62%
grep3|====| 4.62%
dd2|===| 3.08%
cd2|===| 3.08%
echo2|===| 3.08%
lsof2|===| 3.08%
fuser1|=| 1.54%
tune2fs1|=| 1.54%
mkfs.ext31|=| 1.54%
rgrep1|=| 1.54%
=DATA1|=| 1.54%
less1|=| 1.54%
modprobe1|=| 1.54%
df1|=| 1.54%
apt-get1|=| 1.54%
blkid1|=| 1.54%
date1|=| 1.54%
____
*) Интервалы неактивности длительностью 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$