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

Содержание

Журнал

Среда (10/17/18)

/dev/pts/6
14:12:15
$cd

14:12:24
$cp /etc/passwd .

14:12:36
$sed 's/:/ /g' 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
...
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
libuuid x 100 101  /var/lib/libuuid /bin/sh
Debian-exim x 101 103  /var/spool/exim4 /bin/false
user x 1000 1000 user,,, /home/user /bin/bash
sshd x 102 65534  /var/run/sshd /usr/sbin/nologin
ivan x 1001 1001  /home/ivan /bin/bash
petr x 1002 1002  /home/petr /bin/bash
14:12:57
$sed 's/:.*//' passwd
root
daemon
bin
sys
sync
games
man
lp
mail
news
...
list
irc
gnats
nobody
libuuid
Debian-exim
user
sshd
ivan
petr
14:13:33
$sed 's/[^a]//g' passwd | wc -c
71
14:14:17
$for i in *\*
> do
> mv "$i" "'echo $i | sed 's/ /_/g' '"
> done
mv: cannot stat `**': No such file or directory
14:16:16
$for i in *\ *; do mv "$i" "'echo $i | sed 's/ /_/g' '"; done
mv: cannot move `lpi 1' to `\'echo lpi 1 | sed \'s/ /_/g\' \'': No such file or directory
mv: cannot move `lpi 2' to `\'echo lpi 2 | sed \'s/ /_/g\' \'': No such file or directory
14:17:01
$for i in *\ *; do mv "$i" "`echo $i | sed 's/ /_/g' `"; done

14:18:24
$iconv -f CP1251 -t KOI8-R
бÐНОПНЯ
^D
^C
14:19:53
$cat passwd | tr -d '\n'

14:21:00
$cat passwd | tr -cd 'a' | wc -c
47
14:23:48
$for i in *
> do
> mv "$i" "`echo $i | tr '[:lower:]' '[:upper:]'~"
> done
> for i in *; do mv "$i" "`echo $i | tr '[:lower:]' '[:upper:]'~"
> for i in *; do mv "$i" "`echo $i | tr '[:lower:]' '[:upper:]'~"
dodo
> mv "$i" "`echo $i | tr '[:lower:]' '[:upper:]'`"
> done
> done
> ^C
14:26:19
$for i in *; do mv "$i" "`echo $i | tr '[:lower:]' '[:upper:]'~"
done
for i in *
do
> do
> mv "$i" "`echo $i | tr '[:lower:]' '[:upper:]'`"
> done
14:26:43
$ls
BIGFILE      LIGHT_ALLOY_4.4.784_RC2_BY_FAFNIR.EXE  MATRIX.JPG    PASSWD                         TEXT
BIN          LPI_1                                  NAMES         PRESS_ANY_KEY_TO_CONTINUE.JPG  TOUCHLIST
FREEBSD.JPG  LPI_2                                  OGO.JPG       PROJ
GRANATA.JPG  MAN_SMB_CONF                           PAMYATKA.PDF  SH
14:27:04
$for i in *; do mv "$i" "`echo $i | tr '[:upper:]' '[:lower:]'`"; done

14:27:25
$ps -aux
warning: bad ps syntax, perhaps a bogus '-'?
See http://gitorious.org/procps/procps/blobs/master/Documentation/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  10648   836 ?        Ss   Oct14   0:04 init [2]
root         2  0.0  0.0      0     0 ?        S    Oct14   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Oct14   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Oct14   0:00 [kworker/u:0]
root         6  0.0  0.0      0     0 ?        S    Oct14   0:00 [migration/0]
root         7  0.0  0.0      0     0 ?        S    Oct14   0:02 [watchdog/0]
root         8  0.0  0.0      0     0 ?        S<   Oct14   0:00 [cpuset]
...
root      6541  0.0  0.7  71288  3608 ?        Ss   14:48   0:00 sshd: ivan [priv]
ivan      6634  0.0  0.3  71288  1748 ?        S    14:48   0:00 sshd: ivan@pts/9
ivan      6635  0.0  0.6  22584  3192 pts/9    Ss+  14:48   0:00 -bash
root      6716  0.0  0.7  71380  3716 ?        Ss   14:48   0:00 sshd: petr [priv]
petr      6804  0.0  0.3  71380  1860 ?        S    14:48   0:00 sshd: petr@pts/11
petr      6805  0.0  0.6  22584  3196 pts/11   Ss+  14:48   0:00 -bash
user      6995  0.0  0.1  18164   840 pts/6    S+   15:12   0:00 script -f -c l3script -q /home/user/.lilalo//222189
user      7066  0.0  0.0  18168   468 pts/6    S+   15:12   0:00 script -f -c l3script -q /home/user/.lilalo//222189
user      7067  0.0  0.5  22240  3036 pts/13   Ss   15:12   0:00 l3script
user      7453  0.0  0.2  18948  1272 pts/13   R+   15:28   0:00 ps -aux
14:28:18
$ps -aux | awk '{print $2;}'
warning: bad ps syntax, perhaps a bogus '-'?
See http://gitorious.org/procps/procps/blobs/master/Documentation/FAQ
PID
1
2
3
5
6
7
8
...
6634
6635
6716
6804
6805
6995
7066
7067
7461
7462
14:28:45
$cat passwd | awk -F: '{ if ($3>999) print; }'
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
user:x:1000:1000:user,,,:/home/user:/bin/bash
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
14:29:35
$echo $PATH | awk -F: '{for (n=1;n<=NF;n++) print $n;}'
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
14:30:48
$echo $PATH | awk -F: '{for (n=1;n<=NF;n++) print $n; }' | xargs ls
/bin:
bash     df             fuser     lessfile  more            open      run-parts   tar            zcmp
busybox  dir            grep      lesskey   mount           openvt    sed         tempfile       zdiff
cat      dmesg          gunzip    lesspipe  mountpoint      pidof     setfont     touch          zegrep
chgrp    dnsdomainname  gzexe     ln        mt              ping      setupcon    true           zfgrep
chmod    domainname     gzip      loadkeys  mt-gnu          ping6     sh          umount         zforce
chown    dumpkeys       hostname  login     mv              ps        sh.distrib  uname          zgrep
chvt     echo           ip        ls        nano            pwd       sleep       uncompress     zless
cp       egrep          kbd_mode  lsblk     nc              rbash     ss          unicode_start  zmore
cpio     false          kill      lsmod     nc.traditional  readlink  stty        vdir           znew
...
gcc                           man                   setarch           xzless
gcc-4.7                       mandb                 setkeycodes       xzmore
gcc-ar                        manpath               setleds           yes
gcc-ar-4.7                    mapscrn               setlogcons        zdump
gcc-nm                        mawk                  setmetamode       zsoelim
gcc-nm-4.7                    mcookie               setpci
/usr/games:
/usr/local/bin:
l3-agent  l3-config  l3script
/usr/local/games:

Статистика

Время первой команды журнала14:12:15 2018-10-17
Время последней команды журнала14:30:48 2018-10-17
Количество командных строк в журнале20
Процент команд с ненулевым кодом завершения, % 5.00
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.31
Количество командных строк в единицу времени, команда/мин 1.08
Частота использования команд
for6|===========| 11.76%
sed5|=========| 9.80%
awk4|=======| 7.84%
}'4|=======| 7.84%
do4|=======| 7.84%
tr4|=======| 7.84%
cat3|=====| 5.88%
done3|=====| 5.88%
ps2|===| 3.92%
n<2|===| 3.92%
n++)2|===| 3.92%
echo2|===| 3.92%
wc2|===| 3.92%
=NF2|===| 3.92%
cp1|=| 1.96%
xargs1|=| 1.96%
cd1|=| 1.96%
ls1|=| 1.96%
999)1|=| 1.96%
iconv1|=| 1.96%
____
*) Интервалы неактивности длительностью 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$