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

Содержание

Журнал

Среда (09/14/16)

/dev/pts/2
09:45:32
$touch 11.jpeg

09:45:50
$touch 22.tar.gz

09:46:09
$touch 33.tgz

09:46:16
$touch 44.rpm

09:46:25
$ls
11.jpeg  22.tar.gz  33.tgz  44.rpm
09:46:31
$find -E ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
find: unknown predicate `-E'
09:46:42
$find ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'

09:46:54
$find ~ -path -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
find: paths must precede expression: .*(\.tar\.gz|\.tgz|\.rpm)
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
09:52:00
$find ~ -path '.*(\.tar\.gz|\.tgz|\.rpm)'

09:52:21
$find ~ -path ".*(\.tar\.gz|\.tgz|\.rpm)"

09:56:25
$find / -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
find: `/etc/ssl/private': Отказано в доступе
find: `/lost+found': Отказано в доступе
find: `/var/cache/ldconfig': Отказано в доступе
find: `/var/spool/exim4': Отказано в доступе
find: `/var/spool/cron/crontabs': Отказано в доступе
find: `/var/log/exim4': Отказано в доступе
find: `/var/log/iptraf': Отказано в доступе
find: `/run/exim4': Отказано в доступе
find: `/root': Отказано в доступе
find: `/proc/tty/driver': Отказано в доступе
...
find: `/proc/6717/task/6717/ns': Отказано в доступе
find: `/proc/6717/fd': Отказано в доступе
find: `/proc/6717/fdinfo': Отказано в доступе
find: `/proc/6717/ns': Отказано в доступе
find: `/proc/6726/task/6726/fd': Отказано в доступе
find: `/proc/6726/task/6726/fdinfo': Отказано в доступе
find: `/proc/6726/task/6726/ns': Отказано в доступе
find: `/proc/6726/fd': Отказано в доступе
find: `/proc/6726/fdinfo': Отказано в доступе
find: `/proc/6726/ns': Отказано в доступе
09:56:32
$find repo/ ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
find: `repo/': Нет такого файла или каталога
09:56:56
$find ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'

09:57:04
$find ~ -name '.*(\.tar\.gz|\.tgz|\.rpm)'

09:58:17
$find ~ -name '.*(\.tar\.gz|\.tgz|\.rpm)'\*

10:04:17
$find ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'

10:04:44
$find / -writable
find: `/etc/ssl/private': Отказано в доступе
find: `/lost+found': Отказано в доступе
/tmp
/tmp/dirlist
/tmp/etccopy
/tmp/etccopy/console-cyrillic
/tmp/etccopy/sysctl.conf
/tmp/etccopy/screenrc
/tmp/etccopy/logrotate.conf
/tmp/etccopy/hosts.deny
...
/proc/6856/clear_refs
/proc/6856/attr/current
/proc/6856/attr/exec
/proc/6856/attr/fscreate
/proc/6856/attr/keycreate
/proc/6856/attr/sockcreate
/proc/6856/oom_adj
/proc/6856/oom_score_adj
/proc/6856/loginuid
/proc/6856/coredump_filter
10:10:04
$find \ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
find: ` -regex': Нет такого файла или каталога
find: `.*(\\.tar\\.gz|\\.tgz|\\.rpm)': Нет такого файла или каталога
10:10:16
$find ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'

10:10:37
$find ~ -name /.jpeg\;
find: warning: Unix filenames usually don't contain slashes (though pathnames do).  That means that '-name `/.jpeg;'' will probably evaluate to false all the time on this system.  You might find the '-wholename' test more useful, or perhaps '-samefile'.  Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/.jpeg;''.
10:11:48
$find ~ -name /.jpeg\*
find: warning: Unix filenames usually don't contain slashes (though pathnames do).  That means that '-name `/.jpeg*'' will probably evaluate to false all the time on this system.  You might find the '-wholename' test more useful, or perhaps '-samefile'.  Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/.jpeg*''.
10:12:04
$find ~ -name .jpeg\*

10:12:13
$find ~ -name 33\*
/home/user/soft/33.tgz
10:13:05
$find ~ -name *.jpeg\*
/home/user/soft/11.jpeg
/home/user/1.jpeg
10:13:28
$find ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'\*

10:17:21
$find ~ -regextype posix-egrep -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
/home/user/2.tar.gz
/home/user/4.rpm
/home/user/3.tgz
/home/user/soft/33.tgz
/home/user/soft/44.rpm
/home/user/soft/22.tar.gz
прошло 47 минут
/dev/pts/6
11:05:01
$cp no_file_with_this_name /tmp
cp: не удалось выполнить stat для «no_file_with_this_name»: Нет такого файла или каталога
прошло 102 минуты
12:47:29
$echo $?
1
12:48:28
$test 5 -gt 1

12:48:50
$echo $?
0
12:48:52
$test 5 -lt 1

12:49:06
$echo $?
1
12:49:08
$test -z "$STRING"

12:50:14
$echo $?
0
12:50:16
$test -z $STRING

12:50:28
$echo $?
0
12:50:30
$test "$P" != print

12:54:06
$echo $?
0
12:54:08
$test -e /etc/motd

12:54:34
$echo $?
0
12:54:36
$test -d /etc/local/bin

12:55:37
$test -d /usr/local/bin

12:56:01
$test -r /etc/shadow

12:56:21
$echo $?
1
12:56:22
$test -k /tmp

12:57:08
$echo $?
0
12:57:09
$test -w /etc/passwd

12:57:48
$echo $?
1
12:57:50
$test -r /etc/passwd

12:58:00
$echo $?
0
12:58:02
$test "$x">"$y"
l3script: : Нет такого файла или каталога
13:00:57
$x=5

13:01:28
$y=10

13:01:34
$test "$x">"$y"

13:01:38
$echo $?
0
13:01:43
$x=10

13:02:43
$y=5

13:02:48
$test "$x">"$y"

13:02:52
$echo $?
0
13:02:55
$x=5

13:04:14
$y=10

13:04:18
$test "$x" -gt "$y"

13:04:35
$echo $?
1
13:04:38
$x=10

13:04:51
$y=5

13:04:54
$test "$x" -gt "$y"

13:04:57
$echo $?
0
13:05:00
$echo "Ваш любимый цвет?" ; read FAV_COL ; \
> echo Ваш любимый цвет - $FAV_COL
Ваш любимый цвет?
Ваш любимый цвет -
13:07:43
$test $EUID -ne -a -r /etc/shadow && \
> echo `ПредупреждениеЖ Файл /etc/shadow доступен для чтения!`
l3script: !`: event not found
> test $EUID -ne -a -r /etc/shadow && \
> `ПредупреждениеЖ Файл /etc/shadow доступен для чтения!`
l3script: !`: event not found
> test $EUID -ne -a -r /etc/shadow && test $EUID -ne -a -r /etc/shadow && \^C
13:11:19
$test $EUID -ne -a -r /etc/shadow && \
> echo 'ÐПредупреждение: Файл /etc/shadow доступен для чтения!Ñ'
l3script: test: -a: integer expression expected
13:12:38
$echo "Ваша любимая ОС?"; read FAV-OC ; [ "$FAV_OS" == "BSD" ] && \
> echo 'Хороший выбор!'
Ваша любимая ОС?
l3script: read: `FAV-OC': неправильный идентификатор
13:20:19
$-
Ваша любимая ОС?
l3script: read: `FAV-OS': неправильный идентификатор
13:20:25
$_

13:20:25
$-

13:20:25
$C

13:20:25
$test $EUID -ne -a -r /etc/shadow && \
                  echo $?
1
13:20:32
$A=0

13:23:26
$while [ $A -lt 10 ]
> do
> A=$((A+1))
> echo $A
> done
1
2
3
4
5
6
7
8
9
10
прошло 16 минут
13:40:12
$for file in /etc/*
> do
> [ -r Sfile ] || echo $file
> done
/etc/acpi
/etc/adduser.conf
/etc/adjtime
/etc/aliases
/etc/alternatives
/etc/apt
/etc/bash.bashrc
...
/etc/trafshow
/etc/ucf.conf
/etc/udev
/etc/ufw
/etc/vim
/etc/w3m
/etc/wgetrc
/etc/X11
/etc/xml
/etc/zsh
13:41:25
$echo 'О какой прогÑкоманде вы хотиели полубы ить ' информацÐию?' ; \
> select command in man touch mount make exit clear
> do
> whatis $command
> break
> done
О какой команде вы хотиели бы получить информацию?
1) man
2) touch
3) mount
4) make
5) exit
6) clear
#? 4
make (1)             - GNU make utility to maintain groups of programs
13:45:37
$func () {
>   if [ -z "$1" ]
>   then
>   echo "No parametrs"
>
>   return 0
>   else
>   echo "Param #1 is $1."
> fi
> if [ "$2" ]
> then
> echo "Parameter #2 is $2."
> fi
> }
13:50:45
$func
No parametrs
13:50:52
$func first
Param #1 is first.
13:51:05
$func first second
Param #1 is first.
Parameter #2 is second.
13:51:21
$~/sh/rn
Использование: rn old-pattern new-pattern
13:52:43
$cd ~/sh/rn
l3script: cd: /home/user/sh/rn: Это не каталог
13:53:08
$cd ~/sh/

13:53:17
$ls
C.C  file.C  file.Cs  rn
13:53:20
$vi rn
13:56:38
$~
l3script: test: -perm: ожидается использование унарного оператора
13:57:21
$test -perm /rn
l3script: test: -perm: ожидается использование унарного оператора
14:00:13
$test -perm ~/rn
l3script: test: -perm: ожидается использование унарного оператора
14:00:33
$test -x /rn

14:00:56
$echo $?
1
14:01:13
$ls
C.C  file.C  file.Cs  rn
14:06:58
$ls -l
итого 4
-rw-r--r-- 1 user user    0 Окт  9  2014 C.C
-rw-r--r-- 1 user user    0 Окт  9  2014 file.C
-rw-r--r-- 1 user user    0 Окт  9  2014 file.Cs
-rwxr-xr-x 1 user user 1226 Окт  9  2014 rn
14:07:03
$touch a.jpeg b.jpeg c.jpeg

14:08:04
$~/sh/rn .jpeg .jpg
Переименовано 3 файла
14:09:30
$ls -l
итого 4
-rw-r--r-- 1 user user    0 Сен 14 15:08 a.jpg
-rw-r--r-- 1 user user    0 Сен 14 15:08 b.jpg
-rw-r--r-- 1 user user    0 Окт  9  2014 C.C
-rw-r--r-- 1 user user    0 Сен 14 15:08 c.jpg
-rw-r--r-- 1 user user    0 Окт  9  2014 file.C
-rw-r--r-- 1 user user    0 Окт  9  2014 file.Cs
-rwxr-xr-x 1 user user 1226 Окт  9  2014 rn
14:09:42
$vi rn
прошло 92 минуты
15:42:19
$~
uid=1000(user) gid=1000(user) группы=1000(user),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev)

Статистика

Время первой команды журнала09:45:32 2016- 9-14
Время последней команды журнала15:42:19 2016- 9-14
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %23.76
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 1.90
Количество командных строк в единицу времени, команда/мин 0.89
Частота использования команд
test23|===============| 15.65%
find21|==============| 14.29%
echo19|============| 12.93%
\.tgz15|==========| 10.20%
\.rpm)'12|========| 8.16%
\6|====| 4.08%
touch5|===| 3.40%
ls5|===| 3.40%
func4|==| 2.72%
&4|==| 2.72%
"$y"3|==| 2.04%
\.rpm)'\*2|=| 1.36%
x=52|=| 1.36%
y=52|=| 1.36%
rn2|=| 1.36%
x=102|=| 1.36%
y=102|=| 1.36%
cd2|=| 1.36%
read2|=| 1.36%
vi2|=| 1.36%
-2|=| 1.36%
~2|=| 1.36%
while1|| 0.68%
_1|| 0.68%
cp1|| 0.68%
for1|| 0.68%
A=01|| 0.68%
[1|| 0.68%
C1|| 0.68%
\.rpm)"1|| 0.68%
____
*) Интервалы неактивности длительностью 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$