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

Содержание

Журнал

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

/dev/pts/2
14:44:10
#lsmod|loop
bash: loop: команда не найдена
14:44:19
#lsmod | loop
bash: loop: команда не найдена
14:44:44
#fdisk /dev/lo
log    loop0  loop1  loop2  loop3  loop4  loop5  loop6  loop7
14:44:44
#fdisk /dev/loop0
You must set cylinders.
You can do this from the extra functions menu.
Command (m for help): l
 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot
 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris
 2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data
...
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c  Hidden W95 FAT3 75  PC/IX
Command (m for help): q
14:45:12
#fdisk -l /dev/loop0
You must set cylinders.
You can do this from the extra functions menu.
Disk /dev/loop0: 0 MB, 204800 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
      Device Boot      Start         End      Blocks   Id  System
14:45:16
#cfdisk
14:45:52
#cfdisk /dev/loop0
14:46:41
#losetup -a
/dev/loop0: [0801]:928708 (harddisk.img)
14:46:47
#losetup --help
Usage:
 losetup loop_device                                  # give info
 losetup -a | --all                                   # list all used
 losetup -d | --detach loop_device                    # delete
 losetup -f | --find                                  # find unused
 losetup [ options ] {-f|--find|loop_device} file     # setup
Options:
 -e | --encryption <type> enable data encryption with specified <name/num>
 -h | --help              this help
 -o | --offset <num>      start at offset <num> into file
 -p | --pass-fd <num>     read passphrase from file descriptor <num>
 -r | --read-only         setup read-only loop device
 -s | --show              print device name (with -f <file>)
 -N | --nohashpass        Do not hash the given password (Debian hashes)
 -k | --keybits <num>     specify number of bits in the hashed key given
                          to the cipher.  Some ciphers support several key
                          sizes and might be more efficient with a smaller
                          key size.  Key sizes < 128 are generally not
                          recommended
 -v | --verbose           verbose mode
14:47:04
#losetup -d
Usage:
 losetup loop_device                                  # give info
 losetup -a | --all                                   # list all used
 losetup -d | --detach loop_device                    # delete
 losetup -f | --find                                  # find unused
 losetup [ options ] {-f|--find|loop_device} file     # setup
Options:
 -e | --encryption <type> enable data encryption with specified <name/num>
 -h | --help              this help
 -o | --offset <num>      start at offset <num> into file
 -p | --pass-fd <num>     read passphrase from file descriptor <num>
 -r | --read-only         setup read-only loop device
 -s | --show              print device name (with -f <file>)
 -N | --nohashpass        Do not hash the given password (Debian hashes)
 -k | --keybits <num>     specify number of bits in the hashed key given
                          to the cipher.  Some ciphers support several key
                          sizes and might be more efficient with a smaller
                          key size.  Key sizes < 128 are generally not
                          recommended
 -v | --verbose           verbose mode
14:47:30
#losetup -a
/dev/loop0: [0801]:928708 (harddisk.img)
14:47:37
#losetup -d /dev/loop0

14:47:48
#losetup -a

14:47:50
#losetup /dev/loop0 harddisk.img

14:48:16
#fdisk -l /dev/loop0
Disk /dev/loop0: 209 MB, 209715200 bytes
255 heads, 63 sectors/track, 25 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1               1          25      200812   83  Linux
14:49:10
#mount /dev/loop
loop0  loop1  loop2  loop3  loop4  loop5  loop6  loop7
14:49:10
#mount /dev/loop0 /mnt
mount: you must specify the filesystem type
14:50:12
#ls -l /dev/mapper/
итого 0
crw-rw---- 1 root root 10, 60 Май 30 14:25 control
14:51:43
#modprobe dm-mod

14:51:57
#kpartx -a /dev/loop0

14:52:15
#mkfs.ext3 /dev/
Display all 192 possibilities? (y or n)
14:52:15
#mkfs.ext3 /dev/mapper/
control  loop0p1
14:52:15
#mkfs.ext3 /dev/mapper/loop0p1
mke2fs 1.41.5 (23-Apr-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
50400 inodes, 200812 blocks
10040 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2016 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
14:52:56
#mount /dev/mapper/loop0p1 /mnt

14:53:14
#apt-get install grub
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия grub.
Следующие пакеты устанавливались автоматически и больше не требуются:
  portmap
Для их удаления используйте 'apt-get autoremove'.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
14:58:27
#grub-install --no-floopy --root-directory=/mnt /dev/loop0
Unrecognized option `--no-floopy'
Usage: grub-install [OPTION] install_device
Install GRUB on your drive.
  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --root-directory=DIR    install GRUB images under the directory DIR
                          instead of the root directory
  --grub-shell=FILE       use FILE as the grub shell
  --no-floppy             do not probe any floppy drive
  --force-lba             force GRUB to use LBA mode even for a buggy
                          BIOS
  --recheck               probe a device map even if it already exists
INSTALL_DEVICE can be a GRUB device name or a system device filename.
grub-install copies GRUB images into the DIR/boot directory specfied by
--root-directory, and uses the grub shell to install grub into the boot
sector.
Report bugs to <bug-grub@gnu.org>.
14:58:40
#grub
Probing devices to guess BIOS drives. This may take a long time.
15:03:41
#mkdir -p /mnt/boot/grub

15:06:07
#ln -s /dev/loop0 /dev/mapper/loop0p

15:06:30
#ls -l /mnt
итого 13
drwxr-xr-x 3 root root  1024 Май 30 15:04 boot
drwx------ 2 root root 12288 Май 30 14:52 lost+found
15:07:03
#ls -l /mnt/boot/grub/
итого 314
-rw-r--r-- 1 root root     30 Май 30 15:06 device.map
-rw-r--r-- 1 root root   8704 Май 30 15:04 e2fs_stage1_5
-rw-r--r-- 1 root root   8544 Май 30 15:04 fat_stage1_5
-rw-r--r-- 1 root root   9568 Май 30 15:04 jfs_stage1_5
-rw-r--r-- 1 root root   7904 Май 30 15:04 minix_stage1_5
-rw-r--r-- 1 root root  10720 Май 30 15:04 reiserfs_stage1_5
-rw-r--r-- 1 root root    512 Май 30 15:04 stage1
-rw-r--r-- 1 root root 128616 Май 30 15:04 stage2
-rw-r--r-- 1 root root 128616 Май 30 15:04 stage2_eltorito
-rw-r--r-- 1 root root  10280 Май 30 15:04 xfs_stage1_5
15:07:13
#grub
Probing devices to guess BIOS drives. This may take a long time.
15:09:23
#apt-get install q
Display all 182 possibilities? (y or n)
15:09:23
#apt-get install qu
quack-el               quantumespresso        queuegraph             quick-reference-it     quilt                  quodlibet
quagga                 quark                  quick-arrays           quick-reference-ja     quilt-el               quodlibet-ext
quagga-doc             quarry                 quicklist              quick-reference-pl     quinn-diff             quodlibet-plugins
quaneko                quassel                quick-lounge-applet    quick-reference-pt-br  quintuple-agent        quota
quanta                 quassel-client         quickml                quick-reference-zh-cn  quiteinsane            quotatool
quantlib-examples      quassel-core           quickplot              quick-reference-zh-tw  quixote                qutecom
quantlib-python        quassel-data           quick-reference-de     quicksynergy           quixote1               qutecom-data
quantlib-refman-html   qucs                   quick-reference-es     quicktime-utils        quixote1-doc           qutecom-dbg
quantlib-ruby          quelcom                quick-reference-fr     quicktime-x11utils     quixote-doc            qutemol
15:09:23
#apt-get install qem
qemacs         qemacs-nox     qemu           qemubuilder    qemuctl        qemulator      qemu-launcher
15:09:23
#apt-get install qemu
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  portmap
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
  bochsbios esound-clients esound-common libasyncns0 libaudiofile0 libbluetooth3 libbrlapi0.5 libesd-alsa0 libpulse0 libsdl1.2debian
  libsdl1.2debian-alsa libsvga1 libvdemgmt0 libvdeplug2 openbios-ppc openbios-sparc openhackware sharutils vde2 vgabios
Предлагаемые пакеты:
...
Настраивается пакет libvdeplug2 (2.2.2-3) ...
Настраивается пакет openhackware (0.4.1-4) ...
Настраивается пакет libbrlapi0.5 (4.0-6) ...
Настраивается пакет vgabios (0.6c-1) ...
Настраивается пакет bochsbios (2.3.7+20090416-1) ...
Настраивается пакет openbios-ppc (1.0-3) ...
Настраивается пакет openbios-sparc (1.0-1) ...
Настраивается пакет qemu (0.10.5-1) ...
Настраивается пакет sharutils (1:4.6.3-1) ...
Настраивается пакет vde2 (2.2.2-3) ...
15:10:43
#qemu /dev/mapper/loop0p
loop0p   loop0p1
15:10:43
#qemu /dev/mapper/loop0p1
Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
commandline read: qemu
commandline read: /dev/mapper/loop0p1
   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.7 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2008  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2009-03-09 17:25)
(!) Direct/Util: opening '/dev/fb0' and '/dev/fb/0' failed
    --> No such file or directory
(!) DirectFB/FBDev: Error opening framebuffer device!
(!) DirectFB/FBDev: Use 'fbdev' option or set FRAMEBUFFER environment variable.
(!) DirectFB/Core: Could not initialize 'system_core' core!
    --> Initialization error!
Could not initialize SDL - exiting
15:11:06
#ls -l /dev/kqemu
ls: невозможно получить доступ к /dev/kqemu: Нет такого файла или каталога
15:12:07
#apt-cache search kqemu
kqemu-source - Source for the QEMU Accelerator module
kvm - Full virtualization on x86 hardware
kqemu-common - общие файлы для ускорителя QEMU
15:13:06
#apt-get install kq
kq            kq-data       kqemu-common  kqemu-source
15:13:06
#apt-get install kqemu-source
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  portmap
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
  debhelper dpatch fakeroot gettext gettext-base html2text intltool-debian libgomp1 libmail-sendmail-perl libsys-hostname-long-perl
  module-assistant patchutils po-debconf
Предлагаемые пакеты:
  dh-make cvs gettext-doc libmail-box-perl
НОВЫЕ пакеты, которые будут установлены:
  debhelper dpatch fakeroot gettext gettext-base html2text intltool-debian kqemu-source libgomp1 libmail-sendmail-perl libsys-hostname-long-perl
  module-assistant patchutils po-debconf
обновлено 0, установлено 14 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 4173kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 12,0MB.
Хотите продолжить [Д/н]? n
Аварийное завершение.
15:14:04
#quem /dev/loop0
bash: quem: команда не найдена
15:14:18
#qemu /dev/loop0
Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
commandline read: qemu
commandline read: /dev/loop0
   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.7 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2008  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2009-03-09 17:25)
(!) Direct/Util: opening '/dev/fb0' and '/dev/fb/0' failed
    --> No such file or directory
(!) DirectFB/FBDev: Error opening framebuffer device!
(!) DirectFB/FBDev: Use 'fbdev' option or set FRAMEBUFFER environment variable.
(!) DirectFB/Core: Could not initialize 'system_core' core!
    --> Initialization error!
Could not initialize SDL - exiting
15:14:27
#apt-get install kqemu-source
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  portmap
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
  debhelper dpatch fakeroot gettext gettext-base html2text intltool-debian libgomp1 libmail-sendmail-perl libsys-hostname-long-perl
  module-assistant patchutils po-debconf
Предлагаемые пакеты:
...
Настраивается пакет po-debconf (1.0.16) ...
Настраивается пакет debhelper (7.2.14) ...
Настраивается пакет dpatch (2.0.31) ...
Настраивается пакет fakeroot (1.12.2) ...
update-alternatives: используется `/usr/bin/fakeroot-sysv' для предоставления `/usr/bin/fakeroot' (fakeroot) в автоматический режим.
Настраивается пакет kqemu-source (1.4.0~pre1-2) ...
Настраивается пакет libsys-hostname-long-perl (1.4-2) ...
Настраивается пакет libmail-sendmail-perl (0.79.16-1) ...
Настраивается пакет module-assistant (0.11.1) ...
Настраивается пакет patchutils (0.3.1-2) ...
15:14:44
#modprobe kqemu
FATAL: Module kqemu not found.
15:15:13
#apt-get install rsy
rsync           rsynth          rsyslogd        rsyslog-gnutls  rsyslog-mysql   rsyslog-relp
rsyncrypto      rsyslog         rsyslog-doc     rsyslog-gssapi  rsyslog-pgsql
15:15:13
#apt-get install rsync
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  portmap
Для их удаления используйте 'apt-get autoremove'.
НОВЫЕ пакеты, которые будут установлены:
  rsync
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 333kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 614kB.
Получено:1 http://192.168.15.7 sid/main rsync 3.0.5-1 [333kB]
Получено 333kБ за 0s (4222kБ/c)
Выбор ранее не выбранного пакета rsync.
(Чтение базы данных ... на данный момент установлено 56132 файлов и каталогов.)
Распаковывается пакет rsync (из файла .../rsync_3.0.5-1_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет rsync (3.0.5-1) ...

Статистика

Время первой команды журнала14:44:10 2009- 5-30
Время последней команды журнала15:15:13 2009- 5-30
Количество командных строк в журнале48
Процент команд с ненулевым кодом завершения, %25.00
Процент синтаксически неверно набранных команд, % 4.17
Суммарное время работы с терминалом *, час 0.52
Количество командных строк в единицу времени, команда/мин 1.55
Частота использования команд
apt-get10|====================| 20.00%
losetup7|==============| 14.00%
fdisk4|========| 8.00%
ls4|========| 8.00%
qemu3|======| 6.00%
mkfs.ext33|======| 6.00%
mount3|======| 6.00%
cfdisk2|====| 4.00%
modprobe2|====| 4.00%
loop2|====| 4.00%
lsmod2|====| 4.00%
grub2|====| 4.00%
mkdir1|==| 2.00%
grub-install1|==| 2.00%
ln1|==| 2.00%
quem1|==| 2.00%
apt-cache1|==| 2.00%
kpartx1|==| 2.00%
____
*) Интервалы неактивности длительностью 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$