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

Содержание

Журнал

Среда (01/10/07)

/dev/pts/0
14:16:07
$ls -alF
итого 176
drwx------ 25 user user  4096 2007-01-10 10:26 ./
drwxr-xr-x  4 user user  4096 2003-12-06 17:29 ../
-rw-r--r--  1 user user  3845 2003-12-06 17:29 base
-rw-------  1 user user   661 2007-01-10 14:11 .bash_history
-rw-r--r--  1 user user    24 2003-12-06 17:29 .bash_logout
-rw-r--r--  1 user root   255 2007-01-09 19:26 .bash_profile
-rw-r--r--  1 user user   167 2007-01-09 19:26 .bashrc
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 bin/
-rw-r--r--  1 user user 12718 2003-12-06 17:29 body
...
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 sh/
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 .ssh/
drwxr-xr-x  4 user user  4096 2003-12-06 17:29 test/
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 text/
-rw-r--r--  1 user user    18 2003-12-06 17:29 touchlist
drwx------  2 user user  4096 2007-01-09 17:07 .update-notifier/
-rw-r--r--  1 user user     0 2003-12-06 17:29 very_long_file_name
-rw-r--r--  1 user user    16 2003-12-06 17:29 .vimrc
-rw-------  1 user user   169 2007-01-10 10:26 .Xauthority
-rw-r--r--  1 user user  3005 2007-01-10 14:11 .xsession-errors
14:16:40
$cd /usr/share/doc

14:17:13
$pwd
/usr/share/doc
14:17:18
$ls
dictd                         libbonobo2-common                libpaper1                 psmisc
dictionaries-common           libbonoboui2-0                   libparted1.7-1            python
dictzip                       libbonoboui2-common              libpci2                   python2.4
diff                          libbz2-1.0                       libpcre3                  python2.4-minimal
discover1                     libc6                            libperl5.8                python-apt
discover1-data                libc6-amd64                      libpisock9                python-cairo
dmidecode                     libc6-i686                       libpisync0                python-central
dnsutils                      libcaca0                         libpng12-0                python-foomatic
docbook-xml                   libcairo2                        libpoppler0c2             python-glade2
doc-debian                    libcairo-perl                    libpoppler0c2-glib        python-gmenu
...
gzip                          libhal-storage1                  manpages                  xutils
hal                           libhsqldb-java                   manpages-ru               xutils-dev
hicolor-icon-theme            libice6                          mawk                      xxkb
hostname                      libicu36                         menu                      yelp
hotkey-setup                  libid3tag0                       menu-xdg                  zenity
HOWTO                         libident                         metacity                  zip
hpijs                         libidl0                          metacity-common           zlib1g
hpijs-ppds                    libidn11                         mime-support
hplip                         libiec61883-0                    mkisofs
hplip-data                    libieee1284-3                    mktemp
14:17:31
$cd bash

14:18:24
$pwd
/usr/share/doc/bash
14:18:27
$cd handbook
bash: cd: handbook: No such file or directory
14:19:09
$cd /usr/share/doc

14:19:19
$cd handbook
bash: cd: handbook: No such file or directory
14:19:22
$cd bash

14:19:48
$cd handbook
bash: cd: handbook: No such file or directory
14:19:55
$ls
BUGS.bash_completion          changelog.gz  completion-contrib  inputrc.arrows  POSIX.gz                   README.commands.gz
changelog.bash_completion.gz  CHANGES.gz    copyright           INTRO.gz        README.abs-guide           README.Debian.gz
changelog.Debian.gz           COMPAT.gz     FAQ                 NEWS.gz         README.bash_completion.gz
14:20:16
$ls -alF
итого 396
drwxr-xr-x   3 root root   4096 2007-01-09 15:55 ./
drwxr-xr-x 811 root root  32768 2007-01-10 12:03 ../
-rw-r--r--   1 root root    799 2006-12-11 23:20 BUGS.bash_completion
-rw-r--r--   1 root root  41158 2006-12-11 23:20 changelog.bash_completion.gz
-rw-r--r--   1 root root  24546 2006-12-11 23:11 changelog.Debian.gz
-rw-r--r--   1 root root 132943 2005-12-01 16:36 changelog.gz
-rw-r--r--   1 root root  63833 2005-12-07 16:08 CHANGES.gz
-rw-r--r--   1 root root   3904 2005-12-06 00:03 COMPAT.gz
drwxr-xr-x   2 root root   4096 2007-01-09 15:55 completion-contrib/
-rw-r--r--   1 root root  17613 2006-10-22 16:39 copyright
-rw-r--r--   1 root root   1322 2006-10-22 16:39 FAQ
-rw-r--r--   1 root root    727 2006-10-22 16:39 inputrc.arrows
-rw-r--r--   1 root root   2927 1999-02-17 23:13 INTRO.gz
-rw-r--r--   1 root root  16599 2005-11-17 17:36 NEWS.gz
-rw-r--r--   1 root root   2974 2005-10-19 23:57 POSIX.gz
-rw-r--r--   1 root root   1105 2006-10-22 16:39 README.abs-guide
-rw-r--r--   1 root root   7355 2006-12-11 23:20 README.bash_completion.gz
-rw-r--r--   1 root root   3037 2006-10-22 16:39 README.commands.gz
-rw-r--r--   1 root root   3282 2006-12-11 23:20 README.Debian.gz
14:20:30
$ls
BUGS.bash_completion          changelog.gz  completion-contrib  inputrc.arrows  POSIX.gz                   README.commands.gz
changelog.bash_completion.gz  CHANGES.gz    copyright           INTRO.gz        README.abs-guide           README.Debian.gz
changelog.Debian.gz           COMPAT.gz     FAQ                 NEWS.gz         README.bash_completion.gz
14:20:41
$less
14:20:49
$less inputrc.arrows
14:21:36
$less co
14:21:36
$less co
14:21:36
$less copyright
14:22:06
$links inputrc.arrows
14:23:02
$cd ~

14:23:59
$pwd
/home/user
14:24:02
$mkdir source doc pics

14:24:17
$ls
base  bin  body  c  Desktop  doc  files  names  pics  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:24:19
$ls -al
итого 188
drwx------ 28 user user  4096 2007-01-10 14:24 .
drwxr-xr-x  4 user user  4096 2003-12-06 17:29 ..
-rw-r--r--  1 user user  3845 2003-12-06 17:29 base
-rw-------  1 user user   661 2007-01-10 14:11 .bash_history
-rw-r--r--  1 user user    24 2003-12-06 17:29 .bash_logout
-rw-r--r--  1 user root   255 2007-01-09 19:26 .bash_profile
-rw-r--r--  1 user user   167 2007-01-09 19:26 .bashrc
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 bin
-rw-r--r--  1 user user 12718 2003-12-06 17:29 body
...
drwxr-xr-x  2 user user  4096 2007-01-10 14:24 source
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 .ssh
drwxr-xr-x  4 user user  4096 2003-12-06 17:29 test
drwxr-xr-x  2 user user  4096 2003-12-06 17:29 text
-rw-r--r--  1 user user    18 2003-12-06 17:29 touchlist
drwx------  2 user user  4096 2007-01-09 17:07 .update-notifier
-rw-r--r--  1 user user     0 2003-12-06 17:29 very_long_file_name
-rw-r--r--  1 user user    16 2003-12-06 17:29 .vimrc
-rw-------  1 user user   169 2007-01-10 10:26 .Xauthority
-rw-r--r--  1 user user  3005 2007-01-10 14:11 .xsession-errors
14:24:34
$ls
base  bin  body  c  Desktop  doc  files  names  pics  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:24:43
$mkdir -p scripting/perl

14:25:40
$ls
base  body  Desktop  files  pics  projectX   sh      test  touchlist
bin   c     doc      names  proj  scripting  source  text  very_long_file_name
14:25:44
$cd s
scripting/ sh/        source/
14:25:44
$cd s
scripting/ sh/        source/
14:25:44
$cd scripting/

14:25:54
$ls
perl
14:25:57
$cd ~

14:26:09
$ls
base  body  Desktop  files  pics  projectX   sh      test  touchlist
bin   c     doc      names  proj  scripting  source  text  very_long_file_name
14:26:11
$mkdir -p scripting/python

14:26:42
$ls
base  body  Desktop  files  pics  projectX   sh      test  touchlist
bin   c     doc      names  proj  scripting  source  text  very_long_file_name
14:26:45
$cd scripting/

14:26:50
$ls
perl  python
14:26:52
$cd ~

14:26:57
$mkdir -p pics/forweb/info/2002/summer

14:28:15
$ls
base  body  Desktop  files  pics  projectX   sh      test  touchlist
bin   c     doc      names  proj  scripting  source  text  very_long_file_name
14:28:17
$rm scripting/
rm: невозможно удалить `scripting/': Is a directory
14:29:59
$cd scripting/

14:31:22
$ls
perl  python
14:31:25
$rm perl/
rm: невозможно удалить `perl/': Is a directory
14:31:33
$rm -r perl/

14:31:50
$rm -r python/

14:31:56
$.
bash: .: filename argument required
.: usage: . filename [arguments]
14:32:21
$cd

14:32:25
$ls
base  body  Desktop  files  pics  projectX   sh      test  touchlist
bin   c     doc      names  proj  scripting  source  text  very_long_file_name
14:32:29
$rm -r scripting/

14:32:36
$cd pics/

14:32:52
$ls
forweb
14:32:53
$rm -r forweb/

14:33:01
$cd ..

14:33:14
$ls
base  bin  body  c  Desktop  doc  files  names  pics  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:33:16
$rm -r pics/

14:33:26
$mkdir -p doc/scripting/perl

14:33:51
$ls
base  bin  body  c  Desktop  doc  files  names  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:33:53
$mkdir -p pics

14:34:18
$ls
base  bin  body  c  Desktop  doc  files  names  pics  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:34:20
$mkdir -p doc/scripting/python doc/c pics/forweb/info/2002/summer

14:35:02
$ls
base  bin  body  c  Desktop  doc  files  names  pics  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:35:04
$cd doc

14:35:32
$ls
c  scripting
14:35:34
$cd scripting/

14:35:41
$ls
perl  python
14:35:43
$cd ..

14:35:50
$cd ..

14:35:56
$cd pics/

14:36:15
$ls
forweb
14:36:18
$cd forweb/

14:36:23
$ls
info
14:36:26
$cd info/

14:36:31
$ls
2002
14:36:33
$cd 2002/

14:36:37
$ls
summer
14:36:38
$cd summer/

14:36:44
$ls

14:36:46
$cd

14:36:49
$pwd
/home/user
14:36:53
$cd ~

14:38:04
$pwd
/home/user
14:38:07
$touch a b c

14:38:22
$ls
a  base  body  Desktop  files  pics  projectX  source  text       very_long_file_name
b  bin   c     doc      names  proj  sh        test    touchlist
14:38:24
$rm a b c
rm: невозможно удалить `c': Is a directory
14:38:38
$rmdir -p pics/forweb/info/2002/summer/

14:39:31
$ls
base  bin  body  c  Desktop  doc  files  names  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:39:33
$rm -r doc

14:39:55
$ls
base  bin  body  c  Desktop  files  names  proj  projectX  sh  source  test  text  touchlist  very_long_file_name
14:39:57
$rm -r source/

14:40:30
$ls
base  bin  body  c  Desktop  files  names  proj  projectX  sh  test  text  touchlist  very_long_file_name
14:40:31
$mkdir zgonnik

14:42:22
$ls
base  bin  body  c  Desktop  files  names  proj  projectX  sh  test  text  touchlist  very_long_file_name  zgonnik
14:42:24
$rm -i zgonnik/
rm: невозможно удалить каталог `zgonnik/': Is a directory
14:42:58
$rmdir -i zgonnik/
rmdir: invalid option -- i
Попробуйте `rmdir --help' для получения более подробного описания.
14:43:14
$rmdir -v zgonnik/
rmdir: удаление каталога, zgonnik/i
rmdir: zgonnik/i: No such file or directory
rmdir: удаление каталога, zgonnik/
14:43:26
$ls
base  bin  body  c  Desktop  files  names  proj  projectX  sh  test  text  touchlist  very_long_file_name
14:43:32
$cp ~/proj/x-project/x ~/proj/x-project/y ~/proj/x-project/z ~bin
cp: невозможно создать обычный файл `/bin/x': Permission denied
cp: невозможно создать обычный файл `/bin/y': Permission denied
cp: невозможно создать обычный файл `/bin/z': Permission denied
14:45:34
$cp ~/proj/x-project/x ~/proj/x-project/y ~/proj/x-project/z ~/bin

14:46:16
$ls
base  bin  body  c  Desktop  files  names  proj  projectX  sh  test  text  touchlist  very_long_file_name

Статистика

Время первой команды журнала14:16:07 2007- 1-10
Время последней команды журнала14:46:16 2007- 1-10
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %10.89
Процент синтаксически неверно набранных команд, % 0.99
Суммарное время работы с терминалом *, час 0.50
Количество командных строк в единицу времени, команда/мин 3.35
Частота использования команд
ls35|==================================| 34.65%
cd29|============================| 28.71%
rm11|==========| 10.89%
mkdir8|=======| 7.92%
less5|====| 4.95%
pwd5|====| 4.95%
rmdir3|==| 2.97%
cp2|=| 1.98%
links1|| 0.99%
touch1|| 0.99%
.1|| 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$