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

Содержание

Журнал

Четверг (04/30/09)

/dev/ttyp0
15:07:43
#ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=51 time=51.9 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=51 time=50.4 ms
--- ya.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 50.425/51.185/51.946/0.793 ms
/dev/ttyp0
15:14:40
#ping ru.ru
PING ru.ru (195.2.72.149) 56(84) bytes of data.
64 bytes from 195.2.72.149: icmp_seq=1 ttl=114 time=76.3 ms
--- ru.ru ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 76.326/76.326/76.326/0.000 ms
/dev/ttyp0
15:17:50
#who
root     ttyp0        2009-04-30 15:17 (debian.net.nt)

Вторник (05/05/09)

/dev/ttyp3
10:34:48
#update mandb
bash: update: command not found
10:35:28
#mandb
Удаление старых записей базы данных в /usr/share/man...
Обработка страниц руководства в /usr/share/man...
Удаление старых записей базы данных в /usr/local/man...
Обработка страниц руководства в /usr/local/man...
Удаление старых записей базы данных в /usr/local/share/man...
Обработка страниц руководства в /usr/local/share/man...
0 man подкаталоги содержат более новые страницы руководства.
добавлены 0 страницы руководства.
побочные 0 cats добавлены.
удалены 0 старые записи базы данных.

Среда (05/06/09)

/dev/ttyp4
13:51:25
#netstat -lnp | grep :5900
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN     1215/Xvnc
13:51:39
#pstree -p | less
13:52:26
#ps aux | grep gdm
root      1204  0.0  0.2  13312  1744 ?        Ss   Apr30   0:00 /usr/sbin/gdm
root      1205  0.0  0.4  13792  2584 ?        S    Apr30   0:00 /usr/sbin/gdm
root      1215  0.0  2.6  19544 15716 ?        S    Apr30   0:56 /usr/bin/Xvnc :0 -geometry 1024x768 -depth 24 -auth /var/lib/gdm/:0.Xauth -nolisten tcp
root      6215  0.0  0.1   4620   740 ttyp5    R+   13:52   0:00 grep gdm
13:52:32
#whereis gdm
gdm: /usr/sbin/gdm /etc/gdm /usr/lib/gdm /usr/share/gdm /usr/share/man/man1/gdm.1.gz /usr/share/man/man8/gdm.8.gz
13:53:01
#strings /usr/sbin/gdm | grep etc
pam_setcred
greeter/PreFetchProgram=
/etc/gdm
daemon/XKeepsCrashing=/etc/gdm/XKeepsCrashing
/etc/gdm/gdm.conf
daemon/SessionDesktopDir=/etc/X11/sessions/:/etc/dm/Sessions/:/usr/share/gdm/BuiltInSessions/:/usr/share/xsessions/
daemon/PostLoginScriptDir=/etc/gdm/PreSession/
daemon/PreSessionScriptDir=/etc/gdm/PreSession/
daemon/PostSessionScriptDir=/etc/gdm/PostSession/
daemon/BaseXsession=/etc/gdm/Xsession
daemon/DisplayInitDir=/etc/gdm/Init
xdmcp/Willing=/etc/gdm/Xwilling
greeter/LocaleFile=/etc/gdm/locale.alias
/etc/mtab
/etc/X11
/etc/shadow
Running pam_setcred with PAM_DELETE_CRED
13:53:27
#strings /usr/sbin/gdm | grep etc | grep conf
/etc/gdm/gdm.conf
13:53:41
#vim /etc/gdm/gdm.conf
--- /tmp/l3-saved-6138.28965.12984	2009-05-06 13:53:48.000000000 +0300
+++ /etc/gdm/gdm.conf	2009-05-06 13:54:09.000000000 +0300
@@ -75,5 +75,5 @@
 #
 [server-VNC]
 name=VNC server
-command=/usr/bin/Xvnc -geometry 1024x768 -depth 24
+command=/usr/bin/Xvnc -geometry 1280x1024 -depth 24
 flexible=true
13:54:09
#/etc/init.d/gdm restart
Stopping GNOME Display Manager: gdm.
Starting GNOME Display Manager: gdm.

Четверг (05/07/09)

/dev/ttyp1
12:26:43
#chmod /etc/passwd
chmod: пропущен операнд после `/etc/passwd'
Попробуйте `chmod --help' для получения более подробного описания.
/dev/ttyp1
12:29:14
#vim /etc/shadow
/dev/ttyp1
12:32:22
#apt-get install mc
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Предлагаемые пакеты:
  zip unzip arj
НОВЫЕ пакеты, которые будут установлены:
  mc
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 55 пакетов не обновлено.
Необходимо скачать 2137kБ архивов.
После распаковки объем занятого дискового пространства возрастёт на 5526kB.
Получено:1 http://debian.org.ua etch/main mc 1:4.6.1-6 [2137kB]
Получено 2137kB за 2s (1012kB/c)
Выбор ранее не выбранного пакета mc.
(Чтение базы данных... на данный момент установлено 22620 файлов и каталогов.)
Распаковывается пакет mc (из файла .../mc_1%3a4.6.1-6_i386.deb)...
Настраивается пакет mc (4.6.1-6) ...
прошло 28 минут
/dev/ttyp1
13:00:47
#ls /etc/
adduser.conf       crontab         groff        inittab          login.defs      modprobe.d     passwd     rc.local     sudoers
adjtime            cron.weekly     group        inputrc          logrotate.conf  modules        passwd-    rcS.d        sysctl.conf
alternatives       debconf.conf    group-       issue            logrotate.d     motd           perl       resolv.conf  syslog.conf
apt                debian_version  gshadow      issue.net        lsb-base        motd.tail      profile    rmt          terminfo
bash.bashrc        default         gshadow-     kbd              lynx.cfg        mtab           protocols  rpc          timezone
bash_completion    defoma          gtk-2.0      ldap             magic           nanorc         python     screenrc     ucf.conf
bash_completion.d  deluser.conf    host.conf    ld.so.cache      mailcap         Net            python2.4  securetty    udev
calendar           dhcp3           hostname     ld.so.conf       mailcap.order   network        rc0.d      security     updatedb.conf
console            dm              hosts        ld.so.conf.d     manpath.config  networks       rc1.d      services     vim
console-cyrillic   dpkg            hosts.allow  ld.so.hwcappkgs  mc              nsswitch.conf  rc2.d      shadow       vnc.conf
cron.d             fonts           hosts.deny   lilalo           menu            opt            rc3.d      shadow-      wgetrc
cron.daily         fstab           iceweasel    locale.gen       menu-methods    pam.conf       rc4.d      shells       X11
cron.hourly        gconf           inetd.conf   localtime        mime.types      pam.d          rc5.d      skel
cron.monthly       gdm             init.d       logcheck         mke2fs.conf     pango          rc6.d      ssh
прошло >3 часов
/dev/ttyp5
16:54:44
#pppoeconf
bash: pppoeconf: command not found
16:54:50
#crontab
crontab: usage error: file name must be specified for replace
usage:  crontab [-u user] file
        crontab [-u user] { -e | -l | -r }
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
прошло 32 минуты
17:27:04
#crontab -l
no crontab for root
17:27:12
#crontab -u user
no crontab for user
17:27:33
#ls /etc/apt/
apt.conf.d/     secring.gpg     sources.list    sources.list.d/ trustdb.gpg     trusted.gpg     trusted.gpg~
17:27:33
#vim /etc/apt/sources.list
прошло 15 минут
17:43:13
#vim /etc/apt/apt.conf.d/70debconf
прошло 23 минуты
18:06:47
#man dpkg
18:09:06
#dpkg -h
Использование: dpkg [<параметр> ...] <команда>
Команды:
  -i|--install      <имя файла .deb> ... | -R|--recursive <каталог> ...
  --unpack          <имя файла .deb> ... | -R|--recursive <каталог> ...
  -A|--record-avail <имя файла .deb> ... | -R|--recursive <каталог> ...
  --configure              <имя пакета> ... | -a|--pending
  -r|--remove |            <имя пакета> ... | -a|--pending
  -P|--purge               <имя пакета> ... | -a|--pending
  --get-selections [<шаблон> ...]     вывести список в стандартный поток
                                      вывода список выбранных пакетов.
...
                                      обнаружения <n> ошибок.
Операторы сравнения, возможные в --compare-versions:
  lt le eq ne ge gt       (при отсутствии версии рассматривается
  самая ранняя);
  lt-nl le-nl ge-nl gt-nl (при отсутствии версии рассматривается
  самая поздняя);
  < << <= = >= >> >       (для совместимости с синтаксисом
  файлов control).
Программы `dselect' или 'aptitude' предоставляют дружественный интерфейс
управления пакетами.
18:11:46
#apt-get update
Получено:1 http://debian.org.ua etch Release.gpg [394B]
Получено:2 http://debian.org.ua etch Release [67,8kB]
Ign http://debian.org.ua etch/main Packages/DiffIndex
Получено:3 http://debian.org.ua etch/contrib Packages [59,0kB]
Получено:4 http://debian.org.ua etch/non-free Packages [83,3kB]
Получено:5 http://debian.org.ua etch/main Packages [4282kB]
Получено 4492kB за 2s (1559kB/c)
Чтение списков пакетов... Готово
18:12:08
#apt-get upgrade
Настраивается пакет initscripts (2.86.ds1-38+etchnhalf.1) ...
(Чтение базы данных... на данный момент установлено 22834 файлов и каталогов.)
Подготовка к замене пакета libblkid1 1.39+1.40-WIP-2006.11.14+dfsg-2 (используется файл .../libblkid1_1.39+1.40-WIP-2006.11.14+dfsg-2etch1_i386.deb)...
Распаковывается замена для пакета libblkid1 ...
Настраивается пакет libblkid1 (1.39+1.40-WIP-2006.11.14+dfsg-2etch1) ...
(Чтение базы данных... на данный момент установлено 22834 файлов и каталогов.)
Подготовка к замене пакета libcomerr2 1.39+1.40-WIP-2006.11.14+dfsg-2 (используется файл .../libcomerr2_1.39+1.40-WIP-2006.11.14+dfsg-2etch1_i386.deb)...
Распаковывается замена для пакета libcomerr2 ...
Настраивается пакет libcomerr2 (1.39+1.40-WIP-2006.11.14+dfsg-2etch1) ...
(Чтение базы данных... на данный момент установлено 22834 файлов и каталогов.)
...
Настраивается пакет vim-doc (7.0-122+1etch5) ...
Настраивается пакет xserver-xorg-core (1.1.1-21etch5) ...
Настраивается пакет xserver-xorg-video-nv (2.0.3-1) ...
Настраивается пакет xterm (222-1etch4) ...
Настраивается пакет debconf-i18n (1.5.11etch2) ...
Настраивается пакет perl-modules (5.8.8-7etch6) ...
Настраивается пакет debconf (1.5.11etch2) ...
Настраивается пакет libssl0.9.8 (0.9.8c-4etch4) ...
Checking for services that may need to be restarted...done.
Checking init scripts...
18:14:06
#apt-get distr
E: Неверная операция distrupgrade
18:14:20
#apt-get distupgrade
E: Неверная операция distupgrade
18:14:34
#apt-get dis
E: Неверная операция disupgrade

Среда (05/20/09)

/dev/ttyp1
14:52:11
#ls -l /etc/shadow
-rw-r----- 1 root shadow 8825 2008-03-14 11:04 /etc/shadow
14:52:17
#chgrp root

14:52:27
#ls -l /etc/shadow
-rw-r----- 1 root root 8825 2008-03-14 11:04 /etc/shadow

Статистика

Время первой команды журнала15:07:43 2009- 4-30
Время последней команды журнала14:52:27 2009- 5-20
Количество командных строк в журнале34
Процент команд с ненулевым кодом завершения, %23.53
Процент синтаксически неверно набранных команд, % 5.88
Суммарное время работы с терминалом *, час 1.59
Количество командных строк в единицу времени, команда/мин 0.36
Частота использования команд
apt-get6|===============| 15.38%
vim4|==========| 10.26%
grep4|==========| 10.26%
ls4|==========| 10.26%
crontab3|=======| 7.69%
ping2|=====| 5.13%
strings2|=====| 5.13%
dpkg1|==| 2.56%
update1|==| 2.56%
ps1|==| 2.56%
man1|==| 2.56%
chmod1|==| 2.56%
/etc/init.d/gdm1|==| 2.56%
whereis1|==| 2.56%
netstat1|==| 2.56%
less1|==| 2.56%
who1|==| 2.56%
pppoeconf1|==| 2.56%
chgrp1|==| 2.56%
pstree1|==| 2.56%
mandb1|==| 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$