/l3/users/01-04-2009/nt-ladm/debian1.unix.nt/root :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 :11 :12 :13 :14 :15 :16 :17 :18 |
|
#test 10 -lt 11 ; echo $?
0 |
#test 12
1 |
#test 12 -eq
[root@debian1:~]# test 12 -g 0 1 |
#test 11
0 |
#test 11 -eq 11
|
#A=1
|
#test $A -lt 2 ; echo $?
0 |
#test $A -g
1 |
#D=linux
|
#echo $D
linux |
#test $D = "linux" ; echo $?
0 |
#test $D = "l*
[root@debian1:~]# test $D = "linuxx 1 1 |
#test $D =
1 |
#test $D = l\
1 |
#test $D = "
1 |
#test $D = "lin
0 |
#test $D -z ; echo $?
bash: test: linux: unary operator expected 2 |
#test -z
1 |
#test -z $F
0 |
#echo $F
|
#[ 10 -lh 11 ] ; echo $?
bash: [: -lh: binary operator expected 2 |
#\
bash: [: -lh: binary operator expected 2 |
#\[ 10 -lh 11
bash: [: -lh: binary operator expected 2 |
#'[ 10 -lh 11 ]'
bash: [ 10 -lh 11 ]: command not found 127 |
#\[ 10 -lh 11 \
bash: [: -lh: binary operator expected 2 |
#\[ 10 -lt
0 |
#[ 13
1 |
#[ 13
1 |
#[ 10 -lt 11 ] && echo "Правда" || echo "Не правда" ; echo ЭВс
|
#[ 10 -lt 11 ] && echo "Правда" || echo "Не правда" ; echo ЭВс
|
#[ 13
" Правда Всё равно Не правда Всё равно |
#cd /tmp
|
#vim for1
--- /dev/null 2009-04-08 21:38:24.303537716 +0300 +++ for1 2009-04-10 19:53:10.000000000 +0300 @@ -0,0 +1,5 @@ +#!/bin/bash +for planet in Mars Sun Moon Earth +do +echo $planet +done |
#chmod +x for1
3 do$ 4 echo $planet$ 5 done$ ~ ~ ~ ~ ~ ~ ~ ... ~ ~ ~ ~ ~ ~ ~ ~ ~ "for1" 5L, 67C записано сь |
#./for1
Mars Sun Moon Earth |
#./for1
+ echo Mars Mars + for planet in Mars Sun Moon Earth + echo Sun Sun + for planet in Mars Sun Moon Earth + echo Moon Moon + for planet in Mars Sun Moon Earth + echo Earth Earth |
#./for1
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "for1" 6L, 76C записано сь + for planet in '"Mars Sun Moon Earth"' + echo Mars Sun Moon Earth Mars Sun Moon Earth |
#vim for1
--- /tmp/l3-saved-3937.7380.26306 2009-04-10 19:54:24.000000000 +0300 +++ for1 2009-04-10 19:54:30.000000000 +0300 @@ -1,5 +1,5 @@ #!/bin/bash -set -x +#set -x for planet in "Mars Sun Moon Earth" do echo $planet |
#seq 1 100
[root@debian1:tmp]# ./for1 Mars Sun Moon Earth 1 2 3 4 5 6 7 8 ... 91 92 93 94 95 96 97 98 99 100 |
#vim for2
--- /dev/null 2009-04-08 21:38:24.303537716 +0300 +++ for2 2009-04-10 19:55:09.000000000 +0300 @@ -0,0 +1,2 @@ +#!/bin/bash + |
#seq 1 100
1 2 3 4 5 6 7 8 9 10 ... 91 92 93 94 95 96 97 98 99 100 |
#chmod +x for2
~ for i in `seq 1 100`$ 3 do$ 4 useradd -m user$i; echo user$i:password | chpasswd$ 5 $ 6 done$ ~ ~ ~ ~ ~ ... ~ ~ ~ ~ ~ ~ ~ ~ ~ "for2" 6L, 99C записано сь |
#./for2
+ useradd -m user398 + echo user398:password + chpasswd + for i in '`seq 300 400`' + useradd -m user399 + echo user399:password + chpasswd + for i in '`seq 300 400`' + useradd -m user400 + echo user400:password + chpasswd |
#vim for2
|
#ssh 127.0.0.1 -l user400
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. RSA key fingerprint is 51:5b:32:d8:70:19:6d:04:c7:b4:11:49:13:74:dc:bc. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts. user400@127.0.0.1's password: Linux debiant 2.6.18-5-xen-686 #1 SMP Fri Jun 1 05:05:24 UTC 2007 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. user400@debian1:~$ pwd /home/user400 user400@debian1:~$ exit logout Connection to 127.0.0.1 closed. |
#vim /etc/default/useradd
|
#useradd -h
[root@debian1:tmp]# vim for2 useradd: invalid option -- 'h' Usage: useradd [options] LOGIN Options: -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 |
#useradd -h
[root@debian1:tmp]# useradd -h | less ...skipping... ~sage: useradd [options] LOGIN ~ ~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 ... -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 for3
--- /dev/null 2009-04-08 21:38:24.303537716 +0300 +++ for3 2009-04-10 19:59:54.000000000 +0300 @@ -0,0 +1,2 @@ +#!/bin/bash + |
#ls -lh /sbin/mount.
5 /sbin/mod$ 6 /sbin/mount.cifs"$ или каÑалога$ 7 for i in $FILES$$ 7 do $ 8 if [ ! -e "$i" ]$ 9 then echo "File $i not found";$ 10 continue$ 11 fi$ 12 $ 13 $ ~ ~ ~ ~ Ñ ~ ~ ~ ~ ~ "for3" 13L, 182C запиÑано ÑÑ ls: /sbin/mount.: ÐÐµÑ Ñакого Ñайла или каÑалога |
#ls -lh /sbin/mount.cifs
-rwsr-xr-x 1 root root 26K 2009-03-29 11:23 /sbin/mount.cifs |
#vim for3
--- /tmp/l3-saved-3937.28121.24774 2009-04-10 20:02:56.000000000 +0300 +++ for3 2009-04-10 20:03:54.000000000 +0300 @@ -10,4 +10,5 @@ then echo "File $i not found"; continue fi +ls -lh $i | awk '{print $8 " size: "$5}' |
#basename /sbin/mount.cifs
mount.cifs |
#whatis
mount.cifs (8) - mount using the Common Internet File System (CIFS) |
#vim for3
--- /tmp/l3-saved-3937.27831.24983 2009-04-10 20:04:28.000000000 +0300 +++ for3 2009-04-10 20:04:40.000000000 +0300 @@ -11,4 +11,5 @@ continue fi ls -lh $i | awk '{print $8 " size: "$5}' - +whatis `basename /sbin/mount.cifs` +done |
#chmod +x for3
|
#./for3
/usr/sbin/accessdb size: 28K mount.cifs (8) - mount using the Common Internet File System (CIFS) /usr/sbin/biosdecode size: 8,6K mount.cifs (8) - mount using the Common Internet File System (CIFS) /sbin/modinfo size: 11K mount.cifs (8) - mount using the Common Internet File System (CIFS) File /sbin/mod not found /sbin/mount.cifs size: 26K mount.cifs (8) - mount using the Common Internet File System (CIFS) |
#vim for3
--- /tmp/l3-saved-3937.5762.31230 2009-04-10 20:05:08.000000000 +0300 +++ for3 2009-04-10 20:05:17.000000000 +0300 @@ -11,5 +11,5 @@ continue fi ls -lh $i | awk '{print $8 " size: "$5}' -whatis `basename /sbin/mount.cifs` +whatis `basename $i` done |
#./for3
/usr/sbin/accessdb size: 28K accessdb (8) - dumps the content of a man-db database in a human readable format. /usr/sbin/biosdecode size: 8,6K biosdecode (8) - BIOS information decoder /sbin/modinfo size: 11K modinfo (8) - program to show information about a Linux Kernel module File /sbin/mod not found /sbin/mount.cifs size: 26K mount.cifs (8) - mount using the Common Internet File System (CIFS) |
#biosdecode
# biosdecode 2.8 /dev/mem: mmap: Bad address |
#ssh 10.0.17.1
Connection to 10.0.17.1 closed. |
#./for3
/usr/sbin/accessdb size: 28K accessdb (8) - dumps the content of a man-db database in a human readable format. /usr/sbin/biosdecode size: 8,6K biosdecode (8) - BIOS information decoder /sbin/modinfo size: 11K modinfo (8) - program to show information about a Linux Kernel module File /sbin/mod not found /sbin/mount.cifs size: 26K mount.cifs (8) - mount using the Common Internet File System (CIFS) |
#vim for3
|
#cat for1
#!/bin/bash #set -x for planet in "Mars Sun Moon Earth" do echo $planet done |
#cat for2
#!/bin/bash set -x for i in `seq 300 400` do useradd -m user$i; echo user$i:password | chpasswd done |
#cat for3
#!/bin/bash FILES="/usr/sbin/accessdb /usr/sbin/biosdecode /sbin/modinfo /sbin/mod /sbin/mount.cifs" for i in $FILES do if [ ! -e "$i" ] then echo "File $i not found"; continue fi ls -lh $i | awk '{print $8 " size: "$5}' whatis `basename $i` done |
#vim case1
|
#arch
i686 |
#vim case1
--- /dev/null 2009-04-08 21:38:24.303537716 +0300 +++ case1 2009-04-10 20:08:14.000000000 +0300 @@ -0,0 +1,2 @@ +#!/bin/bash +case |
#chmod a+x case1
~ i386) echo "Computer based on 80386 processor" ;;$ 3 i486) echo "Computer based on 80486 processor" ;;$ 4 i586) echo "Computer based on Pentium processor" ;;$ 5 i686) echo "Computer based on Pentium2 processor" ;;$ 6 *) echo "Computer based on unknown type of processor" ;;$ 7 esac$ 9 esac$ ~ ~ ~ ... ~ ~ ~ ~ ~ ~ ~ ~ ~ "case1" 8L, 294C записано сь |
#./case1
Computer based on Pentium2 processor |
#vim case1
--- /tmp/l3-saved-3937.30495.3714 2009-04-10 20:11:04.000000000 +0300 +++ case1 2009-04-10 20:11:10.000000000 +0300 @@ -1,4 +1,5 @@ #!/bin/bash +set -x case `arch` in i386) echo "Computer based on 80386 processor" ;; i486) echo "Computer based on 80486 processor" ;; |
#./case1
+ case `arch` in ++ arch + echo 'Computer based on Pentium2 processor' Computer based on Pentium2 processor |
#vim case2
--- /dev/null 2009-04-08 21:38:24.303537716 +0300 +++ case2 2009-04-10 20:11:49.000000000 +0300 @@ -0,0 +1,2 @@ +#!/bin/bash + |
#cmod +x case2
4 [a-z] ) echo "This is a latter" ;;$ 5 [A-Z] 6 [0-9] ) echo "This is a digit" ;;$ 7 * ) echo "This is a punct" ;;$ $ 9 esac$ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "case2" 9L, 222C записано сь bash: cmod: command not found |
#ch
|
#./case2
Press Any Key and then return df This is a punct |
#./case2
Press Any Key and then return d This is a latter |
#./case2
Press Any Key and then return H This is a latter |
#vim case2
--- /tmp/l3-saved-3937.26666.13640 2009-04-10 20:14:31.000000000 +0300 +++ case2 2009-04-10 20:15:15.000000000 +0300 @@ -1,4 +1,6 @@ #!/bin/bash +while [ "$KEYPRESS" != "X" ] +do echo "Press Any Key and then return" read KEYPRESS case "$KEYPRESS" in @@ -7,3 +9,4 @@ [0-9] ) echo "This is a digit" ;; * ) echo "This is a punct" ;; esac +done |
#vim select1
--- /dev/null 2009-04-08 21:38:24.303537716 +0300 +++ select1 2009-04-10 20:16:32.000000000 +0300 @@ -0,0 +1,2 @@ +#!/bin/sh + |
#chmod +x select1
~ select os in "Mac OSX" Windows Linux FreeBSD Other$ 3 do$ 4 echo "You likely OS is $os"$ 5 break$ 6 done$ 7 $ ~ ~ ~ ~ ... ~ ~ ~ ~ ~ ~ ~ ~ ~ "select1" 7L, 140C записано сь |
#A=1
[root@debian1:tmp]# ./select1 1) Mac OSX 2) Windows 3) Linux 4) FreeBSD 5) Other Please, choise you likely OS: 2 You likely OS is Windows |
#while [ $A -lt 10 ] ; do A=$((A+1))
> echo $A > done 2 3 4 5 6 7 8 9 10 |
#while [ $A -lt 10 ] ; do A=$((A+1))
|
#while [ $A -lt 10 ] ; do A=$((A+1)) ;
|
#while [ $A -lt 10 ] ; do A=$((A+1))
|
#A=0
|
#while [ $A -lt 10 ] ; do A=$((A+1)) echo $A; done
0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0 |
#vim while1
--- /tmp/l3-saved-3937.23695.14359 2009-04-10 20:21:23.000000000 +0300 +++ while1 2009-04-10 20:22:57.000000000 +0300 @@ -1,2 +1,8 @@ #!/bin/sh - +while [ "$i" != "end" ] +do +echo "Plese, give the value for variable #1 (or end to exit) " +read i +echo "variable #1 is $i" +done +exit 0 |
#chmod a+x while1
|
#cat while1
[root@debian1:tmp]# ./while1 Plese, give the value for variable #1 (or end to exit) ffff variable #1 is ffff Plese, give the value for variable #1 (or end to exit) erg variable #1 is erg Plese, give the value for variable #1 (or end to exit) sdf variable #1 is sdf ... end variable #1 is end #!/bin/sh while [ "$i" != "end" ] do echo "Plese, give the value for variable #1 (or end to exit) " read i echo "variable #1 is $i" done exit 0 |
#cat case
case1 case2 |
#cat case1
#!/bin/bash set -x case `arch` in i386) echo "Computer based on 80386 processor" ;; i486) echo "Computer based on 80486 processor" ;; i586) echo "Computer based on Pentium processor" ;; i686) echo "Computer based on Pentium2 processor" ;; *) echo "Computer based on unknown type of processor" ;; esac |
#cat case2
#!/bin/bash while [ "$KEYPRESS" != "X" ] do echo "Press Any Key and then return" read KEYPRESS case "$KEYPRESS" in [a-z] ) echo "This is a latter" ;; [A-Z] ) echo "This is a latter" ;; [0-9] ) echo "This is a digit" ;; * ) echo "This is a punct" ;; esac done |
#cat select1
#!/bin/sh PS3="Please, choise you likely OS: " select os in "Mac OSX" Windows Linux FreeBSD Other do echo "You likely OS is $os" break done |
#cat while1
#!/bin/sh while [ "$i" != "end" ] do echo "Plese, give the value for variable #1 (or end to exit) " read i echo "variable #1 is $i" done exit 0 |
#sh while1
Plese, give the value for variable #1 (or end to exit) s variable #1 is s Plese, give the value for variable #1 (or end to exit) sd variable #1 is sd Plese, give the value for variable #1 (or end to exit) end variable #1 is end |
case1 case2
#!/bin/bash set -x case `arch` in i386) echo "Computer based on 80386 processor" ;; i486) echo "Computer based on 80486 processor" ;; i586) echo "Computer based on Pentium processor" ;; i686) echo "Computer based on Pentium2 processor" ;; *) echo "Computer based on unknown type of processor" ;; esac
#!/bin/bash while [ "$KEYPRESS" != "X" ] do echo "Press Any Key and then return" read KEYPRESS case "$KEYPRESS" in [a-z] ) echo "This is a latter" ;; [A-Z] ) echo "This is a latter" ;; [0-9] ) echo "This is a digit" ;; * ) echo "This is a punct" ;; esac done
#!/bin/bash #set -x for planet in "Mars Sun Moon Earth" do echo $planet done
#!/bin/bash set -x for i in `seq 300 400` do useradd -m user$i; echo user$i:password | chpasswd done
#!/bin/bash FILES="/usr/sbin/accessdb /usr/sbin/biosdecode /sbin/modinfo /sbin/mod /sbin/mount.cifs" for i in $FILES do if [ ! -e "$i" ] then echo "File $i not found"; continue fi ls -lh $i | awk '{print $8 " size: "$5}' whatis `basename $i` done
#!/bin/sh PS3="Please, choise you likely OS: " select os in "Mac OSX" Windows Linux FreeBSD Other do echo "You likely OS is $os" break done
#!/bin/sh while [ "$i" != "end" ] do echo "Plese, give the value for variable #1 (or end to exit) " read i echo "variable #1 is $i" done exit 0
Время первой команды журнала | 19:26:22 2009- 4-10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 20:24:09 2009- 4-10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 13.86 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 0.99 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 0.96 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.75 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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