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

Содержание

Журнал

Четверг (08/09/12)

/dev/pts/1
10:37:46
#vim /etc/cron.hourly/
10:40:30
#X11/
0anacron  man-db
10:40:38
#ls /etc/cron.monthly/
0anacron
10:40:51
#ls /etc/cron.hourly/

10:41:00
#ls /etc/cron.daily/
0anacron  aptitude      dpkg        locate     man-db   passwd  standard
apt       bsdmainutils  exim4-base  logrotate  mlocate  samba
10:41:21
#vim /etc/anacrontab
10:41:57
#~
       at [-V] [-q queue] [-f file] [-mkdv] [-t time]
       at -c job [job...]
       atq [-V] [-q queue]
       atrm [-V] job [job...]
       batch
       at -b
DESCRIPTION
       at and batch read commands from standard  input  or  a  specified  file
       which are to be executed at a later time, using /bin/sh.
       at      executes commands at a specified time.
...
SYNOPSIS
       at [-V] [-q queue] [-f file] [-mldv] timespec...
       at [-V] [-q queue] [-f file] [-mkdv] [-t time]
               of  the  output  lines (one for each job) is: Job number, date,
               hour, queue, and username.
       atrm    deletes jobs, identified by their job number.
       batch   executes commands when system  load  levels  permit;  in  other
               words,  when  the  load  average  drops below 1.5, or the value
               specified in the invocation of atd.
       At allows fairly complex time  specifications,  extending  the  POSIX.2
10:42:35
#at 080820121710 ls /etc
syntax error. Last token seen: 080820121710
Garbled time
10:42:57
#at 17:10 ls /etc
syntax error. Last token seen: l
Garbled time
10:43:46
#vim /usr/share/doc/at/timespec
10:44:58
#at -t 17:10 ls /etc
invalid date format: 17:10
10:45:05
#at -t 1710 ls /etc
invalid date format: 1710
10:45:13
#at -t 080820121710 ls /etc
invalid date format: 080820121710
10:45:19
#man at
10:46:14
#at -t 1710 ls /etc
invalid date format: 1710
10:46:34
#at -t 081710 ls /etc
invalid date format: 081710
10:46:40
#at -t 08081710 ls /etc
Cannot give time two times.
10:46:44
#at -t 201208081710 ls /etc
Cannot give time two times.
10:46:53
#at -t 201208081710 'ls /etc'
Cannot give time two times.
10:47:46
#at -t 8081710 'ls /etc'
invalid date format: 8081710
10:47:50
#at -t 17:10 'ls /etc'
invalid date format: 17:10
10:48:18
#echo "hello"|at 06:00
warning: commands will be executed using /bin/sh
job 1 at Fri Aug 10 06:00:00 2012
10:48:48
#atq
1       Fri Aug 10 06:00:00 2012 a root
10:49:06
#echo "hello"|at 17:00
warning: commands will be executed using /bin/sh
job 2 at Thu Aug  9 17:00:00 2012
10:49:33
#atrm 1

10:49:41
#atq
2       Thu Aug  9 17:00:00 2012 a root
10:49:42
#at 19:00
warning: commands will be executed using /bin/sh
at> /sbin/ifconfig -run
at> <EOT>
job 3 at Thu Aug  9 19:00:00 2012
10:51:57
#atq
2       Thu Aug  9 17:00:00 2012 a root
3       Thu Aug  9 19:00:00 2012 a root
10:52:00
#mant
l3script: mant: команда не найдена
10:52:11
#man at
10:52:27
#batch
warning: commands will be executed using /bin/sh
прошло >2 часов
13:05:09
#cd /usr/src/
                    cd /usr/src/
ianutils make libncurses5-devnstall build-essential zlib1g-dev libc6-dev gcc debi
13:07:06
#fg 6
vim     (wd: ~)
13:07:11
#jobs
[7]+  Stopped                 wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.7.tar.bz2
13:07:15
#fg 7
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.7.tar.bz2
43% [===============>                       ] 34 572 135  10,7K/s   в 3m 36s
2012-08-09 14:07:19 (156 KB/s) - Соединение закрыто, позиция 34572135. Повтор.
--2012-08-09 14:07:20--  (попытка: 2)  http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.7.tar.bz2
Устанавливается соединение с www.kernel.org|149.20.4.69|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 206 Partial Content
Длина: 80186282 (76M), 45614147 (44M) осталось [application/x-bzip2]
Saving to: «linux-3.4.7.tar.bz2»
100%[++++++++++++++++======================>] 80 186 282   459K/s   в 1m 51s
2012-08-09 14:09:12 (401 KB/s) - «linux-3.4.7.tar.bz2» saved [80186282/80186282]
13:09:12
#tar xf linux-3.4.7.tar.bz2

13:14:54
#ls
install  linux-3.4.7  linux-3.4.7.tar.bz2  test
13:15:15
#cd linux-3.4.7/

13:15:37
#ls
arch     Documentation  init     lib          README          sound
block    drivers        ipc      MAINTAINERS  REPORTING-BUGS  tools
COPYING  firmware       Kbuild   Makefile     samples         usr
CREDITS  fs             Kconfig  mm           scripts         virt
crypto   include        kernel   net          security
13:15:38
#make help
Cleaning targets:
  clean           - Remove most generated files but keep the config and
                    enough build support to build external modules
  mrproper        - Remove all generated files + config + various backup files
  distclean       - mrproper + remove editor backup and patch files
Configuration targets:
  config          - Update current config utilising a line-oriented program
  nconfig         - Update current config utilising a ncurses menu based program
  menuconfig      - Update current config utilising a menu based program
  xconfig         - Update current config utilising a QT based front-end
...
  make C=1   [targets] Check all c source with $CHECK (sparse by default)
  make C=2   [targets] Force check of all c source with $CHECK
  make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections
  make W=n   [targets] Enable extra gcc checks, n=1,2,3 where
                1: warnings which may be relevant and do not occur too often
                2: warnings which occur quite often but may still be relevant
                3: more obscure warnings, can most likely be ignored
                Multiple levels can be combined with W=12 or W=123
Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
13:18:56
#make help|less
13:21:52
#make menuconfig
         [*] POSIX Message Queues
  | |    [*] BSD Process Accounting                                       | |
  | |                                                                     | |
  | |                                                                     | |
  | |                                                                     | |
         [*] Prompt for development and/or incomplete code/drivers
  | |    ()  Cross-compiler tool prefix                                   | |
         ()  Local version - append to kernel release
  | |    [ ] Automatically append version information to the version strin| |
             Kernel compression mode (Gzip)  --->tion to the version strin
...
+----------------------<Select>    < Exit >    < Help >-------------------+
|                                                                         |
+-------------------------------------------------------------------------+
             General setup  --->
         -*- Enable the block layer  --->
             Power management and ACPI options  --->
             Executable file formats / Emulations  --->
             Device Drivers  --->
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
13:28:56
#make dep
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
*** Warning: make dep is unnecessary now.
13:30:08
#ls /lib/modules/
2.6.39-bpo.2-686-pae
13:32:26
#ls /boot
config-2.6.39-bpo.2-686-pae      System.map-2.6.39-bpo.2-686-pae
grub                             vmlinuz-2.6.39-bpo.2-686-pae
initrd.img-2.6.39-bpo.2-686-pae
13:32:34
#make bzImage -j 2
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_32.h
  HOSTCC  arch/x86/tools/relocs
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_64.h
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_x32.h
  SYSTBL  arch/x86/syscalls/../include/generated/asm/syscalls_32.h
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  HOSTCC  scripts/genksyms/genksyms.o
...
  CC      security/keys/request_key_auth.o
  LD      fs/nls/built-in.o
  CC      fs/notify/fsnotify.o
  CC      security/keys/user_defined.o
  CC      fs/notify/notification.o
  CC      security/keys/proc.o
  CC      security/keys/sysctl.o
  CC      fs/notify/group.o
^Z
[1]+  Stopped                 make bzImage -j 2
13:38:24
#ls
arch/                include/             net/
block/               init/                README
.config              ipc/                 REPORTING-BUGS
.config.old          Kbuild               samples/
COPYING              Kconfig              scripts/
CREDITS              kernel/              security/
crypto/              lib/                 sound/
Documentation/       .mailmap             .tmp_versions/
drivers/             MAINTAINERS          tools/
firmware/            Makefile             usr/
fs/                  .missing-syscalls.d  .version
.gitignore           mm/                  virt/
13:38:24
#ls arch/
alpha/      cris/       ia64/       mips/       s390/       um/
arm/        frv/        Kconfig     mn10300/    score/      unicore32/
avr32/      .gitignore  m32r/       openrisc/   sh/         x86/
blackfin/   h8300/      m68k/       parisc/     sparc/      xtensa/
c6x/        hexagon/    microblaze/ powerpc/    tile/
13:38:24
#ls arch/x86/
boot/            Kbuild           Makefile         platform/
built-in.o       Kconfig          Makefile_32.cpu  power/
.built-in.o.cmd  Kconfig.cpu      Makefile.um      syscalls/
configs/         Kconfig.debug    math-emu/        tools/
crypto/          kernel/          mm/              um/
.gitignore       kvm/             net/             vdso/
ia32/            lguest/          oprofile/        video/
include/         lib/             pci/             xen/
13:38:24
#ls arch/x86/
boot/            Kbuild           Makefile         platform/
built-in.o       Kconfig          Makefile_32.cpu  power/
.built-in.o.cmd  Kconfig.cpu      Makefile.um      syscalls/
configs/         Kconfig.debug    math-emu/        tools/
crypto/          kernel/          mm/              um/
.gitignore       kvm/             net/             vdso/
ia32/            lguest/          oprofile/        video/
include/         lib/             pci/             xen/
13:38:24
#ls arch/ia64/
configs/       install.sh     kvm/           module.lds     sn/
dig/           Kconfig        lib/           oprofile/      uv/
hp/            Kconfig.debug  Makefile       pci/           xen/
include/       kernel/        mm/            scripts/
13:38:24
#ls arch/ia64/
configs/       install.sh     kvm/           module.lds     sn/
dig/           Kconfig        lib/           oprofile/      uv/
hp/            Kconfig.debug  Makefile       pci/           xen/
include/       kernel/        mm/            scripts/
13:38:24
#fg 1
make bzImage -j 2
  LD      security/keys/built-in.o
  GEN     security/selinux/flask.h security/selinux/av_permissions.h
  CC      security/selinux/avc.o
  CC      fs/notify/inode_mark.o
  CC      fs/notify/mark.o
  CC      security/selinux/hooks.o
  CC      fs/notify/vfsmount_mark.o
  CC      fs/notify/dnotify/dnotify.o
  LD      fs/notify/dnotify/built-in.o
...
  ZOFFSET arch/x86/boot/zoffset.h
  OBJCOPY arch/x86/boot/vmlinux.bin
  AS      arch/x86/boot/header.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  BUILD   arch/x86/boot/bzImage
Setup is 15152 bytes (padded to 15360 bytes).
System is 2652 kB
CRC 91f9f95
Kernel: arch/x86/boot/bzImage is ready  (#1)
прошло 11 минут
13:50:18
#make modules -j 2
make[1]: Цель `all' не требует выполнения команд.
make[1]: Цель `relocs' не требует выполнения команд.
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  AS [M]  arch/x86/crypto/aes-i586-asm_32.o
  CC [M]  arch/x86/crypto/aes_glue.o
  AS [M]  arch/x86/crypto/aesni-intel_asm.o
  CC [M]  arch/x86/crypto/aesni-intel_glue.o
  CC [M]  arch/x86/crypto/fpu.o
...
  IHEX    firmware/yam/1200.bin
  IHEX    firmware/yam/9600.bin
  IHEX    firmware/sb16/mulaw_main.csp
  IHEX    firmware/sb16/alaw_main.csp
  IHEX    firmware/sb16/ima_adpcm_init.csp
  IHEX    firmware/sb16/ima_adpcm_playback.csp
  IHEX    firmware/sb16/ima_adpcm_capture.csp
  IHEX2FW firmware/atmsar11.fw
  H16TOFW firmware/matrox/g200_warp.fw
  H16TOFW firmware/matrox/g400_warp.fw

Статистика

Время первой команды журнала10:37:46 2012- 8- 9
Время последней команды журнала13:50:18 2012- 8- 9
Количество командных строк в журнале54
Процент команд с ненулевым кодом завершения, %37.04
Процент синтаксически неверно набранных команд, % 1.85
Суммарное время работы с терминалом *, час 1.00
Количество командных строк в единицу времени, команда/мин 0.90
Частота использования команд
at15|==========================| 26.32%
ls13|======================| 22.81%
make6|==========| 10.53%
fg3|=====| 5.26%
vim3|=====| 5.26%
atq3|=====| 5.26%
man2|===| 3.51%
cd2|===| 3.51%
echo2|===| 3.51%
mant1|=| 1.75%
batch1|=| 1.75%
X11/1|=| 1.75%
atrm1|=| 1.75%
less1|=| 1.75%
jobs1|=| 1.75%
~1|=| 1.75%
tar1|=| 1.75%
____
*) Интервалы неактивности длительностью 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$