/l3/users/eb/2009/linux1/root :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 :11 :12 :13 :14 :15 :16 :17 :18 :19 :20 :21 :22 :23 :24 :25 :26 :27 :28 :29 :30 :31 :32 :33 |
|
###### ##### ## ########## ###### tree.
|
#(###### #### ###### ... ## ###### ###### ########### 45263 ###### # #########.)
> ############### ##### tree (## ##### .../tree_1.5.2.2-1_i386.deb)... > ############## ######## ### man-db ... > ############# ##### tree (1.5.2.2-1) ... > [root@linux1:user]# mkdir -p a/b/c/d/e > [root@linux1:user]# tree a > a > `-- b > `-- c > `-- d > `-- e > > 4 directories, 0 files > [root@linux1:user]# rm -rf a > mkdir -p a/{1,2,3} > exit > exit > |
#mkdir -p a/{1,2,3}
|
#rm -rf a
|
#mkdir -p a/{1,2,3}
|
#!t
tree a a |-- 1 |-- 2 `-- 3 3 directories, 0 files |
#mkdir -p a/{b/{B1..B3},c,d/{200[1..9]},
|
#!t
tree a a |-- 1 |-- 2 |-- 3 `-- {b `-- {B1..B3},c,d `-- {200[1..9]}, 6 directories, 0 files |
#rm -rf a
|
#mkdir -p a/{b/{B1..B3},c,d/{200[1..9]},
|
#rm -rf a
|
#tree a
a [error opening dir] 0 directories, 0 files |
#mkdir -p a/{1/{x,y,z},2/{X,Y,Z},3}
|
#tree a
a [error opening dir] 0 directories, 0 files |
#tree a
a [error opening dir] 0 directories, 0 files |
#mkdir -p a/{b/{B1,B2,B3},c,d/{2001..2009}}
|
#mkdir `date`
|
#ls -l
итого 56 drwxr-xr-x 2 root root 4096 Май 26 10:49 10:49:42 drwxr-xr-x 2 root root 4096 Май 26 10:49 2009 drwxr-xr-x 2 root root 4096 Май 26 10:49 26 drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Desktop drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Documents drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Download drwxr-xr-x 2 root root 4096 Май 26 10:49 EEST drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Music drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Pictures drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Public drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Templates drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Videos drwxr-xr-x 2 root root 4096 Май 26 10:49 Втр drwxr-xr-x 2 root root 4096 Май 26 10:49 Май |
#rm -rf 10:49:42
|
#drwxr-xr-x 2 root root 4096 ### 26 10:49 2009
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 root root 4096 ### 26 10:49 26
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Desktop
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Documents
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Download
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 root root 4096 ### 26 10:49 EEST
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Music
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Pictures
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Public
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Templates
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 user user 4096 ### 25 02:59 Videos
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 root root 4096 ### 26 10:49 ###
bash: drwxr-xr-x: команда не найдена |
#drwxr-xr-x 2 root root 4096 ### 26 10:49 ###
bash: drwxr-xr-x: команда не найдена |
#[root@linux1:user]# rm -rf 10:49:42
bash: [root@linux1:user]#: команда не найдена |
#rm -rf 10:49:42
|
#rm -rf 2009
|
#rm -rf Втр
|
#rm -rf ÐÑÐай
|
#mkdir "`date`"
|
#date +%Y
2009 |
#date +%Y-%M
2009-54 |
#date +%Y-%M-%D
2009-54-05/26/09 |
#date +%Y.%m.%d
2009.05.26 |
#mkdir `date +%Y.%m.%d`
|
#ls -l
итого 44 drwxr-xr-x 2 root root 4096 Май 26 10:55 2009.05.26 drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Desktop drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Documents drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Download drwxr-xr-x 2 root root 4096 Май 26 10:49 EEST drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Music drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Pictures drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Public drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Templates drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Videos drwxr-xr-x 2 root root 4096 Май 26 10:53 Втр Май 26 10:53:38 EEST 2009 |
#cp -R /etc etc-`date +%Y.%m.%d`
|
#ls -l
итого 48 drwxr-xr-x 2 root root 4096 Май 26 10:55 2009.05.26 drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Desktop drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Documents drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Download drwxr-xr-x 2 root root 4096 Май 26 10:49 EEST drwxr-xr-x 78 root root 4096 Май 26 10:56 etc-2009.05.26 drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Music drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Pictures drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Public drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Templates drwxr-xr-x 2 user user 4096 Ноя 25 02:59 Videos drwxr-xr-x 2 root root 4096 Май 26 10:53 Втр Май 26 10:53:38 EEST 2009 |
#ls -1
2009.05.26 Desktop Documents Download EEST etc-2009.05.26 Music Pictures Public Templates Videos Втр Май 26 10:53:38 EEST 2009 |
#echo `ls -1`
2009.05.26 Desktop Documents Download EEST etc-2009.05.26 Music Pictures Public Templates Videos Втр Май 26 10:53:38 EEST 2009 |
#echo `ls -1` | tr ' ' '\n'
2009.05.26 Desktop Documents Download EEST etc-2009.05.26 Music Pictures Public Templates Videos Втр Май 26 10:53:38 EEST 2009 |
#ls -1 | sed 's/$/;/'
2009.05.26; Desktop; Documents; Download; EEST; etc-2009.05.26; Music; Pictures; Public; Templates; Videos; Втр Май 26 10:53:38 EEST 2009; |
#echo `ls -1 | sed 's/$/;/'`
2009.05.26; Desktop; Documents; Download; EEST; etc-2009.05.26; Music; Pictures; Public; Templates; Videos; Втр Май 26 10:53:38 EEST 2009; |
#which ls
/bin/ls |
#ldd `!!`
ldd `which ls` linux-gate.so.1 => (0xb808a000) librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb8077000) libselinux.so.1 => /lib/libselinux.so.1 (0xb805e000) libacl.so.1 => /lib/libacl.so.1 (0xb8056000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7ef6000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7edd000) /lib/ld-linux.so.2 (0xb808b000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7ed9000) libattr.so.1 => /lib/libattr.so.1 (0xb7ed4000) |
#ldd `which ls``
q exit |
#ldd `which ls``
q exit |
#ldd `which ls`
linux-gate.so.1 => (0xb8038000) librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb8025000) libselinux.so.1 => /lib/libselinux.so.1 (0xb800c000) libacl.so.1 => /lib/libacl.so.1 (0xb8004000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7ea4000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7e8b000) /lib/ld-linux.so.2 (0xb8039000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7e87000) libattr.so.1 => /lib/libattr.so.1 (0xb7e82000) |
#strings `which inetd` | wc -l
^C |
#dpkg -S `which strings`
binutils: /usr/bin/strings |
##rpm -qf `which strings`
|
#apt-get search srtings | less
|
#apt-cache search srtings | less
|
#apt-get install strings
Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово E: Не удалось найти пакет strings |
#dpkg -l | grep strings
ii liburi-perl 1.37+dfsg-1 Manipulates and accesses URI strings |
#apt-file update
bash: apt-file: команда не найдена |
#apt-get install apt-file
Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Следующие пакеты устанавливались автоматически и больше не требуются: update-inetd portmap Для их удаления используйте 'apt-get autoremove'. Будут установлены следующие дополнительные пакеты: curl libapt-pkg-perl libconfig-file-perl libcurl3 libidn11 liblist-moreutils-perl libssh2-1 menu НОВЫЕ пакеты, которые будут установлены: apt-file curl libapt-pkg-perl libconfig-file-perl libcurl3 libidn11 liblist-moreutils-perl libssh2-1 menu ... Настраивается пакет libssh2-1 (1.1-1) ... Настраивается пакет libcurl3 (7.19.4-1) ... Настраивается пакет curl (7.19.4-1) ... Настраивается пакет libconfig-file-perl (1.50-2) ... Настраивается пакет libapt-pkg-perl (0.1.23) ... Настраивается пакет liblist-moreutils-perl (0.22-1+b1) ... Настраивается пакет apt-file (2.2.2) ... You need to run 'apt-file update' as root to update the cache. Настраивается пакет menu (2.1.41) ... Обрабатываются триггеры для menu ... |
#apt-file update
Downloading complete file http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz ^CDownload of http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz failed Command died with signal 2 |
#apt-get install strace
Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Следующие пакеты устанавливались автоматически и больше не требуются: update-inetd portmap Для их удаления используйте 'apt-get autoremove'. НОВЫЕ пакеты, которые будут установлены: strace обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Необходимо скачать 161kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 336kB. Получено:1 http://10.0.35.1 sid/main strace 4.5.18-1 [161kB] Получено 161kБ за 0s (9466kБ/c) Выбор ранее не выбранного пакета strace. (Чтение базы данных ... на данный момент установлено 45561 файлов и каталогов.) Распаковывается пакет strace (из файла .../strace_4.5.18-1_i386.deb)... Обрабатываются триггеры для man-db ... Настраивается пакет strace (4.5.18-1) ... |
#apt-file update
Downloading complete file http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz curl: (18) transfer closed with 15275679 bytes remaining to read Download of http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz failed Command exited with code 18 |
#apt-file update
Downloading complete file http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz |
#apt-file update
Downloading Index http://10.0.35.1:9999/debian/dists/sid/Contents-i386.diff/Index: curl: (22) The requested URL returned error: 404 Download of http://10.0.35.1:9999/debian/dists/sid/Contents-i386.diff/Index failed Command exited with code 22 Downloading complete file http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz File is up-to-date. |
#apt-file update
Downloading Index http://10.0.35.1:9999/debian/dists/sid/Contents-i386.diff/Index: curl: (22) The requested URL returned error: 404 Download of http://10.0.35.1:9999/debian/dists/sid/Contents-i386.diff/Index failed Command exited with code 22 Downloading complete file http://10.0.35.1:9999/debian/dists/sid/Contents-i386.gz File is up-to-date. |
#apt-file search bin/strings
binutils: /usr/bin/strings binutils-multiarch: /usr/bin/strings radare-common: /usr/lib/radare/bin/strings-flag radare-common: /usr/lib/radare/bin/strings-pe-flag |
#apt-get install strings
Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово E: Не удалось найти пакет strings |
#dpkg -i /usr/bin/strings
dpkg-deb: `/usr/bin/strings' не является архивом в формате debian dpkg: не удалось обработать параметр /usr/bin/strings (--install): подпроцесс dpkg-deb --control возвратил код ошибки 2 При обработке следующих пакетов произошли ошибки: /usr/bin/strings |
#radare-common: /usr/lib/radare/bin/strings-flag
bash: radare-common:: команда не найдена |
#radare-common: /usr/lib/radare/bin/strings-pe-flag
bash: radare-common:: команда не найдена |
#[root@linux1:user]# apt-get install strings
bash: [root@linux1:user]#: команда не найдена |
####### ####### #######... ######
|
########### ###### ############
|
####### ########## # #########... ######
|
#E: ## ####### ##### ##### strings
bash: E:: команда не найдена |
#strings
^C |
#strings `which sshd`
%s %3u %-*s %-*s %8llu %s %s Got file attribute "%s" Checking blacklist file %s Found %s in blacklist /usr/share/ssh/blacklist %s.%s-%u /etc/ssh/blacklist key file %.200s too large Not a RSA1 key file %.200s. .pub ... administratively prohibited unknown channel type resource shortage unknown reason channel %d: gc: notify user channel %d: gc: user detached channel_find_open: bad channel type %d cannot happen: SSH_CHANNEL_LARVAL channel_still_open: bad channel type %d Warning: ssh server tried agent forwarding. |
#strings `which sshd` | grep /etc
/etc/ssh/sshd_config Accepted for %.100s [%.100s] by /etc/hosts.equiv. /etc/ssh/shosts.equiv /etc/hosts.equiv /etc/ssh/ssh_known_hosts /etc/ssh/ssh_host_key /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key /etc/motd /etc/nologin /bin/sh /etc/ssh/sshrc /etc/ssh/ssh_known_hosts2 /etc/ssh/blacklist /etc/ssh/moduli /etc/ssh/primes |
#strings `which vim` | grep vimrc
gvimrc mkvimrc pre-vimrc command line $VIM/vimrc $HOME/.vimrc -u <vimrc> Use <vimrc> instead of any .vimrc --cmd <command> Execute <command> before loading any vimrc file system vimrc file: " user vimrc file: " E12: Command not allowed from exrc/vimrc in current dir or tag search |
#dpkg -L ssh | grep /etc
|
#dpkg -l | grep ssh
ii libssh2-1 1.1-1 SSH2 client-side library ii openssh-blacklist 0.4.1 list of default blacklisted OpenSSH RSA and DSA keys ii openssh-blacklist-extra 0.4.1 list of non-default blacklisted OpenSSH RSA and DSA keys ii openssh-client 1:5.1p1-5+b1 secure shell client, an rlogin/rsh/rcp replacement ii openssh-server 1:5.1p1-5+b1 secure shell server, an rshd replacement ii ssh 1:5.1p1-5 secure shell client and server (metapackage) |
#dpkg -L openssh-server | grep /etc
/etc /etc/init.d /etc/init.d/ssh /etc/network /etc/network/if-up.d /etc/network/if-up.d/openssh-server /etc/default /etc/default/ssh /etc/pam.d /etc/pam.d/sshd |
#echo $[2+2*2]
6 |
#echo 2+2*2
2+2*2 |
#echo $[124134523453256345643564356345*2345234523452345234523452345]
-7895679547326803727 |
#-7895679547326803727
bash: -7895679547326803727: команда не найдена |
#echo 2^10000 | bc
19950631168807583848837421626835850838234968318861924548520089498529\ 43883022194663191996168403619459789933112942320912427155649134941378\ 11175937859320963239578557300467937945267652465512660598955205500869\ 18193311542508608460618104685509074866089624888090489894838009253941\ 63325785062156830947390255691238806522509664387444104675987162698545\ 32228685381616943157756296407628368807607322285350916414761839563814\ 58969463899410840960536267821064621427333394036525565649530603142680\ 23496940033593431665145929777327966577560617258203140799419817960737\ 82456837622800373028854872519008344645814546505579296014148339216157\ 34588139257095379769119277800826957735674444123062018757836325502728\ ... 83935917564187338505109702716139154395909915981546544173363116569360\ 31122249937969999226781732358023111862644575299135758175008199839236\ 28461524988108896023224436217377161808635701546848405862232979285387\ 56234865564405369626220189635710288123615675125433383032700290976686\ 50568557157505516727518899194129711337690149916181315171544007728650\ 57318955745092033018530484711381831540732405331903846208403642176370\ 39115506397890007428536721962809034779745333204683687958685802379522\ 18629120080742819551317948157624448298518461509704888027274721574688\ 13159475040973211508049819045580341682694978714131606321068639151168\ 1774304792596709376 |
#echo 2/3 | bc -l
.66666666666666666666 |
#PAM: expected one response, got %u
bash: PAM:: команда не найдена |
#%s: PAM authctxt not initialized
bash: fg: %s:: не такой задачи |
#Internal error: PAM auth succeeded when it should have failed
bash: Internal: команда не найдена |
#%s: received %u environment variables, expected <= 1024
bash: fg: %s:: не такой задачи |
Время первой команды журнала | 10:24:54 2009- 5-26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 12:08:01 2009- 5-26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 8.91 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 24.75 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.72 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 0.98 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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