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

Содержание

Журнал

Понедельник (07/16/18)

/dev/pts/0
09:05:36
#ls
install
09:06:47
#useradd ivan

09:15:06
#echo $?
0
09:16:23
#useradd ivan
useradd: пользователь «ivan» уже существует
09:19:42
#echo $?
9
09:19:47
#useradd --help
Использование: useradd [параметры] ПОÐ
seradd -D
               useradd -D [параметры]
Параметры:
  -b, --base-dir БАЗ_КАТ        базовый каталог для домашнего каталога новой
                                учётной записи
  -c, --comment КОММЕНТАРИЙ     поле GECOS новой учётной записи
  -d, --home-dir ДОМ_КАТ        домашний каталог новой учётной записи
  -D, --defaults                показать или изменить настройки
                                по умолчанию для useradd
...
  -p, --password ПАРОЇётной записи
  -r, --system                  создать системную учётную запись
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОРновой
                                учётной записи
  -u, --uid UID                 пользовательский ID новой учётной записи
  -U, --user-group              создать группу с тем же именем что и у
                                пользователя
  -Z, --selinux-user SEUSER     использовать указанного SEUSER для
                                пользовательского сопоставления SELinux
09:21:01
#LANG=''

09:23:50
#useradd --help
Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]
Options:
  -b, --base-dir BASE_DIR       base directory for the home directory of the
                                new account
  -c, --comment COMMENT         GECOS field of the new account
  -d, --home-dir HOME_DIR       home directory of the new account
  -D, --defaults                print or change default useradd configuration
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
...
                                the user
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       encrypted password of the new account
  -r, --system                  create a system account
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             login shell of the new account
  -u, --uid UID                 user ID of the new account
  -U, --user-group              create a group with the same name as the user
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping
09:23:52
#man useradd
09:28:19
#passwd ivan
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
09:30:21
#userdel ivan

09:34:46
#echo $?
0
09:34:52
#useradd -m -s /bin/bash ivan

09:39:57
#passwd ivan
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
09:41:36
#useradd -m -s /bin/bash petr

09:44:14
#passwd petr
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
09:44:45
#who
root     pts/0        Jul 16 09:55 (192.168.15.128)
ivan     pts/2        Jul 16 10:41 (192.168.15.128)
petr     pts/3        Jul 16 10:44 (192.168.15.128)
09:45:26
#cd /

прошло 14 минут
09:59:43
#ls
bin  boot  dev  etc  home  initrd.img  lib  lib32  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz
09:59:54
#ls -l
total 84
drwxr-xr-x  2 root root  4096 Oct 13  2014 bin
drwxr-xr-x  3 root root  4096 Oct 13  2014 boot
drwxr-xr-x 12 root root  2960 Jul 16 08:39 dev
drwxr-xr-x 68 root root  4096 Jul 16 10:44 etc
drwxr-xr-x  5 root root  4096 Jul 16 10:44 home
lrwxrwxrwx  1 root root    30 Jun 27  2014 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x 13 root root  4096 Oct 15  2014 lib
drwxr-xr-x  2 root root  4096 Oct 15  2014 lib32
drwxr-xr-x  2 root root  4096 Oct 13  2014 lib64
...
drwx------  5 root root  4096 Jul 16 09:59 root
drwxr-xr-x 12 root root   420 Jul 16 08:39 run
drwxr-xr-x  2 root root  4096 Oct 13  2014 sbin
drwxr-xr-x  2 root root  4096 Jun 10  2012 selinux
drwxr-xr-x  2 root root  4096 Jun 27  2014 srv
drwxr-xr-x 13 root root     0 Jul 16 08:39 sys
drwxrwxrwt  2 root root  4096 Jul 16 10:51 tmp
drwxr-xr-x 11 root root  4096 Oct 15  2014 usr
drwxr-xr-x 11 root root  4096 Jun 27  2014 var
lrwxrwxrwx  1 root root    26 Jun 27  2014 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64
10:00:00
#cd ivan
l3script: cd: ivan: No such file or directory
10:00:26
#cd root/

10:00:34
#cd //

10:00:53
#ls
bin  boot  dev  etc  home  initrd.img  lib  lib32  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz
10:00:59
#ls /
bin  boot  dev  etc  home  initrd.img  lib  lib32  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz
10:01:05
#cd /

10:01:11
#cd home/

10:01:15
#ls
ivan  petr  user
10:01:17
#cd ivan/

10:01:33
#cd /

10:01:46
#cd

10:02:23
#cd /

прошло 23 минуты
10:26:05
#ls -l
total 84
drwxr-xr-x  2 root root  4096 Oct 13  2014 bin
drwxr-xr-x  3 root root  4096 Oct 13  2014 boot
drwxr-xr-x 12 root root  2960 Jul 16 08:39 dev
drwxr-xr-x 68 root root  4096 Jul 16 10:44 etc
drwxr-xr-x  5 root root  4096 Jul 16 10:44 home
lrwxrwxrwx  1 root root    30 Jun 27  2014 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x 13 root root  4096 Oct 15  2014 lib
drwxr-xr-x  2 root root  4096 Oct 15  2014 lib32
drwxr-xr-x  2 root root  4096 Oct 13  2014 lib64
...
drwx------  5 root root  4096 Jul 16 09:59 root
drwxr-xr-x 12 root root   420 Jul 16 08:39 run
drwxr-xr-x  2 root root  4096 Oct 13  2014 sbin
drwxr-xr-x  2 root root  4096 Jun 10  2012 selinux
drwxr-xr-x  2 root root  4096 Jun 27  2014 srv
drwxr-xr-x 13 root root     0 Jul 16 08:39 sys
drwxrwxrwt  2 root root  4096 Jul 16 11:17 tmp
drwxr-xr-x 11 root root  4096 Oct 15  2014 usr
drwxr-xr-x 11 root root  4096 Jun 27  2014 var
lrwxrwxrwx  1 root root    26 Jun 27  2014 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64
10:26:08
#cd

10:26:28
#ls -l
total 8
-rw-r--r-- 1 root root 5268 Oct 13  2014 install
10:26:33
#ls -la
total 56
drwx------  5 root root 4096 Jul 16 09:59 .
drwxr-xr-x 24 root root 4096 Oct 15  2014 ..
drwx------  2 root root 4096 Jun 27  2014 .aptitude
-rw-------  1 root root 1896 Oct 15  2014 .bash_history
-rw-r--r--  1 root root   10 Jun 27  2014 .bash_profile
-rw-r--r--  1 root root  630 Jun 27  2014 .bashrc
-rw-r--r--  1 root root   51 Jul 13 14:52 .l3rc
drwxr-xr-x  2 root root 4096 Jul 16 10:05 .lilalo
-rw-r--r--  1 root root  140 Nov 19  2007 .profile
drwxr-xr-x  2 root root 4096 Jun 27  2014 .vim
-rw-------  1 root root 5390 Jul 16 09:59 .viminfo
-rw-r--r--  1 root root 5268 Oct 13  2014 install
10:28:38
#ls -la --color
total 56
drwx------  5 root root 4096 Jul 16 09:59 .
drwxr-xr-x 24 root root 4096 Oct 15  2014 ..
drwx------  2 root root 4096 Jun 27  2014 .aptitude
-rw-------  1 root root 1896 Oct 15  2014 .bash_history
-rw-r--r--  1 root root   10 Jun 27  2014 .bash_profile
-rw-r--r--  1 root root  630 Jun 27  2014 .bashrc
-rw-r--r--  1 root root   51 Jul 13 14:52 .l3rc
drwxr-xr-x  2 root root 4096 Jul 16 10:05 .lilalo
-rw-r--r--  1 root root  140 Nov 19  2007 .profile
drwxr-xr-x  2 root root 4096 Jun 27  2014 .vim
-rw-------  1 root root 5390 Jul 16 09:59 .viminfo
-rw-r--r--  1 root root 5268 Oct 13  2014 install
10:32:21
#alias ls='ls --color'

10:33:39
#ls
install
10:33:40
#ls -la
total 56
drwx------  5 root root 4096 Jul 16 09:59 .
drwxr-xr-x 24 root root 4096 Oct 15  2014 ..
drwx------  2 root root 4096 Jun 27  2014 .aptitude
-rw-------  1 root root 1896 Oct 15  2014 .bash_history
-rw-r--r--  1 root root   10 Jun 27  2014 .bash_profile
-rw-r--r--  1 root root  630 Jun 27  2014 .bashrc
-rw-r--r--  1 root root   51 Jul 13 14:52 .l3rc
drwxr-xr-x  2 root root 4096 Jul 16 10:05 .lilalo
-rw-r--r--  1 root root  140 Nov 19  2007 .profile
drwxr-xr-x  2 root root 4096 Jun 27  2014 .vim
-rw-------  1 root root 5390 Jul 16 09:59 .viminfo
-rw-r--r--  1 root root 5268 Oct 13  2014 install
10:33:45
#alias
alias ls='ls --color'
10:35:04
#ls -la /dev/
total 4
drwxr-xr-x 12 root root        2960 Jul 16 08:39 .
drwxr-xr-x 24 root root        4096 Oct 15  2014 ..
lrwxrwxrwx  1 root root           9 Jul 16 08:39 MAKEDEV -> /bin/true
crw------T  1 root root     10, 235 Jul 16 08:39 autofs
drwxr-xr-x  2 root root         280 Jul 16 08:39 block
drwxr-xr-x  2 root root          60 Jul 16 08:39 bsg
crw------T  1 root root     10, 234 Jul 16 08:39 btrfs-control
lrwxrwxrwx  1 root root           3 Jul 16 08:39 cdrom1 -> sr0
drwxr-xr-x  2 root root        2320 Jul 16 08:39 char
...
crw-------  1 root root      7, 131 Jul 16 08:39 vcsa3
crw-------  1 root root      7, 132 Jul 16 08:39 vcsa4
crw-------  1 root root      7, 133 Jul 16 08:39 vcsa5
crw-------  1 root root      7, 134 Jul 16 08:39 vcsa6
crw-------  1 root root     10,  63 Jul 16 08:39 vga_arbiter
prw-r-----  1 root adm            0 Jul 16 11:17 xconsole
brw-rw---T  1 root disk    202,   0 Jul 16 08:39 xvda
brw-rw---T  1 root disk    202,   1 Jul 16 08:39 xvda1
brw-rw---T  1 root disk    202,  16 Jul 16 08:39 xvdb
crw-rw-rw-  1 root root      1,   5 Jul 16 08:39 zero
прошло 11 минут
10:46:58
#who
root     pts/0        Jul 16 09:55 (192.168.15.128)
ivan     pts/2        Jul 16 10:41 (192.168.15.128)
petr     pts/3        Jul 16 10:44 (192.168.15.128)
user     pts/4        Jul 16 10:51 (192.168.15.128)
10:47:00
#echo privet > /dev/pt
ptmx  pts/
10:47:00
#echo privet > /dev/pts/2

10:47:49
#mailq

10:50:07
#which who
/usr/bin/who
10:51:16
#which mailq
/usr/bin/mailq
10:52:02
#ls -l /usr/bin/who
-rwxr-xr-x 1 root root 55888 Jan 26  2013 /usr/bin/who
10:52:22
#ls -l /usr/bin/mail
mail            mail-lock       mail-touchlock  mail-unlock     mailq           mailx
10:52:22
#ls -l /usr/bin/mailq
lrwxrwxrwx 1 root root 13 Jan  2  2013 /usr/bin/mailq -> ../sbin/exim4
10:53:19
#ls -l /usr/sbin/exim4
-rwsr-xr-x 1 root root 973824 Jan  2  2013 /usr/sbin/exim4
10:54:16
#ls -l /dev/cdrom1
lrwxrwxrwx 1 root root 3 Jul 16 08:39 /dev/cdrom1 -> sr0
10:57:00
#ls -l /dev/sr0
brw-rw---T 1 root cdrom 11, 0 Jul 16 08:39 /dev/sr0
10:57:30
#mkfifo /tmp/test

11:02:54
#echo $?
0
11:03:08
#ls -l /tmp/test
prw-r--r-- 1 root root 0 Jul 16 12:02 /tmp/test
11:03:23
#echo prive > /tmp/test

11:04:48
#ls -l /dev/log
srw-rw-rw- 1 root root 0 Jul 16 08:39 /dev/log
11:06:43
#netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 debian2.net.nt:ssh      192.168.15.128:49323    ESTABLISHED
tcp        0    432 debian2.net.nt:ssh      192.168.15.128:49242    ESTABLISHED
tcp        0      0 debian2.net.nt:ssh      192.168.15.128:49322    ESTABLISHED
tcp        0      0 debian2.net.nt:ssh      192.168.15.128:49312    ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  7      [ ]         DGRAM                    5058     /dev/log
unix  3      [ ]         STREAM     CONNECTED     7098
...
unix  3      [ ]         STREAM     CONNECTED     6904
unix  3      [ ]         STREAM     CONNECTED     6903
unix  2      [ ]         DGRAM                    6902
unix  3      [ ]         STREAM     CONNECTED     6723
unix  3      [ ]         STREAM     CONNECTED     6722
unix  2      [ ]         DGRAM                    6721
unix  2      [ ]         DGRAM                    5486
unix  2      [ ]         DGRAM                    5098
unix  3      [ ]         DGRAM                    3254
unix  3      [ ]         DGRAM                    3253
11:09:35
#cd /
bin/        dev/        home/       lib/        lib64/      media/      opt/        root/       sbin/       srv/        tmp/        var/
boot/       etc/        initrd.img  lib32/      lost+found/ mnt/        proc/       run/        selinux/    sys/        usr/        vmlinuz
11:09:35
#cd /home/ivan/

11:12:39
#cd /home/petr/

11:12:49
#cd -
/home/ivan
11:13:02
#apt-get install tree
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  tree
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 43.3 kB of archives.
After this operation, 112 kB of additional disk space will be used.
Get:1 http://ftp.ua.debian.org/debian/ wheezy/main tree amd64 1.6.0-1 [43.3 kB]
Fetched 43.3 kB in 0s (320 kB/s)
Selecting previously unselected package tree.
(Reading database ... 28835 files and directories currently installed.)
Unpacking tree (from .../tree_1.6.0-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up tree (1.6.0-1) ...
прошло 25 минут
11:39:01
#cd

прошло 63 минуты
12:42:11
#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:42:16
#more install
12:43:26
#less install
12:45:25
#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:48:28
#tac install
show_final_message
rm -rf ${temp_dir}
cd /
step "Adding l3-agent invocation to ~/.bash_profile " install_to_users_bash_profile $install_l3bashrc_for_this_users
step "Adding l3bashrc invocation to ~/.bashrc " install_to_users_bashrc $install_l3bashrc_for_this_users
step "Installing l3bashrc to users home directories" install_to_users_homes $install_l3bashrc_for_this_users
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 "Downloading perl modules for l3-agent" '{ for i in ${perl_modules}; do ${wget} ${url_perl_modules}/$i.tar.gz; done; }'
step "Downloading l3-agent" '${wget} ${url_l3agent}; ${wget} ${url_l3config_pm}; ${wget} ${url_l3config}'
step "Downloading l3prompt" ${wget} ${url_l3prompt}
...
lilalo_context="/users/${lilalo_user}/${lab}/${hostname}"
install_l3bashrc_for_this_users=${users:-"root user"}  # users who will use l3agent and l3script
lab=NT-LNet
lilalo_user=13-10-2014
# Set this variables before installation:
#
###############################################################################
uname -a | egrep -qi '(freebsd|darwin)' || hostname=`hostname -f`
hostname=`hostname`
#!/bin/sh
12:52:19
#ln install install2

13:00:52
#ls -l
total 16
-rw-r--r-- 2 root root 5268 Oct 13  2014 install
-rw-r--r-- 2 root root 5268 Oct 13  2014 install2
13:01:03
#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
...
  172  apt-get install tree
  173  cd
  174  cat install
  175  more install
  176    less install
  177  tail install
  178  tac install
  179  ln install install2
  180  ls -l
  181  history
прошло 39 минут
13:40:59
#man cp
прошло 37 минут
14:18:25
#cp install test

14:20:41
#ls
install  install2  test
14:20:44
#which vi
/usr/bin/vi
14:21:36
#which vim
/usr/bin/vim
14:21:39
#ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 Jun 27  2014 /usr/bin/vi -> /etc/alternatives/vi
14:22:06
#ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 Jun 27  2014 /etc/alternatives/vi -> /usr/bin/vim.basic
14:22:37
#ls -l /usr/bin/vim
vim        vim.basic  vim.tiny   vimdiff    vimtutor
14:22:37
#ls -l /usr/bin/vim.basic
-rwxr-xr-x 1 root root 1876072 Feb 10  2013 /usr/bin/vim.basic
14:23:01
#ls -l `which vi`
lrwxrwxrwx 1 root root 20 Jun 27  2014 /usr/bin/vi -> /etc/alternatives/vi
14:24:07
#vi test
прошло 49 минут
15:13:23
#eval "$@" 2>&1 | sed 's/^/|\ \ \ /' && printf "Ok\n" || printf "Failed\n"
colorscheme elflord
set nowrap
syntax on
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
~
".vomrc" 5L, 64C written
15:16:17
#vi .vomrc
15:16:40
#~

15:17:08
#vi .vimrc
15:17:33
#vi .vimrc
--- /tmp/l3-saved-2410.17251.2693	2018-07-16 16:17:36.307906310 +0300
+++ .vimrc	2018-07-16 16:18:07.711904657 +0300
@@ -1,4 +1,4 @@
-set munber
+set number
 set mouse=a
 colorscheme elflord
 set nowrap
15:18:13
#vi .vimrc
15:22:12
#~
  1 set number
  2 set mouse=a
  3 colorscheme elflord
  4 set nowrap
  5 syntax on
".vimrc" 5L, 64C
15:22:22
#~
 31
 32 wget=wget5268C
 33 uname -a | egrep -qi '(bsd|darwin)' && wget=fetch
 34
 35 normC='\033[0;39m'
 36 whiteC='\033[1;37m'
 37 redC='\033[0;31m'
 38 greenC='\033[0;32m'
 39
 40 apt_get_install_deps()
...
 52         then
 53             true
 54         else
 55             echo Please install the dependencies and rerun the script
 56             exit 1
 57         fi
 58     fi
 59 }
 60
 61
15:22:32
# 62 step()
.vim/     .viminfo  .vimrc
15:22:32
#cp .vimrc ~ivan/

15:23:34
#cp .vimrc ~user/

15:23:42
#ls /etc/
X11                     blkid.tab             cron.weekly             environment  host.conf        insserv.conf     lilalo          mailname        networks       profile.d  rc6.d           selinux                    sysctl.d  xml
acpi                    blkid.tab.old         crontab                 exim4        hostname         insserv.conf.d   locale.alias    manpath.config  nsswitch.conf  protocols  rcS.d           services                   systemd
adduser.conf            ca-certificates       debconf.conf            fstab        hosts            iproute2         locale.gen      mime.types      opt            python     reportbug.conf  sgml                       terminfo
adjtime                 ca-certificates.conf  debian_version          fstab.d      hosts.allow      issue            localtime       mke2fs.conf     os-release     python2.7  resolv.conf     shadow                     timezone
aliases                 calendar              default                 gai.conf     hosts.deny       issue.net        logcheck        modprobe.d      pam.conf       rc.local   rmt             shadow-                    trafshow
alternatives            console-cyrillic      deluser.conf            groff        init             kbd              login.defs      modules         pam.d          rc0.d      rpc             shells                     ucf.conf
apt                     console-setup         dhcp                    group        init.d           kernel           logrotate.conf  motd            passwd         rc1.d      rsyslog.conf    skel                       udev
bash.bashrc             cron.d                discover-modprobe.conf  group-       initramfs-tools  kernel-img.conf  logrotate.d     mtab            passwd-        rc2.d      rsyslog.d       ssh                        ufw
bash_completion         cron.daily            discover.conf.d         grub.d       inittab          ld.so.cache      lynx-cur        nail.rc         perl           rc3.d      screenrc        ssl                        vim
bash_completion.d       cron.hourly           dpkg                    gshadow      inputrc          ld.so.conf       mailcap         nanorc          ppp            rc4.d      securetty       staff-group-for-usr-local  w3m
bindresvport.blacklist  cron.monthly          email-addresses         gshadow-     insserv          ld.so.conf.d     mailcap.order   network         profile        rc5.d      security        sysctl.conf                wgetrc
15:24:43
#ls -la /etc/
total 664
drwxr-xr-x 68 root root    4096 Jul 16 10:44 .
drwxr-xr-x 24 root root    4096 Oct 15  2014 ..
-rw-------  1 root root       0 Jun 27  2014 .pwd.lock
drwxr-xr-x  3 root root    4096 Jun 27  2014 X11
drwxr-xr-x  3 root root    4096 Oct 13  2014 acpi
-rw-r--r--  1 root root    2981 Jun 27  2014 adduser.conf
-rw-r--r--  1 root root      44 Oct 15  2014 adjtime
-rw-r--r--  1 root root     196 Jun 27  2014 aliases
drwxr-xr-x  2 root root    4096 Oct 13  2014 alternatives
...
drwxr-xr-x  2 root root    4096 Jun 27  2014 terminfo
-rw-r--r--  1 root root      12 Jun 27  2014 timezone
-rw-r--r--  1 root root    1552 Oct 19  2012 trafshow
-rw-r--r--  1 root root    1260 May 30  2008 ucf.conf
drwxr-xr-x  4 root root    4096 Jun 27  2014 udev
drwxr-xr-x  3 root root    4096 Jun 27  2014 ufw
drwxr-xr-x  2 root root    4096 Jun 27  2014 vim
drwxr-xr-x  2 root root    4096 Jun 27  2014 w3m
-rw-r--r--  1 root root    4496 Feb  1  2014 wgetrc
drwxr-xr-x  2 root root    4096 Jun 27  2014 xml
15:24:53
#vim /usr/share/vim/vimrc
15:26:42
# 54
 21
 22 " If using a dark background within the editing area and syntax highlighting
 23 " turn on this option as well
 24 "set background=dark
 25
 26 " Uncomment the following to have Vim jump to the last position when
 27 " reopening a file
 28 "if has("autocmd")
 29 "  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
 30 "endif
...
 50 if filereadable("/etc/vim/vimrc.local")
 51   source /etc/vim/vimrc.local
 52 endif
 53
 54 set number
 55 set mouse=a
 56 colorscheme elflord
 57 set nowrap
 58 syntax on
                                                                                                                                                                                                                           58,10          Bot

Файлы

  • install
  • 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
    

    Статистика

    Время первой команды журнала09:05:36 2018- 7-16
    Время последней команды журнала15:26:42 2018- 7-16
    Количество командных строк в журнале100
    Процент команд с ненулевым кодом завершения, % 3.00
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 3.19
    Количество командных строк в единицу времени, команда/мин 0.52
    Частота использования команд
    ls30|===========================| 27.78%
    cd16|==============| 14.81%
    echo7|======| 6.48%
    useradd6|=====| 5.56%
    vi5|====| 4.63%
    which4|===| 3.70%
    passwd3|==| 2.78%
    cp3|==| 2.78%
    ~3|==| 2.78%
    man2|=| 1.85%
    alias2|=| 1.85%
    who2|=| 1.85%
    541|| 0.93%
    621|| 0.93%
    more1|| 0.93%
    &1|| 0.93%
    mkfifo1|| 0.93%
    eval1|| 0.93%
    printf1|| 0.93%
    netstat1|| 0.93%
    cat1|| 0.93%
    apt-get1|| 0.93%
    sed1|| 0.93%
    \1|| 0.93%
    LANG=''1|| 0.93%
    tac1|| 0.93%
    userdel1|| 0.93%
    vim1|| 0.93%
    history1|| 0.93%
    mailq1|| 0.93%
    tail1|| 0.93%
    less1|| 0.93%
    11|| 0.93%
    ln1|| 0.93%
    21|| 0.93%
    test1|| 0.93%
    pt1|| 0.93%
    ____
    *) Интервалы неактивности длительностью 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$