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

Содержание

Журнал

Среда (11/15/06)

/dev/pts/2
16:44:11
$[user@linux1:~]$ echo dasdadsadsad\
> asdasdasd
dasdadsadsadasdasdasd
16:45:24
$for name in ./*
> echo $name
bash: syntax error near unexpected token `echo'
16:55:03
$for name in ./* do echo $name
> done
bash: syntax error near unexpected token `done'
16:55:33
$for name in ./* do echo $name
> ;
bash: syntax error near unexpected token `;'
16:56:15
$for name in ./*; do echo $name; done
./b
./backup
./base
./bin
./body
./c
./Desktop
./errlog
./filename
./files
./names
./null
./sh
./source
./Templates
./test
./text
./touchlist
16:56:32
$for name in */*; do echo $name; done
backup/x-backup
bin/big_mem
bin/big_work
bin/signal_trap
c/big_mem.c
c/big_work.c
c/signal_trap.c
Desktop/Trash
files/a
files/b
...
sh/rn
test/dir
test/suidprogram
test/symlink
text/kernel_news
text/opensource_news
text/rus_news
text/text_to_grep
text/vi1
text/vi2
16:57:34
$for name in *; do echo $name; done
b
backup
base
bin
body
c
Desktop
errlog
filename
files
names
null
sh
source
Templates
test
text
touchlist
16:58:25
$cat sh/rn
if [ $# -ne 2 ]
then
  echo "éÓÐÏÌØÚÏ×ÁÎÉÅ: `basename $0` old-pattern new-pattern"
  # ëÏÍÁÎÄÁ "rn .cpp .C" ÐÅÒÅÉÍÅÎÏ×Ù×ÁÅÔ ×ÓÅ ÆÁÊÌÙ ÓÏÄÅÒÖÁÝÉÅ × ÎÁÚ×ÁÎÉÉ .cpp
  #     × ÒÁÂÏÞÅÍ ËÁÔÁÌÏÇÅ ÎÁ .C
  exit 1
fi
number=0    # úÁÐÏÍÎÉÔØ, ÓËÏÌØËÏ ÆÁÊÌÏ× ÂÙÌÏ ÐÅÒÅÉÍÅÎÏ×ÁÎÏ
for name in *$1*  #ÒÁÓÓÍÁÔÒÉ×ÁÅÍ ÆÁÊÌÙ × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ
do
...
then
        echo "ðÅÒÅÉÍÅÎÏ×ÁÎ $number ÆÁÊÌ."
else
        if [ $rem -gt 1 -a $rem -lt 5 ]
        then
                echo "ðÅÒÅÉÍÅÎÏ×ÁÎÏ $number ÆÁÊÌÁ"
        else
                echo "ðÅÒÅÉÍÅÎÏ×ÁÎÏ $number ÆÁÊÌÏ×"
        fi
fi
16:59:33
$ls -l /sh
ls: /sh: No such file or directory
17:01:06
$ls -l sh
итого 12
-rw-r--r--  1 user 1000    0 Дек  6  2003 b.C
-rw-r--r--  1 user 1000    0 Дек  6  2003 c.C
-rwxr-xr-x  1 user 1000 1372 Дек  6  2003 cpr.sh
-rw-r--r--  1 user 1000    0 Дек  6  2003 d.C
-rw-r--r--  1 user 1000    0 Дек  6  2003 e.C
-rwxr-xr-x  1 user 1000  462 Дек  6  2003 par.sh
-rwxr-xr-x  1 user 1000  885 Дек  6  2003 rn
17:01:09
$sh/rn
éÓÐÏÌØÚÏ×ÁÎÉÅ: rn old-pattern new-pattern
17:01:25
$echo [abc]
b c
17:02:45
$echo "[abc]"
[abc]
17:03:14
$echo [abc]
b c
17:03:19
$echo $a

17:03:36
$echo [qwerty].sd
[qwerty].sd
17:04:30
$[user@linux1:~]$ touch a.jpeg b.jpeg c.jpeg

17:05:05
$sh/rn .jpeg .jpg
ðÅÒÅÉÍÅÎÏ×ÁÎÏ 3 ÆÁÊÌÁ
17:05:33
$vi sh/rn
17:07:28
$iconv -l
The following list contain all the coded character sets known.  This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters.  One coded character set can be
listed with several different names (aliases).
  437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865,
  866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4,
  8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993, 10646-1:1993/UCS4,
  ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110,
  ARABIC, ARABIC7, ARMSCII-8, ASCII, ASMO-708, ASMO_449, BALTIC, BIG-5,
  BIG-FIVE, BIG5-HKSCS, BIG5, BIG5HKSCS, BIGFIVE, BS_4730, CA, CN-BIG5, CN-GB,
...
  SHIFT_JIS, SHIFT_JISX0213, SJIS-OPEN, SJIS-WIN, SJIS, SS636127,
  STRK1048-2002, ST_SEV_358-88, T.61-8BIT, T.61, T.618BIT, TCVN-5712, TCVN,
  TCVN5712-1, TCVN5712-1:1993, TIS-620, TIS620-0, TIS620.2529-1, TIS620.2533-0,
  TIS620, TS-5881, TSCII, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE,
  UCS2, UCS4, UHC, UJIS, UK, UNICODE, UNICODEBIG, UNICODELITTLE, US-ASCII, US,
  UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7,
  UTF8, UTF16, UTF16BE, UTF16LE, UTF32, UTF32BE, UTF32LE, VISCII, WCHAR_T,
  WIN-SAMI-2, WINBALTRIM, WINDOWS-31J, WINDOWS-936, WINDOWS-1250, WINDOWS-1251,
  WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255, WINDOWS-1256,
  WINDOWS-1257, WINDOWS-1258, WINSAMI2, WS2, YU
/dev/pts/4
17:07:49
$man iconv
/dev/pts/2
17:08:11
$iconv -l | grep KOI
CSKOI8R//
KOI-7//
KOI-8//
KOI8-R//
KOI8-T//
KOI8-U//
KOI8//
KOI8R//
KOI8U//
17:08:31
$iconv -f KOI8-R -t UTF8 sh/rn
if [ $# -ne 2 ]
then
  echo "Использование: `basename $0` old-pattern new-pattern"
  # Команда "rn .cpp .C" переименовывает все файлы содержащие в названии .cpp
  #     в рабочем каталоге на .C
  exit 1
fi
number=0    # Запомнить, сколько файлов было переименовано
for name in *$1*  #рассматриваем файлы в текущем каталоге
do
...
then
        echo "Переименован $number файл."
else
        if [ $rem -gt 1 -a $rem -lt 5 ]
        then
                echo "Переименовано $number файла"
        else
                echo "Переименовано $number файлов"
        fi
fi
17:09:34
$iconv -f KOI8-R -t UTF8 sh/rn >myrn

17:10:00
$vi myrn
/dev/pts/4
17:13:33
$date
Вто Ноя 15 17:13:34 EET 2005
17:13:34
$ls
a.jpg  backup  bin    body  c.jpg    errlog    files  names  sh      Templates  text
b      base    b.jpg  c     Desktop  filename  myrn   null   source  test       touchlist
/dev/pts/2
17:14:31
$ls -l
итого 84
-rw-rw-r--  1 user user     0 Ноя 15 17:05 a.jpg
drwxr-xr-x  2 root root  4096 Ноя 14 12:59 b
drwxrwxr-x  3 user user  4096 Ноя 14 13:57 backup
-rw-r--r--  1 user 1000  3845 Дек  6  2003 base
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 bin
-rw-rw-r--  1 user user     0 Ноя 15 17:05 b.jpg
-rw-r--r--  1 user 1000 12718 Дек  6  2003 body
drwxr-xr-x  2 user 1000  4096 Ноя 14 12:56 c
-rw-rw-r--  1 user user     0 Ноя 15 17:05 c.jpg
...
drwxr-xr-x  3 user 1000  4096 Дек  6  2003 files
-rw-rw-r--  1 user user  1215 Ноя 15 17:14 myrn
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 names
-rw-rw-r--  1 user user   262 Ноя 15 14:20 null
drwxr-xr-x  2 user 1000  4096 Ноя 15 17:07 sh
drwxrwxr-x  2 user user  4096 Ноя 14 12:49 source
drwxr-xr-x  2 user root  4096 Ноя 12 16:04 Templates
drwxr-xr-x  4 user 1000  4096 Дек  6  2003 test
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 text
-rw-r--r--  1 user 1000    18 Дек  6  2003 touchlist
17:14:37
$chmod +x myrn

17:15:03
$ls -l
итого 84
-rw-rw-r--  1 user user     0 Ноя 15 17:05 a.jpg
drwxr-xr-x  2 root root  4096 Ноя 14 12:59 b
drwxrwxr-x  3 user user  4096 Ноя 14 13:57 backup
-rw-r--r--  1 user 1000  3845 Дек  6  2003 base
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 bin
-rw-rw-r--  1 user user     0 Ноя 15 17:05 b.jpg
-rw-r--r--  1 user 1000 12718 Дек  6  2003 body
drwxr-xr-x  2 user 1000  4096 Ноя 14 12:56 c
-rw-rw-r--  1 user user     0 Ноя 15 17:05 c.jpg
...
drwxr-xr-x  3 user 1000  4096 Дек  6  2003 files
-rwxrwxr-x  1 user user  1215 Ноя 15 17:14 myrn
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 names
-rw-rw-r--  1 user user   262 Ноя 15 14:20 null
drwxr-xr-x  2 user 1000  4096 Ноя 15 17:07 sh
drwxrwxr-x  2 user user  4096 Ноя 14 12:49 source
drwxr-xr-x  2 user root  4096 Ноя 12 16:04 Templates
drwxr-xr-x  4 user 1000  4096 Дек  6  2003 test
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 text
-rw-r--r--  1 user 1000    18 Дек  6  2003 touchlist
17:15:06
$myrn qwerty
bash: myrn: command not found
17:15:16
$vi myrn
17:16:11
$myrn qwerty
bash: myrn: command not found
17:16:19
$vi myrn
17:19:45
$vi myrn
/dev/pts/4
17:23:47
$echo *.jpg
a.jpg b.jpg c.jpg
17:24:16
$echo *.jpg*
a.jpg b.jpg c.jpg
17:25:01
$vi myrn
17:25:45
$vi myrn
17:25:55
$date
Вто Ноя 15 17:26:20 EET 2005
17:26:20
$vi myrn
/dev/pts/6
17:31:04
$su
Password:

Четверг (11/16/06)

/dev/pts/4
09:38:25
$шifconfig
bash: ifconfig: command not found
09:40:10
$su
Password:
09:40:31
#which ifconfig
/usr/bin/which: no ifconfig in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user/bin)
09:40:51
#[root@linux1:user]# ls -l /etc/
-rw-r--r--   1 root  root     848 Мар  5  2003 ksysguarddrc
drwxr-xr-x   2 root  root    4096 Ноя 12 05:59 lam
-rw-r--r--   1 root  root    6928 Сен 29  2004 ldap.conf
-rw-r--r--   1 root  root  105044 Ноя 12 06:00 ld.so.cache
-rw-r--r--   1 root  root      57 Ноя 12 05:53 ld.so.conf
drwxr-xr-x   2 root  root    4096 Ноя 12 05:40 ld.so.conf.d
-rw-r--r--   1 root  root    3243 Июл 12  2004 lftp.conf
drwxr-xr-x   2 root  root    4096 Ноя 12 05:50 libgda
drwxr-xr-x   2 root  root    4096 Окт 25  2004 libslowo.d
-rw-r--r--   1 root  root     144 Окт 25  2004 libslowo.rc
...
drwxr-xr-x   2 root  root    4096 Ноя 12 05:53 wine
drwxr-xr-x   2 root  root    4096 Ноя 12 06:00 wordtrans
drwxr-xr-x  16 root  root    4096 Ноя 12 16:04 X11
drwxr-xr-x   3 root  root    4096 Ноя 12 05:41 xdg
-rw-r--r--   1 root  root     289 Июл 12  2004 xinetd.conf
drwxr-xr-x   2 root  root    4096 Ноя 12 05:52 xinetd.d
drwxr-xr-x   2 root  root    4096 Ноя 12 05:42 xml
-rw-r--r--   1 root  root     585 Июл 12  2004 yp.conf
-rw-r--r--   1 root  root     255 Ноя 15  2004 yum.conf
drwxr-xr-x   2 root  root    4096 Ноя 15  2004 yum.repos.d
09:43:36
#ls -i1 /etc/
83175 ksysguarddrc
96973 lam
80591 ldap.conf
83200 ld.so.cache
80199 ld.so.conf
80200 ld.so.conf.d
82564 lftp.conf
96741 libgda
96942 libslowo.d
83186 libslowo.rc
...
96965 wine
96984 wordtrans
80188 X11
80791 xdg
80692 xinetd.conf
80196 xinetd.d
80992 xml
80571 yp.conf
83123 yum.conf
80295 yum.repos.d
09:46:46
#ls -l
итого 84
-rw-rw-r--  1 user user     0 Ноя 15 17:05 a.jpg
drwxr-xr-x  2 root root  4096 Ноя 14 12:59 b
drwxrwxr-x  3 user user  4096 Ноя 14 13:57 backup
-rw-r--r--  1 user 1000  3845 Дек  6  2003 base
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 bin
-rw-rw-r--  1 user user     0 Ноя 15 17:05 b.jpg
-rw-r--r--  1 user 1000 12718 Дек  6  2003 body
drwxr-xr-x  2 user 1000  4096 Ноя 14 12:56 c
-rw-rw-r--  1 user user     0 Ноя 15 17:05 c.jpg
...
drwxr-xr-x  3 user 1000  4096 Дек  6  2003 files
-rwxrwxr-x  1 user user  1210 Ноя 15 17:28 myrn
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 names
-rw-rw-r--  1 user user   262 Ноя 15 14:20 null
drwxr-xr-x  2 user 1000  4096 Ноя 15 17:07 sh
drwxrwxr-x  2 user user  4096 Ноя 14 12:49 source
drwxr-xr-x  2 user root  4096 Ноя 12 16:04 Templates
drwxr-xr-x  4 user 1000  4096 Дек  6  2003 test
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 text
-rw-r--r--  1 user 1000    18 Дек  6  2003 touchlist
09:51:42
#ls -l | grep ^d
drwxr-xr-x  2 root root  4096 Ноя 14 12:59 b
drwxrwxr-x  3 user user  4096 Ноя 14 13:57 backup
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 bin
drwxr-xr-x  2 user 1000  4096 Ноя 14 12:56 c
drwxr-xr-x  3 user user  4096 Ноя 15 09:35 Desktop
drwxr-xr-x  3 user 1000  4096 Дек  6  2003 files
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 names
drwxr-xr-x  2 user 1000  4096 Ноя 15 17:07 sh
drwxrwxr-x  2 user user  4096 Ноя 14 12:49 source
drwxr-xr-x  2 user root  4096 Ноя 12 16:04 Templates
drwxr-xr-x  4 user 1000  4096 Дек  6  2003 test
drwxr-xr-x  2 user 1000  4096 Дек  6  2003 text
09:52:05
#umask
0022
09:57:17
#man umask
09:59:17
#id
uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
09:59:19
#umask
0022
10:01:52
#man umask
прошло 10 минут
10:12:41
#man newgrp
10:13:31
#man readline\
прошло 108 минут
/dev/pts/8
12:02:09
$useradd
bash: useradd: command not found
прошло 18 минут
/dev/pts/4
12:20:37
#man rmdir
12:22:41
#man rm
прошло 99 минут
/dev/tty2
14:02:11
$logname
logname: no login name
14:02:16
$whoami
user
/dev/pts/4
14:03:51
#exit

/dev/pts/2
14:05:03
$bash -v
if ! echo ${PATH} | grep -q /usr/kerberos/sbin ; then
        if [ `id -u` = 0 ] ; then
                PATH=/usr/kerberos/sbin:${PATH}
        fi
fi
id -u
# /etc/profile.d/lang.sh - set i18n stuff
sourced=0
for langfile in /etc/sysconfig/i18n $HOME/.i18n ; do
    [ -f $langfile ] && . $langfile && sourced=1
...
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"
        a="$?";
        HIDDEN=$([ "$a" = 0 ] || echo -n ^"$a")$(echo -n _${UID}_)$(echo -n _$$_)$(date\
                +"%j$(cat ${LMHOME}/lab 2>/dev/null) %H:%M:%S");
[ "$a" = 0 ] || echo -n ^"$a"
echo -n _${UID}_
echo -n _$$_
date            +"%j$(cat ${LMHOME}/lab 2>/dev/null) %H:%M:%S"
cat ${LMHOME}/lab 2>/dev/null
        echo $HIDDEN
14:05:14
$man bash
14:06:05
$exit

/dev/pts/2
14:06:26
$mount
/dev/hda1 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda6 on /tmp type ext3 (rw,acl)
/dev/hda7 on /var type ext3 (rw)
/dev/hda9 on /usr type ext3 (rw)
/dev/hda8 on /home type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/tmp/img on /mnt type ext2 (rw,loop=/dev/loop0)
14:10:58
$which mount
/bin/mount
прошло 22 минуты
14:33:55
$ls -l `which mount` mount*
ls: mount*: No such file or directory
-rwsr-xr-x  1 root root 82728 Ноя  2  2004 /bin/mount
14:34:28
$su -
Password:
su: неправильный пароль
14:36:04
$su -
Password:
14:36:22
#ls -l /bin/mo*
-rwxr-xr-x  1 root root 32720 Ноя  2  2004 /bin/more
-rwsr-xr-x  1 root root 82728 Ноя  2  2004 /bin/mount
14:36:48
#man mount
14:37:17
#ls -l /sbin/moun*
-rwxr-xr-x  1 root root 17852 Ноя 12  2004 /sbin/mount.cifs
lrwxrwxrwx  1 root root    19 Ноя 12 05:41 /sbin/mount.smb -> ../usr/bin/smbmount
lrwxrwxrwx  1 root root    19 Ноя 12 05:41 /sbin/mount.smbfs -> ../usr/bin/smbmount
14:37:48
#ls -l /sbin/mo*
-rwxr-xr-x  1 root root 59436 Сен 27  2004 /sbin/modinfo
-rwxr-xr-x  1 root root 72172 Сен 27  2004 /sbin/modprobe
-rwxr-xr-x  1 root root 17852 Ноя 12  2004 /sbin/mount.cifs
lrwxrwxrwx  1 root root    19 Ноя 12 05:41 /sbin/mount.smb -> ../usr/bin/smbmount
lrwxrwxrwx  1 root root    19 Ноя 12 05:41 /sbin/mount.smbfs -> ../usr/bin/smbmount
14:38:04
#ls -l /sbin/mount*
-rwxr-xr-x  1 root root 17852 Ноя 12  2004 /sbin/mount.cifs
lrwxrwxrwx  1 root root    19 Ноя 12 05:41 /sbin/mount.smb -> ../usr/bin/smbmount
lrwxrwxrwx  1 root root    19 Ноя 12 05:41 /sbin/mount.smbfs -> ../usr/bin/smbmount
14:38:10
#man sync
прошло 14 минут
14:52:17
#man snap
14:52:21
#cfdisk
14:58:14
#cfdisk
15:00:19
#fdisk -l
Disk /dev/hda: 40.0 GB, 40027029504 bytes
16 heads, 63 sectors/track, 77557 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        4064     2048224+  83  Linux
/dev/hda2            4065       54389    25363800    5  Extended
/dev/hda5            4065        6096     1024096+  82  Linux swap
/dev/hda6            6097       10160     2048224+  83  Linux
/dev/hda7           10161       14224     2048224+  83  Linux
/dev/hda8           14225       24383     5120104+  83  Linux
/dev/hda9           24384       44701    10240240+  83  Linux
/dev/hda10          44702       54389     4882720+  83  Linux
15:00:34
#fdisk -lh
fdisk: invalid option -- h
Usage: fdisk [-b SSZ] [-u] DISK     Change partition table
       fdisk -l [-b SSZ] [-u] DISK  List partition table(s)
       fdisk -s PARTITION           Give partition size(s) in blocks
       fdisk -v                     Give fdisk version
Here DISK is something like /dev/hdb or /dev/sda
and PARTITION is something like /dev/hda7
-u: give Start and End in sector (instead of cylinder) units
-b 2048: (for certain MO disks) use 2048-byte sectors
15:00:50
#fdisk -l
Disk /dev/hda: 40.0 GB, 40027029504 bytes
16 heads, 63 sectors/track, 77557 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        4064     2048224+  83  Linux
/dev/hda2            4065       54389    25363800    5  Extended
/dev/hda5            4065        6096     1024096+  82  Linux swap
/dev/hda6            6097       10160     2048224+  83  Linux
/dev/hda7           10161       14224     2048224+  83  Linux
/dev/hda8           14225       24383     5120104+  83  Linux
/dev/hda9           24384       44701    10240240+  83  Linux
/dev/hda10          44702       54389     4882720+  83  Linux
прошло 108 минут
/dev/tty2
16:49:07
$ps
  PID TTY          TIME CMD
 5186 pts/6    00:00:00 bash
 5221 pts/6    00:00:00 ps
прошло 15 минут
/dev/tty1
17:04:20
$ps -t tty1
  PID TTY          TIME CMD
 5452 tty1     00:00:00 script
 5510 tty1     00:00:00 script
/dev/tty2
17:05:05
$echo $$
5700
/dev/tty1
17:06:02
$echo $$
5511
17:06:29
$kill 5700

/dev/tty2
17:06:45
$echo $$
5700
/dev/tty1
17:07:11
$kill -9 5700

17:07:53
$ls -l bin/
итого 24
-rwxr-xr-x  1 user 1000 5489 Дек  6  2003 big_mem
-rwxr-xr-x  1 user 1000 4557 Дек  6  2003 big_work
-rwxr-xr-x  1 user 1000 5455 Дек  6  2003 signal_trap
17:08:31
$ps -t tty1
  PID TTY          TIME CMD
 5452 tty1     00:00:00 script
 5510 tty1     00:00:00 script
/dev/tty2
17:09:09
$bin/signal_trap
Killed
/dev/tty1
17:09:44
$ps -t tty2
  PID TTY          TIME CMD
 5890 tty2     00:00:00 script
 5948 tty2     00:00:00 script
17:09:46
$ps aux | grep signal_trap
user      5986 95.8  0.0  1248  236 pts/6    R    17:09   0:48 bin/signal_trap
user      6008  0.0  0.0  4036  708 pts/7    R    17:10   0:00 grep signal_trap
17:10:23
$kill -s KILL 5986

17:11:02
$[user@linux1:~]$ vim
Terminated
~
~
~
~
~
~                              VIM - Vi IMproved
~
~                               version 6.2.531
~                           by Bram Moolenaar et al.
...
~                type  :q<Enter>               to exit
~                type  :help<Enter>  or  <F1>  for on-line help
~                type  :help version6<Enter>   for version info
~
~
~
~
~
~
                                                              0,0-1         All
/dev/tty2
17:11:02
$[user@linux1:~]$ vim
Terminated
~
~
~
~
~
~                              VIM - Vi IMproved
~
~                               version 6.2.531
~                           by Bram Moolenaar et al.
...
~                type  :q<Enter>               to exit
~                type  :help<Enter>  or  <F1>  for on-line help
~                type  :help version6<Enter>   for version info
~
~
~
~
~
~
                                                              0,0-1         All
/dev/tty3
17:12:02
$ps aux | grep vim
user      6033  0.0  0.0  4936  940 pts/7    S    17:11   0:00 /bin/sh /usr/bin/vim
user      6042  0.1  0.2  9280 2676 pts/7    S    17:11   0:00 /usr/bin/vim.orig
user      6043  0.0  0.0  4992  944 pts/6    S    17:11   0:00 /bin/sh /usr/bin/vim
user      6052  0.2  0.2  8680 2676 pts/6    S    17:11   0:00 /usr/bin/vim.orig
user      6148  0.0  0.0  3828  708 pts/8    R    17:12   0:00 grep vim
17:12:14
$killall vim

17:12:47
$ps aux | grep vim
user      6042  0.0  0.2  9280 2676 pts/7    S    17:11   0:00 /usr/bin/vim.orig
user      6052  0.0  0.2  8680 2676 pts/6    S    17:11   0:00 /usr/bin/vim.orig
user      6207  0.0  0.0  4276  708 pts/8    R    17:13   0:00 grep vim
17:13:27
$ps aux | grep vim.orig
user      6042  0.0  0.2  9280 2676 pts/7    S    17:11   0:00 /usr/bin/vim.orig
user      6052  0.0  0.2  8680 2676 pts/6    S    17:11   0:00 /usr/bin/vim.orig
user      6217  0.0  0.0  4220  708 pts/8    R    17:13   0:00 grep vim.orig

Файлы

  • sh/rn
  • sh/rn
    >
    if [ $# -ne 2 ]
    then
      echo "éÓÐÏÌØÚÏ×ÁÎÉÅ: `basename $0` old-pattern new-pattern"
      # ëÏÍÁÎÄÁ "rn .cpp .C" ÐÅÒÅÉÍÅÎÏ×Ù×ÁÅÔ ×ÓÅ ÆÁÊÌÙ ÓÏÄÅÒÖÁÝÉÅ × ÎÁÚ×ÁÎÉÉ .cpp
      #     × ÒÁÂÏÞÅÍ ËÁÔÁÌÏÇÅ ÎÁ .C
      exit 1
    fi
    number=0    # úÁÐÏÍÎÉÔØ, ÓËÏÌØËÏ ÆÁÊÌÏ× ÂÙÌÏ ÐÅÒÅÉÍÅÎÏ×ÁÎÏ
    for name in *$1*  #ÒÁÓÓÍÁÔÒÉ×ÁÅÍ ÆÁÊÌÙ × ÔÅËÕÝÅÍ ËÁÔÁÌÏÇÅ
    do
       if [ -f $name ]  # åÓÌÉ ÜÔÏ ÆÁÊÌ
       then
         fname=`basename $name`                # õÂÒÁÔØ ÐÕÔØ ÉÚ ÎÁÚ×ÁÎÉÑ
         n=`echo $fname | sed -e "s/$1/$2/"`   # úÁÍÅÎÉÔØ × ÎÁÚ×ÁÎÉÉ $1 ÎÁ $2
         mv $fname $n                          # ðÅÒÅÉÍÅÎÏ×ÁÔØ ÆÁÊÌ
         number=$(($number+1))
       fi
    done
    rem=`expr $number % 10`
    if [ $rem -eq 1 ]   # ðÏÓÔÁÒÁÅÍÓÑ ÏÔ×ÅÔÉÔØ ÇÒÁÍÍÁÔÉÞÅÓËÉ ÐÒÁ×ÉÌØÎÏ
    then
            echo "ðÅÒÅÉÍÅÎÏ×ÁÎ $number ÆÁÊÌ."
    else
            if [ $rem -gt 1 -a $rem -lt 5 ]
            then
                    echo "ðÅÒÅÉÍÅÎÏ×ÁÎÏ $number ÆÁÊÌÁ"
            else
                    echo "ðÅÒÅÉÍÅÎÏ×ÁÎÏ $number ÆÁÊÌÏ×"
            fi
    fi
    

    Статистика

    Время первой команды журнала16:44:11 2006-11-15
    Время последней команды журнала17:13:27 2006-11-16
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %16.83
    Процент синтаксически неверно набранных команд, % 3.96
    Суммарное время работы с терминалом *, час 3.09
    Количество командных строк в единицу времени, команда/мин 0.54
    Частота использования команд
    ls14|============| 12.28%
    man11|=========| 9.65%
    echo10|========| 8.77%
    ps8|=======| 7.02%
    vi8|=======| 7.02%
    for6|=====| 5.26%
    grep6|=====| 5.26%
    [user@linux1:~]$4|===| 3.51%
    su4|===| 3.51%
    iconv4|===| 3.51%
    fdisk3|==| 2.63%
    myrn3|==| 2.63%
    kill3|==| 2.63%
    do3|==| 2.63%
    done3|==| 2.63%
    umask2|=| 1.75%
    cfdisk2|=| 1.75%
    rn2|=| 1.75%
    exit2|=| 1.75%
    which2|=| 1.75%
    date2|=| 1.75%
    [root@linux1:user]#1|| 0.88%
    logname1|| 0.88%
    chmod1|| 0.88%
    mount1|| 0.88%
    useradd1|| 0.88%
    шifconfig1|| 0.88%
    whoami1|| 0.88%
    id1|| 0.88%
    bash1|| 0.88%
    cat1|| 0.88%
    killall1|| 0.88%
    signal_trap1|| 0.88%
    ____
    *) Интервалы неактивности длительностью 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$