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

Содержание

Журнал

Среда (03/12/08)

/dev/ttyp2
12:21:36
#echo ? ; echo ?? ; echo ??? ; echo ????
1
44
aba abb abc
????
12:21:41
#touch 5557

12:21:47
#echo ? ; echo ?? ; echo ??? ; echo ????
1
44
aba abb abc
5557
12:21:48
#date
Срд Мар 12 12:22:04 EET 2008
12:22:04
#ls
1  44  5557  aba  abb  abbbdc  abc
12:22:16
#mkdir test

12:22:21
#cd test

12:22:25
#[wd
bash: [wd: command not found
12:22:26
#pwd
/tmp/test
12:22:28
##

12:22:44
#date
Срд Мар 12 12:22:46 EET 2008
12:22:46
#touch "`date`"

12:23:16
#ls
Срд Мар 12 12:23:16 EET 2008
12:23:17
#ls -l
итого 0
-rw-r--r-- 1 root root 0 2008-03-12 12:23 Срд Мар 12 12:23:16 EET 2008
12:23:21
#rm
rm: пропущен операнд
Попробуйте `rm --help' для получения более подробного описания.
12:23:35
#rm *

12:23:36
#ls

12:23:38
#touch "$((date))

12:24:24
#ls
0
12:24:30
#ls
[root@debian1:test]# touch "$(
0  Срд Мар 12 12:24:30 EET 2008
12:24:31
#man date
12:25:31
#touch "$((date

12:26:19
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
sshd:x:100:65534::/var/run/sshd:/usr/sbin/nologin
gdm:x:101:103:Gnome Display Manager:/var/lib/gdm:/bin/false
user:x:1000:1000:User,,,:/home/user:/bin/bash
test:x:1001:1001:,,,:/home/test:/bin/bash
12:26:26
#cat /etc/passwd | grep home
user:x:1000:1000:User,,,:/home/user:/bin/bash
test:x:1001:1001:,,,:/home/test:/bin/bash
12:26:59
#echo $(('cat /etc/passwd | grep home | wc -l' +1))
bash: 'cat /etc/passwd | grep home | wc -l' +1: syntax error: operand expected (error token is "'cat /etc/passwd | grep home | wc -l' +1")
12:28:00
#echo $(('cat /etc/passwd | grep home | wc -l'
bash: 'cat /etc/passwd | grep home | wc -l'+1: syntax error: operand expected (error token is "'cat /etc/passwd | grep home | wc -l'+1")
12:28:08
#echo $((`
3
12:28:35
#echo $(('cat /etc/passwd | egrep "
bash: 'cat /etc/passwd | egrep "root|home" | wc -l': syntax error: operand expected (error token is "'cat /etc/passwd | egrep "root|home" | wc -l'")
12:29:50
#echo $(('cat /etc/passwd | egrep \
bash: 'cat /etc/passwd | egrep \"root\|home\" | wc -l': syntax error: operand expected (error token is "'cat /etc/passwd | egrep \"root\|home\" | wc -l'")
12:29:57
#echo $(('cat /etc/passwd | egrep \'
>
12:30:09
#echo $(('cat /etc/passwd | egrep 'root|home
bash: 'cat /etc/passwd | egrep 'root|home' | wc -l': syntax error: operand expected (error token is "'cat /etc/passwd | egrep 'root|home' | wc -l'")
12:30:25
#echo $(('cat /etc/passwd | egrep 'root\
bash: 'cat /etc/passwd | egrep 'root\|home' | wc -l': syntax error: operand expected (error token is "'cat /etc/passwd | egrep 'root\|home' | wc -l'")
12:30:39
#echo

12:30:57
#echo cat /etc/passwd | egrep "*root*|*home*
[root@debian1:test]# echo cat /etc/passwd | egrep "
12:31:25
#cat /etc/passwd | egrep "
root:x:0:0:root:/root:/bin/bash
user:x:1000:1000:User,,,:/home/user:/bin/bash
test:x:1001:1001:,,,:/home/test:/bin/bash
12:31:32
#cat /etc/passwd | egrep '
root:x:0:0:root:/root:/bin/bash
user:x:1000:1000:User,,,:/home/user:/bin/bash
test:x:1001:1001:,,,:/home/test:/bin/bash
12:31:37
#cat /etc/passwd | egrep
bash: home: command not found
12:31:40
#cat /etc/passwd | egrep root\
root:x:0:0:root:/root:/bin/bash
user:x:1000:1000:User,,,:/home/user:/bin/bash
test:x:1001:1001:,,,:/home/test:/bin/bash
12:31:44
#echo $(('cat /etc/passwd | egrep
bash: 'cat /etc/passwd | egrep root\|home | wc -l': syntax error: operand expected (error token is "'cat /etc/passwd | egrep root\|home | wc -l'")
12:32:15
#echo $((`
3
12:32:35
#echo $((`cat /etc/passwd | egrep root\|home | wc -l`+3
6
12:32:54
#vim names
--- /dev/null	2008-03-12 12:12:35.240236405 +0200
+++ names	2008-03-12 12:36:35.000000000 +0200
@@ -0,0 +1,5 @@
+Andrey
+Sergey
+Evgenij
+Irina
+Ekaterina
12:36:41
#cat names > /tmp/names2
[root@debian1:test]# cat names
Andrey
Sergey
Evgenij
Irina
Ekaterina
12:37:05
#cat names >>
[root@debian1:test]# vim /tmp/names2
12:37:22
#sort < names > names_sort

12:37:47
#cat names
Andrey
Sergey
Evgenij
Irina
Ekaterina
12:37:50
#cat names_sort
Andrey
Ekaterina
Evgenij
Irina
Sergey
12:37:52
#sort < names >>

12:38:13
#cat names_sort
Andrey
Ekaterina
Evgenij
Irina
Sergey
Andrey
Ekaterina
Evgenij
Irina
Sergey
12:38:15
#touch /sbin/test

12:38:59
#chown user /sbin/test

12:39:05
#su - user

12:39:10
$find /sbin -name *

12:39:19
$find /sbin -name \
/sbin
/sbin/mkfs.cramfs
/sbin/lsmod.modutils
/sbin/debugfs
/sbin/mkfs
/sbin/poweroff
/sbin/sysctl
/sbin/ifup
/sbin/modprobe
/sbin/iptables
...
/sbin/update-modules
/sbin/shutdown
/sbin/dumpe2fs
/sbin/depmod
/sbin/mkswap
/sbin/unix_chkpwd
/sbin/fsck.cramfs
/sbin/syslogd
/sbin/blockdev
/sbin/modprobe.modutils
12:39:22
$find /var/log/
/var/log/
/var/log/daemon.log.0
/var/log/messages
/var/log/auth.log.0
/var/log/debug.0
/var/log/Xorg.0.log
/var/log/gdm
/var/log/gdm/:0.log.4
/var/log/gdm/:0.log.3
/var/log/gdm/:0.log
...
/var/log/debug
/var/log/user.log.0
/var/log/boot
/var/log/dmesg.0
/var/log/syslog.1.gz
/var/log/auth.log
/var/log/dmesg.2.gz
/var/log/mail.warn
/var/log/dmesg.3.gz
/var/log/faillog
12:39:33
$exit
exit
12:39:43
#touch permfile

12:40:01
#ls -l permfile
-rw-r--r-- 1 root root 0 2008-03-12 12:40 permfile
12:40:04
#chmod go-r permfile

12:40:17
#ls -l permfile
-rw------- 1 root root 0 2008-03-12 12:40 permfile
12:40:19
#su - user
l3-agent is already running: pid=2927; pidfile=/home/user/.lilalo/l3-agent.pid
12:40:24
$find /tmp -name perm\*
/tmp/test/permfile
12:40:35
$id
uid=1000(user) gid=1000(user) группы=1000(user)
12:40:44
$exit
exit
12:40:55
#cd ..

12:40:57
#ls -ld
drwxr-xr-x 2 root root 4096 2008-03-12 12:40 test/
12:41:04
#chmod uo-rx test

12:41:19
#ls -ld test/
d-w-r-x--- 2 root root 4096 2008-03-12 12:40 test/
12:41:20
#chmod 0700

12:41:33
#ls -ld test/
drwx------ 2 root root 4096 2008-03-12 12:40 test/
12:41:34
#su - user
l3-agent is already running: pid=2927; pidfile=/home/user/.lilalo/l3-agent.pid
12:41:41
$find /tmp -name perm\*
find: /tmp/test: Permission denied
12:41:43
$find /tmp -name perm\* 2>/tmp/error_file

12:42:18
$cat /tmp/error_file
find: /tmp/test: Permission denied
12:42:21
$vim /tmp/error_file
12:42:30
$#

12:42:48
$touch /tmp/permuserfile

12:43:15
$find /tmp -name perm\*
[user@debian1:~]$ less /tmp/error_file
/tmp/permuserfile
find: /tmp/test: Permission denied
find: /tmp/test: Permission denied
12:43:47
$find /tmp -name perm\* >>
find: /tmp/test: Permission denied
12:43:51
$less /tmp/error_file
12:43:53
$find /tmp -name perm\* &
[1] 3489
/tmp/permuserfile
find: /tmp/test: Permission denied
[1]+  Exit 1                  find /tmp -name perm\*
12:44:03
$find /tmp -name perm\* &
bash: syntax error near unexpected token `>'
12:44:25
$find /tmp -name perm\* &>>
bash: syntax error near unexpected token `>'
12:44:29
$find /tmp -name perm\* &>

12:44:50
$find /tmp -name perm\* 2

12:44:56
$exit
exit
12:45:04
#chmod uo-rx test

12:45:06
#sort < names >> names_sort

12:46:01
#vim permuserfile
--- /tmp/l3-saved-1555.30086.24407	2008-03-12 12:46:25.000000000 +0200
+++ permuserfile	2008-03-12 12:46:34.000000000 +0200
@@ -0,0 +1,7 @@
+test
+
+test
+
+test
+
+ytes
12:46:34
#cat permuserfile
test
test
test
ytes
12:46:42
#cat permuserfile -n -s
[root@debian1:tmp]# cat permuserfile -n
     1  test
     2
     3  test
     4
     5  test
     6
     7  ytes
     1  test
     2
     3  test
     4
     5  test
     6
     7  ytes
12:46:45
#cat permuserfile -s
test
test
test
ytes
12:46:53
#vim permuserfile
--- /tmp/l3-saved-1555.4120.17914	2008-03-12 12:46:56.000000000 +0200
+++ permuserfile	2008-03-12 12:47:01.000000000 +0200
@@ -2,6 +2,12 @@
 
 test
 
+
+
+
+
+
+
 test
 
 ytes
12:47:02
#cat /etc/passwd
[root@debian1:tmp]# cat permuserfile -s
test
test
test
ytes
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
...
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
sshd:x:100:65534::/var/run/sshd:/usr/sbin/nologin
gdm:x:101:103:Gnome Display Manager:/var/lib/gdm:/bin/false
user:x:1000:1000:User,,,:/home/user:/bin/bash
test:x:1001:1001:,,,:/home/test:/bin/bash
12:48:12
#cat /etc/passwd | cut -d : -f 1
root
daemon
bin
sys
sync
games
man
lp
mail
news
...
www-data
backup
list
irc
gnats
nobody
sshd
gdm
user
test
12:48:28
#ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:00:01
          inet addr:192.168.16.1  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:75690 errors:0 dropped:0 overruns:0 frame:0
          TX packets:184224 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5257496 (5.0 MiB)  TX bytes:58717375 (55.9 MiB)
12:48:53
#ifconfig eth0 | grep inet
          inet addr:192.168.16.1  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:1/64 Scope:Link
12:48:58
#ifconfig eth0 | grep inet | cut -f 4
          inet addr:192.168.16.1  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:1/64 Scope:Link
12:49:07
#ifconfig eth0 | grep inet | cut -d \ -f 3
cut: разделитель должен быть одним символом
Попробуйте `cut --help' для получения более подробного описания.
12:49:20
#ifconfig eth0 | grep inet | cut -d " "

12:49:25
#ifconfig eth0 | grep inet | cut -d " " -f 5

Файлы

  • -s
  • /etc/passwd
  • /tmp/error_file
  • /tmp/names2
  • names
  • names_sort
  • permuserfile
  • -s
    >
    test
    test
    test
    ytes
    
    /etc/passwd
    >
    [root@debian1:tmp]# cat permuserfile -s
    test
    test
    test
    ytes
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    sshd:x:100:65534::/var/run/sshd:/usr/sbin/nologin
    gdm:x:101:103:Gnome Display Manager:/var/lib/gdm:/bin/false
    user:x:1000:1000:User,,,:/home/user:/bin/bash
    test:x:1001:1001:,,,:/home/test:/bin/bash
    
    /tmp/error_file
    >
    find: /tmp/test: Permission denied
    
    /tmp/names2
    >
    [root@debian1:test]# cat names
    Andrey
    Sergey
    Evgenij
    Irina
    Ekaterina
    
    names
    >
    Andrey
    Sergey
    Evgenij
    Irina
    Ekaterina
    
    names_sort
    >
    Andrey
    Ekaterina
    Evgenij
    Irina
    Sergey
    Andrey
    Ekaterina
    Evgenij
    Irina
    Sergey
    
    permuserfile
    >
    test
    test
    test
    ytes
    

    Статистика

    Время первой команды журнала12:21:36 2008- 3-12
    Время последней команды журнала12:49:25 2008- 3-12
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %23.76
    Процент синтаксически неверно набранных команд, % 1.98
    Суммарное время работы с терминалом *, час 0.46
    Количество командных строк в единицу времени, команда/мин 3.63
    Частота использования команд
    cat17|===========| 11.72%
    echo15|==========| 10.34%
    find13|========| 8.97%
    egrep12|========| 8.28%
    ls11|=======| 7.59%
    grep8|=====| 5.52%
    touch7|====| 4.83%
    ifconfig6|====| 4.14%
    >6|====| 4.14%
    cut5|===| 3.45%
    chmod4|==| 2.76%
    vim4|==| 2.76%
    sort3|==| 2.07%
    names3|==| 2.07%
    wc3|==| 2.07%
    exit3|==| 2.07%
    su3|==| 2.07%
    #2|=| 1.38%
    rm2|=| 1.38%
    cd2|=| 1.38%
    home2|=| 1.38%
    names_sort2|=| 1.38%
    date2|=| 1.38%
    mkdir1|| 0.69%
    error_file1|| 0.69%
    *home*1|| 0.69%
    pwd1|| 0.69%
    man1|| 0.69%
    chown1|| 0.69%
    id1|| 0.69%
    [wd1|| 0.69%
    less1|| 0.69%
    names21|| 0.69%
    ____
    *) Интервалы неактивности длительностью 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$