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

Содержание

Журнал

Среда (07/09/08)

/dev/ttyp5
16:39:35
#ls
.ICEauthority           .k5login                .ssh
.Xauthority             .l3rc                   .twmdWiGYA
.bash_history           .lesshst                .viminfo
.bash_profile           .lilalo                 .vimrc
.bashrc                 .login                  .vnc
.config                 .profile                .xsession-errors
.cshrc                  .prxnEMfXw              install
.history                .recently-used.xbel     mbox
16:39:38
#cd /tmp

16:40:35
#vim while
--- /tmp/l3-saved-98185.29197.23680	2008-07-09 16:40:45.000000000 +0300
+++ while	2008-07-09 16:45:32.000000000 +0300
@@ -1,21 +1,15 @@
 #!/usr/local/bin/bash
 set -x
-echo 'Povnyj sljah do programy, jaku potribno vykonaty:'
-read PROG 
-if [ -x "$PROG" ]
-then 
-"$PROG"
-else
-echo -n "Can't run $PROG"
- if [ -e "$PROG" ]
-then
- echo This file is not executable 
-else
- echo No such file
- fi
-fi
-
-
-
-
+func () {
+   if [ -z "$1" ]
+   then
+     echo "NO parameters passed to function."
+   else
+     echo "Param #1 is $1."
+   fi
+   if [ "$2" ]
+   then
+     echo "Parameter #2 is $2."
+   fi
+}
 
16:45:32
#./while

16:45:40
#func
bash: func: command not found
16:45:49
#vim while
--- /tmp/l3-saved-98185.32371.19683	2008-07-09 16:46:02.000000000 +0300
+++ while	2008-07-09 16:47:46.000000000 +0300
@@ -1,5 +1,4 @@
 #!/usr/local/bin/bash
-set -x
 func () {
    if [ -z "$1" ]
    then
16:47:47
#./while

16:47:53
#func
bash: func: command not found
16:47:56
#./fu

16:48:20
#ls func
ls: func: No such file or directory
16:48:22
#./while

16:48:26
#func
bash: func: command not found
16:48:32
#ls -l while
-rwxr-xr-x  1 root  wheel  210 Jul  9 16:47 while
16:48:39
#vim while
--- /tmp/l3-saved-98185.6589.21740	2008-07-09 16:48:43.000000000 +0300
+++ while	2008-07-09 16:48:50.000000000 +0300
@@ -1,4 +1,3 @@
-#!/usr/local/bin/bash
 func () {
    if [ -z "$1" ]
    then
16:48:50
#./while 1 222

16:48:56
#vim while
16:49:15
#~ {

16:49:16
#vim while
16:49:36
#~

16:49:36
#vim /etc/rc.d/sshd
16:49:52
#:q!
  2 {
       if [ -z "$1" ]
  3    then
         echo "NO parameters passed to function."
  4 return
       else
  5      echo "Param #1 is $1."
       fi
  6    if [ -z "$2" ]
       then
...
~
~
~
~
~
~
~
~
~
"while" 16L, 199C written
16:50:29
#./while 3 4

16:50:35
#func 3 4
bash: func: command not found
16:50:41
#vim while
--- /tmp/l3-saved-98185.2023.16885	2008-07-09 16:50:48.000000000 +0300
+++ while	2008-07-09 16:51:10.000000000 +0300
@@ -4,7 +4,7 @@
    if [ -z "$1" ]
    then
      echo "NO parameters passed to function."
-return
+return 0
    else
      echo "Param #1 is $1."
    fi
16:51:10
#./while 3 4

16:51:11
#func()
am1 is $1"; fi1" ] ; then echo "No Param to this function" ; return 0 ; else echo "Par
> if [ "$2" ] ; then echo "Param 2 is $2" ; fi
> }
16:52:59
#func
No Param to this function
16:53:03
#func 1 2
Param1 is 1
Param 2 is 2
16:53:06
#func 122 2
Param1 is 122
Param 2 is 2
16:53:08
#./while 3 4

16:53:08
#./while 3 4

16:53:08
#vim while
--- /tmp/l3-saved-98185.5236.10670	2008-07-09 16:53:32.000000000 +0300
+++ while	2008-07-09 16:54:26.000000000 +0300
@@ -13,4 +13,8 @@
      echo "Parameter #2 is $2."
    fi
 }
-
+echo "First param: "
+read one
+echo "Second param: "
+read two
+func $one $two
16:54:26
#./while 3 4

16:54:26
#./while
First param:
2
Second param:
3
Param #1 is 2.
16:54:34
#vim while
--- /tmp/l3-saved-98185.116.18080	2008-07-09 16:54:41.000000000 +0300
+++ while	2008-07-09 16:54:46.000000000 +0300
@@ -8,7 +8,7 @@
    else
      echo "Param #1 is $1."
    fi
-   if [ -z "$2" ]
+   if [ "$2" ]
    then
      echo "Parameter #2 is $2."
    fi
16:54:46
#./while
First param:
1
Second param:
2
Param #1 is 1.
Parameter #2 is 2.
16:54:48
#./while
First param:
Second param:
NO parameters passed to function.
16:54:51
#echo 5 4 | ./while
First param:
Second param:
Param #1 is 5.
Parameter #2 is 4.
16:55:07
#vim while
--- /tmp/l3-saved-98185.31021.10332	2008-07-09 16:55:21.000000000 +0300
+++ while	2008-07-09 17:01:48.000000000 +0300
@@ -1,20 +1,12 @@
-func() 
+#!/usr/local/bin/bash
 
-{
-   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
-}
-echo "First param: "
-read one
-echo "Second param: "
-read two
-func $one $two
+if [ $# -ne 2 ]
+then
+   echo "Vykorystaty: 'basename $0' old-patern new-pattern"
+ exit 1 
+fi
+#
+number=0 
+#
+#
+for name in  
17:01:49
#vim while
--- /tmp/l3-saved-98185.24213.29068	2008-07-09 17:01:52.000000000 +0300
+++ while	2008-07-09 17:18:26.000000000 +0300
@@ -8,5 +8,26 @@
 #
 number=0 
 #
+for name in *$1*
+do
+  if [ -f $name ] 
+   then
+    fname='basename $name'
+    n='echo $fname | sed -e "s/$1/$2/"'
+    mv $fname $n
+    number=((number+1))
+  fi
+done
 #
-for name in  
+rem='expr $number % 10'
+if [ $rem -eq 1 ]
+then
+     echo "Pereimenovano $number fajla. "
+else
+     if [ $rem -gt 1 -a $rem -lt 5 ]
+     then
+        echo "Pereimenovano $number fajla"
+     else 
+        echo "Pereimenovano $number fajliv"
+     fi
+fi
прошло 16 минут
17:18:26
#./while
Vykorystaty: 'basename ./while' old-patern new-pattern
17:18:32
#vim while
--- /tmp/l3-saved-98185.30338.21660	2008-07-09 17:18:47.000000000 +0300
+++ while	2008-07-09 17:27:07.000000000 +0300
@@ -12,14 +12,14 @@
 do
   if [ -f $name ] 
    then
-    fname='basename $name'
-    n='echo $fname | sed -e "s/$1/$2/"'
+    fname=`basename $name`
+    n=`echo $fname | sed -e "s/$1/$2/"`
     mv $fname $n
     number=((number+1))
   fi
 done
 #
-rem='expr $number % 10'
+rem=`expr $number % 10`
 if [ $rem -eq 1 ]
 then
      echo "Pereimenovano $number fajla. "
17:27:07
#vim while
17:27:53
# 5

17:27:53
#touch test

17:28:04
#./while
while   while1
17:28:04
#./while /tmp/test TEST
./while: line 18: syntax error near unexpected token `('
./while: line 18: `    number=((number+1))'
./while: line 19: syntax error near unexpected token `fi'
./while: line 19: `  fi'
17:28:18
#vim while
--- /tmp/l3-saved-98185.23538.25238	2008-07-09 17:28:27.000000000 +0300
+++ while	2008-07-09 17:28:33.000000000 +0300
@@ -15,7 +15,7 @@
     fname=`basename $name`
     n=`echo $fname | sed -e "s/$1/$2/"`
     mv $fname $n
-    number=((number+1))
+    number=(($number+1))
   fi
 done
 #
17:28:34
#./while /tmp/test TEST
./while: line 18: syntax error near unexpected token `('
./while: line 18: `    number=(($number+1))'
./while: line 19: syntax error near unexpected token `fi'
./while: line 19: `  fi'
17:28:35
#vim while
--- /tmp/l3-saved-98185.15463.25287	2008-07-09 17:28:38.000000000 +0300
+++ while	2008-07-09 17:28:47.000000000 +0300
@@ -15,7 +15,7 @@
     fname=`basename $name`
     n=`echo $fname | sed -e "s/$1/$2/"`
     mv $fname $n
-    number=(($number+1))
+    number=$((number+1))
   fi
 done
 #
17:28:47
#./while /tmp/test TEST
Pereimenovano 0 fajliv
17:28:48
#./while /tmp/test /tmp/TEST
Pereimenovano 0 fajliv
17:28:55
#ls
'echo 09:48:03 | tr '[:lower:]' '[:upper:]''
'echo 123456 | tr '[:lower:]' '[:upper:]''
'echo 2008 | tr '[:lower:]' '[:upper:]''
'echo 8 | tr '[:lower:]' '[:upper:]''
'echo A:\WINDOWS\SYSTEM32 | tr '[:lower:]' '[:upper:]''
'echo Jul | tr '[:lower:]' '[:upper:]''
'echo NEWFILE | tr '[:lower:]' '[:upper:]''
'echo TEST | tr '[:lower:]' '[:upper:]''
'echo Tue Jul  8 09:48:20 UTC 2008 | tr '[:lower:]' '[:upper:]''
'echo Tue | tr '[:lower:]' '[:upper:]''
...
for5
name
no_file
no_file2
screens
select1
test
while
while1
y
17:28:59
#ls test/
one_two         tree_four
17:29:01
#touch testfile

17:29:07
#ls testfile
testfile
17:29:08
#./while /tmp/testfile /tmp/TEST
Pereimenovano 0 fajliv
17:29:14
#vim while
--- /tmp/l3-saved-98185.12169.1543	2008-07-09 17:29:19.000000000 +0300
+++ while	2008-07-09 17:29:23.000000000 +0300
@@ -1,5 +1,5 @@
 #!/usr/local/bin/bash
-
+set -x
 if [ $# -ne 2 ]
 then
    echo "Vykorystaty: 'basename $0' old-patern new-pattern"
17:29:24
#./while /tmp/testfile /tmp/TEST
+ '[' 2 -ne 2 ']'
+ number=0
+ for name in '*$1*'
+ '[' -f '*/tmp/testfile*' ']'
++ expr 0 % 10
+ rem=0
+ '[' 0 -eq 1 ']'
+ '[' 0 -gt 1 -a 0 -lt 5 ']'
+ echo 'Pereimenovano 0 fajliv'
Pereimenovano 0 fajliv
17:29:25
#ls testfile
testfile
17:29:56
#ls T
ls: T: No such file or directory
17:30:00
#ls T*
ls: T*: No such file or directory
17:30:02
#vim while
--- /tmp/l3-saved-98185.18168.26368	2008-07-09 17:30:06.000000000 +0300
+++ while	2008-07-09 17:31:13.000000000 +0300
@@ -8,7 +8,7 @@
 #
 number=0 
 #
-for name in *$1*
+for name in "$1"
 do
   if [ -f $name ] 
    then
17:31:13
#./while /tmp/testfile /tmp/TEST
+ '[' 2 -ne 2 ']'
+ number=0
+ for name in '"$1"'
+ '[' -f /tmp/testfile ']'
++ basename /tmp/testfile
+ fname=testfile
++ echo testfile
++ sed -e s//tmp/testfile//tmp/TEST/
sed: 1: "s//tmp/testfile//tmp/TE ...": bad flag in substitute command: 't'
+ n=
+ mv testfile
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
+ number=1
++ expr 1 % 10
+ rem=1
+ '[' 1 -eq 1 ']'
+ echo 'Pereimenovano 1 fajla. '
Pereimenovano 1 fajla.
17:31:16
#./while testfile TEST
+ '[' 2 -ne 2 ']'
+ number=0
+ for name in '"$1"'
+ '[' -f testfile ']'
++ basename testfile
+ fname=testfile
++ sed -e s/testfile/TEST/
++ echo testfile
+ n=TEST
+ mv testfile TEST
+ number=1
++ expr 1 % 10
+ rem=1
+ '[' 1 -eq 1 ']'
+ echo 'Pereimenovano 1 fajla. '
Pereimenovano 1 fajla.
17:31:55
#ls T*
TEST
17:32:08
#vim while
17:32:23
#mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s2e on /tmp (ufs, local, soft-updates)
/dev/ad0s2f on /usr (ufs, local, soft-updates)
/dev/ad0s2d on /var (ufs, local, soft-updates)
17:33:04
#cat /etc/mtree/B
BIND.chroot.dist   BSD.root.dist      BSD.var.dist
BSD.include.dist   BSD.sendmail.dist  BSD.x11-4.dist
BSD.local.dist     BSD.usr.dist       BSD.x11.dist
17:33:04
#mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s2e on /tmp (ufs, local, soft-updates)
/dev/ad0s2f on /usr (ufs, local, soft-updates)
/dev/ad0s2d on /var (ufs, local, soft-updates)
17:33:25
#mount | cut -f 1
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s2e on /tmp (ufs, local, soft-updates)
/dev/ad0s2f on /usr (ufs, local, soft-updates)
/dev/ad0s2d on /var (ufs, local, soft-updates)
17:33:33
#mount | cut -f 1 -d \
/dev/ad0s1a
devfs
/dev/ad0s2e
/dev/ad0s2f
/dev/ad0s2d
17:33:37
#mount | cut -f 3 -d \
/
/dev
/tmp
/usr
/var
17:34:34
#vim /etc/fstab
17:36:23
#~

17:36:24
#df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    1.9G    106M    1.7G     6%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s2e    496M     12M    444M     3%    /tmp
/dev/ad0s2f    3.4G    2.6G    618M    81%    /usr
/dev/ad0s2d    1.9G     38M    1.7G     2%    /var
17:36:40
#dd if=/dev/zero of=image.img bs=512 count=1024k
/tmp: write failed, filesystem is full
dd: image.img: No space left on device
989761+0 records in
989760+0 records out
506757120 bytes transferred in 93.525980 secs (5418357 bytes/sec)
17:38:56
#ls -l image.img
-rw-r--r--  1 root  wheel  506757120 Jul  9 17:38 image.img
17:39:15
#ls -lh image.img
-rw-r--r--  1 root  wheel   483M Jul  9 17:38 image.img
17:39:20
#mkf
mkfifo       mkfontdir    mkfontscale
17:39:20
#fdisk image.img
fdisk: device image.img is not character special
******* Working on device image.img *******
parameters extracted from in-core disklabel are:
cylinders=0 heads=255 sectors/track=63 (16065 blks/cyl)
parameters to be used for BIOS calculations are:
cylinders=0 heads=255 sectors/track=63 (16065 blks/cyl)
fdisk: invalid fdisk partition table found
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 4294967233 (2097151 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 85/ head 89/ sector 4
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
17:39:43
#u
ucs2any                  unifdefall               uptime
ugidfw                   uniq                     usbd
ul                       units                    usbdevs
ulimit                   unix-lpr.sh              usbhidaction
umask                    unlink                   usbhidctl
umount                   unset                    users
unalias                  unstr                    users-admin
uname                    until                    uudecode
uncompress               unvis                    uuencode
unexpand                 update-desktop-database  uuidgen
unifdef                  update-mime-database     uxterm
17:39:43
#apropos mkfs
mkfs: nothing appropriate
17:40:13
#apropos make file system
msdosfs(5)               - MS-DOS file system
mv(1)                    - move files
named-checkconf(8)       - named configuration file syntax checking tool
named-checkzone(8)       - zone file validity checking tool
named.conf(5)            - configuration file for named
netid(5)                 - YP network credential file
newaliases(1)            - rebuild the data base for the mail aliases file
newfs(8)                 - construct a new UFS1/UFS2 file system
newfs_msdos(8)           - construct a new MS-DOS (FAT) file system
newsyslog(8)             - maintain system log files to manageable sizes
...
openpam_readline(3)      - read a line from a file
pam.conf(5)              - PAM policy file format
passwd(5), master.passwd(5) - format of the password file
paste(1)                 - merge corresponding or subsequent lines of files
patch(1)                 - apply a diff file to an original
pax(1)                   - read and write file archives and copy directory hierarchies
pbm(5)                   - portable bitmap file format
pf.conf(5)               - packet filter configuration file
pf.os(5)                 - format of the operating system fingerprints file
pidfile_open(3), pidfile_write(3), pidfile_close(3), pidfile_remove(3) - library for PID files handling
17:42:11
#q
bash: q: command not found
17:42:14
#fs
fsck          fsck_ffs      fsck_ufs      fsinfo        fslsfonts     fstobdf
fsck_4.2bsd   fsck_msdosfs  fsdb          fsirand       fstat         fsync
17:42:14
#file image.img
image.img: data
17:42:30
#mkf
mkfifo       mkfontdir    mkfontscale
17:42:30
#mkf
mkfifo       mkfontdir    mkfontscale
17:42:30
#make
make        makedepend  makeinfo    makepqg     makewhatis
makecert    makeg       makemap     makestrs
17:42:51
#apropos create new file system
BUS_SETUP_INTR(9), bus_setup_intr(9), BUS_TEARDOWN_INTR(9), bus_teardown_intr(9) - create, attach and teardown an interrupt handler
VGLBitmapAllocateBits(3), VGLBitmapCopy(3), VGLBitmapCreate(3), VGLBitmapDestroy(3), VGLBitmapPutChar(3), VGLBitmapString(3), VGLBlankDisplay(3), VGLBox(3), VGLCheckSwitch(3), VGLClear(3), VGLEllipse(3), VGLEnd(3), VGLFilledBox(3), VGLFilledEllipse(3), VGLGetXY(3), VGLInit(3), VGLLine(3), VGLKeyboardInit(3), VGLKeyboardEnd(3), VGLKeyboardGetCh(3), VGLMouseInit(3), VGLMouseMode(3), VGLMouseSetImage
VOP_CREATE(9), VOP_MKNOD(9), VOP_MKDIR(9), VOP_SYMLINK(9) - create a file, socket, fifo, device, directory or symlink
VOP_CREATEVOBJECT(9), VOP_DESTROYVOBJECT(9), VOP_GETVOBJECT(9) - VM object interaction
VOP_LINK(9)              - create a new name for a file
acl_create_entry(3)      - create a new ACL entry
acl_from_text(3)         - create an ACL from text
afmtodit(1)              - create font files for use with groff -Tps
ar(1)                    - create, modify, and extract from archives
au_close(3), au_close_buffer(3), au_close_token(3), au_open(3), au_write(3) - create and commit audit records
au_free_token(3)         - deallocate a token_t created by any of the au_to_*() BSM API functions
auth_destroy(3), authnone_create(3), authsys_create(3), authsys_create_default(3) - library routines for client side remote procedure call authentication
badsect(8)               - create files to contain bad sectors
17:43:52
#newfs --help
newfs: illegal option -- -
usage: newfs [ -fsoptions ] special-device [device-type]
where fsoptions are:
        -L volume label to add to superblock
        -N do not create file system, just print out parameters
        -O file system format: 1 => UFS1, 2 => UFS2
        -R regression test, supress random factors
        -S sector size
        -T disktype
        -U enable soft updates
...
        -e maximum blocks per file in a cylinder group
        -f frag size
        -g average file size
        -h average files per directory
        -i number of bytes per inode
        -l enable multilabel MAC
        -n do not create .snap directory
        -m minimum free space %
        -o optimization preference (`space' or `time')
        -s file systemsize (sectors)
17:43:57
#newfs -L test -O 2 -U image.img
newfs: /dev/image.img: could not find special device
17:44:29
#mdconfig -a -t vnode -f /tmp/image.img
md0
17:45:10
#newfs -L test -O 2 -U /dev/md0
/dev/md0: 483.3MB (989760 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 120.83MB, 7733 blks, 15488 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 247616, 495072, 742528
17:45:22
#mount /dev/md0 /mnt

17:45:30
#df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    1.9G    106M    1.7G     6%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s2e    496M    496M    -40M   109%    /tmp
/dev/ad0s2f    3.4G    2.6G    618M    81%    /usr
/dev/ad0s2d    1.9G     38M    1.7G     2%    /var
/dev/md0       468M    4.0K    431M     0%    /mnt
17:46:00
#umount /mnt

17:46:05
#mdconfig -a
usage: mdconfig -a -t type [-n] [-o [no]option] ... [-f file]
                [-s size] [-S sectorsize] [-u unit]
                [-x sectors/track] [-y heads/cyl]
       mdconfig -d -u unit
       mdconfig -l [-n] [-u unit]
                type = {malloc, preload, vnode, swap}
                option = {cluster, compress, reserve}
                size = %d (512 byte blocks), %db (B),
                       %dk (kB), %dm (MB), %dg (GB) or
                       %dt (TB)
17:46:10
#mdconfig -v
mdconfig: illegal option -- v
usage: mdconfig -a -t type [-n] [-o [no]option] ... [-f file]
                [-s size] [-S sectorsize] [-u unit]
                [-x sectors/track] [-y heads/cyl]
       mdconfig -d -u unit
       mdconfig -l [-n] [-u unit]
                type = {malloc, preload, vnode, swap}
                option = {cluster, compress, reserve}
                size = %d (512 byte blocks), %db (B),
                       %dk (kB), %dm (MB), %dg (GB) or
                       %dt (TB)
17:46:13
#mdconfig
usage: mdconfig -a -t type [-n] [-o [no]option] ... [-f file]
                [-s size] [-S sectorsize] [-u unit]
                [-x sectors/track] [-y heads/cyl]
       mdconfig -d -u unit
       mdconfig -l [-n] [-u unit]
                type = {malloc, preload, vnode, swap}
                option = {cluster, compress, reserve}
                size = %d (512 byte blocks), %db (B),
                       %dk (kB), %dm (MB), %dg (GB) or
                       %dt (TB)

Файлы

  • /etc/mtree/B
  • /etc/mtree/B
    >
    BIND.chroot.dist   BSD.root.dist      BSD.var.dist
    BSD.include.dist   BSD.sendmail.dist  BSD.x11-4.dist
    BSD.local.dist     BSD.usr.dist       BSD.x11.dist
    

    Статистика

    Время первой команды журнала16:39:35 2008- 7- 9
    Время последней команды журнала17:46:13 2008- 7- 9
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %12.87
    Процент синтаксически неверно набранных команд, % 5.94
    Суммарное время работы с терминалом *, час 1.11
    Количество командных строк в единицу времени, команда/мин 1.52
    Частота использования команд
    while23|=====================| 21.90%
    vim19|==================| 18.10%
    ls12|===========| 11.43%
    func7|======| 6.67%
    mount6|=====| 5.71%
    mdconfig4|===| 3.81%
    newfs3|==| 2.86%
    apropos3|==| 2.86%
    cut3|==| 2.86%
    ~3|==| 2.86%
    mkf3|==| 2.86%
    touch2|=| 1.90%
    df2|=| 1.90%
    51|| 0.95%
    q1|| 0.95%
    umount1|| 0.95%
    fdisk1|| 0.95%
    dd1|| 0.95%
    :q!1|| 0.95%
    func()1|| 0.95%
    cd1|| 0.95%
    make1|| 0.95%
    fs1|| 0.95%
    echo1|| 0.95%
    cat1|| 0.95%
    u1|| 0.95%
    file1|| 0.95%
    fu1|| 0.95%
    ____
    *) Интервалы неактивности длительностью 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$