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

Содержание

Журнал

Среда (10/25/06)

/dev/pts/2
15:50:42
$su -
Password:
l3-agent is already running: pid=4659; pidfile=/root/.lilalo/l3-agent.pid
15:50:55
#route -s
route: invalid option -- s
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
       route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
       route {-V|--version}                  Display version/author and exit.
        -v, --verbose            be verbose
        -n, --numeric            don't resolve names
        -e, --extend             display other/more information
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB
  <AF>=Use '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
    x25 (CCITT X.25)
15:51:00
#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.15.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.15.15   0.0.0.0         UG    0      0        0 eth0
15:51:03
#ifconfig eth0 192.168.18.2

15:51:35
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:60:08:CB:5F:C6
          inet addr:192.168.18.2  Bcast:192.168.18.255  Mask:255.255.255.0
          inet6 addr: fe80::260:8ff:fecb:5fc6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:39718 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50260 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15089073 (14.3 MiB)  TX bytes:42337645 (40.3 MiB)
          Interrupt:10 Base address:0xcf00
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2229 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2229 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:280785 (274.2 KiB)  TX bytes:280785 (274.2 KiB)
15:51:40
#man ifconfig
15:52:33
#ping mail.ru
ping: unknown host mail.ru
15:53:22
#route add default gw 192.168.18.1

15:53:51
#ping mail.ru
ping: unknown host mail.ru
15:54:03
#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.18.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.18.1    0.0.0.0         UG    0      0        0 eth0
15:54:09
#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.18.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.18.1    0.0.0.0         UG    0      0        0 eth0
15:54:42
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:60:08:CB:5F:C6
          inet addr:192.168.18.2  Bcast:192.168.18.255  Mask:255.255.255.0
          inet6 addr: fe80::260:8ff:fecb:5fc6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:39829 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50306 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15104432 (14.4 MiB)  TX bytes:42352630 (40.3 MiB)
          Interrupt:10 Base address:0xcf00
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2307 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2307 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:289072 (282.2 KiB)  TX bytes:289072 (282.2 KiB)
15:54:46
#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.18.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.18.1    0.0.0.0         UG    0      0        0 eth0
15:55:05
#ping mail.ru

15:55:38
#traceroute mail.ru

15:55:54
#traceroute mail.ru -n

15:56:00
#traceroute -n mail.ru
traceroute to mail.ru (194.67.57.26), 30 hops max, 40 byte packets
 1  192.168.18.1  0.888 ms  7.633 ms  6.759 ms
 2  10.0.35.1  0.476 ms  7.693 ms  6.466 ms
 3  * * *
 4  * * *
 5  * *
15:56:49
#ping mail.ru
PING mail.ru (194.67.57.26) 56(84) bytes of data.
64 bytes from mail.ru (194.67.57.26): icmp_seq=1 ttl=110 time=105 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=2 ttl=110 time=115 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=3 ttl=110 time=126 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=4 ttl=110 time=111 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=5 ttl=110 time=104 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=6 ttl=110 time=105 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=7 ttl=110 time=107 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=8 ttl=110 time=106 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=9 ttl=110 time=121 ms
--- mail.ru ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 7998ms
rtt min/avg/max/mdev = 104.471/111.626/126.313/7.519 ms
15:57:00
#ping 192.168.16.1
PING 192.168.16.1 (192.168.16.1) 56(84) bytes of data.
64 bytes from 192.168.16.1: icmp_seq=1 ttl=64 time=0.255 ms
64 bytes from 192.168.16.1: icmp_seq=2 ttl=64 time=0.217 ms
--- 192.168.16.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.217/0.236/0.255/0.019 ms
15:57:55
#ping mail.ru
PING mail.ru (194.67.57.26) 56(84) bytes of data.
64 bytes from mail.ru (194.67.57.26): icmp_seq=1 ttl=110 time=109 ms
64 bytes from mail.ru (194.67.57.26): icmp_seq=2 ttl=110 time=105 ms
--- mail.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 105.176/107.238/109.301/2.088 ms
15:57:58
#mc
16:05:25
#hostname
    -f, --fqdn, --long    long host name (FQDN)
    -d, --domain          DNS domain name
    -y, --yp, --nis       NIS/YP domain name
    -F, --file            read host name or NIS domain name from given file
   This command can get or set the host name or the NIS domain name. You can
   also get the DNS domain or the FQDN (fully qualified domain name).
   Unless you are using bind or NIS for host lookups you can change the
   FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
   part of the FQDN) in the /etc/hosts file.
[root@linux2:~]#
                 linux3
16:05:30
#hostname -F
    -i, --ip-address      addresses for the host name
    -f, --fqdn, --long    long host name (FQDN)
    -d, --domain          DNS domain name
    -y, --yp, --nis       NIS/YP domain name
    -F, --file            read host name or NIS domain name from given file
   This command can get or set the host name or the NIS domain name. You can
   also get the DNS domain or the FQDN (fully qualified domain name).
   Unless you are using bind or NIS for host lookups you can change the
   FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
   part of the FQDN) in the /etc/hosts file.
16:05:52
#hostname -F /etc/hostname
    -i, --ip-address      addresses for the host name
    -f, --fqdn, --long    long host name (FQDN)
    -d, --domain          DNS domain name
    -y, --yp, --nis       NIS/YP domain name
    -F, --file            read host name or NIS domain name from given file
   This command can get or set the host name or the NIS domain name. You can
   also get the DNS domain or the FQDN (fully qualified domain name).
   Unless you are using bind or NIS for host lookups you can change the
   FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
   part of the FQDN) in the /etc/hosts file.
16:06:11
#hostname
host1
16:06:13
#hostname -f
hostname: Unknown host
16:06:25
#mc
16:08:31
#hostname -f
host1.vlad.linux.nt
16:08:33
#cd /etc/bind
    -i, --ip-address      addresses for the host name
    -f, --fqdn, --long    long host name (FQDN)
    -d, --domain          DNS domain name
    -y, --yp, --nis       NIS/YP domain name
    -F, --file            read host name or NIS domain name from given file
   This command can get or set the host name or the NIS domain name. You can
   also get the DNS domain or the FQDN (fully qualified domain name).
   Unless you are using bind or NIS for host lookups you can change the
   FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
   part of the FQDN) in the /etc/hosts file.
16:08:49
#vi /etc/bind/db.vlad.linux.nt]
16:09:50
#vi /etc/bind/db.vlad.linux.nt]
16:14:51
#vi /etc/bind/db.vlad.linux.nt
16:15:06
#ls
db.0    db.empty  db.root            named.conf.local    zones.rfc1918
db.127  db.kpi    db.vlad.linux.nt]  named.conf.options
db.255  db.local  named.conf         rndc.key
16:15:11
#vi /etc/bind/db.vlad.linux.nt]
16:15:25
#mv /etc/bind/db.vlad.linux.nt] /etc/bind/db.vlad.linux.nt

16:15:43
#ls
db.0    db.empty  db.root           named.conf.local    zones.rfc1918
db.127  db.kpi    db.vlad.linux.nt  named.conf.options
db.255  db.local  named.conf        rndc.key
16:15:45
#vi /etc/bind/db.vlad.linux.nt
16:17:52
#vi /etc/bind/db.vlad.linux.nt
16:20:54
#vi /etc/bind/db.16.168.192.in-addr-arpa
прошло 67 минут
17:28:29
#mc
прошло 18 минут
17:46:58
#/etc/init.d/named restart
bash: /etc/init.d/named: No such file or directory
17:47:25
#/etc/init.d/bind restart
bash: /etc/init.d/bind: No such file or directory
17:47:35
#/etc/init.d/bind9 restart
Stopping domain name service...: bind.
Starting domain name service...: bind failed!
17:47:44
#vi /var/log/daemon.log
17:49:09
#mc
17:50:51
#/etc/init.d/bind9 restart
Stopping domain name service...: bindrndc: connect failed: connection refused
 failed!
^[[AStarting domain name service...: bind^[[A failed!
17:50:59
#vi /var/log/daemon.log
17:51:16
#mc
17:53:35
#/etc/init.d/bind9 restart
Stopping domain name service...: bindrndc: connect failed: connection refused
 failed!
Starting domain name service...: bind failed!
17:53:44
#ps aux |grep bind
root     20345  0.0  0.1   3740   732 pts/7    R+   17:54   0:00 grep bind
17:54:04
#/etc/init.d/bind9 start
Starting domain name service...: bind failed!
17:54:13
#vi /var/log/daemon.log
17:54:32
#mc
17:55:16
#/etc/init.d/bind9 start
Starting domain name service...: bind failed!
17:55:19
#vi /var/log/daemon.log
17:56:32
#mc
17:57:25
#mc
18:00:06
#/etc/init.d/bind9 start
Starting domain name service...: bind failed!
18:00:09
#vi /var/log/daemon.log
18:00:41
#mc
18:01:39
#/etc/init.d/bind9 start
Starting domain name service...: bind failed!
18:01:41
#vi /var/log/daemon.log

Статистика

Время первой команды журнала15:50:42 2006-10-25
Время последней команды журнала18:01:41 2006-10-25
Количество командных строк в журнале62
Процент команд с ненулевым кодом завершения, %14.52
Процент синтаксически неверно набранных команд, % 3.23
Суммарное время работы с терминалом *, час 1.06
Количество командных строк в единицу времени, команда/мин 0.98
Частота использования команд
vi13|====================| 20.63%
mc9|==============| 14.29%
/etc/init.d/bind97|===========| 11.11%
ping6|=========| 9.52%
hostname6|=========| 9.52%
route6|=========| 9.52%
ifconfig3|====| 4.76%
traceroute3|====| 4.76%
ls2|===| 3.17%
ps1|=| 1.59%
man1|=| 1.59%
grep1|=| 1.59%
/etc/init.d/bind1|=| 1.59%
mv1|=| 1.59%
cd1|=| 1.59%
/etc/init.d/named1|=| 1.59%
su1|=| 1.59%
____
*) Интервалы неактивности длительностью 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$