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

Содержание

Журнал

Суббота (04/25/09)

/dev/pts/1
19:11:42
#l3
l3                 l3_close_session   l3mass_upload      l3script
l3-agent           l3-config          l3pwd              l3shot
l3cd               l3_fix_prompt      l3_save_last_line  l3upload
19:11:42
#vi .bashrc
/dev/pts/1
19:20:15
#ls
install
19:20:17
#ls /etc/
acpi                    groff             magic.mime      rc3.d
adduser.conf            group             mailcap         rc4.d
adjtime                 group-            mailcap.order   rc5.d
aliases                 gshadow           mailname        rc6.d
alternatives            gshadow-          mail.rc         rc.local
amanda                  gssapi_mech.conf  manpath.config  rcS.d
amandahosts             host.conf         mime.types      reportbug.conf
apt                     hostname          mke2fs.conf     resolv.conf
at.deny                 hosts             modprobe.d      rmt
bash.bashrc             hosts.allow       modules         rpc
...
deluser.conf            lilalo            passwd-         texmf
dhcp3                   locale.alias      perl            timezone
dictionaries-common     locale.gen        ppp             ucf.conf
dpkg                    localtime         profile         udev
emacs                   logcheck          protocols       updatedb.conf
email-addresses         login.defs        python          vim
environment             logrotate.conf    python2.5       w3m
exim4                   logrotate.d       rc0.d           wgetrc
fstab                   lsb-base          rc1.d           X11
gai.conf                magic             rc2.d           xinetd.d
/dev/pts/1
19:24:47
#l3
l3                 l3_close_session   l3mass_upload      l3script
l3-agent           l3-config          l3pwd              l3shot
l3cd               l3_fix_prompt      l3_save_last_line  l3upload
19:24:47
#l3pwd
/users///barcode.yabloko.ru.yabloko.ru/root
19:25:06
#aptitude search x11-app
p   x11-apps                        - X applications
19:26:24
#aptitude install x11-apps -s
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  defoma{a} fontconfig-config{a} libexpat1{a} libfontconfig1{a}
  libfreetype6{a} libice6{a} libpng12-0{a} libsm6{a} libxaw7{a}
  libxcursor1{a} libxfixes3{a} libxft2{a} libxkbfile1{a} libxmu6{a}
  libxpm4{a} libxrender1{a} libxt6{a} ttf-dejavu{a} ttf-dejavu-core{a}
  ttf-dejavu-extra{a} x11-apps
0 packages upgraded, 21 newly installed, 0 to remove and 1 not upgraded.
Need to get 6477kB of archives. After unpacking 14.3MB will be used.
Do you want to continue? [Y/n/?] n
Abort.
19:26:41
#aptitude install x11-apps curl -s
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  ca-certificates{a} curl defoma{a} fontconfig-config{a} libcurl3{a}
  libexpat1{a} libfontconfig1{a} libfreetype6{a} libice6{a} libpng12-0{a}
  libsm6{a} libssh2-1{a} libxaw7{a} libxcursor1{a} libxfixes3{a} libxft2{a}
  libxkbfile1{a} libxmu6{a} libxpm4{a} libxrender1{a} libxt6{a} openssl{a}
  ttf-dejavu{a} ttf-dejavu-core{a} ttf-dejavu-extra{a} x11-apps
0 packages upgraded, 26 newly installed, 0 to remove and 1 not upgraded.
Need to get 8165kB of archives. After unpacking 18.4MB will be used.
Do you want to continue? [Y/n/?] n
Abort.
19:26:48
#aptitude install x11-apps curl netpbm -s
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  ca-certificates{a} curl defoma{a} fontconfig-config{a} ghostscript{a}
  ghostscript-x{a} gs{a} gs-common{a} gsfonts{a} libcups2{a}
  libcupsimage2{a} libcurl3{a} libexpat1{a} libfontconfig1{a}
  libfreetype6{a} libgs8{a} libice6{a} libjpeg62{a} libnetpbm10{a}
  libpaper-utils{a} libpaper1{a} libpng12-0{a} libsm6{a} libssh2-1{a}
  libtiff4{a} libxaw7{a} libxcursor1{a} libxfixes3{a} libxft2{a}
  libxkbfile1{a} libxmu6{a} libxpm4{a} libxrender1{a} libxt6{a} netpbm
  openssl{a} psfontmgr{a} ttf-dejavu{a} ttf-dejavu-core{a}
  ttf-dejavu-extra{a} x11-apps
0 packages upgraded, 41 newly installed, 0 to remove and 1 not upgraded.
Need to get 16.5MB of archives. After unpacking 40.0MB will be used.
Do you want to continue? [Y/n/?] n
Abort.
19:27:13
#aptitude install x11-apps
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  defoma{a} fontconfig-config{a} libexpat1{a} libfontconfig1{a}
  libfreetype6{a} libice6{a} libpng12-0{a} libsm6{a} libxaw7{a}
  libxcursor1{a} libxfixes3{a} libxft2{a} libxkbfile1{a} libxmu6{a}
...
Setting up libxft2 (2.1.12-3) ...
Setting up libxkbfile1 (1:1.0.5-1) ...
Setting up x11-apps (7.3+4) ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
19:27:40
#aptitude install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  ca-certificates{a} curl libcurl3{a} libssh2-1{a} openssl{a}
0 packages upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
Need to get 1688kB of archives. After unpacking 4133kB will be used.
...
Setting up libssh2-1 (0.18-1) ...
Setting up libcurl3 (7.18.2-8lenny2) ...
Setting up curl (7.18.2-8lenny2) ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
19:28:10
#aptitude install netpbm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  ghostscript{a} ghostscript-x{a} gs{a} gs-common{a} gsfonts{a} libcups2{a}
  libcupsimage2{a} libgs8{a} libjpeg62{a} libnetpbm10{a} libpaper-utils{a}
  libpaper1{a} libtiff4{a} netpbm psfontmgr{a}
...
Updating category psprint..
Setting up ghostscript-x (8.62.dfsg.1-3.2lenny1) ...
Setting up gs (8.62.dfsg.1-3.2lenny1) ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
19:28:46
#ls
install
19:28:54
#wget http://xgu.ru/lilalo/install
--2009-04-25 20:29:02--  http://xgu.ru/lilalo/install
Resolving xgu.ru... 194.150.93.78
Connecting to xgu.ru|194.150.93.78|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5285 (5.2K) [text/plain]
Saving to: `install.1'
100%[======================================>] 5,285       --.-K/s   in 0.09s
2009-04-25 20:29:02 (58.7 KB/s) - `install.1' saved [5285/5285]
19:29:02
#ls
install  install.1
19:29:05
#rm -f ./install*

19:29:10
#wget http://xgu.ru/lilalo/install
--2009-04-25 20:29:12--  http://xgu.ru/lilalo/install
Resolving xgu.ru... 194.150.93.78
Connecting to xgu.ru|194.150.93.78|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5285 (5.2K) [text/plain]
Saving to: `install'
100%[======================================>] 5,285       --.-K/s   in 0.09s
2009-04-25 20:29:13 (59.1 KB/s) - `install' saved [5285/5285]
19:29:13
#vi install

Статистика

Время первой команды журнала19:11:42 2009- 4-25
Время последней команды журнала19:29:13 2009- 4-25
Количество командных строк в журнале19
Процент команд с ненулевым кодом завершения, % 0.00
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.29
Количество командных строк в единицу времени, команда/мин 1.08
Частота использования команд
aptitude7|====================================| 36.84%
ls4|=====================| 21.05%
vi2|==========| 10.53%
wget2|==========| 10.53%
l32|==========| 10.53%
l3pwd1|=====| 5.26%
rm1|=====| 5.26%
____
*) Интервалы неактивности длительностью 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$