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

Содержание

Журнал

Вторник (01/19/10)

/dev/ttyp3
14:59:21
#grep 192.168 /etc/hosts.allow -A 1
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
14:59:44
#grep 192.168 /etc/hosts.allow -A 10
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
# Wrapping sshd(8) is not normally a good idea, but if you
# need to do it, here's how
#sshd : .evil.cracker.example.com : deny
# Protect against simple DNS spoofing attacks by checking that the
# forward and reverse records for the remote host match. If a mismatch
14:59:44
#grep 192.168 /etc/hosts.allow -A 10
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
# Wrapping sshd(8) is not normally a good idea, but if you
# need to do it, here's how
#sshd : .evil.cracker.example.com : deny
# Protect against simple DNS spoofing attacks by checking that the
# forward and reverse records for the remote host match. If a mismatch
14:59:53
#grep 192.168 /etc/hosts.allow -A 1 -B 1
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
14:59:53
#grep 192.168 /etc/hosts.allow -A 1 -B 1
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
14:59:57
#grep 192.168 /etc/hosts.allow -A 1 -B 2
# The rules here work on a "First match wins" basis.
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
14:59:57
#grep 192.168 /etc/hosts.allow -A 1 -B 2
# The rules here work on a "First match wins" basis.
#tcpd : 192.168.16.32 : allow
ALL : ALL : allow
15:00:00
#less /etc/host
15:00:00
#less /etc/hosts
15:00:00
#less /etc/host
15:00:00
#less /etc/hosts
15:00:00
#less /etc/hosts.allow
15:00:00
#less /etc/hosts.allow
15:09:06
#vim /etc/rc.conf
--- /tmp/l3-saved-32151.11118.13227	2010-01-19 16:09:13.000000000 +0200
+++ /etc/rc.conf	2010-01-19 16:09:27.000000000 +0200
@@ -10,7 +10,7 @@
 saver="fire"
 scrnmap="koi8-r2cp866"
 usbd_enable="YES"
-inetd_enable=yes
+xinetd_enable=yes
 ifconfig_re0="inet 192.168.16.27  netmask 255.255.255.0"
 hostname="fbsd7.net.nt"
 ifconfig_re2="inet 192.168.16.227  netmask 255.255.255.0"
15:09:06
#vim /etc/rc.conf
--- /tmp/l3-saved-32151.11118.13227	2010-01-19 16:09:13.000000000 +0200
+++ /etc/rc.conf	2010-01-19 16:09:27.000000000 +0200
@@ -10,7 +10,7 @@
 saver="fire"
 scrnmap="koi8-r2cp866"
 usbd_enable="YES"
-inetd_enable=yes
+xinetd_enable=yes
 ifconfig_re0="inet 192.168.16.27  netmask 255.255.255.0"
 hostname="fbsd7.net.nt"
 ifconfig_re2="inet 192.168.16.227  netmask 255.255.255.0"
15:09:27
#/etc/rc.d/inetd stop

15:09:27
#/etc/rc.d/inetd stop

15:09:42
#cd /usr/ports/

15:09:42
#cd /usr/ports/

15:09:46
#make search name=xinetd
Port:   xinetd-2.3.14_1
Path:   /usr/ports/security/xinetd
Info:   Replacement for inetd with better control and logging
Maint:  sem@FreeBSD.org
B-deps: gettext-0.16.1_3 gmake-3.81_2 libiconv-1.11_1
R-deps:
WWW:    http://www.xinetd.org/
15:09:46
#make search name=xinetd
Port:   xinetd-2.3.14_1
Path:   /usr/ports/security/xinetd
Info:   Replacement for inetd with better control and logging
Maint:  sem@FreeBSD.org
B-deps: gettext-0.16.1_3 gmake-3.81_2 libiconv-1.11_1
R-deps:
WWW:    http://www.xinetd.org/
15:09:52
#cd security/xinetd

15:09:52
#cd security/xinetd

15:09:57
#make install
===>  Vulnerability check disabled, database not found
=> xinetd-2.3.14.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://www.xinetd.org/.
^Cfetch: transfer interrupted
õ ×ÁÓ ÅÓÔØ ÎÏ×ÁÑ ÐÏÞÔÁ × /var/mail/root
15:09:57
#make install
===>  Vulnerability check disabled, database not found
=> xinetd-2.3.14.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://www.xinetd.org/.
^Cfetch: transfer interrupted
õ ×ÁÓ ÅÓÔØ ÎÏ×ÁÑ ÐÏÞÔÁ × /var/mail/root
15:11:16
#cd /usr/ports/distfiles/

15:11:16
#cd /usr/ports/distfiles/

15:11:20
#wget -c ftp://mirror.ovh.net/gentoo-distfiles/distfiles/xinetd-2.3.14.tar.gz
--16:11:30--  ftp://mirror.ovh.net/gentoo-distfiles/distfiles/xinetd-2.3.14.tar.gz
           => `xinetd-2.3.14.tar.gz'
òÁÓÐÏÚÎÁ£ÔÓÑ mirror.ovh.net... 91.121.125.139, 91.121.124.139, 2001:41d0:1:7b8b::1
õÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÅÄÉÎÅÎÉÅ Ó mirror.ovh.net|91.121.125.139|:21... ÓÏÅÄÉÎÅÎÉÅ ÕÓÔÁÎÏ×ÌÅÎÏ.
÷ÙÐÏÌÎÑÅÔÓÑ ×ÈÏÄ ÐÏÄ ÉÍÅÎÅÍ anonymous ... ÷ÙÐÏÌÎÅÎ ×ÈÏÄ × ÓÉÓÔÅÍÕ!
==> SYST ... ÇÏÔÏ×Ï.  ==> PWD ... ÇÏÔÏ×Ï.
==> TYPE I ... ÇÏÔÏ×Ï.   ==> CWD /gentoo-distfiles/distfiles ... ÇÏÔÏ×Ï.
==> PASV ... ÇÏÔÏ×Ï.  ==> RETR xinetd-2.3.14.tar.gz ... ÇÏÔÏ×Ï.
äÌÉÎÁ: 301 703 (295K) (ÎÅ ÄÏÓÔÏ×ÅÒÎÏ)
100%[=====================================================================>] 301 703      427,95K/s
16:11:32 (426,55 KB/s) - `xinetd-2.3.14.tar.gz' ÓÏÈÒÁΣΠ[301703]
15:11:20
#wget -c ftp://mirror.ovh.net/gentoo-distfiles/distfiles/xinetd-2.3.14.tar.gz
--16:11:30--  ftp://mirror.ovh.net/gentoo-distfiles/distfiles/xinetd-2.3.14.tar.gz
           => `xinetd-2.3.14.tar.gz'
òÁÓÐÏÚÎÁ£ÔÓÑ mirror.ovh.net... 91.121.125.139, 91.121.124.139, 2001:41d0:1:7b8b::1
õÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÅÄÉÎÅÎÉÅ Ó mirror.ovh.net|91.121.125.139|:21... ÓÏÅÄÉÎÅÎÉÅ ÕÓÔÁÎÏ×ÌÅÎÏ.
÷ÙÐÏÌÎÑÅÔÓÑ ×ÈÏÄ ÐÏÄ ÉÍÅÎÅÍ anonymous ... ÷ÙÐÏÌÎÅÎ ×ÈÏÄ × ÓÉÓÔÅÍÕ!
==> SYST ... ÇÏÔÏ×Ï.  ==> PWD ... ÇÏÔÏ×Ï.
==> TYPE I ... ÇÏÔÏ×Ï.   ==> CWD /gentoo-distfiles/distfiles ... ÇÏÔÏ×Ï.
==> PASV ... ÇÏÔÏ×Ï.  ==> RETR xinetd-2.3.14.tar.gz ... ÇÏÔÏ×Ï.
äÌÉÎÁ: 301 703 (295K) (ÎÅ ÄÏÓÔÏ×ÅÒÎÏ)
100%[=====================================================================>] 301 703      427,95K/s
16:11:32 (426,55 KB/s) - `xinetd-2.3.14.tar.gz' ÓÏÈÒÁΣΠ[301703]
15:11:32
#cd -
/usr/ports/security/xinetd
15:11:32
#cd -
/usr/ports/security/xinetd
15:11:34
#make install
ar r libmisc.a misc.o m_env.o
ar: creating libmisc.a
ranlib libmisc.a
Installed libmisc.a to ../../lib
Installed ./misc.h ./m_env.h to ../../include
Installed ./misc.3 ./m_env.3 to ../../man
gmake[1]: Leaving directory `/usr/ports/security/xinetd/work/xinetd-2.3.14/libs/src/misc'
cd libs/src/pset ; gmake CC='cc' CFLAGS='-O2 -fno-strict-aliasing -pipe  -O2 -fno-strict-aliasing -pipe   -I../../include' install
gmake[1]: Entering directory `/usr/ports/security/xinetd/work/xinetd-2.3.14/libs/src/pset'
cc -O2 -fno-strict-aliasing -pipe  -O2 -fno-strict-aliasing -pipe   -I../../include   -c -o pset.o pset.c
...
      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/xinetd
      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.
      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.xinetd.org/
15:11:34
#make install
ar r libmisc.a misc.o m_env.o
ar: creating libmisc.a
ranlib libmisc.a
Installed libmisc.a to ../../lib
Installed ./misc.h ./m_env.h to ../../include
Installed ./misc.3 ./m_env.3 to ../../man
gmake[1]: Leaving directory `/usr/ports/security/xinetd/work/xinetd-2.3.14/libs/src/misc'
cd libs/src/pset ; gmake CC='cc' CFLAGS='-O2 -fno-strict-aliasing -pipe  -O2 -fno-strict-aliasing -pipe   -I../../include' install
gmake[1]: Entering directory `/usr/ports/security/xinetd/work/xinetd-2.3.14/libs/src/pset'
cc -O2 -fno-strict-aliasing -pipe  -O2 -fno-strict-aliasing -pipe   -I../../include   -c -o pset.o pset.c
...
      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/xinetd
      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.
      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.xinetd.org/
15:12:41
#vim /usr/local/etc/
15:12:41
#vim /usr/local/etc/
15:12:41
#man xinetd.conf
15:12:41
#man xinetd.conf
15:13:08
#~~~~~\
>
bash: ~~~~~: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ
15:13:08
#~~~~~\
>
bash: ~~~~~: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ
15:13:11
#PAGER=less man xinetd.conf
                        parameter is required,  which  is  either  a  positive
                        integer  representing  the  number of bytes or "UNLIM-
                        ITED".
       deny_time        Sets the time span that access to all services on  all
                        IP  addresses  are denied to someone that sets off the
                        SENSOR. The unit of time is in minutes.  Valid options
                        are:  FOREVER,  NEVER,  and  a  numeric value. FOREVER
                        causes the IP address not to be purged until xinetd is
                        restarted.  NEVER  has  the effect of just logging the
                        offending IP address. A typical time value would be 60
...
              # this is the same service using a different socket type, the
              # id attribute is used to uniquely identify each entry
              #
              service echo
              {
                     id                  = echo-stream
                     type                = INTERNAL
                     socket_type         = stream
                     user                = root
                     wait                = no
15:13:11
#PAGER=less man xinetd.conf
                        parameter is required,  which  is  either  a  positive
                        integer  representing  the  number of bytes or "UNLIM-
                        ITED".
       deny_time        Sets the time span that access to all services on  all
                        IP  addresses  are denied to someone that sets off the
                        SENSOR. The unit of time is in minutes.  Valid options
                        are:  FOREVER,  NEVER,  and  a  numeric value. FOREVER
                        causes the IP address not to be purged until xinetd is
                        restarted.  NEVER  has  the effect of just logging the
                        offending IP address. A typical time value would be 60
...
              # this is the same service using a different socket type, the
              # id attribute is used to uniquely identify each entry
              #
              service echo
              {
                     id                  = echo-stream
                     type                = INTERNAL
                     socket_type         = stream
                     user                = root
                     wait                = no
15:13:33
#whereis xinetd
xinetd: /usr/local/sbin/xinetd /usr/local/man/man8/xinetd.8.gz /usr/ports/security/xinetd
15:13:33
#whereis xinetd
xinetd: /usr/local/sbin/xinetd /usr/local/man/man8/xinetd.8.gz /usr/ports/security/xinetd
15:13:37
#strings /usr/local/sbin/xinetd | grep etc
/etc/inetd.conf
service/protocol combination not in /etc/services: %s/%s
/usr/local/etc/xinetd.conf
Protocol %s not in /etc/protocols
inetd.conf - Protocol %s not in /etc/protocols
15:13:37
#strings /usr/local/sbin/xinetd | grep etc
/etc/inetd.conf
service/protocol combination not in /etc/services: %s/%s
/usr/local/etc/xinetd.conf
Protocol %s not in /etc/protocols
inetd.conf - Protocol %s not in /etc/protocols
15:13:51
#vim /usr/local/sbin/xinetd
F^H^G^^
15:13:51
#vim /usr/local/sbin/xinetd
F^H^G^^
15:14:36
#strings /usr/local/sbin/xinetd | grep etc
/etc/inetd.conf
service/protocol combination not in /etc/services: %s/%s
/usr/local/etc/xinetd.conf
Protocol %s not in /etc/protocols
inetd.conf - Protocol %s not in /etc/protocols
15:14:36
#strings /usr/local/sbin/xinetd | grep etc
/etc/inetd.conf
service/protocol combination not in /etc/services: %s/%s
/usr/local/etc/xinetd.conf
Protocol %s not in /etc/protocols
inetd.conf - Protocol %s not in /etc/protocols
15:14:38
#vim /usr/local/etc/xi
15:14:38
#vim /usr/local/etc/xi
15:14:52
#ls -l /usr/local/etc/xinetd.conf
ls: /usr/local/etc/xinetd.conf: No such file or directory
15:14:52
#ls -l /usr/local/etc/xinetd.conf
ls: /usr/local/etc/xinetd.conf: No such file or directory
15:15:04
#man xconv
15:15:04
#man xconv
15:15:29
#man xconv
15:15:29
#man xconv
15:15:49
#ls -l /usr/local/etc/xinetd.conf
ls: /usr/local/etc/xinetd.conf: No such file or directory
15:15:49
#ls -l /usr/local/etc/xinetd.conf
ls: /usr/local/etc/xinetd.conf: No such file or directory
15:16:01
#strings /usr/local/sbin/xinetd | grep etc
/etc/inetd.conf
service/protocol combination not in /etc/services: %s/%s
/usr/local/etc/xinetd.conf
Protocol %s not in /etc/protocols
inetd.conf - Protocol %s not in /etc/protocols
15:16:01
#strings /usr/local/sbin/xinetd | grep etc
/etc/inetd.conf
service/protocol combination not in /etc/services: %s/%s
/usr/local/etc/xinetd.conf
Protocol %s not in /etc/protocols
inetd.conf - Protocol %s not in /etc/protocols
15:16:04
#strings /usr/local/sbin/xinetd | grep etc | grep conf
/etc/inetd.conf
/usr/local/etc/xinetd.conf
inetd.conf - Protocol %s not in /etc/protocols
15:16:04
#strings /usr/local/sbin/xinetd | grep etc | grep conf
/etc/inetd.conf
/usr/local/etc/xinetd.conf
inetd.conf - Protocol %s not in /etc/protocols
15:16:09
#strings /usr/local/sbin/xinetd | grep etc | grep conf
/etc/inetd.conf
/usr/local/etc/xinetd.conf
inetd.conf - Protocol %s not in /etc/protocols
15:16:09
#strings /usr/local/sbin/xinetd | grep etc | grep conf
/etc/inetd.conf
/usr/local/etc/xinetd.conf
inetd.conf - Protocol %s not in /etc/protocols
15:16:15
#xconv < /etc/inetd.conf > /usr/local/etc/xinetd.conf

15:16:15
#xconv < /etc/inetd.conf > /usr/local/etc/xinetd.conf

15:16:29
#vim /usr/local/etc/xinetd.conf
15:16:29
#vim /usr/local/etc/xinetd.conf
15:17:31
#/usr/local/etc/rc.d/xinetd start
Starting xinetd.
15:17:31
#/usr/local/etc/rc.d/xinetd start
Starting xinetd.
15:17:38
#sockstat -4l | grep 5555
root     inetd      34391 6  tcp4   *:5555                *:*
15:17:38
#sockstat -4l | grep 5555
root     inetd      34391 6  tcp4   *:5555                *:*
15:17:43
#/etc/rc.d/inetd stop

15:17:43
#/etc/rc.d/inetd stop

15:17:54
#sockstat -4l | grep 5555
root     inetd      34391 6  tcp4   *:5555                *:*
15:17:54
#sockstat -4l | grep 5555
root     inetd      34391 6  tcp4   *:5555                *:*
15:17:56
#/usr/local/etc/rc.d/xinetd stop
xinetd not running?
15:17:56
#/usr/local/etc/rc.d/xinetd stop
xinetd not running?
15:18:00
#sockstat -4l | grep 5555
root     inetd      34391 6  tcp4   *:5555                *:*
15:18:00
#sockstat -4l | grep 5555
root     inetd      34391 6  tcp4   *:5555                *:*
15:18:02
#ps uax | grep inetd
root  34391  0,0  0,2  1492  1212  ??  Is   15:50     0:00,01 /usr/sbin/inetd -wW -C 60
root  39994  0,0  0,2  1612  1072  p4  S+   16:18     0:00,00 grep inetd
15:18:02
#ps uax | grep inetd
root  34391  0,0  0,2  1492  1212  ??  Is   15:50     0:00,01 /usr/sbin/inetd -wW -C 60
root  39994  0,0  0,2  1612  1072  p4  S+   16:18     0:00,00 grep inetd
15:18:09
#kill -9 34391

15:18:09
#kill -9 34391

15:18:16
#ps uax | grep inetd

15:18:16
#ps uax | grep inetd

15:18:17
#sockstat -4l | grep 5555

15:18:17
#sockstat -4l | grep 5555

15:18:19
#/usr/local/etc/rc.d/xinetd start
Starting xinetd.
15:18:19
#/usr/local/etc/rc.d/xinetd start
Starting xinetd.
15:18:23
#sockstat -4l | grep 5555
root     xinetd     40035 6  tcp4   *:5555                *:*
15:18:23
#sockstat -4l | grep 5555
root     xinetd     40035 6  tcp4   *:5555                *:*
15:18:42
#vim /usr/local/etc/xinetd.conf
--- /tmp/l3-saved-32151.19398.2956	2010-01-19 16:19:10.000000000 +0200
+++ /usr/local/etc/xinetd.conf	2010-01-19 16:22:54.000000000 +0200
@@ -55,5 +55,10 @@
 	user        = root
 	server      = /usr/libexec/tcpd
 	server_args = /usr/bin/bc 
+	banner = "Hello on our Freebsd Server for clouding computing with calc service"
+	banner_success = "Yeahh, you are welcome to me"
+	banner_fail = "Ohh, sorry, try again later"
+	access_time = 16:00-18:00
+	only_from = 192.168.16.32 
 }
 
15:18:42
#vim /usr/local/etc/xinetd.conf
--- /tmp/l3-saved-32151.19398.2956	2010-01-19 16:19:10.000000000 +0200
+++ /usr/local/etc/xinetd.conf	2010-01-19 16:22:54.000000000 +0200
@@ -55,5 +55,10 @@
 	user        = root
 	server      = /usr/libexec/tcpd
 	server_args = /usr/bin/bc 
+	banner = "Hello on our Freebsd Server for clouding computing with calc service"
+	banner_success = "Yeahh, you are welcome to me"
+	banner_fail = "Ohh, sorry, try again later"
+	access_time = 16:00-18:00
+	only_from = 192.168.16.32 
 }
 
/dev/ttyp5
15:20:22
#screen -x
15:20:22
#screen -x
/dev/ttyp3
15:22:54
#/usr/local/etc/rc.d/xinetd restart
Stopping xinetd.
Starting xinetd.
15:22:54
#/usr/local/etc/rc.d/xinetd restart
Stopping xinetd.
Starting xinetd.

Статистика

Время первой команды журнала14:59:21 2010- 1-19
Время последней команды журнала15:22:54 2010- 1-19
Количество командных строк в журнале99
Процент команд с ненулевым кодом завершения, %12.12
Процент синтаксически неверно набранных команд, % 2.02
Суммарное время работы с терминалом *, час 0.39
Количество командных строк в единицу времени, команда/мин 4.20
Частота использования команд
grep31|========================| 24.03%
vim12|=========| 9.30%
sockstat10|=======| 7.75%
strings10|=======| 7.75%
cd8|======| 6.20%
/usr/local/etc/rc.d/xinetd8|======| 6.20%
man6|====| 4.65%
make6|====| 4.65%
less6|====| 4.65%
ps4|===| 3.10%
/etc/rc.d/inetd4|===| 3.10%
ls4|===| 3.10%
screen2|=| 1.55%
wget2|=| 1.55%
whereis2|=| 1.55%
^F^H^E^@^@^@^G#^F^H^G^^2|=| 1.55%
xconv2|=| 1.55%
PAGER=less2|=| 1.55%
~~~~~\2|=| 1.55%
kill2|=| 1.55%
/etc/inetd.conf2|=| 1.55%
/usr/local/etc/xinetd.conf2|=| 1.55%
____
*) Интервалы неактивности длительностью 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$