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

Содержание

Журнал

Среда (02/28/07)

/dev/pts/0
12:09:07
$user
/usr/share/squid/icons/anthony-tex.gif
/usr/share/squid/icons/anthony-layout.gif
/usr/share/squid/icons/anthony-box2.gif
/usr/share/squid/icons/anthony-quill.gif
/usr/share/squid/icons/anthony-pdf.gif
/usr/share/squid/icons/anthony-portal.gif
bash: user: command not found
12:09:45
$echo $HISTCMD
50
прошло 11 минут
12:21:08
$~
bash: /home/user: is a directory
12:21:24
$vim .bash_history
12:23:39
$echo $histsize

12:24:54
$echo $HISTSIZE
500
12:25:23
$apt-cache
base                 .gconfd/             names/
.bash_history        .gnome2/             proj/
.bash_logout         .gnome2_private/     projectX/
.bash_profile        .gstreamer-0.10/     sh/
.bashrc              .gtkrc-1.2-gnome2    .ssh/
bin/                 .ICEauthority        test/
body                 .inputrc             text/
c/                   .kde/                touchlist
.dmrc                .l3rc                very_long_file_name
.evolution/          .lesshst             .viminfo
files/               .lilalo/             .vimrc
.fontconfig/         .metacity/           .Xauthority
.gconf/              .mozilla/            .xsession-errors
12:25:23
$. /etc/bash_completion

прошло 10 минут
12:36:07
$apt
apt-cache             apt-extracttemplates  aptitude
apt-cdrom             apt-ftparchive        apt-key
apt-config            apt-get               apt-sortpkgs
12:36:07
$apt
apt-cache             apt-extracttemplates  aptitude
apt-cdrom             apt-ftparchive        apt-key
apt-config            apt-get               apt-sortpkgs
12:36:07
$apt-cache search bind
python-beagle - python bindings for beagle
python-bibtex - Python interfaces to BibTeX and the GNU Recode library
python-cairo - Python bindings for the Cairo vector graphics library
python-cairo-dev - Python cairo bindings: development files
python-chm - Python binding for CHMLIB
python-clamav - Python bindings to ClamAV
python-clearsilver - python bindings for clearsilver
python-crack - Python bindings for cracklib
python-dcop - DCOP bindings for Python
python-diacanvas2 - DiaCanvas2 library support for Python (default version)
...
wx2.4-examples - wxWindows Cross-platform C++ GUI toolkit (examples)
wx2.6-examples - wxWidgets Cross-platform C++ GUI toolkit (examples)
xbindkeys - Associate a combination of keys or mouse buttons with a shell command
xbindkeys-config - An easy to use gtk program for configuring Xbindkeys.
xinetd - replacement for inetd with many enhancements
xjove - X11-Frontend for jove - a compact, powerful editor
xmmsctrl - Small utility to control xmms from the command line
xulrunner - XUL + XPCOM application runner
xvile - VI Like Emacs - vi work-alike (X11)
yasgml - Yet Another Linuxdoc-DTD only SGML mode
12:36:24
$apt-cache
add        dump       madison    rdepends   showpkg    unmet
depends    dumpavail  pkgnames   search     showsrc    xvcg
dotty      gencaches  policy     show       stats
12:36:24
$apt-cache
add        dump       madison    rdepends   showpkg    unmet
depends    dumpavail  pkgnames   search     showsrc    xvcg
dotty      gencaches  policy     show       stats
12:36:24
$~
bash: /home/user: is a directory
прошло 15 минут
12:51:58
$touch date

12:52:11
$ls
base  body  date   names  projectX  test  touchlist
bin   c     files  proj   sh        text  very_long_file_name
12:52:14
$cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
dictd:x:100:102::/var/lib/dictd:/bin/false
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
identd:x:103:65534::/var/run/identd:/bin/false
messagebus:x:104:105::/var/run/dbus:/bin/false
avahi:x:105:106:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
haldaemon:x:106:109:Hardware abstraction layer,,,:/home/haldaemon:/bin/false
gdm:x:107:112:Gnome Display Manager:/var/lib/gdm:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:108:65534::/var/run/sshd:/usr/sbin/nologin
12:56:15
$cat /etc/passwd | wc -l
28
12:58:50
$echo $(date)
Срд Фев 28 13:03:47 EET 2007
13:03:47
$echo $((56+56))
112
прошло 16 минут
13:20:12
$logger privet

13:26:50
$taik -f /var/log/mesages
bash: taik: command not found
13:28:27
$taik -f /var/log/messages
bash: taik: command not found
13:28:38
$tail -f /var/log/messages
tail: невозможно открыть `/var/log/messagesaik' для чтения: No such file or directory
tail: невозможно открыть `/var/log/messagesl' для чтения: No such file or directory
tail: больше нет файлов
13:29:46
$tail -f /var/log/
tail: ошибка чтения `/var/log/': Is a directory
tail: /var/log/: невозможно следить за концом файла такого типа; вывод продолжается для нового файла
tail: больше нет файлов
13:30:10
$~
bash: /home/user: is a directory
13:35:40
$cd /tmp

13:35:50
$pwd
/tmp
прошла 21 минута
13:56:54
$~
bash: /home/user: is a directory
13:57:10
$~
bash: /home/user: is a directory
13:57:14
$pwd
/tmp
13:57:24
$cd ..

13:57:57
$pwd
/
13:58:01
$~
bash: /home/user: is a directory
13:58:06
$pwd
/
13:58:10
$cd ~

13:58:18
$pwd
/home/user
13:58:22
$ls
base  body  date   names  projectX  test  touchlist
bin   c     files  proj   sh        text  very_long_file_name
13:58:26
$cd names

прошло 15 минут
14:13:43
$pwd
/home/user/names
14:13:49
$ls
][                   feb                    M'cDonalds
1*2                  footer.h               module2.c
1inux                gnu-linux              module.c
2*2=4                -hard-to-del-          name$with#very~starnge'symbols'
2*2=5?               header.h               nov
2*3                  jan                    oct
'86"                 jul                    program.C
ab[cde]fg            jun                    Queen
apr                  linux                  Queen "Live at Wembley' 86"
aug                  linux-kernel           sep
A:\WINDOWSSYSTEM32   "Live at Wembley' 86"  The_Best_OS
A:\WINDOWS\SYSTEM32  mar                    The_Worst_OS
dec                  may
14:13:53
$ls a*
ab[cde]fg  apr  aug
14:14:19
$ls *.[cChH]
footer.h  header.h  module2.c  module.c  program.C
14:15:16
$ls *Linux*
ls: *Linux**Linux*: No such file or directory
14:16:03
$ls *BSD*
ls: *BSD*: No such file or directory
14:16:29
$ls j?n
jan  jun
14:17:06
$ls -- -*
-hard-to-del-
14:17:34
$ls ./-*
./-hard-to-del-
14:18:09
$ls \-*
ls: invalid option -- *
Попробуйте `ls --help' для получения более подробного описания.
14:18:35
$ls"-"*
bash: ls-*: command not found
14:19:01
$ls "-"*
ls: invalid option -- -
Попробуйте `ls --help' для получения более подробного описания.
14:19:20
$ls *\**\?*
2*2=5?
14:21:00
$ls *"*"*"?"*
2*2=5?
14:21:59
$ls *\[cde]*
ab[cde]fg
14:23:08
$ls zz*
ls: zz*: No such file or directory
14:24:38
$ls
][                   feb                    M'cDonalds
1*2                  footer.h               module2.c
1inux                gnu-linux              module.c
2*2=4                -hard-to-del-          name$with#very~starnge'symbols'
2*2=5?               header.h               nov
2*3                  jan                    oct
'86"                 jul                    program.C
ab[cde]fg            jun                    Queen
apr                  linux                  Queen "Live at Wembley' 86"
aug                  linux-kernel           sep
A:\WINDOWSSYSTEM32   "Live at Wembley' 86"  The_Best_OS
A:\WINDOWS\SYSTEM32  mar                    The_Worst_OS
dec                  may
14:24:43
$echo zz*
zz*
14:24:56
$echo a*
ab[cde]fg apr aug
14:25:30
$man touch
14:28:08
$touch --help
Использование: touch [КÐпа и модификации каждого файла до текущего времени
Аргументы, обязательные для длинных ключей, обязательны и для коротких.
  -a                     изменять только время доступа
  -c, --no-create        не создавать файлов
  -d, --date=STRING      проанализировать STRING и использовать вместо
                          текущего времени
  -f                     (игнорируется)
  -m                     изменять только время изменения
  -r, --reference=ФАЙÐекущего
  -t ВРЕМЯ               использовать [[ВВ]ГГ]ММДДччмм[.сс] вместо
                           текущего времени
  --time=СÐ
                                      СРccess, atime, use эквивалентно -a
                          СÐodify, mtime эквивалентно -m
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти
Заметьте, что ключи -d и -t воспринимают разные форматы даты и времени.
Если ФАЙввод.
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.
14:28:27
$touch "file with spaces at the name"

14:29:49
$ls
][                            jul
1*2                           jun
1inux                         linux
2*2=4                         linux-kernel
2*2=5?                        "Live at Wembley' 86"
2*3                           mar
'86"                          may
ab[cde]fg                     M'cDonalds
apr                           module2.c
aug                           module.c
A:\WINDOWSSYSTEM32            name$with#very~starnge'symbols'
A:\WINDOWS\SYSTEM32           nov
dec                           oct
feb                           program.C
file with spaces at the name  Queen
footer.h                      Queen "Live at Wembley' 86"
gnu-linux                     sep
-hard-to-del-                 The_Best_OS
header.h                      The_Worst_OS
jan
14:30:06
$touch one\ space

14:30:48
$touch "A:\WINDOWS\SYSTEM32
> touch "A:\WINDOWS\SYSTEM32"
>
> touch "A:\WINDOWS\SYSTEM32
touch "A:\WINDOWS\SYSTEM32"
14:35:08
$touch "A:\WINDOWS\SYSTEM32
touch "A:\WINDOWS\SYSTEM32"
14:35:08
$touch "A:\WINDOWS\SYSTEM32"

14:35:18
$ls -l A\:\\WINDOWS
A:\WINDOWSSYSTEM32   A:\WINDOWS\SYSTEM32
14:35:18
$ls -l A\:\\WINDOWS
A:\WINDOWSSYSTEM32   A:\WINDOWS\SYSTEM32
14:35:18
$ls -l A\:\\WINDOWS\\SYSTEM32
-rw-r--r-- 1 user user 0 2007-02-28 14:35 A:\WINDOWS\SYSTEM32
14:36:56
$touch "A:\WINDOWS\SYSTEM32
touch "A:\WINDOWS\SYSTEM32"
14:36:56
$touch "A:\WINDOWS\SYSTEM32"

14:36:56
$touch "A:\WINDOWS\SYSTEM32"

14:37:05
$ls -l A\:\\WINDOWS\\SYSTEM32
-rw-r--r-- 1 user user 0 2007-02-28 14:37 A:\WINDOWS\SYSTEM32
14:37:07
$echo*
bash: echo*: command not found
14:42:29
$echo *
][ 1*2 1inux 2*2=4 2*2=5? 2*3 '86" ab[cde]fg apr aug A:\WINDOWSSYSTEM32 A:\WINDOWS\SYSTEM32 dec feb file with spaces at the name footer.h gnu-linux -hard-to-del- header.h jan jul jun linux linux-kernel "Live at Wembley' 86" mar may M'cDonalds module2.c module.c name$with#very~starnge'symbols' nov oct one space program.C Queen Queen "Live at Wembley' 86" sep The_Best_OS The_Worst_OS
14:42:35
$touch "-bad-name-"
touch: invalid option -- b
Попробуйте `touch --help' для получения более подробного описания.
14:46:43
$pwd
/home/user/names
14:48:13
$cd .

14:48:21
$pwd
/home/user/names
14:48:24
$cd ~

14:48:45
$pwd
/home/user
14:48:48
$ls
base  body  date   names  projectX  test  touchlist
bin   c     files  proj   sh        text  very_long_file_name
14:48:55
$cat touchlist
file1
file2
file3
14:50:16
$vim touchlist
14:50:50
$touch "cat~ /touchlist"
touch: невозможно выполнить touch для `cat~ /touchlist': No such file or directory
14:51:39
$touch 'cat ~/touchlist'
touch: невозможно выполнить touch для `cat ~/touchlist': No such file or directory
14:52:17
$ls
base  body  date   names  projectX  test  touchlist
bin   c     files  proj   sh        text  very_long_file_name
14:53:23
$touch'< ~/touchlist'
bash: touch< ~/touchlist: No such file or directory

Файлы

  • /etc/passwd
  • touchlist
  • /etc/passwd
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    dictd:x:100:102::/var/lib/dictd:/bin/false
    Debian-exim:x:101:103::/var/spool/exim4:/bin/false
    statd:x:102:65534::/var/lib/nfs:/bin/false
    identd:x:103:65534::/var/run/identd:/bin/false
    messagebus:x:104:105::/var/run/dbus:/bin/false
    avahi:x:105:106:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
    haldaemon:x:106:109:Hardware abstraction layer,,,:/home/haldaemon:/bin/false
    gdm:x:107:112:Gnome Display Manager:/var/lib/gdm:/bin/false
    user:x:1000:1000:user,,,:/home/user:/bin/bash
    sshd:x:108:65534::/var/run/sshd:/usr/sbin/nologin
    
    touchlist
    >
    file1
    file2
    file3
    

    Статистика

    Время первой команды журнала12:09:07 2007- 2-28
    Время последней команды журнала14:53:23 2007- 2-28
    Количество командных строк в журнале88
    Процент команд с ненулевым кодом завершения, %20.45
    Процент синтаксически неверно набранных команд, % 6.82
    Суммарное время работы с терминалом *, час 2.74
    Количество командных строк в единицу времени, команда/мин 0.54
    Частота использования команд
    ls24|==========================| 26.67%
    touch13|==============| 14.44%
    pwd9|==========| 10.00%
    echo8|========| 8.89%
    cd6|======| 6.67%
    ~6|======| 6.67%
    apt-cache4|====| 4.44%
    cat3|===| 3.33%
    vim2|==| 2.22%
    taik2|==| 2.22%
    tail2|==| 2.22%
    apt2|==| 2.22%
    touchlist'1|=| 1.11%
    man1|=| 1.11%
    logger1|=| 1.11%
    wc1|=| 1.11%
    user1|=| 1.11%
    .1|=| 1.11%
    touch'<1|=| 1.11%
    echo*1|=| 1.11%
    ls"-"*1|=| 1.11%
    ____
    *) Интервалы неактивности длительностью 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$