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

Содержание

Журнал

Вторник (05/18/10)

/dev/ttyp1
15:13:38
$fgrep -vil freebsd `find /tmp/1/ ! -type d
^C
15:14:36
$fgrep -vil freebsd `find /tmp/1/ ! -type d -exec fgrep -il mic
osoft {} \;`
/tmp/1/file
/tmp/1/file2
15:15:04
$cat `find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;`

15:15:04
$cat file2

15:15:04
$cat /tmp/1/*
Microsoft
microsoft
freebsd
Vitaliy
Sergey
Andrey
Andrey
Sergey
Vitaliy
15:15:20
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;`

15:15:20
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:15:38
$find /tmp/1/ ! -type d -exec fgrep -il freebsd {} \;
/tmp/1/file2
15:15:43
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:15:51
$grep -v freebsd
/tmp/1/file:Microsoft
/tmp/1/file2:microsoft
15:16:18
$cat /tmp/1/file
Microsoft
15:16:47
$cat /tmp/1/file2
microsoft
freebsd
15:16:50
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;

15:16:50
$grep -vl
/tmp/1/file
/tmp/1/file2
15:17:00
$grep -v
/tmp/1/file:Microsoft
/tmp/1/file2:microsoft
15:17:06
$grep -v microsoft
/tmp/1/file:Microsoft
/tmp/1/file2:freebsd
15:17:48
$grep -v freebsd `find /tmp/1/ ! -type d -exec fgrep -il micros

15:17:48
$cat /tmp/1/file2

15:17:48
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;

15:17:48
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:19:27
$find /tmp/1/ ! -type d -exec fgrep -il microsoft {} \; | while
read line; do grep -vl freebsd $line ;
/tmp/1/file
/tmp/1/file2
15:19:40
$grep -vlr freebsd /tmp/1/
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file
/tmp/1/file2
15:20:04
$cat /tmp/1/file
Microsoft
15:20:18
$cat /tmp/1/file2
microsoft
freebsd
15:20:22
$grep -vlir freebsd /tmp/1/
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file
/tmp/1/file2
15:20:31
$grep -vir freebsd /tmp/1/
/tmp/1/names:Vitaliy
/tmp/1/names:Sergey
/tmp/1/names:Andrey
/tmp/1/sorted_names:Andrey
/tmp/1/sorted_names:Sergey
/tmp/1/sorted_names:Vitaliy
/tmp/1/file:Microsoft
/tmp/1/file2:microsoft
15:20:35
$grep -ir freebsd /tmp/1/
/tmp/1/file2:freebsd
15:20:49
$grep -irv freebsd /tmp/1/
/tmp/1/names:Vitaliy
/tmp/1/names:Sergey
/tmp/1/names:Andrey
/tmp/1/sorted_names:Andrey
/tmp/1/sorted_names:Sergey
/tmp/1/sorted_names:Vitaliy
/tmp/1/file:Microsoft
/tmp/1/file2:microsoft
15:21:41
$man grep
15:22:38
$man fgrep
15:23:06
$grep -ir freebsd /tmp/1/
/tmp/1/file2:freebsd
15:23:28
$grep -ir microsoft /tmp/1/
/tmp/1/file:Microsoft
/tmp/1/file2:microsoft
15:23:40
$grep -i freebsd `grep -ir microsoft /tmp/1/`
grep: /tmp/1/file:Microsoft: No such file or directory
grep: /tmp/1/file2:microsoft: No such file or directory
15:25:36
$grep -i freebsd `find /tmp/1 ! -type d -exec grep -il
/tmp/1/file2:freebsd
15:25:41
$cat /tmp/1/file
Microsoft
15:26:05
$cat /tmp/1/file2
microsoft
freebsd
15:26:07
$grep -i freebsd `find /tmp/1

15:26:07
$grep -i freebsd `find /tmp/1
/tmp/1/file2:freebsd
15:27:03
$grep -i microsoft `find /tmp/1 -exec grep -il freebsd {} \;`
microsoft
15:27:24
$grep -il microsoft `find /tmp/1 -exec grep -il freebsd {} \;`
/tmp/1/file2
15:27:35
$ca`grep -il microsoft `find /tmp/1 -exec grep -il freebsd {} \;

15:27:35
$cat
^C
15:27:49
$cat `grep -il microsoft `find /tmp/1 -exec grep -il freebsd {}

15:27:55
$cat /tmp/1/file
Microsoft
15:28:00
$cat /tmp/1/file2
microsoft
freebsd
15:28:01
$grep -il microsoft `find /tmp/1 -exec grep -il freebsd {} \;`
/tmp/1/file2
15:28:32
$find /tmp/1 -exec grep -il freebsd {} \;
/tmp/1/file2
15:28:44
$find /tmp/1 -exec grep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:29:05
$grep -il freebsd `find /tmp/1 -exec grep -il microsoft {} \;`
/tmp/1/file2
15:29:22
$cat /tmp/1/file2
microsoft
freebsd
15:29:27
$cat /tmp/1/file
Microsoft
15:29:29
$grep -ivl freebsd `find /tmp/1 -exec grep -il microsoft {} \;`
/tmp/1/file
/tmp/1/file2
15:29:38
$find /tmp/1 -exec grep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:31:37
$grep -r microsoft .
./file2:microsoft
15:32:22
$grep -rv microsoft .
./names:Vitaliy
./names:Sergey
./names:Andrey
./sorted_names:Andrey
./sorted_names:Sergey
./sorted_names:Vitaliy
./file:Microsoft
./file2:freebsd
15:32:26
$grep -rvi microsoft .
./names:Vitaliy
./names:Sergey
./names:Andrey
./sorted_names:Andrey
./sorted_names:Sergey
./sorted_names:Vitaliy
./file2:freebsd
15:32:33
$grep -ivl freebsd `find /tmp/1
/tmp/1/file
/tmp/1/file2
15:33:12
$grep -rvi microsoft .

15:33:12
$grep -ivl freebsd `find /tmp/1 ! -exec grep -il microsoft {} \

15:33:12
$find /tmp/1 !
/tmp/1/file
/tmp/1/file2
15:33:26
$find /tmp/1 -exec grep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:33:40
$find /tmp/1 -exec grep -i microsoft {} \;
Microsoft
microsoft
15:33:45
$find /tmp/1 -exec grep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:33:50
$find /tmp/1 ! -exec grep -il microsoft {} \;
/tmp/1/file
/tmp/1/file2
15:33:59
$find /tmp/1 ! -exec grep -ivl microsoft {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file2
15:34:03
$find /tmp/1 -exec grep -ivl microsoft {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file2
15:34:08
$find /tmp/1
/tmp/1
/tmp/1/Tue
/tmp/1/May
/tmp/1/18
/tmp/1/11:47:51
/tmp/1/EEST
/tmp/1/2010
/tmp/1/Tue May 18 11:48:12 EEST 2010
/tmp/1/-1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/-bbb
/tmp/1/file
/tmp/1/file2
15:34:18
$find /tmp/1 -exec grep -ivl microsoft {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file2
15:34:23
$cat /tmp/1/file2
microsoft
freebsd
15:34:33
$find /tmp/1 -exec grep -ivl ^microsoft$ {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file2
15:34:50
$cat /tmp/1/file2
microsoft
freebsd
15:34:56
$cat /tmp/1/file
Microsoft
15:34:57
$find /tmp/1 -exec grep -il ^microsoft$ {} \;
/tmp/1/file
/tmp/1/file2
15:35:19
$find /tmp/1 -exec grep -ivl ^microsoft$ {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file2
15:40:17
$man grep
/dev/ttyp1
15:43:06
$cd /tmp/1

15:43:10
$ls
-1                              Tue
-bbb                            Tue May 18 11:48:12 EEST 2010
11:47:51                        file
18                              file2
2010                            names
EEST                            sorted_names
May
15:43:12
$find /tmp/1 -exec grep -ivl ^microsoft$ {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file2
15:43:28
$find /tmp/1 -exec grep -ivl ^freebsd$ {} \;
/tmp/1
/tmp/1/names
/tmp/1/sorted_names
/tmp/1/file
/tmp/1/file2
15:43:40
$man grep
/dev/ttyp1
15:48:07
$ssh 192.168.16.254 -l root
Connection to nt.ua closed.
debian:~#
debian:~#
debian:~#
debian:~# exit
logout
Connection to 192.168.16.254 closed.
15:55:00
$env
MM_CHARSET=KOI8-R
TERM=screen
SHELL=/usr/local/bin/bash
SSH_CLIENT=192.168.16.4 55919 22
L3_PARENT_TTY=/dev/ttyp1
L3_TAMPERED_EDITORS= vi ee vim
SSH_TTY=/dev/ttyp1
USER=user
FTP_PASSIVE_MODE=YES
MAIL=/var/mail/user
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/user/bin
L3_SESSION_ID=183349301816227181-1274190486
BLOCKSIZE=K
PWD=/home/user
LANG=C
прошло 23 минуты
16:18:54
$set
BASH=/usr/local/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="0" [4]="release" [5]="i386-portbld-freebsd6.3")
BASH_VERSION='3.2.25(0)-release'
BLOCKSIZE=K
COLUMNS=80
DIRSTACK=()
...
MACHTYPE=i386-portbld-freebsd6.3
MAIL=/var/mail/user
MAILCHECK=60
MM_CHARSET=KOI8-R
OPTERR=1
OPTIND=1
OSTYPE=freebsd6.3
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/user/bin
PIPESTATUS=([0]="0")
PPID=25948
16:19:44
$locate fstab
locate: database too small: /var/db/locate.database
прошло >4 часов
/dev/ttyp1
20:35:43
$ls
Desktop         gdb.core        hello           passwd
20:37:01
$ls -l
total 838
drwxr-xr-x  2 user  wheel     512 Mar 15  2008 Desktop
-rw-------  1 user  wheel  823296 Jul 24  2009 gdb.core
-rwxr-xr-x  1 user  wheel      19 May 17 12:53 hello
-rw-r--r--  1 root  wheel    1635 Jul 24  2009 passwd
20:39:52
$xf
xfbrowser4              xfce4-popup-menu        xfontsel
xfce-mcs-manager        xfce4-popup-windowlist  xfprint4
xfce-setting-show       xfce4-session           xfprint4-manager
xfce4-about             xfce4-session-logout    xfrun4
xfce4-appfinder         xfce4-tips              xfs
xfce4-autostart-editor  xfd                     xfsinfo
xfce4-iconbox           xfdesktop               xft-config
xfce4-kiosk-query       xfhelp4                 xftaskbar4
xfce4-menueditor        xfindproxy              xfterm4
xfce4-mixer             xflock4                 xfwm4
xfce4-panel             xfmountdev4             xfwp
20:39:52
$xflock4
xscreensaver-command: not found
xlock: not found
прошло 24 минуты
21:04:24
$su -
Password:
l3-agent is already running: pid=26954; pidfile=/root/.lilalo/l3-agent.pid
прошло 32 минуты
21:36:52
#vim /usr/local/etc/X11/s
21:36:52
#vim /etc/X11/xorg.conf

Среда (05/19/10)

/dev/ttyp1
05:08:38
$mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s2e on /tmp (ufs, local, soft-updates, acls)
/dev/ad0s2f on /usr (ufs, local, soft-updates)
/dev/ad0s2d on /var (ufs, local, soft-updates)
05:08:40
$ls -l /tmp
total 710
drwxr-xr-x   2 user  wheel     512 May 18 16:13 1
-rw-r--r--   1 user  wheel    1635 May 17 13:13 123
-rw-r--r--   1 user  wheel    1618 May 17 13:43 aliases
-rw-r--r--   1 user  wheel     209 May 17 13:43 amd.map
-rw-r--r--   1 user  wheel    1234 May 17 13:43 apmd.conf
-rw-r--r--   1 user  wheel     231 May 17 13:43 auth.conf
-rw-r--r--   1 user  wheel     804 May 17 13:43 crontab
-rw-r--r--   1 user  wheel     108 May 17 13:43 csh.cshrc
-rw-r--r--   1 user  wheel     481 May 17 13:43 csh.login
...
-rw-r--r--   1 user  wheel   73714 May 17 13:43 services
-rw-r--r--   1 user  wheel     258 May 17 13:43 shells
-rw-r--r--   1 user  wheel    2454 May 17 13:43 snmpd.config
-rw-r--r--   1 user  wheel     390 May 17 13:43 sysctl.conf
-rw-r--r--   1 user  wheel    1335 May 17 13:43 syslog.conf
-rw-r--r--   1 user  wheel      22 May 18 12:14 tee
-r--r--r--   1 user  wheel  204798 May 17 13:43 termcap
-rw-r--r--   1 user  wheel   13039 May 17 13:43 ttys
-rw-r--r--   1 user  wheel    1400 May 17 13:43 usbd.conf
-r--r--r--   1 user  wheel       0 May 17 13:43 wall_cmos_clock
05:08:45
$ls -ld/tmp
drwxrwxrwt  14 root  wheel  2560 May 19 06:08 /tmp
05:08:50
$cd /tmp

/dev/ttyp1
05:17:30
$man Xvnc
прошло 45 минут
06:03:24
$date
Wed May 19 07:05:02 EEST 2010
06:05:02
$date
Mon May 17 14:45:12 EEST 2010
прошло >2 часов
/dev/ttyp1
08:50:22
$man locate
08:51:25
$sudo /usr/libexec/locate.updatedb
Password:
>>> WARNING
>>> Executing updatedb as root.  This WILL reveal all filenames
>>> on your machine to all login users, which is a security risk.
08:52:32
$bg
bash: bg: current: no such job

Файлы

  • /tmp/1/*
  • /tmp/1/file
  • /tmp/1/file2
  • file2
  • /tmp/1/*
    >
    Microsoft
    microsoft
    freebsd
    Vitaliy
    Sergey
    Andrey
    Andrey
    Sergey
    Vitaliy
    
    /tmp/1/file
    >
    Microsoft
    
    /tmp/1/file2
    >
    microsoft
    freebsd
    
    file2
    >

    Статистика

    Время первой команды журнала15:13:38 2010- 5-18
    Время последней команды журнала08:52:32 2010- 5-19
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, % 4.95
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.79
    Количество командных строк в единицу времени, команда/мин 0.94
    Частота использования команд
    grep27|========================| 24.55%
    find25|======================| 22.73%
    cat19|=================| 17.27%
    `7|======| 6.36%
    man6|=====| 5.45%
    ls5|====| 4.55%
    vim2|=| 1.82%
    cd2|=| 1.82%
    fgrep2|=| 1.82%
    date2|=| 1.82%
    sudo1|| 0.91%
    locate.updatedb1|| 0.91%
    ca`grep1|| 0.91%
    while1|| 0.91%
    xf1|| 0.91%
    xflock41|| 0.91%
    mount1|| 0.91%
    env1|| 0.91%
    bg1|| 0.91%
    set1|| 0.91%
    locate1|| 0.91%
    ssh1|| 0.91%
    su1|| 0.91%
    ____
    *) Интервалы неактивности длительностью 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$