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

Содержание

Журнал

Вторник (05/22/07)

/dev/pts/3
15:24:51
#w | sed '1,2d'
root     tty1     -                13:58   15:48m 28.08s  0.08s script -f -q /r
root     tty2     -                14:04    1:19   0.16s  0.00s script -f -q /r
root     pts/0    net.nt           13:57    0.00s 11.33s  0.02s script -f -q /r
root     pts/3    :pts/2:S.0       13:58    0.00s  1.59s  0.20s script -f -q /r
15:24:58
#w | sed '/root/ d'
 15:25:19 up  1:34,  4 users,  load average: 0,17, 0,12, 0,04
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
15:25:19
#w | sed '1iTEST'
TEST
 15:25:52 up  1:35,  4 users,  load average: 0,17, 0,12, 0,04
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                13:58   16:42m 28.50s  0.08s script -f -q /r
root     tty2     -                14:04    1:20   0.16s  0.00s script -f -q /r
root     pts/0    net.nt           13:57    0.00s 11.59s  0.02s script -f -q /r
root     pts/3    :pts/2:S.0       13:58    0.00s  1.59s  0.20s script -f -q /r
15:25:53
#w | sed '1aTEST'
 15:26:00 up  1:35,  4 users,  load average: 0,16, 0,12, 0,04
TEST
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                13:58   16:50m 28.76s  0.08s script -f -q /r
root     tty2     -                14:04    1:20   0.16s  0.00s script -f -q /r
root     pts/0    net.nt           13:57    0.00s 11.71s  0.02s script -f -q /r
root     pts/3    :pts/2:S.0       13:58    0.00s  1.59s  0.20s script -f -q /r
15:26:00
#w | sed '/root/ cНЕТ\ НИКОГО'
 15:26:44 up  1:35,  4 users,  load average: 0,13, 0,12, 0,05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
НЕТ НИКОГО
НЕТ НИКОГО
НЕТ НИКОГО
НЕТ НИКОГО
15:26:44
#w | sed 'y/root/ROOT/'
 15:27:29 up  1:36,  4 useRs,  lOad aveRage: 0,11, 0,11, 0,05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ROOT     TTy1     -                13:58   18:19m 29.74s  0.08s scRipT -f -q /R
ROOT     TTy2     -                14:04    1:22   0.16s  0.00s scRipT -f -q /R
ROOT     pTs/0    neT.nT           13:57    0.00s 12.14s  0.02s scRipT -f -q /R
ROOT     pTs/3    :pTs/2:S.0       13:58    0.00s  1.59s  0.20s scRipT -f -q /R
15:27:29
#w | sed 'y/root/user/'
 15:27:45 up  1:37,  4 useus,  lsad aveuage: 0,32, 0,16, 0,06
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ussr     rry1     -                13:58   18:35m 29.96s  0.08s scuipr -f -q /u
ussr     rry2     -                14:04    1:22   0.16s  0.00s scuipr -f -q /u
ussr     prs/0    ner.nr           13:57    0.00s 12.26s  0.02s scuipr -f -q /u
ussr     prs/3    :prs/2:S.0       13:58    0.00s  1.60s  0.20s scuipr -f -q /u
15:27:45
#w | sed 's/root/user/'
 15:27:58 up  1:37,  4 users,  load average: 0,32, 0,16, 0,06
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user     tty1     -                13:58   18:48m 30.25s  0.08s script -f -q /r
user     tty2     -                14:04    1:22   0.16s  0.00s script -f -q /r
user     pts/0    net.nt           13:57    0.00s 12.42s  0.02s script -f -q /r
user     pts/3    :pts/2:S.0       13:58    0.00s  1.60s  0.20s script -f -q /r
15:27:58
#echo "w | sed 's/root/user/'" >> .bashrc
  3 export PS1='\h:\w\$ '
  4 umask 022
  5
  6 # You may uncomment the following lines if you want `ls' to be colorized:
  7  export LS_OPTIONS='--color=auto'
  8  eval "`dircolors`"
  9  alias ls='ls $LS_OPTIONS'
 10 # alias ll='ls $LS_OPTIONS -l'
 11 # alias l='ls $LS_OPTIONS -lA'
 12 #
...
~
~
~
~
~
~
~
~
~
~                                                                         19,1         Весь
15:28:23
#vim .bashrc
15:28:40
#. .bashrc

15:28:42
#w
 15:28:44 up  1:38,  4 users,  load average: 0,28, 0,17, 0,07
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user     tty1     -                13:58   19:34m 31.27s  0.08s script -f -q /r
user     tty2     -                14:04    1:23   0.16s  0.00s script -f -q /r
user     pts/0    net.nt           13:57    0.00s 13.03s  0.03s script -f -q /r
user     pts/3    :pts/2:S.0       13:58    0.00s  1.60s  0.20s script -f -q /r
15:28:44
#vim .bashrc
15:29:16
#. .bashrc

15:29:17
#w | cat -n
     1   15:29:24 up  1:38,  4 users,  load average: 0,48, 0,23, 0,09
     2  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
     3  user     tty1     -                13:58   20:14m 32.04s  0.08s script -f -q /r
     4  user     tty2     -                14:04    1:24   0.16s  0.00s script -f -q /r
     5  user     pts/0    net.nt           13:57    0.00s 13.15s  0.03s script -f -q /r
     6  user     pts/3    :pts/2:S.0       13:58    0.00s  1.66s  0.20s script -f -q /r
15:29:24
#w | sed =
1
 15:29:30 up  1:38,  4 users,  load average: 0,52, 0,24, 0,10
2
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
3
user     tty1     -                13:58   20:20m 32.22s  0.08s script -f -q /r
4
user     tty2     -                14:04    1:24   0.16s  0.00s script -f -q /r
5
user     pts/0    net.nt           13:57    0.00s 13.20s  0.03s script -f -q /r
6
user     pts/3    :pts/2:S.0       13:58    0.00s  1.67s  0.21s script -f -q /r
15:29:46
#cd /tmp

15:29:58
#echo"Петров
> ИваноÐв
> СидоровЭ" >> /tmp/names
bash: echoПетров
Иванов
Сидоров: command not found
15:30:30
#echo"Петров
Иванов
15:30:30
#echo "Петров
Иванов
Сидоров" >> /tmp/names
15:30:42
#cat /tmp/names
Петров
Иванов
Сидоров
15:30:45
#cat /tmp/names | sed '/Сидоров/w /tmp/Sidorov'
Петров
Иванов
Сидоров
15:31:34
#ls
lost+found  names  Sidorov
15:31:42
#cat Sidorov
Сидоров
15:31:46
#cat /tmp/names | sed '/ов/w /tmp/Sidorov'
Петров
Иванов
Сидоров
15:32:08
#cat Sidorov
Петров
Иванов
Сидоров
15:32:09
#apt-get install sed
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Будут установлены следующие дополнительные пакеты:
  squid-common
Предлагаемые пакеты:
  squidclient squid-cgi logcheck-database resolvconf
НОВЫЕ пакеты, которые будут установлены:
  squid squid-common
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 105 пакетов не обновлено.
Необходимо скачать 1093kБ архивов.
После распаковки объем занятого дискового пространства возрастёт на 6607kB.
Хотите продолжить [Д/н]? y
0% [Ожидание]
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Уже установлена самая новая версия sed.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 105 пакетов не обновлено.
15:32:54
#apt-get install squid
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Будут установлены следующие дополнительные пакеты:
  squid-common
Предлагаемые пакеты:
  squidclient squid-cgi logcheck-database resolvconf
НОВЫЕ пакеты, которые будут установлены:
  squid squid-common
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 105 пакетов не обновлено.
Необходимо скачать 1093kБ архивов.
...
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
/etc/init.d/squid: line 74:  4792 Aborted                 $DAEMON -z
FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'
Squid Cache (Version 2.6.STABLE5): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.004 user + 0.004 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
/etc/init.d/squid: line 74:  4794 Aborted                 start-stop-daemon --quiet --start --pidfile $PIDFILE --chuid $CHUID --exec $DAEMON -- $SQUID_ARGS </dev/null
 failed!
15:33:25
#wc -l /etc/squid/squid.conf
4348 /etc/squid/squid.conf
15:33:37
#vim /etc/squid/squid.conf
15:34:14
#grep -v #|^\ $ /etc/squid/squid.conf
Использование: grep [OPTION]... PATTERN [FILE]...
Попробуйте `grep --help' для получения более подробного описания.
15:34:36
#egrep -v #|^\ $ /etc/squid/squid.conf
Использование: grep [OPTION]... PATTERN [FILE]...
Попробуйте `grep --help' для получения более подробного описания.
15:34:41
#egrep -v '#|^\ $' /etc/squid/squid.conf
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
cache_effective_group proxy
coredump_dir /var/spool/squid
15:34:53
#egrep -v '#|^\ $' /etc/squid/squid.conf | cat -s
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
...
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
cache_effective_group proxy
coredump_dir /var/spool/squid
15:35:02
#grep -v '#|^\ $' /etc/squid/squid.conf | cat -s
#                    use 'sslcert=/path/to/ssl/certificate' to specify a client
#                    SSL certificate to use when connecting to this peer.
#
#                    use 'sslkey=/path/to/ssl/key' to specify the private SSL
#                    key corresponding to sslcert above. If 'sslkey' is not
#                    specified then 'sslcert' is assumed to reference a
#                    combined file containing both the certificate and the key.
#
#                    use sslversion=1|2|3|4 to specify the SSL version to use
#                    when connecting to this peer
...
#       'icp_query_timeout' directive.
#
#Default:
# maximum_icp_query_timeout 2000
#  TAG: mcast_icp_query_timeout (msec)
#       For multicast peers, Squid regularly sends out ICP "probes" to
#       count how many other peers are listening on the given multicast
#       address.  This value specifies how long Squid should wait to
#       count all the replies.  The default is 2000 msec, or 2
#       seconds.
15:35:41
#grep -v '#|^\ $' /etc/squid/squid.conf | cat -s

15:35:58
#grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
15:36:40
#grep -c root /etc/passwd
1
15:36:45
#grep -l root /etc/*
/etc/bash.bashrc
/etc/bash_completion
/etc/ca-certificates.conf
/etc/crontab
/etc/group
/etc/group-
/etc/gshadow
/etc/gshadow-
/etc/inetd.conf
/etc/logrotate.conf
/etc/mailcap.order
/etc/passwd
/etc/securetty
/etc/services
/etc/shadow
/etc/shadow-
/etc/sudoers
15:37:06
#ssh -f -N -R 26000:127.0.0.1:22 10.0.17.1
root@10.0.17.1's password:
Permission denied, please try again.
root@10.0.17.1's password:
15:38:19
#netstat -lnp | grep:2600
bash: grep:2600: command not found
15:38:35
#netstat -lnp | grep :2600
clint@10.0.17.1's password:
Permission denied, please try again.
clint@10.0.17.1's password:
15:38:39
#ssh clint@10.0.17.1
clint@10.0.17.1's password:
Permission denied, please try again.
clint@10.0.17.1's password:
clint~$
clint~$
clint~$
clint~$ sudo netstat -lnp | grep :26000
Password:
tcp        0      0 127.0.0.1:26000         0.0.0.0:*               LISTEN     9141/sshd: root
tcp6       0      0 ::1:26000               :::*                    LISTEN     9141/sshd: root
...
Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
root@127.0.0.1's password:
Last login: Tue May 22 14:04:22 2007
Linux student1.net.nt 2.6.18-4-686 #1 SMP Mon Mar 26 17:17:36 UTC 2007 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
l3-agent is already running: pid=2552; pidfile=/root/.lilalo/l3-agent.pid
15:40:02
#exit
Connection to 10.0.17.1 closed.
15:41:54
#ssh clint@10.0.17.1
clint@10.0.17.1's password:
clint~$ sudo netstat -lnp | grep :26000
tcp        0      0 127.0.0.1:26000         0.0.0.0:*               LISTEN     9141/sshd: root
tcp6       0      0 ::1:26000               :::*                    LISTEN     9141/sshd: root
clint~$ ps
15:41:54
#ssh clint@10.0.17.1
Connection to 10.0.17.1 closed.
15:44:31
#ssh clint@10.0.17.1

15:44:31
#ssh clint@10.0.17.1
Connection to 10.0.17.1 closed.
15:44:46
#cat names
Петров
Иванов
Сидоров
15:45:12
#awk names

Файлы

  • -n
  • -s
  • /tmp/names
  • Sidorov
  • names
  • -n
    >
         1   15:29:24 up  1:38,  4 users,  load average: 0,48, 0,23, 0,09
         2  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
         3  user     tty1     -                13:58   20:14m 32.04s  0.08s script -f -q /r
         4  user     tty2     -                14:04    1:24   0.16s  0.00s script -f -q /r
         5  user     pts/0    net.nt           13:57    0.00s 13.15s  0.03s script -f -q /r
         6  user     pts/3    :pts/2:S.0       13:58    0.00s  1.66s  0.20s script -f -q /r
    
    -s
    >
    http_port 3128
    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    cache deny QUERY
    acl apache rep_header Server ^Apache
    broken_vary_encoding allow apache
    access_log /var/log/squid/access.log squid
    hosts_file /etc/hosts
    refresh_pattern ^ftp:           1440    20%     10080
    refresh_pattern ^gopher:        1440    0%      1440
    refresh_pattern .               0       20%     4320
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl to_localhost dst 127.0.0.0/8
    acl purge method PURGE
    acl CONNECT method CONNECT
    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost
    http_access deny all
    http_reply_access allow all
    icp_access allow all
    cache_effective_group proxy
    coredump_dir /var/spool/squid
    
    /tmp/names
    >
    Петров
    Иванов
    Сидоров
    
    Sidorov
    >
    Петров
    Иванов
    Сидоров
    
    names
    >
    Петров
    Иванов
    Сидоров
    

    Статистика

    Время первой команды журнала15:24:51 2007- 5-22
    Время последней команды журнала15:45:12 2007- 5-22
    Количество командных строк в журнале50
    Процент команд с ненулевым кодом завершения, % 8.00
    Процент синтаксически неверно набранных команд, % 6.00
    Суммарное время работы с терминалом *, час 0.34
    Количество командных строк в единицу времени, команда/мин 2.46
    Частота использования команд
    sed12|===============| 15.79%
    w11|==============| 14.47%
    cat10|=============| 13.16%
    grep7|=========| 9.21%
    ssh6|=======| 7.89%
    ^\6|=======| 7.89%
    egrep3|===| 3.95%
    vim3|===| 3.95%
    echo2|==| 2.63%
    .2|==| 2.63%
    netstat2|==| 2.63%
    apt-get2|==| 2.63%
    echo"Петров1|=| 1.32%
    echo"Петров1|=| 1.32%
    .bashrc1|=| 1.32%
    awk1|=| 1.32%
    >1|=| 1.32%
    cd1|=| 1.32%
    wc1|=| 1.32%
    grep:26001|=| 1.32%
    ls1|=| 1.32%
    exit1|=| 1.32%
    ____
    *) Интервалы неактивности длительностью 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$