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

Содержание

Журнал

Среда (01/21/09)

/dev/ttyp5
09:34:48
#ls a[bcd]e
ls: a[bcd]e: No such file or directory
09:34:55
#ls '
ls: a[b]e: No such file or directory
09:35:14
#echo a?
ab
09:35:33
#echo a[b
[root@debian1:tmp]# echo a[a-z]
ab
ab
09:35:40
#echo a[b]
ab
09:35:44
#echo a[b]*
ab abc abcd abcde abcdef
09:35:46
#echo a[b-e]
ab
09:35:52
#echo a[b-e]f
a[b-e]f
09:35:56
#echo a[b-e]
ab
09:36:03
#echo a[bcde
ab
09:36:12
#echo a[bcde
ab
09:36:25
#echo a[bcde
ab
09:36:32
#ls
a  ab  abc  abcd  abcde  abcdef  ssh-hbgqFx2633
09:36:35
#touch ac

09:36:43
#touch ad

09:36:46
#touch ae

09:36:49
#touch af

09:36:50
#echo a[bcdef]
ab ac ad ae af
09:37:09
#echo a[bcde
ab ac ad ae
09:37:14
#echo a[b-
ab ac ad ae
09:37:25
#echo a[^
af
09:37:29
#echo a[b,c,d,e.
ab ac ad ae af
09:38:24
#echo a[b,c,d,e,
ab ac ad ae af
09:38:27
#echo a[b,c,d,e.
ab ac ad ae af
09:38:34
#echo a[b.
ab ac ad ae af
09:38:45
#echo a[b.c.d.
ab ac ad ae af
09:40:15
#echo /*/* | wc
      1     926   12498
09:40:27
#man mc
09:41:03
#echo /*/* | wc
WC(1)                                User Commands                                WC(1)
      1     926   12498
       wc - print the number of newlines, words, and bytes in files
SYNOPSIS
       wc [OPTION]... [FILE]...
DESCRIPTION
       Print  newline,  word,  and  byte counts for each FILE, and a total line if more
       than one FILE is specified.  With no FILE, or when  FILE  is  -,  read  standard
       input.
       -c, --bytes
...
       than one FILE is specified.  With no FILE, or when  FILE  is  -,  read  standard
       input.
       -c, --bytes
              print the byte counts
       -m, --chars
              print the character counts
       -l, --lines
              print the newline counts
       -L, --max-line-length
              print the length of the longest line
09:41:04
#echo /*/* | cat -n
     1  /bin/arch /bin/bash /bin/bunzip2 /bin/bzcat /bin/bzcmp /bin/bzdiff /bin/bzegrep /bin/bzexe /bin/bzfgrep /bin/bzgrep /bin/bzip2 /bin/bzip2recover /bin/bzless /bin/bzmore /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/chvt /bin/cp /bin/cpio /bin/date /bin/dd /bin/df /bin/dir /bin/dmesg /bin/dnsdomainname /bin/echo /bin/ed /bin/egrep /bin/false /bin/fgconsole /bin/fgrep /bin/fuser /bin/grep /
09:41:29
#echo /*/* | wc -l
1
09:41:34
#echo /*/* | wc -c
12498
09:41:37
#echo /*/* | wc -w
926
09:41:41
#man wc
09:42:05
#echo /*/* | wc -c
12498
09:42:10
#echo /*/*/*
77325
09:42:14
#echo /*/*/*/*
253746
09:42:34
#ls -l
[root@debian1:tmp]# echo /*/*/*/*/*
2862444
bash: /bin/ls: Argument list too long
09:42:46
#ls -l /*/*/*/*/
-rw-r--r-- 1 root root      552 2004-07-31 23:34 pam.conf
drwxr-xr-x 2 root root      472 2008-03-11 17:56 pam.d
drwxr-xr-x 2 root root       80 2007-12-23 16:44 pango
-rw-r--r-- 1 root root     9347 2008-03-14 11:04 passwd
-rw-r--r-- 1 root root     9402 2008-03-14 11:03 passwd-
-rw-r--r-- 1 root root     9347 2009-01-19 14:55 passwd-back
-rw-r--r-- 1 root root     9347 2009-01-19 14:56 passwd.back
drwxr-xr-x 4 root root       96 2007-12-23 16:42 perl
-rw-r--r-- 1 root root      475 2006-10-28 16:42 profile
-rw-r--r-- 1 root root     2478 2007-02-02 04:09 protocols
...
drwxr-xr-x 2 user179 user179 136 2008-03-13 15:15 user179
drwxr-xr-x 2 user18  user18  136 2008-03-13 15:15 user18
drwxr-xr-x 2 user180 user180 136 2008-03-13 15:15 user180
drwxr-xr-x 2 user181 user181 136 2008-03-13 15:15 user181
drwxr-xr-x 2 user182 user182 136 2008-03-13 15:15 user182
drwxr-xr-x 2 user183 user183 136 2008-03-13 15:15 user183
drwxr-xr-x 2 user184 user184 136 2008-03-13 15:15 user184
drwxr-xr-x 2 user185 user185 136 2008-03-13 15:15 user185
drwxr-xr-x 2 user186 user186 136 2008-03-13 15:15 user186
drwxr-xr-x 2 user187 user187 136 2008-03-13 15:15 user187
09:42:50
#echo /*/*/*/*/* | wc -c
2862444
09:43:13
#ls -l /*/*/*/*/*
]bash: /bin/ls: Argument list too long
09:43:45
#echo
lrwxrwxrwx   1 root    root           15 2008-07-04 20:08 /proc/1157/cwd/lib/libblkid.so.1 -> libblkid.so.1.0
-rw-r--r--   1 root    root        32248 2007-03-07 04:17 /proc/1157/cwd/lib/libblkid.so.1.0
-rw-r--r--   1 root    root         5448 2008-01-19 14:14 /proc/1157/cwd/lib/libBrokenLocale-2.3.6.so
lrwxrwxrwx   1 root    root           24 2008-07-04 20:08 /proc/1157/cwd/lib/libBrokenLocale.so.1 -> libBrokenLocale-2.3.6.so
lrwxrwxrwx   1 root    root           15 2008-07-04 20:09 /proc/1157/cwd/lib/libbz2.so.1 -> libbz2.so.1.0.3
lrwxrwxrwx   1 root    root           15 2008-07-04 20:08 /proc/1157/cwd/lib/libbz2.so.1.0 -> libbz2.so.1.0.3
-rw-r--r--   1 root    root        66200 2006-08-25 20:20 /proc/1157/cwd/lib/libbz2.so.1.0.3
-rwxr-xr-x   1 root    root      1147548 2008-01-19 14:14 /proc/1157/cwd/lib/libc-2.3.6.so
lrwxrwxrwx   1 root    root           14 2008-07-04 20:08 /proc/1157/cwd/lib/libcap.so.1 -> libcap.so.1.10
-rw-r--r--   1 root    root        11024 2004-04-14 01:10 /proc/1157/cwd/lib/libcap.so.1.10
...
-rwxr-xr-x   1 root    root        22232 2007-03-07 04:17 /proc/1157/cwd/sbin/e2label
-rwxr-xr-x   1 root    root        74144 2007-02-21 19:48 /proc/1157/cwd/sbin/fdisk
-rwxr-xr-x   1 root    root        22232 2007-03-07 04:17 /proc/1157/cwd/sbin/findfs
-rwxr-xr-x   1 root    root        18236 2007-03-07 04:17 /proc/1157/cwd/sbin/fsck
-rwxr-xr-x   1 root    root        10428 2007-02-21 19:48 /proc/1157/cwd/sbin/fsck.cramfs
-rwxr-xr-x   1 root    root       147448 2007-03-07 04:17 /proc/1157/cwd/sbin/fsck.ext2
-rwxr-xr-x   1 root    root       147448 2007-03-07 04:17 /proc/1157/cwd/sbin/fsck.ext3
-rwxr-xr-x   1 root    root        19868 2007-02-21 19:48 /proc/1157/cwd/sbin/fsck.minix
-rwxr-xr-x   1 root    root          333 2007-01-31 00:27 /proc/1157/cwd/sbin/fsck.nfs
-rwxr-xr-x   1 root    root          112 2006-09-28 16:21 /proc/1157/cwd/sbin/fsck.reiserfs
09:45:33
#cat names
Andrey
Sergey
Igor
Alex
09:45:35
#cat names | sort
Alex
Andrey
Igor
Sergey
09:45:40
#cat names | sort | tac
Sergey
Igor
Andrey
Alex
09:46:00
#sort < names > SORTED_NAMES

09:46:28
#cat SORTED_NAMES
Alex
Andrey
Igor
Sergey
09:46:31
#sort > S.names < names

09:47:05
#cat S.names
Alex
Andrey
Igor
Sergey
09:47:09
#sort >

09:47:25
#cat ls
Alex
Andrey
Igor
Sergey
09:47:33
#> names

09:48:00
#> names
[root@debian1:tmp]# file names
names: ASCII text
09:48:03
#file names
names: empty
09:48:05
#vim names
09:48:16
#cat names

09:48:23
#cat names

09:48:24
#vim names
--- /tmp/l3-saved-2881.3023.12346	2009-01-21 09:48:25.000000000 +0200
+++ names	2009-01-21 09:48:28.000000000 +0200
@@ -0,0 +1,2 @@
+
+
09:48:28
#file names
names: ASCII text
09:48:36
#sort > S.names <<
> sss
> sss
09:49:46
#cat S
S.names       SORTED_NAMES
09:49:46
#cat S.names
sss
sss
09:49:51
#sort > S.names << names

09:50:17
#cat S.names

09:50:22
#sort > S.names <<
bash: syntax error near unexpected token `newline'
09:50:30
#sort > S.names << names
> names
09:50:44
#cat > /tmp/conf << EOF
> #!/bin/sh
> echo "Hello, zlo"
> EOF
09:51:41
#cat /tmp/conf
#!/bin/sh
echo "Hello, zlo"
09:52:09
#cat /tmp/conf
[root@debian1:tmp]#
#!/bin/sh
echo "Hello, zlo"
09:52:20
#cat >
>
09:53:26
#echo "#!/bin/sh\n
bash: !/bin/sh\n: event not found
09:53:38
#cat > /tmp/conf << EOF
> #! Поток
> EOF
09:55:46
#cat /tmp/conf
#! Поток
09:55:52
#sort > S.names << names

09:55:56
#echo "#!/bin/sh\nВторая строка"
bash: !/bin/sh\nВторая: event not found
09:56:51
#man echo
09:57:17
#history | grep echo
   93  for i in m0`seq 1 4` ; do echo $i; done
   94  for i in "m0`seq 1 4`" ; do echo $i; done
   95  for i in `seq m01 m04` ; do echo $i; done
   96  for i in `seq 1 4` ; do echo $i; done
   97  for a in m0`for i in `seq 1 4` ; do echo $i; done`;echo $i;done
   98  for a in m0`for i in `seq 1 4` ; do echo $i; done`; echo $a; done
  101  for i in m0`seq 1 4` ; do echo $i; done
  102  for i in 192.168.99.`seq 1 4` ; do echo $i; done
  103  for i in `seq 1 4` ; do echo $i; done
  104  for i in `seq 1 4` ; do echo m0$i; done
...
  544  echo /*/* | wc -c
  545  echo /*/* | wc -w
  547  echo /*/* | wc -c
  548  echo /*/*/* | wc -c
  549  echo /*/*/*/* | wc -c
  550  echo /*/*/*/*/* | wc -c
  553  echo /*/*/*/*/* | wc -c
  555  echo /*/*/*/*/* | xargs ls -l
  586  man echo
  587  history | grep echo
09:57:28
#vim .bashrc
09:57:55
#echo "#!/bin/sh\nВторая строка" -e
bash: !/bin/sh\nВторая: event not found
09:58:18
#echo "#!/bin/sh\n\
bash: !/bin/sh\n\: event not found
09:58:32
#echo "#!/bin/sh\
bash: !/bin/sh\: event not found
09:58:43
#/
bash: /: is a directory
09:59:06
#vim t
/dev/ttypb
10:08:15
#screen - x
10:08:21
#screen -x
/dev/ttyp5
10:14:08
#vim
10:16:14
#vim /etc/pro
10:16:14
#vim /etc/pro
10:16:45
#id
  7   PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"$
  8 fi$
  9 $
 10 if [ "$PS1" ]; then$
 11   if [ "$BASH" ]; then$
 12     PS1='\u@\h:\w\$ '$
 13   else$
 14     if [ "`id -u`" -eq 0 ]; then$
 15       PS1='# '$
 16     else$
...
 19   fi$
 20 fi$
 21 $
 22 export PATH$
 23 $
 24 umask 022$
~
"/etc/profile" 24L, 475C                                                24,1         Весь
E488: Ðm                                          24,1         Весь
uid=0(root) gid=0(root) группы=0(root)
10:16:47
#id -u
0
10:18:28
#vim ~/.bashrc
10:19:24
#echo LS_
[root@debian1:tmp]# dircolors
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=
export LS_COLORS
10:19:45
#eval

10:19:59
#echo $L
$L3_HOME              $L3_TAMPERED_EDITORS  $LINES                $LS_OPTIONS
$L3_PARENT_TTY        $LANG                 $LOGNAME
$L3_SESSION_ID        $LINENO               $LS_COLORS
10:19:59
#echo $LS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm
10:20:10
#ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-jfWKaZ4928/agent.4928; export SSH_AUTH_SOCK;
SSH_AGENT_PID=4929; export SSH_AGENT_PID;
echo Agent pid 4929;
10:22:24
#echo $SSH_
$SSH_CLIENT      $SSH_CONNECTION  $SSH_TTY
10:22:24
#echo $SSH_
[root@debian1:tmp]# echo $SSH_
$SSH_CLIENT      $SSH_CONNECTION  $SSH_TTY
10:23:00
#ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-JZxTWz4947/agent.4947; export SSH_AUTH_SOCK;
SSH_AGENT_PID=4948; export SSH_AGENT_PID;
echo Agent pid 4948;
10:23:03
#eval
Agent pid 4957
10:23:14
#echo $S
$SECONDS         $SHELLOPTS       $SSH_AGENT_PID   $SSH_CLIENT      $SSH_TTY
$SHELL           $SHLVL           $SSH_AUTH_SOCK   $SSH_CONNECTION  $STY

Файлы

  • -n
  • /tmp/conf
  • EOF
  • S
  • S.names
  • SORTED_NAMES
  • ls
  • names
  • -n
    >
         1  /bin/arch /bin/bash /bin/bunzip2 /bin/bzcat /bin/bzcmp /bin/bzdiff /bin/bzegrep /bin/bzexe /bin/bzfgrep /bin/bzgrep /bin/bzip2 /bin/bzip2recover /bin/bzless /bin/bzmore /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/chvt /bin/cp /bin/cpio /bin/date /bin/dd /bin/df /bin/dir /bin/dmesg /bin/dnsdomainname /bin/echo /bin/ed /bin/egrep /bin/false /bin/fgconsole /bin/fgrep /bin/fuser /bin/grep /
    
    /tmp/conf
    >
    #! Поток
    
    EOF
    >
    > #! Поток
    > EOF
    
    S
    >
    S.names       SORTED_NAMES
    
    S.names
    >
    SORTED_NAMES
    >
    Alex
    Andrey
    Igor
    Sergey
    
    ls
    >
    Alex
    Andrey
    Igor
    Sergey
    
    names
    >

    Статистика

    Время первой команды журнала09:34:48 2009- 1-21
    Время последней команды журнала10:23:14 2009- 1-21
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %18.81
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 0.81
    Количество командных строк в единицу времени, команда/мин 2.09
    Частота использования команд
    echo41|=============================| 29.71%
    cat18|=============| 13.04%
    sort10|=======| 7.25%
    vim8|=====| 5.80%
    <7|=====| 5.07%
    names7|=====| 5.07%
    wc7|=====| 5.07%
    S.names6|====| 4.35%
    ls6|====| 4.35%
    touch4|==| 2.90%
    man3|==| 2.17%
    screen2|=| 1.45%
    conf2|=| 1.45%
    >2|=| 1.45%
    eval2|=| 1.45%
    id2|=| 1.45%
    ssh-agent2|=| 1.45%
    EOF2|=| 1.45%
    file2|=| 1.45%
    tac1|| 0.72%
    history1|| 0.72%
    SORTED_NAMES1|| 0.72%
    grep1|| 0.72%
    /1|| 0.72%
    ____
    *) Интервалы неактивности длительностью 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$