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

Содержание

Журнал

Вторник (12/25/07)

/dev/ttyp2
09:10:21
#make install clean
===>  Vulnerability check disabled, database not found
=> tree-1.5.1.1.tgz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://mama.indstate.edu/linux/tree/.
tree-1.5.1.1.tgz                              100% of   30 kB   62 kBps
===>  Extracting for tree-1.5.1.1
=> MD5 Checksum OK for tree-1.5.1.1.tgz.
=> SHA256 Checksum OK for tree-1.5.1.1.tgz.
===>  Patching for tree-1.5.1.1
===>  Applying FreeBSD patches for tree-1.5.1.1
===>  Configuring for tree-1.5.1.1
...
===>  Installing for tree-1.5.1.1
===>   Generating temporary packing list
===>  Checking if sysutils/tree already installed
/bin/mkdir -p /usr/local/bin
/bin/mkdir -p /usr/local/man/man1
install  -s -o root -g wheel -m 555 tree /usr/local/bin
install  -o root -g wheel -m 444 man/tree.1 /usr/local/man/man1
===>   Compressing manual pages for tree-1.5.1.1
===>   Registering installation for tree-1.5.1.1
===>  Cleaning for tree-1.5.1.1
09:10:33
#exit
exit
09:10:34
$tree
.
|
|
|
09:10:34
$tree
.
|
|
|
09:10:35
$tree a
a
|
|
|   |
09:10:36
$ls
123                     backup                  fluxbox.core
456                     create-10m-image        image.bz2
DIR                     dir1                    image2.bz2
Documents of user user  dir2                    image3
a                       file                    source
09:10:38
$ls a/
b       g       m
09:10:38
$tree a | less
09:10:40
$ls
123                     backup                  fluxbox.core
456                     create-10m-image        image.bz2
DIR                     dir1                    image2.bz2
Documents of user user  dir2                    image3
a                       file                    source
09:10:41
$cd tree
bash: cd: tree: No such file or directory
09:10:41
$cd a

09:10:42
$tree . | less
09:10:44
$tree
.
|
|
|   |
09:10:46
$cd ..

09:10:47
$mkdir b

09:10:47
$cd b

09:10:48
$mkdir x y z

09:10:49
$cd ..

09:10:50
$tree b
b
|
|
3 directories, 0 files
09:10:50
$mkdir -p a/{b,g/{c/{d,e,f},h,i/{j,k,l}},m}

09:11:14
$for i in user{1,2,3,4,5}
> do
> sudo pw useradd -m $i
> done
pw: user name or id required
pw: user name or id required
pw: user name or id required
pw: user name or id required
pw: user name or id required
09:11:24
$for i in user{1,2,3,4,5}; do sudo pw useradd $i -mone

09:11:28
$sudo pw usershow -a | grep ^user:
user:*:1001:0::0:0:User:/home/user:/usr/local/bin/bash
09:11:33
$sudo pw usershow -a | grep ^user
user:*:1001:0::0:0:User:/home/user:/usr/local/bin/bash
user1:*:1002:1002::0:0:User &:/home/user1:/bin/sh
user2:*:1003:1003::0:0:User &:/home/user2:/bin/sh
user3:*:1004:1004::0:0:User &:/home/user3:/bin/sh
user4:*:1005:1005::0:0:User &:/home/user4:/bin/sh
user5:*:1006:1006::0:0:User &:/home/user5:/bin/sh
09:11:50
$sudo pw usershow -a | grep ^user

09:11:50
$sudo pw usershow -a | grep ^user
user:*:1001:0::0:0:User:/home/user:/usr/local/bin/bash
user1:*:1002:1002::0:0:User &:/home/user1:/usr/local/bin/bash
user2:*:1003:1003::0:0:User &:/home/user2:/usr/local/bin/bash
user3:*:1004:1004::0:0:User &:/home/user3:/usr/local/bin/bash
user4:*:1005:1005::0:0:User &:/home/user4:/usr/local/bin/bash
user5:*:1006:1006::0:0:User &:/home/user5:/usr/local/bin/bash
09:11:50
$for i in hr{1,2,3,4,5} am{1,2,3}; do sudo pw usermod $i -s /usr

09:11:50
$for i in {hr,am,it}{1,2,3,4,5} ; do sudo pw usermod $i -s /usr/
ocal/bin/bash; done
09:12:56
$jot 500 1
352
353
354
355
356
357
358
359
360
361
...
491
492
493
494
495
496
497
498
499
500
09:13:09
$jot 10 1
1
2
3
4
5
6
7
8
9
10
...
91
92
93
94
95
96
97
98
99
100
09:13:11
$jot 100 1

09:13:14
$for i in `jot 100 1`; do sudo useradd newuser$i ; done
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
...
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
sudo: useradd: command not found
09:13:36
$for i in `jot 100 1`; do sudo pw radd newuser$i ; done

09:13:51
$ps usershow -a | grep newuser
ps: illegal option -- s
usage: ps [-aCcefHhjlmrSTuvwXxZ] [-O fmt | -o fmt] [-G gid[,gid...]]
          [-M core] [-N system]
          [-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]
       ps [-L]
09:13:57
$sudo rshow -a | grep newuser
newuser1:*:1007:1007::0:0:User &:/home/newuser1:/bin/sh
newuser2:*:1008:1008::0:0:User &:/home/newuser2:/bin/sh
newuser3:*:1009:1009::0:0:User &:/home/newuser3:/bin/sh
newuser4:*:1010:1010::0:0:User &:/home/newuser4:/bin/sh
newuser5:*:1011:1011::0:0:User &:/home/newuser5:/bin/sh
newuser6:*:1012:1012::0:0:User &:/home/newuser6:/bin/sh
newuser7:*:1013:1013::0:0:User &:/home/newuser7:/bin/sh
newuser8:*:1014:1014::0:0:User &:/home/newuser8:/bin/sh
newuser9:*:1015:1015::0:0:User &:/home/newuser9:/bin/sh
newuser10:*:1016:1016::0:0:User &:/home/newuser10:/bin/sh
...
newuser91:*:1097:1097::0:0:User &:/home/newuser91:/bin/sh
newuser92:*:1098:1098::0:0:User &:/home/newuser92:/bin/sh
newuser93:*:1099:1099::0:0:User &:/home/newuser93:/bin/sh
newuser94:*:1100:1100::0:0:User &:/home/newuser94:/bin/sh
newuser95:*:1101:1101::0:0:User &:/home/newuser95:/bin/sh
newuser96:*:1102:1102::0:0:User &:/home/newuser96:/bin/sh
newuser97:*:1103:1103::0:0:User &:/home/newuser97:/bin/sh
newuser98:*:1104:1104::0:0:User &:/home/newuser98:/bin/sh
newuser99:*:1105:1105::0:0:User &:/home/newuser99:/bin/sh
newuser100:*:1106:1106::0:0:User &:/home/newuser100:/bin/sh
09:13:58
$for i in `jot 100 1`; do sudo pw useradelser$i ; done
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
...
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
pw: unknown keyword `useradel'
^Z
[1]+  Stopped                 sudo pw useradel newuser$i
09:14:10
$kill %1
bash: kill: (4714) - No such process
[1]+  Exit 64                 sudo pw useradel newuser$i
09:14:15
$for i in `jot 100 1`; do sudo pw userdel newuser$i ; done

09:14:36
$sleep 10000000
^Z
[1]+  Stopped                 sleep 10000000
09:14:39
$jobs
[1]+  Stopped                 sleep 10000000
09:14:41
$sleep 900000
^Z
[2]+  Stopped                 sleep 9000000
09:14:44
$jobs
[1]-  Stopped                 sleep 10000000
[2]+  Stopped                 sleep 9000000
09:14:44
$bg
[2]+ sleep 9000000 &
09:14:46
$bg %1
[1]+ sleep 10000000 &
09:14:48
$jobs
[1]-  Running                 sleep 10000000 &
[2]+  Running                 sleep 9000000 &
09:14:49
$kill %1
[1]-  Terminated: 15          sleep 10000000
09:15:06
$kill %2
[2]+  Terminated: 15          sleep 9000000
09:15:07
$kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
09:15:18
$/bin/kill
usage: kill [-s signal_name] pid ...
       kill -l [exit_status]
       kill -signal_name pid ...
       kill -signal_number pid ...
09:15:19
$sleep 9000000 &
[1] 5117
09:15:30
$/bin/kill %1
kill: illegal process id: %1
09:15:32
$kill %1
[1]+  Terminated: 15          sleep 9000000
прошло 27 минут
09:43:04
$ping ya.ru
PING ya.ru (213.180.204.8): 56 data bytes
64 bytes from 213.180.204.8: icmp_seq=0 ttl=55 time=64.735 ms
64 bytes from 213.180.204.8: icmp_seq=1 ttl=55 time=53.222 ms
64 bytes from 213.180.204.8: icmp_seq=2 ttl=55 time=78.664 ms
64 bytes from 213.180.204.8: icmp_seq=3 ttl=55 time=45.529 ms
64 bytes from 213.180.204.8: icmp_seq=4 ttl=55 time=68.287 ms
64 bytes from 213.180.204.8: icmp_seq=5 ttl=55 time=17.416 ms
^C
--- ya.ru ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 17.416/54.642/78.664/19.731 ms
09:43:28
$date
Tue Dec 25 09:43:32 EET 2007
09:43:32
$sudo ntpdate ntp.psn.ru
Password:
Sorry, try again.
Password:
25 Dec 15:16:30 ntpdate[5209]: step time server 194.149.67.130 offset 19967.453612 sec
прошло >5 часов
15:16:30
$date
Tue Dec 25 15:16:39 EET 2007
15:16:39
$sudo ntpdate ntp.psn.ru
Password:
25 Dec 15:18:08 ntpdate[5221]: step time server 194.149.67.130 offset 65.636761 sec
15:18:08
$sudo ntpdate ntp.psn.ru
25 Dec 15:18:30 ntpdate[5227]: step time server 194.149.67.130 offset 14.091258 sec
15:18:30
$sudo ntpdate ntp.psn.ru
25 Dec 15:18:43 ntpdate[5233]: step time server 194.149.67.130 offset 9.170003 sec
15:18:43
$# http://xgu.ru/l3/users/oz/

15:20:58
$echo $[234+23842*11221]
267531316
15:21:07
$i=0

15:21:13
$while [ $i -lt 10 ]
> do
> echo $i
> i=$[i+1]
> done
0
1
2
3
4
5
6
7
8
9
15:21:17
$while [ $i -lt 10 ]; do echo $i; i=$i+1; done

15:21:24
$i=0

15:21:25
$while [ $i -lt 0+1+1+1+1ho $i; i=$i+1; done
bash: [: 0+1+1+1+1: integer expression expected
15:21:27
$while [ $i -ne1+1+1+1 ]; do echo $i; i=$i+1; done
bash: [: 0+1+1+1+1: integer expression expected
15:21:29
$while [ '!' 1+1+1+1 ]; do echo $i; i=$i+1; done
0
0+1
0+1+1
0+1+1+1
15:21:34
$which [
/bin/[
15:21:48
$echo 23242432432424324*234204230-492-04920-49230-4 | bc
5443475991162965835635874
15:21:57
$echo $[242432432424324*234204230-492-04920-49230-4]
bash: 23242432432424324*234204230-492-04920: value too great for base (error token is "04920")
15:22:09
$echo 2^10 | bc
1024
15:22:11
$echo 2^100| bc
1267650600228229401496703205376
15:22:12
$echo 2^1000| bc
10715086071862673209484250490600018105614048117055336074437503883703\
51051124936122493198378815695858127594672917553146825187145285692314\
04359845775746985748039345677748242309854210746050623711418779541821\
53046474983581941267398767559165543946077062914571196477686542167660\
429831652624386837205668069376
15:22:12
$echo 2^10000| bc
19950631168807583848837421626835850838234968318861924548520089498529\
43883022194663191996168403619459789933112942320912427155649134941378\
11175937859320963239578557300467937945267652465512660598955205500869\
18193311542508608460618104685509074866089624888090489894838009253941\
63325785062156830947390255691238806522509664387444104675987162698545\
32228685381616943157756296407628368807607322285350916414761839563814\
58969463899410840960536267821064621427333394036525565649530603142680\
23496940033593431665145929777327966577560617258203140799419817960737\
82456837622800373028854872519008344645814546505579296014148339216157\
34588139257095379769119277800826957735674444123062018757836325502728\
...
83935917564187338505109702716139154395909915981546544173363116569360\
31122249937969999226781732358023111862644575299135758175008199839236\
28461524988108896023224436217377161808635701546848405862232979285387\
56234865564405369626220189635710288123615675125433383032700290976686\
50568557157505516727518899194129711337690149916181315171544007728650\
57318955745092033018530484711381831540732405331903846208403642176370\
39115506397890007428536721962809034779745333204683687958685802379522\
18629120080742819551317948157624448298518461509704888027274721574688\
13159475040973211508049819045580341682694978714131606321068639151168\
1774304792596709376
15:22:25
$echo 2^256bc
11579208923731619542357098500868790785326998466564056403945758400791\
3129639936
15:22:28
$echo 2^128bc
340282366920938463463374607431768211456
15:22:32
$echo 2^32 bc
4294967296
15:22:35
$echo ~
/home/user
15:23:03
$echo ~root
/root
15:23:05
$echo ~-
/home/user/b
15:23:09
$cd /

15:23:11
$cd /etc

15:23:11
$cd ~-

15:23:13
$cd -
/etc
15:23:16
$cd -
/
15:23:16
$cd -
/etc
15:23:16
$cd -
/
15:23:16
$cd -
/etc
15:23:16
$cd -
/
15:23:24
$a do etogo byli v ~-

15:23:24
$echo etogo byli v ~-
a do etogo byli v /etc
15:23:34
$echo ">>>>>$ssdgdsgf<<<<<<"
>>>>><<<<<<
15:23:44
$A=10

15:23:45
$echo ">>>>>$A<<<<<"
>>>>>10<<<<<<
15:23:46
$cat
4765
4765
6786787688
6786787688
^[[17~769879779\

Файлы

  • cat
  • cat
    >
    4765
    4765
    6786787688
    6786787688
    ^[[17~769879779\
    

    Статистика

    Время первой команды журнала09:10:21 2007-12-25
    Время последней команды журнала15:23:46 2007-12-25
    Количество командных строк в журнале96
    Процент команд с ненулевым кодом завершения, %15.62
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 0.67
    Количество командных строк в единицу времени, команда/мин 2.37
    Частота использования команд
    echo16|==========| 10.81%
    cd14|=========| 9.46%
    do10|======| 6.76%
    sudo9|======| 6.08%
    for8|=====| 5.41%
    done8|=====| 5.41%
    kill7|====| 4.73%
    tree7|====| 4.73%
    grep6|====| 4.05%
    while5|===| 3.38%
    bc5|===| 3.38%
    ntpdate4|==| 2.70%
    pw4|==| 2.70%
    i=$i+14|==| 2.70%
    sleep3|==| 2.03%
    mkdir3|==| 2.03%
    ls3|==| 2.03%
    jot3|==| 2.03%
    jobs3|==| 2.03%
    bg2|=| 1.35%
    <2|=| 1.35%
    >2|=| 1.35%
    i=02|=| 1.35%
    less2|=| 1.35%
    "2|=| 1.35%
    date2|=| 1.35%
    #1|| 0.68%
    make1|| 0.68%
    cat1|| 0.68%
    ps1|| 0.68%
    ping1|| 0.68%
    rshow1|| 0.68%
    $A<1|| 0.68%
    A=101|| 0.68%
    exit1|| 0.68%
    $ssdgdsgf<1|| 0.68%
    which1|| 0.68%
    a1|| 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$