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

Содержание

Журнал

Пятница (01/12/07)

/dev/pts/4
17:30:27
#ls
file1
/dev/pts/1
17:30:27
#ls
file1
/dev/pts/4
17:30:36
#ls -l
итого 0
-r-x------ 1 root root 0 2007-01-12 17:30 file1
/dev/pts/1
17:30:36
#ls -l
итого 0
-r-x------ 1 root root 0 2007-01-12 17:30 file1
/dev/pts/4
17:30:47
#touch file2

/dev/pts/1
17:30:47
#touch file2

/dev/pts/4
17:32:37
#ls -l
итого 0
-r-x------ 1 root root 0 2007-01-12 17:30 file1
-rw-r--r-- 1 root root 0 2007-01-12 17:32 file2
/dev/pts/1
17:32:37
#ls -l
итого 0
-r-x------ 1 root root 0 2007-01-12 17:30 file1
-rw-r--r-- 1 root root 0 2007-01-12 17:32 file2
прошло 17 минут
/dev/pts/1
17:49:54
#ls
install  mymotd  mynologin  mytgz
17:50:06
#cd

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

/dev/pts/2
10:20:07
#screen -x
10:20:22
#q
bash: q: command not found
прошло >2 часов
/dev/pts/1
12:31:04
#test -r /etc/shadow ; echo $?
0
12:31:27
#su - user

12:31:50
$test -k /tmp ; echo $?
0
12:32:12
$su -
Password:
l3-agent is already running: pid=4510; pidfile=/root/.lilalo/l3-agent.pid
/dev/pts/3
12:32:32
#test -w /etc/passwd

/dev/pts/1
12:32:32
#test -w /etc/passwd

/dev/pts/3
12:33:07
#test -w /etc/passwd ; echo $?
0
/dev/pts/1
12:33:07
#test -w /etc/passwd ; echo $?
exit
0
12:33:14
#exit
exit
12:33:21
$test -w /etc/passwd ; echo $?
1
12:33:36
$x=5

12:34:16
$y=10

12:34:21
$test x -gt y ; echo $?
bash: test: x: integer expression expected
2
12:34:49
$test $x -gt $y ; echo $?
1
12:36:02
$echo "Ваш любимый цвет?" read FAV_COL ; \
> echo "Ваш любимый цвет?" read FAV_COL ; \
12:40:22
$echo "Ваш любимый цвет?" ; read FAV_COL ; \
> echo "Ваш любимый цвет?" ; read FAV_COL ; \
12:40:51
$echo "Ваш любимый цвет?" ; read FAV_COL ; \
> echo Ваш любимый цвет - $FAV_COL
Ваш любимый цвет?
1
Ваш любимый цвет - 1
12:41:22
$echo "Ваш любимый цвет?" ; read FAV_COL ; echo Ваш любимый цвет - $FAV_COL
Ваш любимый цвет?
ujke,jq
Ваш любимый цвет - ujke,jq
12:41:31
$echo "Ваш любимый цвет?" ; read FAV_COL ; echo Ваш любимый цвет - $FAV_COL
Ваш любимый цвет?
голубой
Ваш любимый цвет - голубой
12:41:39
$test $EUID -ne 0 -a -r /etc/shadow && \
> echo 'Предупреждение Ð: Файл /etc/shadow доступен для чтÐения!'
12:44:56
$test $EUID -ne o -a -r /etc/shadow && echo 'Предупреждение : Файл /etc/shadow доступен для чтения!'
bash: test: o: integer expression expected
12:45:35
$test $EUID -ne 0 -a -r /etc/shadow && echo 'Предупреждение : Файл /etc/shadow доступен для чтения!'

12:45:39
$man test
12:47:39
$test $EUID -ne 0 -a -r /etc/shadow && echo 'Предупреждение : Файл /etc/shadow доступен для чтения!'

12:47:53
$test $EUID -ne 0 -a -r /etc/shadow && echo "Предупреждение : Файл /etc/shadow доступен для чтения!"
>
12:48:19
$test $EUID -ne 0 -a -r /etc/shadow ; echo $?
1
12:48:38
$echo $EUID
1000
12:48:57
$test $EUID -ne 0 -a -r /etc/shadow || echo 'Предупреждение : Файл /etc/shadow доступен для чтения!'
Предупреждение : Файл /etc/shadow доступен для чтения!
12:49:40
$echo "Ваша любимая ОС?";read FAV_OS;[$FAV_OS"=="BSD"]&& \
> echo 'Хороший выбор!'
>
12:52:01
$echo "Ваша любимая ОС?";read FAV_OS;[$FAV_OS"=="BSD"]&& \

12:52:01
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"=="BSD" ]&& \

12:52:01
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"=="BSD" ]&& \
echo 'Хороший выбор!'
Ваша любимая ОС?
1
Хороший выбор!
12:52:35
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"=="BSD" ]&& echo 'Хороший выбор!'
Ваша любимая ОС?
2
Хороший выбор!
12:52:40
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"=="BSD" ]&& echo 'Хороший выбор!'
Ваша любимая ОС?
0
Хороший выбор!
12:52:44
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"=="BSD" ]&& echo 'Хороший выбор!'
Ваша любимая ОС?
BSD
Хороший выбор!
12:54:22
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"=="BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
1
Хороший выбор!
12:54:58
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" "BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
1
bash: [: 1: unary operator expected
12:58:47
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" "BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
BSD
bash: [: BSD: unary operator expected
12:58:52
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"="BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
1
Хороший выбор!
12:59:10
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"="BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
bsd
Хороший выбор!
13:00:17
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS"="BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
BSD
Хороший выбор!
13:00:22
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
BSD
Хороший выбор!
13:00:31
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
1
13:00:33
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
13:00:38
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!'
Ваша любимая ОС?
13:00:44
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!' || echo 'Странно'
Ваша любимая ОС?
1
Странно
13:01:00
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!' || echo 'Странно'
Ваша любимая ОС?
1
Странно
13:02:24
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!' || echo 'Странно'
Ваша любимая ОС?
ИЫВ
Странно
13:02:27
$echo "Ваша любимая ОС?" ; read FAV_OS ; [ "$FAV_OS" = "BSD" ] && echo 'Хороший выбор!' || echo 'Странно'
Ваша любимая ОС?
Linux
Странно
13:02:35
$test -w /etc/passwd || ; echo "Вы не имеете права на изменение файла /etc/passwd"
bash: syntax error near unexpected token `;'
13:03:56
$test -w /etc/passwd || \
bash:  : command not found
Вы не имеете права на изменение файла /etc/passwd
13:04:12
$test -w /etc/passwd || \ ; echo "Вы не имеете права на изменение файла /etc/passwd"
bash:  : command not found
Вы не имеете права на изменение файла /etc/passwd
13:04:18
$test -w /etc/passwd || \
> echo "dkughdgu"
dkughdgu
13:05:44
$test -w /etc/passwd || echo "/etc/passwd"
/etc/passwd
13:05:59
$A=0

13:06:50
$whole [ $A -lt 10]
bash: whole: command not found
13:07:22
$while [ $A -lt 10]
> do
> A=$((A+1))
> echo $A
> done
bash: [: missing `]'
13:07:56
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done
1
2
3
4
5
6
7
8
9
10
13:08:11
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done

прошло 59 минут
14:07:59
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done

14:08:06
$A=0

14:08:17
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done
1
2
3
4
5
6
7
8
9
10
14:08:19
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done

14:08:45
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done

14:08:49
$echo $A
10
14:09:02
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done ; A=0

14:09:16
$A=0

14:09:24
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done ; A=0
1
2
3
4
5
6
7
8
9
10
14:09:27
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done ; A=0
1
2
3
4
5
6
7
8
9
10
14:09:28
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done ; A=0
1
2
3
4
5
6
7
8
9
10
14:09:29
$while [ $A -lt 10 ]; do A=$((A+1)); echo $A; done ; A=0
1
2
3
4
5
6
7
8
9
10
14:09:29
$for file in /etc/* do
>
14:09:57
$for file in /etc/*
> do
> [ -r $file ] || echo $file
> done
/etc/at.deny
/etc/group-
/etc/gshadow
/etc/gshadow-
/etc/identd.key
/etc/passwd-
/etc/shadow
/etc/shadow-
/etc/sudoers
14:10:25
$for file in /etc/*; do [ r $file ] || echo $file; done
/etc/motd.tail
bash: [: r: unary operator expected
/etc/mtab
bash: [: r: unary operator expected
/etc/mtools.conf
bash: [: r: unary operator expected
/etc/Muttrc
bash: [: r: unary operator expected
/etc/nanorc
bash: [: r: unary operator expected
...
bash: [: r: unary operator expected
/etc/wodim.conf
bash: [: r: unary operator expected
/etc/wpa_supplicant
bash: [: r: unary operator expected
/etc/X11
bash: [: r: unary operator expected
/etc/xdg
bash: [: r: unary operator expected
/etc/xml
14:10:44
$for file in /etc/*; do [ r $file ] || echo $file; done ; set number
/etc/motd.tail
bash: [: r: unary operator expected
/etc/mtab
bash: [: r: unary operator expected
/etc/mtools.conf
bash: [: r: unary operator expected
/etc/Muttrc
bash: [: r: unary operator expected
/etc/nanorc
bash: [: r: unary operator expected
...
bash: [: r: unary operator expected
/etc/wodim.conf
bash: [: r: unary operator expected
/etc/wpa_supplicant
bash: [: r: unary operator expected
/etc/X11
bash: [: r: unary operator expected
/etc/xdg
bash: [: r: unary operator expected
/etc/xml
14:11:05
$for file in /etc/*; do [ r $file ] || echo $file; set number ; done
/etc/motd.tail
bash: [: r: unary operator expected
/etc/mtab
bash: [: r: unary operator expected
/etc/mtools.conf
bash: [: r: unary operator expected
/etc/Muttrc
bash: [: r: unary operator expected
/etc/nanorc
bash: [: r: unary operator expected
...
bash: [: r: unary operator expected
/etc/wodim.conf
bash: [: r: unary operator expected
/etc/wpa_supplicant
bash: [: r: unary operator expected
/etc/X11
bash: [: r: unary operator expected
/etc/xdg
bash: [: r: unary operator expected
/etc/xml
14:11:26
$for file in /etc/*; do [ r $file ] || echo $file ; done
/etc/motd.tail
bash: [: r: unary operator expected
/etc/mtab
bash: [: r: unary operator expected
/etc/mtools.conf
bash: [: r: unary operator expected
/etc/Muttrc
bash: [: r: unary operator expected
/etc/nanorc
bash: [: r: unary operator expected
...
bash: [: r: unary operator expected
/etc/wodim.conf
bash: [: r: unary operator expected
/etc/wpa_supplicant
bash: [: r: unary operator expected
/etc/X11
bash: [: r: unary operator expected
/etc/xdg
bash: [: r: unary operator expected
/etc/xml
14:11:44
$for file in /etc/*; do [ -r $file ] || echo $file ; done
/etc/at.deny
/etc/group-
/etc/gshadow
/etc/gshadow-
/etc/identd.key
/etc/passwd-
/etc/shadow
/etc/shadow-
/etc/sudoers
14:11:52
$echo 'О какой команде вы хотели бы получить информацию?' ; \
О какой команде вы хотели бы получить информацию?
bash: ': command not found
14:12:51
$echo 'О какой команде вы хотели бы получить информацию?' ; \
> select command ii man touch mount make exit clear
bash: syntax error near unexpected token `ii'
14:13:46
$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
#?
14:17:00
$echo "При помощи какой команды можно получить полную справочную информацию о программе?"
При помощи какой команды можно получить полную справочную информацию о программе?
14:18:57
$read answer
bb
14:19:44
$case $answer in
> "man" | "info" )
> echo 'Вы правыÑ/ Так оно и естьÑÐÐ/'
> ;;
> "whatis" | "atropos" )
> echo 'Не совсем так/ При помощи этой команды можно/'
> ;;
> * ) echo 'Вы ошибаетесь'
> жж
> уыфс
 этой команды можно/'; ;; * ) echo 'Вы ошибаетесь'; жж; ;; ; esac
bash: syntax error near unexpected token `;'
14:23:36
$vim new
14:24:41
$ls
BACKUP  BODY     DESKTOP     FILE   NAMES    NEW.TXT                 PROJECTX  SORTED         TEXT       VERY_LONG_FILE_NAME
BASE    C        ERRLOG      files  new      no_file_with_this_name  SH        SORTED_PASSWD  TOUCHLIST
BIN     Desktop  ERROR.FILE  FILES  NEWFILE  PROJ                    soft      TEST           UNSORTED
14:24:43
$cat new
$echo
14:24:53
$vim new
14:32:35
$cat new
$ echo "При помощи какой команды можно получить спр инф о проге?"
$ read answer
$ case $answer in
"man" | "info" )
echo 'Вы правы Так оно и есть'
;;
"whatis" | "apropos" )
echo 'Не совсем так'
;;
* ) echo 'Вы ошибаетесь'
;;
esac

Файлы

  • new
  • new
    >
    $ echo "При помощи какой команды можно получить спр инф о проге?"
    $ read answer
    $ case $answer in
    "man" | "info" )
    echo 'Вы правы Так оно и есть'
    ;;
    "whatis" | "apropos" )
    echo 'Не совсем так'
    ;;
    * ) echo 'Вы ошибаетесь'
    ;;
    esac
    

    Статистика

    Время первой команды журнала17:30:27 2007- 1-12
    Время последней команды журнала14:32:35 2007- 1-15
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %19.80
    Процент синтаксически неверно набранных команд, % 2.97
    Суммарное время работы с терминалом *, час 1.36
    Количество командных строк в единицу времени, команда/мин 1.24
    Частота использования команд
    echo64|========================| 24.81%
    &26|==========| 10.08%
    read26|==========| 10.08%
    test21|========| 8.14%
    [19|=======| 7.36%
    do16|======| 6.20%
    done16|======| 6.20%
    \13|=====| 5.04%
    while12|====| 4.65%
    A=08|===| 3.10%
    ls8|===| 3.10%
    for7|==| 2.71%
    touch2|| 0.78%
    vim2|| 0.78%
    set2|| 0.78%
    [$FAV_OS"=="BSD"]&2|| 0.78%
    cat2|| 0.78%
    su2|| 0.78%
    Частота использования этих команд < 0.5%x=51 , q1 , screen1 , man1 , cd1 , y=101 , select1 , whole1 , case1 , exit1
    ____
    *) Интервалы неактивности длительностью 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$