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

Содержание

Журнал

Среда (06/07/17)

/dev/pts/0
10:01:09
#httpd
l3script: httpd: команда не найдена
10:01:13
#man bash | wc -l
5465
10:05:59
#man bash | wc -l
5465
10:06:37
#stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
10:07:49
#echo $[`man bash | wc -l`/60]
91
10:09:25
#echo $[$(man bash | wc -l)/60]
91
10:10:33
#ls
111  2352f346  24235  34634r  d132  install
10:19:39
#cp /etc/ssh/sshd_congig{,.old}
cp: не удалось выполнить stat для «/etc/ssh/sshd_congig»: Нет такого файла или каталога
10:21:09
#cp /etc/ssh/sshd_config{,.old}

10:21:33
#ls /etc/ssh
moduli       sshd_config.old       ssh_host_ecdsa_key      ssh_host_rsa_key.pub
ssh_config   ssh_host_dsa_key      ssh_host_ecdsa_key.pub
sshd_config  ssh_host_dsa_key.pub  ssh_host_rsa_key
10:21:46
#which vi
/usr/bin/vi
10:25:52
#ls -l `which vi`
lrwxrwxrwx 1 root root 20 Июн 27  2014 /usr/bin/vi -> /etc/alternatives/vi
10:26:12
#ls -l `which vi` | awk `{print $11}`
l3script: {print: команда не найдена
10:28:03
#ls -l `which vi` | awk '{print $11}'
/etc/alternatives/vi
10:29:15
#ls -l $(ls -l `which vi` | awk '{print $11}')
lrwxrwxrwx 1 root root 18 Июн 27  2014 /etc/alternatives/vi -> /usr/bin/vim.basic
10:29:43
#ls
111  2352f346  24235  34634r  d132  install
прошло 46 минут
11:16:02
#ls -l $(ls -l `which vi` | awk '{print $11}')
lrwxrwxrwx 1 root root 18 Июн 27  2014 /etc/alternatives/vi -> /usr/bin/vim.basic
11:16:46
#echo +([0-9]) | xargs rm -v
удалён «111»
удалён «24235»
11:18:36
#cat passwd | grep '100'
cat: passwd: Нет такого файла или каталога
прошло 112 минут
13:11:15
#cat passwd
cat: passwd: Нет такого файла или каталога
13:11:37
#cp /etc/passwd passwd

13:11:56
#cat 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:11:59
#cat passwd | grep '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:12:03
#cat passwd | grep '^ivan'
ivan:x:1001:1001::/home/ivan:/bin/bash
13:12:48
#cat passwd | grep '^[uip]'
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/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:16:25
#cat passwd | grep '^[dy-zia-c]'
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
ivan:x:1001:1001::/home/ivan:/bin/bash
13:17:39
#cat passwd | grep '1..2'
petr:x:1002:1002::/home/petr:/bin/bash
13:19:07
#cat passwd | grep '1.2'
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
13:19:11
#cat passwd | grep '1.*2'
man:x:6:12:man:/var/cache/man:/bin/sh
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
petr:x:1002:1002::/home/petr:/bin/bash
13:20:49
#cat passwd | grep '1.+2'

13:21:25
#cat passwd | egrep '1.+2'
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
petr:x:1002:1002::/home/petr:/bin/bash
13:22:03
#cat passwd | egrep '1.{2}2'
petr:x:1002:1002::/home/petr:/bin/bash
13:22:43
#cat passwd | egrep '1.?2'
man:x:6:12:man:/var/cache/man:/bin/sh
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
13:30:22
#cat passwd | egrep '1(..)?2'
man:x:6:12:man:/var/cache/man:/bin/sh
petr:x:1002:1002::/home/petr:/bin/bash
13:31:30
#cat passwd | egrep '^(ivan|petr|user)'
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:34:37
#vi ip.txt
--- /dev/null	2017-06-02 15:39:53.528000002 +0300
+++ ip.txt	2017-06-07 14:38:54.356446865 +0300
@@ -0,0 +1,8 @@
+192.168.0.1
+500.8.4.5
+240.5.333.2
+a.4.4.9
+172.16.30.30
+4.6.70
+10.5.3.68
+
13:38:54
#cat ip.txt
192.168.0.1
500.8.4.5
240.5.333.2
a.4.4.9
172.16.30.30
4.6.70
10.5.3.68
13:39:13
#cat ip.txt | egrep '^(0-255)'

13:41:08
#cat ip.txt | egrep '^(0|1|2)'
192.168.0.1
240.5.333.2
172.16.30.30
10.5.3.68
13:43:21
#cat ip.txt | egrep '^(0|1|2)?'
192.168.0.1
500.8.4.5
240.5.333.2
a.4.4.9
172.16.30.30
4.6.70
10.5.3.68
13:44:18
#cat ip.txt | egrep '^(0|1|2)?.'
192.168.0.1
500.8.4.5
240.5.333.2
a.4.4.9
172.16.30.30
4.6.70
10.5.3.68
13:44:36
#cat ip.txt | egrep '^(0|1|2)?.(0|1|2|3|4|5|6|7|8|9)?.'
192.168.0.1
500.8.4.5
240.5.333.2
a.4.4.9
172.16.30.30
4.6.70
10.5.3.68
13:45:19
#'

13:46:44
#cat ip.txt | egrep '^(0|1|2)?(0|1|2|3|4|5|6|7|8|9)?(0|1|2|3|4|5|6|7|8|9^C'

13:47:46
#cat ip.txt | egrep '^(0|1|2)?(0|1|2|3|4|5|6|7|8|9)?(0|1|2|3|4|5|6|7|8|9)?(0|1|2|3|4|5|6|7|8|9).'
192.168.0.1
500.8.4.5
240.5.333.2
172.16.30.30
4.6.70
10.5.3.68
13:53:32
#cat ip.txt | egrep '^[0-255]'
192.168.0.1
500.8.4.5
240.5.333.2
172.16.30.30
10.5.3.68
13:53:35
#cat ip.txt | egrep '^[0-255].[0-255].[0-255].[0-255]]'

13:57:24
#cat ip.txt | egrep '^[0-2].[0-9].[0-9].[0-9]'
192.168.0.1
240.5.333.2
13:58:07
#cat ip.txt | egrep '^[0-2]\.[0-9].[0-9].[0-9]'

13:58:36
#cat ip.txt | egrep '^[0-9]\.'
4.6.70
13:59:56
#cat ip.txt | egrep '^[0-9]{3}\.'
192.168.0.1
500.8.4.5
240.5.333.2
172.16.30.30
14:01:11
#cat ip.txt | egrep '^[0-9]{0,3}\.'
192.168.0.1
500.8.4.5
240.5.333.2
172.16.30.30
4.6.70
10.5.3.68
14:02:38
#cat ip.txt | egrep '([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]\.'
egrep: Непарная ( или \(
прошло 11 минут
14:13:49
#cat ip.txt | egrep '^([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]\.)'
192.168.0.1
500.8.4.5
240.5.333.2
172.16.30.30
4.6.70
10.5.3.68
14:16:55
#cat ip.txt | egrep '^([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.'
192.168.0.1
240.5.333.2
172.16.30.30
4.6.70
10.5.3.68
прошло 19 минут
14:36:21
#cat ip.txt | awk -F. '$1>=0 && $1<256 && $2>=0 && $2<256 && $3>=0 && $3<256 && $4>=0 && $4<256 && NF==4'
192.168.0.1
172.16.30.30
10.5.3.68
прошло 20 минут
14:56:50
#netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 debian1.net.nt:ssh      192.168.16.154:64746    ESTABLISHED
tcp        0      0 debian1.net.nt:ssh      192.168.16.154:64806    ESTABLISHED
tcp        0      0 debian1.net.nt:ssh      192.168.16.154:64742    ESTABLISHED
tcp        0    368 debian1.net.nt:ssh      192.168.16.154:64715    ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  7      [ ]         DGRAM                    5062     /dev/log
unix  3      [ ]         STREAM     CONNECTED     12188
...
unix  3      [ ]         STREAM     CONNECTED     11544
unix  3      [ ]         STREAM     CONNECTED     11543
unix  2      [ ]         DGRAM                    11542
unix  3      [ ]         STREAM     CONNECTED     11445
unix  3      [ ]         STREAM     CONNECTED     11444
unix  2      [ ]         DGRAM                    11443
unix  2      [ ]         DGRAM                    11272
unix  2      [ ]         DGRAM                    5110
unix  3      [ ]         DGRAM                    3249
unix  3      [ ]         DGRAM                    3248
прошло 11 минут
15:08:34
#netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.13.1:22         192.168.16.154:64746    ESTABLISHED
tcp        0      0 192.168.13.1:45749      5.9.243.178:18030       TIME_WAIT
tcp        0      0 192.168.13.1:22         192.168.16.154:64806    ESTABLISHED
tcp        0      0 192.168.13.1:22         192.168.16.154:64742    ESTABLISHED
tcp        0    432 192.168.13.1:22         192.168.16.154:64715    ESTABLISHED
15:08:44
#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
15:09:14
#^[0-9]{0,3}\.'

15:09:14
#^[0-9]{0,3}\.'

15:14:52
#cat install | sed 's/h/\/bash/'
#!/bin/s/bash
/bashostname=`hostname`
uname -a | egrep -qi '(freebsd|darwin)' || /bashostname=`hostname -f`
###############################################################################
#
# Set t/bashis variables before installation:
lilalo_user=13-10-2014
lab=NT-LNet
install_l3bas/bashrc_for_this_users=${users:-"root user"}  # users who will use l3agent and l3script
lilalo_context="/users/${lilalo_user}/${lab}/${/bashostname}"
...
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 l3bas/bashrc to users home directories" install_to_users_homes $install_l3bashrc_for_this_users
step "Adding l3bas/bashrc invocation to ~/.bashrc " install_to_users_bashrc $install_l3bashrc_for_this_users
step "Adding l3-agent invocation to ~/.bas/bash_profile " install_to_users_bash_profile $install_l3bashrc_for_this_users
cd /
rm -rf ${temp_dir}
s/bashow_final_message
15:15:04
#cat install | sed 's/_/ /'
#!/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
15:15:26
#cat install | sed 's/_/ '
sed: -e выражение #1, символ 5: незавершенная команда `s'
15:16:07
#cat install | sed 's/_/ /g'
#!/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
15:16:25
#cat install | sed 's/_/ /g' | sed 's/ /\n/g'
#!/bin/sh
hostname=`hostname`
uname
-a
|
egrep
-qi
'(freebsd|darwin)'
||
hostname=`hostname
...
users
cd
/
rm
-rf
${temp
dir}
show
final
message
15:18:20
#cat install | sed 's/_/ /g' | sed 's/ /\n/g' | sort
==
>
>
>
>>
>>
>&
|
|
|
...
-y
(y/n)?"
you
you
you
your
your
your
Your
^[yY]
15:18:31
#cat install | sed 's/_/ /g' | sed 's/ /\n/g' | sort | uniq
==
>
>>
>&
|
||
;
/
/'
.
...
X
xgu.ru
xvfz
y
-y
(y/n)?"
you
your
Your
^[yY]
15:20:31
#sort | uniq

15:25:21
#cat install | sed 's/_/ /g' | sed 's/=/ /g' | sed 's/ /\n/g' | tr -d [:punct:] | tr -d [:digit:] | sort | uniq
a
Adding
already
and
answer
apt
aptget
at
available
awk
...
x
X
xguru
xvfz
y
yn
you
your
Your
yY
прошло 12 минут
15:37:55
#cat /etc/passwd | sed 's/:/ /g'
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
15:38:22
#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
15:38:36
#cat /etc/passwd | sed 's/:.*//'
root
daemon
bin
sys
sync
games
man
lp
mail
news
...
list
irc
gnats
nobody
libuuid
Debian-exim
user
sshd
ivan
petr
15:39:27
#cat /etc/passwd | sed 's/[^a]//g' | wc -c
71
15:40:38
#list
l3script: list: команда не найдена
15:41:42
#ls
2352f346  34634r  d132  install  ip.txt  passwd

Четверг (06/08/17)

/dev/pts/1
08:10:34
#pwd
/root
08:19:43
#find /home -empty -type f -user ivan

08:24:30
#find /home -empty -type f -user ivan
/home/ivan/d4
/home/ivan/d3
08:25:48
#find /home -empty -type f -user ivan | xargs -i cp {} /tmp

08:26:33
#cd /temp
l3script: cd: /temp: Нет такого файла или каталога
08:26:42
#ls /temp
ls: невозможно получить доступ к /temp: Нет такого файла или каталога
08:26:50
#ls /tmp
d3  d4  etccopy  p1  passwd
08:26:57
#find /home -empty -type f -user ivan | xargs -i cp -v {} /tmp
«/home/ivan/d4» -> «/tmp/d4»
«/home/ivan/d3» -> «/tmp/d3»
08:27:16
#rm /tmp/*
rm: невозможно удалить «/tmp/etccopy»: Это каталог
08:27:52
#ls /tmp
etccopy
08:28:20
#ls /tmp/etccopy
adduser.conf            hosts.deny       nanorc
adjtime                 inittab          networks
aliases                 inputrc          nsswitch.conf
bash.bashrc             insserv.conf     os-release
bash_completion         issue            pam.conf
bindresvport.blacklist  issue.net        passwd
blkid.tab               kernel-img.conf  profile
blkid.tab.old           ld.so.cache      protocols
ca-certificates.conf    ld.so.conf       rc.local
console-cyrillic        locale.alias     reportbug.conf
...
discover-modprobe.conf  mailcap          screenrc
email-addresses         mailcap.order    securetty
environment             mailname         services
fstab                   manpath.config   shells
gai.conf                mime.types       staff-group-for-usr-local
group                   mke2fs.conf      sysctl.conf
host.conf               modules          timezone
hostname                motd             trafshow
hosts                   mtab             ucf.conf
hosts.allow             nail.rc          wgetrc
08:28:33
#find /home -empty -type f -user ivan -exec mv -v {} /tmp \;
«/home/ivan/d4» -> «/tmp/d4»
«/home/ivan/d3» -> «/tmp/d3»
08:30:06
#find / -regex ".*\.jpe?g"
/home/user/matrix.jpg
/home/user/freebsd.jpg
/home/user/press_any_key_to_continue.jpg
/home/user/granata.jpg
/home/user/ogo.jpg
08:39:03
#find ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'

прошло 10 минут
08:49:28
#find / -regex ".*\.rpm"

прошло 20 минут
09:09:52
#find / -regex ".*\.jpg"
/home/user/matrix.jpg
/home/user/freebsd.jpg
/home/user/press_any_key_to_continue.jpg
/home/user/granata.jpg
/home/user/ogo.jpg
09:10:00
#find / -regex ".*\.tar"

09:10:06
#find / -regex ".*\.gz"
/etc/alternatives/mt.1.gz
/etc/alternatives/ex.pl.1.gz
/etc/alternatives/aptitude.ja.8.gz
/etc/alternatives/awk.1.gz
/etc/alternatives/traceroute6.1.gz
/etc/alternatives/aptitude.pl.8.gz
/etc/alternatives/c99.1.gz
/etc/alternatives/aptitude.gl.8.gz
/etc/alternatives/unlzma.1.gz
/etc/alternatives/rcp.1.gz
...
/var/log/apt/history.log.1.gz
/var/log/dmesg.2.gz
/var/log/syslog.3.gz
/var/log/syslog.7.gz
/var/log/user.log.3.gz
/var/log/debug.2.gz
/var/log/auth.log.3.gz
/var/log/debug.3.gz
/var/log/aptitude.1.gz
/var/log/syslog.5.gz
09:10:12
#find ~ -regex ".*\.gz"

09:10:42
#find ~ -regex ".*\.gz"

09:13:43
#~ -regex ".*\.gz"

09:17:14
#/ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)' -regextype posix-egrep

прошло 53 минуты
10:10:40
#vi test.sh
10:10:47
#~
chmod: неверный режим: «ux»
Попробуйте «chmod --help» для получения более подробного описания.
10:11:00
#chmod u+x test.sh

Файлы

  • /etc/passwd
  • install
  • ip.txt
  • passwd
  • /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
    
    ip.txt
    >
    192.168.0.1
    500.8.4.5
    240.5.333.2
    a.4.4.9
    172.16.30.30
    4.6.70
    10.5.3.68
    
    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
    

    Статистика

    Время первой команды журнала10:01:09 2017- 6- 7
    Время последней команды журнала10:11:00 2017- 6- 8
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %13.86
    Процент синтаксически неверно набранных команд, % 1.98
    Суммарное время работы с терминалом *, час 4.14
    Количество командных строк в единицу времени, команда/мин 0.41
    Частота использования команд
    cat48|====================| 20.78%
    egrep22|=========| 9.52%
    find13|=====| 5.63%
    ls13|=====| 5.63%
    sed11|====| 4.76%
    grep9|===| 3.90%
    16|==| 2.60%
    awk5|==| 2.16%
    wc5|==| 2.16%
    sort4|=| 1.73%
    53|=| 1.30%
    uniq3|=| 1.30%
    43|=| 1.30%
    83|=| 1.30%
    cp3|=| 1.30%
    33|=| 1.30%
    63|=| 1.30%
    1[0-9]{2}3|=| 1.30%
    xargs3|=| 1.30%
    2[0-4][0-9]3|=| 1.30%
    23|=| 1.30%
    [0-9]{2}3|=| 1.30%
    echo3|=| 1.30%
    73|=| 1.30%
    \.tgz2|| 0.87%
    \.rpm)'2|| 0.87%
    ^[0-9]{0,3}\.'2|| 0.87%
    2)?(02|| 0.87%
    man2|| 0.87%
    netstat2|| 0.87%
    ~2|| 0.87%
    9)?(02|| 0.87%
    vi2|| 0.87%
    Частота использования этих команд < 0.5%9).'1 , 2561 , &1 , $2>1 , 25[0-5]\.'1 , chmod1 , rm1 , cd1 , 2)?.'1 , 25[0-5]\.)'1 , $3>1 , \.gz1 , pwd1 , httpd1 , =01 , stty1 , NF==4'1 , 25[0-5])\.'1 , 2)'1 , 2)?.(01 , $3<1 , '1 , petr1 , $2<1 , 2)?'1 , user)'1 , 9^C'1 , 9)?.'1 , list1 , $4<1 , $4>1 , which1 , /1 , tr1 , $1<1
    ____
    *) Интервалы неактивности длительностью 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$