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

Содержание

Журнал

Среда (01/16/13)

/dev/pts/0
14:52:32
$ls /usr/local/games/

14:53:23
$echo $BASH
/usr/local/bin/l3script
прошло 26 минут
15:19:51
$echo $BROWSER

15:20:07
$echo $SHELL
/bin/bash
15:20:21
$echo $HOSTTYPE
i386
15:29:14
$uname -a
Linux centos1.net.nt 2.6.32-279.19.1.el6.i686 #1 SMP Wed Dec 19 04:30:58 UTC 2012 i686 i686 i386 GNU/Linux
15:30:01
$touch proba.sh

прошло 39 минут
16:09:42
$vim proba.sh
--- /tmp/l3-saved-4890.18312.23928	2013-01-16 17:09:48.198584364 +0200
+++ proba.sh	2013-01-16 17:11:01.561596608 +0200
@@ -0,0 +1,3 @@
+#!/bin/bash
+echo "$0"
+echo "$1"
16:11:01
$chmod +x
chmod: пропущен операнд после «+x»
Попробуйте `chmod --help' для получения более подробного описания.
16:11:09
$chmod +x proba.sh

16:11:12
$ls
111                                    MAN_SMB_CONF
2012                                   MATRIX.JPG
2013                                   NAMES
2020                                   OGO.JPG
2021                                   PAMYATKA.PDF
BIGFILE                                PRESS_ANY_KEY_TO_CONTINUE.JPG
BIN                                    proba.sh
FREEBSD.JPG                            PROJ
GRANATA.JPG                            soft
LIGHT_ALLOY_4.4.784_RC2_BY_FAFNIR.EXE  TEXT
LPI 1                                  TOUCHLIST
LPI 2
16:11:14
$./proba.sh
./proba.sh
16:11:25
$./proba.sh -par1
./proba.sh
-par1
16:11:37
$./proba.sh
./proba.sh
16:12:04
$cat proba.sh
#!/bin/bash
echo "$0"
echo "$1"
16:12:19
$proba.sh
l3script: proba.sh: команда не найдена
16:12:42
$sh proba.sh
proba.sh
16:16:14
$sh proba.sh -one -t
proba.sh
-one
16:16:30
$man shift
16:18:32
$man bash
16:23:37
$echo "proba" > @2

16:23:45
$echo "proba" > 2

16:23:48
$ls
111      FREEBSD.JPG                            PAMYATKA.PDF
2        GRANATA.JPG                            PRESS_ANY_KEY_TO_CONTINUE.JPG
@2       LIGHT_ALLOY_4.4.784_RC2_BY_FAFNIR.EXE  proba.sh
2012     LPI 1                                  PROJ
2013     LPI 2                                  soft
2020     MAN_SMB_CONF                           TEXT
2021     MATRIX.JPG                             TOUCHLIST
BIGFILE  NAMES
BIN      OGO.JPG
16:23:53
$echo "proba" > /dev/stderr
proba
16:24:19
$echo $thisscript

16:26:19
$[5 -gt 1]
l3script: [5: команда не найдена
16:29:42
$sh [5 -gt 1]
sh: [5: Нет такого файла или каталога
16:29:51
$test 5 -gt 1

16:30:10
$echo $?
0
16:30:31
$[ 5 -gt 1 ]

16:30:38
$echo $?
0
16:30:43
$echo $STRING

16:31:51
$test -z "$STRING"

16:32:34
$test "$P" != print

16:34:09
$echo "Your favorit color?" ; read FAV-COL ; \
> echo " you have entered - $FAV_COL"
Your favorit color?
red
l3script: read: `FAV-COL': неправильный идентификатор
 you have entered -
16:36:14
$test $EUID -ne 0 -a -r /etc/shadow && \
> echo "Warning: file "
16:41:24
$test $EUID -ne 0 -a -r /etc/shadow && echo "Warning: file "

16:42:37
$$echo "Your fav os?"
l3script: Your fav os?: команда не найдена
16:43:36
$echo

16:43:56
$echo ""

16:44:03
$echo ""; read FAV_OS
q
16:46:17
$$echo "Your fav os?"; read FAV_OS; test "$FAV_OS" -eq "BSD"
l3script: Your fav os?: команда не найдена
l3script: test: : integer expression expected
16:51:05
$A=0

16:52:01
$while [ $A -lt 10 ]
> do
> a=$((A+1))
> echo $A
> done
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
^Cl3script: echo: ошибка записи: Прерван системный вызов
16:54:09
$^C^C
^C^C^C
^C
^C^C
16:54:15
$while [ $A -lt 10 ] ; do A=$((A+1)); echo $A; done
1
2
3
4
5
6
7
8
9
10
16:54:31
$for file in /etc/*
> do
> [ -r $file ] || echo $file
> done
/etc/audisp
/etc/audit
/etc/dhcp
/etc/group-
/etc/grub.conf
/etc/gshadow
/etc/gshadow-
/etc/libaudit.conf
/etc/securetty
/etc/shadow
/etc/shadow-
16:55:28
$echo test -w /etc/passwd || echo "her vam"
test -w /etc/passwd
прошло 10 минут
17:06:10
$man mount
17:06:50
$whatis c;ear
c: nothing appropriate
l3script: ear: команда не найдена
17:06:59
$whatis clear
clear: nothing appropriate
17:07:05
$yum install man
Loaded plugins: fastestmirror, presto
You need to be root to perform this command.
17:07:28
$sudo yum install man
l3script: sudo: команда не найдена
17:07:36
$su
Пароль:
17:08:05
#yum install man
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
base                                                     | 3.7 kB     00:00
extras                                                   | 3.5 kB     00:00
updates                                                  | 3.5 kB     00:00
Setting up Install Process
Package man-1.6f-30.el6.i686 already installed and latest version
Nothing to do
17:08:17
#yum search man
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
=============================== N/S Matched: man ===============================
ModemManager.i686 : Mobile broadband modem management service
NetworkManager.i686 : Network connection manager and user applications
NetworkManager-devel.i686 : Libraries and headers for adding NetworkManager
                          : support to applications
...
yum-plugin-downloadonly.noarch : Yum plugin to add downloadonly command option
yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of
                        : downloaded packages
yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary
     ...: commands when certain pkgs are acted on
yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option
yum-plugin-verify.noarch : Yum plugin to add verify command, and options
yum-utils.noarch : Utilities based around the yum package manager
zsh-html.i686 : Zsh shell manual in html format
  Name and summary matches only, use "search all" for everything.
17:08:36
#yum search man|less
17:08:51
#yum install man-pages
man-pages-cs.noarch         man-pages-ko.noarch
man-pages-es-extra.noarch   man-pages.noarch
man-pages-es.noarch         man-pages-overrides.noarch
man-pages-fr.noarch         man-pages-pl.noarch
man-pages-it.noarch         man-pages-ru.noarch
man-pages-ja.noarch
17:08:51
#yum install man-pages.noarch
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package man-pages.noarch 0:3.22-17.el6 will be installed
--> Finished Dependency Resolution
...
man-pages-3.22-17.el6.noarch.rpm                         | 4.8 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : man-pages-3.22-17.el6.noarch                                 1/1
  Verifying  : man-pages-3.22-17.el6.noarch                                 1/1
Installed:
  man-pages.noarch 0:3.22-17.el6
Complete!
17:09:35
#man clear
17:09:42
#whatis clear
clear: nothing appropriate
17:09:47
#whatis exit
exit: nothing appropriate
17:09:53
#whatis passwd
passwd: nothing appropriate
17:09:57
#yum install whatis
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
Setting up Install Process
No package whatis available.
Error: Nothing to do
17:10:07
#yum search whatis
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
============================= N/S Matched: whatis ==============================
man.i686 : A set of documentation tools: man, apropos and whatis
  Name and summary matches only, use "search all" for everything.
17:10:16
#yum install man.i686
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
Setting up Install Process
Package man-1.6f-30.el6.i686 already installed and latest version
Nothing to do
17:10:36
#mandb
bash: mandb: команда не найдена
17:10:41
#yum search mandb
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
Warning: No matches found for: mandb
No Matches found
17:10:51
#yum search all mandb
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.tlk-l.net
 * extras: ftp.tlk-l.net
 * updates: ftp.tlk-l.net
Warning: No matches found for: mandb
No Matches found
17:10:55
#locate man
/etc/man.config
/etc/alternatives/links-man
/etc/init/splash-manager.conf
/etc/selinux/semanage.conf
/etc/selinux/targeted/modules/semanage.read.LOCK
/etc/selinux/targeted/modules/semanage.trans.LOCK
/etc/selinux/targeted/modules/active/modules/amanda.pp
/etc/selinux/targeted/modules/active/modules/mailman.pp
/etc/selinux/targeted/modules/active/modules/modemmanager.pp
/etc/selinux/targeted/modules/active/modules/rgmanager.pp
...
/var/lib/yum/yumdb/t/321b3cc245562af9ce9053e374f6bb2b956796d4-tzdata-2012i-2.el6-noarch/command_line
/var/lib/yum/yumdb/u/10dce986ff078efb1eb1de4289faa67118a35b70-udev-147-2.42.el6-i686/command_line
/var/lib/yum/yumdb/u/94c04f60f2fd0923fc3f30dfc722aa9d786108e0-upstart-0.6.5-12.el6-i686/command_line
/var/lib/yum/yumdb/u/c1ca94f495f00252d5de3d0975e12a8f89cd30e3-util-linux-ng-2.17.2-12.7.el6_3-i686/command_line
/var/lib/yum/yumdb/v/1d23d8232aec91f1c7ecc3b1f035b2adaa4050a3-vim-enhanced-7.2.411-1.8.el6-i686/command_line
/var/lib/yum/yumdb/v/ed94c3e3e868e1ae7cd6c066f4a4591045a1e29b-vim-common-7.2.411-1.8.el6-i686/command_line
/var/lib/yum/yumdb/w/90b963bfdf3015356e50decd55a62dbe70bb3908-w3m-0.5.2-16.el6-i686/command_line
/var/lib/yum/yumdb/w/9a022e03f0b0ff3477dbd2b7464dfe9770336d0f-wget-1.12-1.4.el6-i686/command_line
/var/lib/yum/yumdb/x/60b19d66c35a8349ab420708b4f033a424be047f-xz-4.999.9-0.3.beta.20091007git.el6-i686/command_line
/var/lib/yum/yumdb/x/a39f701d1cad9951ea360681df21e58a1540aaba-xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6-i686/command_line
17:11:13
#locate man}less

17:11:18
#locate man|less
17:12:28
#updatedb

17:12:31
#man clear
17:12:37
#whatis man
man: nothing appropriate
17:12:44
#apropos man
man: nothing appropriate
17:12:52
#apropos clear
clear: nothing appropriate
17:12:59
#info exit
17:14:42
#whatis exit
exit: nothing appropriate
17:14:59
#whatis exit
exit: nothing appropriate
17:20:15
#cat /var/log/
cat: /var/log/: Это каталог
прошла 41 минута
18:01:51
#ls /var/log/
anaconda.ifcfg.log    anaconda.syslog   boot.log  dmesg.old   messages  wtmp
anaconda.log          anaconda.xlog     btmp      dracut.log  secure    yum.log
anaconda.program.log  anaconda.yum.log  cron      lastlog     spooler
anaconda.storage.log  audit             dmesg     maillog     tallylog
18:01:56
#ls -la /var/log/
итого 1060
drwxr-xr-x.  3 root root   4096 Янв 14 15:25 .
drwxr-xr-x. 17 root root   4096 Янв 13 16:29 ..
-rw-------.  1 root root   2366 Янв 13 16:45 anaconda.ifcfg.log
-rw-------.  1 root root  23668 Янв 13 16:45 anaconda.log
-rw-------.  1 root root  77152 Янв 13 16:45 anaconda.program.log
-rw-------.  1 root root 292161 Янв 13 16:45 anaconda.storage.log
-rw-------.  1 root root  45698 Янв 13 16:45 anaconda.syslog
-rw-------.  1 root root  30313 Янв 13 16:45 anaconda.xlog
-rw-------.  1 root root   5121 Янв 13 16:45 anaconda.yum.log
...
-rw-r--r--.  1 root root  24268 Янв 14 00:52 dmesg.old
-rw-r--r--.  1 root root 279217 Янв 13 23:46 dracut.log
-rw-r--r--.  1 root root 146292 Янв 16 15:05 lastlog
-rw-------.  1 root root      0 Янв 13 16:32 maillog
-rw-------.  1 root root 158172 Янв 16 18:09 messages
-rw-------.  1 root root  10583 Янв 16 18:08 secure
-rw-------.  1 root root      0 Янв 13 16:32 spooler
-rw-------.  1 root root      0 Янв 13 16:30 tallylog
-rw-rw-r--.  1 root utmp  36480 Янв 16 15:06 wtmp
-rw-------.  1 root root   5833 Янв 16 18:09 yum.log
18:02:07
#ls -la /var/log/ | grep tmp
-rw-------.  1 root utmp   2304 Янв 15 17:44 btmp
-rw-rw-r--.  1 root utmp  36480 Янв 16 15:06 wtmp
18:02:30
#logname
user
прошло 10 минут
18:13:20
#whoami
root

Четверг (01/17/13)

/dev/pts/0
12:52:58
$vim ~/mymotd
12:53:40
$~
  1
"/etc/motd" [только для чтения] 0L, 0C
12:54:06
$~
  2 You have connected to $HOSTNAME $HOSTTYPE bunning on $OSTYPE
  4 , $USER,
  5   2 You have connected to $HOSTNAME $HOSTTYPE bunning on
  6 $OSTYPE
  7   3
~
  8 ~
~
~
~
~
~
~
~
~
~
~
-- ВСТАВ W10: Предупреждение: Изменение файла
E45: Включена опция 'readonly' (добавьте !, чтобы не обращать внимания)
"/etc/motd"
E37: Изменения не сохранены (добавьте !, чтобы обойти проверку)
13:01:23
$Press ENTER or type command to continue
l3script: sudo: команда не найдена

Файлы

  • proba.sh
  • proba.sh
    >
    #!/bin/bash
    echo "$0"
    echo "$1"
    

    Статистика

    Время первой команды журнала14:52:32 2013- 1-16
    Время последней команды журнала13:01:23 2013- 1-17
    Количество командных строк в журнале90
    Процент команд с ненулевым кодом завершения, %11.11
    Процент синтаксически неверно набранных команд, % 8.89
    Суммарное время работы с терминалом *, час 2.13
    Количество командных строк в единицу времени, команда/мин 0.70
    Частота использования команд
    echo18|================| 16.36%
    yum12|==========| 10.91%
    whatis8|=======| 7.27%
    ls6|=====| 5.45%
    test6|=====| 5.45%
    man5|====| 4.55%
    proba.sh4|===| 3.64%
    locate3|==| 2.73%
    read3|==| 2.73%
    sh3|==| 2.73%
    &2|=| 1.82%
    while2|=| 1.82%
    chmod2|=| 1.82%
    cat2|=| 1.82%
    ~2|=| 1.82%
    \2|=| 1.82%
    vim2|=| 1.82%
    apropos2|=| 1.82%
    less2|=| 1.82%
    $echo2|=| 1.82%
    ear1|| 0.91%
    info1|| 0.91%
    A=01|| 0.91%
    whoami1|| 0.91%
    ^C^C1|| 0.91%
    [1|| 0.91%
    @21|| 0.91%
    updatedb1|| 0.91%
    do1|| 0.91%
    mandb1|| 0.91%
    sudo1|| 0.91%
    touch1|| 0.91%
    logname1|| 0.91%
    [51|| 0.91%
    for1|| 0.91%
    grep1|| 0.91%
    21|| 0.91%
    Press1|| 0.91%
    stderr1|| 0.91%
    done1|| 0.91%
    uname1|| 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$