/l3/users/27-07-2009/nt-ladm/debian2.net.nt/root :1 |
|
#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 |
#reboot
|
#vim /etc/sudoers
|
#man 5 sudoers
|
#!
bash: syntax error near unexpected token `newline' |
#vim /etc/sudoers
|
#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 не был изменён |
#cat /tmp/for1
#!/bin/sh set -x for Planet in Earth Sun Moon do echo $Planet done |
#cat /tmp/for2
#!/bin/sh for i in `seq 900 1000` do useradd -m user$i; echo user$i:password | chpasswd done |
#cat /tmp/for
for1 for2 for3 |
#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 |
#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 |
#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 |
#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 |
#while [ $A -lt 10 ] ; do A=$((A+1)); echo $A;done
bash: [: -lt: unary operator expected |
#A=0
|
#while [ $A -lt 10 ] ; do A=$((A+1)); echo $A;done
1 2 3 4 5 6 7 8 9 10 |
#A
|
#A
|
#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 |
#vim /tmp/while
|
#chmod +x /tmp/while
|
#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 |
#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 |
#chmod +x /tmp/while1
|
#ls -l /tmp/while1
-rwxr-xr-x 1 root root 144 2009-07-30 11:20 /tmp/while1 |
#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 |
#cat /tmp/while
#!/bin/bash A=0 while [ $A -lt 10 ] do A=$((A+1)) echo $A sleep 1 done |
#vim /etc/init.d/networking
|
#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 + |
#vim /tmp/case
|
#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 |
#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 + |
#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 + |
#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 |
#chmod +x
|
#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 |
#arch
i686 |
#screen
|
# echo '%\%#{<-{}<&{`'
[root@debian2:~]# echo '%\%#{<-{}<&{`' |tr ' -/:-@[-`{}' '`-{/ -' exec rm -rf / %\%#{<-{}<&{` |
#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 + |
#cmod +x /tmp/param
4 echo Позиционный аргумент номер три - $2" 4 echo "Позиционный аргумент номер два - $2" ~ 5 echo "Позицио ный аргумент номер три - $3" ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "/tmp/param" 5L, 334C записано сь bash: cmod: command not found |
#ch
|
#/tmp/param
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param Позиционный аргумент номер один - Позиционный аргумент номер два - Позиционный аргумент номер три - |
#/tmp/param 1
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param Позиционный аргумент номер один - 1 Позиционный аргумент номер два - Позиционный аргумент номер три - |
#/tmp/param 1 2
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param Позиционный аргумент номер один - 1 Позиционный аргумент номер два - 2 Позиционный аргумент номер три - |
#/tmp/param 1 2 3
Нулевой позиционный параметр, или имя самого скрипта - /tmp/param Позиционный аргумент номер один - 1 Позиционный аргумент номер два - 2 Позиционный аргумент номер три - 3 |
#cat 3
cat: 3: No such file or directory |
#cat /tmp/param
#!/bin/bash echo "Нулевой позиционный параметр, или имя самого скрипта - $0" echo "Позиционный аргумент номер один - $1" echo "Позиционный аргумент номер два - $2" echo "Позиционный аргумент номер три - $3" |
#ls .l
.l3rc .lesshst .lilalo/ |
#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 |
#vim .lilalo/l3bashrc
|
#[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 |
#[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 |
#[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 |
#[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 |
#[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 |
#[root@fbsd1:~]# ps wux | grep login
root 5104 0,0 0,3 1760 1376 v0 S<s+ 14:38 0:00,01 login |
#[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) |
#[root@fbsd1:~]# ps waux | grep login
root 5104 0,0 0,3 1764 1460 v0 Ss+ 14:38 0:00,01 login [pam] (login) |
#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 |
#ls -l /var/log/wtmp
ls: /var/log/wtmptmp: No such file or directory |
#ls -l /var/log/wtmp
wtmp wtmp.1 |
#ls -l /var/log/wtmp
-rw-rw-r-- 1 root utmp 8448 2009-07-30 11:37 /var/log/wtmp |
#lastb
btmp begins Sat Jul 25 06:26:59 2009 |
#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 |
#lastlog
user155 **Никогда не входил в систему** user156 **Никогда не входил в систему** user157 **Никогда не входил в систему** user158 **Никогда не входил в систему** user159 **Никогда не входил в систему** user160 **Никогда не входил в систему** user161 **Никогда не входил в систему** user162 **Никогда не входил в систему** user163 **Никогда не входил в систему** user164 **Никогда не входил в систему** ... user991 **Никогда не входил в систему** user992 **Никогда не входил в систему** user993 **Никогда не входил в систему** user994 **Никогда не входил в систему** user995 **Никогда не входил в систему** user996 **Никогда не входил в систему** user997 **Никогда не входил в систему** user998 **Никогда не входил в систему** user999 **Никогда не входил в систему** user1000 **Никогда не входил в систему** |
#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 **Ðикогда не Ð²Ñ Ð¾Ð´Ð¸Ð» в ÑиÑÑемÑ** |
#vim /etc/passwd
|
#vim /etc/shadow
|
#man shadow
|
#adduser
adduser: Можно указать только одно или два имени. |
#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 |
#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 |
#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 |
#vim /etc/shadow
|
#passwd useradd
]\Enter new UNIX password: Retype new UNIX password: passwd: пароль успешно обновлён |
#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 |
#usermod -L
|
#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 |
#usermod -U
|
#vim /etc/shadow
|
#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% |
#vim /etc/fstab
|
#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 |
#ps
PID TTY TIME CMD 23494 ttyp3 00:00:00 bash 24172 ttyp3 00:00:00 ps |
#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 |
#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 |
#ps -o cmd
CMD bash -i ps -o cmd |
#ps -o cmd,user
CMD USER bash -i root ps -o cmd,user root |
#ps -o cmd,user,cpu
CMD USER CPU bash -i root - ps -o cmd,user,cpu root - |
#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 |
#ps -o cmd,user,cpu,rss
CMD USER CPU RSS bash -i root - 1832 ps -o cmd,user,cpu,rss root - 972 |
#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 |
#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 |
[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
#!/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
[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
for1 for2 for3
#!/bin/sh set -x for Planet in Earth Sun Moon do echo $Planet done
#!/bin/sh for i in `seq 900 1000` do useradd -m user$i; echo user$i:password | chpasswd done
#!/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
#!/bin/bash echo "Нулевой позиционный параметр, или имя самого скрипта - $0" echo "Позиционный аргумент номер один - $1" echo "Позиционный аргумент номер два - $2" echo "Позиционный аргумент номер три - $3"
#!/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
#!/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
#!/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
#!/bin/bash A=0 while [ $A -lt 10 ] do A=$((A+1)) echo $A sleep 1 done
[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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.
Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
$ l s-l bash: l: command not found |
Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
$ test 5 -lt 4 |
Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
$ 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 |
Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
# id uid=0(root) gid=0(root) Gruppen=0(root) |
Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
$ vi ~/.bashrc
|
Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
$ patch ~/.bashrc |
Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.
Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.
Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.
Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора
Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.
Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.
Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:
$ whoami
user
$ #^ Интересно, кто я?в журнале это будет выглядеть так:
$ whoami
user
Интересно, кто я? |
Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:
$ whoami
user
$ cat > /dev/null #^ Интересно, кто я?
Программа whoami выводит имя пользователя, под которым мы зарегистрировались в системе. - Она не может ответить на вопрос о нашем назначении в этом мире.В журнале это будет выглядеть так:
$ whoami user
|
Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=
1 2 3 4Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.
LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008