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

Содержание

Журнал

Воскресенье (03/18/07)

/dev/tty1
15:26:52
#passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
15:27:04
#passwd
Enter new UNIX password:
Retype new UNIX password:
No password supplied
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
15:27:42
#patch -p0 < icap-2_6.patch
patching file squid/configure.in
Hunk #1 succeeded at 541 (offset 11 lines).
Hunk #2 FAILED at 2370.
Hunk #3 succeeded at 2486 with fuzz 1 (offset -60 lines).
1 out of 3 hunks FAILED -- saving rejects to file squid/configure.in.rej
can't find file to patch at input line 57
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: squid/errors/list
...
Hunk #6 succeeded at 1371 (offset -1 lines).
Hunk #7 FAILED at 1386.
Hunk #8 succeeded at 2051 (offset -7 lines).
Hunk #9 succeeded at 2161 (offset -7 lines).
2 out of 9 hunks FAILED -- saving rejects to file squid/src/structs.h.rej
patching file squid/src/typedefs.h
patching file squid/src/url.c
Hunk #1 succeeded at 103 (offset -3 lines).
Hunk #2 succeeded at 220 (offset -3 lines).
Hunk #3 succeeded at 247 (offset -3 lines).
15:28:29
#cd squid

15:28:36
#./bootstrap.sh
automake :
autoconfg:
Bootstrapping
Autotool bootstrapping complete.
15:28:58
#vim debian/rules
15:32:16
#nohup dpkg-buildpackage -rfakeroot -uc -b &
[1] 26960
15:33:05
#nohup: appending output to `nohup.out'

15:33:06
#ping mail.ru

15:33:13
#tail -f nohup.out
        gcc -DHAVE_CONFIG_H -I. -I../../include -I. -I../../include -I../../include -I../../src    -m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -O2 -D_REENTRANT -MT ufs/store_dir_ufs.o -MD -MP -MF $depbase.Tpo -c -o ufs/store_dir_ufs.o ufs/store_dir_ufs.c &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo ufs/store_io_ufs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        gcc -DHAVE_CONFIG_H -I. -I../../include -I. -I../../include -I../../include -I../../src    -m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -O2 -D_REENTRANT -MT ufs/store_io_ufs.o -MD -MP -MF $depbase.Tpo -c -o ufs/store_io_ufs.o ufs/store_io_ufs.c &&\
        mv -f $depbase.Tpo $depbase.Po
rm -f libufs.a
/usr/bin/ar cru libufs.a ufs/store_dir_ufs.o ufs/store_io_ufs.o
ranlib libufs.a
depbase=`echo aufs/aiops.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        gcc -DHAVE_CONFIG_H -I. -I../../include -I. -I../../include -I../../include -I../../src    -m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -O2 -D_REENTRANT -MT aufs/aiops.o -MD -MP -MF $depbase.Tpo -c -o aufs/aiops.o aufs/aiops.c &&\
...
make[4]: *** [client_side.o] Error 1
make[4]: Leaving directory `/root/squid/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/squid/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/squid/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/squid'
make: *** [build] Error 2
[1]+  Exit 2                  nohup dpkg-buildpackage -rfakeroot -uc -b
NI
15:36:23
#date
Sun Mar 18 13:49:21 UTC 2007
прошло 12 минут
15:49:21
#ping mail.ru

15:49:43
#pkill -9 l3-agent

15:50:01
#l3-agent
Removing stale pidfile
15:50:05
#date
Sun Mar 18 13:50:09 UTC 2007
15:50:09
#tail nohup.out
client_side.c:5093: error: 'clientHttpRequest' has no member named 'icap_reqmod'
make[4]: *** [client_side.o] Error 1
make[4]: Leaving directory `/root/squid/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/squid/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/squid/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/squid'
make: *** [build] Error 2
15:50:49
#tail nohup.out -20
tail: invalid option -- 2
Try `tail --help' for more information.
15:50:54
#tail -20 nohup.out
client_side.c: In function 'clientProcessRequest':
client_side.c:3382: warning: implicit declaration of function 'clientIcapReqMod'
client_side.c: At top level:
client_side.c:5056: error: static declaration of 'clientIcapReqMod' follows non-static declaration
client_side.c:3382: error: previous implicit declaration of 'clientIcapReqMod' was here
client_side.c: In function 'clientIcapReqMod':
client_side.c:5071: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:5078: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:5080: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:5082: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:5093: error: 'clientHttpRequest' has no member named 'icap_reqmod'
make[4]: *** [client_side.o] Error 1
make[4]: Leaving directory `/root/squid/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/squid/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/squid/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/squid'
make: *** [build] Error 2
15:51:01
#tail -25 nohup.out
client_side.c:1382: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:1383: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:1384: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:1386: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c:1387: error: 'clientHttpRequest' has no member named 'icap_reqmod'
client_side.c: In function 'clientProcessRequest':
client_side.c:3382: warning: implicit declaration of function 'clientIcapReqMod'
client_side.c: At top level:
client_side.c:5056: error: static declaration of 'clientIcapReqMod' follows non-static declaration
client_side.c:3382: error: previous implicit declaration of 'clientIcapReqMod' was here
...
client_side.c:5093: error: 'clientHttpRequest' has no member named 'icap_reqmod'
make[4]: *** [client_side.o] Error 1
make[4]: Leaving directory `/root/squid/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/squid/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/squid/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/squid'
make: *** [build] Error 2
15:51:09
#tail -25 nohup.out | less
15:51:16
#tail -40 nohup.out | less
15:51:27
#halt

Статистика

Время первой команды журнала15:26:52 2007- 3-18
Время последней команды журнала15:51:27 2007- 3-18
Количество командных строк в журнале22
Процент команд с ненулевым кодом завершения, % 9.09
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.41
Количество командных строк в единицу времени, команда/мин 0.89
Частота использования команд
tail7|==========================| 26.92%
less2|=======| 7.69%
ping2|=======| 7.69%
passwd2|=======| 7.69%
date2|=======| 7.69%
patch1|===| 3.85%
icap-2_6.patch1|===| 3.85%
bootstrap.sh1|===| 3.85%
l3-agent1|===| 3.85%
halt1|===| 3.85%
#^1|===| 3.85%
nohup1|===| 3.85%
pkill1|===| 3.85%
vim1|===| 3.85%
cd1|===| 3.85%
nohup:1|===| 3.85%
____
*) Интервалы неактивности длительностью 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$