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

Содержание

Журнал

Вторник (11/28/17)

/dev/pts/2
13:07:36
$ls a*
alloca.H
acpi:
events  powerbtn-acpi-support.sh
13:07:39
$ls *.[cChH]
alloca.H  core.c  fcntl.h  isdn_ttyfax.c  Regexp.H  term.h
13:08:04
$ls *BSD*
ls: невозможно получить доступ к *BSD*: Нет такого файла или каталога
13:08:19
$ls *linux*
ls: невозможно получить доступ к *linux*: Нет такого файла или каталога
13:08:24
$ls *LINUX*
ls: невозможно получить доступ к *LINUX*: Нет такого файла или каталога
13:08:30
$ls *Linux*
ls: невозможно получить доступ к *Linux*: Нет такого файла или каталога
13:08:35
$ls
_1_2_3     acpi      __asterisk  bjen  core.c   -file1  -hello   isdn_ttyfax.c  modules  Regexp.H  term.h
1cdesktop  alloca.H  bjan        bjon  fcntl.h  group   _hrypun  _kik_my        passwd   s_tol_
13:08:37
$ls *or*
core.c
13:09:08
$ls j?n
ls: невозможно получить доступ к j?n: Нет такого файла или каталога
13:09:15
$ls *j?n
bjan  bjen  bjon
13:09:25
$ls -- -*
-file1  -hello
13:09:52
$ls --
_1_2_3     acpi      __asterisk  bjen  core.c   -file1  -hello   isdn_ttyfax.c  modules  Regexp.H  term.h
1cdesktop  alloca.H  bjan        bjon  fcntl.h  group   _hrypun  _kik_my        passwd   s_tol_
13:10:18
$ls -*
ls: неверный ключ -- e
Попробуйте «ls --help» для получения более подробного описания.
13:10:24
$ls ./-*
./-file1  ./-hello
13:10:48
$ls -- -*
-file1  -hello
13:11:55
$ls *\**\?
ls: невозможно получить доступ к ***?: Нет такого файла или каталога
13:12:39
$ls *'*'*'?'*
ls: невозможно получить доступ к ***?*: Нет такого файла или каталога
13:13:07
$ls *[*]*[?]
ls: невозможно получить доступ к *[*]*[?]: Нет такого файла или каталога
13:13:39
$ls *[*]*[?]*
ls: невозможно получить доступ к *[*]*[?]*: Нет такого файла или каталога
13:13:43
$ls *\[cde]
ls: невозможно получить доступ к *[cde]: Нет такого файла или каталога
13:14:52
$ls *\[ell]
ls: невозможно получить доступ к *[ell]: Нет такого файла или каталога
13:15:01
$ls *\[ryp]
ls: невозможно получить доступ к *[ryp]: Нет такого файла или каталога
13:15:09
$ls *'['ryp]
ls: невозможно получить доступ к *[ryp]: Нет такого файла или каталога
13:15:49
$ls *\[ryp]*
ls: невозможно получить доступ к *[ryp]*: Нет такого файла или каталога
13:15:54
$ls *\[cnt]*
ls: невозможно получить доступ к *[cnt]*: Нет такого файла или каталога
13:16:13
$ls *'['cnt]*
ls: невозможно получить доступ к *[cnt]*: Нет такого файла или каталога
13:16:40
$ls *[[]cnt]*
ls: невозможно получить доступ к *[[]cnt]*: Нет такого файла или каталога
13:16:51
$ls =a
ls: невозможно получить доступ к =a: Нет такого файла или каталога
13:17:35
$ls -a
.   _1_2_3     acpi      __asterisk  ._bash   bjan  bjon    fcntl.h  group   _hrypun        .j_bash  modules  .passwd   s_tol_
..  1cdesktop  alloca.H  .bash       .._bash  bjen  core.c  -file1   -hello  isdn_ttyfax.c  _kik_my  passwd   Regexp.H  term.h
13:17:37
$ls .[^.]*
.bash  ._bash  .j_bash  .passwd
13:17:50
$ls [^.]*
ls: неверный ключ -- e
Попробуйте «ls --help» для получения более подробного описания.
13:18:08
$ls ..?*
.._bash
13:18:22
$ls *cde*
1cdesktop
13:18:44
$ls *\[cde]*
ls: невозможно получить доступ к *[cde]*: Нет такого файла или каталога
13:18:58
$touch ab[cde]fg

13:20:34
$ls *\[cde]*
ab[cde]fg
13:20:36
$touch ab*cde?fg

13:21:11
$ls *'['cde]*
ab[cde]fg
13:21:21
$ls *[[]cde]*
ab[cde]fg
13:21:29
$ls *\**\?*
ls: невозможно получить доступ к ***?*: Нет такого файла или каталога
13:21:48
$ls *\**\?*
ls: невозможно получить доступ к ***?*: Нет такого файла или каталога
13:22:21
$ls *'*'*'?'*
ls: невозможно получить доступ к ***?*: Нет такого файла или каталога
13:22:33
$ls
_1_2_3     ab[cde]fg  alloca.H    bjan  bjon    fcntl.h  group   _hrypun        _kik_my  passwd    s_tol_
1cdesktop  acpi       __asterisk  bjen  core.c  -file1   -hello  isdn_ttyfax.c  modules  Regexp.H  term.h
13:22:40
$touch ab\*cde\?fg

13:23:02
$ls
_1_2_3     ab[cde]fg  acpi      __asterisk  bjen  core.c   -file1  -hello   isdn_ttyfax.c  modules  Regexp.H  term.h
1cdesktop  ab*cde?fg  alloca.H  bjan        bjon  fcntl.h  group   _hrypun  _kik_my        passwd   s_tol_
13:23:03
$ls *'*'*'?'*
ab*cde?fg
13:23:39
$ls *[*]*[?]*
ab*cde?fg
13:23:53
$ls .[^.]*
.bash  ._bash  .j_bash  .passwd
13:24:33
$ls .[!.]*
.bash  ._bash  .j_bash  .passwd
13:25:47
$touch "o'Raeilly"

13:27:09
$ls
_1_2_3     ab[cde]fg  acpi      __asterisk  bjen  core.c   -file1  -hello   isdn_ttyfax.c  modules    passwd    s_tol_
1cdesktop  ab*cde?fg  alloca.H  bjan        bjon  fcntl.h  group   _hrypun  _kik_my        o'Raeilly  Regexp.H  term.h
13:27:12
$touch 'A:\WINDOWS\SYSTEM32'

13:27:36
$touch A:\\WINDOWS\\SYSTEM32

13:28:02
$touch "Queen \"Live at Wembley '86\""

13:29:13
$echo *
_1_2_3 1cdesktop ab[cde]fg ab*cde?fg acpi alloca.H __asterisk A:\WINDOWS\SYSTEM32 bjan bjen bjon core.c fcntl.h -file1 group -hello _hrypun isdn_ttyfax.c _kik_my modules o'Raeilly passwd Queen "Live at Wembley '86" Regexp.H s_tol_ term.h
13:29:33
$ls -- -bad-name-
ls: невозможно получить доступ к -bad-name-: Нет такого файла или каталога
13:30:00
$touch \-bad\-name\-
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:30:18
$ls -- -bad-name-
ls: невозможно получить доступ к -bad-name-: Нет такого файла или каталога
13:30:18
$ls
_1_2_3     ab[cde]fg  acpi      __asterisk           bjan  bjon    fcntl.h  group   _hrypun        _kik_my  o'Raeilly  Queen "Live at Wembley '86"  s_tol_
1cdesktop  ab*cde?fg  alloca.H  A:\WINDOWS\SYSTEM32  bjen  core.c  -file1   -hello  isdn_ttyfax.c  modules  passwd     Regexp.H                     term.h
13:30:21
$touch '-bad-name-'
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:30:45
$touch "-bad-name-"
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:30:52
$touch \-bad-name-
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:31:11
$touch "-bad-name-"
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:31:41
$touch "\-bad-name-"

13:31:46
$ls
_1_2_3     ab*cde?fg  __asterisk           bjan  core.c   group    isdn_ttyfax.c  o'Raeilly                    Regexp.H
1cdesktop  acpi       A:\WINDOWS\SYSTEM32  bjen  fcntl.h  -hello   _kik_my        passwd                       s_tol_
ab[cde]fg  alloca.H   \-bad-name-          bjon  -file1   _hrypun  modules        Queen "Live at Wembley '86"  term.h
13:31:50
$touch "-bad-name-"
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:31:57
$touch '-bad-name-'
touch: неверный ключ -- b
Попробуйте «touch --help» для получения более подробного описания.
13:32:02
$touch [-]bad-name-

13:32:23
$ls
_1_2_3     ab*cde?fg  __asterisk           \-bad-name-  bjon     -file1  _hrypun        modules    Queen "Live at Wembley '86"  term.h
1cdesktop  acpi       A:\WINDOWS\SYSTEM32  bjan         core.c   group   isdn_ttyfax.c  o'Raeilly  Regexp.H
ab[cde]fg  alloca.H   [-]bad-name-         bjen         fcntl.h  -hello  _kik_my        passwd     s_tol_
13:32:26
$mv \[-\]bad-name- \-bad-name-
mv: неверный ключ -- a
Попробуйте «mv --help» для получения более подробного описания.
13:33:20
$mv \[-\]bad-name- \-bad\-name\-
mv: неверный ключ -- a
Попробуйте «mv --help» для получения более подробного описания.
13:33:39
$ls
_1_2_3     ab*cde?fg  __asterisk           [-]bad-name-  bjen    fcntl.h  -hello         _kik_my    passwd                       s_tol_
1cdesktop  acpi       A:\WINDOWS\SYSTEM32  \-bad-name-   bjon    -file1   _hrypun        modules    Queen "Live at Wembley '86"  term.h
ab[cde]fg  alloca.H   -bad-name-           bjan          core.c  group    isdn_ttyfax.c  o'Raeilly  Regexp.H
13:33:41
$cd

13:35:31
$ls
backup   file         Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  man_smb_conf  ogo.jpg                        proj    test
bigfile  freebsd.jpg  lpi 1                                  matrix.jpg    pamyatka.pdf                   sh      text
bin      granata.jpg  lpi 2                                  names         press_any_key_to_continue.jpg  source  touchlist
13:35:33
$touch `< ~/touchlist`

13:35:52
$ls
aba  backup      directory2  file2        killall                                man_smb_conf  pamyatka.pdf                   source
abb  bigfile     directory3  file3        Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  matrix.jpg    press_any_key_to_continue.jpg  test
abc  bin         file        freebsd.jpg  lpi 1                                  names         proj                           text
abd  directory1  file1       granata.jpg  lpi 2                                  ogo.jpg       sh                             touchlist
13:35:54
$echo "Today is `date +%Y` year"
Today is 2017 year
13:36:49
$echo "Tomorow weel be $(`date +%Y` + 1) year"
l3script: 2017: команда не найдена
Tomorow weel be  year
13:37:22
$echo "Tomorow weel be $(expr `date +%Y` + 1) year"
Tomorow weel be 2018 year
13:37:38
$rm -f `find ~ -name core`

13:38:09
$find ~ -name core -exec rm -f {} \;

13:38:31
$echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
13:39:04
$echo HHHHHHHHHHHH${PATH}HHHHHHHHHHHH
HHHHHHHHHHHH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesHHHHHHHHHHHH
13:39:28
$echo HHHHHHHHHHHH$PATHHHHHHHHHHHHH
HHHHHHHHHHHH
13:39:36
$echo HHHHHHHHHHHH${PATH}HHHHHHHHHHHH
HHHHHHHHHHHH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesHHHHHHHHHHHH
13:39:39
$echo $[(1+2+3)*4*5+1]
121
13:40:15
$echo $(((1+2+3)*4*5+1))
121
13:40:25
$echo $[1/2]
0
13:40:39
$echo $[1/2*4]
0
13:40:48
$echo $[4*1/2]
2
13:40:58
$A=1

13:41:09
$B=2

13:41:11
$echo $[A+B]
3
13:41:20
$echo $[A+$B]
3
13:41:26
$cat /etc/passwd > newfile

13:41:57
$less newfile
13:42:05
$sort < /etc/passwd
backup:x:34:34:backup:/var/backups:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
games:x:5:60:games:/usr/games:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
ivan:x:1001:1001::/home/ivan:/bin/bash
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
...
news:x:9:9:news:/var/spool/news:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
root:x:0:0:root:/root:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
sys:x:3:3:sys:/dev:/bin/sh
user:x:1000:1000:user,,,:/home/user:/bin/bash
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
13:42:33
$mv /etc/passwd /tmp/
mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе
13:42:52
$mv /etc/passwd /tmp/ 2> errlog

13:43:01
$cat errlog
mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе
13:43:05
$mv /etc/passwd /tmp/ 2> /dev/null

Файлы

  • errlog
  • newfile
  • errlog
    >
    mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе
    
    newfile
    >

    Статистика

    Время первой команды журнала13:07:36 2017-11-28
    Время последней команды журнала13:43:05 2017-11-28
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %36.63
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 0.59
    Количество командных строк в единицу времени, команда/мин 2.85
    Частота использования команд
    ls55|===================================================| 51.89%
    touch17|================| 16.04%
    echo15|==============| 14.15%
    mv5|====| 4.72%
    cat2|=| 1.89%
    sort1|| 0.94%
    null1|| 0.94%
    errlog1|| 0.94%
    newfile1|| 0.94%
    rm1|| 0.94%
    cd1|| 0.94%
    B=21|| 0.94%
    less1|| 0.94%
    /etc/passwd1|| 0.94%
    find1|| 0.94%
    touchlist`1|| 0.94%
    A=11|| 0.94%
    ____
    *) Интервалы неактивности длительностью 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$