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

Содержание

Журнал

Понедельник (12/21/15)

/dev/pts/0
11:59:32
#pwd
/home
11:59:45
#ls
ivan  petr  user
11:59:52
#cd /user/share/doc
l3script: cd: /user/share/doc: Нет такого файла или каталога
12:00:06
#cd /usr/share/doc

12:00:18
#ls
acpi                    isc-dhcp-common           libmro-compat-perl         mount
acpid                   kbd                       libncurses5                multiarch-support
acpi-support-base       keyboard-configuration    libncursesw5               nano
adduser                 klibc-utils               libnewt0.52                ncurses-base
apt                     kmod                      libnfnetlink0              ncurses-bin
aptitude                laptop-detect             libp11-kit0                ncurses-term
aptitude-common         less                      libpam0g                   netbase
apt-utils               lib32gcc1                 libpam-modules             netcat
base-files              lib32gomp1                libpam-modules-bin         netcat-traditional
base-passwd             lib32itm1                 libpam-runtime             netdiag
...
initramfs-tools         liblocale-gettext-perl    lsb-base                   wget
initscripts             liblockfile1              lynx                       whiptail
insserv                 liblockfile-bin           lynx-cur                   xauth
installation-report     liblwres80                make                       xkb-data
install-info            liblzma5                  man-db                     xml-core
iproute                 libmodule-build-perl      manpages                   xz-utils
iptables                libmodule-signature-perl  manpages-dev               zlib1g
iptraf                  libmount1                 mawk
iputils-ping            libmpc2                   mime-support
isc-dhcp-client         libmpfr4                  module-init-tools
12:00:28
#cdbash
l3script: cdbash: команда не найдена
12:02:22
#cdbash
l3script: cdbash: команда не найдена
12:03:17
#ls
acpi                    diffutils           gzip                    libattr1                  libgcrypt11               libncurses5               libsub-exporter-perl       locate                   os-prober          sysv-rc
acpid                   discover            heirloom-mailx          libbind9-80               libgdbm3                  libncursesw5              libsub-install-perl        lockfile-progs           passwd             tar
acpi-support-base       discover-data       hostname                libblkid1                 libgeoip1                 libnewt0.52               libswitch-perl             login                    pciutils           tasksel
adduser                 dmidecode           ifupdown                libboost-iostreams1.49.0  libgmp10                  libnfnetlink0             libtasn1-3                 logrotate                perl               tasksel-data
apt                     dmsetup             info                    libbsd0                   libgnutls26               libp11-kit0               libtext-charwidth-perl     lsb-base                 perl-base          tcpd
aptitude                dnsutils            initramfs-tools         libbz2-1.0                libgomp1                  libpam0g                  libtext-iconv-perl         lynx                     perl-modules       tcpdump
aptitude-common         dpkg                initscripts             libc6                     libgpg-error0             libpam-modules            libtext-template-perl      lynx-cur                 procps             telnet
apt-utils               e2fslibs            insserv                 libc6-dev                 libgpm2                   libpam-modules-bin        libtext-wrapi18n-perl      make                     psmisc             traceroute
base-files              e2fsprogs           installation-report     libc6-dev-i386            libgssapi-krb5-2          libpam-runtime            libtinfo5                  man-db                   python             tree
base-passwd             eject               install-info            libc6-i386                libidn11                  libparams-util-perl       libudev0                   manpages                 python2.7          tzdata
...
coreutils               gettext-base        less                    libdevmapper1.02.1        liblockfile1              libsemanage1              libxdmcp6                  netcat                   readline-common    xauth
cpio                    gnupg               lib32gcc1               libdiscover2              liblockfile-bin           libsemanage-common        libxext6                   netcat-traditional       reportbug          xkb-data
cpp                     gpgv                lib32gomp1              libdns88                  liblwres80                libsepol1                 libxml2                    netdiag                  rsyslog            xml-core
cpp-4.7                 grep                lib32itm1               libedit2                  liblzma5                  libsigc++-2.0-0c2a        libxmuu1                   net-tools                screen             xz-utils
cron                    groff-base          lib32quadmath0          libept1.4.12              libmodule-build-perl      libslang2                 links                      ntpdate                  sed                zlib1g
dash                    grub2               libacl1                 libexpat1                 libmodule-signature-perl  libsoftware-license-perl  linux-base                 openssh-blacklist        sensible-utils
debconf                 grub2-common        libalgorithm-c3-perl    libfreetype6              libmount1                 libsqlite3-0              linux-image-3.2.0-4-amd64  openssh-blacklist-extra  sgml-base
debconf-i18n            grub-common         libapt-inst1.5          libfuse2                  libmpc2                   libss2                    linux-image-amd64          openssh-client           ssh
debian-archive-keyring  grub-pc             libapt-pkg4.12          libgc1c2                  libmpfr4                  libssl1.0.0               linux-libc-dev             openssh-server           sysvinit
debianutils             grub-pc-bin         libasprintf0c2          libgcc1                   libmro-compat-perl        libstdc++6                locales                    openssl                  sysvinit-utils
12:03:19
#cdbash*
l3script: cdbash*: команда не найдена
12:03:37
#cd /bash
l3script: cd: /bash: Нет такого файла или каталога
12:03:59
#cd pwd
l3script: cd: pwd: Нет такого файла или каталога
12:05:25
#pwd
/usr/share/doc
12:05:29
#cd bash

12:05:49
#ls
changelog.Debian.gz  CHANGES.gz  COMPAT.gz  copyright  FAQ  inputrc.arrows  INTRO.gz  NEWS.gz  POSIX.gz  README.abs-guide  README.bash_completion.gz  README.commands.gz  README.Debian.gz
12:06:15
#cd

12:07:14
#pwd
/root
12:07:16
#mkdir sourse doc pic

12:08:53
#les
l3script: les: команда не найдена
12:08:57
#ls
d1  d4  doc  install  pic  sourse
12:09:03
#mkdir doc/scripting/perl1
mkdir: невозможно создать каталог «doc/scripting/perl1»: Нет такого файла или каталога
12:10:25
#mkdir -p doc/scripting/perl1

12:10:52
#mkdir -p doc/scripting/phyton doc/c pics/forweb/info/2001/summer

12:12:04
#tree
.
├── d1
│   ├── d2
│   └── d4
│       └── d5
│           └── d6
├── d4
│   └── d5
│       └── d6
├── doc
...
│       └── phyton
├── install
├── pic
├── pics
│   └── forweb
│       └── info
│           └── 2001
│               └── summer
└── sourse
20 directories, 1 file
12:13:43
#cd

прошла 31 минута
12:45:42
#pwd
/root
12:45:45
#ls
d1  d4  doc  install  pic  pics  sourse
12:45:53
#ls -lF
итого 32
drwxr-xr-x 4 root root 4096 Дек 21 12:52 d1/
drwxr-xr-x 3 root root 4096 Дек 21 12:30 d4/
drwxr-xr-x 4 root root 4096 Дек 21 13:12 doc/
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
drwxr-xr-x 2 root root 4096 Дек 21 13:08 pic/
drwxr-xr-x 3 root root 4096 Дек 21 13:12 pics/
drwxr-xr-x 2 root root 4096 Дек 21 13:08 sourse/
12:46:24
#cd

12:46:31
#touch a b c

12:47:09
#rm a b c

12:47:39
#rmdir -p pics/forweb/info/2002/summer
rmdir: не удалось удалить «pics/forweb/info/2002/summer»: Нет такого файла или каталога
12:48:39
#ls
d1  d4  doc  install  pic  pics  sourse
/dev/pts/4
12:53:28
#cd

12:53:37
#ls lF
ls: невозможно получить доступ к lF: Нет такого файла или каталога
12:53:48
#ls 1F
ls: невозможно получить доступ к 1F: Нет такого файла или каталога
12:53:56
#ls lF
ls: невозможно получить доступ к lF: Нет такого файла или каталога
12:54:20
#ls -lF
итого 32
drwxr-xr-x 4 root root 4096 Дек 21 12:52 d1/
drwxr-xr-x 3 root root 4096 Дек 21 12:30 d4/
drwxr-xr-x 4 root root 4096 Дек 21 13:12 doc/
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
drwxr-xr-x 2 root root 4096 Дек 21 13:08 pic/
drwxr-xr-x 3 root root 4096 Дек 21 13:12 pics/
drwxr-xr-x 2 root root 4096 Дек 21 13:08 sourse/
12:54:43
#rmdir -p pics/forweb/info/2002/summer
rmdir: не удалось удалить «pics/forweb/info/2002/summer»: Нет такого файла или каталога
12:55:21
#ls
d1  d4  doc  install  pic  pics  sourse
12:55:34
#tree
.
├── d1
│   ├── d2
│   └── d4
│       └── d5
│           └── d6
├── d4
│   └── d5
│       └── d6
├── doc
...
│       └── phyton
├── install
├── pic
├── pics
│   └── forweb
│       └── info
│           └── 2001
│               └── summer
└── sourse
20 directories, 1 file
12:55:43
#rmdir -P pics/forweb/info/2002/summer
rmdir: неверный ключ -- P
Попробуйте «rmdir --help» для получения более подробного описания.
12:56:29
#rmdir -ppics/forweb/info/2002/summer
rmdir: неверный ключ -- i
Попробуйте «rmdir --help» для получения более подробного описания.
12:57:17
#rmdir -p pics/forweb/info/2002/summer
rmdir: не удалось удалить «pics/forweb/info/2002/summer»: Нет такого файла или каталога
12:57:28
#tree
.
├── d1
│   ├── d2
│   └── d4
│       └── d5
│           └── d6
├── d4
│   └── d5
│       └── d6
├── doc
...
│       └── phyton
├── install
├── pic
├── pics
│   └── forweb
│       └── info
│           └── 2001
│               └── summer
└── sourse
20 directories, 1 file
12:58:33
#rmdir pic

12:58:56
#rm -r doc

12:59:25
#tree
.
├── d1
│   ├── d2
│   └── d4
│       └── d5
│           └── d6
├── d4
│   └── d5
│       └── d6
├── install
└── sourse
9 directories, 1 file
12:59:29
#rm -r d1

12:59:43
#tree
.
├── d4
│   └── d5
│       └── d6
├── install
└── sourse
4 directories, 1 file
12:59:48
#rmdir -p d4/d5/d6

13:00:25
#tree
.
├── install
└── sourse
1 directory, 1 file
13:00:28
#rmdir sourse

13:00:44
#tree
.
└── install
0 directories, 1 file
13:00:47
#ls F
ls: невозможно получить доступ к F: Нет такого файла или каталога
13:01:09
#ls -lF
итого 8
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
13:01:20
#ls
install
13:01:34
#mkdir d1 d2 d3

13:02:15
#cd d1

13:03:12
#pwd
/root/d1
13:03:18
#touch a

13:03:35
#cd..
l3script: cd..: команда не найдена
13:03:40
#cd ..

13:03:47
#pwd
/root
13:03:50
#ls
d1  d2  d3  install
13:03:54
#cd d2

13:03:59
#touch b

13:04:16
#cd//
l3script: cd//: Нет такого файла или каталога
13:04:19
#cd ..

13:04:25
#tree
.
├── d1
│   └── a
├── d2
│   └── b
├── d3
└── install
3 directories, 3 files
13:07:34
#cp d1/a d2/b /d3
cp: указанная цель «/d3» не является каталогом
13:08:35
#cp d1/a d2/b ~/d3

13:09:06
#tree
.
├── d1
│   └── a
├── d2
│   └── b
├── d3
│   ├── a
│   └── b
└── install
3 directories, 5 files
13:09:17
#cr -R ~/d3 ~/d4
l3script: cr: команда не найдена
13:12:08
#cp -R ~/d3 ~/d4

13:12:18
#tree
.
├── d1
│   └── a
├── d2
│   └── b
├── d3
│   ├── a
│   └── b
├── d4
│   ├── a
│   └── b
└── install
4 directories, 7 files
13:12:22
#mv ~/d1 d5

13:14:09
#tree
.
├── d2
│   └── b
├── d3
│   ├── a
│   └── b
├── d4
│   ├── a
│   └── b
├── d5
│   └── a
└── install
4 directories, 7 files
13:14:12
#ls
d2  d3  d4  d5  install
13:14:37
#cd

13:15:24
#pwd
/root
13:15:26
#cd ..

13:15:35
#pwd
/
13:15:38
#ls -l
итого 88
drwxr-xr-x  2 root root  4096 Окт 13  2014 bin
drwxr-xr-x  3 root root  4096 Окт 13  2014 boot
drwxr-xr-x  2 root root  4096 Дек 21 12:28 d2
drwxr-xr-x 12 root root  2960 Дек 21 11:33 dev
drwxr-xr-x 68 root root  4096 Дек 21 11:33 etc
drwxr-xr-x  5 root root  4096 Дек 21 11:20 home
lrwxrwxrwx  1 root root    30 Июн 27  2014 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x 13 root root  4096 Окт 15  2014 lib
drwxr-xr-x  2 root root  4096 Окт 15  2014 lib32
...
drwx------  9 root root  4096 Дек 21 14:14 root
drwxr-xr-x 12 root root   420 Дек 21 11:33 run
drwxr-xr-x  2 root root  4096 Окт 13  2014 sbin
drwxr-xr-x  2 root root  4096 Июн 10  2012 selinux
drwxr-xr-x  2 root root  4096 Июн 27  2014 srv
drwxr-xr-x 13 root root     0 Дек 21 11:32 sys
drwxrwxrwt  2 root root  4096 Дек 21 13:53 tmp
drwxr-xr-x 11 root root  4096 Окт 15  2014 usr
drwxr-xr-x 11 root root  4096 Июн 27  2014 var
lrwxrwxrwx  1 root root    26 Июн 27  2014 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64
13:15:49
#ls -l /etc
итого 656
drwxr-xr-x 3 root root    4096 Окт 13  2014 acpi
-rw-r--r-- 1 root root    2981 Июн 27  2014 adduser.conf
-rw-r--r-- 1 root root      44 Окт 15  2014 adjtime
-rw-r--r-- 1 root root     196 Июн 27  2014 aliases
drwxr-xr-x 2 root root    4096 Окт 13  2014 alternatives
drwxr-xr-x 6 root root    4096 Окт 13  2014 apt
-rw-r--r-- 1 root root    1895 Дек 30  2012 bash.bashrc
-rw-r--r-- 1 root root      45 Июн 17  2012 bash_completion
drwxr-xr-x 2 root root    4096 Июн 27  2014 bash_completion.d
...
-rw-r--r-- 1 root root      12 Июн 27  2014 timezone
-rw-r--r-- 1 root root    1552 Окт 19  2012 trafshow
-rw-r--r-- 1 root root    1260 Май 30  2008 ucf.conf
drwxr-xr-x 4 root root    4096 Июн 27  2014 udev
drwxr-xr-x 3 root root    4096 Июн 27  2014 ufw
drwxr-xr-x 2 root root    4096 Июн 27  2014 vim
drwxr-xr-x 2 root root    4096 Июн 27  2014 w3m
-rw-r--r-- 1 root root    4496 Фев  1  2014 wgetrc
drwxr-xr-x 3 root root    4096 Июн 27  2014 X11
drwxr-xr-x 2 root root    4096 Июн 27  2014 xml
13:16:02
#ls -l /dev/cdrom
ls: невозможно получить доступ к /dev/cdrom: Нет такого файла или каталога
13:25:55
#ls -l /dev/cdrom1
lrwxrwxrwx 1 root root 3 Дек 21 11:33 /dev/cdrom1 -> sr0
13:26:05
#ls -l /dev/sr0
brw-rw---T 1 root cdrom 11, 0 Дек 21 11:33 /dev/sr0
13:26:21
#mailq

13:29:24
#wich mailq
l3script: wich: команда не найдена
13:29:37
#which mailq
/usr/bin/mailq
13:30:14
#tree
.
├── bin
│   ├── bash
│   ├── busybox
│   ├── cat
│   ├── chgrp
│   ├── chmod
│   ├── chown
│   ├── chvt
│   ├── cp
...
│   │   │   └── crontabs
│   │   ├── exim4
│   │   │   ├── db
│   │   │   ├── input
│   │   │   └── msglog
│   │   ├── mail -> ../mail
│   │   └── rsyslog
│   └── tmp
└── vmlinuz -> boot/vmlinuz-3.2.0-4-amd64
5951 directories, 45820 files
13:31:24
#cd

13:31:27
#pwd
/root
13:31:32
#tree
.
├── d2
│   └── b
├── d3
│   ├── a
│   └── b
├── d4
│   ├── a
│   └── b
├── d5
│   └── a
└── install
4 directories, 7 files
13:31:39
#ln- n /d2
l3script: ln-: команда не найдена
13:32:43
#ln -n /d2
ln: «/d2»: не допускается создавать жёсткие ссылки на каталоги
13:32:55
#cd d2

13:33:44
#ln -s a

13:34:34
#ls -il
итого 0
653104 lrwxrwxrwx 1 root root 1 Дек 21 14:34 a -> a
653098 -rw-r--r-- 1 root root 0 Дек 21 14:04 b
13:34:51
#pwd
/root/d2
прошло 13 минут
13:48:27
#cd ..

Статистика

Время первой команды журнала11:59:32 2015-12-21
Время последней команды журнала13:48:27 2015-12-21
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %15.84
Процент синтаксически неверно набранных команд, % 8.91
Суммарное время работы с терминалом *, час 1.28
Количество командных строк в единицу времени, команда/мин 1.31
Частота использования команд
ls24|=======================| 23.76%
cd18|=================| 17.82%
tree13|============| 12.87%
pwd10|=========| 9.90%
rmdir8|=======| 7.92%
mkdir5|====| 4.95%
touch3|==| 2.97%
cp3|==| 2.97%
rm3|==| 2.97%
cdbash2|=| 1.98%
ln2|=| 1.98%
cd//1|| 0.99%
cd..1|| 0.99%
wich1|| 0.99%
cdbash*1|| 0.99%
ln-1|| 0.99%
mailq1|| 0.99%
cr1|| 0.99%
mv1|| 0.99%
which1|| 0.99%
les1|| 0.99%
____
*) Интервалы неактивности длительностью 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$