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

Содержание

Журнал

Вторник (09/29/15)

/dev/pts/0
14:54:20
#ls
[:lower:][:upper:]
14:54:25
#cd

14:54:36
#ls
[:lower:][:upper:]
14:54:38
#for i in * ; do mv "$i" "`echo $i| tr `[:lower:]` `[:upper:]`";
> ^C
14:55:29
#jobs
[1]   Stopped                 /usr/bin/vi "$@"
[2]   Stopped                 /usr/bin/vi "$@"
[3]   Stopped                 ps ax | more
[4]   Stopped                 cat
[5]-  Stopped                 egrep -R '(([0-9]|[0-9]{2}|1[0-9]{2}|2[0-9]{3}])\.){3}([0-9]|[0-9]{2}|1[0-9]{2}|2[0-9]{3})' /etc
[6]+  Stopped                 /usr/bin/vi "$@"
14:55:34
#jobs --help
l3script: jobs: --: неправильная опция
jobs: usage: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
14:55:43
#dir
[:lower:][:upper:]
14:56:03
#cd ^C

14:56:13
#cd lower
l3script: cd: lower: Нет такого файла или каталога
14:56:17
#cd [:lower:]
l3script: cd: [:lower:]: Нет такого файла или каталога
14:56:28
#cd [:lower:]
l3script: cd: [:lower:]: Нет такого файла или каталога
14:56:41
#cd [:lower:][:upper:]
l3script: cd: [:lower:][:upper:]: Это не каталог
14:56:44
#cd .

14:56:52
#ls
[:lower:][:upper:]
14:56:54
#cd ..

14:57:01
#ls
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
14:57:03
#cd root

14:57:07
#ls
[:lower:][:upper:]
14:57:09
#cat install
cat: install: Нет такого файла или каталога
прошло 19 минут
15:16:11
#cat install
cat: install: Нет такого файла или каталога
15:16:47
#ls
[:lower:][:upper:]
15:16:52
#ls
[:lower:][:upper:]
15:18:36
#ls
[:lower:][:upper:]
15:19:20
#ls
[:lower:][:upper:]
15:19:32
#ls -a
.          .bash_history  .john     .lilalo             .privet.sh.swp  .vim
..         .bash_profile  .l3rc     [:lower:][:upper:]  .profile        .viminfo
.aptitude  .bashrc        .lesshst  .privet.sh.swo      .swp            .vimrc
15:19:35
#vi install
--- /dev/null	2015-09-25 17:22:51.904000007 +0300
+++ install	2015-09-29 16:20:53.978487976 +0300
@@ -0,0 +1,155 @@
+
+stname=`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
+
15:20:54
#cat install
stname=`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:20:59
#ls -l
итого 12
-rw-r--r-- 1 root root 5222 Сен 29 16:20 install
-rw-r--r-- 1 root root  236 Сен 29 15:21 [:lower:][:upper:]
15:22:32
#pstree
init─┬─acpid
     ├─cron
     ├─exim4
     ├─6*[getty]
     ├─2*[l3-agent]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─sshd───bash───script───script───l3script─┬─cat
     │      │                                          ├─egrep
     │      │                                          ├─more
     │      │                                          ├─pstree
     │      │                                          └─3*[vi]
     │      ├─sshd───sshd───bash───script───script───l3script───cat
     │      ├─sshd───sshd───bash───mail
     │      └─sshd───sshd───bash
     └─udevd
15:23:49
#cp install install.back

прошло 35 минут
15:58:55
#ls ~ivan/
d2
16:07:38
#ls ~user/
aba         file2                                  pamyatka.pdf
abb         file3                                  press_any_key_to_continue.jpg
abc         freebsd.jpg                            price
abd         granata.jpg                            proj
backup      killall                                -r
bigfile     Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  sh
bin         lpi 1                                  sorted
directory1  lpi 2                                  sorted_passwd
directory2  man_smb_conf                           source
directory3  matrix.jpg                             text
errlog      names                                  touchlist
file        newfile                                unsorted
file1       ogo.jpg
16:07:45
#loc
local             localedef         locate            lockfile-check    lockfile-remove
locale            locale-gen        locate.findutils  lockfile-create   lockfile-touch
16:07:45
#locate
Usage: locate [-d path | --database=path] [-e | -E | --[non-]existing]
      [-i | --ignore-case] [-w | --wholename] [-b | --basename]
      [--limit=N | -l N] [-S | --statistics] [-0 | --null] [-c | --count]
      [-P | -H | --nofollow] [-L | --follow] [-m | --mmap ] [ -s | --stdio ]
      [-A | --all] [-p | --print] [-r | --regex ] [--regextype=TYPE]
      [--max-database-age D] [--version] [--help]
      pattern...
Report bugs to <bug-findutils@gnu.org>.
16:07:53
#locate ogo
/etc/skel/.bash_logout
/etc/zsh/zlogout
/home/ivan/.bash_logout
/home/petr/.bash_logout
/home/user/.bash_logout
/home/user/ogo.jpg
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bash_logout
/usr/share/man/man3/logout.3.gz
/usr/share/pixmaps/debian-logo.png
/usr/share/zoneinfo/America/Bogota
/usr/share/zoneinfo/posix/America/Bogota
/usr/share/zoneinfo/right/America/Bogota
/usr/share/zsh/functions/Completion/Unix/_bogofilter
/usr/share/zsh/help/logout
16:08:05
#locate ogo.jp
/home/user/ogo.jpg
16:08:22
#locate ogo.jpg
/home/user/ogo.jpg
16:08:36
#> ~user/ogo2.jpg

16:09:06
#locate ogo.jpg
/home/user/ogo.jpg
16:09:08
#locate ogo2.jpg

16:09:10
#ls /etc/cron
ls: невозможно получить доступ к /etc/cron: Нет такого файла или каталога
16:10:33
#ls /etc/cron.d
cron.d/     cron.daily/
16:10:33
#ls /etc/cron.daily/
apt  aptitude  bsdmainutils  dpkg  exim4-base  locate  logrotate  man-db  passwd
16:10:43
#less /etc/cron.daily/locate
16:14:27
#less /etc/cron.daily/locate
16:16:40
#find / -mmin -2 2> /dev/null
/dev/pts/1
/dev/pts/0
/dev/ptmx
/home/user/.lilalo/.report.dat
/root/.lilalo/.report.dat
/root/.lilalo/27826459228625774-1443508639.info
/root/.lilalo/27826459228625774-1443508639.script
/proc/asound
/proc/asound/pcm
/proc/asound/timers
...
/proc/14634/stack
/proc/14634/cpuset
/proc/14634/cgroup
/proc/14634/oom_score
/proc/14634/oom_adj
/proc/14634/oom_score_adj
/proc/14634/loginuid
/proc/14634/sessionid
/proc/14634/coredump_filter
/proc/14634/io
16:16:56
#find / -mmin -5 2> /dev/null |grep -v 'proc'
/tmp
/var/cache/locate
/var/cache/locate/locatedb
/var/log/auth.log
/var/log/syslog
/dev/xconsole
/dev/pts/1
/dev/pts/0
/dev/ptmx
/home/user/.lilalo/.report.dat
/root/.lilalo
/root/.lilalo/.report.dat
/root/.lilalo/27826459228625774-1443508639.info
/root/.lilalo/27826459228625774-1443508639.script
16:17:55
#ls -l var/cache/locate/
ls: невозможно получить доступ к var/cache/locate/: Нет такого файла или каталога
16:18:00
#ls -l /var/cache/locate/
итого 324
-rw-r--r-- 1 root root 330522 Сен 29 17:14 locatedb
16:18:09
#ls -l /var/cache/locate/locatedb
-rw-r--r-- 1 root root 330522 Сен 29 17:14 /var/cache/locate/locatedb
16:20:04
#apt-get update
Получено:1 http://ftp.ua.debian.org wheezy Release.gpg [2 373 B]
Получено:2 http://ftp.ua.debian.org wheezy-updates Release.gpg [1 554 B]
Получено:3 http://ftp.ua.debian.org wheezy Release [191 kB]
Получено:4 http://security.debian.org wheezy/updates Release.gpg [1 554 B]
Получено:5 http://security.debian.org wheezy/updates Release [102 kB]
Получено:6 http://ftp.ua.debian.org wheezy-updates Release [136 kB]
Получено:7 http://security.debian.org wheezy/updates/main Sources [195 kB]
Получено:8 http://ftp.ua.debian.org wheezy/main Sources [5 982 kB]
Получено:9 http://security.debian.org wheezy/updates/contrib Sources [14 B]
Получено:10 http://security.debian.org wheezy/updates/non-free Sources [14 B]
...
Получено:33 http://ftp.ua.debian.org wheezy-updates/non-free Translation-en [14 B]
100% [23 Translation-en bzip2 0 B]
Получено 17,2 MБ за 49с (347 kБ/c)
Чтение списков пакетов… Готово
W: Недоступен открытый ключ для следующих ID ключей:
7638D0442B90D010
W: Недоступен открытый ключ для следующих ID ключей:
9D6D8F6BC857C906
W: Недоступен открытый ключ для следующих ID ключей:
7638D0442B90D010
16:21:16
#apt-get install file
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libmagic1
НОВЫЕ пакеты, которые будут установлены:
  file libmagic1
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 66 пакетов не обновлено.
Необходимо скачать 258 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 2 616 kB.
...
Получено:2 http://ftp.ua.debian.org/debian/ wheezy/main file amd64 5.11-2+deb7u8 [53,4 kB]
Получено 258 kБ за 0с (827 kБ/c)
Выбор ранее не выбранного пакета libmagic1:amd64.
(Чтение базы данных … на данный момент установлено 30053 файла и каталога.)
Распаковывается пакет libmagic1:amd64 (из файла …/libmagic1_5.11-2+deb7u8_amd64.deb) …
Выбор ранее не выбранного пакета file.
Распаковывается пакет file (из файла …/file_5.11-2+deb7u8_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет libmagic1:amd64 (5.11-2+deb7u8) …
Настраивается пакет file (5.11-2+deb7u8) …
16:23:51
#find / ~user ivan 2> /dev/null | grep -v proc
/
/sys
/sys/fs
/sys/fs/cgroup
/sys/fs/ext4
/sys/fs/ext4/features
/sys/fs/ext4/features/lazy_itable_init
/sys/fs/ext4/features/batched_discard
/sys/fs/ext4/xvda1
/sys/fs/ext4/xvda1/delayed_allocation_blocks
...
/usr/share/vim/vim73/compiler/decada.vim
/usr/share/vim/vim73/compiler/checkstyle.vim
/usr/share/vim/vim73/compiler/fortran_cv.vim
/usr/share/vim/vim73/compiler/icc.vim
/usr/share/vim/vim73/compiler/irix5_c.vim
/usr/share/vim/vim73/compiler/se.vim
/usr/share/vim/vim73/compiler/rubyunit.vim
/usr/share/vim/vim73/compiler/cs.vim
/usr/share/vim/vim73/compiler/rst.vim
/usr/share/vim/vim73/compiler/README.txt^C
16:24:32
#find / ~user ivan 2> /dev/null
/
/sys
/sys/fs
/sys/fs/cgroup
/sys/fs/ext4
/sys/fs/ext4/features
/sys/fs/ext4/features/lazy_itable_init
/sys/fs/ext4/features/batched_discard
/sys/fs/ext4/xvda1
/sys/fs/ext4/xvda1/delayed_allocation_blocks
...
/usr/share/locale/ru/LC_MESSAGES/man-db-gnulib.mo
/usr/share/locale/ru/LC_MESSAGES/lynx.mo
/usr/share/locale/ru/LC_MESSAGES/sed.mo
/usr/share/locale/ru/LC_MESSAGES/findutils.mo
/usr/share/locale/ru/LC_MESSAGES/tar.mo
/usr/share/locale/ru/LC_MESSAGES/apt.mo
/usr/share/locale/ru/LC_MESSAGES/wget.mo
/usr/share/locale/ru/LC_MESSAGES/diffutils.mo
/usr/share/locale/ru/LC_MESSAGES/coreutils.mo
^C
16:25:07
#find / ~user ivan 2> /dev/null | grep -v 'proc'
/
/sys
/sys/fs
/sys/fs/cgroup
/sys/fs/ext4
/sys/fs/ext4/features
/sys/fs/ext4/features/lazy_itable_init
/sys/fs/ext4/features/batched_discard
/sys/fs/ext4/xvda1
/sys/fs/ext4/xvda1/delayed_allocation_blocks
...
/usr/share/man/man3/Software::License::Sun.3pm.gz
/usr/share/man/man3/fputwc_unlocked.3.gz
/usr/share/man/man3/execl.3.gz
/usr/share/man/man3/asinf.3.gz
/usr/share/man/man3/posix_memalign.3.gz
/usr/share/man/man3/ecb_crypt.3.gz
/usr/share/man/man3/gethostbyaddr.3.gz
/usr/share/man/man3/getservent.3.gz
/usr/share/man/man3/sigisemptyset.3.gz
/usr/share/man/man3/clntraw_create.3.gz^C
16:25:28
#find / -user ivan 2> /dev/null | grep -v 'proc'
/tmp/users
/var/mail/ivan
/dev/pts/4
/home/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.profile
/home/ivan/d2
/home/ivan/d2/d3
/home/ivan/d2/d3/d1
/home/ivan/d2/d3/d1/users
/home/ivan/d2/users
/home/ivan/.bash_logout
16:25:38
#find / -user ivan 2> /dev/null | grep -v proc
/tmp/users
/var/mail/ivan
/dev/pts/4
/home/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.profile
/home/ivan/d2
/home/ivan/d2/d3
/home/ivan/d2/d3/d1
/home/ivan/d2/d3/d1/users
/home/ivan/d2/users
/home/ivan/.bash_logout
16:25:43
#find / -user ivan -type f 2> /dev/null | grep -v proc
/tmp/users
/var/mail/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.profile
/home/ivan/d2/d3/d1/users
/home/ivan/d2/users
/home/ivan/.bash_logout
16:26:00
#find / -user ivan -type f -empry 2> /dev/null | grep -v proc

16:26:10
#find / -user ivan -type f -empry 2> /dev/null | grep -v proc

16:27:51
#find / -user ivan -type f -empry 2> /dev/null | grep -v proc

16:27:54
#find / -user ivan -type f 2> /dev/null | grep -v proc
/tmp/users
/var/mail/ivan
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/.profile
/home/ivan/d2/d3/d1/users
/home/ivan/d2/users
/home/ivan/.bash_logout
16:28:58
#> /home/ivan/test_null

16:30:43
#touch > /home/ivan/test_null
touch: пропущен операнд, задающий файл
Попробуйте «touch --help» для получения более подробного описания.
16:30:48
#touch > home/ivan/test_null
l3script: home/ivan/test_null: Нет такого файла или каталога
16:31:00
#touch > /home/ivan/test_null
touch: пропущен операнд, задающий файл
Попробуйте «touch --help» для получения более подробного описания.
16:31:06
#touch > /home/ivan/test_null1
touch: пропущен операнд, задающий файл
Попробуйте «touch --help» для получения более подробного описания.
16:31:13
#touch
touch: пропущен операнд, задающий файл
Попробуйте «touch --help» для получения более подробного описания.
16:31:20
#touch /?

16:31:23
#touch > /home/ivan/test
touch: пропущен операнд, задающий файл
Попробуйте «touch --help» для получения более подробного описания.
16:31:28
#^C

16:34:24
#find / -type l
/sys/devices/system/cpu/cpu0/subsystem
/sys/devices/system/cpu/cpu0/node0
/sys/devices/system/memory/memory0/node0
/sys/devices/system/memory/memory1/node0
/sys/devices/system/memory/memory2/node0
/sys/devices/system/memory/memory3/node0
/sys/devices/system/node/node0/memory0
/sys/devices/system/node/node0/memory1
/sys/devices/system/node/node0/memory2
/sys/devices/system/node/node0/memory3
...
/proc/15496/fd/0
/proc/15496/fd/1
/proc/15496/fd/2
/proc/15496/fd/3
/proc/15496/fd/4
find: `/proc/15496/fd/5': Нет такого файла или каталога
find: `/proc/15496/fdinfo/5': Нет такого файла или каталога
/proc/15496/cwd
/proc/15496/root
/proc/15496/exe
16:39:56
#find ~ -regex '.*(\.tar\.gz|\.tgz|\.rmp)'

прошло 16 минут
16:55:59
#find ~ -regex '.*(\.tar\.gz|\.tgz|\.rmp)'

16:56:01
#find ~ -regex
find: отсутствует аргумент у `-regex'
16:56:47
#find -regex '.*.tar'

16:56:54
#find -regex '*.tar'

16:56:57
#find ~ -regex '*.tar'

16:57:04
#man find
17:05:49
#exit
exit
Есть приостановленные задачи.

Среда (09/30/15)

/dev/pts/0
08:35:25
#c=10

прошло 53 минуты
09:28:29
#echo $c
10
09:28:36
#bash
root@debian3:~# echo $c
root@debian3:~# exit
exit
09:29:29
#set
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0")
PPID=16894
09:29:51
#set
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0")
PPID=16894
09:30:04
#set | more
09:30:30
#set | grep ^c
c=10
09:30:39
#set
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0" [1]="0")
PPID=16894
09:30:50
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2500
SSH_CLIENT=192.168.16.107 49165 22
L3_PARENT_TTY=/dev/pts/0
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2500
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=1625221855347722-1443594924
PWD=/root
LANG=ru_RU.UTF-8
09:30:56
#export c

09:31:30
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2500
SSH_CLIENT=192.168.16.107 49165 22
L3_PARENT_TTY=/dev/pts/0
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2500
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=1625221855347722-1443594924
PWD=/root
c=10
LANG=ru_RU.UTF-8
09:31:32
#bash
root@debian3:~# echo $c
10
root@debian3:~# exit
exit
09:31:56
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2500
SSH_CLIENT=192.168.16.107 49165 22
L3_PARENT_TTY=/dev/pts/0
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2500
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=1625221855347722-1443594924
PWD=/root
c=10
LANG=ru_RU.UTF-8
09:32:24
#bash
root@debian3:~# PS1='[\u \A]\$ '
[root 10:34]#
[root 10:34]#
[root 10:34]# ext
bash: ext: команда не найдена
[root 10:34]# exir
bash: exir: команда не найдена
[root 10:34]# exit
exit
09:34:55
#echo $?
127
09:36:42
#echo $?
0
09:36:45
#test

09:39:58
#test

09:40:22
#test 4 -eq 4

09:40:37
#echo $?
0
09:40:45
#test 4 -eq 5

Файлы

  • install
  • install
    >
    stname=`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
    

    Статистика

    Время первой команды журнала14:54:20 2015- 9-29
    Время последней команды журнала09:40:45 2015- 9-30
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %26.73
    Процент синтаксически неверно набранных команд, % 0.99
    Суммарное время работы с терминалом *, час 1.81
    Количество командных строк в единицу времени, команда/мин 0.93
    Частота использования команд
    find19|=============| 13.77%
    ls19|=============| 13.77%
    null12|========| 8.70%
    grep11|=======| 7.97%
    cd9|======| 6.52%
    touch7|=====| 5.07%
    locate6|====| 4.35%
    set5|===| 3.62%
    test5|===| 3.62%
    echo4|==| 2.90%
    test_null4|==| 2.90%
    env3|==| 2.17%
    cat3|==| 2.17%
    bash3|==| 2.17%
    \.tgz2|=| 1.45%
    \.rmp)'2|=| 1.45%
    apt-get2|=| 1.45%
    >2|=| 1.45%
    less2|=| 1.45%
    jobs2|=| 1.45%
    more1|| 0.72%
    man1|| 0.72%
    cp1|| 0.72%
    test_null11|| 0.72%
    c=101|| 0.72%
    dir1|| 0.72%
    do1|| 0.72%
    loc1|| 0.72%
    ogo2.jpg1|| 0.72%
    for1|| 0.72%
    export1|| 0.72%
    vi1|| 0.72%
    ^C1|| 0.72%
    exit1|| 0.72%
    tr1|| 0.72%
    pstree1|| 0.72%
    ____
    *) Интервалы неактивности длительностью 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$