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

Содержание

Журнал

Вторник (01/20/09)

/dev/ttyp1
15:44:00
#ping -f 10.0.81.1
PING 10.0.81.1 (10.0.81.1) 56(84) bytes of data.
15:45:42
#ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=51 time=47.4 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=51 time=48.5 ms
--- ya.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 47.410/47.976/48.542/0.566 ms

Среда (01/21/09)

10:42:24
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:55:00:02
          inet addr:192.168.99.5  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe55:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3022468 errors:0 dropped:0 overruns:0 frame:0
          TX packets:990079 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:313461812 (298.9 MiB)  TX bytes:125147371 (119.3 MiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1005 (1005.0 b)  TX bytes:1005 (1005.0 b)
10:42:27
#hostname
debian2
10:44:39
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:55:00:02
          inet addr:192.168.99.5  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe55:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3026331 errors:0 dropped:0 overruns:0 frame:0
          TX packets:991891 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:313778505 (299.2 MiB)  TX bytes:125523958 (119.7 MiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1005 (1005.0 b)  TX bytes:1005 (1005.0 b)
10:44:45
#ls
1234
прошло 12 минут
10:57:25
#ls -la
итого 43
drwxr-xr-x  7 root root  400 2009-01-20 14:46 .
drwxr-xr-x 23 root root  544 2008-07-04 20:13 ..
-rw-r--r--  1 root root    0 2008-03-12 12:05 1234
-rw-------  1 root root 4741 2009-01-20 10:00 .bash_history
-rw-r--r--  1 root root   19 2008-03-10 15:10 .bash_profile
-rw-r--r--  1 root root  444 2008-03-12 10:43 .bashrc
drwx------  2 root root   48 2008-03-13 13:12 .gconf
drwx------  2 root root   80 2008-03-13 13:17 .gconfd
-rw-r--r--  1 root root   52 2009-01-15 15:56 .l3rc
-rw-------  1 root root   99 2008-03-14 16:16 .lesshst
drwxr-xr-x  2 root root 2008 2009-01-21 10:46 .lilalo
drwx------  3 root root   72 2008-03-13 13:12 .mozilla
-rw-r--r--  1 root root  110 2004-11-10 18:10 .profile
drwx------  2 root root  112 2009-01-20 16:29 .ssh
-rw-------  1 root root 5397 2009-01-20 14:46 .viminfo
-rw-r--r--  1 root root   51 2008-03-11 17:53 .vimrc
10:57:28
#~
bash: /root: is a directory
10:57:37
#ls -l
итого 0
-rw-r--r-- 1 root root 0 2008-03-12 12:05 1234
10:58:04
#cd /names
bash: cd: /names: No such file or directory
10:58:11
#find -name names

10:58:25
#find -name name*

10:58:41
#find /
/dev/.udev/names
/usr/bin/namei
/usr/lib/dpkg/methods/apt/names
/usr/lib/dpkg/methods/disk/names
/usr/lib/dpkg/methods/floppy/names
/usr/src/linux-2.6.24.3/fs/efs/namei.c
/usr/src/linux-2.6.24.3/fs/jfs/namei.c
/usr/src/linux-2.6.24.3/fs/nfs/namespace.c
/usr/src/linux-2.6.24.3/fs/udf/namei.c
/usr/src/linux-2.6.24.3/fs/ufs/namei.c
...
/usr/share/man/man8/nameif.8.gz
/usr/share/vim/vim70/syntax/named.vim
/usr/include/asm/namei.h
/usr/include/arpa/nameser_compat.h
/usr/include/arpa/nameser.h
/usr/include/linux/namei.h
/usr/include/linux/namespace.h
/usr/include/asm-x86_64/namei.h
/usr/include/asm-i486/namei.h
/sbin/nameif
10:58:58
#find / -name names
/dev/.udev/names
/usr/lib/dpkg/methods/apt/names
/usr/lib/dpkg/methods/disk/names
/usr/lib/dpkg/methods/floppy/names
10:59:04
#cd /usr/lib/dpkg/methods/apt/names
bash: cd: /usr/lib/dpkg/methods/apt/names: Not a directory
11:00:15
#cd /usr/lib/dpkg/methods/apt

11:00:25
#ls
desc.apt  install  names  setup  update
11:00:29
#ls -d
.
11:00:33
#ls --
desc.apt  install  names  setup  update
11:00:41
#~
bash: /root: is a directory
11:00:51
#pwd
/usr/lib/dpkg/methods/apt
11:00:56
#ls a*
ls: a*: No such file or directory
11:01:10
#cd /

11:01:22
#pwd
/
11:01:26
#cd /var

11:01:31
#?
bash: ?: command not found
11:01:32
#ls
backups  cache  lib  local  lock  log  mail  opt  run  spool  tmp
11:01:44
#cd tmp
[root@debian2:var]# tmp
bash: tmp: command not found
11:01:48
#ls

11:01:49
#la
bash: la: command not found
11:01:53
#dir

11:01:59
#mkdir names

11:02:09
#ls
names
11:02:11
#cd names

11:03:05
#touch a

11:03:09
#touch ab

11:03:12
#touch abc

11:03:14
#touch abcd

11:03:15
#touch abcdf

11:03:17
#touch abcde

11:03:23
#touch abcdef

11:03:25
#dir
a  ab  abc  abcd  abcde  abcdef  abcdf
11:03:27
#ls a*
a  ab  abc  abcd  abcde  abcdef  abcdf
11:03:38
#ls ab
ab  abc  abcd  abcde  abcdef  abcdf
11:03:43
#touch -
touch: invalid option -- b
Попробуйте `touch --help' для получения более подробного описания.
11:04:27
#touch -
touch: unrecognized option `--abcdef'
Попробуйте `touch --help' для получения более подробного описания.
11:04:32
#touch --
touch: пропущен операнд, задающий файл
Попробуйте `touch --help' для получения более подробного описания.
11:04:37
#touch --help
Использование: touch [КÐпа и модификации каждого файла до текущего времени
Аргументы, обязательные для длинных ключей, обязательны и для коротких.
  -a                     изменять только время доступа
  -c, --no-create        не создавать файлов
  -d, --date=STRING      проанализировать STRING и использовать вместо
                          текущего времени
  -f                     (игнорируется)
  -m                     изменять только время изменения
  -r, --reference=ФАЙÐекущего
  -t ВРЕМЯ               использовать [[ВВ]ГГ]ММДДччмм[.сс] вместо
                           текущего времени
  --time=СÐ
                                      СРccess, atime, use эквивалентно -a
                          СÐodify, mtime эквивалентно -m
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти
Заметьте, что ключи -d и -t воспринимают разные форматы даты и времени.
Если ФАЙввод.
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.
11:04:40
#mv a -a
mv: invalid option -- a
Попробуйте `mv --help' для получения более подробного описания.
11:05:20
#mv --help
Использование: mv [КÐ-T] ИСТОЧНИК НАЗНАЧЕНИЕ
       или:    mv [КÐv [КÐовывает SOURCE в DEST, или переносит SOURCE(ы) в DIRECTORY.
Аргументы, обязательные для длинных ключей, обязательны и для коротких.
      --backup[=КОНТРОевых файлов
  -b                           то же, что и --backup, но без аргумента
  -f, --force                  переписывать существующие файлы не спрашивая
  -i, --interactive            спрашивать перед тем как переписывать
      --strip-trailing-slashes удаляет все конечные косые черты из каждого
                               аргумента ИСТОЧНИК
  -S, --suffix=СУФФИКС         перекрывает обычный суффикс для резервных копий
...
переменная окружения SIMPLE_BACKUP_SUFFIX или ключ --suffix. Способ контроля
версий может быть установлен при помощи ключа --backup или переменной
окружения VERSION_CONTROL. Допустимые значения:
  none, off       никогда не создавать резервных копий (даже если
                   указан ключ --backup)
  numbered, t     создавать нумерованные копии
  existing, nil   если существуют нумерованные копии, то создавать
                   нумерованные иначе создавать простые
  simple. never   всегда создавать простые копии
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.
11:05:27
#mv ./a ./

11:06:32
#dir
-a  ab  abc  abcd  abcde  abcdef  abcdf
11:06:47
#ls -- -*
-a
11:07:01
#find / -name n
/usr/src/linux-2.6.24.3/drivers/scsi/nsp32.h
/usr/src/linux-2.6.24.3/drivers/block/nbd.c
/usr/src/linux-2.6.24.3/drivers/input/gameport/ns558.c
/usr/src/linux-2.6.24.3/drivers/input/keyboard/newtonkbd.c
/usr/src/linux-2.6.24.3/drivers/media/dvb/frontends/nxt200x.c
/usr/src/linux-2.6.24.3/drivers/media/dvb/frontends/nxt200x.h
/usr/src/linux-2.6.24.3/drivers/media/dvb/frontends/nxt6000.c
/usr/src/linux-2.6.24.3/drivers/media/dvb/frontends/nxt6000.h
/usr/src/linux-2.6.24.3/drivers/media/dvb/frontends/nxt6000_priv.h
/usr/src/linux-2.6.24.3/drivers/media/dvb/dvb-usb/nova-t-usb2.c
...
/usr/share/man/ru/man8/nologin.8.gz
/usr/share/man/ru/man8/newusers.8.gz
/usr/share/man/sv/man1/newgrp.1.gz
/usr/share/man/sv/man8/nologin.8.gz
/usr/share/man/sv/man8/newusers.8.gz
/usr/share/man/man1/nano.1.gz
/usr/share/man/man1/nice.1.gz
/usr/share/man/man1/namei.1.gz
/usr/share/man/man1/nc.1.gz
/usr/share/man/man1/nawk.1.gz
11:08:52
#find / -name name
/dev/.udev/names
/var/tmp/names
/usr/bin/namei
/usr/lib/dpkg/methods/apt/names
/usr/lib/dpkg/methods/disk/names
/usr/lib/dpkg/methods/floppy/names
/usr/src/linux-2.6.24.3/fs/efs/namei.c
/usr/src/linux-2.6.24.3/fs/jfs/namei.c
/usr/src/linux-2.6.24.3/fs/nfs/namespace.c
/usr/src/linux-2.6.24.3/fs/udf/namei.c
...
/usr/share/man/man8/nameif.8.gz
/usr/share/vim/vim70/syntax/named.vim
/usr/include/asm/namei.h
/usr/include/arpa/nameser_compat.h
/usr/include/arpa/nameser.h
/usr/include/linux/namei.h
/usr/include/linux/namespace.h
/usr/include/asm-x86_64/namei.h
/usr/include/asm-i486/namei.h
/sbin/nameif
11:09:10
#find / -name name

11:09:28
#find / -name name?
/dev/.udev/names
/var/tmp/names
/usr/bin/namei
/usr/lib/dpkg/methods/apt/names
/usr/lib/dpkg/methods/disk/names
/usr/lib/dpkg/methods/floppy/names
11:15:19
#ls-- -*
bash: ls--: command not found
11:15:30
#ls
-a
11:15:32
#ls -d -- -*
-a
11:17:12
#ls ./
./-a
11:19:23
#ls ./-*
./-a
11:19:39
#ls \
.  ..  -a  ab  abc  abcd  abcde  abcdef  abcdf
11:19:48
#ls '-'*
.  ..  -a  ab  abc  abcd  abcde  abcdef  abcdf
11:22:59
#ls '-*'
ls: invalid option -- *
Попробуйте `ls --help' для получения более подробного описания.
11:23:13
#ls "
ls: invalid option -- *
Попробуйте `ls --help' для получения более подробного описания.
11:23:28
#ls '-*'
ls: invalid option -- *
Попробуйте `ls --help' для получения более подробного описания.
11:24:33
#ls --
ls: unrecognized option `---*'
Попробуйте `ls --help' для получения более подробного описания.
11:24:38
#ls --
ls: -*: No such file or directory
11:24:43
#ls '-*'
ls: invalid option -- *
Попробуйте `ls --help' для получения более подробного описания.
11:24:50
#ls \-*
.  ..  -a  ab  abc  abcd  abcde  abcdef  abcdf

Статистика

Время первой команды журнала15:44:00 2009- 1-20
Время последней команды журнала11:24:50 2009- 1-21
Количество командных строк в журнале71
Процент команд с ненулевым кодом завершения, %22.54
Процент синтаксически неверно набранных команд, % 4.23
Суммарное время работы с терминалом *, час 0.74
Количество командных строк в единицу времени, команда/мин 1.61
Частота использования команд
ls26|====================================| 36.62%
touch11|===============| 15.49%
find8|===========| 11.27%
cd7|=========| 9.86%
dir3|====| 4.23%
mv3|====| 4.23%
ifconfig2|==| 2.82%
ping2|==| 2.82%
pwd2|==| 2.82%
~2|==| 2.82%
mkdir1|=| 1.41%
la1|=| 1.41%
?1|=| 1.41%
hostname1|=| 1.41%
ls--1|=| 1.41%
____
*) Интервалы неактивности длительностью 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$