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

Содержание

Журнал

Вторник (11/28/17)

/dev/pts/2
09:24:36
#update the values of LINES and COLUMNS.
cp: после «/root/.vimrc» пропущен операнд, задающий целевой файл
Попробуйте «cp --help» для получения более подробного описания.
09:25:03
#cp ~/ .vimrc
cp: пропускается каталог «/root/»
09:25:14
#cp ~/ .vimrc .
cp: пропускается каталог «/root/»
cp: не удалось выполнить stat для «.vimrc»: Нет такого файла или каталога
09:25:24
#cp ~/.vimrc .

09:25:45
#cd

09:28:30
#history
    1  ifconfig
    2  vim /etc/network/interfaces
    3  nano /etc/network/interfaces
    4  /etc/init.d/networking restart
    5  ifconfig
    6  route
    7  ping 192.168.13.253
    8  shutdown -r now
    9  exit
   10  ping ya.ru
...
  217  echo $HISTSIZE
  218  cd /etc/skel/
  219  vi .bshrc
  220  vi .bashrc
  221  cp ~/.vimrc
  222  cp ~/ .vimrc
  223  cp ~/ .vimrc .
  224  cp ~/.vimrc .
  225  cd
  226  history
прошло 24 минуты
09:52:44
#!235
l3script: !235: event not found
09:53:09
#!235
l3script: !235: event not found
09:53:35
#!216
echo $HISTSIZE
2000
09:54:43
#!226
history
    1  ifconfig
    2  vim /etc/network/interfaces
    3  nano /etc/network/interfaces
    4  /etc/init.d/networking restart
    5  ifconfig
    6  route
    7  ping 192.168.13.253
    8  shutdown -r now
    9  exit
...
  219  vi .bshrc
  220  vi .bashrc
  221  cp ~/.vimrc
  222  cp ~/ .vimrc
  223  cp ~/ .vimrc .
  224  cp ~/.vimrc .
  225* !
  226  history
  227  echo $HISTSIZE
  228  history
09:54:57
#!?-a
ifconfig -a | sed  s/00:16:4a:00:0.:a0/00:16:4a:00:0.:a$i/g
eth0      Link encap:Ethernet  HWaddr 00:16:3e:00:00:03
          inet addr:192.168.13.3  Bcast:192.168.13.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63548 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55338 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8941889 (8.5 MiB)  TX bytes:6428107 (6.1 MiB)
          Interrupt:72
...
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:74
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
09:55:32
#!?-a
ifconfig -a | sed  s/00:16:4a:00:0.:a0/00:16:4a:00:0.:a$i/g
eth0      Link encap:Ethernet  HWaddr 00:16:3e:00:00:03
          inet addr:192.168.13.3  Bcast:192.168.13.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63599 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55418 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8944716 (8.5 MiB)  TX bytes:6440846 (6.1 MiB)
          Interrupt:72
...
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:74
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
09:57:54
#!?-l
ls -l /bin/*sh
-rwxr-xr-x 1 root root 975488 Сен 25  2014 /bin/bash
-rwxr-xr-x 1 root root 106920 Мар  1  2012 /bin/dash
lrwxrwxrwx 1 root root     21 Ноя 28 09:26 /bin/ksh -> /etc/alternatives/ksh
lrwxrwxrwx 1 root root      4 Сен 25  2014 /bin/rbash -> bash
lrwxrwxrwx 1 root root     22 Ноя 28 09:26 /bin/rzsh -> /etc/alternatives/rzsh
lrwxrwxrwx 1 root root      4 Мар  1  2012 /bin/sh -> dash
lrwxrwxrwx 1 root root     21 Ноя 28 09:26 /bin/zsh -> /etc/alternatives/zsh
09:58:11
#history -w

/dev/pts/5
09:59:59
#history -r

/dev/pts/2
10:01:27
#history --help
l3script: history: --: неправильная опция
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
10:02:25
#help history
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
    Display or manipulate the history list.
    Display the history list with line numbers, prefixing each modified
    entry with a `*'.  An argument of N lists only the last N entries.
    Options:
      -c        clear the history list by deleting all of the entries
      -d offset delete the history entry at offset OFFSET.
      -a        append history lines from this session to the history file
      -n        read all history lines not already read from the history file
      -r        read the history file and append the contents to the history
...
      -p        perform history expansion on each ARG and display the result
        without storing it in the history list
      -s        append the ARGs to the history list as a single entry
    If FILENAME is given, it is used as the history file.  Otherwise,
    if $HISTFILE has a value, that is used, else ~/.bash_history.
    If the $HISTTIMEFORMAT variable is set and not null, its value is used
    as a format string for strftime(3) to print the time stamp associated
    with each displayed history entry.  No time stamps are printed otherwise.
    Exit Status:
    Returns success unless an invalid option is given or an error occurs.
10:03:43
#cd /b
bin/  boot/
10:03:43
#cd /bin/

10:12:02
#ls
bash     chvt  df             echo       fuser     ip        lessecho  login  mktemp      mv              nisdomainname  ps        rnano      sh          sync      umount         ypdomainname  zforce  zsh4
busybox  cp    dir            egrep      grep      kbd_mode  lessfile  ls     more        nano            open           pwd       run-parts  sh.distrib  tailf     uname          zcat          zgrep
cat      cpio  dmesg          false      gunzip    kill      lesskey   lsblk  mount       nc              openvt         rbash     rzsh       sleep       tar       uncompress     zcmp          zless
chgrp    dash  dnsdomainname  fgconsole  gzexe     kmod      lesspipe  lsmod  mountpoint  nc.traditional  pidof          readlink  sed        ss          tempfile  unicode_start  zdiff         zmore
chmod    date  domainname     fgrep      gzip      ksh       ln        mkdir  mt          netcat          ping           rm        setfont    stty        touch     vdir           zegrep        znew
chown    dd    dumpkeys       findmnt    hostname  less      loadkeys  mknod  mt-gnu      netstat         ping6          rmdir     setupcon   su          true      which          zfgrep        zsh
10:12:05
#ls k*
kbd_mode  kill  kmod  ksh
10:13:40
#ls k??
ksh
10:14:29
#ls ?a*
bash  cat  dash  date  false  nano  tailf  tar
10:14:49
#ls ? [ap]
ls: невозможно получить доступ к ?: Нет такого файла или каталога
ls: невозможно получить доступ к [ap]: Нет такого файла или каталога
10:16:47
#ls ? [ap]*
ls: невозможно получить доступ к ?: Нет такого файла или каталога
pidof  ping  ping6  ps  pwd
10:16:55
#ls ? [a-p]*
ls: невозможно получить доступ к ?: Нет такого файла или каталога
bash     chgrp  chvt  dash  df     dnsdomainname  echo   fgconsole  fuser   gzexe     ip        kmod  lessecho  lesspipe  login  lsmod  mktemp  mountpoint  mv    nc.traditional  nisdomainname  pidof  ps
busybox  chmod  cp    date  dir    domainname     egrep  fgrep      grep    gzip      kbd_mode  ksh   lessfile  ln        ls     mkdir  more    mt          nano  netcat          open           ping   pwd
cat      chown  cpio  dd    dmesg  dumpkeys       false  findmnt    gunzip  hostname  kill      less  lesskey   loadkeys  lsblk  mknod  mount   mt-gnu      nc    netstat         openvt         ping6
10:17:06
#ls ?[ap]*
bash  cat  cp  cpio  dash  date  false  ip  nano  open  openvt  tailf  tar  ypdomainname
10:17:36
#ls ?[a-p]*
bash   chvt  dd             domainname  fgrep     kill      lesskey   mkdir   mountpoint      netstat        ping      rmdir     sh          tempfile    unicode_start  zcmp    zgrep
cat    cp    df             echo        findmnt   kmod      lesspipe  mknod   nano            nisdomainname  ping6     rnano     sh.distrib  touch       vdir           zdiff   zless
chgrp  cpio  dir            egrep       hostname  less      ln        mktemp  nc              open           rbash     sed       sleep       umount      which          zegrep  zmore
chmod  dash  dmesg          false       ip        lessecho  loadkeys  more    nc.traditional  openvt         readlink  setfont   tailf       uname       ypdomainname   zfgrep  znew
chown  date  dnsdomainname  fgconsole   kbd_mode  lessfile  login     mount   netcat          pidof          rm        setupcon  tar         uncompress  zcat           zforce
10:17:42
#ls ?[a-p]* | wc -l
84
10:20:00
#ls ?[a-p]* | wc -nl
wc: неверный ключ -- n
Попробуйте «wc --help» для получения более подробного описания.
10:20:31
#ls ?[a-p]* | -nl
l3script: -nl: команда не найдена
10:20:44
#ls ?[a-p]* | -nl
l3script: -nl: команда не найдена
10:21:03
#ls ?[a-p]* | nl
     1  bash
     2  cat
     3  chgrp
     4  chmod
     5  chown
     6  chvt
     7  cp
     8  cpio
     9  dash
    10  date
...
    75  zcat
    76  zcmp
    77  zdiff
    78  zegrep
    79  zfgrep
    80  zforce
    81  zgrep
    82  zless
    83  zmore
    84  znew
10:21:14
#ls ?[!a-p]*
busybox  dumpkeys  fuser  grep  gunzip  gzexe  gzip  ksh  ls  lsblk  lsmod  mt  mt-gnu  mv  ps  pwd  run-parts  rzsh  ss  stty  su  sync  true  zsh  zsh4
10:24:10
#cd

10:25:26
#cd ~

10:25:40
#> 213414135

10:26:21
#> 2134141354112

10:26:26
#> 213414134543

10:26:31
#> 213414shtt

10:26:41
#> 21343553ffr

10:26:47
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr  install  ~text<F2>hello-vi.txt
10:26:53
#rm ~text\<F2\>hello-vi.txt

10:27:19
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr  install
10:27:21
#rm install

10:27:40
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr
10:27:42
#sho
shopt            showconsolefont  showkey
10:27:42
#shopt
autocd          off
cdable_vars     off
cdspell         off
checkhash       off
checkjobs       off
checkwinsize    on
cmdhist         on
compat31        off
compat32        off
compat40        off
...
no_empty_cmd_completion off
nocaseglob      off
nocasematch     off
nullglob        off
progcomp        on
promptvars      on
restricted_shell        off
shift_verbose   off
sourcepath      on
xpg_echo        off
10:27:52
#shopt -s extglob

10:29:26
#shopt
autocd          off
cdable_vars     off
cdspell         off
checkhash       off
checkjobs       off
checkwinsize    on
cmdhist         on
compat31        off
compat32        off
compat40        off
...
no_empty_cmd_completion off
nocaseglob      off
nocasematch     off
nullglob        off
progcomp        on
promptvars      on
restricted_shell        off
shift_verbose   off
sourcepath      on
xpg_echo        off
10:29:52
#ls +([[:digit:]])
213414134543  213414135  2134141354112
10:32:15
#man bash
10:37:48
#to
toe    top    touch
10:37:48
#touch f(1,2,3,4,5)
l3script: syntax error near unexpected token `('
10:43:56
#touch f{1,2,3,4,5}

10:44:36
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr  f1  f2  f3  f4  f5
10:44:38
#cd

10:45:46
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr  f1  f2  f3  f4  f5
10:45:48
#ls f{1,2,3,4,5} | xargs -i cp -v {} /tmp
«f1» -> «/tmp/f1»
«f2» -> «/tmp/f2»
«f3» -> «/tmp/f3»
«f4» -> «/tmp/f4»
«f5» -> «/tmp/f5»
10:49:55
#whi
which     while     whiptail
10:49:55
#which who
/usr/bin/who
10:56:21
#ls -l /usr/bin/w
w            w3mman       watch        wget         whereis      whiptail     whoami       write
w3m          wall         wc           whatis       which        who          w.procps     www-browser
10:56:21
#ls -l /usr/bin/who
-rwxr-xr-x 1 root root 55888 Янв 26  2013 /usr/bin/who
10:57:00
#ls -l /usr/bin/who
-rwxr-xr-x 1 root root 55888 Янв 26  2013 /usr/bin/who
10:57:23
#ls -l `whi
`which     `while     `whiptail
10:57:23
#ls -l `which who`
-rwxr-xr-x 1 root root 55888 Янв 26  2013 /usr/bin/who
10:57:54
#echo &{5+8}
[1] 9379
l3script: {5+8}: команда не найдена
[1]+  Done                    echo
прошло 25 минут
11:23:46
#echo &[5+8]
[1] 9388
l3script: [5+8]: команда не найдена
[1]+  Done                    echo
11:24:06
#echo &[5+8]
[1] 9397
l3script: [5+8]: команда не найдена
[1]+  Done                    echo
11:24:25
#echo $[5+8]
13
11:24:48
#ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:06 init [2]
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:01 [ksoftirqd/0]
    4 ?        S      0:04 [kworker/0:0]
    5 ?        S      0:00 [kworker/u:0]
    6 ?        S      0:00 [migration/0]
    7 ?        S      0:03 [watchdog/0]
    8 ?        S<     0:00 [cpuset]
    9 ?        S<     0:00 [khelper]
...
 8513 pts/3    Ss     0:00 l3script
 8648 ?        Ss     0:00 sshd: ivan [priv]
 8650 ?        S      0:00 sshd: ivan@pts/4
 8651 pts/4    Ss+    0:00 -bash
 8881 ?        Ss     0:00 sshd: root@pts/5
 8883 pts/5    Ss     0:00 -bash
 8928 pts/5    S+     0:00 script -f -c l3script -q /root/.lilalo//29049243502523315683-1511859599.script
 8959 pts/5    S+     0:00 script -f -c l3script -q /root/.lilalo//29049243502523315683-1511859599.script
 8960 pts/6    Ss+    0:00 l3script
 9413 pts/3    R+     0:00 ps ax
11:24:58
#ps ax | wc -l
67
11:25:19
#top
top - 12:25:31 up 3 days, 20:38,  4 users,  load average: 0,00, 0,01, 0,05
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10,2 us,  0,7 sy,  0,0 ni, 89,1 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:    507368 total,   312608 used,   194760 free,    91124 buffers
KiB Swap:        0 total,        0 used,        0 free,   113840 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 3412 root      20   0 47932  10m 1728 S   9,9  2,1   5:04.06 l3-agent
 8434 root      20   0 71288 3680 2888 S   0,3  0,7   0:00.22 sshd
 9430 root      20   0 25288 1580 1128 R   0,3  0,3   0:00.01 top
    1 root      20   0 10648  828  696 S   0,0  0,2   0:06.40 init
...
 3360 root      20   0     0    0    0 S   0,0  0,0   0:00.76 flush-202:0
 3412 root      20   0 47932  10m 1728 S   0,0  2,1   5:04.06 l3-agent
 4106 root      20   0     0    0    0 S   0,0  0,0   0:02.30 kworker/0:1
 4159 user      20   0 48272  10m 1716 S   0,0  2,2   2:25.79 l3-agent
 7422 root      20   0 71288 3616 2824 S   0,0  0,7   0:00.02 sshd
 7424 user      20   0 71288 1884 1088 S   0,0  0,4   0:00.10 sshd
 7425 user      20   0 22184 2880 1724 S   0,0  0,6   0:00.04 bash
 7472 user      20   0 18164  836  684 S   0,0  0,2   0:00.07 script
 7543 user      20   0 18168  468  308 S   0,0  0,1   0:00.02 script
 7544 user      20   0 22268 3044 1804 S   0,0  0,6   0:00.11 l3script
11:25:38
#echo $[&(ps ax | wc -l)-4]
l3script: &(ps ax | wc -l)-4: ошибка синтаксиса: ожидается операнд (error token is "&(ps ax | wc -l)-4")
11:28:11
#echo $[&((ps ax | wc -l)-4]
l3script: &((ps ax | wc -l)-4: ошибка синтаксиса: ожидается операнд (error token is "&((ps ax | wc -l)-4")
11:28:29
#echo $((ps ax | wc -l)-4))
l3script: syntax error near unexpected token `)'
11:29:07
#echo $(($(ps ax | wc -l)-4))
64
11:29:38
#echo $(($(ps ax | wc -l)-4))
64
11:29:42
#zsh

11:30:03
#cat install
cat: install: Нет такого файла или каталога
11:35:21
#cat install | cat
#!/bin/sh
hostname=`hostname`
uname -a | egrep -qi '(freebsd|darwin)' || hostname=`hostname -f`
###############################################################################
#
# Set this variables before installation:
lilalo_user=13-10-2014
lab=NT-LNet
install_l3bashrc_for_this_users=${users:-"root user"}  # users who will use l3agent and l3script
lilalo_context="/users/${lilalo_user}/${lab}/${hostname}"
...
step "Downloading l3prompt" ${wget} ${url_l3prompt}
step "Downloading l3-agent" '${wget} ${url_l3agent}; ${wget} ${url_l3config_pm}; ${wget} ${url_l3config}'
step "Downloading perl modules for l3-agent" '{ for i in ${perl_modules}; do ${wget} ${url_perl_modules}/$i.tar.gz; done; }'
step "Installing perl modules for l3-agent" '{ for i in ${perl_modules}; do tar xvfz $i.tar.gz; cd $i*[^z]; perl Makefile.PL; make; make install; cd ..; done; }'
step "Installing l3bashrc to users home directories" install_to_users_homes $install_l3bashrc_for_this_users
step "Adding l3bashrc invocation to ~/.bashrc " install_to_users_bashrc $install_l3bashrc_for_this_users
step "Adding l3-agent invocation to ~/.bash_profile " install_to_users_bash_profile $install_l3bashrc_for_this_users
cd /
rm -rf ${temp_dir}
show_final_message
11:37:12
#cat
^C
11:38:22
#top
top - 12:44:17 up 3 days, 20:57,  4 users,  load average: 0,00, 0,01, 0,05
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6,4 us,  0,4 sy,  0,0 ni, 92,2 id,  1,1 wa,  0,0 hi,  0,0 si,  0,0 st
 Unknown command - try 'h' for help
KiB Mem:    507368 total,   312972 used,   194396 free,    91428 buffers
KiB Swap:        0 total,        0 used,        0 free,   113976 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 3412 root      20   0 47932  10m 1728 S   6,0  2,1   5:11.30 l3-agent
 8434 root      20   0 71288 3680 2888 S   0,4  0,7   0:00.27 sshd
    1 root      20   0 10648  828  696 S   0,0  0,2   0:06.42 init
...
 4106 root      20   0     0    0    0 S   0,0  0,0   0:02.30 kworker/0:1
 4159 user      20   0 48272  10m 1716 S   0,0  2,2   2:26.04 l3-agent
 7422 root      20   0 71288 3616 2824 S   0,0  0,7   0:00.02 sshd
 7424 user      20   0 71288 1884 1088 S   0,0  0,4   0:00.10 sshd
 7425 user      20   0 22184 2880 1724 S   0,0  0,6   0:00.04 bash
 7472 user      20   0 18164  836  684 S   0,0  0,2   0:00.07 script
 7543 user      20   0 18168  468  308 S   0,0  0,1   0:00.02 script
 7544 user      20   0 22268 3044 1804 S   0,0  0,6   0:00.11 l3script
 8434 root      20   0 71288 3680 2888 S   0,0  0,7   0:00.40 sshd
 8436 root      20   0 22168 2856 1724 S   0,0  0,6   0:00.04 bash
11:44:24
#top
top - 12:45:07 up 3 days, 20:58,  4 users,  load average: 0,00, 0,01, 0,05
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,1 us,  0,0 sy,  0,0 ni, 99,7 id,  0,1 wa,  0,0 hi,  0,0 si,  0,0 st
Change delay from 3,0 to
KiB Mem:    507368 total,   313964 used,   193404 free,    91452 buffers
KiB Swap:        0 total,        0 used,        0 free,   114436 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
    1 root      20   0 10648  828  696 S   0,0  0,2   0:06.42 init
    2 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S   0,0  0,0   0:01.78 ksoftirqd/0
...
 4159 user      20   0 48272  10m 1716 S   0,0  2,2   2:26.04 l3-agent
 7422 root      20   0 71288 3616 2824 S   0,0  0,7   0:00.02 sshd
 7424 user      20   0 71288 1884 1088 S   0,0  0,4   0:00.10 sshd
 7425 user      20   0 22184 2880 1724 S   0,0  0,6   0:00.04 bash
 7472 user      20   0 18164  836  684 S   0,0  0,2   0:00.07 script
 7543 user      20   0 18168  468  308 S   0,0  0,1   0:00.02 script
 7544 user      20   0 22268 3044 1804 S   0,0  0,6   0:00.11 l3script
 8434 root      20   0 71288 3680 2888 S   0,0  0,7   0:00.40 sshd
 8436 root      20   0 22168 2856 1724 S   0,0  0,6   0:00.04 bash
 8481 root      20   0 18164  836  688 S   0,0  0,2   0:00.03 script
11:45:10
#top
top - 12:45:16 up 3 days, 20:58,  4 users,  load average: 0,00, 0,01, 0,05
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,1 us,  0,0 sy,  0,0 ni, 99,7 id,  0,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:    507368 total,   313980 used,   193388 free,    91456 buffers
KiB Swap:        0 total,        0 used,        0 free,   114452 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
    1 root      20   0 10648  828  696 S   0,0  0,2   0:06.42 init
    2 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S   0,0  0,0   0:01.78 ksoftirqd/0
    4 root      20   0     0    0    0 S   0,0  0,0   0:04.71 kworker/0:0
...
 4159 user      20   0 48272  10m 1716 S   0,0  2,2   2:26.05 l3-agent
 7422 root      20   0 71288 3616 2824 S   0,0  0,7   0:00.02 sshd
 7424 user      20   0 71288 1884 1088 S   0,0  0,4   0:00.10 sshd
 7425 user      20   0 22184 2880 1724 S   0,0  0,6   0:00.04 bash
 7472 user      20   0 18164  836  684 S   0,0  0,2   0:00.07 script
 7543 user      20   0 18168  468  308 S   0,0  0,1   0:00.02 script
 7544 user      20   0 22268 3044 1804 S   0,0  0,6   0:00.11 l3script
 8434 root      20   0 71288 3680 2888 S   0,0  0,7   0:00.41 sshd
 8436 root      20   0 22168 2856 1724 S   0,0  0,6   0:00.04 bash
 8481 root      20   0 18164  836  688 S   0,0  0,2   0:00.03 script
11:45:17
#find
find       find2perl  findfs     findmnt
11:45:17
#find / -mtime -1
/sys/fs/ext4
/sys/fs/ext4/features
/sys/fs/ext4/features/lazy_itable_init
/sys/fs/ext4/features/batched_discard
/sys/fs/ext4/xvda1
/sys/fs/ext4/xvda1/delayed_allocation_blocks
/sys/fs/ext4/xvda1/session_write_kbytes
/sys/fs/ext4/xvda1/lifetime_write_kbytes
/sys/fs/ext4/xvda1/inode_readahead_blks
/sys/fs/ext4/xvda1/inode_goal
...
/proc/9550/stack
/proc/9550/cpuset
/proc/9550/cgroup
/proc/9550/oom_score
/proc/9550/oom_adj
/proc/9550/oom_score_adj
/proc/9550/loginuid
/proc/9550/sessionid
/proc/9550/coredump_filter
/proc/9550/io
11:47:41
#find / -mtime -1 -user ivan
/dev/pts/4
/home/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.viminfo
/proc/8650
/proc/8650/task
/proc/8650/task/8650
/proc/8650/task/8650/attr
/proc/8650/net
...
/proc/8651/oom_adj
/proc/8651/oom_score_adj
/proc/8651/loginuid
/proc/8651/sessionid
/proc/8651/coredump_filter
/proc/8651/io
find: `/proc/9558/task/9558/fd/5': Нет такого файла или каталога
find: `/proc/9558/task/9558/fdinfo/5': Нет такого файла или каталога
find: `/proc/9558/fd/5': Нет такого файла или каталога
find: `/proc/9558/fdinfo/5': Нет такого файла или каталога
11:48:14
#find /home -mtime -1 -user ivan
/home/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.viminfo
11:48:31
#find /home -mtime -1 -user ivan > files.txt

11:49:39
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr  f1  f2  f3  f4  f5  files.txt  install
11:49:42
#cat files.txt
/home/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.viminfo
11:50:07
#su - ivan
ivan@debian3:~$ find /home -mtime -1 -user ivan > files.txt
ivan@debian3:~$ find  -mtime -1 -user ivan > files.txt
ivan@debian3:~$ find  / -mtime -1 -user ivan > files.txt
find: `/etc/ssl/private': Отказано в доступе
find: `/lost+found': Отказано в доступе
find: `/var/cache/ldconfig': Отказано в доступе
find: `/var/spool/exim4': Отказано в доступе
find: `/var/spool/cron/crontabs': Отказано в доступе
find: `/var/log/exim4': Отказано в доступе
find: `/var/log/iptraf': Отказано в доступе
...
/proc/9693/sessionid
/proc/9693/coredump_filter
/proc/9693/io
ivan@debian3:~$
ivan@debian3:~$
ivan@debian3:~$
ivan@debian3:~$
ivan@debian3:~$
ivan@debian3:~$ exit
logout
прошло 56 минут
12:46:39
#set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
...
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
12:47:04
#set -o noclobber

12:48:17
#set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
...
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
12:48:19
#ls
213414134543  213414135  2134141354112  213414shtt  21343553ffr  f1  f2  f3  f4  f5  files.txt  install
12:48:50
#tail install
step "Downloading perl modules for l3-agent" '{ for i in ${perl_modules}; do ${wget} ${url_perl_modules}/$i.tar.gz; done; }'
step "Installing perl modules for l3-agent" '{ for i in ${perl_modules}; do tar xvfz $i.tar.gz; cd $i*[^z]; perl Makefile.PL; make; make install; cd ..; done; }'
step "Installing l3bashrc to users home directories" install_to_users_homes $install_l3bashrc_for_this_users
step "Adding l3bashrc invocation to ~/.bashrc " install_to_users_bashrc $install_l3bashrc_for_this_users
step "Adding l3-agent invocation to ~/.bash_profile " install_to_users_bash_profile $install_l3bashrc_for_this_users
cd /
rm -rf ${temp_dir}
show_final_message
12:49:18
#set +o noclobber

12:49:56
#set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
...
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
12:49:59
#lsattr
-------------e-- ./21343553ffr
-------------e-- ./213414135
-------------e-- ./213414134543
-------------e-- ./f1
-------------e-- ./f2
-------------e-- ./f3
-------------e-- ./files.txt
-------------e-- ./f5
-------------e-- ./f4
-------------e-- ./213414shtt
-------------e-- ./2134141354112
-------------e-- ./install

Файлы

  • cat
  • files.txt
  • cat
    >
    #!/bin/sh
    hostname=`hostname`
    uname -a | egrep -qi '(freebsd|darwin)' || hostname=`hostname -f`
    ###############################################################################
    #
    # Set this variables before installation:
    lilalo_user=13-10-2014
    lab=NT-LNet
    install_l3bashrc_for_this_users=${users:-"root user"}  # users who will use l3agent and l3script
    lilalo_context="/users/${lilalo_user}/${lab}/${hostname}"
    #
    ###############################################################################
    lilalo_rc=.l3rc
    lilalo_home=.lilalo
    url_lilalo="http://xgu.ru/lilalo"
    url_l3bashrc="${url_lilalo}"/l3bashrc
    url_l3agent="${url_lilalo}"/l3-agent
    url_l3config_pm="${url_lilalo}"/l3config.pm
    url_l3config="${url_lilalo}"/l3-config
    url_l3prompt="${url_lilalo}"/l3prompt
    url_perl_modules=${url_lilalo}/
    perl_modules="Term-VT102 Text-Iconv"
    apt_get_install_this="perl make libmodule-build-perl libc6-dev gcc"
    wget=wget
    uname -a | egrep -qi '(bsd|darwin)' && wget=fetch
    normC='\033[0;39m'
    whiteC='\033[1;37m'
    redC='\033[0;31m'
    greenC='\033[0;32m'
    apt_get_install_deps()
    {
        return 0
        if which apt-get >& /dev/null
        then
            apt-get install -y $apt_get_install_this
        else
            echo "Please install this dependencies manually:"
            echo $apt_get_install_this
            echo "Have you installed this already (y/n)?"
            echo y | read answer
            if echo $answer | grep -q ^[yY]
            then
                true
            else
                echo Please install the dependencies and rerun the script
                exit 1
            fi
        fi
    }
    step()
    {
        msg="$1"
        shift
        printf "${whiteC}""$msg""...${normC}\n"
    #    eval "$@" 2>&1 | sed 's/^/|\ \ \ /' && printf "Ok\n" || printf "Failed\n"
        eval "$@" 2>&1 > log 2>&1 && \
        {
              cat log | sed 's/^/|\ \ \ /'
              printf "${greenC}""Ok\n""${normC}"
        } || \
        {
            cat log | sed 's/^/|\ \ \ /'
            printf "${redC}""Failed\n""${normC}"
        }
    }
    get_user_home()
    {
        uname -a | egrep -qi '(freebsd|darwin)' && pw user show "$@"| awk -F: '{print $9}' || getent passwd "$@"| awk -F: '{print $6}'
    }
    install_to_users_homes()
    {
        . l3bashrc
        users="$@"
        set -x
        for user in $users
        do
            user_home=`get_user_home "$user"`
            mkdir -p ${user_home}/${lilalo_home}
            mkdir /etc/lilalo/
            cp l3config.pm /etc/lilalo/
            cp l3-agent /usr/local/bin
            cp l3-config /usr/local/bin
            ln -s `which bash` /usr/local/bin/l3script
            chmod 755 /usr/local/bin/l3-{agent,config}
            cp l3bashrc ${user_home}/${lilalo_home}
            cp l3prompt ${user_home}/${lilalo_home}
            chmod 755 ${user_home}/${lilalo_home}/l3prompt
            chown -R $user ${user_home}/${lilalo_home}
            echo l3cd=${lilalo_context}/$user > ${user_home}/${lilalo_rc}
            chown -R $user ${user_home}/${lilalo_rc}
        done
        set +x
    }
    install_to_users_bashrc()
    {
        users="$@"
        for user in $users
        do
            user_home=`get_user_home "$user"`
            grep -q lilalo ${user_home}/.bashrc 2> /dev/null\
            || echo "[ \$0 == l3script ] && . ${user_home}/.lilalo/l3bashrc && _l3_start" >> ${user_home}/.bashrc; chown -R ${user} ${user_home}/.bashrc
        done
    }
    install_to_users_bash_profile()
    {
        users="$@"
        for user in $users
        do
            user_home=`get_user_home "$user"`
            grep -q l3-agent ${user_home}/.bash_profile 2> /dev/null \
            || { echo >> ${user_home}/.bash_profile ; cat ${user_home}/.bash_profile | sed '1s/^/l3-agentX/' | tr X '\n' > /tmp/$$$$l3 ; mv /tmp/$$$$l3 ${user_home}/.bash_profile; chown -R ${user} ${user_home}/.bash_profile; }
        done
    }
    show_usage()
    {
        cat <<USAGE
    Usage:
        $0
    USAGE
    }
    show_final_message()
    {
        cat <<FINAL_MESSAGE
    Installation is successfully completed.
    Now restart your shell or relogin
    to start script writing.
    Your current lilalo context is ${lilalo_context}/USER
    If you use xgu.ru backend, your labs will be available at
    http://xgu.ru/l3/${lilalo_context}
    Use commands
     $ l3cd ${lilalo_context%/*/*}/MY-NEW-CONTEXT/${hostname}/USER
     $ l3pwd
    to change and to know your current context.
    For further information see http://xgu.ru/lilalo/ (in Russian).
    Thank you gor using LiLaLo.
    Happy Labbing!
    (don't forget to restart bash or relogin)
    FINAL_MESSAGE
    }
    temp_dir=/tmp/lilalo-install-temp-$$
    mkdir -p ${temp_dir}
    cd ${temp_dir}
    step "Installing dependencies" apt_get_install_deps
    step "Downloading l3bashrc" ${wget} ${url_l3bashrc}
    step "Downloading l3prompt" ${wget} ${url_l3prompt}
    step "Downloading l3-agent" '${wget} ${url_l3agent}; ${wget} ${url_l3config_pm}; ${wget} ${url_l3config}'
    step "Downloading perl modules for l3-agent" '{ for i in ${perl_modules}; do ${wget} ${url_perl_modules}/$i.tar.gz; done; }'
    step "Installing perl modules for l3-agent" '{ for i in ${perl_modules}; do tar xvfz $i.tar.gz; cd $i*[^z]; perl Makefile.PL; make; make install; cd ..; done; }'
    step "Installing l3bashrc to users home directories" install_to_users_homes $install_l3bashrc_for_this_users
    step "Adding l3bashrc invocation to ~/.bashrc " install_to_users_bashrc $install_l3bashrc_for_this_users
    step "Adding l3-agent invocation to ~/.bash_profile " install_to_users_bash_profile $install_l3bashrc_for_this_users
    cd /
    rm -rf ${temp_dir}
    show_final_message
    
    files.txt
    >
    /home/ivan
    /home/ivan/.bashrc
    /home/ivan/.bash_history
    /home/ivan/.viminfo
    

    Статистика

    Время первой команды журнала09:24:36 2017-11-28
    Время последней команды журнала12:49:59 2017-11-28
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %14.85
    Процент синтаксически неверно набранных команд, % 4.95
    Суммарное время работы с терминалом *, час 2.48
    Количество командных строк в единицу времени, команда/мин 0.68
    Частота использования команд
    ls29|=======================| 23.02%
    echo9|=======| 7.14%
    wc8|======| 6.35%
    cd6|====| 4.76%
    set5|===| 3.97%
    find5|===| 3.97%
    >5|===| 3.97%
    cat4|===| 3.17%
    top4|===| 3.17%
    history4|===| 3.17%
    cp3|==| 2.38%
    shopt3|==| 2.38%
    !?-a2|=| 1.59%
    !2352|=| 1.59%
    rm2|=| 1.59%
    ps2|=| 1.59%
    touch2|=| 1.59%
    [5+8]2|=| 1.59%
    -nl2|=| 1.59%
    files.txt1|| 0.79%
    update1|| 0.79%
    man1|| 0.79%
    nl1|| 0.79%
    lsattr1|| 0.79%
    zsh1|| 0.79%
    help1|| 0.79%
    !?-l1|| 0.79%
    21343553ffr1|| 0.79%
    to1|| 0.79%
    hello-vi.txt1|| 0.79%
    {5+8}1|| 0.79%
    ((ps1|| 0.79%
    213414shtt1|| 0.79%
    2134141351|| 0.79%
    F2\>1|| 0.79%
    !2261|| 0.79%
    21341413541121|| 0.79%
    2134141345431|| 0.79%
    whi1|| 0.79%
    xargs1|| 0.79%
    !2161|| 0.79%
    (ps1|| 0.79%
    sho1|| 0.79%
    tail1|| 0.79%
    which1|| 0.79%
    su1|| 0.79%
    ____
    *) Интервалы неактивности длительностью 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$