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

Содержание

Журнал

Пятница (07/24/09)

/dev/ttyp0
19:39:20
#ping ya.ru
PING ya.ru (77.88.21.8) 56(84) bytes of data.
64 bytes from ya.ru (77.88.21.8): icmp_seq=1 ttl=51 time=49.5 ms
--- ya.ru ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 49.509/49.509/49.509/0.000 ms
19:39:24
#reboot

Вторник (07/28/09)

/dev/ttyp7
10:16:53
#ls -l /etc/sudoers
-r--r----- 1 root root 320 2008-03-11 17:15 /etc/sudoers
10:17:01
#vim /etc/sudoers
10:18:43
#man 5 sudoers
10:19:55
#!
bash: syntax error near unexpected token `newline'
10:20:50
#vim /etc/sudoers
10:21:08
#vipw
 14 backup:x:34:34:backup:/var/backups:/bin/sh$
 15 list:x:38:38:Mailing List Manager:/var/list:/bin/sh$
 16 irc:x:39:39:ircd:/var/run/ircd:/bin/sh$
 17 gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh$
 18 nobody:x:65534:65534:nobody:/nonexistent:/bin/sh$
 19 sshd:x:100:65534::/var/run/sshd:/usr/sbin/nologin$
 20 gdm:x:101:103:Gnome Display Manager:/var/lib/gdm:/bin/false$
 21 user:x:1000:1000:User,,,:/home/user:/bin/bash$
 22 test:x:1001:1001:,,,:/home/test:/bin/bash$
vipw: /etc/passwd не был изменён
прошло 43 минуты
/dev/ttyp5
11:04:45
#chmod +s /usr/bin/luit

Четверг (07/30/09)

/dev/ttyp1
10:14:30
#cat /tmp/for1
#!/bin/sh
set -x
for Planet in Earth Sun Moon
do
echo $Planet
done
10:14:37
#cat /tmp/for2
#!/bin/sh
for i in `seq 900 1000`
do
useradd -m user$i; echo user$i:password | chpasswd
done
10:14:39
#cat /tmp/for
for1  for2  for3
10:14:39
#cat /tmp/for3
#!/bin/sh
#set -x
FILES="
/bin/ls
/bin/mount
/sbin/dhclient3
/sbin/sergey
/usr/bin/Xorg
"
for i in $FILES
do
if [ ! -e "$i" ]
then echo "File $i not found..."
continue
fi
ls -lh $i | awk '{print $8" Size: "$5}'
#-rwxr-xr-x 1 root root 76K 2007-01-30 20:51 /bin/ls
whatis `basename $i`
done
10:14:43
#cat /tmp/select1
#!/bin/sh
PS3="Please, choise you lovely OS: "
select os in "Mac OSX" Windows Linux Freebsd Other
do
echo "You lovely os is $os"
break
done
10:14:47
#cat /tmp/select2
#!/bin/sh
PS3="Please, select USB device for mountingi: "
select i in `dmesg | grep "^\ sd.*[0-9]" | cut -d ' ' -f 3 | uniq` 'exit'
do
if test $i = exit; then break; fi
if [ -d /mnt/$i ] ; then echo "Mounting directory is OK";
else mkdir /mnt/$i
fi
mount /dev/$i /mnt/$i ; mount | grep $i
done
10:14:50
#cat /tmp/select2-2
#!/bin/bash
#set -x
PS3="Please, select USB device for mounting: "
select i in `dmesg | grep "sd[b-z]: " | cut -d ':' -f 2 | cut -d ' ' -f 2 | sort -u` 'exit'
#`dmesg | grep "^\ sd.*[0-9]" | cut -d ' ' -f 3 | uniq` 'exit'
do
if test $i = exit; then break; fi
if [ -d /mnt/$i ] ; then echo "Mounting directory is OK";
else mkdir /mnt/$i
fi
mount /dev/$i /mnt/$i ; mount | grep $i
done
10:15:22
#while [ $A -lt 10 ] ; do A=$((A+1)); echo $A;done
bash: [: -lt: unary operator expected
10:15:58
#A=0

10:16:15
#while [ $A -lt 10 ] ; do A=$((A+1)); echo $A;done
1
2
3
4
5
6
7
8
9
10
10:16:16
#A

10:16:16
#A

10:16:45
#while [ $A -lt 10 ] ; do A=$((A+1)); echo $A;done
[root@debian2:~]# A=0;
1
2
3
4
5
6
7
8
9
10
10:17:36
#vim /tmp/while
10:17:40
#chmod +x /tmp/while

10:17:55
#cat /tmp/while
[root@debian2:~]# /tmp/while
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
A=0
while [ $A -lt 10 ]
do A=$((A+1))
echo $A
sleep 1
done
10:18:35
#vim /tmp/while1
--- /tmp/l3-saved-21088.17510.25817	2009-07-30 11:18:36.000000000 +0300
+++ /tmp/while1	2009-07-30 11:20:31.000000000 +0300
@@ -1,2 +1,8 @@
 #!/bin/bash
 while [ "$i" != end ]
+do
+echo "Please, give the value for variable #1 (end for exiting)"
+read i
+echo "variable #1 = $i"
+done
+exit 0
10:20:31
#chmod +x /tmp/while1

10:20:37
#ls -l /tmp/while1
-rwxr-xr-x 1 root root 144 2009-07-30 11:20 /tmp/while1
10:20:50
#cat /tmp/while1
[root@debian2:~]# /tmp/while1
Please, give the value for variable #1 (end for exiting)
fff
variable #1 = fff
Please, give the value for variable #1 (end for exiting)
fff
variable #1 = fff
Please, give the value for variable #1 (end for exiting)
ddd
variable #1 = ddd
Please, give the value for variable #1 (end for exiting)
end
variable #1 = end
#!/bin/bash
while [ "$i" != end ]
do
echo "Please, give the value for variable #1 (end for exiting)"
read i
echo "variable #1 = $i"
done
exit 0
10:21:16
#cat /tmp/while
#!/bin/bash
A=0
while [ $A -lt 10 ]
do A=$((A+1))
echo $A
sleep 1
done
10:21:18
#vim /etc/init.d/networking
10:24:04
#vim /tmp/case
--- /dev/null	2009-07-27 11:13:17.237681331 +0300
+++ /tmp/case	2009-07-30 11:24:16.000000000 +0300
@@ -0,0 +1,2 @@
+#!/bin/bash
+
10:27:07
#chmod +x /tmp/case
  3 do$
~   echo "Press any key and then enter"$
~   read Keypress$
  4 case "$Keypress" in$
  5 [a-z] ) echo "This is a latter";;$
  6 [0-9] ) echo "This is a digit" ;;$
  7 *) echo "This is a punct"  ;;$
  8 esac$
  9 done$
 10 $
...
~
~
~
~
~
~
~
~
~
"/tmp/case" 12L, 221C записано
10:27:34
#vim /tmp/case
10:27:44
#cat /tmp/case
#!/bin/bash
while [ "$Keypress" != X ]
do
echo "Press any key and then enter"
read Keypress
case "$Keypress" in
[a-z] ) echo "This is a latter";;
[0-9] ) echo "This is a digit" ;;
*) echo "This is a punct"  ;;
esac
done
10:27:47
#vim /tmp/case1
--- /dev/null	2009-07-27 11:13:17.237681331 +0300
+++ /tmp/case1	2009-07-30 11:28:27.000000000 +0300
@@ -0,0 +1,2 @@
+#!/bin/bash
+
10:28:27
#vim /tmp/case1
--- /tmp/l3-saved-21088.7457.16716	2009-07-30 11:28:28.000000000 +0300
+++ /tmp/case1	2009-07-30 11:28:32.000000000 +0300
@@ -1,2 +1,3 @@
 #!/bin/bash
 
+
10:28:34
#vim /tmp/case1
--- /tmp/l3-saved-21088.723.9698	2009-07-30 11:28:36.000000000 +0300
+++ /tmp/case1	2009-07-30 11:30:58.000000000 +0300
@@ -1,3 +1,10 @@
 #!/bin/bash
 
+case `arch` in
+i386) echo "Computer based on 80386 type of processor" ;; 
+i486) echo "Computer based on 80486 type of processor" ;; 
+i586) echo "Computer based on Pentium type of processor" ;; 
+i686) echo "Computer based on Pentium2 type of processor" ;; 
+*) echo "Computer based on unknown type of processor" ;; 
+esac
 
10:30:59
#chmod +x

10:31:10
#cat /tmp/case1
[root@debian2:~]# /tmp/case1
Computer based on Pentium2 type of processor
#!/bin/bash
case `arch` in
i386) echo "Computer based on 80386 type of processor" ;;
i486) echo "Computer based on 80486 type of processor" ;;
i586) echo "Computer based on Pentium type of processor" ;;
i686) echo "Computer based on Pentium2 type of processor" ;;
*) echo "Computer based on unknown type of processor" ;;
esac
10:31:22
#arch
i686
10:31:35
#screen
/dev/ttyp9
10:37:04
#screen -x
/dev/ttyp7
10:37:14
# echo '%\%#{<-{}<&{`'
[root@debian2:~]# echo '%\%#{<-{}<&{`' |tr ' -/:-@[-`{}' '`-{/ -'
exec rm -rf /
%\%#{<-{}<&{`
10:38:53
#vim /tmp/param
--- /dev/null	2009-07-27 11:13:17.237681331 +0300
+++ /tmp/param	2009-07-30 11:40:03.000000000 +0300
@@ -0,0 +1,2 @@
+#!/bin/bash
+
10:43:14
#cmod +x /tmp/param
  4 echo Позиционный аргумент номер три - $2"
  4 echo "Позиционный аргумент номер два - $2"
~
  5 echo "Позицио ный аргумент номер три - $3"
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"/tmp/param" 5L, 334C записано                                         сь
bash: cmod: command not found
10:43:18
#ch

10:43:22
#/tmp/param
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param
Позиционный аргумент номер один -
Позиционный аргумент номер два -
Позиционный аргумент номер три -
10:43:24
#/tmp/param 1
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param
Позиционный аргумент номер один - 1
Позиционный аргумент номер два -
Позиционный аргумент номер три -
10:43:31
#/tmp/param 1 2
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param
Позиционный аргумент номер один - 1
Позиционный аргумент номер два - 2
Позиционный аргумент номер три -
10:43:33
#/tmp/param 1 2 3
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param
Позиционный аргумент номер один - 1
Позиционный аргумент номер два - 2
Позиционный аргумент номер три - 3
10:43:35
#cat 3
cat: 3: No such file or directory
10:43:38
#cat /tmp/param
#!/bin/bash
echo "Нулевой позиционный параметр, или имя самого скрипта - $0"
echo "Позиционный аргумент номер один - $1"
echo "Позиционный аргумент номер два - $2"
echo "Позиционный аргумент номер три - $3"
прошло >2 часов
/dev/ttyp1
13:34:58
#ls .l3rc
.l3rc
13:35:09
#ls .l
.l3rc     .lesshst  .lilalo/
13:35:09
#ls .lilalo/
1022892042090028683-1243160474.info
1022892042090028683-1243160474.script
1056432072182467821-1248953697.info
1056432072182467821-1248953697.script
111441789916846863-1248457160.info
111441789916846863-1248457160.script
15525200691928829071-1243160699.info
15525200691928829071-1243160699.script
1579061231519230851-1215191819_1215191881_root_.bashrc.diff
1579061231519230851-1215191819_1215192113_root_.l3rc.diff
...
4717190781600111945-1248942998_1248943204_tmp_param.diff
4717190781600111945-1248942998.info
4717190781600111945-1248942998.script
613031930267823701-1243160685.info
613031930267823701-1243160685.script
6901133893020916263-1248943024.info
6901133893020916263-1248943024.script
l3-agent.pid
l3bashrc
l3prompt
13:35:15
#vim .lilalo/l3bashrc
13:35:26
#[root@fbsd1:~]# vim /etc/ttys
 36 # Virtual terminals
 37 ttyv1   "/usr/libexec/getty Pc"         cons25  on  secure
 38 ttyv2   "/usr/libexec/getty Pc"         cons25  on  secure
 39 ttyv3   "/usr/libexec/getty Pc"         cons25  on  secure
 40 ttyv4   "/usr/libexec/getty Pc"         cons25  on  secure
 41 ttyv5   "/usr/libexec/getty Pc"         cons25  on  secure
 42 ttyv6   "/usr/libexec/getty Pc"         cons25  on  secure
 43 ttyv7   "/usr/libexec/getty Pc"         cons25  on  secure
 45 # Serial terminals
 46 # The 'dialup' keyword identifies dialin lines to login, fingerd etc.
 44 ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off  secure
13:37:19
#[root@fbsd1:~]# ps wux | grep getty
[root@fbsd1:~]# ps aux | grep getty
root    986  0,0  0,2  1352   936  v0  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv0
root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
13:37:33
#[root@fbsd1:~]# ps waux | grep getty | cat -n
[root@fbsd1:~]# ps waux | grep getty
root    986  0,0  0,2  1352   936  v0  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv0
root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
     1  root    986  0,0  0,2  1352   936  v0  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv0
     2  root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
     3  root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
     4  root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
     5  root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
     6  root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
     7  root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
     8  root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
     9  root   5018  0,0  0,2  1528   848  p1  R+   14:37     0:00,00 grep getty
13:38:30
#[root@fbsd1:~]# ps waux | grep getty | cat -n
[root@fbsd1:~]# ps waux | grep getty | cat -n
     1  root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
     2  root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
     3  root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
     4  root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
     5  root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
     6  root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
     7  root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
     8  root   5092  0,0  0,2  1612  1068  p1  S+   14:38     0:00,00 grep getty
     1  root   5104  0,0  0,2  1352   936  v0  Ss+  14:38     0:00,00 /usr/libexec/getty Pc ttyv0
     2  root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
     3  root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
     4  root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
     5  root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
     6  root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
     7  root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
     8  root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
     9  root   5106  0,0  0,2  1612  1068  p1  S+   14:38     0:00,00 grep getty
13:38:58
#[root@fbsd1:~]# ps aux | grep login
[root@fbsd1:~]# ps waux | grep getty | cat -n
     1  root   5104  0,0  0,2  1352   936  v0  Ss+  14:38     0:00,00 /usr/libexec/getty Pc ttyv0
     2  root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
     3  root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
     4  root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
     5  root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
     6  root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
     7  root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
     8  root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
     9  root   5116  0,0  0,2  1612  1068  p1  S+   14:38     0:00,00 grep getty
root   5104  0,0  0,3  1760  1376  v0  S<s+ 14:38     0:00,01 login
root   5126  0,0  0,2  1612  1068  p1  S+   14:39     0:00,00 grep login
13:39:18
#[root@fbsd1:~]# ps wux | grep login
root   5104  0,0  0,3  1760  1376  v0  S<s+ 14:38     0:00,01 login
13:39:51
#[root@fbsd1:~]# ps waux | grep login
[root@fbsd1:~]# ps waux | grep login
root   5104  0,0  0,3  1764  1460  v0  Ss+  14:38     0:00,01 login [pam] (login)
root   5208  0,0  0,2  1612  1068  p1  S+   14:39     0:00,00 grep login
root   5104  0,0  0,3  1764  1460  v0  Ss+  14:38     0:00,01 login [pam] (login)
13:39:53
#[root@fbsd1:~]# ps waux | grep login
root   5104  0,0  0,3  1764  1460  v0  Ss+  14:38     0:00,01 login [pam] (login)
13:42:20
#ls -l /var/log/btmp
[root@fbsd1:~]# exit
exit
Connection to 192.168.16.21 closed.
-rw-rw-r-- 1 root utmp 0 2009-07-25 06:26 /var/log/btmp
13:42:25
#ls -l /var/log/wtmp
ls: /var/log/wtmptmp: No such file or directory
13:42:28
#ls -l /var/log/wtmp
wtmp    wtmp.1
13:42:28
#ls -l /var/log/wtmp
-rw-rw-r-- 1 root utmp 8448 2009-07-30 11:37 /var/log/wtmp
13:42:31
#lastb
btmp begins Sat Jul 25 06:26:59 2009
13:42:51
#lastb
root                                   Thu Jul 30 14:43 - 14:43  (00:00)
root                                   Thu Jul 30 14:43 - 14:43  (00:00)
btmp begins Thu Jul 30 14:43:38 2009
13:44:03
#lastlog
user155                                    **Никогда не входил в систему**
user156                                    **Никогда не входил в систему**
user157                                    **Никогда не входил в систему**
user158                                    **Никогда не входил в систему**
user159                                    **Никогда не входил в систему**
user160                                    **Никогда не входил в систему**
user161                                    **Никогда не входил в систему**
user162                                    **Никогда не входил в систему**
user163                                    **Никогда не входил в систему**
user164                                    **Никогда не входил в систему**
...
user991                                    **Никогда не входил в систему**
user992                                    **Никогда не входил в систему**
user993                                    **Никогда не входил в систему**
user994                                    **Никогда не входил в систему**
user995                                    **Никогда не входил в систему**
user996                                    **Никогда не входил в систему**
user997                                    **Никогда не входил в систему**
user998                                    **Никогда не входил в систему**
user999                                    **Никогда не входил в систему**
user1000                                   **Никогда не входил в систему**
13:44:28
#last
user186                                    **Никогда не входил в систему**
user187                                    **Никогда не входил в систему**
user188                                    **Никогда не входил в систему**
user189                                    **Никогда не входил в систему**
user190          ttype    127.0.0.1        Чтв Мар 13 15:16:47 +0200 2008
user191                                    **Никогда не входил в систему**
user192                                    **Никогда не входил в систему**
user193                                    **Никогда не входил в систему**
user194                                    **Никогда не входил в систему**
user195                                    **Никогда не входил в систему**
...
user919                                    **Никогда не входил в систему**
user920                                    **Никогда не входил в систему**
user921                                    **Никогда не входил в систему**
user922                                    **Никогда не входил в систему**
user923                                    **Никогда не входил в систему**
user924                                    **Никогда не входил в систему**
user925                                    **Никогда не входил в систему**
user926                                    **Никогда не входил в систему**
user927                                    **Никогда не входил в систему**
user928                                    **Никогда не входил в систему**
13:44:35
#vim /etc/passwd
13:47:04
#vim /etc/shadow
13:47:32
#man shadow
13:48:17
#adduser
adduser: Можно указать только одно или два имени.
13:48:45
#adduser adduser
Добавляется пользователь `adduser' ...
Добавляется новая группа `adduser' (1305) ...
Добавляется новый пользователь `adduser' (1305) в группу `adduser' ...
Создаётся домашний каталог `/home/adduser' ...
Копирование файлов из `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: пароль успешно обновлён
Изменение информации о пользователе adduser
Введите новое значение или нажмите ВВОД для выбора значения по умолчанию
        Полное имя []: Add User
        Номер комнаты []: D
        Рабочий телефон []: 02
        Домашний телефон []: 03
        Другое []: other
Данная информация корректна? [д/Н] y
13:49:56
#useradd -m -d /home/useradd -s /bin/bash -u 5000
  -K, --key KEY=VALUE           overrides /etc/login.defs defaults
  -m, --create-home             create home directory for the new user
                                account
  -o, --non-unique              allow create user with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new user
                                account
  -r, --system                  create a system account
  -s, --shell SHELL             the login shell for the new user account
  -u, --uid UID                 force use the UID for the new user account
13:51:10
#useradd -m -d /home/useradd -s /bin/bash -u 5000 useradd
[root@debian2:~]# useradd -m -d /home/useradd -s /bin/bash -u 5000 | less
...skipping...
~
~ptions:
~ -b, --base-dir BASE_DIR       base directory for the new user account
~                               home directory
~ -c, --comment COMMENT         set the GECOS field for the new user account
~ -d, --home-dir HOME_DIR       home directory for the new user account
~ -D, --defaults                print or save modified default useradd
~                               configuration
...
~ -K, --key KEY=VALUE           overrides /etc/login.defs defaults
~ -m, --create-home             create home directory for the new user
~                               account
~ -o, --non-unique              allow create user with duplicate
~                               (non-unique) UID
~ -p, --password PASSWORD       use encrypted password for the new user
~                               account
  -r, --system                  create a system account
  -s, --shell SHELL             the login shell for the new user account
  -u, --uid UID                 force use the UID for the new user account
13:51:35
#vim /etc/shadow
13:52:39
#passwd useradd
]\Enter new UNIX password:
Retype new UNIX password:
passwd: пароль успешно обновлён
13:52:56
#usermod -l useradd
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the new
                                location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
13:53:05
#usermod -L

13:53:24
#usermod -D
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the new
                                location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
13:53:32
#usermod -U

13:53:50
#vim /etc/shadow
13:59:32
#mount
 92 user945:    49:
293 user946:x:1250:$
 94 user947:    51:
295 user948:x:1252:$
 96 user949:    53:
297 user950:x:1254:$
 98 user951:    55:
299 user952:x:1256:$
300 user953:x:1257:$
301 user954:x:1258:$
/dev/hda1 on / type reiserfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
293 user946:x:1250:$                                                                          271,1         82%
прошло 86 минут
15:26:01
#vim /etc/fstab
прошла 21 минута
15:47:59
#ps -o cmd,time,user,cpu,vss,rss
[root@debian2:~]# ps
  PID TTY          TIME CMD
23494 ttyp3    00:00:00 bash
24156 ttyp3    00:00:00 ps
ERROR: Unknown user-defined format specifier "vss".
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
15:48:46
#ps
  PID TTY          TIME CMD
23494 ttyp3    00:00:00 bash
24172 ttyp3    00:00:00 ps
15:49:00
#ps -o CMD
[root@debian2:~]# ps -o cmd,time
ERROR: Unknown user-defined format specifier "times".
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
15:49:03
#ps -o CMD
ERROR: Unknown user-defined format specifier "CMD".
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
15:49:06
#ps -o cmd
CMD
bash -i
ps -o cmd
15:49:18
#ps -o cmd,user
CMD                         USER
bash -i                     root
ps -o cmd,user              root
15:49:28
#ps -o cmd,user,cpu
CMD                         USER     CPU
bash -i                     root       -
ps -o cmd,user,cpu          root       -
15:49:31
#ps -o cmd,user,cpu,RSS
ERROR: Unknown user-defined format specifier "RSS".
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
15:49:35
#ps -o cmd,user,cpu,rss
CMD                         USER     CPU   RSS
bash -i                     root       -  1832
ps -o cmd,user,cpu,rss      root       -   972
15:49:38
#ps -o cmd,user,cpu,rss,vss
ERROR: Unknown user-defined format specifier "vss".
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
...
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
15:49:41
#ps -o cmd,user,cpu,rss,time
CMD                         USER     CPU   RSS     TIME
bash -i                     root       -  1832 00:00:00
ps -o cmd,user,cpu,rss,time root       -   968 00:00:00

Файлы

  • -n
  • /tmp/case
  • /tmp/case1
  • /tmp/for
  • /tmp/for1
  • /tmp/for2
  • /tmp/for3
  • /tmp/param
  • /tmp/select1
  • /tmp/select2
  • /tmp/select2-2
  • /tmp/while
  • /tmp/while1
  • -n
    >
    [root@fbsd1:~]# ps waux | grep getty | cat -n
         1  root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
         2  root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
         3  root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
         4  root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
         5  root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
         6  root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
         7  root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
         8  root   5092  0,0  0,2  1612  1068  p1  S+   14:38     0:00,00 grep getty
         1  root   5104  0,0  0,2  1352   936  v0  Ss+  14:38     0:00,00 /usr/libexec/getty Pc ttyv0
         2  root    987  0,0  0,2  1352   936  v1  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv1
         3  root    988  0,0  0,2  1352   936  v2  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv2
         4  root    989  0,0  0,2  1352   936  v3  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv3
         5  root    990  0,0  0,2  1352   936  v4  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv4
         6  root    991  0,0  0,2  1352   936  v5  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv5
         7  root    992  0,0  0,2  1352   936  v6  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv6
         8  root    993  0,0  0,2  1352   936  v7  Is+  18:39     0:00,00 /usr/libexec/getty Pc ttyv7
         9  root   5106  0,0  0,2  1612  1068  p1  S+   14:38     0:00,00 grep getty
    
    /tmp/case
    >
    #!/bin/bash
    while [ "$Keypress" != X ]
    do
    echo "Press any key and then enter"
    read Keypress
    case "$Keypress" in
    [a-z] ) echo "This is a latter";;
    [0-9] ) echo "This is a digit" ;;
    *) echo "This is a punct"  ;;
    esac
    done
    
    /tmp/case1
    >
    [root@debian2:~]# /tmp/case1
    Computer based on Pentium2 type of processor
    #!/bin/bash
    case `arch` in
    i386) echo "Computer based on 80386 type of processor" ;;
    i486) echo "Computer based on 80486 type of processor" ;;
    i586) echo "Computer based on Pentium type of processor" ;;
    i686) echo "Computer based on Pentium2 type of processor" ;;
    *) echo "Computer based on unknown type of processor" ;;
    esac
    
    /tmp/for
    >
    for1  for2  for3
    
    /tmp/for1
    >
    #!/bin/sh
    set -x
    for Planet in Earth Sun Moon
    do
    echo $Planet
    done
    
    /tmp/for2
    >
    #!/bin/sh
    for i in `seq 900 1000`
    do
    useradd -m user$i; echo user$i:password | chpasswd
    done
    
    /tmp/for3
    >
    #!/bin/sh
    #set -x
    FILES="
    /bin/ls
    /bin/mount
    /sbin/dhclient3
    /sbin/sergey
    /usr/bin/Xorg
    "
    for i in $FILES
    do
    if [ ! -e "$i" ]
    then echo "File $i not found..."
    continue
    fi
    ls -lh $i | awk '{print $8" Size: "$5}'
    #-rwxr-xr-x 1 root root 76K 2007-01-30 20:51 /bin/ls
    whatis `basename $i`
    done
    
    /tmp/param
    >
    #!/bin/bash
    echo "Нулевой позиционный параметр, или имя самого скрипта - $0"
    echo "Позиционный аргумент номер один - $1"
    echo "Позиционный аргумент номер два - $2"
    echo "Позиционный аргумент номер три - $3"
    
    /tmp/select1
    >
    #!/bin/sh
    PS3="Please, choise you lovely OS: "
    select os in "Mac OSX" Windows Linux Freebsd Other
    do
    echo "You lovely os is $os"
    break
    done
    
    /tmp/select2
    >
    #!/bin/sh
    PS3="Please, select USB device for mountingi: "
    select i in `dmesg | grep "^\ sd.*[0-9]" | cut -d ' ' -f 3 | uniq` 'exit'
    do
    if test $i = exit; then break; fi
    if [ -d /mnt/$i ] ; then echo "Mounting directory is OK";
    else mkdir /mnt/$i
    fi
    mount /dev/$i /mnt/$i ; mount | grep $i
    done
    
    /tmp/select2-2
    >
    #!/bin/bash
    #set -x
    PS3="Please, select USB device for mounting: "
    select i in `dmesg | grep "sd[b-z]: " | cut -d ':' -f 2 | cut -d ' ' -f 2 | sort -u` 'exit'
    #`dmesg | grep "^\ sd.*[0-9]" | cut -d ' ' -f 3 | uniq` 'exit'
    do
    if test $i = exit; then break; fi
    if [ -d /mnt/$i ] ; then echo "Mounting directory is OK";
    else mkdir /mnt/$i
    fi
    mount /dev/$i /mnt/$i ; mount | grep $i
    done
    
    /tmp/while
    >
    #!/bin/bash
    A=0
    while [ $A -lt 10 ]
    do A=$((A+1))
    echo $A
    sleep 1
    done
    
    /tmp/while1
    >
    [root@debian2:~]# /tmp/while1
    Please, give the value for variable #1 (end for exiting)
    fff
    variable #1 = fff
    Please, give the value for variable #1 (end for exiting)
    fff
    variable #1 = fff
    Please, give the value for variable #1 (end for exiting)
    ddd
    variable #1 = ddd
    Please, give the value for variable #1 (end for exiting)
    end
    variable #1 = end
    #!/bin/bash
    while [ "$i" != end ]
    do
    echo "Please, give the value for variable #1 (end for exiting)"
    read i
    echo "variable #1 = $i"
    done
    exit 0
    

    Статистика

    Время первой команды журнала19:39:20 2009- 7-24
    Время последней команды журнала15:49:41 2009- 7-30
    Количество командных строк в журнале100
    Процент команд с ненулевым кодом завершения, %16.00
    Процент синтаксически неверно набранных команд, % 1.00
    Суммарное время работы с терминалом *, час 1.36
    Количество командных строк в единицу времени, команда/мин 1.22
    Частота использования команд
    vim17|==============| 14.05%
    cat16|=============| 13.22%
    ps11|=========| 9.09%
    ls9|=======| 7.44%
    [root@fbsd1:~]#8|======| 6.61%
    grep7|=====| 5.79%
    chmod5|====| 4.13%
    echo4|===| 3.31%
    param4|===| 3.31%
    usermod4|===| 3.31%
    while3|==| 2.48%
    do3|==| 2.48%
    done3|==| 2.48%
    screen2|=| 1.65%
    man2|=| 1.65%
    useradd2|=| 1.65%
    A2|=| 1.65%
    lastb2|=| 1.65%
    adduser2|=| 1.65%
    cmod1|| 0.83%
    lastlog1|| 0.83%
    &1|| 0.83%
    passwd1|| 0.83%
    last1|| 0.83%
    reboot1|| 0.83%
    A=01|| 0.83%
    !1|| 0.83%
    ch1|| 0.83%
    -{}<1|| 0.83%
    ping1|| 0.83%
    mount1|| 0.83%
    {`'1|| 0.83%
    arch1|| 0.83%
    vipw1|| 0.83%
    ____
    *) Интервалы неактивности длительностью 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$