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

Содержание

Журнал

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

/dev/pts/2
09:09:42
#vi /etc/skel/.bashrc
--- /tmp/l3-saved-27624.3677.7827	2018-07-17 10:10:41.312483367 +0300
+++ /etc/skel/.bashrc	2018-07-17 10:11:00.324499534 +0300
@@ -16,8 +16,8 @@
 shopt -s histappend
 
 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
-HISTSIZE=1000
-HISTFILESIZE=2000
+# HISTSIZE=1000
+# HISTFILESIZE=2000
 
 # check the window size after each command and, if necessary,
 # update the values of LINES and COLUMNS.
09:11:00
#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
...
  141  vi /etc/profile
  142  exit
  143  l3script
  144  exit
  145  echo $HISTSIZE
  146  echo $HISTFILESIZE
  147  cp ~ivan/.bashrc ~petr
  148  ls -a /etc/skel/
  149  vi /etc/skel/.bashrc
  150  history
09:12:31
#!150
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
...
  142  exit
  143  l3script
  144  exit
  145  echo $HISTSIZE
  146  echo $HISTFILESIZE
  147  cp ~ivan/.bashrc ~petr
  148  ls -a /etc/skel/
  149  vi /etc/skel/.bashrc
  150  history
  151  history
09:14:28
#!his
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
...
  143  l3script
  144  exit
  145  echo $HISTSIZE
  146  echo $HISTFILESIZE
  147  cp ~ivan/.bashrc ~petr
  148  ls -a /etc/skel/
  149  vi /etc/skel/.bashrc
  150  history
  151  history
  152  history
09:15:28
#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
09:25:19
#echo "Hell $LOGNAME"
Hell root
прошло 23 минуты
09:48:19
#echo "Hello $LOGNAME"
Hello root
09:48:23
#echo 'Hello $LOGNAME'
Hello $LOGNAME
09:49:24
#cd /b
bin/  boot/
09:49:24
#cd /bin/

09:51:26
#ls
bash     cp    dmesg          fgconsole  gzip      less      login   more        nc              pidof     rm         setupcon    sync      uname          zcmp    zmore
busybox  cpio  dnsdomainname  fgrep      hostname  lessecho  ls      mount       nc.traditional  ping      rmdir      sh          tailf     uncompress     zdiff   znew
cat      dash  domainname     findmnt    ip        lessfile  lsblk   mountpoint  netcat          ping6     rnano      sh.distrib  tar       unicode_start  zegrep  zsh
chgrp    date  dumpkeys       fuser      kbd_mode  lesskey   lsmod   mt          netstat         ps        run-parts  sleep       tempfile  vdir           zfgrep  zsh4
chmod    dd    echo           grep       kill      lesspipe  mkdir   mt-gnu      nisdomainname   pwd       rzsh       ss          touch     which          zforce
chown    df    egrep          gunzip     kmod      ln        mknod   mv          open            rbash     sed        stty        true      ypdomainname   zgrep
chvt     dir   false          gzexe      ksh       loadkeys  mktemp  nano        openvt          readlink  setfont    su          umount    zcat           zless
09:51:28
#ls k*
kbd_mode  kill  kmod  ksh
09:51:51
#ls g[zu]*
gunzip  gzexe  gzip
09:53:34
#cd

09:54:20
#touch 123 345234 345234 546452 234234a 2344234ff 345345 h75675

09:54:52
#ls
123  234234a  2344234ff  345234  345345  546452  h75675  install  test
09:54:56
#set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
...
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
09:56:31
#shopt
autocd          off
cdable_vars     off
cdspell         off
checkhash       off
checkjobs       off
checkwinsize    on
cmdhist         on
compat31        off
compat32        off
compat40        off
...
no_empty_cmd_completion off
nocaseglob      off
nocasematch     off
nullglob        off
progcomp        on
promptvars      on
restricted_shell        off
shift_verbose   off
sourcepath      on
xpg_echo        off
09:57:21
#ls+([[:digit:]])
l3script: syntax error near unexpected token `[[:digit:]]'
09:59:01
#shopt -e extglob
l3script: shopt: -e: неправильная опция
shopt: usage: shopt [-pqsu] [-o] [optname ...]
09:59:58
#shopt -s extglob

10:00:04
#ls+([[:digit:]])
l3script: ls+([[:digit:]]): команда не найдена
10:00:06
#ls +([[:digit:]])
123  345234  345345  546452
10:00:13
#ls +([[:alpha:]])
install  test
10:01:18
#ls -([[:alpha:]])
l3script: syntax error near unexpected token `('
10:01:27
#ls +([[:alpha:]])
install  test
10:01:31
#rm +([[:digit:]])

10:04:48
#ls
234234a  2344234ff  h75675  install  test
10:04:50
#find . -mmin 10

10:05:42
#find . -mmin -10
.
./.lilalo/.report.dat
./.lilalo/1180913052242565490-1531810236.info
./.lilalo/1180913052242565490-1531810236.script
./.lilalo/report.xml
10:05:53
#find . -mmin -15
.
./h75675
./.lilalo/.report.dat
./.lilalo/1180913052242565490-1531810236.info
./.lilalo/1180913052242565490-1531810236.script
./.lilalo/report.xml
./2344234ff
./234234a
10:06:26
#find . -mmin -15 -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -mmin, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.
.
./h75675
./2344234ff
./234234a
10:06:53
#find . -maxdepth 1 -mmin -15
.
./h75675
./2344234ff
./234234a
10:07:28
#find . -maxdepth 1 -mmin -15 -type f
./h75675
./2344234ff
./234234a
10:08:06
#find . -maxdepth 1 -mmin -25 -type f | ls
234234a  2344234ff  h75675  install  test
10:09:49
#find . -maxdepth 1 -mmin -20 -type f | ls
234234a  2344234ff  h75675  install  test
10:09:58
#find . -maxdepth 1 -mmin -20 -type f | ls $?
ls: невозможно получить доступ к 0: Нет такого файла или каталога
10:10:15
#find . -maxdepth 1 -mmin -20 -type f | ls $1
234234a  2344234ff  h75675  install  test
10:10:18
#find . -maxdepth 1 -mmin -20 -type f | xargs ls
./234234a  ./2344234ff  ./h75675
10:11:00
#find . -maxdepth 1 -mmin -20 -type f | xargs rm

10:11:15
#ls
install  test
10:11:22
#echo $[2+2]
4
10:14:51
#echo $[2/1]
2
10:14:59
#echo $[2/3]
0
10:15:04
#ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:03 init [2]
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:02 [ksoftirqd/0]
    5 ?        S      0:00 [kworker/u:0]
    6 ?        S      0:00 [migration/0]
    7 ?        S      0:00 [watchdog/0]
    8 ?        S<     0:00 [cpuset]
    9 ?        S<     0:00 [khelper]
   10 ?        S      0:00 [kdevtmpfs]
...
27592 pts/2    S+     0:00 script -f -c l3script -q /root/.lilalo//1180913052242565490-1531810236.script
27623 pts/2    S+     0:00 script -f -c l3script -q /root/.lilalo//1180913052242565490-1531810236.script
27624 pts/6    Ss     0:00 l3script
27774 ?        Ss     0:00 sshd: ivan [priv]
27776 ?        S      0:00 sshd: ivan@pts/4
27777 pts/4    Ss+    0:00 -bash
27880 ?        Ss     0:00 sshd: petr [priv]
27882 ?        S      0:00 sshd: petr@pts/5
27883 pts/5    Ss+    0:00 -bash
28325 pts/6    R+     0:00 ps ax
10:15:46
#ps ax | wc
     69     400    3140
10:16:14
#ps ax | wc -l
69
10:16:22
#top
top - 11:17:02 up 1 day,  2:03,  4 users,  load average: 0,00, 0,01, 0,05
Tasks:  67 total,   1 running,  66 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6,7 us,  0,0 sy,  0,0 ni, 93,3 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:    507368 total,   456620 used,    50748 free,    42160 buffers
KiB Swap:        0 total,        0 used,        0 free,   328512 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 2339 root      20   0 47880  10m 1708 S   6,6  2,1   6:20.20 l3-agent
    2 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S   0,0  0,0   0:02.24 ksoftirqd/0
    5 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kworker/u:0
...
  371 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 kpsmoused
 1878 root      20   0 52772 1640 1208 S   0,0  0,3   0:00.02 rsyslogd
 1922 root      20   0  4116  652  512 S   0,0  0,1   0:00.00 acpid
 1945 root      20   0 22492  904  692 S   0,0  0,2   0:00.16 cron
 2280 root      20   0 18368  964  800 S   0,0  0,2   0:00.07 getty
 2281 root      20   0 18368  948  800 S   0,0  0,2   0:00.00 getty
 2282 root      20   0 18368  960  800 S   0,0  0,2   0:00.00 getty
 2283 root      20   0 18368  956  800 S   0,0  0,2   0:00.00 getty
 2284 root      20   0 18368  960  800 S   0,0  0,2   0:00.00 getty
 2285 root      20   0 18368  956  800 S   0,0  0,2   0:00.00 getty
10:18:23
#echo $[`ps ax | wc -l` -4]
66
10:18:35
#lsattr ~ivan/files
-------------e-- /home/ivan/files
прошло 18 минут
10:36:46
#chattr +a ~ivan/files

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

прошло >2 часов
12:54:33
#cat install | grep '^rm'
rm -rf ${temp_dir}
12:56:25
#vi ip.txt
--- /dev/null	2018-07-16 08:39:02.715999822 +0300
+++ ip.txt	2018-07-17 14:08:35.016373527 +0300
@@ -0,0 +1,10 @@
+10.100.0.0
+192.169.1.1
+235.17.1.2
+55.66.77.88
+-2.-4.5.7
+a1.b2.c3.d4
+$$.%%.^^.&&
+8.8.8.8
+8.8.4.4
+/.\.'."
прошло 12 минут
13:08:35
#ca ip.txt
l3script: ca: команда не найдена
13:09:21
#cat ip.txt
10.100.0.0
192.169.1.1
235.17.1.2
55.66.77.88
-2.-4.5.7
a1.b2.c3.d4
$$.%%.^^.&&
8.8.8.8
8.8.4.4
/.\.'."
13:09:25
#cat ip.txt | egrep '^([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.$'

13:15:46
#cat ip.txt | egrep '^([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.'
10.100.0.0
192.169.1.1
235.17.1.2
55.66.77.88
8.8.8.8
8.8.4.4
13:17:56
#cat ip.txt | egrep '^(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}'
10.100.0.0
192.169.1.1
235.17.1.2
55.66.77.88
8.8.8.8
8.8.4.4
13:22:30
#cat ip.txt | egrep '^(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'
10.100.0.0
192.169.1.1
235.17.1.2
55.66.77.88
8.8.8.8
8.8.4.4
13:22:44
#vi words.txt
13:30:10
#~ at Anastasia and the other grand duchesses: were killed in 1918. Several women havhome
  2 rotor
  3 hallo
  4 :
  5 aaa
  6
~
~
~
~
~
...
~
~
~
~
~
~
~
~
~
"words.txt" [Новый] 6L, 30C записано
13:30:49
#vi words.txt
--- /tmp/l3-saved-27624.16913.6055	2018-07-17 14:30:57.696469350 +0300
+++ words.txt	2018-07-17 14:31:15.812482362 +0300
@@ -3,4 +3,6 @@
 rotor
 hallo
 :
-aaa
+aa
+a
+solos
13:31:15
#cat words.txt | egrep '(.)(.).\2\1'
rotor
solos
13:31:48
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
13:36:16
#cat /etc/passwd | awk -F: '$3>=1000'
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
user:x:1000:1000:user,,,:/home/user:/bin/bash
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
13:40:09
#cd /etc/cron.daily/

прошло 97 минут
15:17:57
#./locate

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

15:19:55
#loc
local             locale            localedef         locale-gen        locate            locate.findutils  lockfile-check    lockfile-create   lockfile-remove   lockfile-touch
15:19:55
#locate installH

15:20:25
#cd ..

15:20:55
#cd

15:21:00
#ls
install  ip.txt  test  words.txt
15:21:02
#loca
local             locale            localedef         locale-gen        locate            locate.findutils
15:21:02
#locate ip.txt
/root/ip.txt
/root/.lilalo/1180913052242565490-1531810236_1531825593_root_ip.txt.diff
/usr/share/vim/vim73/doc/pi_gzip.txt
/usr/share/vim/vim73/doc/pi_zip.txt
15:21:18
#apt-get install sudo
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  sudo
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 3 пакетов не обновлено.
Необходимо скачать 854 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 1 883 kB.
Получено:1 http://security.debian.org/ wheezy/updates/main sudo amd64 1.8.5p2-1+nmu3+deb7u4 [854 kB]
Получено 854 kБ за 0с (1 855 kБ/c)
Выбор ранее не выбранного пакета sudo.
(Чтение базы данных … на данный момент установлено 30059 файлов и каталогов.)
Распаковывается пакет sudo (из файла …/sudo_1.8.5p2-1+nmu3+deb7u4_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет sudo (1.8.5p2-1+nmu3+deb7u4) …

Среда (07/18/18)

/dev/pts/2
08:14:16
#a=1

08:16:51
#echo $a
1
08:16:57
#bash
root@debian1:~# echo $a
root@debian1:~# exit
exit
08:18:18
#export a

08:19:03
#bash
root@debian1:~# echo $a
1
root@debian1:~# exit
exit
08:19:20
#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=31433
08:20:51
#set | more
08:21:58
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.15.162 49166 22
L3_PARENT_TTY=/dev/pts/2
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/2
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=6270310511736928771-1531894456
a=1
PWD=/root
LANG=ru_RU.UTF-8
08:22:53
#b=2

08:23:39
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.15.162 49166 22
L3_PARENT_TTY=/dev/pts/2
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/2
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=6270310511736928771-1531894456
a=1
PWD=/root
LANG=ru_RU.UTF-8
08:23:45
#set | grep ^b=
b=2
08:24:15
#unset a

08:25:30
#unset b

08:25:32
#vi shell.sh
--- /dev/null	2018-07-16 08:39:02.715999822 +0300
+++ shell.sh	2018-07-18 09:44:14.876474420 +0300
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+users=`awk -F: '$3>=1000 && !=65534{print $1}' /etc/passwd | \
+	tr '\n' ' '`
+echo $users
прошло 18 минут
08:44:14
#./shell.sh
l3script: ./shell.sh: Отказано в доступе
08:44:23
#chmod u+x shell.sh

08:45:19
#./shell.sh
awk: line 1: syntax error at or near !=
08:45:21
#vi shell.sh
08:47:04
#~
  1 #!/bin/bash
  2
  3 users=`awk -F: '$3>=1000 && !=65534{print $1}' /etc/passwd | \
  4         tr '\n' ' '`
  5 echo $users
"shell.sh" 5L, 102C
08:47:39
#~
  1 #!/bin/bash
  2
  3 users=`awk -F: '$3>=1000 && !=65534{print $1}' /etc/passwd | \
  4         tr '\n' ' '`
  5 echo $users
"shell.sh" 5L, 102C
08:48:03
#~
  2                             $3!=65534{print $1}' /etc/passwd | \
  3 users=`awk -F: '$3>=1000 && !=65534{print $1}' /etc/passwd | \
~
~
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
~
"shell.sh" 5L, 104C записано
08:48:15
#./shell.sh
user ivan petr
08:48:18
#vi shell.sh
--- /tmp/l3-saved-31434.28272.10021	2018-07-18 09:48:47.720497904 +0300
+++ shell.sh	2018-07-18 09:52:22.432493919 +0300
@@ -3,3 +3,9 @@
 users=`awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | \
 	tr '\n' ' '`
 echo $users
+
+for user in users
+	do	
+		echo "Changing shell for user $user"
+		usermod -s /bin/zsh $user
+	done

Файлы

  • /etc/passwd
  • ip.txt
  • /etc/passwd
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    Debian-exim:x:101:103::/var/spool/exim4:/bin/false
    user:x:1000:1000:user,,,:/home/user:/bin/bash
    sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
    ivan:x:1001:1001::/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/bash
    
    ip.txt
    >
    10.100.0.0
    192.169.1.1
    235.17.1.2
    55.66.77.88
    -2.-4.5.7
    a1.b2.c3.d4
    $$.%%.^^.&&
    8.8.8.8
    8.8.4.4
    /.\.'."
    

    Статистика

    Время первой команды журнала09:09:42 2018- 7-17
    Время последней команды журнала08:48:18 2018- 7-18
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %10.89
    Процент синтаксически неверно набранных команд, % 1.98
    Суммарное время работы с терминалом *, час 2.84
    Количество командных строк в единицу времени, команда/мин 0.59
    Частота использования команд
    ls15|===========| 11.28%
    find12|=========| 9.02%
    echo9|======| 6.77%
    cat9|======| 6.77%
    vi8|======| 6.02%
    cd6|====| 4.51%
    egrep5|===| 3.76%
    set4|===| 3.01%
    1[0-9]{2}4|===| 3.01%
    ~4|===| 3.01%
    locate4|===| 3.01%
    2[0-4][0-9]4|===| 3.01%
    wc3|==| 2.26%
    ps3|==| 2.26%
    shell.sh3|==| 2.26%
    shopt3|==| 2.26%
    env2|=| 1.50%
    ls+([[:digit:]])2|=| 1.50%
    unset2|=| 1.50%
    xargs2|=| 1.50%
    bash2|=| 1.50%
    grep2|=| 1.50%
    chattr2|=| 1.50%
    more1|| 0.75%
    awk1|| 0.75%
    chmod1|| 0.75%
    lsattr1|| 0.75%
    ca1|| 0.75%
    !1501|| 0.75%
    rm1|| 0.75%
    loca1|| 0.75%
    =1000'1|| 0.75%
    25[0-5])\.){3}'1|| 0.75%
    apt-get1|| 0.75%
    a=11|| 0.75%
    touch1|| 0.75%
    loc1|| 0.75%
    top1|| 0.75%
    b=21|| 0.75%
    25[0-5])\.){3}([0-9]{1,2}1|| 0.75%
    25[0-5])$'1|| 0.75%
    history1|| 0.75%
    25[0-5])\.$'1|| 0.75%
    !his1|| 0.75%
    export1|| 0.75%
    25[0-5])\.'1|| 0.75%
    ____
    *) Интервалы неактивности длительностью 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$