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

Содержание

Журнал

Вторник (03/29/11)

/dev/pts/5
13:17:09
$ssh-keyscan 192.168.15.{1..5} >> ~/.ssh/known_hosts
bash: /home/user/.ssh/known_hosts: No such file or directory
/dev/pts/3
13:20:21
#man
13:20:31
#man
13:20:31
#man
13:20:31
#man
13:20:31
#man
13:20:31
#man
13:20:31
#man
13:20:31
#man
13:20:31
#man
13:20:48
#. /etc/bash_completion

13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:20:51
#man
13:21:19
#passwd
adm            games          mailnull       root           user1
apache         gdm            news           rpc            uucp
avahi          gopher         nfsnobody      rpcuser        vcsa
avahi-autoipd  haldaemon      nobody         shutdown       xfs
bin            halt           nscd           smmsp
daemon         hsqldb         ntp            sshd
dbus           lp             operator       sync
ftp            mail           pcap           user
13:21:19
#passwd
adm            games          mailnull       root           user1
apache         gdm            news           rpc            uucp
avahi          gopher         nfsnobody      rpcuser        vcsa
avahi-autoipd  haldaemon      nobody         shutdown       xfs
bin            halt           nscd           smmsp
daemon         hsqldb         ntp            sshd
dbus           lp             operator       sync
ftp            mail           pcap           user
13:21:19
#pa
pack200                pamoil                 pamtohtmltbl
packer                 pam-panel-icon         pamtojpeg2k
pal2rgb                pamperspective         pamtopfm
palmtopnm              pampick                pamtopnm
pamaddnoise            pampop9                pamtosvg
pamarith               pamrgbatopng           pamtotga
pambayer               pamscale               pamtotiff
pamchannel             pamseq                 pamtouil
pamcomp                pamsharpmap            pamtoxvmini
pam_console_apply      pamsharpness           pamx
...
pamdice                pamstereogram          pango-querymodules-32
pamditherbw            pamstretch             pango-querymodules-64
pamedge                pamstretch-gen         paps
pamendian              pamsumm                parted
pamenlarge             pamsummcol             partprobe
pamfile                pam_tally              partx
pamflip                pam_tally2             passwd
pamfunc                pamthreshold           paste
pamgauss               pamtilt                patch
pamgradient            pam_timestamp_check    pathchk
13:24:07
#m
Display all 170 possibilities? (y or n)
13:24:07
#pa
pack200                pamoil                 pamtohtmltbl
packer                 pam-panel-icon         pamtojpeg2k
pal2rgb                pamperspective         pamtopfm
palmtopnm              pampick                pamtopnm
pamaddnoise            pampop9                pamtosvg
pamarith               pamrgbatopng           pamtotga
pambayer               pamscale               pamtotiff
pamchannel             pamseq                 pamtouil
pamcomp                pamsharpmap            pamtoxvmini
pam_console_apply      pamsharpness           pamx
...
pamdice                pamstereogram          pango-querymodules-32
pamditherbw            pamstretch             pango-querymodules-64
pamedge                pamstretch-gen         paps
pamendian              pamsumm                parted
pamenlarge             pamsummcol             partprobe
pamfile                pam_tally              partx
pamflip                pam_tally2             passwd
pamfunc                pamthreshold           paste
pamgauss               pamtilt                patch
pamgradient            pam_timestamp_check    pathchk
13:24:07
#man bash
13:24:07
#man bash
13:24:07
#man bash
13:24:07
#man bash
13:24:07
#man bash
13:24:07
#man bash
13:24:07
#man bash
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:24:07
#rpm -q
rpmq: no arguments given for query
/dev/pts/5
13:25:27
$ssh 192.168.15.1
The authenticity of host '192.168.15.1 (192.168.15.1)' can't be established.
RSA key fingerprint is e3:0e:09:ae:33:7d:81:a1:0f:24:09:ec:67:47:9a:3f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.1' (RSA) to the list of known hosts.
user@192.168.15.1's password:
13:25:38
$ping
::1                      localhost                localhost6.localdomain6
192.168.15.1             localhost6               localhost.localdomain
13:26:05
$ssh 192.168.15.3
The authenticity of host '192.168.15.3 (192.168.15.3)' can't be established.
RSA key fingerprint is f4:5c:ee:e9:ef:b7:bd:94:2a:1a:de:fd:ad:43:a7:f7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.3' (RSA) to the list of known hosts.
user@192.168.15.3's password:
13:26:07
$ssh 192.168.15.4
The authenticity of host '192.168.15.4 (192.168.15.4)' can't be established.
RSA key fingerprint is 19:4c:6c:24:e0:65:29:18:56:ba:a7:2b:05:df:e8:26.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.4' (RSA) to the list of known hosts.
user@192.168.15.4's password:
13:26:10
$ssh-
ssh-add      ssh-agent    ssh-copy-id  ssh-keygen   ssh-keyscan
13:26:10
$ping 192.168.15.
192.168.15.1  192.168.15.2  192.168.15.3  192.168.15.4
13:26:10
$man bas
13:26:10
$rpm -q
Display all 748 possibilities? (y or n)
/dev/pts/3
13:27:46
#ping
ping   ping6
13:27:46
#ping
ping   ping6
13:27:46
#ping
ping   ping6
13:27:46
#ping
ping   ping6
13:27:46
#ping
ping   ping6
13:27:46
#. /etc/bash_completion

13:29:03
#ping
ping   ping6
13:29:03
#ping
ping   ping6
13:29:03
#ping
ping   ping6
13:29:03
#ping
ping   ping6
13:29:03
#. /etc/bash_completion

13:29:41
#ping
::1                      192.168.15.253           localhost6.localdomain6
127.0.0.1                localhost                localhost.localdomain
192.168.15.1             localhost6
13:29:41
#echo ???
???
/dev/pts/5
13:31:04
$vim /home/user/.bashrc
--- /dev/null	2011-03-29 10:45:08.189688728 +0600
+++ f	2011-03-29 18:05:24.000000000 +0600
@@ -0,0 +1 @@
+A=10
13:32:09
$~
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# By default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
else
        umask 022
fi
...
                . $i
            else
                . $i >/dev/null 2>&1
            fi
        fi
    done
        unset i
        unset pathmunge
fi
# vim:ts=4:sw=4
13:32:24
$exit
exit
13:32:27
#vim /etc/bashrc
13:32:45
#su user

13:32:48
$ping
::1                      192.168.15.3             localhost6
192.168.15.1             192.168.15.4             localhost6.localdomain6
192.168.15.2             localhost                localhost.localdomain
13:32:48
$ping
::1                      192.168.15.3             localhost6
192.168.15.1             192.168.15.4             localhost6.localdomain6
192.168.15.2             localhost                localhost.localdomain
13:32:48
$cd /tmp/

13:35:57
$echo *
b-link b-sourc d D D2 DIR DIR2 disk FFF file1 file2 gconfd-root gconfd-user hsperfdata_root install keyring-VQSPZ4 log lost+found mapping-root mapping-user mc-root orbit-root OSL_PIPE_0_SingleOfficeIPC_44e0c34da8623980ccf9f8299a62e4fb pochta privet Projects report_mar ssh-AfKIzR7722 ssh-NwJjpD2893 super-puper-hyper-script svj59.tmp t Text-Iconv-1.7 Text-Iconv.tar.gz txt typescript U1 virtual-root.
13:35:59
$echo D*
D D2 DIR DIR2
13:36:05
$echo *D
D
13:36:21
$echo *D*
D D2 DIR DIR2 ssh-NwJjpD2893
13:36:27
$echo .*D*
.*D*
13:37:09
$echo .*
. .. .font-unix .gdm5WFMTV .gdm_socket .ICE-unix .X0-lock .X11-unix
13:37:16
$echo /*/* | wc
      1    1382   21137
13:38:01
$echo /*/* | less
13:38:39
$echo /*/* | tr -cd '/ ' | tr ' ' '\n'
//
//
//
//
//
//
//
//
//
//
...
//
//
//
//
//
//
//
//
//
//
13:39:13
$echo /*/* | tr -cd '/ ' | tr ' ' '\n' | less
13:39:18
$echo /*/* | tr -cd '/ ' | tr ' ' '\n' | sort -u
//
13:40:13
$echo *
b-link b-sourc d D D2 DIR DIR2 disk FFF file1 file2 gconfd-root gconfd-user hsperfdata_root install keyring-VQSPZ4 log lost+found mapping-root mapping-user mc-root orbit-root OSL_PIPE_0_SingleOfficeIPC_44e0c34da8623980ccf9f8299a62e4fb pochta privet Projects report_mar ssh-AfKIzR7722 ssh-NwJjpD2893 super-puper-hyper-script svj59.tmp t Text-Iconv-1.7 Text-Iconv.tar.gz txt typescript U1 virtual-root.
13:41:01
$echo ???
DIR FFF log txt wer
/dev/pts/3
13:41:19
#echo ?
t
13:41:29
#echo ???
???
13:41:39
#echo ??
??
13:41:44
#echo ?*
033_Unit1.html anaconda-ks.cfg backup Desktop install.log install.log.syslog mbox t
/dev/pts/5
13:41:48
$echo ???*
b-link b-sourc DIR DIR2 disk FFF file1 file2 gconfd-root gconfd-user hsperfdata_root install keyring-VQSPZ4 log lost+found mapping-root mapping-user mc-root orbit-root OSL_PIPE_0_SingleOfficeIPC_44e0c34da8623980ccf9f8299a62e4fb pochta privet Projects report_mar ssh-AfKIzR7722 ssh-NwJjpD2893 super-puper-hyper-script svj59.tmp Text-Iconv-1.7 Text-Iconv.tar.gz txt typescript virtual-root.bUQIYE wer
13:42:49
$echo b*
b-link b-sourc
/dev/pts/3
13:42:58
#echo ??*
033_Unit1.html anaconda-ks.cfg backup Desktop install.log install.log.syslog mbox
13:43:02
#echo ???*
033_Unit1.html anaconda-ks.cfg backup Desktop install.log install.log.syslog mbox

Статистика

Время первой команды журнала13:17:09 2011- 3-29
Время последней команды журнала13:43:02 2011- 3-29
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %15.84
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.43
Количество командных строк в единицу времени, команда/мин 3.90
Частота использования команд
ping29|==========================| 26.36%
man29|==========================| 26.36%
echo22|====================| 20.00%
.3|==| 2.73%
ssh3|==| 2.73%
tr3|==| 2.73%
passwd2|=| 1.82%
vim2|=| 1.82%
less2|=| 1.82%
rpm2|=| 1.82%
pa2|=| 1.82%
ssh-1|| 0.91%
sort1|| 0.91%
m1|| 0.91%
>1|| 0.91%
cd1|| 0.91%
wc1|| 0.91%
ssh-keyscan1|| 0.91%
~1|| 0.91%
exit1|| 0.91%
known_hosts1|| 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$