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

Содержание

Журнал

Вторник (05/26/09)

/dev/pts/30
09:57:14
#screen -x
/dev/pts/18
09:57:20
#cp a* dir/

/dev/pts/34
09:57:24
#screen -x
/dev/pts/18
09:57:55
#ls dir
a2.txt  a.txt
09:57:59
#ls
a2.txt  a.txt  b.txt  dir
09:58:03
#echo cp a\* dir/
cp a* dir/
09:58:31
#cp a\* dir/
cp: невозможно выполнить stat для `a*': Нет такого файла или каталога
09:58:43
#cp c* dir/
cp: невозможно выполнить stat для `c*': Нет такого файла или каталога
09:59:20
#echo cp c* dir/
cp c* dir/
09:59:29
#echo /*
/bin /boot /dev /etc /home /lib /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var
10:00:21
#echo /*/*
/bin/bash /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/dumpkeys /bin/echo /bin/ed /bin/egrep /bin/false /bin/fgconsole /bin/fgrep /bin/grep /bin/gunzip /bin/gzexe /bin/gzip /bin/hostname /bin/ip /bin/kbd_mode /bin/kill /bin/less /bin/lessecho /bin/lessfile /bin/lesskey /bin/lesspipe /bin/ln /bin/loadkeys
10:00:29
#echo /*/* | wc
      1     762   10304
10:00:33
#man bash | wc
   4588   37240  279272
10:01:12
#echo /*/* | wc -w
762
10:01:43
#echo /*/* | wc -l
1
10:01:46
#echo /*/* | wc -c
10304
10:01:48
#echo /*/*/*/* | wc -w
8745
10:02:06
#echo /*/*/* | wc -w
4665
10:02:11
#echo /*/*/*/* | wc
      1    8746  209151
10:02:16
#cp /*/*/*/* dir/
bash: /bin/cp: Слишком длинный список аргументов
10:02:49
#echo ????
????
10:05:21
#echo ?????
a.txt b.txt
10:05:29
#echo ???
dir
10:05:34
#echo [ab].txt
a.txt b.txt
10:05:57
#touch aa.txt

10:06:22
#echo [ab].txt
a.txt b.txt
10:06:23
#echo [^ab].txt
[^ab].txt
10:07:03
#touch c.txt

10:07:10
#echo [^ab].txt
c.txt
10:08:27
#ls -l
итого 4
-rw-r--r-- 1 root root    0 Май 26 06:56 a2.txt
-rw-r--r-- 1 root root    0 Май 26 07:06 aa.txt
-rw-r--r-- 1 root root    0 Май 26 06:56 a.txt
-rw-r--r-- 1 root root    0 Май 26 06:57 b.txt
-rw-r--r-- 1 root root    0 Май 26 07:07 c.txt
drwxr-xr-x 2 root root 4096 Май 26 06:57 dir
10:08:28
#ls -al
итого 12
drwxr-xr-x 3 root root 4096 Май 26 07:08 .
drwxrwxrwt 5 root root 4096 Май 26 06:57 ..
-rw-r--r-- 1 root root    0 Май 26 07:08 .1.txt
-rw-r--r-- 1 root root    0 Май 26 06:56 a2.txt
-rw-r--r-- 1 root root    0 Май 26 07:06 aa.txt
-rw-r--r-- 1 root root    0 Май 26 06:56 a.txt
-rw-r--r-- 1 root root    0 Май 26 06:57 b.txt
-rw-r--r-- 1 root root    0 Май 26 07:07 c.txt
drwxr-xr-x 2 root root 4096 Май 26 06:57 dir
10:08:31
#ls -a
.  ..  .1.txt  a2.txt  aa.txt  a.txt  b.txt  c.txt  dir
10:08:35
#ls -A
.1.txt  a2.txt  aa.txt  a.txt  b.txt  c.txt  dir
10:08:41
#echo *
a2.txt aa.txt a.txt b.txt c.txt dir
10:08:48
#echo .*
. .. .1.txt
10:09:05
#echo .[^.]*
.1.txt
10:12:03
#touch 'my doc'

10:12:10
#ls -l
итого 4
-rw-r--r-- 1 root root    0 Май 26 06:56 a2.txt
-rw-r--r-- 1 root root    0 Май 26 07:06 aa.txt
-rw-r--r-- 1 root root    0 Май 26 06:56 a.txt
-rw-r--r-- 1 root root    0 Май 26 06:57 b.txt
-rw-r--r-- 1 root root    0 Май 26 07:07 c.txt
drwxr-xr-x 2 root root 4096 Май 26 06:57 dir
-rw-r--r-- 1 root root    0 Май 26 07:12 my doc
10:12:12
#mkdir MY

10:12:17
#mv my* MY/

10:12:23
#ls -l MY/
итого 0
-rw-r--r-- 1 root root 0 Май 26 07:12 my doc
10:12:26
#mv MY 'My Documents'

10:12:45
#kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
10:14:06
#which kill
/bin/kill
10:14:15
#/bin/kill
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.
10:14:18
#echo /*/*/*/* | wc -l
1
10:14:45
#echo /*/*/*/* | wc -w
8764
10:14:47
#echo /*/*/*/* | wc -c
209455
10:14:49
#/bin/echo /*/*/*/* | wc -c
bash: /bin/echo: Слишком длинный список аргументов
0
10:14:53
#cat /dev/zero > /dev/null &
[1] 15543
10:16:37
#jobs
[1]+  Running                 cat /dev/zero > /dev/null &
10:16:55
#kill %1

10:17:02
#cat /dev/zero > /dev/null &
[1] 15590
10:17:40
#man bash
10:20:07
#hlp
bash: hlp: команда не найдена
10:20:09
#help
GNU bash, version 3.2.48(1)-release (i486-pc-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
 JOB_SPEC [&]                       (( expression ))
 . filename [arguments]             :
 [ arg... ]                         [[ expression ]]
 alias [-p] [name[=value] ... ]     bg [job_spec ...]
...
 shift [n]                          shopt [-pqsu] [-o long-option] opt
 source filename [arguments]        suspend [-f]
 test [expr]                        time [-p] PIPELINE
 times                              trap [-lp] [arg signal_spec ...]
 true                               type [-afptP] name [name ...]
 typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
 umask [-p] [-S] [mode]             unalias [-a] name [name ...]
 unset [-f] [-v] [name ...]         until COMMANDS; do COMMANDS; done
 variables - Some variable names an wait [n]
 while COMMANDS; do COMMANDS; done  { COMMANDS ; }
10:20:10
#help | less
10:21:45
#help
GNU bash, version 3.2.48(1)-release (i486-pc-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
 JOB_SPEC [&]                       (( expression ))
 . filename [arguments]             :
 [ arg... ]                         [[ expression ]]
 alias [-p] [name[=value] ... ]     bg [job_spec ...]
...
 shift [n]                          shopt [-pqsu] [-o long-option] opt
 source filename [arguments]        suspend [-f]
 test [expr]                        time [-p] PIPELINE
 times                              trap [-lp] [arg signal_spec ...]
 true                               type [-afptP] name [name ...]
 typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
 umask [-p] [-S] [mode]             unalias [-a] name [name ...]
 unset [-f] [-v] [name ...]         until COMMANDS; do COMMANDS; done
 variables - Some variable names an wait [n]
 while COMMANDS; do COMMANDS; done  { COMMANDS ; }
10:21:47
#help -s
GNU bash, version 3.2.48(1)-release (i486-pc-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
 JOB_SPEC [&]                       (( expression ))
 . filename [arguments]             :
 [ arg... ]                         [[ expression ]]
 alias [-p] [name[=value] ... ]     bg [job_spec ...]
...
 shift [n]                          shopt [-pqsu] [-o long-option] opt
 source filename [arguments]        suspend [-f]
 test [expr]                        time [-p] PIPELINE
 times                              trap [-lp] [arg signal_spec ...]
 true                               type [-afptP] name [name ...]
 typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
 umask [-p] [-S] [mode]             unalias [-a] name [name ...]
 unset [-f] [-v] [name ...]         until COMMANDS; do COMMANDS; done
 variables - Some variable names an wait [n]
 while COMMANDS; do COMMANDS; done  { COMMANDS ; }
10:21:49
#echo 192.168.15.{1..16}
192.168.15.1 192.168.15.2 192.168.15.3 192.168.15.4 192.168.15.5 192.168.15.6 192.168.15.7 192.168.15.8 192.168.15.9 192.168.15.10 192.168.15.11 192.168.15.12 192.168.15.13 192.168.15.14 192.168.15.15 192.168.15.16
10:23:59
#for i in 192.168.15.{1..16}
> do
> ping -c 1 $i >& /dev/null && echo OK || echo FAIL
> done
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
10:25:38
#echo 192.168.15.{1..16}

10:25:38
#echo 192.168.15.{1..16}

/dev/pts/36
10:32:41
#screen -x
/dev/pts/18
10:33:19
#ping -c 1 192.168.15.1 ; echo $?
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_seq=1 ttl=63 time=0.372 ms
--- 192.168.15.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.372/0.372/0.372/0.000 ms
0
10:33:28
#ping -c 1 192.168.15.1 >& /dev/null ; echo $?
0
10:33:41
#ping -c 1 192.168.15.31 >& /dev/null ; echo $?
1
10:33:59
#ping -c 1 192.168.15.31 >& /dev/null

10:34:50
#ping -c 1 192.168.15.1 >& /dev/null

10:38:02
#mkdir -p a/b/c/d/e

10:38:11
#tree a
a
`-- b
    `-- c
        `-- d
            `-- e
4 directories, 0 files
10:38:13
#rm -rf a

10:38:21
#mkdir -p a/{1,2,3}

10:38:28
#rm -rf a

10:38:29
#mkdir -p a/{1,2,3}

10:38:30
#!t
tree a
a
|-- 1
|-- 2
`-- 3
3 directories, 0 files
10:38:32
#!r
rm -rf a
10:39:04
#mkdir -p a/{1/{x,y,z},2/{X,Y,Z},3}

10:39:19
#tree a
a
|-- 1
|   |-- x
|   |-- y
|   `-- z
|-- 2
|   |-- X
|   |-- Y
|   `-- Z
`-- 3
9 directories, 0 files
10:39:21
#ping -c 1 192.168.15.1 ; echo $?

10:39:21
#ping -c 1 192.168.15.1 ; echo $?
                  mkdir -p a/{b/B{1..3},c/,d/200{1..9}}
прошло 20 минут
10:59:50
#tree
.
|-- My Documents
|   `-- my doc
|-- a
|   |-- 1
|   |   |-- x
|   |   |-- y
|   |   `-- z
|   |-- 2
|   |   |-- X
...
|       `-- 2009
|-- a.txt
|-- a2.txt
|-- aa.txt
|-- b.txt
|-- c.txt
`-- dir
    |-- a.txt
    `-- a2.txt
27 directories, 8 files
11:02:34
#mkdir `date
> `
11:02:48
#mkdir `date
                            e`
mkdir: невозможно создать каталог `Вто': Файл существует
mkdir: невозможно создать каталог `Май': Файл существует
mkdir: невозможно создать каталог `26': Файл существует
mkdir: невозможно создать каталог `UTC': Файл существует
mkdir: невозможно создать каталог `2009': Файл существует
11:02:55
#ls
08:02:48  2009  a       aa.txt  b.txt  dir           UTC  Май
08:02:55  26    a2.txt  a.txt   c.txt  My Documents  Вто
11:03:00
#ls -l
итого 40
drwxr-xr-x 2 root root 4096 Май 26 08:02 08:02:48
drwxr-xr-x 2 root root 4096 Май 26 08:02 08:02:55
drwxr-xr-x 2 root root 4096 Май 26 08:02 2009
drwxr-xr-x 2 root root 4096 Май 26 08:02 26
drwxr-xr-x 8 root root 4096 Май 26 07:59 a
-rw-r--r-- 1 root root    0 Май 26 06:56 a2.txt
-rw-r--r-- 1 root root    0 Май 26 07:06 aa.txt
-rw-r--r-- 1 root root    0 Май 26 06:56 a.txt
-rw-r--r-- 1 root root    0 Май 26 06:57 b.txt
-rw-r--r-- 1 root root    0 Май 26 07:07 c.txt
drwxr-xr-x 2 root root 4096 Май 26 06:57 dir
drwxr-xr-x 2 root root 4096 Май 26 07:12 My Documents
drwxr-xr-x 2 root root 4096 Май 26 08:02 UTC
drwxr-xr-x 2 root root 4096 Май 26 08:02 Вто
drwxr-xr-x 2 root root 4096 Май 26 08:02 Май
11:03:02
#rm -rf *

11:03:12
#mkdir `date
`date
11:03:12
#mkdir `date`

11:03:25
#ls -l
итого 24
drwxr-xr-x 2 root root 4096 Май 26 08:03 08:03:25
drwxr-xr-x 2 root root 4096 Май 26 08:03 2009
drwxr-xr-x 2 root root 4096 Май 26 08:03 26
drwxr-xr-x 2 root root 4096 Май 26 08:03 UTC
drwxr-xr-x 2 root root 4096 Май 26 08:03 Вто
drwxr-xr-x 2 root root 4096 Май 26 08:03 Май
11:03:27
#date
Вто Май 26 08:03:32 UTC 2009
11:03:32
#mkdir "`date`"

11:04:00
#ls -l
итого 28
drwxr-xr-x 2 root root 4096 Май 26 08:03 08:03:25
drwxr-xr-x 2 root root 4096 Май 26 08:03 2009
drwxr-xr-x 2 root root 4096 Май 26 08:03 26
drwxr-xr-x 2 root root 4096 Май 26 08:03 UTC
drwxr-xr-x 2 root root 4096 Май 26 08:03 Вто
drwxr-xr-x 2 root root 4096 Май 26 08:04 Вто Май 26 08:04:00 UTC 2009
drwxr-xr-x 2 root root 4096 Май 26 08:03 Май
11:04:07
#mkdir '`date`'

11:04:44
#ls -l
итого 32
drwxr-xr-x 2 root root 4096 Май 26 08:03 08:03:25
drwxr-xr-x 2 root root 4096 Май 26 08:03 2009
drwxr-xr-x 2 root root 4096 Май 26 08:03 26
drwxr-xr-x 2 root root 4096 Май 26 08:04 `date`
drwxr-xr-x 2 root root 4096 Май 26 08:03 UTC
drwxr-xr-x 2 root root 4096 Май 26 08:03 Вто
drwxr-xr-x 2 root root 4096 Май 26 08:04 Вто Май 26 08:04:00 UTC 2009
drwxr-xr-x 2 root root 4096 Май 26 08:03 Май
11:04:46
#date +%Y
2009
11:07:44
#date +%Y-%M
2009-07
11:07:46
#date +%Y-%M-%D
2009-07-05/26/09
11:07:49
#date +%Y-%M-%d
2009-07-26
11:07:50
#date +%Y-%M-%d
2009-08-26
11:08:02
#date +%Y-%m-%d
2009-05-26

Файлы

  • &
  • &
    >
    [1] 15590
    

    Статистика

    Время первой команды журнала09:57:14 2009- 5-26
    Время последней команды журнала11:08:02 2009- 5-26
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, % 7.92
    Процент синтаксически неверно набранных команд, % 0.99
    Суммарное время работы с терминалом *, час 1.18
    Количество командных строк в единицу времени, команда/мин 1.43
    Частота использования команд
    echo33|=========================| 25.58%
    ls13|==========| 10.08%
    wc12|=========| 9.30%
    mkdir11|========| 8.53%
    ping7|=====| 5.43%
    date7|=====| 5.43%
    null6|====| 4.65%
    &4|===| 3.10%
    cp4|===| 3.10%
    help4|===| 3.10%
    touch3|==| 2.33%
    screen3|==| 2.33%
    rm3|==| 2.33%
    kill3|==| 2.33%
    tree3|==| 2.33%
    man2|=| 1.55%
    cat2|=| 1.55%
    mv2|=| 1.55%
    !r1|| 0.78%
    for1|| 0.78%
    less1|| 0.78%
    hlp1|| 0.78%
    jobs1|| 0.78%
    which1|| 0.78%
    !t1|| 0.78%
    ____
    *) Интервалы неактивности длительностью 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$