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

Содержание

Журнал

Среда (09/06/17)

/dev/pts/2
15:13:59
#ls -l /etc/shadow
-rw-r----- 1 root shadow 1029 Сен  4 10:30 /etc/shadow
15:14:16
#^C

15:14:47
#усрщecho $EUID
0
15:18:04
#^C

15:18:30
#test -w /etc/passwd || \
> > echo 'NO!'
15:22:50
#echo $?
0
15:23:02
#for file in /etc/*
> do
> [ -r $file ] || echo $file
> done
15:28:14
#for file in /etc/*; do [ -r $file ] || echo $file; done^C

15:28:36
#echo 'Command?'; \
> select command in man touch mount make exit clear
> do
> whatis $command
> break
> done
Command?
1) man
2) touch
3) mount
4) make
5) exit
6) clear
#? man
whatis что?
15:30:46
#echo 'Command?'; select command in man touch mount make exit clear; do whatis $command; break; done
Command?
1) man
2) touch
3) mount
4) make
5) exit
6) clear
#? 1
man (1)              - доступ к справочным страницам
man (7)              - macros to format man pages
15:31:51
#whatis
whatis что?
15:32:13
#test help

15:35:44
#help test
test: test [expr]
    Evaluate conditional expression.
    Exits with a status of 0 (true) or 1 (false) depending on
    the evaluation of EXPR.  Expressions may be unary or binary.  Unary
    expressions are often used to examine the status of a file.  There
    are string operators and numeric comparison operators as well.
    The behavior of test depends on the number of arguments.  Read the
    bash manual page for the complete specification.
    File operators:
      -a FILE        True if file exists.
...
      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                     -lt, -le, -gt, or -ge.
    Arithmetic binary operators return true if ARG1 is equal, not-equal,
    less-than, less-than-or-equal, greater-than, or greater-than-or-equal
    than ARG2.
    See the bash manual page bash(1) for the handling of parameters (i.e.
    missing parameters).
    Exit Status:
    Returns success if EXPR evaluates to true; fails if EXPR evaluates to
    false or an invalid argument is given.
15:35:54
#test $2

15:44:13
#echo $?
1
15:44:18
#$2=1
l3script: =1: команда не найдена
15:44:28
#2=1
l3script: 2=1: команда не найдена
/dev/pts/2
15:45:32
#vi sc1.sh
--- /dev/null	2017-09-01 14:49:41.740000003 +0300
+++ sc1.sh	2017-09-06 16:47:10.823195231 +0300
@@ -0,0 +1,2 @@
+#!/bin/bash
+
15:47:10
#vi sc1.sh
15:48:04
#~ fu:{)
  2  if [ -z "$1" ]
  3  then
  4    echo "No parameter."
  5    return 0
  7  else
  8    echo "Param #1 is $1."
  9  fi
 10  if [ "$2"]
 11    then
 12    echo "Param #2 is $2."
...
~
~
~
~
~
~
~
~
~
"sc1.sh" 14L, 173C записано
15:53:12
#chmod u+x sc1.sh

15:53:35
#./sc1.sh

15:53:40
#vi sc1.sh
--- /tmp/l3-saved-23791.8743.17518	2017-09-06 16:53:51.475200447 +0300
+++ sc1.sh	2017-09-06 16:54:36.331206618 +0300
@@ -11,4 +11,5 @@
    then
    echo "Param #2 is $2."
  fi
- }   
+ }
+func   
15:54:36
#./sc1.sh
No parameter.
15:54:38
#vi sc1.sh
--- /tmp/l3-saved-23791.12957.26187	2017-09-06 16:54:50.199187744 +0300
+++ sc1.sh	2017-09-06 17:09:05.843195614 +0300
@@ -12,4 +12,4 @@
    echo "Param #2 is $2."
  fi
  }
-func   
+func A  B
прошло 14 минут
16:09:05
#./sc1.sh
Param #1 is A.
./sc1.sh: line 10: [: пропущен `]'
16:09:08
#vi sc1.sh
--- /tmp/l3-saved-23791.26670.11782	2017-09-06 17:09:23.355125242 +0300
+++ sc1.sh	2017-09-06 17:09:57.359183563 +0300
@@ -7,7 +7,7 @@
  else 
    echo "Param #1 is $1."
  fi
- if [ "$2"]
+ if [ "$2" ]
    then
    echo "Param #2 is $2."
  fi
16:09:57
#./sc1.sh
Param #1 is A.
Param #2 is B.
16:09:59
#func
l3script: func: команда не найдена

Четверг (09/07/17)

/dev/pts/2
08:06:07
#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
...
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
08:07:04
#срchfn
Изменение информации о пользователе root
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
        Полное имя [root]: ^C
прошло 16 минут
08:23:32
#chfn ivan
Изменение информации о пользователе ivan
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
        Полное имя []: Ivan Ivanov
        Номер комнаты []: 9D
        Рабочий телефон []: 111
        Домашний телефон []: 111-11-11
        Другое []:
08:25:07
#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
...
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:Ivan Ivanov,9D,111,111-11-11:/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
08:25:15
#finger ivan
Login: ivan                             Name: Ivan Ivanov
Directory: /home/ivan                   Shell: /bin/bash
Office: 9D, 111                         Home Phone: 111-11-11
Last login Tue Sep  5 10:10 (EEST) on pts/4 from 192.168.16.176
No mail.
No Plan.
08:27:41
#vi /etc/default/useradd
--- /tmp/l3-saved-24278.15749.29161	2017-09-07 09:31:40.467180091 +0300
+++ /etc/default/useradd	2017-09-07 09:34:03.091196609 +0300
@@ -5,7 +5,7 @@
 # Similar to DHSELL in adduser. However, we use "sh" here because
 # useradd is a low level utility and should be as general
 # as possible
-SHELL=/bin/sh
+SHELL=/bin/bash
 #
 # The default group for users
 # 100=users on Debian systems
08:34:03
#vi /etc/login.defs
08:37:37
#vi /etc/shadow
08:44:00
#~
Последний раз пароль был изменён                                    : Сен 04, 2017
Срок действия пароля истекает                                 : никогда
Пароль будет деактивирован через                                   : никогда
Срок действия учётной записи истекает                                          : никогда
Минимальное количество дней между сменой пароля               : 0
Максимальное количество дней между сменой пароля             : 99999
Количество дней с предупреждением перед деактивацией пароля        : 7
08:44:10
#cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
...
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
Debian-exim:x:103:
ssh:x:104:
user:x:1000:
ivan:x:1001:
petr:x:1002:
08:52:04
#groupadd --help
Использование: groupadd [параметры] ГРУППА
Параметры:
  -f, --force                   закончить работу без ошибки, если группа
                                существует и отменить -g, если GID уже
                                используется
  -g, --gid GID                 для новой группы использовать указанный GID
  -h, --help                    показать данное сообщение и закончить работу
  -K, --key Ко умолчанию
                                из /etc/login.defs
  -o, --non-unique              разрешить создание групп с повторяющимся
                                (не уникальным) GID
  -p, --password ПАРОÐй пароль для
                                новой группы
  -r, --system                  создать системную учётную запись
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
08:55:09
#groupadd -g 10000 developers

08:55:28
#gpasswd --help
Использование: gpasswd [параметр] ГРУППА
Параметры:
  -a, --add ПОГРУППУ
  -d, --delete ПОÐУППЫ
  -h, --help                    показать данное сообщение и закончить работу
  -Q, --root КАТ_CHROOT         каталог, который выполняется chroot
  -r, --remove-password         удалить пароль ГРУППЫ
  -R, --restrict                ограничить доступ в ГРУППУ её членами
  -M, --members ПОПЫ
  -A, --administrators АДМИН,…
                                задать список администраторов ГРУППЫ
За исключением параметров -A и -M, остальные не могут указываться
одновременно.
08:57:05
#gpasswd -a ivan developers
Добавление пользователя ivan в группу developers
08:58:30
#cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
...
users:x:100:
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
Debian-exim:x:103:
ssh:x:104:
user:x:1000:
ivan:x:1001:
petr:x:1002:
developers:x:10000:ivan
08:58:51
#usermod
Использование: usermod [параметры] ПОÐ
, --comment КОММЕНТАРИЙ     новое значение поля GECOS
  -d, --home ДОМ_КАТ            новый домашний каталог учётной записи
  -e, --expiredate ДАТА_УСТ     установить дату окончания действия
                                учётной записи в ДАТА_УСТ
  -f, --inactive НЕАКТИВНОСТЬ   установить период неактивности пароля после
                                устаревания учётной записи равным НЕАКТИВНОСТЬ
  -g, --gid ГРУППА              принудительно назначить первичную ГРУППУ
  -G, --groups ГРУППЫ           список дополнительных ГРУПП
  -a, --append                  добавить пользователя в дополнительные
...
                                имеющимся (не уникальным) UID
  -p, --password ПАРОоль для
                                учётной записи
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОолочка для учётной
                                записи
  -u, --uid UID                 новый UID для учётной записи
  -U, --unlock                  разблокировать учётную запись
  -Z, --selinux-user SEUSER     новое пользовательское сопоставление
                                SELinux для учётной записи
08:59:59
#usermod -G developers petr

09:00:34
#cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
...
users:x:100:
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
Debian-exim:x:103:
ssh:x:104:
user:x:1000:
ivan:x:1001:
petr:x:1002:
developers:x:10000:ivan,petr
09:01:01
#id ivan
uid=1001(ivan) gid=1001(ivan) группы=1001(ivan),10000(developers)
09:01:19
#cat /etc/group | grep developers
developers:x:10000:ivan,petr
09:02:50
#cat /etc/group | cut -d: -f4
user
user
user
user
user
user
ivan,petr
09:04:52
#grep develo /etc/group | cut -d: -f4
ivan,petr
09:05:16
#grep develo /etc/group | cut -d: -f4 | tr ',' '\n'
ivan
petr
09:06:43
#mkdir /opt/public

прошло 56 минут
10:03:07
#chmod 777 /opt/public/

10:03:27
#chmod +t /opt/public/

10:05:46
#ls -l /opt/public/
итого 0
10:05:56
#ls -l /opt/
итого 4
drwxrwxrwt 2 root root 4096 Сен  7 11:03 public
10:06:12
#find / -perm -4000 2 > /dev/null
find: paths must precede expression: 2
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
10:15:19
#find / -perm -4000 2> /dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/pt_chown
/usr/lib/eject/dmcrypt-get-device
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/newgrp
/usr/sbin/exim4
/bin/mount
/bin/su
/bin/ping6
/bin/umount
/bin/ping
10:15:31
#find / -perm -4000 | xargs ls -l {} 2> /dev/null
find: `/proc/24998/task/24998/fd/5': Нет такого файла или каталога
find: `/proc/24998/task/24998/fdinfo/5': Нет такого файла или каталога
find: `/proc/24998/fd/5': Нет такого файла или каталога
find: `/proc/24998/fdinfo/5': Нет такого файла или каталога
-rwsr-xr-x 1 root root  94776 Дек 11  2012 /bin/mount
-rwsr-xr-x 1 root root  36136 Апр 12  2011 /bin/ping
-rwsr-xr-x 1 root root  36896 Апр 12  2011 /bin/ping6
-rwsr-xr-x 1 root root  36816 Май 26  2012 /bin/su
-rwsr-xr-x 1 root root  69080 Дек 11  2012 /bin/umount
-rwsr-xr-x 1 root root  46264 Май 26  2012 /usr/bin/chfn
-rwsr-xr-x 1 root root  41272 Май 26  2012 /usr/bin/chsh
-rwsr-xr-x 1 root root  68024 Май 26  2012 /usr/bin/gpasswd
-rwsr-xr-x 1 root root  36432 Май 26  2012 /usr/bin/newgrp
-rwsr-xr-x 1 root root  51096 Май 26  2012 /usr/bin/passwd
-rwsr-xr-x 1 root root  10168 Дек 24  2012 /usr/lib/eject/dmcrypt-get-device
-rwsr-xr-x 1 root root 245064 Июн 30  2014 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root root  10496 Авг 27  2014 /usr/lib/pt_chown
-rwsr-xr-x 1 root root 973824 Янв  2  2013 /usr/sbin/exim4
10:17:13
#find / -perm -1000 | xargs ls -l {} 2> /dev/null
find: `/proc/25008/task/25008/fd/5': Нет такого файла или каталога
find: `/proc/25008/task/25008/fdinfo/5': Нет такого файла или каталога
find: `/proc/25008/fd/5': Нет такого файла или каталога
find: `/proc/25008/fdinfo/5': Нет такого файла или каталога
crw------T 1 root root     10, 235 Сен  1 14:49 /dev/autofs
crw------T 1 root root     10, 234 Сен  1 14:49 /dev/btrfs-control
crw------T 1 root root     10, 184 Сен  1 14:49 /dev/cpu/microcode
crw------T 1 root root     10, 229 Сен  1 14:49 /dev/fuse
brw-rw---T 1 root disk      7,   0 Сен  1 14:49 /dev/loop0
brw-rw---T 1 root disk      7,   1 Сен  1 14:49 /dev/loop1
...
-rw-r--r-- 1 user user 8813 Сен  5 14:10 dirlist
drwxr-xr-x 2 user user 4096 Сен  5 13:58 etccopy
-rw-r--r-- 1 root root    0 Сен  6 11:08 kkufk ljkhgjytfiygl lgtyittyrduhouoy kuyf liyfiytfl gt uygt
-rw-r--r-- 1 user user 3392 Сен  5 10:12 l3-saved-7463.6244.30336
-rw-r--r-- 1 root root    0 Сен  6 11:08 long file
-rw-r--r-- 1 root root    0 Сен  6 11:08 long__name__2
/var/spool/cron/crontabs:
итого 0
/var/tmp:
итого 0
10:18:45
#mkdir \opt\project

10:19:52
#mkdir /opt/project

10:20:05
#ls -l
итого 64
drwxr-xr-x 4 root root  4096 Сен  4 14:04 d1
drwxr-xr-x 2 root root  4096 Сен  4 12:37 d2
-rw-r--r-- 2 root root     0 Сен  4 12:15 f1Hlnk
lrwxrwxrwx 1 root root    11 Сен  4 13:51 f1lnk -> /root/d1/f1
-rw-r--r-- 1 root root   512 Сен  5 11:41 files
-rw-r--r-- 1 root root  5268 Окт 13  2014 install
-rw-r--r-- 1 root root 15547 Сен  5 15:55 ip.txt
-rw-r----- 1 root root   292 Сен  4 15:49 messages
-rw-r--r-- 1 root root   986 Сен  5 13:45 newfile
drwxr-xr-x 2 root root  4096 Сен  7 11:19 optproject
-rw-r--r-- 1 root root   986 Сен  5 15:21 passwd
-rwxr--r-- 1 root root   108 Сен  6 15:16 proc.sh
-rwxr--r-- 1 root root   181 Сен  6 17:09 sc1.sh
-rw-r----- 1 root root   893 Сен  4 16:21 syslog
-rw-r--r-- 1 root root     0 Сен  5 13:47 unsorted
10:20:22
#chgrp developers /opt/project/

10:21:38
#ls -ld /opt/project/
drwxr-xr-x 2 root developers 4096 Сен  7 11:20 /opt/project/
10:21:57
#chmod 770 /opt/project/

10:22:17
#useradd -m anna

10:22:54
#passwd anna
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
10:23:08
#setfacl -m u:anna:rx /opt//project/
l3script: setfacl: команда не найдена
10:25:41
#apt-get setacl
E: Неверная операция setacl
10:25:54
#apt-get install acl
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  acl
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 70,8 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 264 kB.
Получено:1 http://ftp.ua.debian.org/debian/ wheezy/main acl amd64 2.2.51-8 [70,8 kB]
Получено 70,8 kБ за 0с (620 kБ/c)
Выбор ранее не выбранного пакета acl.
(Чтение базы данных … на данный момент установлено 30019 файлов и каталогов.)
Распаковывается пакет acl (из файла …/acl_2.2.51-8_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет acl (2.2.51-8) …
10:26:13
#setfacl -m u:anna:rx /opt//project/

10:26:20
#ls -l /opt/project/
итого 0
10:28:24
#ls -l /opt/project
итого 0
10:28:30
#ls -l /opt
итого 8
drwxrwx---+ 2 root developers 4096 Сен  7 11:20 project
drwxrwxrwt  2 root root       4096 Сен  7 11:03 public
10:28:42
#getfacl /opt/project/
getfacl: Removing leading '/' from absolute path names
# file: opt/project/
# owner: root
# group: developers
user::rwx
user:anna:r-x
group::rwx
mask::rwx
other::---
10:31:29
#setfacl -m m:r /opt/project/

Файлы

  • /etc/group
  • /etc/passwd
  • /etc/group
    >
    root:x:0:
    daemon:x:1:
    bin:x:2:
    sys:x:3:
    adm:x:4:
    tty:x:5:
    disk:x:6:
    lp:x:7:
    mail:x:8:
    news:x:9:
    uucp:x:10:
    man:x:12:
    proxy:x:13:
    kmem:x:15:
    dialout:x:20:
    fax:x:21:
    voice:x:22:
    cdrom:x:24:user
    floppy:x:25:user
    tape:x:26:
    sudo:x:27:
    audio:x:29:user
    dip:x:30:user
    www-data:x:33:
    backup:x:34:
    operator:x:37:
    list:x:38:
    irc:x:39:
    src:x:40:
    gnats:x:41:
    shadow:x:42:
    utmp:x:43:
    video:x:44:user
    sasl:x:45:
    plugdev:x:46:user
    staff:x:50:
    games:x:60:
    users:x:100:
    nogroup:x:65534:
    libuuid:x:101:
    crontab:x:102:
    Debian-exim:x:103:
    ssh:x:104:
    user:x:1000:
    ivan:x:1001:
    petr:x:1002:
    developers:x:10000:ivan,petr
    
    /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
    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
    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:Ivan Ivanov,9D,111,111-11-11:/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/bash
    

    Статистика

    Время первой команды журнала15:13:59 2017- 9- 6
    Время последней команды журнала10:31:29 2017- 9- 7
    Количество командных строк в журнале78
    Процент команд с ненулевым кодом завершения, %11.54
    Процент синтаксически неверно набранных команд, % 5.13
    Суммарное время работы с терминалом *, час 2.42
    Количество командных строк в единицу времени, команда/мин 0.54
    Частота использования команд
    ls8|========| 8.16%
    vi8|========| 8.16%
    cat7|=======| 7.14%
    echo5|=====| 5.10%
    chmod4|====| 4.08%
    find4|====| 4.08%
    null4|====| 4.08%
    sc1.sh4|====| 4.08%
    mkdir3|===| 3.06%
    setfacl3|===| 3.06%
    cut3|===| 3.06%
    grep3|===| 3.06%
    test3|===| 3.06%
    groupadd2|==| 2.04%
    apt-get2|==| 2.04%
    ~2|==| 2.04%
    gpasswd2|==| 2.04%
    do2|==| 2.04%
    \2|==| 2.04%
    for2|==| 2.04%
    xargs2|==| 2.04%
    ^C2|==| 2.04%
    usermod2|==| 2.04%
    func1|=| 1.02%
    срchfn1|=| 1.02%
    passwd1|=| 1.02%
    $2=11|=| 1.02%
    chfn1|=| 1.02%
    useradd1|=| 1.02%
    select1|=| 1.02%
    help1|=| 1.02%
    done^C1|=| 1.02%
    whatis1|=| 1.02%
    усрщecho1|=| 1.02%
    finger1|=| 1.02%
    break1|=| 1.02%
    id1|=| 1.02%
    getfacl1|=| 1.02%
    2=11|=| 1.02%
    chgrp1|=| 1.02%
    tr1|=| 1.02%
    done1|=| 1.02%
    ____
    *) Интервалы неактивности длительностью 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$