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

Содержание

Журнал

Пятница (03/28/08)

/dev/ttyp0
17:53:21
$ps aux
USER    PID %CPU %MEM   VSZ   RSS  TT  STAT STARTED      TIME COMMAND
root     10 94.2  0.0     0     8  ??  RL    4:37PM  15:05.89 [idle: cpu0]
root   2263  0.8  1.5  8860  7644  ??  Ss    4:52PM   0:00.56 l3-agent (perl5.8
user   2334  0.5  0.2  1348   948  p0  S+    4:53PM   0:00.03 script -t 0 -q /h
root     21  0.1  0.0     0     8  ??  WL    4:37PM   0:05.01 [irq14: ata0]
root      0  0.0  0.0     0     0  ??  WLs   4:37PM   0:00.00 [swapper]
root      1  0.0  0.1   768   368  ??  SLs   4:37PM   0:00.02 /sbin/init --
root      2  0.0  0.0     0     8  ??  DL    4:37PM   0:00.06 [g_event]
root      3  0.0  0.0     0     8  ??  DL    4:37PM   0:04.48 [g_up]
root      4  0.0  0.0     0     8  ??  DL    4:37PM   0:06.13 [g_down]
...
root   1039  0.0  0.2  1352   948  v3  Is+   4:37PM   0:00.00 /usr/libexec/gett
root   1040  0.0  0.2  1352   948  v4  Is+   4:37PM   0:00.00 /usr/libexec/gett
root   1041  0.0  0.2  1352   948  v5  Is+   4:37PM   0:00.00 /usr/libexec/gett
root   1042  0.0  0.2  1352   948  v6  Is+   4:37PM   0:00.00 /usr/libexec/gett
root   1043  0.0  0.2  1352   948  v7  Is+   4:37PM   0:00.00 /usr/libexec/gett
root    294  0.0  0.2  1472  1072 con- I+    4:37PM   0:00.01 dhclient: re0 [pr
root   2300  0.0  0.4  3288  2104  p0  Ss    4:52PM   0:00.02 /usr/local/bin/ba
root   2333  0.0  0.3  1804  1420  p0  S     4:53PM   0:00.01 su - user
user   2377  0.0  0.4  3280  2100  p1  Ss    4:53PM   0:00.02 /usr/local/bin/ba
user   2419  0.0  0.2  1480   968  p1  R+    4:53PM   0:00.00 ps aux
17:53:23
$vim .bash_profile
--- /tmp/l3-saved-2377.18889.1963	2008-03-28 16:53:41.000000000 +0000
+++ .bash_profile	2008-03-28 16:53:47.000000000 +0000
@@ -1,2 +1,2 @@
-l3-agent
-. .bashrc
+#l3-agent
+#. .bashrc

Понедельник (06/22/09)

/dev/ttyp0
11:19:42
$ping nt.ua
PING nt.ua (212.40.34.157): 56 data bytes
64 bytes from 212.40.34.157: icmp_seq=0 ttl=56 time=4.307 ms
64 bytes from 212.40.34.157: icmp_seq=1 ttl=56 time=4.447 ms
^C
--- nt.ua ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 4.307/4.377/4.447/0.070 ms
11:19:42
$ping nt.ua
PING nt.ua (212.40.34.157): 56 data bytes
64 bytes from 212.40.34.157: icmp_seq=0 ttl=56 time=4.307 ms
64 bytes from 212.40.34.157: icmp_seq=1 ttl=56 time=4.447 ms
^C
--- nt.ua ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 4.307/4.377/4.447/0.070 ms

Среда (07/08/09)

/dev/ttyv2
19:19:49
$logout
bash: logout: not login shell: use `exit'
/dev/ttyv2
19:22:26
$touch ~/.hushlogin

/dev/ttyp1
19:27:20
$logname
root
/dev/ttyv2
19:27:38
$logname
user
19:27:44
$whoami
user
19:27:48
$su -
Password:
l3-agent is already running: pid=64684; pidfile=/root/.lilalo/l3-agent.pid
19:27:48
$su -
Password:
l3-agent is already running: pid=64684; pidfile=/root/.lilalo/l3-agent.pid
19:27:48
$su -
Password:
l3-agent is already running: pid=64684; pidfile=/root/.lilalo/l3-agent.pid
19:28:12
#exit
exit
19:28:25
$id
uid=1001(user) gid=0(wheel) groups=0(wheel)
19:28:25
$id
uid=1001(user) gid=0(wheel) groups=0(wheel)
19:28:25
$id
uid=1001(user) gid=0(wheel) groups=0(wheel)
19:28:25
$id
uid=1001(user) gid=0(wheel) groups=0(wheel)
19:28:28
$su -
Password:
l3-agent is already running: pid=64684; pidfile=/root/.lilalo/l3-agent.pid
19:28:28
$su -
Password:
l3-agent is already running: pid=64684; pidfile=/root/.lilalo/l3-agent.pid
19:28:28
$su -
Password:
l3-agent is already running: pid=64684; pidfile=/root/.lilalo/l3-agent.pid
19:28:46
#logname
user
19:28:52
#whoami
root
19:29:00
#vim /etc/master.passwd
19:29:00
#vim /etc/master.passwd
19:29:00
#vim /etc/master.passwd
19:29:22
# 20 =1Sp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/
exit
19:29:22
# 20 =1Sp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/
exit
19:29:22
# 20 =1Sp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/
exit
/dev/ttyv2
19:35:26
$eaxit
bash: eaxit: command not found

Пятница (07/10/09)

/dev/ttyv2
17:25:36
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:25:50
$crontab -e
* * * * * user vim:
~
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
~
crontab: no changes made to crontab
17:28:30
$date
Fri Jul 10 15:28:34 UTC 2009
17:28:34
$crontab -e
~
~
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
/tmp/crontab.vxFbqeYgxL: 1 lines, 20 characters.
crontab: installing new crontab
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:30:57
$date
Fri Jul 10 15:31:01 UTC 2009
17:31:01
$date
Fri Jul 10 15:31:35 UTC 2009
17:31:35
$date
Fri Jul 10 15:32:05 UTC 2009
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:05
$crontab
crontab: usage error: file name must be specified for replace
usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }
17:32:16
$crontab -u user
crontab: must be privileged to use -u
17:32:24
$crontab -e
~
~
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
/tmp/crontab.QOw9cvl8ue: 1 lines, 15 characters.
crontab: installing new crontab
17:33:00
$crontab -e
~
~
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
/tmp/crontab.Trg92NRk3z: 1 lines, 15 characters.
crontab: installing new crontab
You have new mail in /var/mail/user
17:33:31
$date
Fri Jul 10 15:33:38 UTC 2009
17:33:31
$date
Fri Jul 10 15:33:38 UTC 2009
17:33:31
$date
Fri Jul 10 15:33:38 UTC 2009
17:33:38
$date
Fri Jul 10 15:34:29 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:29
$date
Fri Jul 10 15:34:55 UTC 2009
17:34:55
$date
Fri Jul 10 15:35:02 UTC 2009
17:35:02
$crontab -r
remove crontab for user? y
17:35:02
$crontab -r
remove crontab for user? y
17:35:31
$crontab -e
~
~
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
~
crontab: no changes made to crontab

Статистика

Время первой команды журнала17:53:21 2008- 3-28
Время последней команды журнала17:35:31 2009- 7-10
Количество командных строк в журнале70
Процент команд с ненулевым кодом завершения, %14.29
Процент синтаксически неверно набранных команд, % 1.43
Суммарное время работы с терминалом *, час 0.43
Количество командных строк в единицу времени, команда/мин 2.74
Частота использования команд
date25|===================================| 35.71%
crontab16|======================| 22.86%
su6|========| 8.57%
id4|=====| 5.71%
vim4|=====| 5.71%
logname3|====| 4.29%
203|====| 4.29%
whoami2|==| 2.86%
ping2|==| 2.86%
ps1|=| 1.43%
touch1|=| 1.43%
logout1|=| 1.43%
eaxit1|=| 1.43%
exit1|=| 1.43%
____
*) Интервалы неактивности длительностью 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$