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

Содержание

Журнал

Среда (03/29/17)

/dev/pts/6
11:18:18
$ls
bigfile      granata.jpg                            lpi 2         names         press_any_key_to_continue.jpg  soft   touchlist
bin          Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  man_smb_conf  ogo.jpg       proj                           text   Вопрос
freebsd.jpg  lpi 1                                  matrix.jpg    pamyatka.pdf  sh                             text1
11:18:26
$find ~ -regextype '.*(\.tar\.gz|\.tgz|\.rmp)'
find: Unknown regular expression type `.*(\\.tar\\.gz|\\.tgz|\\.rmp)'; valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'.
11:20:31
$find ~ -regextype '.*(\.tar|\.gz|\.tgz|\.rmp)'
find: Unknown regular expression type `.*(\\.tar|\\.gz|\\.tgz|\\.rmp)'; valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'.
11:20:57
$find ~ -regextype posix-eqrep '.*(\.tar|\.gz|\.tgz|\.rmp)'
find: Unknown regular expression type `posix-eqrep'; valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'.
11:21:21
$find ~ -regextype posix-egrep '.*(\.tar|\.gz|\.tgz|\.rmp)'
find: paths must precede expression: .*(\.tar|\.gz|\.tgz|\.rmp)
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:21:33
$find -regextype posix-egrep ~'.*(\.tar|\.gz|\.tgz|\.rmp)'
find: paths must precede expression: ~.*(\.tar|\.gz|\.tgz|\.rmp)
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:22:14
$find ~ -regextype posix-egrep '.*(\.tar|\.gz|\.tgz|\.rmp)'
find: paths must precede expression: .*(\.tar|\.gz|\.tgz|\.rmp)
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:23:26
$touch test.tgz

11:24:18
$find ~ -regextype posix-egrep '.*(\.tar|\.gz|\.tgz|\.rmp)'
find: paths must precede expression: .*(\.tar|\.gz|\.tgz|\.rmp)
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:24:20
$find -regextype posix-egrep /home/user/ '.*(\.tar|\.gz|\.tgz|\.rmp)'
find: paths must precede expression: /home/user/
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:27:16
$touch test.gz

11:27:21
$touch test.tgz

11:27:28
$touch test.rmp

11:27:35
$find -regextype posix-egrep `.*(\.tar|\.gz|\.tgz|\.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
.
./lpi 1
./proj
find: `./proj': Отказано в доступе
./text
./test.tgz
./test.gz
./matrix.jpg
...
./.bash_logout
./text1
./.text.txt.swo
./sh
./.vim
./.vim/.netrwhist
./.bash_profile
./touchlist
./soft
./test.tar
11:28:07
$find ~ -regextype posix-egrep `.*(\.tar|\.gz|\.tgz|\.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:28:27
$find -E ~ -regextype posix-egrep `.*(\.tar|\.gz|\.tgz|\.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
find: unknown predicate `-E'
11:31:27
$find -e ~ -regextype posix-egrep `.*(\.tar|\.gz|\.tgz|\.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
find: unknown predicate `-e'
11:31:33
$find ~ -regextype posix-egrep `.*(\.tar|\.gz|\.tgz|\.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:31:46
$find ~ -regextype posix-egrep `.*(\.tar | \.gz | \.tgz | \.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:33:30
$find ~ -regextype posix-egrep `.*`
l3script: .: ..: является директорией
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
/home/user/freebsd.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:34:15
$find ~ -regextype posix-egrep `.*`
l3script: .: ..: является директорией
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
/home/user/freebsd.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:34:17
$find ~ -regextype posix-egrep `.*(\.tar | \.gz | \.tgz | \.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:34:23
$find ~ -regextype posix-egrep `.* (\.tar | \.gz | \.tgz | \.rmp)`
l3script: command substitution: line 1: syntax error near unexpected token `\.tar'
l3script: command substitution: line 1: `.* (\.tar | \.gz | \.tgz | \.rmp)'
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:34:36
$find ~ -regextype posix-egrep ".*`(\.tar | \.gz | \.tgz | \.rmp)`"
l3script: .tgz: команда не найдена
l3script: .rmp: команда не найдена
l3script: .gz: команда не найдена
l3script: .tar: команда не найдена
find: paths must precede expression: .*
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:35:57
$ls
bigfile      Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  matrix.jpg    press_any_key_to_continue.jpg  test.gz   text
bin          lpi 1                                  names         proj                           test.rmp  text1
freebsd.jpg  lpi 2                                  ogo.jpg       sh                             test.tar  touchlist
granata.jpg  man_smb_conf                           pamyatka.pdf  soft                           test.tgz  Вопрос
11:36:17
$find ~ -regextype posix-egrep "`.*(\.tar | \.gz | \.tgz | \.rmp)`"
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
find: paths must precede expression:
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
11:36:55
$find ~ -regextype posix-egrep `.*(\.tar | \.gz | \.tgz | \.rmp)`
l3script: .: требуется аргумент имя файла
.: usage: . filename [arguments]
/home/user
/home/user/lpi 1
/home/user/proj
find: `/home/user/proj': Отказано в доступе
/home/user/text
/home/user/test.tgz
/home/user/test.gz
/home/user/matrix.jpg
...
/home/user/.bash_logout
/home/user/text1
/home/user/.text.txt.swo
/home/user/sh
/home/user/.vim
/home/user/.vim/.netrwhist
/home/user/.bash_profile
/home/user/touchlist
/home/user/soft
/home/user/test.tar
11:37:03
$find ~ -name core -ok rm -f {} \;
find: `/home/user/proj': Отказано в доступе
find: `/home/user/names': Отказано в доступе
11:37:56
$pwd
/home/user
11:38:10
$touch core

11:38:45
$ls
bigfile      granata.jpg                            man_smb_conf  pamyatka.pdf                   soft      test.tgz   Вопрос
bin          Light_Alloy_4.4.784_RC2_by_FAFNIR.exe  matrix.jpg    press_any_key_to_continue.jpg  test.gz   text
core         lpi 1                                  names         proj                           test.rmp  text1
freebsd.jpg  lpi 2                                  ogo.jpg       sh                             test.tar  touchlist
11:38:48
$find ~ -name core -ok rm -f {} \;
find: `/home/user/proj': Отказано в доступе
< rm ... /home/user/core > ? y
find: `/home/user/names': Отказано в доступе
11:42:39
$find ~ -regextype posix-egrep -regex '.*\.(tar|gz|tgz|rmp)'
find: `/home/user/proj': Отказано в доступе
/home/user/test.tgz
/home/user/test.gz
/home/user/test.rmp
find: `/home/user/names': Отказано в доступе
/home/user/test.tar
11:42:52
$find ~ -regextype posix-egrep -regex '.*\.(tar|gz|tgz|rmp)' -exec mv {} ~/soft \;
find: `/home/user/proj': Отказано в доступе
find: `/home/user/names': Отказано в доступе
mv: «/home/user/soft/test.tgz» и «/home/user/soft/test.tgz» - один и тот же файл
mv: «/home/user/soft/test.gz» и «/home/user/soft/test.gz» - один и тот же файл
mv: «/home/user/soft/test.rmp» и «/home/user/soft/test.rmp» - один и тот же файл
11:44:33
$tree
.
├── bigfile
├── bin
├── freebsd.jpg
├── granata.jpg
├── Light_Alloy_4.4.784_RC2_by_FAFNIR.exe
├── lpi 1
├── lpi 2
├── man_smb_conf
├── matrix.jpg
...
├── soft
│   ├── test.gz
│   ├── test.rmp
│   ├── test.tar
│   └── test.tgz
├── text
├── text1
├── touchlist
└── Вопрос
8 directories, 16 files
11:44:45
$a=1

прошло 68 минут
12:53:41
$cp no_file_with_this_n /tmp/
cp: не удалось выполнить stat для «no_file_with_this_n»: Нет такого файла или каталога
прошло >2 часов
14:57:05
$echo $?
1
14:57:21
$touch no_file_with_this_n

14:57:48
$test 1 -gt 8

14:58:26
$echo $?
1
14:58:29
$test 1 -lt 8

14:58:35
$echo $?
0
14:58:37
$help test
test: test [expr]
    Evaluate conditional expression.
    Exits with a status of 0 (true) or 1 (false) depending on
    the evaluation of EXPR.  Expressions may be unary or binary.  Unary
    expressions are often used to examine the status of a file.  There
    are string operators and numeric comparison operators as well.
    The behavior of test depends on the number of arguments.  Read the
    bash manual page for the complete specification.
    File operators:
      -a FILE        True if file exists.
...
      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                     -lt, -le, -gt, or -ge.
    Arithmetic binary operators return true if ARG1 is equal, not-equal,
    less-than, less-than-or-equal, greater-than, or greater-than-or-equal
    than ARG2.
    See the bash manual page bash(1) for the handling of parameters (i.e.
    missing parameters).
    Exit Status:
    Returns success if EXPR evaluates to true; fails if EXPR evaluates to
    false or an invalid argument is given.
15:00:38
$test -z "$STRING"

15:02:30
$echo $?
0
15:02:32
$test -z $STRING

15:02:43
$echo $?
0
15:02:45
$test -z '$STRING'

15:03:13
$echo $?
1
15:03:15
$test "$P" != print

15:03:56
$echo $?
0
15:03:59
$test -e /etc/mo
modprobe.d/ modules     motd
15:03:59
$test -e /etc/motd

15:04:35
$echo $?
0
15:04:36
$test -d /usr/local/bin/

15:05:40
$echo $?
1
15:05:41
$ls /etc/shadow
/etc/shadow
15:06:11
$ls /etc/
acpi                    default                 initramfs-tools  magic.mime      profile.d       shadow
adduser.conf            deluser.conf            inittab          mailcap         protocols       shadow-
adjtime                 dhcp                    inputrc          mailcap.order   python          shells
aliases                 discover.conf.d         insserv          mailname        python2.7       skel
alternatives            discover-modprobe.conf  insserv.conf     manpath.config  rc0.d           ssh
apt                     dpkg                    insserv.conf.d   mime.types      rc1.d           ssl
bash.bashrc             email-addresses         iproute2         mke2fs.conf     rc2.d           staff-group-for-usr-local
bash_completion         environment             issue            modprobe.d      rc3.d           sysctl.conf
bash_completion.d       exim4                   issue.net        modules         rc4.d           sysctl.d
bindresvport.blacklist  fstab                   kbd              motd            rc5.d           systemd
...
console-cyrillic        grub.d                  lilalo           nsswitch.conf   rmt             ufw
console-setup           gshadow                 locale.alias     opt             rpc             vim
cron.d                  gshadow-                locale.gen       os-release      rsyslog.conf    w3m
cron.daily              host.conf               localtime        pam.conf        rsyslog.d       wgetrc
cron.hourly             hostname                logcheck         pam.d           screenrc        X11
cron.monthly            hosts                   login.defs       passwd          securetty       xml
crontab                 hosts.allow             logrotate.conf   passwd-         security
cron.weekly             hosts.deny              logrotate.d      perl            selinux
debconf.conf            init                    lynx-cur         ppp             services
debian_version          init.d                  magic            profile         sgml
15:06:21
$ls -l /etc/
итого 664
drwxr-xr-x 3 root root    4096 Окт 13  2014 acpi
-rw-r--r-- 1 root root    2981 Июн 27  2014 adduser.conf
-rw-r--r-- 1 root root      44 Окт 15  2014 adjtime
-rw-r--r-- 1 root root     196 Июн 27  2014 aliases
drwxr-xr-x 2 root root    4096 Окт 13  2014 alternatives
drwxr-xr-x 6 root root    4096 Окт 13  2014 apt
-rw-r--r-- 1 root root    1895 Дек 30  2012 bash.bashrc
-rw-r--r-- 1 root root      45 Июн 17  2012 bash_completion
drwxr-xr-x 2 root root    4096 Июн 27  2014 bash_completion.d
...
-rw-r--r-- 1 root root      12 Июн 27  2014 timezone
-rw-r--r-- 1 root root    1552 Окт 19  2012 trafshow
-rw-r--r-- 1 root root    1260 Май 30  2008 ucf.conf
drwxr-xr-x 4 root root    4096 Июн 27  2014 udev
drwxr-xr-x 3 root root    4096 Июн 27  2014 ufw
drwxr-xr-x 2 root root    4096 Июн 27  2014 vim
drwxr-xr-x 2 root root    4096 Июн 27  2014 w3m
-rw-r--r-- 1 root root    4496 Фев  1  2014 wgetrc
drwxr-xr-x 3 root root    4096 Июн 27  2014 X11
drwxr-xr-x 2 root root    4096 Июн 27  2014 xml
15:06:26
$test -k /tmp/

15:06:59
$echo $?
0
15:07:03
$test -w /etc/passwd

15:07:30
$echo $?
1
15:07:32
$test -help

15:07:51
$test help

15:07:54
$help test
test: test [expr]
    Evaluate conditional expression.
    Exits with a status of 0 (true) or 1 (false) depending on
    the evaluation of EXPR.  Expressions may be unary or binary.  Unary
    expressions are often used to examine the status of a file.  There
    are string operators and numeric comparison operators as well.
    The behavior of test depends on the number of arguments.  Read the
    bash manual page for the complete specification.
    File operators:
      -a FILE        True if file exists.
...
      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                     -lt, -le, -gt, or -ge.
    Arithmetic binary operators return true if ARG1 is equal, not-equal,
    less-than, less-than-or-equal, greater-than, or greater-than-or-equal
    than ARG2.
    See the bash manual page bash(1) for the handling of parameters (i.e.
    missing parameters).
    Exit Status:
    Returns success if EXPR evaluates to true; fails if EXPR evaluates to
    false or an invalid argument is given.
15:07:59
$ls -l /etc/
итого 664
drwxr-xr-x 3 root root    4096 Окт 13  2014 acpi
-rw-r--r-- 1 root root    2981 Июн 27  2014 adduser.conf
-rw-r--r-- 1 root root      44 Окт 15  2014 adjtime
-rw-r--r-- 1 root root     196 Июн 27  2014 aliases
drwxr-xr-x 2 root root    4096 Окт 13  2014 alternatives
drwxr-xr-x 6 root root    4096 Окт 13  2014 apt
-rw-r--r-- 1 root root    1895 Дек 30  2012 bash.bashrc
-rw-r--r-- 1 root root      45 Июн 17  2012 bash_completion
drwxr-xr-x 2 root root    4096 Июн 27  2014 bash_completion.d
...
-rw-r--r-- 1 root root      12 Июн 27  2014 timezone
-rw-r--r-- 1 root root    1552 Окт 19  2012 trafshow
-rw-r--r-- 1 root root    1260 Май 30  2008 ucf.conf
drwxr-xr-x 4 root root    4096 Июн 27  2014 udev
drwxr-xr-x 3 root root    4096 Июн 27  2014 ufw
drwxr-xr-x 2 root root    4096 Июн 27  2014 vim
drwxr-xr-x 2 root root    4096 Июн 27  2014 w3m
-rw-r--r-- 1 root root    4496 Фев  1  2014 wgetrc
drwxr-xr-x 3 root root    4096 Июн 27  2014 X11
drwxr-xr-x 2 root root    4096 Июн 27  2014 xml
15:08:28
$x=5

15:09:43
$y=5

15:09:45
$y=10

15:09:49
$test x -gt y
l3script: test: x: integer expression expected
15:10:03
$test $x -gt $y

15:10:40
$echo $?
1
15:10:46
$test $x -lt $y

15:10:51
$echo $?
0
15:10:52
$echo "Yor favorit color?" ; read FAV_COL ; \
> echo Yor favorit color - $FAV_COL
Yor favorit color?
Yor favorit color -
15:13:14
$echo "Your favorit color?" ; read FAV_COL ; echo Your favorit color - $FAV_COL
Your favorit color?
Your favorit color -
15:13:57
$test $EUID -ne 0 -a -r /etc/shadow && \
> echo 'Attention: File /etc/shadow readable!'
15:16:23
$echo "Your favorit OS?" ; rea FAV_OS ; [ "$FAV_OS" == "BSD" ] && \
> echo 'Good chois!'
Your favorit OS?
l3script: rea: команда не найдена
15:18:37
$echo "Your favorit OS?" ; read FAV_OS ; [ "$FAV_OS" == "BSD" ] && echo 'Good chois!'
Your favorit OS?
15:20:13
$ls -l
итого 2936
-rw-r--r-- 1 root root    7994 Мар 29 10:54 bigfile
drw-r--r-- 2 root root    4096 Мар 29 10:54 bin
-rw-r--r-- 1 root root  232966 Мар 29 10:54 freebsd.jpg
-rw-r--r-- 1 root root   52884 Мар 29 10:54 granata.jpg
-rw-r--r-- 1 root root 1751860 Мар 29 10:54 Light_Alloy_4.4.784_RC2_by_FAFNIR.exe
drw-r--r-- 2 root root    4096 Мар 29 10:54 lpi 1
drw-r--r-- 2 root root    4096 Мар 29 10:54 lpi 2
-rw-r--r-- 1 root root   26648 Мар 29 10:54 man_smb_conf
-rw-r--r-- 1 root root  755680 Мар 29 10:54 matrix.jpg
...
-rw-r--r-- 1 root root   17622 Мар 29 10:54 ogo.jpg
-rw-r--r-- 1 root root   84663 Мар 29 10:54 pamyatka.pdf
-rw-r--r-- 1 root root   23048 Мар 29 10:54 press_any_key_to_continue.jpg
drw-r--r-- 3 root root    4096 Мар 29 10:54 proj
drw-r--r-- 2 root root    4096 Мар 29 10:54 sh
drwxr-xr-x 2 user user    4096 Мар 29 12:44 soft
drw-r--r-- 2 root root    4096 Мар 29 10:54 text
-rw-r--r-- 1 user user      13 Мар 29 11:06 text1
-rw-r--r-- 1 root root      75 Мар 29 10:54 touchlist
-rw-r--r-- 1 user user       0 Мар 29 11:10 Вопрос
15:20:29
$echo "Your favorit OS?" ; read FAV_OS ; [ "$FAV_OS" == "BSD" ] && echo 'Good chois!'
Your favorit OS?
BSD
Good chois!
15:21:16
$help test
test: test [expr]
    Evaluate conditional expression.
    Exits with a status of 0 (true) or 1 (false) depending on
    the evaluation of EXPR.  Expressions may be unary or binary.  Unary
    expressions are often used to examine the status of a file.  There
    are string operators and numeric comparison operators as well.
    The behavior of test depends on the number of arguments.  Read the
    bash manual page for the complete specification.
    File operators:
      -a FILE        True if file exists.
...
      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                     -lt, -le, -gt, or -ge.
    Arithmetic binary operators return true if ARG1 is equal, not-equal,
    less-than, less-than-or-equal, greater-than, or greater-than-or-equal
    than ARG2.
    See the bash manual page bash(1) for the handling of parameters (i.e.
    missing parameters).
    Exit Status:
    Returns success if EXPR evaluates to true; fails if EXPR evaluates to
    false or an invalid argument is given.
15:22:02
$test -w /etc/passwd || \
> echo "You do not have wrights to change file /etc/passwd"
You do not have wrights to change file /etc/passwd
15:23:31
$echo "Your favorit OS?" ; \
> read FAV_OS ; [ "$FAV_OS" == "BSD" ] || echo "Strange"
Your favorit OS?
BSD
15:26:13
$A=0

15:26:39
$while [ $A -lt 10 ]
> do
> A=$((A+1))
> echo $A
> done
1
2
3
4
5
6
7
8
9
10
15:27:45
$for file in /etc/*
> do
> [ -r $file ] || echo $file
> done
/etc/group-
/etc/gshadow
/etc/gshadow-
/etc/passwd-
/etc/shadow
/etc/shadow-
15:29:25
$ls -l /etc/
итого 664
drwxr-xr-x 3 root root    4096 Окт 13  2014 acpi
-rw-r--r-- 1 root root    2981 Июн 27  2014 adduser.conf
-rw-r--r-- 1 root root      44 Окт 15  2014 adjtime
-rw-r--r-- 1 root root     196 Июн 27  2014 aliases
drwxr-xr-x 2 root root    4096 Окт 13  2014 alternatives
drwxr-xr-x 6 root root    4096 Окт 13  2014 apt
-rw-r--r-- 1 root root    1895 Дек 30  2012 bash.bashrc
-rw-r--r-- 1 root root      45 Июн 17  2012 bash_completion
drwxr-xr-x 2 root root    4096 Июн 27  2014 bash_completion.d
...
-rw-r--r-- 1 root root      12 Июн 27  2014 timezone
-rw-r--r-- 1 root root    1552 Окт 19  2012 trafshow
-rw-r--r-- 1 root root    1260 Май 30  2008 ucf.conf
drwxr-xr-x 4 root root    4096 Июн 27  2014 udev
drwxr-xr-x 3 root root    4096 Июн 27  2014 ufw
drwxr-xr-x 2 root root    4096 Июн 27  2014 vim
drwxr-xr-x 2 root root    4096 Июн 27  2014 w3m
-rw-r--r-- 1 root root    4496 Фев  1  2014 wgetrc
drwxr-xr-x 3 root root    4096 Июн 27  2014 X11
drwxr-xr-x 2 root root    4096 Июн 27  2014 xml
15:29:37
$echo 'About which command you want to get info?' ; \
> select command in man touch mount make exit clear
> do
> whatis $command
> break
> done
About which command you want to get info?
1) man
2) touch
3) mount
4) make
5) exit
6) clear
#? 1
man (1)              - доступ к справочным страницам
man (7)              - macros to format man pages
15:33:54
$echo "What command >>
> ^C
15:35:37
$"What command >>
                                     does give you help information?"
What command does give you help information?
15:36:23
$read answer

15:36:51
$case $answer in
> "man" | "info" )
> ^C
15:38:13
$echo 'Full PATH to program which you want to use: '
Full PATH to program which you want to use:
15:39:57
$echo 'Full PATH to program which you want to use: ' \
> read PROGRAM \;
Full PATH to program which you want to use:  read PROGRAM ;
15:40:23
$echo 'Full PATH to program which you want to use: ' \
> read PROGRAM \
> if [ -x "$PROGRAM" ]
Full PATH to program which you want to use:  read PROGRAM if [ -x  ]
15:42:19
$echo 'Full PATH to program which you want to use: ' read PROGRAM if [ -x "$PROGRAM" ]
Full PATH to program which you want to use:  read PROGRAM if [ -x  ]
15:42:54
$func () {
> if [ -z "$1" ]
> then
> echo "No parameters passed to function."
> return 0
> else
> echo "Param #1 is $1."
> fi
> if [ "$2" ]
> then
> echo "Parameter #2 is $2."
> fi
> }
15:48:00
$func
No parameters passed to function.

Статистика

Время первой команды журнала11:18:18 2017- 3-29
Время последней команды журнала15:48:00 2017- 3-29
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %32.67
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 1.29
Количество командных строк в единицу времени, команда/мин 1.31
Частота использования команд
echo25|=============| 13.66%
find25|=============| 13.66%
\.tgz19|==========| 10.38%
\.gz18|=========| 9.84%
test18|=========| 9.84%
ls9|====| 4.92%
\.rmp)`9|====| 4.92%
\.rmp)'8|====| 4.37%
\6|===| 3.28%
touch6|===| 3.28%
read5|==| 2.73%
&4|==| 2.19%
[3|=| 1.64%
help3|=| 1.64%
func2|=| 1.09%
rmp)'2|=| 1.09%
tgz2|=| 1.09%
>2|=| 1.09%
gz2|=| 1.09%
\.rmp)`"2|=| 1.09%
x=51|| 0.55%
while1|| 0.55%
y=51|| 0.55%
rea1|| 0.55%
cp1|| 0.55%
A=01|| 0.55%
"What1|| 0.55%
case1|| 0.55%
a=11|| 0.55%
pwd1|| 0.55%
for1|| 0.55%
y=101|| 0.55%
tree1|| 0.55%
____
*) Интервалы неактивности длительностью 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$