/l3/users/16-10-2018/NT-Ladm/debian1.net.nt/user :1 :2 |
|
$dir
bigfile names bin ogo.jpg freebsd.jpg pamyatka.pdf granata.jpg press_any_key_to_continue.jpg Light_Alloy_4.4.784_RC2_by_FAFNIR.exe proj lpi\ 1 sh lpi\ 2 text man_smb_conf touchlist matrix.jpg |
$cd names/
|
$ls a*
alloca.H acpi: events powerbtn-acpi-support.sh |
$ls *.[cChH]
alloca.H core.c fcntl.h isdn_ttyfax.c Regexp.H term.h |
$ls *BSD*
ls: невозможно получить доступ к *BSD*: Нет такого файла или каталога |
$ls *Linux*
ls: невозможно получить доступ к *Linux*: Нет такого файла или каталога |
$ls
_1_2_3 alloca.H bjen fcntl.h -hello _kik_my Regexp.H 1cdesktop __asterisk bjon -file1 _hrypun modules s_tol_ acpi bjan core.c group isdn_ttyfax.c passwd term.h |
$ls j?n
ls: невозможно получить доступ к j?n: Нет такого файла или каталога |
$ls *j?n*
bjan bjen bjon |
$ls -- -*
-file1 -hello |
$ls ./-*
./-file1 ./-hello |
$ls *'*'*'?'*
ls: невозможно получить доступ к ***?*: Нет такого файла или каталога |
$ls * '*' * '?' *
ls: неверный ключ -- e Попробуйте «ls --help» для получения более подробного описания. |
$ls *[*]*[?]*
ls: невозможно получить доступ к *[*]*[?]*: Нет такого файла или каталога |
$ls *cde*
1cdesktop |
$ls *[[]cde]*
ls: невозможно получить доступ к *[[]cde]*: Нет такого файла или каталога |
$ls *\[cde]*
ls: невозможно получить доступ к *[cde]*: Нет такого файла или каталога |
$ls -a
. acpi ._bash bjon group .j_bash .passwd .. alloca.H .._bash core.c -hello _kik_my Regexp.H _1_2_3 __asterisk bjan fcntl.h _hrypun modules s_tol_ 1cdesktop .bash bjen -file1 isdn_ttyfax.c passwd term.h |
$ls .*
.bash ._bash .._bash .j_bash .passwd .: _1_2_3 alloca.H bjen fcntl.h -hello _kik_my Regexp.H 1cdesktop __asterisk bjon -file1 _hrypun modules s_tol_ acpi bjan core.c group isdn_ttyfax.c passwd term.h ..: bigfile names bin ogo.jpg freebsd.jpg pamyatka.pdf granata.jpg press_any_key_to_continue.jpg Light_Alloy_4.4.784_RC2_by_FAFNIR.exe proj lpi 1 sh lpi 2 text man_smb_conf touchlist matrix.jpg |
$ls .[^.]*
.bash ._bash .j_bash .passwd |
$ls .*[^.]*
.bash ._bash .._bash .j_bash .passwd |
$echo zz*
zz* |
$ls zz*
ls: невозможно получить доступ к zz*: Нет такого файла или каталога |
$echo a*
acpi alloca.H |
$to
toe top touch |
$touch "file with spase"
|
$touch 'file with long name'
|
$touch one\ spase
|
$touch o\'Reilly
|
$ls -a
. __asterisk bjon group modules s_tol_ .. .bash core.c -hello one spase term.h _1_2_3 ._bash fcntl.h _hrypun o'Reilly 1cdesktop .._bash -file1 isdn_ttyfax.c passwd acpi bjan file with long name .j_bash .passwd alloca.H bjen file with spase _kik_my Regexp.H |
$touch A:\\WINDOWS\\SYSTEM32
|
$touch "Queen \"Live at Wembley '86\""
|
$touch "-bad-name-"
touch: неверный ключ -- b Попробуйте «touch --help» для получения более подробного описания. |
$touch ./-bad-name-
|
$ls -a
. .bash file with long name one spase .. ._bash file with spase o'Reilly _1_2_3 .._bash group passwd 1cdesktop bjan -hello .passwd acpi bjen _hrypun Queen "Live at Wembley '86" alloca.H bjon isdn_ttyfax.c Regexp.H __asterisk core.c .j_bash s_tol_ A:\WINDOWS\SYSTEM32 fcntl.h _kik_my term.h -bad-name- -file1 modules |
$touch --bad-n@me-
touch: ключ --bad-n@me- не распознан Попробуйте «touch --help» для получения более подробного описания. |
$touch - -bad-n@me-
touch: неверный ключ -- b Попробуйте «touch --help» для получения более подробного описания. |
$touch -- bad-n@me-
|
$touch -- -bad-n@me-
|
$ls -a
. .._bash .j_bash .. bjan _kik_my _1_2_3 bjen modules 1cdesktop bjon one spase acpi core.c o'Reilly alloca.H fcntl.h passwd __asterisk -file1 .passwd A:\WINDOWS\SYSTEM32 file with long name Queen "Live at Wembley '86" -bad-name- file with spase Regexp.H -bad-n@me- group s_tol_ bad-n@me- -hello term.h .bash _hrypun ._bash isdn_ttyfax.c |
$cd
|
$ls -a
. lpi 1 .. lpi 2 .bash_history man_smb_conf .bash_logout matrix.jpg .bash_profile names .bashrc ogo.jpg bigfile pamyatka.pdf bin press_any_key_to_continue.jpg freebsd.jpg .profile granata.jpg proj .l3rc sh Light_Alloy_4.4.784_RC2_by_FAFNIR.exe text .lilalo touchlist |
$touch `< ~/touchlist
> > .bash_history lpi 2/ .bash_logout man_smb_conf .bash_profile matrix.jpg .bashrc names/ bigfile ogo.jpg bin/ pamyatka.pdf freebsd.jpg press_any_key_to_continue.jpg granata.jpg .profile ... .lilalo/ text/ lpi 1/ touchlist > > touch `< ~/touchlist ls -a touch `< ~/touchlist ls -a touch `< ~/touchlist touch `< ~/touchlist > ^C |
$touch `< ~/touchlist`
|
$ls
aba killall abb Light_Alloy_4.4.784_RC2_by_FAFNIR.exe abc lpi 1 abd lpi 2 bigfile man_smb_conf bin matrix.jpg directory1 names directory2 ogo.jpg directory3 pamyatka.pdf file1 press_any_key_to_continue.jpg file2 proj file3 sh freebsd.jpg text granata.jpg touchlist |
$echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games |
$echo HHHHHHHHHH${PATH}HHHHHHHHHHHH
HHHHHHHHHH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesHHHHHHHHHHHH |
$echo $((1/2*4))
0 |
$echo $((4*1/2))
2 |
$A=1
|
$B=2
|
$echo $((A+B))
3 |
$echo ((A+$B))
l3script: syntax error near unexpected token `(' |
$echo ((A+$B))
l3script: syntax error near unexpected token `(' |
$echo $((A+$B))
3 |
$echo (($A+$B))
l3script: syntax error near unexpected token `(' |
$echo ((A+$B))
l3script: syntax error near unexpected token `(' |
$echo((A+$B))
l3script: syntax error near unexpected token `(' |
$echo ((A+B))
l3script: syntax error near unexpected token `(' |
$cat /etc/passwd > newfile
|
$less newfile
|
$sort < /etc/passwd
backup:x:34:34:backup:/var/backups:/bin/sh bin:x:2:2:bin:/bin:/bin/sh daemon:x:1:1:daemon:/usr/sbin:/bin/sh Debian-exim:x:101:103::/var/spool/exim4:/bin/false games:x:5:60:games:/usr/games:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh ivan:x:1001:1001::/home/ivan:/bin/bash libuuid:x:100:101::/var/lib/libuuid:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh ... nobody:x:65534:65534:nobody:/nonexistent:/bin/sh petr:x:1002:1002::/home/petr:/bin/bash proxy:x:13:13:proxy:/bin:/bin/sh root:x:0:0:root:/root:/bin/bash sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync sys:x:3:3:sys:/dev:/bin/sh user:x:1000:1000:user,,,:/home/user:/bin/bash uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh |
$mv /etc//passwd /tmp
mv: невозможно переместить «/etc//passwd» в «/tmp/passwd»: Отказано в доступе |
$mv /etc/passwd /tmp
mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе |
$mv /etc/passwd /tmp 2> errlog
|
$cat errlog
mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе |
$mv /etc/passwd /tmp
mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе |
$mv /etc/passwd /tmp 2> /dev/null
|
$cat >> unsorted
Windows XP WIN NT Solaris fafge didyougo? Linux |
$sort < unsorted > sorted
|
$ls -a
. killall .. .l3rc aba Light_Alloy_4.4.784_RC2_by_FAFNIR.exe abb .lilalo abc lpi 1 abd lpi 2 .bash_history man_smb_conf .bash_logout matrix.jpg .bash_profile names .bashrc newfile bigfile ogo.jpg bin pamyatka.pdf directory1 press_any_key_to_continue.jpg directory2 .profile directory3 proj errlog sh file1 sorted file2 text file3 touchlist freebsd.jpg unsorted granata.jpg |
$cat bigfile | more
|
$cat bigfile | less
|
$mkdir /tmp/etccopy
|
$cp -v /etc/* /tmp/etccopy/ 2>&1 | less
|
$cp -v /etc/* /tmp/etccopy/ | less
|
$cp -v /etc/* /tmp/etccopy/ 2>&1 | /tmp/dirlist
l3script: /tmp/dirlist: Нет такого файла или каталога |
$cp -v /etc/* /tmp/etccopy/ 2>&1 > /tmp/dirlist
cp: пропускается каталог «/etc/acpi» cp: пропускается каталог «/etc/alternatives» cp: пропускается каталог «/etc/apt» cp: пропускается каталог «/etc/bash_completion.d» cp: пропускается каталог «/etc/ca-certificates» cp: пропускается каталог «/etc/calendar» cp: пропускается каталог «/etc/console-setup» cp: пропускается каталог «/etc/cron.d» cp: пропускается каталог «/etc/cron.daily» cp: пропускается каталог «/etc/cron.hourly» ... cp: пропускается каталог «/etc/ssl» cp: пропускается каталог «/etc/sysctl.d» cp: пропускается каталог «/etc/systemd» cp: пропускается каталог «/etc/terminfo» cp: пропускается каталог «/etc/udev» cp: пропускается каталог «/etc/ufw» cp: пропускается каталог «/etc/vim» cp: пропускается каталог «/etc/w3m» cp: пропускается каталог «/etc/X11» cp: пропускается каталог «/etc/xml» |
$cp -v /etc/* /tmp/etccopy/ > /tmp/dirlist 2>&1
|
$cat /etc/passwd | sort | tee sorted_passwd | less
|
$history
1 ls 2 cd 3 exit 4 dir 5 cd names/ 6 ls a* 7 ls *.[cChH] 8 ls *BSD* 9 ls *Linux* 10 ls ... 76 cat bigfile | more 77 cat bigfile | less 78 mkdir /tmp/etccopy 79 cp -v /etc/* /tmp/etccopy/ 2>&1 | less 80* cp -v /etc/* /tmp/etccopy/ | 81 cp -v /etc/* /tmp/etccopy/ 2>&1 | /tmp/dirlist 82 cp -v /etc/* /tmp/etccopy/ 2>&1 > /tmp/dirlist 83 cp -v /etc/* /tmp/etccopy/ > /tmp/dirlist 2>&1 84 cat /etc/passwd | sort | tee sorted_passwd | less 85 history |
$cd ..
|
$cd
|
$cd ..
|
$sed 's/:/ /g' 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 |
$sed 's/:.//' etc/passwd
root:0:0:root:/root:/bin/bash daemon:1:1:daemon:/usr/sbin:/bin/sh bin:2:2:bin:/bin:/bin/sh sys:3:3:sys:/dev:/bin/sh sync:4:65534:sync:/bin:/bin/sync games:5:60:games:/usr/games:/bin/sh man:6:12:man:/var/cache/man:/bin/sh lp:7:7:lp:/var/spool/lpd:/bin/sh mail:8:8:mail:/var/mail:/bin/sh news:9:9:news:/var/spool/news:/bin/sh ... list:38:38:Mailing List Manager:/var/list:/bin/sh irc:39:39:ircd:/var/run/ircd:/bin/sh gnats:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:65534:65534:nobody:/nonexistent:/bin/sh libuuid:100:101::/var/lib/libuuid:/bin/sh Debian-exim:101:103::/var/spool/exim4:/bin/false user:1000:1000:user,,,:/home/user:/bin/bash sshd:102:65534::/var/run/sshd:/usr/sbin/nologin ivan:1001:1001::/home/ivan:/bin/bash petr:1002:1002::/home/petr:/bin/bash |
$sed 's/[^a]//g' etc/passwd | wc -c
71 |
$for i in *\ *
> do > mv "$i" "'echo $i | sed 'S/ /_/g' '" > done^C |
$for i in *\ *; do mv "$i" "'echo $i | sed 'S/ /_/g' '" done
> ^C |
$ls
bin dev home lib lib64 media opt root sbin srv tmp var boot etc initrd.img lib32 lost+found mnt proc run selinux sys usr vmlinuz |
$touch "with p"
touch: невозможно выполнить touch для «with p»: Отказано в доступе |
$cd
|
$ls
aba directory1 file3 lpi 2 pamyatka.pdf text abb directory2 freebsd.jpg man_smb_conf press_any_key_to_continue.jpg touchlist abc directory3 granata.jpg matrix.jpg proj unsorted abd errlog killall names sh bigfile file1 Light_Alloy_4.4.784_RC2_by_FAFNIR.exe newfile sorted bin file2 lpi 1 ogo.jpg sorted_passwd |
$cd names/
|
$ls
_1_2_3 A:\WINDOWS\SYSTEM32 bjen file with long name isdn_ttyfax.c passwd 1cdesktop -bad-name- bjon file with spase _kik_my Queen "Live at Wembley '86" acpi -bad-n@me- core.c group modules Regexp.H alloca.H bad-n@me- fcntl.h -hello one spase s_tol_ __asterisk bjan -file1 _hrypun o'Reilly term.h |
$cd
|
$cat /etc/passwd | tr -d '\n' | wc -c
962 |
$for i in *
> do > mv "$i" "'echo $i | tr '[:lower:]' '[:upper:]''" > done |
$ls
'echo aba | tr '[:lower:]' '[:upper:]'' 'echo abb | tr '[:lower:]' '[:upper:]'' 'echo abc | tr '[:lower:]' '[:upper:]'' 'echo abd | tr '[:lower:]' '[:upper:]'' 'echo bigfile | tr '[:lower:]' '[:upper:]'' 'echo bin | tr '[:lower:]' '[:upper:]'' 'echo directory1 | tr '[:lower:]' '[:upper:]'' 'echo directory2 | tr '[:lower:]' '[:upper:]'' 'echo directory3 | tr '[:lower:]' '[:upper:]'' 'echo errlog | tr '[:lower:]' '[:upper:]'' ... 'echo ogo.jpg | tr '[:lower:]' '[:upper:]'' 'echo pamyatka.pdf | tr '[:lower:]' '[:upper:]'' 'echo press_any_key_to_continue.jpg | tr '[:lower:]' '[:upper:]'' 'echo proj | tr '[:lower:]' '[:upper:]'' 'echo sh | tr '[:lower:]' '[:upper:]'' 'echo sorted_passwd | tr '[:lower:]' '[:upper:]'' 'echo sorted | tr '[:lower:]' '[:upper:]'' 'echo text | tr '[:lower:]' '[:upper:]'' 'echo touchlist | tr '[:lower:]' '[:upper:]'' 'echo unsorted | tr '[:lower:]' '[:upper:]'' |
$ls -s
итого 2948 0 'echo aba | tr '[:lower:]' '[:upper:]'' 0 'echo abb | tr '[:lower:]' '[:upper:]'' 0 'echo abc | tr '[:lower:]' '[:upper:]'' 0 'echo abd | tr '[:lower:]' '[:upper:]'' 8 'echo bigfile | tr '[:lower:]' '[:upper:]'' 4 'echo bin | tr '[:lower:]' '[:upper:]'' 0 'echo directory1 | tr '[:lower:]' '[:upper:]'' 0 'echo directory2 | tr '[:lower:]' '[:upper:]'' 0 'echo directory3 | tr '[:lower:]' '[:upper:]'' ... 20 'echo ogo.jpg | tr '[:lower:]' '[:upper:]'' 84 'echo pamyatka.pdf | tr '[:lower:]' '[:upper:]'' 24 'echo press_any_key_to_continue.jpg | tr '[:lower:]' '[:upper:]'' 4 'echo proj | tr '[:lower:]' '[:upper:]'' 4 'echo sh | tr '[:lower:]' '[:upper:]'' 4 'echo sorted_passwd | tr '[:lower:]' '[:upper:]'' 4 'echo sorted | tr '[:lower:]' '[:upper:]'' 4 'echo text | tr '[:lower:]' '[:upper:]'' 4 'echo touchlist | tr '[:lower:]' '[:upper:]'' 4 'echo unsorted | tr '[:lower:]' '[:upper:]'' |
mv: невозможно переместить «/etc/passwd» в «/tmp/passwd»: Отказано в доступе
Windows XP WIN NT Solaris fafge didyougo? Linux
Время первой команды журнала | 10:21:07 2018-10-17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 14:34:01 2018-10-17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 32.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 1.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.38 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.21 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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