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

Содержание

Журнал

Пятница (06/09/17)

/dev/pts/3
11:32:13
$who >> date.txt

11:32:23
$chmod u+r date.txt

11:32:33
$cat date.txt
Птн Июн  9 12:15:20 EEST 2017
user     pts/3        2017-06-09 09:42 (192.168.16.154)
root     pts/1        2017-06-09 09:42 (192.168.16.154)
ivan     pts/6        2017-06-09 09:42 (192.168.16.154)
petr     pts/7        2017-06-09 09:44 (192.168.16.154)
11:32:36
$chmod u-r date.txt

11:33:10
$chmod u+r-w date.txt

11:33:44
$cat date.txt
Птн Июн  9 12:15:20 EEST 2017
user     pts/3        2017-06-09 09:42 (192.168.16.154)
root     pts/1        2017-06-09 09:42 (192.168.16.154)
ivan     pts/6        2017-06-09 09:42 (192.168.16.154)
petr     pts/7        2017-06-09 09:44 (192.168.16.154)
11:33:48
$who >> date.txt
l3script: date.txt: Отказано в доступе
11:34:02
$chmod u+r+w date.txt

11:36:23
$which who
/usr/bin/who
11:37:04
$cp `which who` .

11:37:43
$ls -l who
-rwxr-xr-x 1 user user 55888 Июн  9 12:37 who
11:37:51
$chmod u-x who

11:38:12
$ls -l who
-rw-r-xr-x 1 user user 55888 Июн  9 12:37 who
11:38:20
$./who
l3script: ./who: Отказано в доступе
11:39:26
$chmod u+x who

11:39:47
$./who
user     pts/3        2017-06-09 09:42 (192.168.16.154)
root     pts/1        2017-06-09 09:42 (192.168.16.154)
ivan     pts/6        2017-06-09 09:42 (192.168.16.154)
petr     pts/7        2017-06-09 09:44 (192.168.16.154)
11:39:49
$echo "echo privet" > privet.sh

11:41:28
$bash privet.sh
privet
11:42:15
$chmod u-r+x privet.sh

11:43:09
$./privet.sh
l3script: ./privet.sh: Отказано в доступе
11:43:19
$tree -p
.
├── [-rw-r--r--]  a.jpeg
├── [drwxr-xr-x]  backup
│   └── [drwxr-xr-x]  x-backup
│       ├── [-rwxr-xr-x]  x
│       ├── [-rwxr-xr-x]  y
│       └── [-rwxr-xr-x]  z
├── [-rwxr-xr-x]  bigfile
├── [drwxr-xr-x]  bin
│   ├── [-rwxr-xr-x]  bigwork
...
│   ├── [-rwxr-xr-x]  comment-me.txt
│   ├── [-rwxr-xr-x]  core
│   ├── [-rwxr-xr-x]  hello-vi.txt
│   ├── [-rw-r--r--]  hellow
│   ├── [-rwxr-xr-x]  unixoid.err.txt
│   └── [-rwxr-xr-x]  unixoid.orig.txt
├── [-rwxr-xr-x]  touchlist
├── [-rw-r--r--]  vopr.sh
└── [-rwxr-xr-x]  who
17 directories, 117 files
11:47:26
$ls -l /opt/project
итого 0
-rw-r--r-- 1 ivan ivan       0 Июн  9 14:49 IVAN
-rw-r--r-- 1 ivan developers 0 Июн  9 14:51 IVAN2
прошло >2 часов
13:56:52
$rm IVAN
rm: невозможно удалить «IVAN»: Нет такого файла или каталога
13:57:56
$rm IVAN2
rm: невозможно удалить «IVAN2»: Нет такого файла или каталога
13:58:15
$getfacl /opt/project
getfacl: Removing leading '/' from absolute path names
# file: opt/project
# owner: root
# group: developers
# flags: -s-
user::rwx
user:user:r-x
group::rwx
mask::rwx
other::---
14:00:15
$ls -l
итого 3024
-rw-r--r-- 1 user user       0 Июн  8 15:40 a.jpeg
drwxr-xr-x 3 user user    4096 Июн  6 15:02 backup
-rwxr-xr-x 1 user user    7994 Окт  9  2014 bigfile
drwxr-xr-x 2 user user    4096 Июн  6 14:51 bin
-rw-r--r-- 1 user user       0 Июн  8 15:40 b.jpeg
-rw-r--r-- 1 user user       0 Июн  8 15:40 c.jpeg
drwxr-xr-x 2 user user    4096 Июн  9 12:27 d1
-rw-r--r-- 1 user user     260 Июн  9 12:32 date.txt
-rw-r--r-- 1 user user       0 Окт  1  1980 file
...
--wxr--r-- 1 user user      12 Июн  9 12:40 privet.sh
-rwxr--r-- 1 user user     290 Июн  8 15:17 prog.sh
drwxr-xr-x 3 user user    4096 Июн  6 15:02 proj
drwxr-xr-x 2 user user    4096 Июн  8 16:54 sh
drwxr-xr-x 2 user user    4096 Июн  8 10:22 soft
drwxr-xr-x 2 user user    4096 Июн  6 14:36 source
drwxr-xr-x 2 user user    4096 Окт  9  2014 text
-rwxr-xr-x 1 user user      75 Окт  9  2014 touchlist
-rw-r--r-- 1 user user     169 Июн  8 15:01 vopr.sh
-rwxr-xr-x 1 user user   55888 Июн  9 12:37 who
14:02:41
$cd nsmes
l3script: cd: nsmes: Нет такого файла или каталога
прошло 13 минут
14:16:21
$ls
a.jpeg        granata.jpeg                           privet.sh
backup        Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  prog.sh
bigfile       lpi 1                                  proj
bin           lpi 2                                  sh
b.jpeg        man_smb_conf                           soft
c.jpeg        matrix.jpeg                            source
d1            names                                  text
date.txt      ogo.jpeg                               touchlist
file          pamyatka.pdf                           vopr.sh
freebsd.jpeg  pics                                   who
func.sh       press_any_key_to_continue.jpeg
14:16:24
$ls -l
итого 3024
-rw-r--r-- 1 user user       0 Июн  8 15:40 a.jpeg
drwxr-xr-x 3 user user    4096 Июн  6 15:02 backup
-rwxr-xr-x 1 user user    7994 Окт  9  2014 bigfile
drwxr-xr-x 2 user user    4096 Июн  6 14:51 bin
-rw-r--r-- 1 user user       0 Июн  8 15:40 b.jpeg
-rw-r--r-- 1 user user       0 Июн  8 15:40 c.jpeg
drwxr-xr-x 2 user user    4096 Июн  9 12:27 d1
-rw-r--r-- 1 user user     260 Июн  9 12:32 date.txt
-rw-r--r-- 1 user user       0 Окт  1  1980 file
...
--wxr--r-- 1 user user      12 Июн  9 12:40 privet.sh
-rwxr--r-- 1 user user     290 Июн  8 15:17 prog.sh
drwxr-xr-x 3 user user    4096 Июн  6 15:02 proj
drwxr-xr-x 2 user user    4096 Июн  8 16:54 sh
drwxr-xr-x 2 user user    4096 Июн  8 10:22 soft
drwxr-xr-x 2 user user    4096 Июн  6 14:36 source
drwxr-xr-x 2 user user    4096 Окт  9  2014 text
-rwxr-xr-x 1 user user      75 Окт  9  2014 touchlist
-rw-r--r-- 1 user user     169 Июн  8 15:01 vopr.sh
-rwxr-xr-x 1 user user   55888 Июн  9 12:37 who
14:16:34
$cd names

14:16:48
$ls -l
итого 156
-rwxr-xr-x 1 user user     1 Окт  9  2014 _1_2_3
-rwxr-xr-x 1 user user     0 Окт  9  2014 1CDESKTOP
-rw-r--r-- 1 user user     0 Июн  7 12:44 *?35
-rw-r--r-- 1 user user     0 Июн  7 13:29 ABA
-rw-r--r-- 1 user user     0 Июн  7 13:29 ABB
-rw-r--r-- 1 user user     0 Июн  7 13:29 ABC
-rw-r--r-- 1 user user     0 Июн  7 13:29 ABD
drwxr-xr-x 3 user user  4096 Окт  9  2014 ACPI
-rw-r--r-- 1 user user     0 Июн  8 16:02 a.jpg
...
-rwxr-xr-x 1 user user   277 Окт  9  2014 MODULES
-rw-r--r-- 1 user user   986 Июн  7 13:41 NEWFILE
-rw-r--r-- 1 user user     0 Июн  7 12:53 ONE_SPACE
-rw-r--r-- 1 user user     0 Июн  7 12:52 O_'REILLY
-rwxr-xr-x 1 user user     1 Окт  9  2014 PASSWD
-rwxr-xr-x 1 user user  7123 Окт  9  2014 REGEXP.H
-rw-r--r-- 1 user user    36 Июн  7 13:48 SORTED
-rwxr-xr-x 1 user user     1 Окт  9  2014 S_TOL_
-rwxr-xr-x 1 user user 40290 Окт  9  2014 TERM.H
-rw-r--r-- 1 user user    36 Июн  7 13:48 UNSORTED

Суббота (06/10/17)

/dev/pts/6
08:04:26
$ps
  PID TTY          TIME CMD
15930 pts/7    00:00:00 l3script
15993 pts/7    00:00:00 ps
08:07:06
$> f1

прошло 60 минут
09:07:39
$vi f1
--- /tmp/l3-saved-15930.17759.31977	2017-06-10 10:07:42.556460743 +0300
+++ f1	2017-06-10 10:26:39.144463849 +0300
@@ -0,0 +1 @@
+erauaeu
прошло 19 минут
09:26:39
$~/bin/bigwork
409600+0 записей считано
409600+0 записей написано
 скопировано 1677721600 байт (1,7 GB), 78,1386 c, 21,5 MB/c
09:28:21
$~/bin/bigwork
409600+0 записей считано
409600+0 записей написано
 скопировано 1677721600 байт (1,7 GB), 82,1808 c, 20,4 MB/c
09:30:49
$~/bin/signal_trap

09:34:59
$ps aux | grep signal_trap
user     16505  0.0  0.1   9968   876 pts/7    S+   10:35   0:00 grep signal_trap
09:35:59
$ps aux | grep bash
root     15712  0.0  0.5  22092  2776 pts/3    Ss   09:03   0:00 -bash
user     15813  0.0  0.5  22108  2800 pts/6    Ss   09:04   0:00 -bash
user     16522  0.0  0.1   9968   872 pts/7    S+   10:36   0:00 grep bash
09:36:21
$ps aux | grep signal_trap
user     16531  0.0  0.1   9968   876 pts/7    S+   10:37   0:00 grep signal_trap
09:37:56
$ps aux | grep signal_trap
user     16556  0.0  0.1   9968   872 pts/7    S+   10:38   0:00 grep signal_trap
09:38:26
$ps aux | grep signal_trap
user     16565  0.0  0.1   9968   876 pts/7    S+   10:38   0:00 grep signal_trap
09:38:50
$ps aux | grep signal_trap
user     16574  0.0  0.1   9968   876 pts/7    S+   10:39   0:00 grep signal_trap
09:39:42
$ps aux | grep signal_trap
user     16585  0.0  0.1   9968   876 pts/7    S+   10:41   0:00 grep signal_trap
09:43:15
$~/bi
bigfile  bin/
09:43:15
$cat ~/bin/signal_trap
#!/bin/bash
sleep 380000 &
09:45:00
$ls /bin
bash           echo       lessecho    nano            rzsh        uncompress
busybox        egrep      lessfile    nc              sed         unicode_start
cat            false      lesskey     nc.traditional  setfacl     vdir
chacl          fgconsole  lesspipe    netcat          setfont     which
chgrp          fgrep      ln          netstat         setupcon    ypdomainname
chmod          findmnt    loadkeys    nisdomainname   sh          zcat
chown          fuser      login       open            sh.distrib  zcmp
chvt           getfacl    ls          openvt          sleep       zdiff
cp             grep       lsblk       pidof           ss          zegrep
cpio           gunzip     lsmod       ping            stty        zfgrep
dash           gzexe      mkdir       ping6           su          zforce
date           gzip       mknod       ps              sync        zgrep
dd             hostname   mktemp      pwd             tailf       zless
df             ip         more        rbash           tar         zmore
dir            kbd_mode   mount       readlink        tempfile    znew
dmesg          kill       mountpoint  rm              touch       zsh
dnsdomainname  kmod       mt          rmdir           true        zsh4
domainname     ksh        mt-gnu      rnano           umount
dumpkeys       less       mv          run-parts       uname
09:47:16
$ls ~/bin
bigwork  signal_trap  x  y  z

Понедельник (06/26/17)

/dev/pts/0
14:55:26
$test

Файлы

  • date.txt
  • ~/bin/signal_trap
  • date.txt
    >
    Птн Июн  9 12:15:20 EEST 2017
    user     pts/3        2017-06-09 09:42 (192.168.16.154)
    root     pts/1        2017-06-09 09:42 (192.168.16.154)
    ivan     pts/6        2017-06-09 09:42 (192.168.16.154)
    petr     pts/7        2017-06-09 09:44 (192.168.16.154)
    
    ~/bin/signal_trap
    >
    #!/bin/bash
    sleep 380000 &
    

    Статистика

    Время первой команды журнала11:32:13 2017- 6- 9
    Время последней команды журнала14:55:26 2017- 6-26
    Количество командных строк в журнале49
    Процент команд с ненулевым кодом завершения, %14.29
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.29
    Количество командных строк в единицу времени, команда/мин 0.63
    Частота использования команд
    ls9|==============| 14.52%
    ps8|============| 12.90%
    chmod7|===========| 11.29%
    grep7|===========| 11.29%
    who4|======| 6.45%
    >3|====| 4.84%
    cat3|====| 4.84%
    bigwork2|===| 3.23%
    rm2|===| 3.23%
    cd2|===| 3.23%
    date.txt2|===| 3.23%
    privet.sh2|===| 3.23%
    cp1|=| 1.61%
    bi1|=| 1.61%
    echo1|=| 1.61%
    vi1|=| 1.61%
    f11|=| 1.61%
    bash1|=| 1.61%
    signal_trap1|=| 1.61%
    getfacl1|=| 1.61%
    which1|=| 1.61%
    tree1|=| 1.61%
    test1|=| 1.61%
    ____
    *) Интервалы неактивности длительностью 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$