/l3/users/18-01-2010/nt-fbsdnet/fbsd7.net.nt/root :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 :11 :12 :13 :14 :15 :16 :17 :18 :19 :20 :21 |
|
#grep 192.168 /etc/hosts.allow -A 1
#tcpd : 192.168.16.32 : allow ALL : ALL : allow |
#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 |
#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 |
#grep 192.168 /etc/hosts.allow -A 1 -B 1
![]() #tcpd : 192.168.16.32 : allow ALL : ALL : allow |
#grep 192.168 /etc/hosts.allow -A 1 -B 1
#tcpd : 192.168.16.32 : allow ALL : ALL : allow |
#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 |
#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 |
#less /etc/host
![]() |
#less /etc/hosts
![]() |
#less /etc/host
![]() |
#less /etc/hosts
![]() |
#less /etc/hosts.allow
![]() |
#less /etc/hosts.allow
|
#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" |
#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" |
#/etc/rc.d/inetd stop
![]() |
#/etc/rc.d/inetd stop
|
#cd /usr/ports/
![]() |
#cd /usr/ports/
|
#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/ |
#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/ |
#cd security/xinetd
![]() |
#cd security/xinetd
|
#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 |
#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 |
#cd /usr/ports/distfiles/
![]() |
#cd /usr/ports/distfiles/
|
#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] |
#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] |
#cd -
![]() /usr/ports/security/xinetd |
#cd -
/usr/ports/security/xinetd |
#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/ |
#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/ |
#vim /usr/local/etc/
![]() |
#vim /usr/local/etc/
![]() |
#man xinetd.conf
![]() |
#man xinetd.conf
|
#~~~~~\
![]() > bash: ~~~~~: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ |
#~~~~~\
![]() > bash: ~~~~~: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ |
#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 |
#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 |
#whereis xinetd
![]() xinetd: /usr/local/sbin/xinetd /usr/local/man/man8/xinetd.8.gz /usr/ports/security/xinetd |
#whereis xinetd
xinetd: /usr/local/sbin/xinetd /usr/local/man/man8/xinetd.8.gz /usr/ports/security/xinetd |
#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 |
#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 |
#vim /usr/local/sbin/xinetd
![]() F^H^G^^ |
#vim /usr/local/sbin/xinetd
F^H^G^^ |
#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 |
#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 |
#vim /usr/local/etc/xi
![]() |
#vim /usr/local/etc/xi
![]() |
#ls -l /usr/local/etc/xinetd.conf
![]() ls: /usr/local/etc/xinetd.conf: No such file or directory |
#ls -l /usr/local/etc/xinetd.conf
![]() ls: /usr/local/etc/xinetd.conf: No such file or directory |
#man xconv
![]() |
#man xconv
|
#man xconv
![]() |
#man xconv
|
#ls -l /usr/local/etc/xinetd.conf
![]() ls: /usr/local/etc/xinetd.conf: No such file or directory |
#ls -l /usr/local/etc/xinetd.conf
![]() ls: /usr/local/etc/xinetd.conf: No such file or directory |
#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 |
#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 |
#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 |
#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 |
#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 |
#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 |
#xconv < /etc/inetd.conf > /usr/local/etc/xinetd.conf
![]() |
#xconv < /etc/inetd.conf > /usr/local/etc/xinetd.conf
|
#vim /usr/local/etc/xinetd.conf
![]() |
#vim /usr/local/etc/xinetd.conf
|
#/usr/local/etc/rc.d/xinetd start
![]() Starting xinetd. |
#/usr/local/etc/rc.d/xinetd start
Starting xinetd. |
#sockstat -4l | grep 5555
![]() root inetd 34391 6 tcp4 *:5555 *:* |
#sockstat -4l | grep 5555
root inetd 34391 6 tcp4 *:5555 *:* |
#/etc/rc.d/inetd stop
![]() |
#/etc/rc.d/inetd stop
|
#sockstat -4l | grep 5555
![]() root inetd 34391 6 tcp4 *:5555 *:* |
#sockstat -4l | grep 5555
root inetd 34391 6 tcp4 *:5555 *:* |
#/usr/local/etc/rc.d/xinetd stop
![]() xinetd not running? |
#/usr/local/etc/rc.d/xinetd stop
![]() xinetd not running? |
#sockstat -4l | grep 5555
![]() root inetd 34391 6 tcp4 *:5555 *:* |
#sockstat -4l | grep 5555
root inetd 34391 6 tcp4 *:5555 *:* |
#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 |
#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 |
#kill -9 34391
![]() |
#kill -9 34391
|
#ps uax | grep inetd
![]() |
#ps uax | grep inetd
![]() |
#sockstat -4l | grep 5555
![]() |
#sockstat -4l | grep 5555
![]() |
#/usr/local/etc/rc.d/xinetd start
![]() Starting xinetd. |
#/usr/local/etc/rc.d/xinetd start
Starting xinetd. |
#sockstat -4l | grep 5555
![]() root xinetd 40035 6 tcp4 *:5555 *:* |
#sockstat -4l | grep 5555
root xinetd 40035 6 tcp4 *:5555 *:* |
#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 } |
#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 } |
#screen -x
|
#/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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.
Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
$ l s-l bash: l: command not found |
Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
$ test 5 -lt 4 |
Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
$ 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 |
Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
# id uid=0(root) gid=0(root) Gruppen=0(root) |
Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
$ vi ~/.bashrc
|
Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
$ patch ~/.bashrc |
Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.
Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.
Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.
Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора
Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.
Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.
Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:
$ whoami
user
$ #^ Интересно, кто я?в журнале это будет выглядеть так:
$ whoami
user
Интересно, кто я? |
Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:
$ whoami
user
$ cat > /dev/null #^ Интересно, кто я?
Программа whoami выводит имя пользователя, под которым мы зарегистрировались в системе. - Она не может ответить на вопрос о нашем назначении в этом мире.В журнале это будет выглядеть так:
$ whoami user
|
Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=
1 2 3 4Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.
LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008