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

Содержание

Журнал

Пятница (04/07/06)

/dev/ttyp2
11:41:14
#cd /usr/ports/

11:41:17
#make fetchindex
/usr/ports/INDEX-6.bz2                        100% of  735 kB   41 kBps 00m00s
11:41:41
#pkg_add -r portupgrade
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.0-release/Latest/portupgrade.tbz... Done.
pkg_add: package 'portupgrade-20041226_7' or its older version already installed
11:42:05
#portupgrade minicom
[Rebuilding the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 298 packages found (-0 +298) .......................................................................................................................................................................................................................................................................................................... done]
** Listing the failed packages (*:skipped / !:failed)
        ! comms/minicom (minicom-2.1)   (Invalid argument)
--->  Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
11:46:16
#man portupgrade
11:46:40
#portupgrade -x icom
portupgrade rev.1049 (2004-12-26)
usage: portupgrade [-habcCDDfFiklnOpPPqrRsuvwWy] [-A command] [-B command]
        [-L format] [-S command] [-x pkgname_glob]
        [[-o origin] [-m make_args] [-M make_env] pkgname_glob ...]
    -h, --help               Show this message
    -a, --all                Do with all the installed packages
    -A, --afterinstall=CMD   Run the command after each installation
    -b, --backup-packages    Keep backup packages of the old versions'
    -B, --beforebuild=CMD    Run the command before each build; If the command
                             exits in failure, then the port will be skipped
...
    PKG_DBDIR        packages DB directory [/var/db/pkg]
    PKG_PATH         packages search path [$PACKAGES/All]
    PKG_TMPDIR       temporary directory for backup etc. [$TMPDIR]
    (Note: This must have enough free space when upgrading a big package)
    PORTSDIR         ports directory [/usr/ports]
    PORTS_DBDIR      ports db directory [$PORTSDIR]
    PORTS_INDEX      ports index file [$PORTSDIR/INDEX]
    PORTUPGRADE      default options (e.g. -v) [none]
    TMPDIR           temporary directory [/var/tmp]
** No package names given.
11:46:43
#portupgrade minicom

11:47:11
#pkg_version -x minicom
pkg_version: illegal option -- x
usage: pkg_version [-hIoqv] [-l limchar] [-L limchar] [[-X] -s string] [-O origin] [index]
       pkg_version -t v1 v2
       pkg_version -T name pattern
11:47:17
#pkg_version minicom
ORBit2                              <
OpenEXR                             <
apr-nothr-db4                       <
arts                                <
^C
11:47:30
#man pkg_version
11:47:48
#pkg_version -snicom
minicom                             =
11:47:50
#pkg_version -s bash
bash                                <
11:47:57
#portupgrade bash
--->  Upgrading 'bash-3.0.16_1' to 'bash-3.1.10_1' (shells/bash)
--->  Building '/usr/ports/shells/bash'
===>  Cleaning for gettext-0.14.5_2
===>  Cleaning for libtool-1.5.22_2
===>  Cleaning for libiconv-1.9.2_2
===>  Cleaning for bash-3.1.10_1
===>  Vulnerability check disabled, database not found
=> bash-3.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/bash.
=> Attempting to fetch from http://ftp.gnu.org/gnu/bash/.
bash-3.1.tar.gz                               100% of 2474 kB   64 kBps 00m00s
...
=> bash31-010 doesn't seem to exist in /usr/ports/distfiles/bash.
=> Attempting to fetch from http://ftp.gnu.org/gnu/bash/bash-3.1-patches//.
fetch: http://ftp.gnu.org/gnu/bash/bash-3.1-patches//bash31-010: size mismatch: expected 1829, actual 5218
=> Attempting to fetch from ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches//.
fetch: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches//bash31-010: size mismatch: expected 1829, actual 5218
^C** Command failed [exit code 2]: /usr/bin/script -qa /tmp/portupgrade40476.0 make
** Fix the problem and try again.
** Listing the failed packages (*:skipped / !:failed)
        ! shells/bash (bash-3.0.16_1)   (interrupted by user)
--->  Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
11:49:11
#cd /usr/ports/shells/bash

11:49:19
#ls -l
total 18
-rw-r--r--  1 root  wheel  3299  7 ÁÐÒ 11:07 Makefile
-rw-r--r--  1 root  wheel  2038  7 ÁÐÒ 11:07 distinfo
drwxr-xr-x  2 root  wheel   512  7 ÁÐÒ 11:07 files
-rw-r--r--  1 root  wheel   505 14 ÏËÔ  2004 pkg-deinstall
-rw-r--r--  1 root  wheel   381 31 ÉÀÌ  2004 pkg-descr
-rw-r--r--  1 root  wheel   418 14 ÏËÔ  2004 pkg-install
-rw-r--r--  1 root  wheel  2254 31 ÉÀÌ  2004 pkg-plist
11:49:19
#vi Makefile
11:49:43
#ls -l
total 18
-rw-r--r--  1 root  wheel  3299  7 ÁÐÒ 11:07 Makefile
-rw-r--r--  1 root  wheel  2038  7 ÁÐÒ 11:07 distinfo
drwxr-xr-x  2 root  wheel   512  7 ÁÐÒ 11:07 files
-rw-r--r--  1 root  wheel   505 14 ÏËÔ  2004 pkg-deinstall
-rw-r--r--  1 root  wheel   381 31 ÉÀÌ  2004 pkg-descr
-rw-r--r--  1 root  wheel   418 14 ÏËÔ  2004 pkg-install
-rw-r--r--  1 root  wheel  2254 31 ÉÀÌ  2004 pkg-plist
11:49:45
#less pkg-plist
11:49:53
#less
11:49:53
#less distinfo
11:49:59
#vi distinfo
11:50:27
#portupgrade bash
--->  Upgrading 'bash-3.0.16_1' to 'bash-3.1.10_1' (shells/bash)
--->  Building '/usr/ports/shells/bash'
===>  Cleaning for gettext-0.14.5_2
===>  Cleaning for libtool-1.5.22_2
===>  Cleaning for libiconv-1.9.2_2
===>  Cleaning for bash-3.1.10_1
===>  Vulnerability check disabled, database not found
=> bash31-010 doesn't seem to exist in /usr/ports/distfiles/bash.
=> Attempting to fetch from http://ftp.gnu.org/gnu/bash/bash-3.1-patches//.
fetch: invalid size ( IGNORE)
...
fetch: invalid size ( IGNORE)
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/bash and try again.
*** Error code 1
Stop in /usr/ports/shells/bash.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade41143.0 make
** Fix the problem and try again.
** Listing the failed packages (*:skipped / !:failed)
        ! shells/bash (bash-3.0.16_1)   (fetch error)
--->  Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
11:50:38
#vi distinfo
11:51:08
#portupgrade bash
--->  Upgrading 'bash-3.0.16_1' to 'bash-3.1.10_1' (shells/bash)
--->  Building '/usr/ports/shells/bash'
===>  Cleaning for gettext-0.14.5_2
===>  Cleaning for libtool-1.5.22_2
===>  Cleaning for libiconv-1.9.2_2
===>  Cleaning for bash-3.1.10_1
===>  Vulnerability check disabled, database not found
=> bash31-010 doesn't seem to exist in /usr/ports/distfiles/bash.
=> Attempting to fetch from http://ftp.gnu.org/gnu/bash/bash-3.1-patches//.
fetch: http://ftp.gnu.org/gnu/bash/bash-3.1-patches//bash31-010: size mismatch: expected 2000, actual 5218
=> Attempting to fetch from ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches//.
^Cfetch: transfer interrupted
--->  Backing up the old version
^C
Interrupted.
** Could not clean up temporary directory: Directory not empty - /var/tmp/portupgrade4M5KhGVH
11:51:25
#vi distinfo
33c33
< SIZE (bash/bash31-010) = 2000
---
> SIZE (bash/bash31-010) = 5218
11:51:37
#portupgrade bash
--->  Upgrading 'bash-3.0.16_1' to 'bash-3.1.10_1' (shells/bash)
--->  Building '/usr/ports/shells/bash'
===>  Cleaning for gettext-0.14.5_2
===>  Cleaning for libtool-1.5.22_2
===>  Cleaning for libiconv-1.9.2_2
===>  Cleaning for bash-3.1.10_1
===>  Vulnerability check disabled, database not found
=> bash31-010 doesn't seem to exist in /usr/ports/distfiles/bash.
=> Attempting to fetch from http://ftp.gnu.org/gnu/bash/bash-3.1-patches//.
bash31-010                                    100% of 5218  B 5105 kBps
...
check, type "make NO_CHECKSUM=yes [other args]".
*** Error code 1
Stop in /usr/ports/shells/bash.
*** Error code 1
Stop in /usr/ports/shells/bash.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade42430.0 make
** Fix the problem and try again.
** Listing the failed packages (*:skipped / !:failed)
        ! shells/bash (bash-3.0.16_1)   (checksum mismatch)
--->  Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
11:51:46
#make NO_CHECKSUM=yes
./mkbuiltins -D . exec.def
cc -c  -DHAVE_CONFIG_H -DSHELL   -I. -I..  -I.. -I../include -I../lib -I.   -I/usr/local/include -O2 -fno-strict-aliasing -pipe exec.c || ( rm -f exec.c ; exit 1 )
rm -f exec.c
rm -f exit.o
./mkbuiltins -D . exit.def
cc -c  -DHAVE_CONFIG_H -DSHELL   -I. -I..  -I.. -I../include -I../lib -I.   -I/usr/local/include -O2 -fno-strict-aliasing -pipe exit.c || ( rm -f exit.c ; exit 1 )
rm -f exit.c
rm -f fc.o
./mkbuiltins -D . fc.def
cc -c  -DHAVE_CONFIG_H -DSHELL   -I. -I..  -I.. -I../include -I../lib -I.   -I/usr/local/include -O2 -fno-strict-aliasing -pipe fc.c || ( rm -f fc.c ; exit 1 )
...
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include makepath.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include pathcanon.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include pathphys.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include tmpfile.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include stringlist.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include stringvec.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include spell.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include shquote.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include strtrans.c
cc -c  -I. -I../.. -I../.. -I../../lib -I../../include -I.  -DHAVE_CONFIG_H -DSHELL   -O2 -fno-strict-aliasing -pipe -I/usr/local/include strindex.c

Статистика

Время первой команды журнала11:41:14 2006- 4- 7
Время последней команды журнала11:51:46 2006- 4- 7
Количество командных строк в журнале27
Процент команд с ненулевым кодом завершения, %22.22
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.18
Количество командных строк в единицу времени, команда/мин 2.56
Частота использования команд
portupgrade7|=========================| 25.93%
pkg_version4|==============| 14.81%
vi4|==============| 14.81%
less3|===========| 11.11%
ls2|=======| 7.41%
man2|=======| 7.41%
make2|=======| 7.41%
cd2|=======| 7.41%
pkg_add1|===| 3.70%
____
*) Интервалы неактивности длительностью 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$