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

Содержание

Журнал

Понедельник (04/08/13)

/dev/pts/0
09:05:12
#uname
Linux
09:13:15
#uname -a
Linux debian6 2.6.39-bpo.2-686-pae #1 SMP Thu Aug 4 11:02:22 UTC 2011 i686 GNU/Linux
09:13:33
#ps aw
  PID TTY      STAT   TIME COMMAND
 1334 tty1     Ss+    0:00 /sbin/getty 38400 tty1
 1335 tty2     Ss+    0:00 /sbin/getty 38400 tty2
 1336 tty3     Ss+    0:00 /sbin/getty 38400 tty3
 1337 tty4     Ss+    0:00 /sbin/getty 38400 tty4
 1338 tty5     Ss+    0:00 /sbin/getty 38400 tty5
 1339 tty6     Ss+    0:00 /sbin/getty 38400 tty6
 1568 pts/0    Ss     0:00 -bash
 1589 pts/0    S+     0:00 script -f -c l3script -q /root/.lilalo//161241073535898378-1365404712.script
 1620 pts/0    S+     0:00 script -f -c l3script -q /root/.lilalo//161241073535898378-1365404712.script
 1621 pts/1    Ss     0:00 l3script
 1668 pts/1    R+     0:00 ps aw
прошло 67 минут
10:21:01
#ps a
  PID TTY      STAT   TIME COMMAND
 1334 tty1     Ss+    0:00 /sbin/getty 38400 tty1
 1335 tty2     Ss+    0:00 /sbin/getty 38400 tty2
 1336 tty3     Ss+    0:00 /sbin/getty 38400 tty3
 1337 tty4     Ss+    0:00 /sbin/getty 38400 tty4
 1338 tty5     Ss+    0:00 /sbin/getty 38400 tty5
 1339 tty6     Ss+    0:00 /sbin/getty 38400 tty6
 1568 pts/0    Ss     0:00 -bash
 1589 pts/0    S+     0:00 script -f -c l3script -q /root/.lilalo//161241073535898378-1365404712.script
 1620 pts/0    S+     0:00 script -f -c l3script -q /root/.lilalo//161241073535898378-1365404712.script
 1621 pts/1    Ss     0:00 l3script
 1676 pts/1    R+     0:00 ps a
10:21:12
#ps help
ERROR: List of process IDs must follow p.
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
10:21:17
#ps --help
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
r  only running processes             U  processes for specified users
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
10:21:31
#man pwd
10:28:16
#mane pwd
l3script: mane: команда не найдена
10:28:22
#man passwd
10:29:50
#man host
10:30:10
#man hoste
10:30:15
#man host
10:30:23
#man hoost
10:30:29
#man hosts
10:32:24
#man ifconfig
10:35:46
#man 5 psswd
10:36:07
#man 5 passwd
10:38:05
#whatis passwd
passwd (1)           - изменяет пароль пользователя
passwd (5)           - файл паролей
passwd (1ssl)        - compute password hashes
10:39:11
#opropos passwd
l3script: opropos: команда не найдена
10:39:33
#opropos passwd
l3script: opropos: команда не найдена
10:39:43
#apropos passwd
chpasswd (8)         - обновляет пароли в пакетном режиме
gpasswd (1)          - administer /etc/group and /etc/gshadow
passwd (1)           - изменяет пароль пользователя
passwd (5)           - файл паролей
update-passwd (8)    - безопасное обновление файлов /etc/passwd, /etc/shadow и /etc/group
chgpasswd (8)        - update group passwords in batch mode
exim4_passwd (5)     - Files in use by the Debian exim4 packages
exim4_passwd_client (5) - Files in use by the Debian exim4 packages
fgetpwent_r (3)      - get passwd file entry reentrantly
getpwent_r (3)       - get passwd file entry reentrantly
grub-mkpasswd-pbkdf2 (1) - generate hashed password for GRUB
mkpasswd (1)         - Overfeatured front end to crypt(3)
pam_localuser (8)    - require users to be listed in /etc/passwd
passwd (1ssl)        - compute password hashes
passwd2des (3)       - RFS password encryption
10:41:06
#info
10:46:27
#* seq: (coreutils)seq invocation. Print numeric sequences

10:47:42
# delimited by colons (“:”). These fields are:
MAN(1)                                                                             Утилиты просмотра справочных страниц                                                                             MAN(1)
НАЗВАНИЕ
       man - доступ к справочным страницам
СИНТАКСИС
       man  [-C файл] [-d] [-D] [--warnings[=предупреждения]] [-R кодировка] [-L локаль] [-m система[,...]] [-M путь] [-S список разделов] [-e доп.расширение] [-i|-I] [--regex|--wildcard] [--names-only]
       [-a] [-u] [--no-subpages] [-P пейджер] [-r приглашение] [-7] [-E кодировка] [--no-hyphenation] [--no-justification] [-p  строка]  [-t]  [-T[устройство]]  [-H[браузер]]  [-X[dpi]]  [-Z]  [[раздел]
       страница ...] ...
       man -k [apropos параметры] регвыр ...
       man -K [-w|-W] [-S список] [-i|-I] [--regex] [раздел] термин ...
       man -f [whatis параметры] страница ...
...
       чтобы поддерживать кэши базы данных в актуальном состоянии. Чтобы предотвратить проблемы из-за устаревших кэшей, man выполняет поиск файлов по имени, если в кэше ничего не нашлось ( как  если  бы
       кэша не было).
       После  обнаружения  справочной  страницы  выполняется  проверка,  существует  ли уже отформатированный для неё `cat' файл и что он новее, чем найденный nroff файл. Если уже отформатированный файл
       существует, он (обычно) расжимается и показывается с помощью пейджера. Нужную программу пейджер можно задать различными способами или используется значение  по  умолчанию  (подробней  смотрите  в
       описании параметра -P). Если cat страница не найдена или старее, чем nroff файл, то nroff файл пропускается через различные программы и сразу же показывается.
       Если есть возможность создать cat файл (существует соответствующий cat каталог и достаточно прав), то man сжимает и сохраняет cat файл в фоновом режиме.
       Фильтры можно указывать разными способами. Во-первых, обрабатывается значение параметра -p или переменная окружения $MANROFFSEQ. Если -p не указывалась и переменная окружения не установлена, то в
       поисках строки препроцессора анализируется первая строка nroff файла. Чтобы указывать строку препроцессора правильно, первая строка должна быть в формате
       '\" <строка>
       где строка может содержать комбинацию букв, описанных в параметре -p ниже.
10:48:36
#/usr/share/doc
l3script: /usr/share/doc: является директорией
10:49:31
#nano /usr/share/doc
10:49:49
#/usr/share/doc
l3script: /usr/share/doc: является директорией
10:49:56
#/usr/share/doc/
l3script: /usr/share/doc/: является директорией
10:50:02
#/usr/share/d
debconf/             debianutils/         dictd/               discover/            doc-base/
debhelper/           dict/                dictionaries-common/ doc/                 dpkg/
10:50:02
#/usr/share/doc
l3script: /usr/share/doc: является директорией
10:50:28
#cd /usr/share/doc

10:50:44
#la
l3script: la: команда не найдена
10:50:47
#ls
acpi                    discover             iproute                    libedit2                     libncurses5-dev         libx11-data                       ncurses-base             ssh
acpid                   discover-data        iptables                   libept1                      libncursesw5            libxapian22                       ncurses-bin              sudo
acpi-support-base       dmidecode            iptraf                     libevent-1.4-2               libnewt0.52             libxau6                           ncurses-term             sysvinit
adduser                 dmsetup              iputils-ping               libexpat1                    libnfnetlink0           libxaw7                           netbase                  sysvinit-utils
anacron                 dnsutils             irussian                   libextutils-cbuilder-perl    libnfsidmap2            libxcb1                           netcat                   sysv-rc
apt                     doc-debian           isc-dhcp-client            libextutils-parsexs-perl     libpam0g                libxcursor1                       netcat-traditional       sysv-rc-conf
aptitude                doc-linux-text       isc-dhcp-common            libfile-copy-recursive-perl  libpam-modules          libxdmcp6                         netdiag                  tar
apt-listchanges         dpkg                 iso-codes                  libfontconfig1               libpam-runtime          libxext6                          net-tools                tasksel
apt-utils               dpkg-dev             ispell                     libfreetype6                 libparted0debian1       libxfixes3                        nfs-common               tasksel-data
aspell                  e2fslibs             kbd                        libgc1c2                     libpcap0.8              libxft2                           nmap                     tcpd
...
dc                      host                 libcurses-perl             libldap-2.4-2                libtext-iconv-perl      manpages-dev                      python-minimal           xml-core
debconf                 hostname             libcurses-ui-perl          liblocale-gettext-perl       libtext-wrapi18n-perl   manpages-ru                       python-reportbug         xz-utils
debconf-i18n            HOWTO                libcwidget3                liblockfile1                 libtimedate-perl        mawk                              python-support           zlib1g
debian                  ifupdown             libdb4.6                   liblua5.1-0                  libtokyocabinet8        mime-support                      re                       zlib1g-dev
debian-archive-keyring  info                 libdb4.7                   liblwres60                   libudev0                mlocate                           readline-common
debian-faq              initramfs-tools      libdb4.8                   liblzma2                     libusb-0.1-4            module-init-tools                 reportbug
debianutils             initscripts          libdevmapper1.02.1         libmagic1                    libuuid1                mount                             rsyslog
dictionaries-common     insserv              libdiscover2               libmodule-build-perl         libuuid-perl            mueller7-dict                     sed
diff                    installation-report  libdns69                   libmpfr4                     libwrap0                mutt                              sensible-utils
diffutils               install-info         libdpkg-perl               libncurses5                  libx11-6                nano                              sgml-base
10:50:49
#cd ~

прошло 18 минут
11:09:19
#ls

11:09:36
#ls -a
.  ..  .aptitude  .bash_history  .bash_profile  .bashrc  .l3rc  .lilalo  .profile  .viminfo
11:09:53
#man cp
прошло >2 часов
13:28:30
#man mv
13:33:08
#ls

13:33:22
#ls -l
итого 0
прошло 12 минут
13:45:31
#ls -ld
drwx------ 4 root root 4096 Июл  5  2012 .
13:45:37
#ls -ld /etc
drwxr-xr-x 76 root root 4096 Апр  8 08:23 /etc
13:45:45
#ls -ld /boot
drwxr-xr-x 3 root root 4096 Июн 11  2012 /boot
прошло 27 минут
14:12:58
#ls

14:17:33
#dir

14:17:38
#pwd
/root
14:17:44
#cd /

прошла 31 минута
14:49:03
#pwd
/
14:49:08
#ls
bin   etc         lib         mnt   root     srv  usr
boot  home        lost+found  opt   sbin     sys  var
dev   initrd.img  media       proc  selinux  tmp  vmlinuz
14:49:16
#`
> q
> qit
> exit
> ^C
14:49:42
#cd ~

14:50:08
#pwd
/root
14:50:19
#cd..
l3script: cd..: команда не найдена
14:50:38
#cd ..

14:50:50
#cd ..:
l3script: cd: ..:: Нет такого файла или каталога
14:51:01
#cd ..

14:51:05
#pwd
/
14:51:13
#cd /home/

14:51:27
#pwd
/home
14:51:31
#ls
user
14:51:34
#cd

14:52:10
#pwd
/root
14:52:14
#ls

14:52:50
#cd /home/

14:52:59
#ls
user
14:53:08
#ls -l
итого 4
drwxr-xr-x 9 user user 4096 Июл  5  2012 user
14:53:16
#ls -lF
итого 4
drwxr-xr-x 9 user user 4096 Июл  5  2012 user/
14:53:21
#ls -l
итого 4
drwxr-xr-x 9 user user 4096 Июл  5  2012 user
14:53:27
#ls -lF
итого 4
drwxr-xr-x 9 user user 4096 Июл  5  2012 user/
14:53:32
#ls -a
.  ..  user
14:54:35
#ls -alf
.  ..  user
14:54:41
#cd /usr/share/doc

14:56:19
#ls
acpi                         libmodule-build-perl
acpid                        libmpfr4
acpi-support-base            libncurses5
adduser                      libncurses5-dev
anacron                      libncursesw5
apt                          libnewt0.52
aptitude                     libnfnetlink0
apt-listchanges              libnfsidmap2
apt-utils                    libpam0g
aspell                       libpam-modules
...
libklibc                     whiptail
libkrb5-3                    whois
libkrb5support0              x11-apps
libldap-2.4-2                x11-common
liblocale-gettext-perl       xauth
liblockfile1                 xkb-data
liblua5.1-0                  xml-core
liblwres60                   xz-utils
liblzma2                     zlib1g
libmagic1                    zlib1g-dev
14:56:31
#cd b
base-files/      bc/              bsdmainutils/    bzip2/
base-passwd/     bind9-host/      bsdutils/
bash/            binutils/        build-essential/
bash-completion/ bsd-mailx/       busybox/
14:56:31
#cd b
base-files/      bc/              bsdmainutils/    bzip2/
base-passwd/     bind9-host/      bsdutils/
bash/            binutils/        build-essential/
bash-completion/ bsd-mailx/       busybox/
14:56:31
#cd bash

14:56:46
#ls
changelog.Debian.gz  inputrc.arrows    README.bash_completion.gz
CHANGES.gz           INTRO.gz          README.commands.gz
COMPAT.gz            NEWS.gz           README.Debian.gz
copyright            POSIX.gz
FAQ                  README.abs-guide
14:56:50
#cd ..

14:58:45
#ls
acpi                         libmodule-build-perl
acpid                        libmpfr4
acpi-support-base            libncurses5
adduser                      libncurses5-dev
anacron                      libncursesw5
apt                          libnewt0.52
aptitude                     libnfnetlink0
apt-listchanges              libnfsidmap2
apt-utils                    libpam0g
aspell                       libpam-modules
...
libklibc                     whiptail
libkrb5-3                    whois
libkrb5support0              x11-apps
libldap-2.4-2                x11-common
liblocale-gettext-perl       xauth
liblockfile1                 xkb-data
liblua5.1-0                  xml-core
liblwres60                   xz-utils
liblzma2                     zlib1g
libmagic1                    zlib1g-dev
14:59:13
#cd bash

15:00:04
#ls
changelog.Debian.gz  inputrc.arrows    README.bash_completion.gz
CHANGES.gz           INTRO.gz          README.commands.gz
COMPAT.gz            NEWS.gz           README.Debian.gz
copyright            POSIX.gz
FAQ                  README.abs-guide
15:00:14
#cd handbook
l3script: cd: handbook: Нет такого файла или каталога
15:01:12
#ls
changelog.Debian.gz  inputrc.arrows    README.bash_completion.gz
CHANGES.gz           INTRO.gz          README.commands.gz
COMPAT.gz            NEWS.gz           README.Debian.gz
copyright            POSIX.gz
FAQ                  README.abs-guide

Статистика

Время первой команды журнала09:05:12 2013- 4- 8
Время последней команды журнала15:01:12 2013- 4- 8
Количество командных строк в журнале83
Процент команд с ненулевым кодом завершения, %24.10
Процент синтаксически неверно набранных команд, % 6.02
Суммарное время работы с терминалом *, час 1.98
Количество командных строк в единицу времени, команда/мин 0.70
Частота использования команд
ls24|============================| 28.92%
cd17|====================| 20.48%
man12|==============| 14.46%
pwd6|=======| 7.23%
ps4|====| 4.82%
doc3|===| 3.61%
opropos2|==| 2.41%
uname2|==| 2.41%
`1|=| 1.20%
/usr/share/doc/1|=| 1.20%
cd..1|=| 1.20%
mane1|=| 1.20%
nano1|=| 1.20%
info1|=| 1.20%
apropos1|=| 1.20%
la1|=| 1.20%
dir1|=| 1.20%
d1|=| 1.20%
*1|=| 1.20%
delimited1|=| 1.20%
whatis1|=| 1.20%
____
*) Интервалы неактивности длительностью 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$