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

Содержание

Журнал

Вторник (08/29/06)

/dev/ttyp5
11:38:27
$cat /usr/share/dict/words | xargs -n3 echo | less
11:38:42
$less /usr/share/dict/propernames
11:39:28
$wc -l /usr/share/dict/propernames
    1308 /usr/share/dict/propernames
11:39:30
$cat /usr/share/dict/propernames | tr '[A-Z]' '[a-z]' | less
11:40:14
$cat /usr/share/dict/propernames | tr '[A-Z]' '[a-z]' | xargs

11:40:14
$ pw useradd

11:41:19
$su
Password:
11:41:23
#cat /usr/share/dict/propernames | tr '[A-Z]' '[a-z]' | xargs
aaron adam adlai adrian agatha ahmed ahmet aimee al alain alan alastair albert alberto alejandro alex alexander alexis alf alfred alison allan allen alvin amanda amarth amedeo ami amigo amir amos amy anatole anatoly anderson andre andrea andreas andrew andries andy angela angus anita ann anna annard anne annie anthony anton antonella antonio antony archie ariel arlene arne arnold art arthur audrey
/dev/ttypa
11:43:49
$top
last pid: 36222;  load averages:  1.41,  0.96,  0.54    up 1+19:17:10  11:44:15
47             2           5
46 processes20.6 running 0.0 sleepin50.2           0.4             28.8
      9                        4                              2504
CPU states:     % user,     % nice,     % system,     % interrupt,     % idle
Mem: 28M Active, 771M Inact, 133M Wired, 53M Cache, 110M Buf, 3144K Free
                             8                    nanslp      7 25.68
Swap: 2007M Total, 2007M Fr  8          0K   988K wait           9
36220                        8       8464K  7008K nanslp      5  0.00% perl5.8.
29661 root                  96       3400K  2184K select      4        sendmail
...
30016 user               1  96    0  2056K  1620K select   0:01  0.00% screen
29953 user               1  96    0  6080K  2636K select   0:01  0.00% sshd
  299 root               1  96    0  1300K   844K select   0:00  0.00% syslogd
30091 user               1  96    0  6080K  2628K select   0:00  0.00% sshd
29729 user               1  96    0  1264K   756K select   0:00  0.00% script
  461 root               1  96    0  1260K   672K select   0:00  0.00% moused
  358 root               1  96    0  1212K   680K select   0:00  0.00% usbd
30018 user               1  96    0  1264K   760K select   0:00  0.00% script
29954 user               1  96    0  1264K   756K select   0:00  0.00% script
29769 user               1   8    0  3216K  1964K wait     0:00  0.00% bash
/dev/ttyp5
11:45:52
#pw user show | less
11:45:59
#pw user show -a | less
11:46:44
#cat /usr/share/dict/propernames | grep -v root | tr '[A-Z]'

/dev/ttypa
11:48:48
$bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
(interrupt) use quit to exit.
exit
0
qq
0
(interrupt) use quit to exit.
(interrupt) use quit to exit.
(interrupt) use quit to exit.
exit
0
/dev/ttyp5
11:51:09
#echo 1248173849712398472395*218937198571398513895 | bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
273271685986110310213907209492571181428525
11:51:21
#echo 2^1000 | bc
10715086071862673209484250490600018105614048117055336074437503883703\
51051124936122493198378815695858127594672917553146825187145285692314\
04359845775746985748039345677748242309854210746050623711418779541821\
53046474983581941267398767559165543946077062914571196477686542167660\
429831652624386837205668069376
11:51:39
#which bc
/usr/bin/bc
11:51:47
#echo $((2123421414124*12341234532523))
-5862210669101202524
11:52:12
#echo $((1+100))
101
11:52:21
#i=0

11:52:30
#while [ $i -lt 10 ]
> do
> echo $i
> i=$((i+1))
> done
0
1
2
3
4
5
6
7
8
9
11:52:46
#which [
/bin/[
11:54:17
#echo $?
0
11:54:28
#cp /etc/asdfasfassafasf /tmp
cp: /etc/asdfasfassafasf: No such file or directory
11:54:48
#echo $?
1
11:54:52
#echo aaaaa$BBBBBB xxxxx
aaaaa xxxxx
11:57:03
#echo aaaaa${BBBBBB} xxxxx
aaaaa xxxxx
11:57:18
#echo aaaaa${BBBBBB}xxxxx
aaaaaxxxxx
11:57:20
#echo aaaaa$BBBBBBxxxxx
aaaaa
11:57:36
#BBBBBBxxxxx=ZLO

11:57:41
#echo aaaaa$BBBBBBxxxxx
aaaaaZLO
11:57:42
#set | less
11:58:18
#a=100

11:59:01
#echo $a
100
11:59:03
#bash

11:59:08
#echo $a

11:59:10
#exit
exit
11:59:13
#echo $a
100
11:59:46
#export a

11:59:48
#bash

11:59:59
#echo $a
100
12:00:00
#a=23421342134214

12:00:24
#echo $a
23421342134214
12:00:25
#exit
exit
12:00:28
#echo $a
100
12:00:31
#echo $HOSTNAME
fbsd1.unix.nt
/dev/ttyv0
12:05:10
$date
×ÔÏÒÎÉË, 29 Á×ÇÕÓÔÁ 2006 Ç. 12:06:52 (EEST)
12:06:52
$cd `/names
>
/dev/ttyp5
12:09:05
#primer="a c"

12:09:21
#echo $primer
a c
12:09:24
#mkdir $primer

12:09:33
#ls
a       c
12:09:34
#ls -l
total 4
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:09 a
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:09 c
12:09:37
#rmdir $primer

12:09:44
#mkdir "$primer"

12:09:49
#ls -l
total 2
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:09 a c
12:09:55
#mkdir '$primer'

12:10:48
#ls -l
total 4
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:10 $primer
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:09 a c
12:10:51
#mkdir $(date)

12:12:42
#ls -l
total 18
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:10 $primer
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 (EEST)
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 12:12:42
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 2006
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 29
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:09 a c
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 Á×ÇÕÓÔÁ
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 ×ÔÏÒÎÉË,
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 Ç.
12:12:53
#mkdir "$(date)"

12:12:58
#ls -l
total 20
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:10 $primer
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 (EEST)
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 12:12:42
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 2006
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 29
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:09 a c
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 Á×ÇÕÓÔÁ
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 ×ÔÏÒÎÉË,
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 ×ÔÏÒÎÉË, 29 Á×ÇÕÓÔÁ 2006 Ç. 12:12:58 (EEST)
drwxr-xr-x  2 root  wheel  512 29 Á×Ç 12:12 Ç.
/dev/ttyv0
12:14:45
$cd /home/user/names/

12:14:55
$la a*
bash: la: command not found
12:15:02
$ls a*
ab[cde]fg       apr             aug
12:15:06
$sl *.[cChH]
bash: sl: command not found
12:15:36
$ls *.[cChH]
footer.h        header.h        module.c        module2.c       program.C
12:15:47
$ls *BSD*
*FreeBSD*
12:16:02
$ls j?n
jan     jun
12:16:23
$ls -- -*
-hard-to-del-
12:16:43
$ls ./-*
./-hard-to-del-
12:17:02
$ls \-*
ls: illegal option -- -
usage: ls [-ABCFGHILPRSTWZabcdfghiklmnopqrstuwx1] [file ...]
12:17:32
$ls .-.*
ls: .-.*: No such file or directory
12:17:52
$ls `-`*
bash: -: command not found
"Live at Wembley' 86"           dec
'86"                            feb
*FreeBSD*                       footer.h
-hard-to-del-                   gnu-linux
1*2                             header.h
1inux                           jan
2*2=4                           jul
2*2=5?                          jun
2*3                             linux
A:\WINDOWSSYSTEM32              linux-kernel
A:\WINDOWS\SYSTEM32             mar
M'cDonalds                      may
Queen                           module.c
Queen "Live at Wembley' 86"     module2.c
The_Best_OS                     name$with#very~starnge'symbols'
The_Worst_OS                    nov
][                              oct
ab[cde]fg                       program.C
apr                             sep
aug
12:18:29
$ls `-*@
>
12:19:03
$ls `-*`
bash: -hard-to-del-: command not found
"Live at Wembley' 86"           dec
'86"                            feb
*FreeBSD*                       footer.h
-hard-to-del-                   gnu-linux
1*2                             header.h
1inux                           jan
2*2=4                           jul
2*2=5?                          jun
2*3                             linux
A:\WINDOWSSYSTEM32              linux-kernel
A:\WINDOWS\SYSTEM32             mar
M'cDonalds                      may
Queen                           module.c
Queen "Live at Wembley' 86"     module2.c
The_Best_OS                     name$with#very~starnge'symbols'
The_Worst_OS                    nov
][                              oct
ab[cde]fg                       program.C
apr                             sep
aug
12:19:45
$ls "-*"
ls: illegal option -- *
usage: ls [-ABCFGHILPRSTWZabcdfghiklmnopqrstuwx1] [file ...]
12:20:15
$pwd
/home/user/names
12:24:56
$cd..
bash: cd..: command not found
12:25:00
$cd ..

12:25:03
$touch `cat ~/touchlist`

12:25:35
$cd ~/touchlist
bash: cd: /home/user/touchlist: Not a directory
12:25:43
$ls
backup
base
bin
body
c
day1
doc
file
file1
file2
...
splitted-dd-ac
splitted-dd-ad
splitted-dd-ae
test
text
text1
textvi
touchlist
very_long_file_name
ÐÏÎÅÄÅÌØÎÉË, 28 Á×ÇÕÓÔÁ 2006 Ç. 15:00:01 (EEST)
12:25:48
$touch
.Xauthority
.bash_history
.bash_logout
.bash_profile
.bashrc
.cshrc
.gtkrc
.inputrc
.kde/
.l3rc
...
splitted-dd-ac
splitted-dd-ad
splitted-dd-ae
test/
text/
text1
textvi
touchlist
very_long_file_name
ÐÏÎÅÄÅÌØÎÉË, 28 Á×ÇÕÓÔÁ 2006 Ç. 15:00:01 (EEST)/
12:25:48
$A=1

12:27:46
$B=2

12:27:49
$echo $((A+B))
3
12:28:06
$echo ((A+B))
bash: syntax error near unexpected token `('
12:28:12
$echo ((A+$B))
bash: syntax error near unexpected token `('
12:28:21
$echo `((A+$B))`

12:29:27
$echo `((A+$B))'
>
12:29:53
$echo $((1/2))
0
12:30:27
$echo $((1/2*4))
0
12:30:37
$echo $((4*1/2))
2
12:30:54
$date
×ÔÏÒÎÉË, 29 Á×ÇÕÓÔÁ 2006 Ç. 12:31:22 (EEST)
12:31:22
$pwd
/home/user
12:31:40
$touch `cat ~/touchlist'
>
>
12:33:21
$ls ~/touchlist
/home/user/touchlist
12:33:31
$cd ~/touchlist
bash: cd: /home/user/touchlist: Not a directory
12:33:45
$cd ..

12:33:54
$cd

12:33:56
$pwd
/home/user

Статистика

Время первой команды журнала11:38:27 2006- 8-29
Время последней команды журнала12:33:56 2006- 8-29
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %11.88
Процент синтаксически неверно набранных команд, % 2.97
Суммарное время работы с терминалом *, час 0.92
Количество командных строк в единицу времени, команда/мин 1.82
Частота использования команд
echo27|=======================| 23.28%
ls20|=================| 17.24%
cd7|======| 6.03%
less6|=====| 5.17%
mkdir5|====| 4.31%
cat5|====| 4.31%
tr4|===| 3.45%
pw3|==| 2.59%
bc3|==| 2.59%
touch3|==| 2.59%
pwd3|==| 2.59%
xargs3|==| 2.59%
bash2|=| 1.72%
exit2|=| 1.72%
date2|=| 1.72%
which2|=| 1.72%
a=1001|| 0.86%
while1|| 0.86%
BBBBBBxxxxx=ZLO1|| 0.86%
cp1|| 0.86%
set1|| 0.86%
wc1|| 0.86%
a=234213421342141|| 0.86%
sl1|| 0.86%
la1|| 0.86%
cd..1|| 0.86%
top1|| 0.86%
primer="a1|| 0.86%
B=21|| 0.86%
export1|| 0.86%
i=01|| 0.86%
rmdir1|| 0.86%
grep1|| 0.86%
A=11|| 0.86%
su1|| 0.86%
____
*) Интервалы неактивности длительностью 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$