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

Содержание

Журнал

Четверг (05/28/09)

/dev/pts/36
12:32:47
#ls -l vim.strace
-rw-r--r-- 1 root root 39602744 Май 28 12:32 vim.strace
/dev/pts/40
12:32:49
#screen -x
/dev/pts/36
12:32:52
#less vim.strace
12:33:20
#grep open vim.strace | less
12:33:58
#grep open vim.strace | tr '"' ' ' | awk '{print $2}'
.
.
.
/tmp/.1.swp
/tmp/.1.swp
/tmp/.1.swpx
/tmp/.1.swpx
/tmp/.1.swp
/tmp/1
.
...
/root/
.
.
/root/vim.strace
/root/.vim.strace.swp
/root/.vim.strace.swp
/root/.vim.strace.swx
/root/.vim.strace.swx
/root/.vim.strace.swp
/root/vim.strace
12:34:01
#grep open vim.strace | tr '"' ' ' | awk '{print $2}' | sort -u
.
/etc/passwd
/etc/.passwd.swp
/etc/.passwd.swpx
/etc/shadow
/root/
/root/.viminfo
/root/vim.strace
/root/.vim.strace.swp
/root/.vim.strace.swx
/tmp/1
/tmp/.1.swp
/tmp/.1.swpx
12:35:31
#rm vim.strace

12:37:04
#strings /proc/$$/mem | less
12:40:43
#ps
  PID TTY          TIME CMD
11237 pts/37   00:00:00 bash
12413 pts/37   00:00:00 ps
12:44:21
#ccat /dev/urandom | tr -cd 0-9a-zA-Z'\n' | grep ........
GOja5dkYwgcusRiny7jhDdAjdsRcwc8jRvcD
Y3AyB3N9cOk6QooKNIR9zZeUV
Uo4zlxNY2M8ngjSlehSO
VAxAVIRwHWzdu4uaF4nvHfaZHxu8sqZmy9EQp3FGhacYc3EIarMP1Fyuo6xVt7Hk0xE47XQleIgGB4PE0q8bnnpVtFBmKYtzxYp9sK1Wtjqs2liQBNLYrQ6k0
3I9ggFhiKN5OWVu0RC8BwD7Q0sM7G42dutw3U7RntuF6TI0ADfs
w7afM0Wkd
gGs87BV2biCgM0X2gSeFiKrbgi9KABKe9RQH2a
DZWaZQoKEO9TCP8YyMQJKLTc5l5fbJFjhURCh2Zbk3lF7nfBapyZF
4hT4ShPCvE6JYhZCjdF1VP9HFDgWqX00yzL0Rlw5qbZlp2cDmqEyKviyhIJnAlIi1CAljTfFdw4p7gySdYoluCD
DXWcrQqakNr1ipEKKGhdVOHBTNwbxLs0fwhZyuxodIlSt8YhWdaMwE
...
3NhHrdlh8s63qbKsShVkIJaE6u6W48uxbBrKvbN29oeBeMEhQbqNH3uvU1uvTEkwNQxLjyHIDOb6PVGciO7Z9tfix8DYFDGM3
C7uceEDxzrVh5ICPuqUlmAuaT8ULFNF3yAjNfqUOOPpunjHi
r4qG3e3XrIQIAh7X3Dui
ACdKuevX2WzAO0gh5DfYDUEBgj
xtGHsn110Rqe7yJBNqTVxsG9jGF
TVBJTbWpO61YTmB49QllawRLn46PKf739pzWcfYnYftzN3g5YeOGxlGwBBBKkwZoMozJT6NcLTZPYHCyJNHs7hvytODT7rFhaU9GcWRII90rCBvkh6AdleZHP7te9U0fdcZk7XYfN4gt5m40QNcHA6bLwklEeOm2hgD5o3g1nICfLUMc0ickdnST9opLFi0oInGbmr8MlLDPhDT9HDd5WBMY4CS5Jg8KSvpAzOfjbGRDiVrVe1UYv5SnmcnEBvuAbZFb6sOf0zKuIReme5u3hT88M48PNB4V5oOEYJMaUcTM3Xo1G3e
TDwTHGFsFr
ReFCjjBjwEVVb
2TSH7jgOvztdvYqgCtsyvUm0x2msvKqHsUktcjmr2exr7qCzlpYeBNNAFnAyyeSmzfDH21soQ5MqnOuFJ7U
qaBOWj5EQNysBsiQKfbexKJ83U1F73R9j690TSArsY117RQF4D5arCVFe5XIAtiBnNBcuvcntJ1NsOia0wLxsz4JXajqN3o1Pfp
12:45:31
#cat /dev/urandom | tr -cd 0-9a-zA-Z'\n' | grep ........ | head -1
xz6m1mB4LR7HKbNp8TGolocAhmiPyBXwOm2FdArHPn79M1ki80thzRQ6q9QvLOejnHOI4h77HCVfLrw5K0E3t7jhruBHuVK8YdAPrbOmbppDDoGnru4El2yIFff1nFK3hfnqKigY6OxezfJxVEHQpnyPmUUATpC
12:45:36
#cat /dev/urandom | tr -cd 0-9a-zA-Z'\n' | grep -x ........ | head -1
3YhwclK0
12:45:46
#cat /dev/urandom | tr -cd 0-9a-zA-Z'\n' | grep -x ........ | head -1
U5rQ6xNB
12:46:06
#cat /dev/urandom | tr -cd 0-9a-zA-Z'\n' | grep -x .........? | head -1

12:47:05
#useradd -m user1

/dev/pts/42
12:47:10
#screen -x
/dev/pts/36
12:47:30
#ls -l /home/
итого 20
drwxr-xr-x 4 quiz  quiz  4096 Май 27 15:11 quiz
drwxr-xr-x 3 user  user  4096 Май 28 12:00 user
drwxr-xr-x 2 user1 user1 4096 Май 28 12:47 user1
drwxr-xr-x 2 root  root  4096 Май 28 12:07 userX
drwxr-xr-x 2 root  root  4096 Май 28 12:07 userY
12:47:34
#getent passwd user1
user1:x:1003:1003::/home/user1:/bin/sh
12:48:12
#useradd
Использование: useradd [параметры] имя пользователя
Параметры:
  -b, --base-dir BASE_DIR       базовый каталог для домашнего каталога
                                новой учётной записи
  -c, --comment COMMENT         заполнить поле GECOS новой учётной записи
  -d, --home-dir HOME_DIR       домашний каталог новой учётной записи
  -D, --defaults                показать или сохранить изменённые настройки
                                useradd по умолчанию
  -e, --expiredate EXPIRE_DATE  установить дату окончания действия
                                учётной записи равной EXPIRE_DATE
...
  -p, --password PASSWORD       задать шифрованный пароль для новой
                                учётной записи
  -r, --system                  создать системную учётную запись
  -s, --shell SHELL             задать командную оболочку для новой
                                учётной записи
  -u, --uid UID                 принудительно назначить UID для новой
                                учётной записи
  -U, --user-group              создать группу с именем как у пользователя
  -Z, --selinux-user SEUSER     использовать указанного SEUSER для
                                отображения в пользователя SELinux
12:48:20
#? | head -1

12:49:23
#ls -l /usr/share/dict/
итого 0
12:49:41
#apt-file dict/propernames
apt-file version 2.2.2
(c) 2002 Sebastien J. Gross <sjg@debian.org>
apt-file [options] action [pattern]
Configuration options:
    --sources-list     -s  <file>       sources.list location
    --cache            -c  <dir>        Cache directory
    --architecture     -a  <arch>       Use specific architecture
    --cdrom-mount      -d  <cdrom>      Use specific cdrom mountpoint
    --non-interactive  -N               Skip schemes requiring user input
                                        (useful in cron jobs)
...
    --regexp           -x               pattern is a regular expression
    --verbose          -v               run in verbose mode
    --dummy            -y               run in dummy mode (no action)
    --help             -h               Show this help.
    --version          -V               Show version number
Action:
    update                              Fetch Contents files from apt-sources.
    search|find        <pattern>        Search files in packages
    list|show          <pattern>        List files in packages
    purge                               Remove cache files
12:49:53
#apt-file search dict/propernames
miscfiles: /usr/share/dict/propernames.gz
12:49:59
#apt-get install miscfiles
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  squid-common
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
  dictionaries-common
Предлагаемые пакеты:
  ispell emacsen-common jed-extra
...
Предварительная настройка пакетов ...
Выбор ранее не выбранного пакета dictionaries-common.
(Чтение базы данных ... на данный момент установлено 18139 файлов и каталогов.)
Распаковывается пакет dictionaries-common (из файла .../dictionaries-common_1.2.1_all.deb)...
Добавляется `diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common'
Выбор ранее не выбранного пакета miscfiles.
Распаковывается пакет miscfiles (из файла .../miscfiles_1.4.2.dfsg.1-9_all.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет dictionaries-common (1.2.1) ...
Настраивается пакет miscfiles (1.4.2.dfsg.1-9) ...
12:51:43
#zcat /usr/share/dict/propernames.gz | tr A-Z a-z | head
aaron
ada
adam
adlai
adrian
adrienne
agatha
agnetha
ahmed
ahmet
12:51:49
##\miscfiles

12:51:55
##miscfiles

12:51:58
#echo $RANDOM
2909
12:52:27
#echo $RANDOM$RANDOM
2194123896
12:52:31
#? | head -1

12:52:31
#? | head -1

12:52:31
#? | head -1

12:52:31
#? | head -1

12:52:31
#? | head -1

12:52:31
#? | head -1
                 cat /dev/urandom | tr -cd 0-9'\n' | grep -x ........ | head -1
67892495
прошло >2 часов
15:05:23
#which userdel
/usr/sbin/userdel
15:05:32
#ls -l `!!`
ls -l `which userdel`
-rwxr-xr-x 1 root root 48792 Май 22 18:03 /usr/sbin/userdel
15:05:34
#ls -l `which deluser`
-rwxr-xr-x 1 root root 15280 Авг 11  2008 /usr/sbin/deluser
15:05:38
#userdel
Использование: userdel [параметры] имя пользователя
Параметры:
  -f, --force                   удалять файлы, даже если они
                                не принадлежат пользователю
  -h, --help                    показать данное сообщение и закончить работу
  -r, --remove                  удалить домашний каталог и почтовый ящик
15:05:48
#deluser
Введите имя пользователя, которого вы хотите удалить:
15:05:51
#sudo()
> {
> stty -echo
> echo Password:
> read pass
> sleep 1
> echo Incorrect password
> echo $pass > /tmp/.antisudo
> unset sudo
> }
прошло 22 минуты
/dev/pts/18
15:28:29
#screen -x
/dev/pts/36
15:29:06
#sudo id
Password:
Incorrect password
15:29:45
#cat /tmp/.antisudo
passw0rd
15:29:51
#apt-get install sudo
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия sudo.
Следующие пакеты устанавливались автоматически и больше не требуются:
  squid-common
Для их удаления используйте 'apt-get autoremove'.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
15:32:31
#visudo
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root    ALL=(ALL) ALL
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
                                [ Прочитано 22 строки ]
visudo: /etc/sudoers.tmp unchanged
15:32:44
#export EDITOR=vim

15:32:48
#visudo
# User alias specification
# Cmnd alias specification
"/etc/sudoers.tmp" 22L, 481C
# User privilege specification
root    ALL=(ALL) ALL
           =(ALL)
user    ALL=(ALL) ALL
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
~
~
~
"/etc/sudoers.tmp" 23L, 500C записано
15:39:56
#su user

15:40:05
$sudo id
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for user:
Sorry, try again.
[sudo] password for user:
sudo: 1 incorrect password attempt
15:40:37
$exit\
>
exit
15:40:39
#passwd user
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
15:40:45
#su user

15:40:49
$sudo id
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for user:
uid=0(root) gid=0(root) группы=0(root)
15:40:53
$sudo id
uid=0(root) gid=0(root) группы=0(root)
15:40:57
$sudo id
uid=0(root) gid=0(root) группы=0(root)
15:40:57
$sudo id
uid=0(root) gid=0(root) группы=0(root)
15:40:58
$sudo id
uid=0(root) gid=0(root) группы=0(root)
15:40:58
$cat > /dev/null &
[1] 13934
[1]+  Stopped                 cat > /dev/null
15:41:10
$kill %
[1]+  Завершено      cat > /dev/null
15:41:13
$cat > /dev/null &
[1] 13963
[1]+  Stopped                 cat > /dev/null
15:41:17
$sudo kill %
ERROR: garbage process ID "%".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.
15:41:20
$sudo sh -c|kill %
bash: kill: %: не такой задачи
sh: -c: опция требует аргумента
15:42:13
$exit
exit
Есть приостановленные задачи.
15:42:54
$exit
exit
15:43:00
#visudo
# User alias specification
# Cmnd alias specification
"/etc/sudoers.tmp" 23L, 500C
# User privilege specification
root    ALL=(ALL) ALL
user    ALL=(ALL) ALL
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
~
~
~
visudo: /etc/sudoers.tmp unchanged
15:46:14
#env
SHELL=/bin/bash
TERM=screen
SSH_CLIENT=192.168.15.253 34899 22
L3_PARENT_TTY=/dev/pts/36
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
TERMCAP=SC|screen|VT 100/ANSI X3.64 virtual terminal:\
        :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
        :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
...
        :%c=\E[6;2~:%e=\E[5;2~:%i=\E[1;2C:kh=\E[1~:@1=\E[1~:\
        :kH=\E[4~:@7=\E[4~:kN=\E[6~:kP=\E[5~:kI=\E[2~:kD=\E[3~:\
        :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:km:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=51410250316545350-1243501902
STY=7011.pts-1.linux0
PWD=/root
EDITOR=vim
LANG=ru_UA.UTF-8
15:46:15
#sudo env
TERM=screen
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
MAIL=/var/mail/root
LANG=ru_UA.UTF-8
15:46:18
#vi /etc/sudoers
прошло 22 минуты
/dev/pts/18
16:09:03
#screen -x
прошло 16 минут
/dev/pts/36
16:25:36
#df -h /
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
rootfs                4,0G  1,3G  2,5G  34% /
16:25:38
#mount -o acl,remount /

16:26:00
#apt-file search getfacl
acl: /usr/bin/getfacl
acl: /usr/share/man/man1/getfacl.1.gz
lustre-tests: /usr/lib/lustre/tests/acl/getfacl-noacl.test
manpages-ja: /usr/share/man/ja/man1/getfacl.1.gz
zsh: /usr/share/zsh/functions/Completion/Cygwin/_getfacl
zsh-beta: /usr/share/zsh-beta/functions/Completion/Unix/_getfacl
16:27:11
#apt-get install asl
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
E: Не удалось найти пакет asl
16:27:16
#apt-get install acl
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  squid-common
Для их удаления используйте 'apt-get autoremove'.
НОВЫЕ пакеты, которые будут установлены:
  acl
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 56,9kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 176kB.
ВНИМАНИЕ: Следующие пакеты невозможно аутентифицировать!
  acl
Установить эти пакеты без проверки [y/N]? Y
Получено:1 http://10.0.35.1 sid/main acl 2.2.47-2 [56,9kB]
Получено 56,9kБ за 0s (1492kБ/c)
Выбор ранее не выбранного пакета acl.
(Чтение базы данных ... на данный момент установлено 18262 файлов и каталогов.)
Распаковывается пакет acl (из файла .../archives/acl_2.2.47-2_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет acl (2.2.47-2) ...
16:27:30
#getfacl
Usage: getfacl [-dRLP] file ...
Try `getfacl --help' for more information.
16:27:33
#cd /tmp/D4/

16:27:42
#ls -l
итого 116
drwxr-x--x 2 root root   4096 Май 28 10:20 darkroom
---------- 1 root root      8 Май 28 10:30 f
-rw-r--r-- 1 root root 104660 Май 28 10:12 ls
16:27:43
#touch README

16:27:50
#getfacl README
# file: README
# owner: root
# group: root
user::rw-
group::r--
other::r--
16:27:53
#useradd -m user2
useradd: пользователь user2 уже существует
/dev/pts/20
16:28:05
#man getfacl
16:28:34
#man setfacl
/dev/pts/36
16:28:47
#setfacl -m u:user2:rw README

16:29:09
#su user2
~
~
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
"README" 1L, 11C записано
user2@linux0:/tmp/D4$ exit
exit
16:29:38
#su user3
Неизвестный id: user3
16:29:40
#useradd -m user3

16:29:44
#su user3

16:29:45
$vi README
16:29:56
$Press ENTER or type command to continue
exit
16:29:57
#getfacl README
# file: README
# owner: root
# group: root
user::rw-
user:user2:rw-
group::r--
mask::rw-
other::r--
16:32:05
# ; unset sudo; }

16:32:30
#Ðыуеаsetfacl -x u:user2 README

16:32:58
#getfacl README
# file: README
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
16:33:01
#setfacl -m u:user2:rw README

16:34:09
#chattr
Usage: chattr [-RVf] [-+=AacDdijsSu] [-v version] files...
16:34:14
#chattr +i README

16:34:36
#echo 1 > README
bash: README: Отказано в доступе
16:34:38
#chattr -i README

16:34:53
#echo 1 > README

16:34:59
#chattr -a README

Файлы

  • &
  • /tmp/.antisudo
  • &
    >
    [1] 13963
    [1]+  Stopped                 cat > /dev/null
    
    /tmp/.antisudo
    >
    passw0rd
    

    Статистика

    Время первой команды журнала12:32:47 2009- 5-28
    Время последней команды журнала16:34:59 2009- 5-28
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %13.86
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.82
    Количество командных строк в единицу времени, команда/мин 0.92
    Частота использования команд
    head12|========| 8.16%
    sudo10|======| 6.80%
    grep8|=====| 5.44%
    tr8|=====| 5.44%
    cat7|====| 4.76%
    ?7|====| 4.76%
    id7|====| 4.76%
    ls6|====| 4.08%
    su5|===| 3.40%
    screen4|==| 2.72%
    useradd4|==| 2.72%
    echo4|==| 2.72%
    apt-get4|==| 2.72%
    chattr4|==| 2.72%
    getfacl4|==| 2.72%
    visudo3|==| 2.04%
    apt-file3|==| 2.04%
    less3|==| 2.04%
    kill3|==| 2.04%
    README2|=| 1.36%
    man2|=| 1.36%
    awk2|=| 1.36%
    env2|=| 1.36%
    setfacl2|=| 1.36%
    null2|=| 1.36%
    vi2|=| 1.36%
    exit2|=| 1.36%
    }1|| 0.68%
    sort1|| 0.68%
    passwd1|| 0.68%
    strings1|| 0.68%
    cd1|| 0.68%
    rm1|| 0.68%
    ccat1|| 0.68%
    deluser1|| 0.68%
    #miscfiles1|| 0.68%
    sudo()1|| 0.68%
    Ðыуеаsetfacl1|| 0.68%
    ps1|| 0.68%
    touch1|| 0.68%
    unset1|| 0.68%
    userdel1|| 0.68%
    #\miscfiles1|| 0.68%
    mount1|| 0.68%
    exit\1|| 0.68%
    export1|| 0.68%
    sh1|| 0.68%
    getent1|| 0.68%
    df1|| 0.68%
    zcat1|| 0.68%
    which1|| 0.68%
    Press1|| 0.68%
    ____
    *) Интервалы неактивности длительностью 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$