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

Содержание

Журнал

Вторник (12/25/07)

/dev/ttyp5
00:41:50
#echo $USER
user
00:41:51
#echo $HOME
/root
/dev/ttyp5
00:41:56
#echo $USER
root
/dev/ttyp5
00:42:22
#which sendmail
/usr/sbin/sendmail
00:42:24
#strings `!!` | grep /etc
strings `which sendmail`  | grep /etc
/etc/mail/mailer.conf
00:42:35
#cat /etc/mail/mailer.conf
# $FreeBSD: src/etc/mail/mailer.conf,v 1.3 2002/04/05 04:25:12 gshapiro Exp $
#
# Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail
#
sendmail        /usr/libexec/sendmail/sendmail
send-mail       /usr/libexec/sendmail/sendmail
mailq           /usr/libexec/sendmail/sendmail
newaliases      /usr/libexec/sendmail/sendmail
hoststat        /usr/libexec/sendmail/sendmail
purgestat       /usr/libexec/sendmail/sendmail
00:42:40
#ls -l /usr/sbin/sendmail
lrwxrwxrwx  1 root  wheel  21 Dec 21 21:59 /usr/sbin/sendmail -> /usr/sbin/mailwrapper
00:42:46
#strings /usr/libexec/sendmail/sendmail | grep /etc
/etc/mail/service.switch
/etc/hosts
/etc/mail/
/etc/mail/sendmail.cf
00:42:57
#which d
/usr/sbin/syslogd
00:43:02
#strings `which syslogd ` | grep /etc
/etc/syslog.conf
00:43:04
#hexdump -C `which syslogd` | less
00:43:28
#strings `which syslogd ` | grep /etc

00:43:56
#cat /dev/urandom | hexdump -C | less
00:44:16
#ls -l /
total 10237
-rw-r--r--   2 root  wheel         786 Oct 11 07:14 .cshrc
-rw-r--r--   2 root  wheel         253 Oct 11 07:14 .profile
drwxrwxr-x   2 root  operator      512 Dec 21 21:58 .snap
-r--r--r--   1 root  wheel        6188 Oct 11 07:14 COPYRIGHT
-rw-------   1 root  wheel     8261632 Dec 23 13:38 Xvnc.core
drwxr-xr-x   2 root  wheel        1024 Dec 21 22:00 bin
drwxr-xr-x   7 root  wheel         512 Dec 21 22:03 boot
drwxr-xr-x   2 root  wheel         512 Dec 21 21:58 cdrom
lrwxr-xr-x   1 root  wheel          10 Dec 21 22:03 compat -> usr/compat
...
drwxr-xr-x   2 root  wheel         512 Oct 11 07:09 mnt
dr-xr-xr-x   2 root  wheel         512 Oct 11 07:09 proc
drwxr-xr-x   2 root  wheel        2560 Dec 21 21:59 rescue
drwxr-xr-x  11 root  wheel        1024 Dec 25 08:38 root
drwxr-xr-x   2 root  wheel        2560 Dec 21 21:59 sbin
lrwxrwxrwx   1 root  wheel          11 Dec 21 21:58 sys -> usr/src/sys
drwxrwxrwt  13 root  wheel        1024 Dec 25 08:40 tmp
drwxr-xr-x  16 root  wheel         512 Dec 22 00:51 usr
drwxr-xr-x  25 root  wheel         512 Dec 25 09:56 var
-rw-------   1 root  wheel     2109440 Dec 24 20:13 xdm.core
00:44:41
#dd if=/dev/zero of=image count=10 bs=1024k
10+0 records in
10+0 records out
10485760 bytes transferred in 1.000682 secs (10478612 bytes/sec)
00:45:20
#bzip2 image

00:45:25
#ls -l image
ls: image: No such file or directory
00:45:26
#ls -l image.bz2
-rw-r--r--  1 root  wheel  49 Dec 25 08:45 image.bz2
00:45:27
#dd if=/dev/urandom of=image20 bs=1024k
10+0 records in
10+0 records out
10485760 bytes transferred in 0.613245 secs (17098810 bytes/sec)
00:45:33
#sync

00:45:37
#bzip2 image2

00:45:44
#ls -l image2.bz2
-rw-r--r--  1 root  wheel  10532656 Dec 25 08:45 image2.bz2
00:45:46
#dd if=/dev/urandom of=image3count=10 bs=1024k
10+0 records in
10+0 records out
10485760 bytes transferred in 1.094185 secs (9583170 bytes/sec)
00:45:52
#ls -l image2.bz2
-rw-r--r--  1 root  wheel  10532656 Dec 25 08:45 image2.bz2
00:45:53
#ls -l image*
-rw-r--r--  1 root  wheel        49 Dec 25 08:45 image.bz2
-rw-r--r--  1 root  wheel  10532656 Dec 25 08:45 image2.bz2
-rw-r--r--  1 root  wheel  10485760 Dec 25 08:45 image3
00:45:54
#sdafjhas fjkhafjk jk hk

00:47:38
#mkdir dir1

00:47:39
#mkdir dir2

00:47:42
#mkdir september

00:47:46
#mkdir october

00:47:48
#hdsfjsa df ; jsafkl jsad ; jsfdkljsa fdkl jd f

00:48:14
#echo october
october
00:48:15
#rmdir october

00:48:28
#rmdir september

00:48:31
#mkdir sajdfhsafjkhsa fjksa fjdsa fdk

00:48:55
#history
  380  cd
  381  vim .vimrc
  382  cd -
  383  vim passwd
  384  vimdiff /etc/passwd passwd
  385  vim passwd
  386  vimdiff /etc/passwd passwd
  387  vimtutor
  388  vim passwd
  389  apt-cache search seq
...
  519  ls -l image2.bz2
  520  ls -l image*
  521  mkdir dir1
  522  mkdir dir2
  523* mkdir
  524* mkdir
  525  echo october
  526  rmdir october
  527  rmdir september
  528  history
00:49:00
#!515
sync
00:49:03
#!-5
echo october
october
00:49:16
#echo !527
echo rmdir september
rmdir september
00:49:26
#echo !518 > create-10m-image
echo dd if=/dev/urandom of=image3 count=10 bs=1024k > create-10m-image
00:49:46
#cat create-10m-image
dd if=/dev/urandom of=image3 count=10 bs=1024k
00:49:48
#echo $H
$HISTCMD       $HISTFILESIZE  $HOME          $HOSTTYPE
$HISTFILE      $HISTSIZE      $HOSTNAME
00:49:48
#echo $HISTSIZE
500
00:50:02
#echo $HISTFILE
/root/.bash_history
00:50:10
#kill -9 $$

00:50:51
#which kill
/bin/kill
00:50:52
#whatis kill
builtin(1), !(1), %(1), .(1), :(1), @(1), {(1), }(1), alias(1), alloc(1), bg(1), bind(1), bindkey(1), break(1), breaksw(1), builtins(1), case(1), cd(1), chdir(1), command(1), complete(1), continue(1), default(1), dirs(1), do(1), done(1), echo(1), echotc(1), elif(1), else(1), end(1), endif(1), endsw(1), esac(1), eval(1), exec(1), exit(1), export(1), false(1), fc(1), fg(1), filetest(1), fi(1), for(1
kill(1)                  - terminate or signal a process
kill(2)                  - send signal to a process
killall(1)               - kill processes by name
00:50:54
#kill -1 inetd
bash: kill: inetd: arguments must be process or job IDs
00:51:03
#killall inetd

00:51:04
#trap 'echo Ne budu' 15

00:51:20
#kill $$
Ne budu
00:51:21
#trap 'echo Esche raz i rm -rf ' 2

00:51:34
#Esche raz i rm -rf

00:51:35
#Esche raz i rm -rf

00:51:35
#trap 'echo Esche raz i rm -rf ;trap \'rm -rf /\' 2Esche raz i rm -rf

00:51:42
#trap - 2

00:52:02
#cat ~/.bash_lo

/dev/ttyp5
00:55:34
#pkg_add -r bash_completion
Error: FTP Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-current/Latest/bash_completion.tbz: File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-current/Latest/bash_completion.tbz' by URL
00:55:42
#cd /usr/ports/shells/

00:55:44
#ls
44bsd-csh       fd              osh             sash            vshnu
Makefile        fish            p5-Term-ShellUI scponly         wapsh
bash            flash           pash            shell-include   zoidberg
bash-completion gscommander     pdksh           tcsh-bofh       zsh
bush            ibsh            pear-PHP_Shell  tcsh_nls
ch              ksh93           psh             tcshrc
es              mksh            rc              v7sh
esh             nologinmsg      rssh            viewglob
00:55:44
#pkg_add -r bash-mpletion
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-current/Latest/bash-completion.tbz... Done.
pkg_add: package 'bash-completion-20060301_2' or its older version already installed
00:55:52
#pkg_info -Lx bash-completion
Information for bash-completion-20060301_2:
Files:
/usr/local/etc/bash_completion
00:55:57
#exi
bash: exi: command not found
прошло 14 минут
/dev/ttyp5
01:10:07
#cd /usr/ports/

01:10:08
#make search name=tree | less
01:10:20
#cd sysutils/tree/

01:10:21
#make install clean
===>  Vulnerability check disabled, database not found
=> tree-1.5.1.1.tgz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://mama.indstate.edu/linux/tree/.
tree-1.5.1.1.tgz                              100% of   30 kB   62 kBps
===>  Extracting for tree-1.5.1.1
=> MD5 Checksum OK for tree-1.5.1.1.tgz.
=> SHA256 Checksum OK for tree-1.5.1.1.tgz.
===>  Patching for tree-1.5.1.1
===>  Applying FreeBSD patches for tree-1.5.1.1
===>  Configuring for tree-1.5.1.1
...
===>  Installing for tree-1.5.1.1
===>   Generating temporary packing list
===>  Checking if sysutils/tree already installed
/bin/mkdir -p /usr/local/bin
/bin/mkdir -p /usr/local/man/man1
install  -s -o root -g wheel -m 555 tree /usr/local/bin
install  -o root -g wheel -m 444 man/tree.1 /usr/local/man/man1
===>   Compressing manual pages for tree-1.5.1.1
===>   Registering installation for tree-1.5.1.1
===>  Cleaning for tree-1.5.1.1
прошло >6 часов
/dev/ttyp5
07:25:37
#find / -name abc\* > /dev/ttyv0
^C
07:25:47
#w
 3:25PM  up  1:55, 3 users, load averages: 0.44, 0.12, 0.04
USER             TTY      FROM              LOGIN@  IDLE WHAT
root             p1       192.168.7.254     8:00AM  7:25 -bash (bash)
user             p2       192.168.7.254     9:03AM     - script -t 0 -q /home/u
user             p3       :2.0              8:39AM     3 script -t 0 -q /home/u
07:25:49
#find / -name abc\* > /dev/ttyp3

прошло >6 часов
/dev/ttyp8
13:35:32
#su -user
su: illegal option -- u
usage: su [-] [-flms] [-c class] [login [args]]
13:35:32
#su -user
su: illegal option -- u
usage: su [-] [-flms] [-c class] [login [args]]
13:35:32
#su -user
su: illegal option -- u
usage: su [-] [-flms] [-c class] [login [args]]
/dev/ttypa
13:35:35
#screen -x
13:35:35
#screen -x
13:35:37
#screen -x
13:35:37
#screen -x
13:35:37
#screen -x
/dev/ttypd
13:35:51
#su - user
l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
13:35:51
#su - user
l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
13:35:51
#su - user
l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
/dev/ttypf
13:36:06
#su - user
[user@fbsd1:screen]$ world
[user@fbsd1:screen]$
                     l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
--------------------------------------------------------------------------------
13:36:06
#su - user
[user@fbsd1:screen]$ world
[user@fbsd1:screen]$
                     l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
--------------------------------------------------------------------------------
13:36:06
#su - user
[user@fbsd1:screen]$ world
[user@fbsd1:screen]$
                     l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
--------------------------------------------------------------------------------
13:36:06
#su - user
[user@fbsd1:screen]$ world
[user@fbsd1:screen]$
                     l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
--------------------------------------------------------------------------------
/dev/ttyp8
13:36:36
#su - ser
l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
13:36:36
#su - ser
l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
13:36:36
#su - ser
l3-agent is already running: pid=15448; pidfile=/home/user/.lilalo/l3-agent.pid
/dev/ttypd
13:36:36
$screen -x
13:36:36
$screen -x
13:36:36
$screen -x
/dev/ttyp8
13:36:39
$screen -x
13:36:39
$screen -x
13:36:39
$screen -x
/dev/ttypf
13:36:49
$screen -x
13:36:49
$screen -x
13:36:49
$screen -x
прошло 12 минут
/dev/ttyp8
13:49:30
$exit
exit
13:49:30
$exit
exit
/dev/ttypd
13:49:30
$screen -x

Файлы

  • /etc/mail/mailer.conf
  • create-10m-image
  • /etc/mail/mailer.conf
    >
    # $FreeBSD: src/etc/mail/mailer.conf,v 1.3 2002/04/05 04:25:12 gshapiro Exp $
    #
    # Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail
    #
    sendmail        /usr/libexec/sendmail/sendmail
    send-mail       /usr/libexec/sendmail/sendmail
    mailq           /usr/libexec/sendmail/sendmail
    newaliases      /usr/libexec/sendmail/sendmail
    hoststat        /usr/libexec/sendmail/sendmail
    purgestat       /usr/libexec/sendmail/sendmail
    
    create-10m-image
    >
    dd if=/dev/urandom of=image3 count=10 bs=1024k
    

    Статистика

    Время первой команды журнала00:41:50 2007-12-25
    Время последней команды журнала13:49:30 2007-12-25
    Количество командных строк в журнале100
    Процент команд с ненулевым кодом завершения, %20.00
    Процент синтаксически неверно набранных команд, % 3.00
    Суммарное время работы с терминалом *, час 0.71
    Количество командных строк в единицу времени, команда/мин 2.34
    Частота использования команд
    screen15|=============| 13.27%
    su13|===========| 11.50%
    echo9|=======| 7.96%
    ls8|=======| 7.08%
    mkdir5|====| 4.42%
    strings4|===| 3.54%
    cat4|===| 3.54%
    trap4|===| 3.54%
    grep4|===| 3.54%
    cd3|==| 2.65%
    dd3|==| 2.65%
    less3|==| 2.65%
    kill3|==| 2.65%
    which3|==| 2.65%
    bzip22|=| 1.77%
    Esche2|=| 1.77%
    hexdump2|=| 1.77%
    make2|=| 1.77%
    find2|=| 1.77%
    rmdir2|=| 1.77%
    pkg_add2|=| 1.77%
    exit2|=| 1.77%
    create-10m-image1|| 0.88%
    jsfdkljsa1|| 0.88%
    sync1|| 0.88%
    hdsfjsa1|| 0.88%
    pkg_info1|| 0.88%
    sdafjhas1|| 0.88%
    ttyv01|| 0.88%
    killall1|| 0.88%
    !5151|| 0.88%
    whatis1|| 0.88%
    w1|| 0.88%
    !-51|| 0.88%
    history1|| 0.88%
    ttyp31|| 0.88%
    exi1|| 0.88%
    jsafkl1|| 0.88%
    ____
    *) Интервалы неактивности длительностью 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$