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

Содержание

Журнал

Вторник (01/24/06)

/dev/pts/3
14:48:45
$su -
Password:
14:48:56
#strings `which sshd` | grep /etc
/etc/ssh/sshd_config
Accepted for %.100s [%.100s] by /etc/hosts.equiv.
/etc/hosts.equiv
/etc/ssh/shosts.equiv
/etc/ssh/ssh_known_hosts
/etc/ssh/ssh_host_key
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_dsa_key
/etc/motd
/bin/sh /etc/ssh/sshrc
/etc/nologin
/etc/ssh/ssh_known_hosts2
/etc/ssh/moduli
/etc/ssh/primes
14:49:21
#strings `which nfsd` | grep /etc
/usr/bin/which: no nfsd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
14:50:23
#which nfsd
/usr/bin/which: no nfsd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
14:50:30
#which lpd
/usr/bin/which: no lpd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
14:50:36
#which named
/usr/bin/which: no named in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
14:50:42
#which sshd
/usr/sbin/sshd
14:52:23
#man bc
15:01:43
#which names
/usr/bin/which: no names in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
15:07:03
#find / name `names
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/procman/proctree
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/keybindings
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/profiles
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/profiles/Default
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/global
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-dictionary
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gfloppy
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-system-log
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gcalctool
...
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/email_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/spreadsheet_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/presentation_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/wordprocessor_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/web_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/menu_bar
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels/bottom_panel
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels/bottom_panel/background
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels/top_panel
15:07:40
#find / name `names
~
15:07:40
#find / name `names
~
15:07:40
#find / name `names`
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/ui/toolbar
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/right_margin
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/line_numbers
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/auto_indent
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/tabs
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/wrap_mode
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/undo
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/save
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gedit-2/preferences/editor/colors
...
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gpdf/UI
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gpdf/UI/Windows
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/ui
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/ui/library
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state/iradio
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state/load_failure_dialog
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state/library
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/sound-juicer
15:08:24
#find / name `*names`
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/procman/proctree
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/keybindings
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/profiles
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/profiles/Default
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-terminal/global
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-dictionary
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gfloppy
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-system-log
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gcalctool
...
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/email_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/spreadsheet_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/presentation_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/wordprocessor_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/web_launcher
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/objects/menu_bar
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels/bottom_panel
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels/bottom_panel/background
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/panel/default_setup/toplevels/top_panel
15:08:38
#find / | grep names`
> find / | grep names
> find / | grep names`
         name `*names`
> find / | grep names`
find / | grep names
/tmp/new/new/etc/alchemist/namespace
/tmp/new/new/etc/alchemist/namespace/printconf
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/metacity/workspace_names
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/evolution/addressbook/select_names
/tmp/new/new/etc/gconf/gconf.xml.defaults/apps/metacity/workspace_names
...
/usr/share/man/man3/use_extended_names.3x.gz
/usr/share/man/man5/nicknames.5.gz
/usr/share/emacs/21.3/lisp/language/vietnamese.elc
/usr/share/apps/quanta/doc/php/function.dbase-get-record-with-names.html
/usr/share/apps/quanta/doc/php/function.domnode-add-namespace.html
/usr/share/apps/quanta/doc/php/function.domnode-set-namespace.html
/usr/share/apps/quanta/doc/php/function.ncurses-use-extended-names.html
/usr/share/apps/quanta/doc/php/function.xml-set-end-namespace-decl-handler.html
/usr/share/apps/quanta/doc/php/function.xml-set-start-namespace-decl-handler.html
/usr/share/apps/quanta/dtep/xslt/namespace-alias.tag
15:09:17
#find /
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/fish_applet/prefs
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/window_list_applet
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/window_list_applet/prefs
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/workspace_switcher_applet
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/workspace_switcher_applet/prefs
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/metacity
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/metacity/workspace_names
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/metacity/keybinding_commands
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/metacity/global_keybindings
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/metacity/window_keybindings
...
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomeicu/general/events
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomeicu/general/files
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomeicu/general/connections
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/CDDB-Slave2
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-cd
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomemeeting
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomemeeting/contacts
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomemeeting/protocols
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomemeeting/protocols/ldap
/tmp/new/new/etc/gconf/gconf.xml.defaults/schemas/apps/gnomemeeting/protocols/h323
15:09:26
#find / | grep names
/usr/share/sip/qt/qnamespace.sip
/usr/bin/ifnames
/usr/include/arpa/nameser.h
/usr/include/arpa/nameser_compat.h
/usr/include/gnu/lib-names.h
/usr/include/boost/date_time/date_names_put.hpp
/usr/include/boost/mpl/aux_/algorithm_namespace.hpp
/usr/include/boost/mpl/aux_/iterator_names.hpp
/usr/include/boost/python/object/add_to_namespace.hpp
/usr/include/boost/spirit/debug/impl/parser_names.ipp
...
/sys/firmware/acpi/namespace/ACPI/_SB/PCI0/P0P4
/sys/firmware/acpi/namespace/ACPI/CPU2
/sys/firmware/acpi/namespace/ACPI/CPU1
/sys/firmware/acpi/namespace/ACPI/PWRF
/lib/modules/2.6.9-1.667asp/build/drivers/acpi/namespace
/lib/modules/2.6.9-1.667asp/build/drivers/acpi/namespace/Makefile
/lib/modules/2.6.9-1.667asp/build/include/acpi/acnamesp.h
/lib/modules/2.6.9-1.667asp/build/include/config/pci/names.h
/lib/modules/2.6.9-1.667asp/build/include/linux/namespace.h
/lib/modules/2.6.9-1.667asp/build/scripts/namespace.pl
15:09:42
#find / | grep names | less
15:10:21
#find / | grep /names/ | less
15:10:45
#find / | grep /names/
/home/user/names/][
/home/user/names/1*2
/home/user/names/2*3
/home/user/names/apr
/home/user/names/aug
/home/user/names/dec
/home/user/names/feb
/home/user/names/jan
/home/user/names/jul
/home/user/names/jun
...
/home/user/names/module2.c
/home/user/names/2*2=5?
/home/user/names/program.C
/home/user/names/A:\WINDOWSSYSTEM32
/home/user/names/header.h
/home/user/names/A:\WINDOWS\SYSTEM32
/home/user/names/The_Best_OS
/home/user/names/The_Worst_OS
/home/user/names/linux-kernel
/home/user/names/-hard-to-del-
15:10:52
#ssh agent
ssh: agent: Name or service not known
прошло 45 минут
15:56:02
#ls hell
ls: hell: No such file or directory
16:05:14
#ls hel*
hello-world-version-2.0
16:05:17
#vie hello-world-version-2.0
-bash: vie: command not found
16:05:37
#vi hello-world-version-2.0
16:15:22
# du -sk /home/*
16      /home/lost+found
9488    /home/user
16:16:02
# du -sk /home/* | sort -rm
16      /home/lost+found
9488    /home/user
16:17:31
# du -sk /home/* | sort -rn
9488    /home/user
16      /home/lost+found

Статистика

Время первой команды журнала14:48:45 2006- 1-24
Время последней команды журнала16:17:31 2006- 1-24
Количество командных строк в журнале28
Процент команд с ненулевым кодом завершения, %21.43
Процент синтаксически неверно набранных команд, % 3.57
Суммарное время работы с терминалом *, час 0.73
Количество командных строк в единицу времени, команда/мин 0.64
Частота использования команд
find11|============================| 28.21%
grep7|=================| 17.95%
which5|============| 12.82%
du3|=======| 7.69%
less2|=====| 5.13%
sort2|=====| 5.13%
strings2|=====| 5.13%
ls2|=====| 5.13%
vie1|==| 2.56%
vi1|==| 2.56%
man1|==| 2.56%
ssh1|==| 2.56%
su1|==| 2.56%
____
*) Интервалы неактивности длительностью 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$