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

Содержание

Журнал

Вторник (07/17/18)

/dev/pts/0
08:31:12
#vim .bashrc
08:31:17
#~
install  test
08:31:24
#ls -a
.  ..  .aptitude  .bash_history  .bash_profile  .bashrc  install  .l3rc  .lesshst  .lilalo  .profile  test  .vim  .viminfo  .vimrc
08:31:27
#ls -la
итого 72
drwx------  5 root root 4096 Июл 17 09:31 .
drwxr-xr-x 24 root root 4096 Окт 15  2014 ..
drwx------  2 root root 4096 Июн 27  2014 .aptitude
-rw-------  1 root root 2987 Июл 16 17:12 .bash_history
-rw-r--r--  1 root root   10 Июн 27  2014 .bash_profile
-rw-r--r--  1 root root  653 Июл 17 09:31 .bashrc
-rw-r--r--  1 root root 5268 Окт 13  2014 install
-rw-r--r--  1 root root   51 Июл 13 14:53 .l3rc
-rw-------  1 root root   35 Июл 16 13:45 .lesshst
drwxr-xr-x  2 root root 4096 Июл 17 09:31 .lilalo
-rw-r--r--  1 root root  140 Ноя 19  2007 .profile
-rw-r--r--  1 root root 5268 Июл 16 15:20 test
drwxr-xr-x  2 root root 4096 Июн 27  2014 .vim
-rw-------  1 root root 5296 Июл 17 09:31 .viminfo
-rw-r--r--  1 root root   64 Июл 16 16:16 .vimrc
08:31:34
#bash
root@debian4:~# ls -a
.  ..  .aptitude  .bash_history  .bash_profile  .bashrc  install  .l3rc  .lesshst  .lilalo  .profile  test  .vim  .viminfo  .vimrc
root@debian4:~# ls -al
итого 72
drwx------  5 root root 4096 Июл 17 09:31 .
drwxr-xr-x 24 root root 4096 Окт 15  2014 ..
drwx------  2 root root 4096 Июн 27  2014 .aptitude
-rw-------  1 root root 2987 Июл 16 17:12 .bash_history
-rw-r--r--  1 root root   10 Июн 27  2014 .bash_profile
-rw-r--r--  1 root root  653 Июл 17 09:31 .bashrc
-rw-r--r--  1 root root 5268 Окт 13  2014 install
-rw-r--r--  1 root root   51 Июл 13 14:53 .l3rc
-rw-------  1 root root   35 Июл 16 13:45 .lesshst
drwxr-xr-x  2 root root 4096 Июл 17 09:31 .lilalo
-rw-r--r--  1 root root  140 Ноя 19  2007 .profile
-rw-r--r--  1 root root 5268 Июл 16 15:20 test
drwxr-xr-x  2 root root 4096 Июн 27  2014 .vim
-rw-------  1 root root 5296 Июл 17 09:31 .viminfo
-rw-r--r--  1 root root   64 Июл 16 16:16 .vimrc
root@debian4:~# exit
exit
08:35:03
#ls -la
итого 72
drwx------  5 root root 4096 Июл 17 09:31 .
drwxr-xr-x 24 root root 4096 Окт 15  2014 ..
drwx------  2 root root 4096 Июн 27  2014 .aptitude
-rw-------  1 root root 3005 Июл 17 09:35 .bash_history
-rw-r--r--  1 root root   10 Июн 27  2014 .bash_profile
-rw-r--r--  1 root root  653 Июл 17 09:31 .bashrc
-rw-r--r--  1 root root 5268 Окт 13  2014 install
-rw-r--r--  1 root root   51 Июл 13 14:53 .l3rc
-rw-------  1 root root   35 Июл 16 13:45 .lesshst
drwxr-xr-x  2 root root 4096 Июл 17 09:31 .lilalo
-rw-r--r--  1 root root  140 Ноя 19  2007 .profile
-rw-r--r--  1 root root 5268 Июл 16 15:20 test
drwxr-xr-x  2 root root 4096 Июн 27  2014 .vim
-rw-------  1 root root 5296 Июл 17 09:31 .viminfo
-rw-r--r--  1 root root   64 Июл 16 16:16 .vimrc
08:35:41
#source .bash
.bash_history  .bash_profile  .bashrc
08:35:41
#source .bashrc

08:36:35
#ls -la
итого 72
drwx------  5 root root 4096 Июл 17 09:31 .
drwxr-xr-x 24 root root 4096 Окт 15  2014 ..
drwx------  2 root root 4096 Июн 27  2014 .aptitude
-rw-------  1 root root 3005 Июл 17 09:35 .bash_history
-rw-r--r--  1 root root   10 Июн 27  2014 .bash_profile
-rw-r--r--  1 root root  653 Июл 17 09:31 .bashrc
-rw-r--r--  1 root root 5268 Окт 13  2014 install
-rw-r--r--  1 root root   51 Июл 13 14:53 .l3rc
-rw-------  1 root root   35 Июл 16 13:45 .lesshst
drwxr-xr-x  2 root root 4096 Июл 17 09:31 .lilalo
-rw-r--r--  1 root root  140 Ноя 19  2007 .profile
-rw-r--r--  1 root root 5268 Июл 16 15:20 test
drwxr-xr-x  2 root root 4096 Июн 27  2014 .vim
-rw-------  1 root root 5296 Июл 17 09:31 .viminfo
-rw-r--r--  1 root root   64 Июл 16 16:16 .vimrc
08:36:37
#echo $HIST
$HISTCMD       $HISTFILE      $HISTFILESIZE  $HISTSIZE
08:36:37
#echo $HISTSIZE
500
08:38:23
#echo $HISTFILE
/root/.bash_history
08:40:05
#echo $HISTFILESIZE
500
08:40:20
#vim /etc/profile
--- /tmp/l3-saved-7422.2026.11442	2018-07-17 09:41:44.002494612 +0300
+++ /etc/profile	2018-07-17 09:49:37.842483799 +0300
@@ -35,3 +35,8 @@
   done
   unset i
 fi
+
+HISTSIZE=2000
+HISTFILESIZE=2000
+export HISTSIZE HISTFILESIZE
+
08:49:37
#vim /etc/profile
/dev/pts/0
08:51:54
#echo $HISTSIZE
2000
08:52:37
#echo $HISTFILESIZE
2000
08:52:52
#cp ~ivan/.bashrc ~petr

прошло 14 минут
09:07:31
#ls -la /etc/skel/
итого 20
drwxr-xr-x  2 root root 4096 Окт 13  2014 .
drwxr-xr-x 69 root root 4096 Июл 17 09:51 ..
-rw-r--r--  1 root root  220 Дек 30  2012 .bash_logout
-rw-r--r--  1 root root 3392 Дек 30  2012 .bashrc
-rw-r--r--  1 root root  675 Дек 30  2012 .profile
09:09:40
#vim /etc/skel/.bashrc
--- /tmp/l3-saved-8199.21244.10624	2018-07-17 10:10:36.266497893 +0300
+++ /etc/skel/.bashrc	2018-07-17 10:10:56.706506890 +0300
@@ -16,8 +16,8 @@
 shopt -s histappend
 
 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
-HISTSIZE=1000
-HISTFILESIZE=2000
+#HISTSIZE=1000
+#HISTFILESIZE=2000
 
 # check the window size after each command and, if necessary,
 # update the values of LINES and COLUMNS.
09:10:56
#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
...
  234  vim /etc/profile
  235  exit
  236  l3script
  237  exit
  238  echo $HISTSIZE
  239  echo $HISTFILESIZE
  240  cp ~ivan/.bashrc ~petr
  241  ls -la /etc/skel/
  242  vim /etc/skel/.bashrc
  243  history
09:12:30
#!227
ls -la
итого 72
drwx------  5 root root 4096 Июл 17 10:10 .
drwxr-xr-x 24 root root 4096 Окт 15  2014 ..
drwx------  2 root root 4096 Июн 27  2014 .aptitude
-rw-------  1 root root 3288 Июл 17 09:51 .bash_history
-rw-r--r--  1 root root   10 Июн 27  2014 .bash_profile
-rw-r--r--  1 root root  653 Июл 17 09:31 .bashrc
-rw-r--r--  1 root root 5268 Окт 13  2014 install
-rw-r--r--  1 root root   51 Июл 13 14:53 .l3rc
-rw-------  1 root root   35 Июл 16 13:45 .lesshst
drwxr-xr-x  2 root root 4096 Июл 17 10:10 .lilalo
-rw-r--r--  1 root root  140 Ноя 19  2007 .profile
-rw-r--r--  1 root root 5268 Июл 16 15:20 test
drwxr-xr-x  2 root root 4096 Июн 27  2014 .vim
-rw-------  1 root root 5484 Июл 17 10:10 .viminfo
-rw-r--r--  1 root root   64 Июл 16 16:16 .vimrc
09:14:22
#cd

09:20:31
#echo "Hello $LOGNAME"
Hello root
прошло 27 минут
09:48:12
#echo 'Hello $LOGNAME'
Hello $LOGNAME
09:49:13
#cd /bin/

09:51:22
#ls -la
итого 7420
drwxr-xr-x  2 root root   4096 Июл 17 09:16 .
drwxr-xr-x 24 root root   4096 Окт 15  2014 ..
-rwxr-xr-x  1 root root 975488 Сен 25  2014 bash
-rwxr-xr-x  1 root root 697656 Сен 20  2012 busybox
-rwxr-xr-x  1 root root  51856 Янв 26  2013 cat
-rwxr-xr-x  1 root root  60000 Янв 26  2013 chgrp
-rwxr-xr-x  1 root root  55872 Янв 26  2013 chmod
-rwxr-xr-x  1 root root  64112 Янв 26  2013 chown
-rwxr-xr-x  1 root root  10352 Апр 29  2012 chvt
...
-rwxr-xr-x  1 root root   5766 Июн 20  2012 zdiff
-rwxr-xr-x  1 root root    121 Июн 20  2012 zegrep
-rwxr-xr-x  1 root root    121 Июн 20  2012 zfgrep
-rwxr-xr-x  1 root root   2133 Июн 20  2012 zforce
-rwxr-xr-x  1 root root   5914 Июн 20  2012 zgrep
-rwxr-xr-x  1 root root   2039 Июн 20  2012 zless
-rwxr-xr-x  1 root root   2802 Июн 20  2012 zmore
-rwxr-xr-x  1 root root   5049 Июн 20  2012 znew
lrwxrwxrwx  1 root root     21 Июл 17 09:16 zsh -> /etc/alternatives/zsh
-rwxr-xr-x  1 root root 696880 Фев 29  2012 zsh4
09:51:25
#ls -l
итого 7412
-rwxr-xr-x 1 root root 975488 Сен 25  2014 bash
-rwxr-xr-x 1 root root 697656 Сен 20  2012 busybox
-rwxr-xr-x 1 root root  51856 Янв 26  2013 cat
-rwxr-xr-x 1 root root  60000 Янв 26  2013 chgrp
-rwxr-xr-x 1 root root  55872 Янв 26  2013 chmod
-rwxr-xr-x 1 root root  64112 Янв 26  2013 chown
-rwxr-xr-x 1 root root  10352 Апр 29  2012 chvt
-rwxr-xr-x 1 root root 130128 Янв 26  2013 cp
-rwxr-xr-x 1 root root 137336 Дек 30  2012 cpio
...
-rwxr-xr-x 1 root root   5766 Июн 20  2012 zdiff
-rwxr-xr-x 1 root root    121 Июн 20  2012 zegrep
-rwxr-xr-x 1 root root    121 Июн 20  2012 zfgrep
-rwxr-xr-x 1 root root   2133 Июн 20  2012 zforce
-rwxr-xr-x 1 root root   5914 Июн 20  2012 zgrep
-rwxr-xr-x 1 root root   2039 Июн 20  2012 zless
-rwxr-xr-x 1 root root   2802 Июн 20  2012 zmore
-rwxr-xr-x 1 root root   5049 Июн 20  2012 znew
lrwxrwxrwx 1 root root     21 Июл 17 09:16 zsh -> /etc/alternatives/zsh
-rwxr-xr-x 1 root root 696880 Фев 29  2012 zsh4
09:51:41
#ls
bash     cp    dmesg          fgconsole  gzip      less      login   more        nc              pidof     rm         setupcon    sync      uname          zcmp    zmore
busybox  cpio  dnsdomainname  fgrep      hostname  lessecho  ls      mount       nc.traditional  ping      rmdir      sh          tailf     uncompress     zdiff   znew
cat      dash  domainname     findmnt    ip        lessfile  lsblk   mountpoint  netcat          ping6     rnano      sh.distrib  tar       unicode_start  zegrep  zsh
chgrp    date  dumpkeys       fuser      kbd_mode  lesskey   lsmod   mt          netstat         ps        run-parts  sleep       tempfile  vdir           zfgrep  zsh4
chmod    dd    echo           grep       kill      lesspipe  mkdir   mt-gnu      nisdomainname   pwd       rzsh       ss          touch     which          zforce
chown    df    egrep          gunzip     kmod      ln        mknod   mv          open            rbash     sed        stty        true      ypdomainname   zgrep
chvt     dir   false          gzexe      ksh       loadkeys  mktemp  nano        openvt          readlink  setfont    su          umount    zcat           zless
09:51:44
#ls k*
kbd_mode  kill  kmod  ksh
09:51:52
#ls g{zu}
ls: невозможно получить доступ к g{zu}: Нет такого файла или каталога
09:53:28
#ls g{zu}*
ls: невозможно получить доступ к g{zu}*: Нет такого файла или каталога
09:53:35
#ls g[zu]*
gunzip  gzexe  gzip
09:53:59
#cd

09:54:19
#touch 321321 3165 545 322323 5454 65dd545 54s s554554dd 5sss5 d5456s

09:54:54
#ls
3165  321321  322323  545  5454  54s  5sss5  65dd545  d5456s  install  s554554dd  test
09:54: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
09:56:30
#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
09:57:34
#ls +([[:digit:]])
l3script: syntax error near unexpected token `('
09:59:28
#shopt -s extglob

09:59:59
#ls +([[:digit:]])
3165  321321  322323  545  5454
10:00:02
#rm +([[:digit:]])

10:04:48
#ls
54s  5sss5  65dd545  d5456s  install  s554554dd  test
10:04:56
#find . -mmin -5
.
./.lilalo/31484268162194212920-1531810314.script
./.lilalo/.report.dat
./.lilalo/31484268162194212920-1531810314.info
./.lilalo/report.xml
10:06:01
#find . -mmin -15
.
./65dd545
./d5456s
./.lilalo/31484268162194212920-1531810314.script
./.lilalo/.report.dat
./.lilalo/31484268162194212920-1531810314.info
./.lilalo/report.xml
./s554554dd
./54s
./5sss5
10:06:12
#find . -maxdepth 1 -mmin -15
.
./65dd545
./d5456s
./s554554dd
./54s
./5sss5
10:07:39
#find . -maxdepth 1 -mmin -20 -type f
./65dd545
./d5456s
./s554554dd
./54s
./5sss5
10:09:52
#find . -maxdepth 1 -mmin -20 -type f | xargs rm

10:12:02
#echo $[2+2]
4
10:14:50
#ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:02 init [2]
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:01 [ksoftirqd/0]
    5 ?        S      0:00 [kworker/u:0]
    6 ?        S      0:00 [migration/0]
    7 ?        S      0:00 [watchdog/0]
    8 ?        S<     0:00 [cpuset]
    9 ?        S<     0:00 [khelper]
   10 ?        S      0:00 [kdevtmpfs]
...
 7515 pts/5    Ss+    0:00 l3script
 8120 ?        Ss     0:00 sshd: root@pts/0
 8122 pts/0    Ss     0:00 -bash
 8167 pts/0    S+     0:00 script -f -c l3script -q /root/.lilalo//31484268162194212920-1531810314.script
 8198 pts/0    S+     0:00 script -f -c l3script -q /root/.lilalo//31484268162194212920-1531810314.script
 8199 pts/4    Ss     0:00 l3script
 8324 ?        Ss     0:00 sshd: ivan [priv]
 8326 ?        S      0:00 sshd: ivan@pts/1
 8327 pts/1    Ss+    0:00 -bash
 8680 pts/4    R+     0:00 ps ax
10:15:44
#ps ax | wc -l
67
10:16:24
#top
top - 11:17:03 up 1 day,  2:03,  4 users,  load average: 0,01, 0,03, 0,05
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,3 us,  0,3 sy,  0,0 ni, 99,0 id,  0,3 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:    507368 total,   314220 used,   193148 free,    92588 buffers
KiB Swap:        0 total,        0 used,        0 free,   113764 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 2322 root      20   0 47700  10m 1684 S   5,6  2,0   4:24.25 l3-agent
  120 root      20   0     0    0    0 S   0,3  0,0   0:05.46 kworker/0:3
 8198 root      20   0 18168  464  308 S   0,3  0,1   0:00.04 script
 8697 root      20   0 25292 1556 1128 R   0,3  0,3   0:00.01 top
...
  373 root      20   0 21244  876  468 S   0,0  0,2   0:00.00 udevd
  374 root      20   0 21244  836  428 S   0,0  0,2   0:00.00 udevd
  397 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 kpsmoused
 1861 root      20   0  115m 1556 1216 S   0,0  0,3   0:00.02 rsyslogd
 1891 root      20   0  4116  652  512 S   0,0  0,1   0:00.00 acpid
 1933 root      20   0 22492  896  688 S   0,0  0,2   0:00.12 cron
 2209 root      20   0 49932 1252  640 S   0,0  0,2   0:00.01 sshd
 2236 Debian-e  20   0 46808 1040  584 S   0,0  0,2   0:00.02 exim4
 2263 root      20   0 18368  964  812 S   0,0  0,2   0:00.01 getty
 2264 root      20   0 18368  972  812 S   0,0  0,2   0:00.00 getty
10:17:48
#echo ${ps ax | wc -l -3}
l3script: ${ps ax | wc -l -3}: bad substitution
10:18:22
#echo $[ps ax | wc -l -3]
l3script: ps ax | wc -l -3: синтаксическая ошибка в выражение (error token is "ax | wc -l -3")
10:18:58
#echo $[`ps ax | wc -l` -3]
65
10:19:47
#lsattr ~ivan/files
-------------e-- /home/ivan/files
прошло 17 минут
10:36:50
#chattr +a ~ivan/files

10:37:51
#chattr -a ~ivan/files

10:40:08
#chattr +i ~ivan/files

10:40:17
#chattr -i ~ivan/files

10:41:43
#cd

прошло >2 часов
12:53:46
#cat install
#!/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
12:53:49
#cat install | grep `rm`
rm: пропущен операнд
Попробуйте «rm --help» для получения более подробного описания.
Использование: grep [ПАРАМЕТР]… ШАБÐФАЙÐ
rep --help» для получения более подробного описания.
12:55:31
#cat install | grep 'rm'
perl_modules="Term-VT102 Text-Iconv"
normC='\033[0;39m'
    printf "${whiteC}""$msg""...${normC}\n"
          printf "${greenC}""Ok\n""${normC}"
        printf "${redC}""Failed\n""${normC}"
For further information see http://xgu.ru/lilalo/ (in Russian).
rm -rf ${temp_dir}
12:55:43
#cat install | grep -w 'rm'
rm -rf ${temp_dir}
прошло 10 минут
13:06:29
#vim ip.txt
--- /dev/null	2018-07-16 08:39:34.615999963 +0300
+++ ip.txt	2018-07-17 14:08:40.470506553 +0300
@@ -0,0 +1,6 @@
+192.168.34.67
+172.567.87.76
+111.111.111.111
+999.99.99.9
+76.78.89.90
+1912.1345.678.688
13:08:40
#vim ip.txt
--- /tmp/l3-saved-8199.1317.27167	2018-07-17 14:08:44.102512076 +0300
+++ ip.txt	2018-07-17 14:09:33.310505241 +0300
@@ -4,3 +4,8 @@
 999.99.99.9
 76.78.89.90
 1912.1345.678.688
+34.456.56.1
+115.117.9.1
+000.00.00.0
+78
+
13:18:35
#cat ip.txt | egrep '^(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)(3)'

13:24:35
#cat ip.txt | egrep '^([0-9][1,2]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'

13:26:19
#cat ip.txt | egrep '^(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'
192.168.34.67
111.111.111.111
76.78.89.90
115.117.9.1
13:26:47
#vim words.txt
--- /dev/null	2018-07-16 08:39:34.615999963 +0300
+++ words.txt	2018-07-17 14:30:13.454507841 +0300
@@ -0,0 +1,11 @@
+difficult
+very
+mediterranian
+rotor
+uncle
+solos
+many
+big
+failower
+fit
+
13:30:13
#cat words.txt | egrep '(.)(.).\2\1'
rotor
solos
13:30:57
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
13:36:18
#cat /etc/passwd | awk - F: '$3>+1000'

13:40:10
#cat /etc/passwd | awk -F: '$3>+1000'
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
13:40:44
#cat /etc/passwd | awk -F: '$3~/^100/'
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
user:x:1000:1000:user,,,:/home/user:/bin/bash
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
13:41:08
#cat /etc/passwd | awk -F: '$3~/^100[0-9]+/'
user:x:1000:1000:user,,,:/home/user:/bin/bash
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
13:41:51
#cat /etc/passwd | awk -F: '$3~/^100[0-9]+/{print $1}'
user
ivan
petr
13:51:19
#sed 's/bash$/zsh/' /etc/passwd
root:x:0:0:root:/root:/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/zsh
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/zsh
petr:x:1002:1002::/home/petr:/bin/zsh
прошло 80 минут
15:11:44
#ls -l
итого 24
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  126 Июл 17 14:09 ip.txt
-rw-r--r-- 1 root root 5268 Июл 16 15:20 test
-rw-r--r-- 1 root root   70 Июл 17 14:30 words.txt
15:13:44
#touch installH

15:13:57
#ls -l
итого 24
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root    0 Июл 17 16:13 installH
-rw-r--r-- 1 root root  126 Июл 17 14:09 ip.txt
-rw-r--r-- 1 root root 5268 Июл 16 15:20 test
-rw-r--r-- 1 root root   70 Июл 17 14:30 words.txt
15:13:59
#locate passwd
/etc/cron.daily/passwd
/etc/exim4/passwd.client
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd
/home/user/names/passwd
/home/user/names/.passwd
/usr/bin/gpasswd
...
/usr/share/vim/vim73/syntax/passwd.vim
/var/backups/passwd.bak
/var/lib/dpkg/info/base-passwd.list
/var/lib/dpkg/info/base-passwd.md5sums
/var/lib/dpkg/info/base-passwd.postinst
/var/lib/dpkg/info/passwd.conffiles
/var/lib/dpkg/info/passwd.list
/var/lib/dpkg/info/passwd.md5sums
/var/lib/dpkg/info/passwd.postinst
/var/lib/dpkg/info/passwd.preinst
15:14:20
#touch install

15:14:36
#ls -d /etc/cron*
/etc/cron.d  /etc/cron.daily  /etc/cron.hourly  /etc/cron.monthly  /etc/crontab  /etc/cron.weekly
15:15:38
#ls -ld /etc/cron*
drwxr-xr-x 2 root root 4096 Июн 27  2014 /etc/cron.d
drwxr-xr-x 2 root root 4096 Окт 13  2014 /etc/cron.daily
drwxr-xr-x 2 root root 4096 Июн 27  2014 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 Июн 27  2014 /etc/cron.monthly
-rw-r--r-- 1 root root  722 Июл  4  2012 /etc/crontab
drwxr-xr-x 2 root root 4096 Июн 27  2014 /etc/cron.weekly
15:15:44
#cd /etc/cron.daily/

15:16:16
#ls -l
итого 52
-rwxr-xr-x 1 root root 14985 Ноя 16  2013 apt
-rwxr-xr-x 1 root root   314 Ноя  7  2012 aptitude
-rwxr-xr-x 1 root root   355 Июн 11  2012 bsdmainutils
-rwxr-xr-x 1 root root   256 Окт  1  2013 dpkg
-rwxr-xr-x 1 root root  4125 Янв  2  2013 exim4-base
-rwxr-xr-x 1 root root  2211 Янв  6  2012 locate
-rwxr-xr-x 1 root root    89 Май 17  2012 logrotate
-rwxr-xr-x 1 root root  1365 Июн 19  2012 man-db
-rwxr-xr-x 1 root root   249 Май 26  2012 passwd
15:16:22
#./locate

15:17:33
#touch installH

15:18:15
#ls
apt  aptitude  bsdmainutils  dpkg  exim4-base  installH  locate  logrotate  man-db  passwd
15:18:20
#rm installH

15:18:30
#vim locate
--- /tmp/l3-saved-8199.3917.15899	2018-07-17 16:19:16.766510987 +0300
+++ locate	2018-07-17 16:19:56.070516191 +0300
@@ -25,7 +25,7 @@
 # netpaths which are added
 NETPATHS=""
 # run find as this user
-LOCALUSER="nobody"
+LOCALUSER="root"
 # cron.daily/find: run at this priority -- higher number means lower priority
 # (this is relative to the default which cron sets, which is usually +5)
 NICE=10
15:19:56
#./locate

15:20:19
#locate installH
/root/installH
15:20:42
#cd ~ivan/

15:24:54
#ls -l
итого 20
drwxr-xr-x 2 ivan ivan 4096 Июл 16 12:50 d1
drwxr-xr-x 3 ivan ivan 4096 Июл 16 12:41 d2
-rw-r--r-- 1 ivan ivan  117 Июл 17 11:31 errors
lrwxrwxrwx 1 ivan ivan   19 Июл 16 13:56 f1 -> /home/ivan/d2/d1/f2
-rw-r--r-- 1 ivan ivan    0 Июл 16 12:21 f2
-rw-r--r-- 1 ivan ivan 6767 Июл 17 11:33 files
15:24:58
#tree
.
├── d1
│   └── f2
├── d2
│   └── d1
│       ├── f2
│       ├── file3
│       ├── file4
│       ├── file5
│       ├── file6
│       └── file7
├── errors
├── f1 -> /home/ivan/d2/d1/f2
├── f2
└── files
3 directories, 11 files
15:25:01
#find . -type f -empty
./f2
./d2/d1/file4
./d2/d1/f2
./d2/d1/file5
./d2/d1/file7
./d2/d1/file3
./d2/d1/file6
./d1/f2
15:26:10
#find . -type f -empty -exec rm [] \;
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
rm: невозможно удалить «[]»: Нет такого файла или каталога
15:28:00
#find . -type f -empty -exec rm {} \;

Файлы

  • /etc/passwd
  • install
  • /etc/passwd
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    Debian-exim:x:101:103::/var/spool/exim4:/bin/false
    user:x:1000:1000:user,,,:/home/user:/bin/bash
    sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
    ivan:x:1001:1001::/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/bash
    
    install
    >
    #!/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
    

    Статистика

    Время первой команды журнала08:31:12 2018- 7-17
    Время последней команды журнала15:28:00 2018- 7-17
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, % 8.91
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 3.41
    Количество командных строк в единицу времени, команда/мин 0.49
    Частота использования команд
    ls23|=================| 17.56%
    cat14|==========| 10.69%
    echo12|=========| 9.16%
    find8|======| 6.11%
    vim8|======| 6.11%
    cd6|====| 4.58%
    awk5|===| 3.82%
    egrep4|===| 3.05%
    wc4|===| 3.05%
    touch4|===| 3.05%
    locate4|===| 3.05%
    chattr4|===| 3.05%
    1[0-9]{2}3|==| 2.29%
    2[0-4][0-9]3|==| 2.29%
    grep3|==| 2.29%
    rm2|=| 1.53%
    source2|=| 1.53%
    ps2|=| 1.53%
    25[0-5])$'2|=| 1.53%
    +1000'2|=| 1.53%
    shopt2|=| 1.53%
    25[0-5])\.)(3)'1|| 0.76%
    lsattr1|| 0.76%
    cp1|| 0.76%
    !2271|| 0.76%
    set1|| 0.76%
    sed1|| 0.76%
    ~1|| 0.76%
    top1|| 0.76%
    25[0-5])\.){3}([0-9]{1,2}1|| 0.76%
    xargs1|| 0.76%
    history1|| 0.76%
    bash1|| 0.76%
    25[0-5])\.([0-9]{1,2}1|| 0.76%
    tree1|| 0.76%
    ____
    *) Интервалы неактивности длительностью 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$