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

Содержание

Журнал

Среда (09/30/15)

/dev/pts/0
09:40:45
#test 4 -eq 5

09:40:51
#echo $?
1
09:40:52
#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.
09:41:24
#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.
09:41:57
#ls
install  install.back  [:lower:][:upper:]
09:41:58
#ls -l
итого 20
-rw-r--r-- 1 root root 5222 Сен 29 16:20 install
-rw-r--r-- 1 root root 5222 Сен 29 16:26 install.back
-rw-r--r-- 1 root root  236 Сен 29 15:21 [:lower:][:upper:]
09:42:15
#chmod u-x install.back

09:42:49
#chmod u+x install.back

09:43:15
#test -x install.back

09:43:53
#echo $?
0
09:43:57
#test -x install

09:44:03
#echo $?
1
09:44:04
#[ -x install]
l3script: [: пропущен `]'
09:44:22
#[ -x install ]

09:44:26
#echo $?
1
09:44:36
#рудз
l3script: $'\321\200\321\203\320\264\320\267': команда не найдена
09:47:21
#руÐhelp
GNU bash, version 4.2.37(1)-release (x86_64-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 [&]                            history [-c] [-d offset] [n] or hist>
 (( expression ))                        if COMMANDS; then COMMANDS; [ elif C>
 . filename [arguments]                  jobs [-lnprs] [jobspec ...] or jobs >
 :                                       kill [-s sigspec | -n signum | -sigs>
...
 export [-fn] [name[=value] ...] or ex>  typeset [-aAfFgilrtux] [-p] name[=va>
 false                                   ulimit [-SHacdefilmnpqrstuvx] [limit>
 fc [-e ename] [-lnr] [first] [last] o>  umask [-p] [-S] [mode]
 fg [job_spec]                           unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMAND>  unset [-f] [-v] [name ...]
 for (( exp1; exp2; exp3 )); do COMMAN>  until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name >  variables - Names and meanings of so>
 getopts optstring name [arg]            wait [id]
 hash [-lr] [-p pathname] [-dt] [name >  while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...]               { COMMANDS ; }
09:47:27
#help cd
cd: cd [-L|[-P [-e]]] [dir]
    Change the shell working directory.
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    Options:
        -L      force symbolic links to be followed
        -P      use the physical directory structure without following symbolic
        links
        -e      if the -P option is supplied, and the current working directory
        cannot be determined successfully, exit with a non-zero status
    The default is to follow symbolic links, as if `-L' were specified.
    Exit Status:
    Returns 0 if the directory is changed, and if $PWD is set successfully when
    -P is used; non-zero otherwise.
09:48:54
#help mv
l3script: help: no help topics match `mv'.  Try `help help' or `man -k mv' or `info mv'.
09:49:04
#help mk
l3script: help: no help topics match `mk'.  Try `help help' or `man -k mk' or `info mk'.
09:49:13
#hep
l3script: hep: команда не найдена
09:49:17
#help
GNU bash, version 4.2.37(1)-release (x86_64-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 [&]                            history [-c] [-d offset] [n] or hist>
 (( expression ))                        if COMMANDS; then COMMANDS; [ elif C>
 . filename [arguments]                  jobs [-lnprs] [jobspec ...] or jobs >
 :                                       kill [-s sigspec | -n signum | -sigs>
...
 export [-fn] [name[=value] ...] or ex>  typeset [-aAfFgilrtux] [-p] name[=va>
 false                                   ulimit [-SHacdefilmnpqrstuvx] [limit>
 fc [-e ename] [-lnr] [first] [last] o>  umask [-p] [-S] [mode]
 fg [job_spec]                           unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMAND>  unset [-f] [-v] [name ...]
 for (( exp1; exp2; exp3 )); do COMMAN>  until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name >  variables - Names and meanings of so>
 getopts optstring name [arg]            wait [id]
 hash [-lr] [-p pathname] [-dt] [name >  while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...]               { COMMANDS ; }
09:49:19
#whiCH
l3script: whiCH: команда не найдена
09:49:59
#which

09:50:03
#which cd

09:50:06
#which who
/usr/bin/who
09:50:14
#which kill
/bin/kill
09:50:18
#which pwd
/bin/pwd
09:50:23
#pwd
/root
09:50:56
#ls -ld /var/spool/
drwxr-xr-x 5 root root 4096 Июн 27  2014 /var/spool/
09:51:14
#ls -ld /var/spool/mail
lrwxrwxrwx 1 root root 7 Июн 27  2014 /var/spool/mail -> ../mail
09:51:26
#ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Сен 29 11:25 /var/mail
09:51:34
#cd /var/mail

09:52:10
#cd /var/spool/mail

09:52:27
#pwd
/var/spool/mail
09:52:32
#/bin/pwd
/var/mail
09:52:46
#/bin/pwd
/var/mail
09:52:53
#pwd -P
/var/mail
09:53:13
#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
09:54:15
#cd

09:54:20
#руtest -x install

09:54:59
#ls -l
итого 20
-rw-r--r-- 1 root root 5222 Сен 29 16:20 install
-rwxr--r-- 1 root root 5222 Сен 29 16:26 install.back
-rw-r--r-- 1 root root  236 Сен 29 15:21 [:lower:][:upper:]
09:55:03
#руtest -x install.back

09:55:34
#touch privet.sh

09:56:11
#PATH=$PATH:/root

09:56:57
#$PATH
l3script: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root: Нет такого файла или каталога
09:57:03
#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root
09:57:09
#vi privet.sh
--- /tmp/l3-saved-16895.23632.8697	2015-09-30 10:59:31.702528052 +0300
+++ privet.sh	2015-09-30 11:00:43.350496957 +0300
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+echo "Privet ${1}!"
+
10:00:43
#privet.sh
l3script: /root/privet.sh: Отказано в доступе
10:00:46
#vi /etc/profile
--- /tmp/l3-saved-16895.30626.27016	2015-09-30 11:01:31.638474661 +0300
+++ /etc/profile	2015-09-30 11:02:46.630470202 +0300
@@ -2,7 +2,7 @@
 # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
 
 if [ "`id -u`" -eq 0 ]; then
-  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root"
 else
   PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
 fi
10:02:46
#vi /etc/profile
10:02:50
# 39 HISTSIZE=2500
 23     fi
 24   fi
 25 fi
 26
 27 # The default umask is now handled by pam_umask.
 28 # See pam_umask(8) and /etc/login.defs.
 29
 30 if [ -d /etc/profile.d ]; then
 31   for i in /etc/profile.d/*.sh; do
 32     if [ -r $i ]; then
 33       . $i
 34     fi
 35   done
 36   unset i
 37 fi
 38
 39 HISTSIZE=2500
 40 HISTFILESIZE=2500
 41
 42 export HISTSIZE HISTFILESIZE                               42,1        Внизу
/dev/pts/0
10:03:38
#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root
10:03:44
#privet.sh
l3script: /root/privet.sh: Отказано в доступе
10:03:54
#ls -l
итого 24
-rw-r--r-- 1 root root 5222 Сен 29 16:20 install
-rw-r--r-- 1 root root 5222 Сен 29 16:26 install.back
-rw-r--r-- 1 root root  236 Сен 29 15:21 [:lower:][:upper:]
-rw-r--r-- 1 root root   34 Сен 30 11:00 privet.sh
10:04:03
#privet.sh ivan
l3script: /root/privet.sh: Отказано в доступе
10:04:13
#./privet.sh ivan
l3script: ./privet.sh: Отказано в доступе
10:04:22
#privet.sh ivan
l3script: /root/privet.sh: Отказано в доступе
10:04:58
#ls -l
итого 24
-rw-r--r-- 1 root root 5222 Сен 29 16:20 install
-rw-r--r-- 1 root root 5222 Сен 29 16:26 install.back
-rw-r--r-- 1 root root  236 Сен 29 15:21 [:lower:][:upper:]
-rw-r--r-- 1 root root   34 Сен 30 11:00 privet.sh
10:05:03
#vi privet.sh
10:05:27
#~
init/            initramfs-tools/ insserv.conf.d/
init.d/          insserv/
10:05:27
#/etc/init.d/
l3script: /etc/init.d/: Это каталог
10:05:50
#ls /etc/init.d/
acpid                   hwclock.sh             mtab.sh         sendsigs
bootlogs                kbd                    netdiag         single
bootmisc.sh             keyboard-setup         networking      skeleton
checkfs.sh              killprocs              procps          ssh
checkroot-bootclean.sh  kmod                   rc              udev
checkroot.sh            motd                   rc.local        udev-mtab
console-cyrillic        mountall-bootclean.sh  rcS             umountfs
console-setup           mountall.sh            README          umountnfs.sh
cron                    mountdevsubfs.sh       reboot          umountroot
exim4                   mountkernfs.sh         rmnologin       urandom
halt                    mountnfs-bootclean.sh  rsyslog
hostname.sh             mountnfs.sh            screen-cleanup
10:06:03
#ls /etc/init.d/ rsyslog
ls: невозможно получить доступ к rsyslog: Нет такого файла или каталога
/etc/init.d/:
acpid                   hwclock.sh             mtab.sh         sendsigs
bootlogs                kbd                    netdiag         single
bootmisc.sh             keyboard-setup         networking      skeleton
checkfs.sh              killprocs              procps          ssh
checkroot-bootclean.sh  kmod                   rc              udev
checkroot.sh            motd                   rc.local        udev-mtab
console-cyrillic        mountall-bootclean.sh  rcS             umountfs
console-setup           mountall.sh            README          umountnfs.sh
cron                    mountdevsubfs.sh       reboot          umountroot
exim4                   mountkernfs.sh         rmnologin       urandom
halt                    mountnfs-bootclean.sh  rsyslog
hostname.sh             mountnfs.sh            screen-cleanup
10:06:25
#ls /etc/init.d/ rsyslog stop
ls: невозможно получить доступ к rsyslog: Нет такого файла или каталога
ls: невозможно получить доступ к stop: Нет такого файла или каталога
/etc/init.d/:
acpid                   hwclock.sh             mtab.sh         sendsigs
bootlogs                kbd                    netdiag         single
bootmisc.sh             keyboard-setup         networking      skeleton
checkfs.sh              killprocs              procps          ssh
checkroot-bootclean.sh  kmod                   rc              udev
checkroot.sh            motd                   rc.local        udev-mtab
console-cyrillic        mountall-bootclean.sh  rcS             umountfs
console-setup           mountall.sh            README          umountnfs.sh
cron                    mountdevsubfs.sh       reboot          umountroot
exim4                   mountkernfs.sh         rmnologin       urandom
halt                    mountnfs-bootclean.sh  rsyslog
hostname.sh             mountnfs.sh            screen-cleanup
10:06:34
#ls /etc/init.d/rsyslog stop
ls: невозможно получить доступ к stop: Нет такого файла или каталога
/etc/init.d/rsyslog
10:06:51
#/etc/init.d/rsyslog start
[ ok ] Starting enhanced syslogd: rsyslogd.
прошло 11 минут
10:18:26
#./test.sh
 1 1 1 1 1 1 1 1 1^C
10:18:45
#vi test.sh
--- /tmp/l3-saved-18113.14658.18375	2015-09-30 11:18:47.682468617 +0300
+++ test.sh	2015-09-30 11:19:03.842499729 +0300
@@ -7,6 +7,6 @@
 	do
 		echo -n " $i"
 		sleep ${1:-1}
-		i=$[$I+1]
+		i=$[$i+1]
 	done 
 echo
10:19:03
#vi test.sh
10:19:08
#~
 1 2 3 4 5 6 7 8 9 10
10:19:20
#./test.sh 2 5
 1 2 3 4 5
10:19:35
#./test.sh 5 5
 1 2 3 4 5
10:20:07
#vi test.sh
--- /tmp/l3-saved-18113.13895.29786	2015-09-30 11:22:11.438490716 +0300
+++ test.sh	2015-09-30 11:23:08.758495685 +0300
@@ -1,5 +1,6 @@
 #!/bin/bash
 
+echo "You enter $# parameters"
 declare -i i=1
 
 while [ $i -le ${2:-10} ] 
10:23:08
#./test.sh
You enter 0 parameters
 1 2 3 4 5 6 7 8 9 10
10:23:21
#./test.sh
You enter 0 parameters
 1 2^C
10:23:26
#./test.sh 1
You enter 1 parameters
 1 2^C
10:23:28
#./test.sh 3
You enter 1 parameters
 1^C
10:23:31
#./test.sh 3
You enter 1 parameters
 1^C
10:23:36
#./test.sh 2
You enter 1 parameters
 1 2^C
10:23:40
#./test.sh 1 1
You enter 2 parameters
 1
10:23:44
#^C

10:23:45
#./test.sh 1 1 2
You enter 3 parameters
 1
10:23:47
#./test.sh 1 2
You enter 2 parameters
 1 2
прошло 17 минут
10:41:18
#ls /etc/passwd
/etc/passwd
прошло >2 часов
12:55:36
#less /etc/passwd
12:56:05
#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
12:56:09
#pvconf
l3script: pvconf: команда не найдена
12:56:54
#pwconf
l3script: pwconf: команда не найдена
12:56:58
#pwconv

12:57:03
#man pwconv
12:57:44
#useradd --help
Использование: useradd [параметры] ПОÐ
seradd -D
               useradd -D [параметры]
Параметры:
  -b, --base-dir БАЗ_КАТ        базовый каталог для домашнего каталога новой
                                учётной записи
  -c, --comment КОММЕНТАРИЙ     поле GECOS новой учётной записи
  -d, --home-dir ДОМ_КАТ        домашний каталог новой учётной записи
  -D, --defaults                показать или изменить настройки
                                по умолчанию для useradd
...
  -p, --password ПАРОЇётной записи
  -r, --system                  создать системную учётную запись
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОРновой
                                учётной записи
  -u, --uid UID                 пользовательский ID новой учётной записи
  -U, --user-group              создать группу с тем же именем что и у
                                пользователя
  -Z, --selinux-user SEUSER     использовать указанного SEUSER для
                                пользовательского сопоставления SELinux
13:03:03
#^C

13:03:07
#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:
13:03:20
#useradd -m -n test
useradd: неверный ключ -- «n»
Использование: useradd [параметры] ПОÐ
seradd -D
               useradd -D [параметры]
Параметры:
  -b, --base-dir БАЗ_КАТ        базовый каталог для домашнего каталога новой
                                учётной записи
  -c, --comment КОММЕНТАРИЙ     поле GECOS новой учётной записи
  -d, --home-dir ДОМ_КАТ        домашний каталог новой учётной записи
  -D, --defaults                показать или изменить настройки
...
  -p, --password ПАРОЇётной записи
  -r, --system                  создать системную учётную запись
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОРновой
                                учётной записи
  -u, --uid UID                 пользовательский ID новой учётной записи
  -U, --user-group              создать группу с тем же именем что и у
                                пользователя
  -Z, --selinux-user SEUSER     использовать указанного SEUSER для
                                пользовательского сопоставления SELinux
13:03:44
#useradd -m -N test

13:03:58
#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
...
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
test:x:1003:100::/home/test:/bin/sh
13:04:06
#id test
uid=1003(test) gid=100(users) группы=100(users)
13:04:11
#apt-get install sudo
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  sudo
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 66 пакетов не обновлено.
Необходимо скачать 847 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 1 885 kB.
Получено:1 http://ftp.ua.debian.org/debian/ wheezy/main sudo amd64 1.8.5p2-1+nmu3 [847 kB]
Получено 847 kБ за 0с (1 405 kБ/c)
Выбор ранее не выбранного пакета sudo.
(Чтение базы данных … на данный момент установлен 30081 файл и каталог.)
Распаковывается пакет sudo (из файла …/sudo_1.8.5p2-1+nmu3_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет sudo (1.8.5p2-1+nmu3) …
13:11:59
#chfn
Изменение информации о пользователе root
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
        Полное имя [root]: ^Z
[1]+  Stopped                 chfn
13:13:10
#chfn ivan
Изменение информации о пользователе ivan
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
        Полное имя []: Ivan Ivanov
        Номер комнаты []: 9D
        Рабочий телефон []: 101
        Домашний телефон []: 111-11-11
        Другое []:

Файлы

  • /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:
    
    /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::/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/bash
    test:x:1003:100::/home/test:/bin/sh
    

    Статистика

    Время первой команды журнала09:40:45 2015- 9-30
    Время последней команды журнала13:13:10 2015- 9-30
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %19.80
    Процент синтаксически неверно набранных команд, % 5.94
    Суммарное время работы с терминалом *, час 1.30
    Количество командных строк в единицу времени, команда/мин 1.29
    Частота использования команд
    ls13|============| 12.87%
    test.sh12|===========| 11.88%
    echo7|======| 6.93%
    vi7|======| 6.93%
    help6|=====| 5.94%
    pwd5|====| 4.95%
    privet.sh5|====| 4.95%
    which5|====| 4.95%
    useradd3|==| 2.97%
    cd3|==| 2.97%
    cat3|==| 2.97%
    test3|==| 2.97%
    chmod2|=| 1.98%
    chfn2|=| 1.98%
    [2|=| 1.98%
    ~2|=| 1.98%
    ^C2|=| 1.98%
    руtest2|=| 1.98%
    man1|| 0.99%
    руÐhelp1|| 0.99%
    рудз1|| 0.99%
    391|| 0.99%
    whiCH1|| 0.99%
    hep1|| 0.99%
    $PATH1|| 0.99%
    root1|| 0.99%
    pwconf1|| 0.99%
    apt-get1|| 0.99%
    /etc/init.d/rsyslog1|| 0.99%
    pvconf1|| 0.99%
    touch1|| 0.99%
    pwconv1|| 0.99%
    /etc/init.d/1|| 0.99%
    id1|| 0.99%
    less1|| 0.99%
    ____
    *) Интервалы неактивности длительностью 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$