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

Содержание

Журнал

Среда (08/15/12)

/dev/pts/0
08:01:45
$./getch
e
Значение 1. Не символ EOF
08:01:49
$./getch
-1
Значение 1. Не символ EOF
08:01:59
$./getch
(-1)
Значение 1. Не символ EOF
08:02:10
$./getch
EOF
Значение 1. Не символ EOF
08:02:19
$./getch
Значение 0. Символ EOF
08:06:47
$gcc -o eof eof.c
eof.c: In function ‘main’:
eof.c:18: error: stray ‘\321’ in program
eof.c:18: error: stray ‘\201’ in program
eof.c:18: error: expected expression before ‘=’ token
08:14:50
$gcc -o eof eof.c

08:15:19
$./eof
w
Не символ EOF
08:15:55
$gcc -o eof eof.c

08:16:48
$./eof
-1
08:17:52
$gcc -o eof eof.c

08:17:56
$./eof
Символ EOF =  -1
08:18:15
$gcc -o countchar countchar.c

08:24:34
$./countchar
gfghfghfghfhfhfgfhfhfhfhfhfhfhf
fghfghfhfhf
fgh
fgh
f
gh57
08:25:06
$gcc -o countchar countchar.c

08:26:12
$./countchar
gdfgkdfssk;lgkd;lkgbkclbk
dsgkdsg;lksd
gd'l
k;lxc;lbso'gkjero
rgdfk'bj';lk
bzbksohjae
rh
e[r
aerfd
pbkf
b[
106
08:26:47
$gcc -o countchar1 countchar1.c
gcc: countchar1.c: Нет такого файла или каталога
gcc: no input files
08:31:49
$gcc -o countchar1 countchar1.c
/tmp/ccIFwzx0.o: In function `main':
countchar1.c:(.text+0x1e): undefined reference to `getcar'
collect2: ld returned 1 exit status
08:32:27
$gcc -o countchar1 countchar1.c

08:33:15
$gcc -o countchar1 countchar1.c

прошло 104 минуты
10:18:06
$gcc -o countchar1 countchar1.c

10:18:10
$./countstr
bash: ./countstr: Нет такого файла или каталога
10:18:20
$gcc -o countstr countstr.c
countstr.c: In function ‘main’:
countstr.c:16: error: ‘V’ undeclared (first use in this function)
countstr.c:16: error: (Each undeclared identifier is reported only once
countstr.c:16: error: for each function it appears in.)
10:18:40
$gcc -o countstr countstr.c

10:20:05
$./countstr
rrrr1
rrrr2
1
10:20:41
$gcc -o zad1-8 zad1-8.c

прошло 16 минут
10:37:09
$./zad1-8
dsfdsfsfsdfsfsfsf sfsfsf ererwe erwerwerwerwe
erwerwerwerererwe werwerwrwer   dfgdfgdgdfgd            fghfghfhf       fhhhfgh
fghfhfhfhfhfhfhfghfghfghfhfghfghfghfghfhfhfg
fghfghfghfghfghfghfghfgh
Символов пробела - 4
Символов табуляции - 4
Символов новой стоки - 4
10:38:09
$gcc -o zad1-9 zad1-9.c

10:46:34
$./zad1-9
sdfggdgsdg  dkgldfkgd ;  d fgldkfglkd gldfg
sdfggdgsdg  dkgldfkgd ;  d fgldkfglkd gldfg
sdfgkdflgkdlfgkdflg;dgd;gd;l dlfglfgdfl;gkfdlgkd; d;f s;dlfgk;dlkg s;d
sdfgkdflgkdlfgkdflg;dgd;gd;l dlfglfgdfl;gkfdlgkd; d;f s;dlfgk;dlkg s;d
sdfdslfmsldfdlsfldfldfldlmlmmgs;dlmfd;lmfld    ;lsd;fsdf
sdfdslfmsldfdlsfldfldfldlmlmmgs;dlmfd;lmfld    ;lsd;fsdf
10:47:16
$gcc -o zad1-9 zad1-9.c

10:52:26
$./zad1-9
sdfsdf sfsfs
sdfsdfsfsfs
sdfsdf     wefwerwer       werwerwer      werewr
sdfsdfwefwerwerwerwerwerwerewr
10:58:04
$gcc -o zad1-9 zad1-9.c

10:58:06
$./zad1-9
qqqq wwwww qwwww  wwwwww          wwwwww           rrrrr
qqqq  wwwww  qwwww    wwwwww                    wwwwww                      rrrrr
10:59:15
$gcc -o zad1-9 zad1-9.c

10:59:17
$./zad1-9
wwww rrrrrrrr eeeeeeee  ffffff        vvvvvvv mmmmmm      xxxxxxxx
wwww rrrrrrrr eeeeeeee  ffffff        vvvvvvv mmmmmm      xxxxxxxx
11:00:46
$gcc -o zad1-9 zad1-9.c

11:00:48
$./zad1-9
qqq www eeee   ttttttt  dddddddd           vvvvvv      nnnnn
qqq www eeee ttttttt dddddddd vvvvvv nnnnn
11:07:32
$gcc -o zad1-10 zad1-10.c

11:07:35
$gcc -o zad1-10 zad1-10.c
zad1-10.c:18:8: warning: multi-character character constant
zad1-10.c:19:5: warning: multi-character character constant
zad1-10.c: In function ‘main’:
zad1-10.c:20: error: expected ‘;’ before ‘putchar’
11:09:40
$gcc -o zad1-10 zad1-10.c
zad1-10.c:18:8: warning: multi-character character constant
zad1-10.c:19:5: warning: multi-character character constant
11:10:02
$gcc -o zad1-10 zad1-10.c
zad1-10.c:19:5: warning: multi-character character constant
11:10:19
$./zad1-10
eqwqeqw qeqeqw  errter  fghfghfgh       fghfghfhfh
eqwqeqw qeqeqw terrtertfghfghfghtfghfghfhfh
11:12:04
$gcc -o zad1-10 zad1-10.c
zad1-10.c:19:5: warning: multi-character character constant
11:12:06
$./zad1-10
rrrrrr  rrrrrr
rrrrrr  rrrrrr
11:13:17
$gcc -o zad1-10 zad1-10.c
zad1-10.c: In function ‘main’:
zad1-10.c:19: warning: assignment makes integer from pointer without a cast
11:13:19
$gcc -o zad1-10 zad1-10.c
zad1-10.c: In function ‘main’:
zad1-10.c:19: warning: passing argument 1 of ‘putchar’ makes integer from pointer without a cast
/usr/include/stdio.h:562: note: expected ‘int’ but argument is of type ‘char *’
11:23:15
$gcc -o zad1-10 zad1-10.c
zad1-10.c:19:11: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:19: error: missing terminating ' character
zad1-10.c:21: error: expected expression before ‘}’ token
zad1-10.c:21: error: expected ‘;’ before ‘}’ token
11:23:39
$gcc -o zad1-10 zad1-10.c
zad1-10.c:19:11: warning: missing terminating " character
zad1-10.c: In function ‘main’:
zad1-10.c:19: error: missing terminating " character
zad1-10.c:21: error: expected expression before ‘}’ token
zad1-10.c:21: error: expected ‘;’ before ‘}’ token
11:25:14
$gcc -o zad1-10 zad1-10.c
zad1-10.c: In function ‘main’:
zad1-10.c:20: warning: passing argument 1 of ‘putchar’ makes integer from pointer without a cast
/usr/include/stdio.h:562: note: expected ‘int’ but argument is of type ‘char *’
11:25:59
$gcc -o zad1-10 zad1-10.c
zad1-10.c:20:11: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:20: error: missing terminating ' character
zad1-10.c:22: error: expected expression before ‘}’ token
zad1-10.c:22: error: expected ‘;’ before ‘}’ token
11:26:39
$gcc -o zad1-10 zad1-10.c

11:26:47
$./zad1-10
dfgdfggdf       ghfhfghfhfg
11:27:13
$gcc -o zad1-10 zad1-10.c
zad1-10.c:20:11: warning: multi-character character constant
11:27:14
$gcc -o zad1-10 zad1-10.c

11:28:27
$./zad1-10
dsfgdf  fghfghfg
11:30:54
$gcc -o zad1-10 zad1-10.c
zad1-10.c:29:8: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:29: error: missing terminating ' character
zad1-10.c:30: error: expected expression before ‘{’ token
zad1-10.c:36: error: expected expression before ‘}’ token
11:30:57
$gcc -o zad1-10 zad1-10.c

11:32:04
$./zad1-10
sdfsdfsfsd      dfdfdfd         ghghghgh                tyrtyrtyrty
sdfsdfsfsd\tdfdfdfd\t\tghghghgh\t\ttyrtyrtyrty
11:33:18
$gcc -o zad1-10 zad1-10.c

11:33:38
$./zad1-10
terttetvvvv                             dfgdfgfdgfgfg
terttetvvvv\t   \t      \t      \t      dfgdfgfdgfgfg
eee     eee
eee\t   eee
11:35:52
$gcc -o zad1-10 zad1-10.c

11:35:54
$./zad1-10
www     www
www\twww
^[[A
sss                             dddd
sss\t\t\t\tdddd
11:37:44
$gcc -o zad1-10 zad1-10.c

11:37:46
$./zad1-10
www     eee
www\t   eee
11:39:39
$gcc -o zad1-10 zad1-10.c
zad1-10.c:20:5: warning: multi-character character constant
11:39:42
$gcc -o zad1-10 zad1-10.c
zad1-10.c:20:11: warning: missing terminating " character
zad1-10.c: In function ‘main’:
zad1-10.c:20: error: missing terminating " character
zad1-10.c:21: error: expected ‘)’ before ‘;’ token
zad1-10.c:22: error: expected ‘;’ before ‘}’ token
11:43:45
$gcc -o zad1-10 zad1-10.c
zad1-10.c: In function ‘main’:
zad1-10.c:20: warning: passing argument 1 of ‘putchar’ makes integer from pointer without a cast
/usr/include/stdio.h:562: note: expected ‘int’ but argument is of type ‘char *’
11:43:56
$gcc -o zad1-10 zad1-10.c
zad1-10.c:20:11: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:20: error: missing terminating ' character
zad1-10.c:21: error: expected ‘)’ before ‘;’ token
zad1-10.c:22: error: expected ‘;’ before ‘}’ token
11:44:48
$gcc -o zad1-10 zad1-10.c

11:44:58
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:10: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘{’ token
zad1-10.c:35: error: expected expression before ‘}’ token
11:49:24
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:10: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘{’ token
zad1-10.c:35: error: expected expression before ‘}’ token
11:49:58
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:10: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘;’ token
zad1-10.c:33: error: expected expression before ‘}’ token
11:50:54
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:10: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘;’ token
zad1-10.c:33: error: expected expression before ‘}’ token
11:51:23
$gcc -o zad1-10 zad1-10.c

11:51:46
$./zad1-10
ffff    fffff           vvvvv                   nnnn
ffff\t  fffff\t \t      vvvvv\t \t      \t      nnnn
11:52:45
$gcc -o zad1-10 zad1-10.c

11:52:53
$./zad1-10
www     eeee            ffff                    vvvv
www\teeee\t\tffff\t\t\tvvvv
11:54:49
$gcc -o zad1-10 zad1-10.c

11:54:52
$./zad1-10
www ddd fff             ffffff   ccccccc
www ddd\tfff\t\tffffff   ccccccc
прошло 13 минут
12:08:16
$gcc -o zad1-9a zad1-9a.c
gcc: zad1-9a.c: Нет такого файла или каталога
gcc: no input files
12:08:34
$gcc -o zad-1-9a zad-1-9a.c

12:08:56
$./zad-1-9a
Программа копирования вовода на вывод с заменой стоящих подряд пробелов на один.
********************
 начало программы
********************
dddddddd rrrrrr     rrrrr  wwwww
dddddddd rrrrrr rrrrr wwwww
^Z
[3]+  Stopped                 ./zad-1-9a
12:10:00
$gcc -o zad1-10 zad1-10.c

12:19:34
$./zad1-10
eeeee   dddddd          fffff
eeeee\tdddddd\t\tfffff
^[[A
fffff
fffff
^[[A
fffffffff
fffffffff
12:20:20
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:8: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘{’ token
zad1-10.c:34: error: expected expression before ‘}’ token
12:21:05
$gcc -o zad1-10 zad1-10.c

12:21:57
$./zad1-10
v
vv
12:22:31
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:8: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘{’ token
zad1-10.c:34: error: expected expression before ‘}’ token
12:22:35
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:8: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected expression before ‘{’ token
zad1-10.c:34: error: expected expression before ‘}’ token
12:22:43
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:8: warning: missing terminating " character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating " character
zad1-10.c:29: error: expected ‘)’ before ‘;’ token
zad1-10.c:31: error: expected expression before ‘}’ token
zad1-10.c:31: error: ‘else’ without a previous ‘if’
zad1-10.c: At top level:
zad1-10.c:36: error: expected identifier or ‘(’ before ‘return’
zad1-10.c:37: error: expected identifier or ‘(’ before ‘}’ token
12:22:56
$gcc -o zad1-10 zad1-10.c
zad1-10.c: In function ‘main’:
zad1-10.c:28: warning: comparison between pointer and integer
zad1-10.c:31: error: ‘else’ without a previous ‘if’
zad1-10.c: At top level:
zad1-10.c:36: error: expected identifier or ‘(’ before ‘return’
zad1-10.c:37: error: expected identifier or ‘(’ before ‘}’ token
12:23:06
$gcc -o zad1-10 zad1-10.c
zad1-10.c:28:8: warning: missing terminating ' character
zad1-10.c: In function ‘main’:
zad1-10.c:28: error: missing terminating ' character
zad1-10.c:29: error: expected ‘)’ before ‘;’ token
zad1-10.c:31: error: expected expression before ‘}’ token
zad1-10.c:31: error: ‘else’ without a previous ‘if’
zad1-10.c: At top level:
zad1-10.c:36: error: expected identifier or ‘(’ before ‘return’
zad1-10.c:37: error: expected identifier or ‘(’ before ‘}’ token
12:23:27
$gcc -o zad1-10 zad1-10.c
zad1-10.c: In function ‘main’:
zad1-10.c:31: error: ‘else’ without a previous ‘if’
zad1-10.c: At top level:
zad1-10.c:36: error: expected identifier or ‘(’ before ‘return’
zad1-10.c:37: error: expected identifier or ‘(’ before ‘}’ token
12:30:40
$gcc -o zad1-10 zad1-10.c

12:32:53
$./zad1-10
wwwwww          rr  rrww
wwwwww\t\trr  rrww
^[[A
www
www
fff\
fffvv
^X^Z
[4]+  Stopped                 ./zad1-10
12:34:08
$gcc -o zad1-10 zad1-10.c

12:34:24
$./zad1-10
www                                     rrrr\tttttt\\\\
www\t\t\t\t\trrrr\\tttttt\\\\\\\\
ttttdff
ttttdff
r
r
прошло 12 минут
12:46:49
$./zad1-10
    ^[[A
^[[A
12:46:58
$gcc -o zad1-10 zad1-10.c

12:46:59
$./zad1-10
rr
rr
fffffffff
fffffffff
12:48:46
$gcc -o zad1-10 zad1-10.c
zad1-10.c:27:12: warning: multi-character character constant

Статистика

Время первой команды журнала08:01:45 2012- 8-15
Время последней команды журнала12:48:46 2012- 8-15
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %24.75
Процент синтаксически неверно набранных команд, % 0.99
Суммарное время работы с терминалом *, час 3.04
Количество командных строк в единицу времени, команда/мин 0.55
Частота использования команд
gcc65|================================================================| 64.36%
zad1-1017|================| 16.83%
getch5|====| 4.95%
zad1-95|====| 4.95%
eof3|==| 2.97%
countstr2|=| 1.98%
countchar2|=| 1.98%
zad-1-9a1|| 0.99%
zad1-81|| 0.99%
____
*) Интервалы неактивности длительностью 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$