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

Содержание

Журнал

Понедельник (03/26/18)

/dev/pts/4
13:22:37
$/.
l3script: /.: Это каталог
13:24:59
$cd/:
l3script: cd/:: Нет такого файла или каталога
13:25:09
$$cd/
l3script: /: Это каталог
13:25:17
$cd

13:25:24
$/.
l3script: /.: Это каталог
13:25:28
$ls
bigfile                                names
bin                                    ogo.jpg
freebsd.jpg                            pamyatka.pdf
granata.jpg                            press_any_key_to_continue.jpg
Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  proj
lpi 1                                  sh
lpi 2                                  text
man_smb_conf                           touchlist
matrix.jpg
13:25:34
$$ ls
l3script: $: команда не найдена
13:25:42
$cd/
l3script: cd/: Нет такого файла или каталога
13:25:53
$cd /

13:25:56
$ls
bin   etc         lib    lost+found  opt   run      srv  usr
boot  home        lib32  media       proc  sbin     sys  var
dev   initrd.img  lib64  mnt         root  selinux  tmp  vmlinuz
13:26:14
$cd -
/home/user
13:26:25
$cd `
> ^C
13:27:03
$cd ¬ ~

13:27:36
$pwd
/home/user
13:27:52
$cd ..

13:28:05
$pwd
/home
13:28:15
$ls
ivan  petr  user
13:28:39
$cd

13:28:49
$ls -lF
итого 2928
-rwxr-xr-x 1 user user    7994 Окт  9  2014 bigfile*
drwxr-xr-x 2 user user    4096 Окт  9  2014 bin/
-rwxr-xr-x 1 user user  232966 Окт  9  2014 freebsd.jpg*
-rwxr-xr-x 1 user user   52884 Окт  9  2014 granata.jpg*
-rwxr-xr-x 1 user user 1751860 Окт  9  2014 Light_Alloy_4.4.784_RC2_by_FAFNIR.exe*
drwxr-xr-x 2 user user    4096 Окт  9  2014 lpi 1/
drwxr-xr-x 2 user user    4096 Окт  9  2014 lpi 2/
-rwxr-xr-x 1 user user   26648 Окт  9  2014 man_smb_conf*
-rwxr-xr-x 1 user user  755680 Окт  9  2014 matrix.jpg*
drwxr-xr-x 3 user user    4096 Окт  9  2014 names/
-rwxr-xr-x 1 user user   17622 Окт  9  2014 ogo.jpg*
-rwxr-xr-x 1 user user   84663 Окт  9  2014 pamyatka.pdf*
-rwxr-xr-x 1 user user   23048 Окт  9  2014 press_any_key_to_continue.jpg*
drwxr-xr-x 3 user user    4096 Окт  9  2014 proj/
drwxr-xr-x 2 user user    4096 Окт  9  2014 sh/
drwxr-xr-x 2 user user    4096 Окт  9  2014 text/
-rwxr-xr-x 1 user user      75 Окт  9  2014 touchlist*
13:29:08
$ls -alF
итого 2964
drwxr-xr-x 10 user user    4096 Окт  9  2014 ./
drwxr-xr-x  5 root root    4096 Мар 26 10:33 ../
-rw-------  1 user user      11 Окт  9  2014 .bash_history
-rw-r--r--  1 user user     220 Июн 27  2014 .bash_logout
-rw-r--r--  1 user root      10 Июн 27  2014 .bash_profile
-rw-r--r--  1 user user    3457 Июн 27  2014 .bashrc
-rwxr-xr-x  1 user user    7994 Окт  9  2014 bigfile*
drwxr-xr-x  2 user user    4096 Окт  9  2014 bin/
-rwxr-xr-x  1 user user  232966 Окт  9  2014 freebsd.jpg*
...
-rwxr-xr-x  1 user user  755680 Окт  9  2014 matrix.jpg*
drwxr-xr-x  3 user user    4096 Окт  9  2014 names/
-rwxr-xr-x  1 user user   17622 Окт  9  2014 ogo.jpg*
-rwxr-xr-x  1 user user   84663 Окт  9  2014 pamyatka.pdf*
-rwxr-xr-x  1 user user   23048 Окт  9  2014 press_any_key_to_continue.jpg*
-rw-r--r--  1 user user     675 Июн 27  2014 .profile
drwxr-xr-x  3 user user    4096 Окт  9  2014 proj/
drwxr-xr-x  2 user user    4096 Окт  9  2014 sh/
drwxr-xr-x  2 user user    4096 Окт  9  2014 text/
-rwxr-xr-x  1 user user      75 Окт  9  2014 touchlist*
13:29:26
$cd /usr/share/doc

13:30:12
$ls
acpi                    grub-pc-bin               libgc1c2                  libss2                     openssh-blacklist-extra
acpid                   gzip                      libgcc1                   libssl1.0.0                openssh-client
acpi-support-base       heirloom-mailx            libgcrypt11               libstdc++6                 openssh-server
adduser                 hostname                  libgdbm3                  libsub-exporter-perl       openssl
apt                     ifupdown                  libgeoip1                 libsub-install-perl        os-prober
aptitude                info                      libgmp10                  libswitch-perl             passwd
aptitude-common         initramfs-tools           libgnutls26               libtasn1-3                 pciutils
apt-utils               initscripts               libgomp1                  libtext-charwidth-perl     perl
base-files              insserv                   libgpg-error0             libtext-iconv-perl         perl-base
base-passwd             installation-report       libgpm2                   libtext-template-perl      perl-modules
...
geoip-database          libdata-section-perl      libreadline6              ncurses-base               vim-runtime
gettext-base            libdb5.1                  libregexp-common-perl     ncurses-bin                vim-tiny
gnupg                   libdevmapper1.02.1        libselinux1               ncurses-term               w3m
gpgv                    libdiscover2              libsemanage1              netbase                    wget
grep                    libdns88                  libsemanage-common        netcat                     whiptail
groff-base              libedit2                  libsepol1                 netcat-traditional         xauth
grub2                   libept1.4.12              libsigc++-2.0-0c2a        netdiag                    xkb-data
grub2-common            libexpat1                 libslang2                 net-tools                  xml-core
grub-common             libfreetype6              libsoftware-license-perl  ntpdate                    xz-utils
grub-pc                 libfuse2                  libsqlite3-0              openssh-blacklist          zlib1g
13:30:18
$cd handbook
l3script: cd: handbook: Нет такого файла или каталога
13:30:31
$cd bash

13:31:40
$cd handbook
l3script: cd: handbook: Нет такого файла или каталога
13:32:13
$ls
changelog.Debian.gz  COMPAT.gz  FAQ             INTRO.gz  POSIX.gz          README.bash_completion.gz  README.Debian.gz
CHANGES.gz           copyright  inputrc.arrows  NEWS.gz   README.abs-guide  README.commands.gz
13:32:17
$cd bash
l3script: cd: bash: Нет такого файла или каталога
13:32:55
$cd /usr/share/doc

13:33:29
$ls
acpi                    grub-pc-bin               libgc1c2                  libss2                     openssh-blacklist-extra
acpid                   gzip                      libgcc1                   libssl1.0.0                openssh-client
acpi-support-base       heirloom-mailx            libgcrypt11               libstdc++6                 openssh-server
adduser                 hostname                  libgdbm3                  libsub-exporter-perl       openssl
apt                     ifupdown                  libgeoip1                 libsub-install-perl        os-prober
aptitude                info                      libgmp10                  libswitch-perl             passwd
aptitude-common         initramfs-tools           libgnutls26               libtasn1-3                 pciutils
apt-utils               initscripts               libgomp1                  libtext-charwidth-perl     perl
base-files              insserv                   libgpg-error0             libtext-iconv-perl         perl-base
base-passwd             installation-report       libgpm2                   libtext-template-perl      perl-modules
...
geoip-database          libdata-section-perl      libreadline6              ncurses-base               vim-runtime
gettext-base            libdb5.1                  libregexp-common-perl     ncurses-bin                vim-tiny
gnupg                   libdevmapper1.02.1        libselinux1               ncurses-term               w3m
gpgv                    libdiscover2              libsemanage1              netbase                    wget
grep                    libdns88                  libsemanage-common        netcat                     whiptail
groff-base              libedit2                  libsepol1                 netcat-traditional         xauth
grub2                   libept1.4.12              libsigc++-2.0-0c2a        netdiag                    xkb-data
grub2-common            libexpat1                 libslang2                 net-tools                  xml-core
grub-common             libfreetype6              libsoftware-license-perl  ntpdate                    xz-utils
grub-pc                 libfuse2                  libsqlite3-0              openssh-blacklist          zlib1g
13:33:31
$cd bash

13:33:45
$ls
changelog.Debian.gz  COMPAT.gz  FAQ             INTRO.gz  POSIX.gz          README.bash_completion.gz  README.Debian.gz
CHANGES.gz           copyright  inputrc.arrows  NEWS.gz   README.abs-guide  README.commands.gz
13:33:51
$cd ..

13:34:19
$cd bash-completion

13:34:58
$ls
AUTHORS  changelog.Debian.gz  changelog.gz  copyright  README.Debian  README.gz
13:35:02
$cd bash
l3script: cd: bash: Нет такого файла или каталога
13:36:12
$cd

13:36:43
$mkdir source doc pics

13:37:12
$ls
bigfile  freebsd.jpg                            lpi 1         matrix.jpg  pamyatka.pdf                   proj    text
bin      granata.jpg                            lpi 2         names       pics                           sh      touchlist
doc      Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  man_smb_conf  ogo.jpg     press_any_key_to_continue.jpg  source
13:37:14
$cd usr/share/doc
l3script: cd: usr/share/doc: Нет такого файла или каталога
13:41:14
$mkdir scripting/perl scripting/python c
mkdir: невозможно создать каталог «scripting/perl»: Нет такого файла или каталога
mkdir: невозможно создать каталог «scripting/python»: Нет такого файла или каталога
mkdir: невозможно создать каталог «c»: Отказано в доступе
13:42:20
$mkdir scripting
mkdir: невозможно создать каталог «scripting»: Отказано в доступе
13:42:44
$cd

13:42:53
$mkdir scripting

13:42:56
$cd scripting/

13:43:04
$mkdir perl

13:43:12
$mkdir python

13:43:18
$mkdir c

13:43:24
$ls
c  perl  python
13:43:26
$mkdir `pics/forweb/info/2002/summer`
l3script: pics/forweb/info/2002/summer: Нет такого файла или каталога
mkdir: пропущен операнд
Попробуйте «mkdir --help» для получения более подробного описания.
13:44:32
$mkdir --help
Использование: mkdir [КÐ
ли он ещё не существует.
Аргументы, обязательные для длинных ключей, обязательны и для коротких.
  -m, --mode=РЕЖИМ   установить код доступа (как в chmod)
  -p, --parents      не выдавать ошибок если существует, создавать
                     родительские каталоги если необходимо
  -v, --verbose      печатать сообщение о каждом созданном каталоге
  -Z, --context=CTX  установить контекст безопасности SELinux для каждого
                      создаваемого каталога равным CTX
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти
Об ошибках в mkdir сообщайте по адресу bug-coreutils@gnu.org.
Домашняя страница GNU coreutils: <http://www.gnu.org/software/coreutils/>
Справка по работе с программами GNU: <http://www.gnu.org/gethelp/>
Об ошибках в переводе сообщений «mkdir» сообщайте по адресу <gnu@mx.ru>
Полная документация доступна по команде: info coreutils 'mkdir invocation'
13:44:49
$mkdir pics

13:45:28
$cd pick
l3script: cd: pick: Нет такого файла или каталога
13:45:35
$cd pics

13:45:46
$mkdir forweb

13:45:55
$cd forweb/

13:46:00
$mkdir info

13:46:13
$cd info/

13:46:21
$mkdir 2002

13:46:29
$cd 2002/

13:46:37
$mkdir summer

13:46:49
$cd pics
l3script: cd: pics: Нет такого файла или каталога
13:47:45
$cd ..

13:47:54
$cd ..

13:47:54
$cd ..

13:47:55
$cd ..

13:47:55
$cd ..

13:47:56
$ls
bigfile  freebsd.jpg                            lpi 1         matrix.jpg  pamyatka.pdf                   proj       source
bin      granata.jpg                            lpi 2         names       pics                           scripting  text
doc      Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  man_smb_conf  ogo.jpg     press_any_key_to_continue.jpg  sh         touchlist
13:48:01
$cd scripting/

13:48:15
$mkdir -p doc/scripting/perl

13:48:56
$mkdir -p doc/scripting/python doc/c pics/forweb/info/2002/summer

13:49:49
$pwd
/home/user/scripting
13:50:03
$ls
c  doc  perl  pics  python
13:50:09
$tree
.
├── c
├── doc
│   ├── c
│   └── scripting
│       ├── perl
│       └── python
├── perl
├── pics
│   └── forweb
│       └── info
│           └── 2002
│               └── summer
└── python
13 directories, 0 files
13:50:13
$touch a b c

13:51:08
$tree
.
├── a
├── b
├── c
├── doc
│   ├── c
│   └── scripting
│       ├── perl
│       └── python
├── perl
├── pics
│   └── forweb
│       └── info
│           └── 2002
│               └── summer
└── python
13 directories, 2 files
13:51:33
$rm a b c
rm: невозможно удалить «c»: Это каталог
13:51:43
$tree
.
├── c
├── doc
│   ├── c
│   └── scripting
│       ├── perl
│       └── python
├── perl
├── pics
│   └── forweb
│       └── info
│           └── 2002
│               └── summer
└── python
13 directories, 0 files
13:52:10
$rm c
rm: невозможно удалить «c»: Это каталог
13:52:31
$rmdir -p pics/forweb/info/2002/summer/

13:53:00
$rmdir -r doc
rmdir: неверный ключ -- r
Попробуйте «rmdir --help» для получения более подробного описания.
13:53:32
$rm -r doc

13:54:31
$tree
.
├── c
├── perl
└── python
3 directories, 0 files
13:54:34
$rm c
rm: невозможно удалить «c»: Это каталог
13:55:03
$rmdir c

13:56:31
$tree
.
├── perl
└── python
2 directories, 0 files
13:56:34
$cd

13:56:41
$tree
.
├── bigfile
├── bin
│   ├── bigwork
│   └── signal_trap
├── doc
├── freebsd.jpg
├── granata.jpg
├── Light_Alloy_4.4.784_RC2_by_FAFNIR.exe
├── lpi 1
...
├── source
├── text
│   ├── comment-me.txt
│   ├── core
│   ├── hello-vi.txt
│   ├── hellow
│   ├── unixoid.err.txt
│   └── unixoid.orig.txt
└── touchlist
16 directories, 73 files
13:56:45
$cd scripting/

13:57:05
$touch x y z

13:58:23
$rm -i x
rm: удалить пустой обычный файл «x»? y
13:59:17
$tree
.
├── perl
├── python
├── y
└── z
2 directories, 2 files
13:59:22
$rm -v y z
удалён «y»
удалён «z»
13:59:33
$cd

13:59:53
$tree
.
├── bigfile
├── bin
│   ├── bigwork
│   └── signal_trap
├── doc
├── freebsd.jpg
├── granata.jpg
├── Light_Alloy_4.4.784_RC2_by_FAFNIR.exe
├── lpi 1
...
├── source
├── text
│   ├── comment-me.txt
│   ├── core
│   ├── hello-vi.txt
│   ├── hellow
│   ├── unixoid.err.txt
│   └── unixoid.orig.txt
└── touchlist
16 directories, 73 files
13:59:56
$cp Ñ~/proj/x-project/y ~/proj/x-project/z ~/bin

14:01:54
$cd ~tree
l3script: cd: ~tree: Нет такого файла или каталога
14:02:38
$~tree
l3script: ~tree: команда не найдена
14:02:43
$tree
.
├── bigfile
├── bin
│   ├── bigwork
│   ├── signal_trap
│   ├── y
│   └── z
├── doc
├── freebsd.jpg
├── granata.jpg
...
├── source
├── text
│   ├── comment-me.txt
│   ├── core
│   ├── hello-vi.txt
│   ├── hellow
│   ├── unixoid.err.txt
│   └── unixoid.orig.txt
└── touchlist
16 directories, 75 files
14:02:46
$cd ~/proj/x-project

14:03:30
$cp x y z ~/bin

Статистика

Время первой команды журнала13:22:37 2018- 3-26
Время последней команды журнала14:03:30 2018- 3-26
Количество командных строк в журнале100
Процент команд с ненулевым кодом завершения, %16.00
Процент синтаксически неверно набранных команд, % 4.00
Суммарное время работы с терминалом *, час 0.68
Количество командных строк в единицу времени, команда/мин 2.45
Частота использования команд
cd38|======================================| 38.00%
mkdir16|================| 16.00%
ls14|==============| 14.00%
tree9|=========| 9.00%
rm6|======| 6.00%
rmdir3|===| 3.00%
pwd3|===| 3.00%
touch2|==| 2.00%
/.2|==| 2.00%
cp2|==| 2.00%
$cd/1|=| 1.00%
cd/1|=| 1.00%
:1|=| 1.00%
~tree1|=| 1.00%
$1|=| 1.00%
____
*) Интервалы неактивности длительностью 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$