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

Содержание

Журнал

Понедельник (01/15/07)

/dev/pts/0
14:48:30
$sh new_program
Полный путь к программе кот нужно выполнить :
/etc
new_program: line 4: read: `;': not a valid identifier
new_program: line 10: unexpected EOF while looking for matching `"'
new_program: line 18: syntax error: unexpected end of file
/dev/pts/2
14:48:45
$vim new_program
/dev/pts/0
14:48:45
$vim new_program
/dev/pts/2
14:49:13
$sh new_program
Полный путь к программе кот нужно выполнить :
/e      /df
new_program: line 4: read: `;': not a valid identifier
new_program: line 10: unexpected EOF while looking for matching `"'
new_program: line 18: syntax error: unexpected end of file
/dev/pts/0
14:49:13
$sh new_program
Полный путь к программе кот нужно выполнить :
/e      /df
new_program: line 4: read: `;': not a valid identifier
new_program: line 10: unexpected EOF while looking for matching `"'
new_program: line 18: syntax error: unexpected end of file
/dev/pts/2
14:49:25
$vim new_program
4c4
< read PROGRAM \;
---
> read PROGRAM 
12c12
<    echo This file is not executable
---
>    echo 'This file is not executable'
14c14
<    echo No such file
---
>    echo 'No such file'
/dev/pts/0
14:49:25
$vim new_program
/dev/pts/2
14:52:32
$vim new_program
/dev/pts/0
14:52:32
$vim new_program
/dev/pts/2
14:52:40
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/ls
new_program: line 10: unexpected EOF while looking for matching `"'
new_program: line 18: syntax error: unexpected end of file
/dev/pts/0
14:52:40
$sh new_program
then
  "$PROGRAM"
else
  echo -n "Can't run $PROGRAM"
~
~
~
~
~
~
...
~
~
~
~
~
:
 Полный путь к программе кот нужно выполнить :
/bin/ls
new_program: line 10: unexpected EOF while looking for matching `"'
new_program: line 18: syntax error: unexpected end of file
/dev/pts/2
14:52:51
$vim new_program
10c10
<   if [ -e $PROGRAM" ]
---
>   if [ -e "$PROGRAM" ]
/dev/pts/0
14:52:51
$vim new_program
/dev/pts/2
14:53:16
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/ls
BACKUP  BODY     DESKTOP     FILE   NAMES     new_program             PROJ      soft           TEST       UNSORTED
BASE    C        ERRLOG      files  NEWFILE   NEW.TXT                 PROJECTX  SORTED         TEXT       VERY_LONG_FILE_NAME
BIN     Desktop  ERROR.FILE  FILES  new_help  no_file_with_this_name  SH        SORTED_PASSWD  TOUCHLIST
/dev/pts/0
14:53:16
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/ls
BACKUP  BODY     DESKTOP     FILE   NAMES     new_program             PROJ      soft           TEST       UNSORTED
BASE    C        ERRLOG      files  NEWFILE   NEW.TXT                 PROJECTX  SORTED         TEXT       VERY_LONG_FILE_NAME
BIN     Desktop  ERROR.FILE  FILES  new_help  no_file_with_this_name  SH        SORTED_PASSWD  TOUCHLIST
/dev/pts/2
14:53:23
$vim new_program
/dev/pts/0
14:53:23
$vim new_program
/dev/pts/2
14:53:47
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/new_help
Can't run /bin/new_helpNo such file
/dev/pts/0
14:53:47
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/new_help
Can't run /bin/new_helpNo such file
/dev/pts/2
14:54:07
$vim new_program
12c12
<    echo 'This file is not executable'
---
>    echo ' This file is not executable'
14c14
<    echo 'No such file'
---
>    echo ' No such file'
/dev/pts/0
14:54:07
$vim new_program
/dev/pts/2
14:54:33
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/new_help
Can't run /bin/new_help No such file
/dev/pts/0
14:54:33
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/new_help
Can't run /bin/new_help No such file
/dev/pts/2
14:54:52
$ls
BACKUP  BODY     DESKTOP     FILE   NAMES     new_program             PROJ      soft           TEST       UNSORTED
BASE    C        ERRLOG      files  NEWFILE   NEW.TXT                 PROJECTX  SORTED         TEXT       VERY_LONG_FILE_NAME
BIN     Desktop  ERROR.FILE  FILES  new_help  no_file_with_this_name  SH        SORTED_PASSWD  TOUCHLIST
/dev/pts/0
14:54:52
$ls
BACKUP  BODY     DESKTOP     FILE   NAMES     new_program             PROJ      soft           TEST       UNSORTED
BASE    C        ERRLOG      files  NEWFILE   NEW.TXT                 PROJECTX  SORTED         TEXT       VERY_LONG_FILE_NAME
BIN     Desktop  ERROR.FILE  FILES  new_help  no_file_with_this_name  SH        SORTED_PASSWD  TOUCHLIST
/dev/pts/2
14:55:03
$pwd
/home/user
/dev/pts/0
14:55:03
$pwd
Полный путь к программе кот нужно выполнить :
/home
     /home/user
/dev/pts/2
14:55:08
$sh new_program
Полный путь к программе кот нужно выполнить :
/home/user/new_help
При помощи какой команды можно получить спр инф о проге?
info
Вы правы Так оно и есть
/dev/pts/0
14:55:08
$sh new_program
Полный путь к программе кот нужно выполнить :
/home/user/new_help
При помощи какой команды можно получить спр инф о проге?
info
Вы правы Так оно и есть
/dev/pts/2
14:55:33
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/help
Can't run /bin/help No such file
/dev/pts/0
14:55:33
$sh new_program
Полный путь к программе кот нужно выполнить :
/bin/help
Can't run /bin/help No such file
/dev/pts/2
14:55:50
$sh new_program
Полный путь к программе кот нужно выполнить :
/home/user/no_file_with_this_name
Can't run /home/user/no_file_with_this_name This file is not executable
/dev/pts/0
14:55:50
$sh new_program
Полный путь к программе кот нужно выполнить :
/home/user/no_file_with_this_name
Can't run /home/user/no_file_with_this_name This file is not executable
/dev/pts/2
14:57:12
$vim new_function
/dev/pts/0
14:57:12
$vim new_function
/dev/pts/2
15:02:39
$sh new_function
new_function: line 10: syntax error near unexpected token `fi'
new_function: line 10: `    fi'
/dev/pts/0
15:02:39
$sh new_function
          echo "No parameters passed to function."
    if [ -return 0]
       else
          echo "Param #1 is $1."
    fi
       then
    if [ "echo "Parameter #2 is $2."
    fi
    }
~
...
~
~
~
~
~
~
~
:
 new_function: line 10: syntax error near unexpected token `fi'
new_function: line 10: `    fi'
/dev/pts/2
15:02:53
$vim new_function
4c4
<     if [ -z ""$1" ]
---
>     if [ -z "$1" ]
/dev/pts/0
15:02:53
$vim new_function
/dev/pts/2
15:03:47
$sh new_function

/dev/pts/0
15:03:47
$sh new_function

/dev/pts/2
15:03:48
$func
bash: func: command not found
/dev/pts/0
15:03:48
$func
bash: func: command not found
/dev/pts/2
15:04:08
$func first
bash: func: command not found
/dev/pts/0
15:04:08
$func first
bash: func: command not found
/dev/pts/2
15:04:29
$sh new_function first

/dev/pts/0
15:04:29
$sh new_function first

/dev/pts/2
15:04:39
$sh new_function

/dev/pts/0
15:04:39
$sh new_function
#!/bin/bash
func ()then
          echo "No parameters passed to function."
    if [ -return 0
       else
          echo "Param #1 is $1."
    fi
       then
    if [ "echo "Parameter #2 is $2."
    fi
...
~
~
~
~
~
~
~
~
~
"new_function" 17L, 249C+q436f+q6b75+q6b64+q6b72+q6b6c+q2332+q2334+q2569+q2a37+q6b31                        1,1          Весь
/dev/pts/2
15:04:44
$vim new_function
9c9
<           echo "Param #1 is $1."
---
>           echo "Parameter #1 is $1."
15d14
< 
/dev/pts/0
15:04:44
$vim new_function
/dev/pts/2
15:05:56
$sh new_function

/dev/pts/0
15:05:56
$sh new_function

/dev/pts/2
15:05:58
$vim new_function
11c11
<     if [ "$2" ]
---
>     if [ -z "$2" ]
/dev/pts/0
15:05:58
$vim new_function
/dev/pts/2
15:06:17
$sh new_function

/dev/pts/0
15:06:17
$sh new_function

/dev/pts/2
15:06:19
$vim new_function
11c11
<     if [ -z "$2" ]
---
>     if [ "$2" ]
/dev/pts/0
15:06:19
$vim new_function
/dev/pts/2
15:06:38
$vim new_function
/dev/pts/0
15:06:38
$vim new_function
/dev/pts/4
15:06:42
$screen -x
15:06:55
$screen -x
15:06:56
$screen -x
/dev/pts/6
15:07:10
$cd

15:07:11
$ls
BACKUP  Desktop     files         new_help                PROJECTX       TEST
BASE    DESKTOP     FILES         new_program             SH             TEXT
BIN     ERRLOG      NAMES         NEW.TXT                 soft           TOUCHLIST
BODY    ERROR.FILE  NEWFILE       no_file_with_this_name  SORTED         UNSORTED
C       FILE        new_function  PROJ                    SORTED_PASSWD  VERY_LONG_FILE_NAME
15:07:15
$vim new_function
15:09:39
$func
bash: func: command not found
15:09:43
$sh func
sh: func: No such file or directory
15:09:47
$vim new_function
3c3
< func () {
---
> function () {
15:10:00
$sh func
sh: func: No such file or directory
15:10:05
$vim new_function
3c3
< function () {
---
> func () {
15:10:15
$sh new_function

15:10:19
$func
bash: func: command not found
15:10:22
$vim new_function
3c3
< func () {
---
> function () {
15:10:35
$sh new_function
new_function: line 3: syntax error near unexpected token `('
new_function: line 3: `function () {'
15:10:37
$vim new_function
16d15
< 
15:11:06
$sh new_function
new_function: line 3: syntax error near unexpected token `('
new_function: line 3: `function () {'
15:11:07
$vim new_function
3c3
< function () {
---
> func () {
15:11:21
$sh new_function

15:11:23
$func
bash: func: command not found
15:11:25
$func 1 32
bash: func: command not found
15:11:28
$man bash
15:12:30
$vim new_function
2d1
< 
15:13:09
$func () {
> if [ -z "$1"  ]
> then
> echo " No patrameters"
> return 0
> else
> echo "Param #1 is $1."
> fi
> if [ $2  ]
> then
> echo " Parameter #2 is $2"
> fi
> }
15:15:07
$func
 No patrameters
15:15:11
$vim new_function
15:15:11
$func

15:15:11
$func 1
Param #1 is 1.
15:15:15
$func 1 2
Param #1 is 1.
 Parameter #2 is 2
15:15:29
$vim new_function
15:15:36
$echo "func () { if [ -z "$1" ]; then echo " No patrameters"; return 0; else echo "
aram #1 is $1."; fi; if [ $2  ]; then echo " Parameter #2 is $2"; fi; }" >> new_function
func () { if [ -z   ]; then echo  No patrameters; return 0; else echo Param
15:15:53
$vim new_function
15:16:02
$vim new_function
15:16:02
$vim new_function
2,14c2,24
< func () {
<     if [ -z "$1" ]
<        then
<           echo "No parameters passed to function."
< 	  return 0
<        else
<           echo "Parameter #1 is $1."
<     fi
<     if [ "$2" ]
<        then
<           echo "Parameter #2 is $2."
<     fi
<     }
---
> #func () {
> #    if [ -z "$1" ]
> #       then
> #          echo "No parameters passed to function."
> #	  return 0
> #       else
> #          echo "Parameter #1 is $1."
> #    fi
> #    if [ "$2" ]
> #       then
> #          echo "Parameter #2 is $2."
> #    fi
> #    }
> func () { 
> if [ -z "$1"  ] 
> then echo " No patrameters
> return 0
> else echo "Param #1 is $1."
> fi
> if [ $2  ]
> then echo " Parameter #2 is $2"
> fi
> }
15:17:11
$sh new_function

15:17:16
$func a
1 2
15:17:22
$func

15:17:24
$func a b

15:17:27
$vim new_function
17c17
< then echo " No patrameters
---
> then echo "No patrameters"
25,28d24
< Param #1 is a.
<  No patrameters
< Param #1 is a.
<  Parameter #2 is b
15:18:06
$func a b

Статистика

Время первой команды журнала14:48:30 2007- 1-15
Время последней команды журнала15:18:06 2007- 1-15
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %12.87
Процент синтаксически неверно набранных команд, % 9.90
Суммарное время работы с терминалом *, час 0.49
Количество командных строк в единицу времени, команда/мин 3.41
Частота использования команд
vim37|===================================| 35.58%
sh36|==================================| 34.62%
func17|================| 16.35%
screen3|==| 2.88%
ls3|==| 2.88%
pwd2|=| 1.92%
echo1|| 0.96%
then1|| 0.96%
man1|| 0.96%
return1|| 0.96%
else1|| 0.96%
cd1|| 0.96%
____
*) Интервалы неактивности длительностью 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$