/l3/users/19-01-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 :19 |
|
#./case1
5 i586) echo "Computer based on Pentium processor" ;;$ 6 #i686) echo "Computer based on Pentium2 processor" ;;$ 7 *) echo "Computer based on unknown processor" ;;$ 8 esac$ ~ ~ ~ ~ ~ ~ ... ~ ~ ~ ~ ~ ~ ~ ~ "./case1" 8L, 289C записано сь Computer based on unknown processor |
#vim ./case1
|
#uname -a
Linux debian1 2.6.18-5-xen-686 #1 SMP Fri Jun 1 05:05:24 UTC 2007 i686 GNU/Linux |
#uname -s
Linux |
#uname -m
[root@debian1:tmp]# uname -r 2.6.18-5-xen-686 i686 |
#uname
Linux |
#uname -m
i686 |
#vim ./case1
--- /tmp/l3-saved-1341.14856.32241 2009-01-22 12:51:42.000000000 +0200 +++ ./case1 2009-01-22 12:51:46.000000000 +0200 @@ -3,6 +3,6 @@ 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" ;; +i686) echo "Computer based on Pentium2 processor" ;; *) echo "Computer based on unknown processor" ;; esac |
#cat ./case1
#!/bin/sh case `uname -m` 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 processor" ;; esac |
#top
top - 12:51:54 up 1:13, 8 users, load average: 0.15, 0.14, 0.08 Tasks: 72 total, 1 running, 71 sleeping, 0 stopped, 0 zombie Cpu(s): 8.0%us, 0.3%sy, 0.0%ni, 91.3%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 524436k total, 215604k used, 308832k free, 37708k buffers PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND Swap: 0k total, 0k used, 0k free, 71892k cached 1 root 15 0 1956 644 552 S 0.0 0.1 0:00.04 init 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 3 root 39 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0 ... 1232 root 18 0 1588 492 424 S 0.0 0.1 0:00.00 getty 1233 root 18 0 1584 492 424 S 0.0 0.1 0:00.00 getty 1234 root 18 0 1588 496 424 S 0.0 0.1 0:00.00 getty 1235 root 18 0 1588 496 424 S 0.0 0.1 0:00.00 getty 1248 root 20 0 28548 23m 1412 S 0.0 4.5 5:34.18 l3-agent 1306 root 21 0 6092 1564 808 S 0.0 0.3 0:00.63 screen 1307 root 20 0 4712 680 556 S 0.0 0.1 0:00.00 script 1340 root 20 0 4840 472 336 S 0.0 0.1 0:00.05 script 1341 root 15 0 6120 2096 1392 S 0.0 0.4 0:00.66 bash 1385 root 20 0 7712 2352 1916 S 0.0 0.4 0:00.12 sshd |
#ps
ps ps2pdf ps2pdf14 ps2ps2 psfaddtable psfxtable pstruct ps2ascii ps2pdf12 ps2pdfwr ps2txt psfgettable pstree ps2epsi ps2pdf13 ps2ps psed psfstriptable pstree.x11 |
#pstree | less
|
#vim case2
--- /tmp/l3-saved-1341.25163.19890 2009-01-22 12:52:37.000000000 +0200 +++ case2 2009-01-22 12:54:04.000000000 +0200 @@ -1 +1,4 @@ #!/bin/sh +while [ "$Keypress" != "X" ] +do +echo |
#for i in seq `1 2` ; do echo $i; od
> |
#for i in seq `1 2` ; enod echo $i; done
bash: syntax error near unexpected token `enod' |
#chmod +x case2
|
#vim case2
--- /tmp/l3-saved-1341.25191.21667 2009-01-22 12:58:08.000000000 +0200 +++ case2 2009-01-22 12:58:22.000000000 +0200 @@ -3,7 +3,7 @@ do echo "Press any key and then enter" read Keypress -case "$Keyprees" in +case "$Keypress" in [a-z] ) echo "This is the lower latter" ;; [A-Z] ) echo "This is the upper latter" ;; [0-9] ) echo "This is the digit" ;; |
#vim case2
--- /tmp/l3-saved-1341.9236.27367 2009-01-22 12:58:34.000000000 +0200 +++ case2 2009-01-22 12:58:45.000000000 +0200 @@ -4,8 +4,8 @@ echo "Press any key and then enter" read Keypress case "$Keypress" in -[a-z] ) echo "This is the lower latter" ;; -[A-Z] ) echo "This is the upper latter" ;; +[a-z] ) echo "This is the latter" ;; +[A-Z] ) echo "This is the latter" ;; [0-9] ) echo "This is the digit" ;; * ) echo "This is the punct " ;; esac |
#vim case2
|
#vim case2
|
#cat case*
#!/bin/sh case `uname -m` 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 processor" ;; esac #!/bin/sh while [ "$Keypress" != "X" ] do echo "Press any key and then enter" read Keypress case "$Keypress" in [a-z] ) echo "This is the latter" ;; [A-Z] ) echo "This is the latter" ;; [0-9] ) echo "This is the digit" ;; * ) echo "This is the punct " ;; esac done |
#ls
1 case1 case2 for1 for2 for3 gconfd-user orbit-user script1 sh-thd-1232623552 ssh-AMrNMg1706 |
#cat case*
#!/bin/sh case `uname -m` 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 processor" ;; esac #!/bin/sh while [ "$Keypress" != "X" ] do echo "Press any key and then enter" read Keypress case "$Keypress" in [a-z] ) echo "This is the latter" ;; [A-Z] ) echo "This is the latter" ;; [0-9] ) echo "This is the digit" ;; * ) echo "This is the punct " ;; esac done |
#vim select1
--- /tmp/l3-saved-1341.26910.32302 2009-01-22 14:08:31.000000000 +0200 +++ select1 2009-01-22 14:10:55.000000000 +0200 @@ -1,2 +1,6 @@ #!/bin/sh - +PS3='Please, choise You Lovely OS: ' +select os in "Mac OSX" Linux FreeBSD Windows +do +echo "You lovely OS is $os." +done |
#chmod +x select1
3 select os in "Mac OSX" Linux FreeBSD Windows$ 4 do$ 5 echo "You lovely OS is $os."$ 6 done$ ~ ~ ~ ~ ~ ~ ... ~ ~ ~ ~ ~ ~ ~ ~ ~ "select1" 6L, 129C записано сь |
#cat select1
#!/bin/sh PS3='Please, choise You Lovely OS: ' select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." done |
#./select1
1) Mac OSX 2) Linux 3) FreeBSD 4) Windows Please, choise You Lovely OS: 4 You lovely OS is Windows. Please, choise You Lovely OS: |
#./select1
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ... ~ ~ ~ "select1" 7L, 135C записано сь 1) Mac OSX 2) Linux 3) FreeBSD 4) Windows Please, choise You Lovely OS: 1 You lovely OS is Mac OSX. |
#cat ./select1
#!/bin/sh PS3='Please, choise You Lovely OS: ' select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." break done |
#vim select1
--- /tmp/l3-saved-1341.35.24578 2009-01-22 14:13:44.000000000 +0200 +++ select1 2009-01-22 14:14:04.000000000 +0200 @@ -3,5 +3,6 @@ select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." +if [ "$os" - break done |
#man test
|
#./select1
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ... ~ "select1" 10L, 168C записано сь 1) Mac OSX 2) Linux 3) FreeBSD 4) Windows Please, choise You Lovely OS: 1 You lovely OS is Mac OSX. Please, choise You Lovely OS: 2 You lovely OS is Linux. |
#cat ./select1
#!/bin/sh PS3='Please, choise You Lovely OS: ' select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." if [ "$os" = "Linux" ] then break fi done |
#cat ./select1
#!/bin/sh PS3='Please, choise You Lovely OS: ' select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." if [ "$os" = "Linux" ] then break fi done |
#vim while1
--- /dev/null 2009-01-22 11:38:12.390696881 +0200 +++ while1 2009-01-22 14:16:47.000000000 +0200 @@ -0,0 +1 @@ +#!/bin/sh |
#vim while1
--- /tmp/l3-saved-1341.771.16164 2009-01-22 14:17:59.000000000 +0200 +++ while1 2009-01-22 14:22:39.000000000 +0200 @@ -1 +1,8 @@ #!/bin/sh +A=0 +while [ $A -lt 10 ] +do +A=$((A+1)) +echo $A +sleep 2 +done |
#vim while1
|
#./while1
[root@debian1:tmp]# chmod +x while1 1 2 3 4 5 6 7 8 9 10 |
#cat while1
#!/bin/sh A=0 while [ $A -lt 10 ] do A=$((A+1)) echo $A sleep 2 done |
#cp while1 while2
|
#vim while2
--- /tmp/l3-saved-1341.24397.22759 2009-01-22 14:24:09.000000000 +0200 +++ while2 2009-01-22 14:24:29.000000000 +0200 @@ -1,8 +1,8 @@ #!/bin/sh -A=0 -while [ $A -lt 10 ] +A=10 +while [ $A -gt 0 ] do -A=$((A+1)) +A=$((A-1)) echo $A sleep 2 done |
#cat ./while2
[root@debian1:tmp]# ./while2 9 8 7 6 5 4 3 2 1 0 #!/bin/sh A=10 while [ $A -gt 0 ] do A=$((A-1)) echo $A sleep 2 done |
#cat ./while1
#!/bin/sh A=0 while [ $A -lt 10 ] do A=$((A+1)) echo $A sleep 2 done |
#vim while3
|
#vim while3
|
#chmod +x while3
|
#./while3
Please, give the value of variable #1 (or end to Exit) r variable #1 = r Please, give the value of variable #1 (or end to Exit) ` variable #1 = ` Please, give the value of variable #1 (or end to Exit) 222 variable #1 = 222 Please, give the value of variable #1 (or end to Exit) end variable #1 = end |
#whois nt.ua
bash: whois: command not found |
#apt-get install whois
Чтение списков пакетов... Готово Построение дерева зависимостей... Готово Будут установлены следующие дополнительные пакеты: libidn11 НОВЫЕ пакеты, которые будут установлены: libidn11 whois обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 55 пакетов не обновлено. Необходимо скачать 163kБ архивов. После распаковки объем занятого дискового пространства возрастёт на 594kB. Хотите продолжить [Д/н]? Получено:1 http://debian.org.ua etch/main libidn11 0.6.5-1 [116kB] Получено:2 http://debian.org.ua etch/main whois 4.7.20 [47,7kB] Получено 163kB за 0s (244kB/c) Выбор ранее не выбранного пакета libidn11. (Чтение базы данных... на данный момент установлено 24639 файлов и каталогов.) Распаковывается пакет libidn11 (из файла .../libidn11_0.6.5-1_i386.deb)... Выбор ранее не выбранного пакета whois. Распаковывается пакет whois (из файла .../archives/whois_4.7.20_i386.deb)... Настраивается пакет libidn11 (0.6.5-1) ... Настраивается пакет whois (4.7.20) ... localepurge: Disk space freed in /usr/share/locale: 72K |
#whois nt.ua | tail -20
[root@debian1:tmp]# whois nt.ua % This is the Ukrainian Whois query server #B. % Rights restricted by copyright. % % % .UA whois % Domain Record: % ============= domain: nt.ua admin-c: SV33-UANIC tech-c: CHE14-UANIC ... nic-handle: CHE14-UANIC person: Sergey Cherepenin address: Borovikovskogo bvd, 16 address: 36023 POLTAVA address: UA e-mail: sergey.cherepenin@gmail.com mnt-by: NONE changed: CHE14-UANIC 20070827154353 source: UANIC % % .UA whois |
#whois nt.ua | tail -17 > /tmp/my_contact
[root@debian1:tmp]# whois nt.ua | tail -17 % Technical Contact: % ================= nic-handle: CHE14-UANIC person: Sergey Cherepenin address: Borovikovskogo bvd, 16 address: 36023 POLTAVA address: UA e-mail: sergey.cherepenin@gmail.com mnt-by: NONE changed: CHE14-UANIC 20070827154353 source: UANIC % % .UA whois |
#cat /tmp/my_contact
% Technical Contact: % ================= nic-handle: CHE14-UANIC person: Sergey Cherepenin address: Borovikovskogo bvd, 16 address: 36023 POLTAVA address: UA e-mail: sergey.cherepenin@gmail.com mnt-by: NONE changed: CHE14-UANIC 20070827154353 source: UANIC % % .UA whois |
#cp no_file_with_this_name /tmp
cp: невозможно выполнить stat для `no_file_with_this_name': No such file or directory |
#echo $?
1 |
#touch
|
#echo $?
[root@debian1:tmp]# cp no_file_with_this_name /tmp cp: `no_file_with_this_name' и `/tmp/no_file_with_this_name' - один и тот же файл 1 |
#cp no_file_with_this_name /tmp/noname
|
#echo $?
0 |
#tesr 5 -gt 1
bash: tesr: command not found |
#test
|
#echo $?
0 |
#test 5 -l
|
#test -z "$STRING
[root@debian1:tmp]# echo $? 1 |
#echo $?
0 |
#test --help
|
#test "$P" !=print
BASH(1) BASH(1) NAMEÑеÑоÑмаÑиÑование bash(1), подождиÑе... bash - GNU Bourne-Again SHell SYNOPSIS bash [options] [file] COPYRIGHT Bash is Copyright (C) 1989-2005 by the Free Software Foundation, Inc. DESCRIPTION Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorâ porates useful features from the Korn and C shells (ksh and csh). ... -r fileelow) are not inherited unless the function has been given the trace attribute (see the description of the declare builtin below) or $include /etc/inputrcd is readable.led with the set builtin (in which case all functions inherit the DEBUG and RETURN traps).tution -s fileile) can be replaced by the equivalent but faster $(< file).t characters on an input line before bash exits. If the variable exists Searching True if file exists and has a size greater than zero.al builtin command. Ordinarily, variables and their values are shared between Readline provides commands for searching through the command history (see HISTORY below) for lines containing a specified string. Therehe are two search modes: incremental and non-incremental.tes the command substitution. When using the $(command) form, all characters between True if file exists and its set-user-id bit is set.he function completes and execution resumes with the next command after the funcâ Incremental searches begin before the user has finished typing the search string. As each character of the search string is typed, readâ line displays the next entry from the history matching the string typed so far. An incremental search requires only as many characters as needed to find the desired history entry. The characters present in the value of the isearch-terminators variable are used to terminate an |
#test "$P" !=
|
#echo $?
0 |
#test -e /etc/motd
|
#echo $?
0 |
#test -e /etc/motd; echo $?
0 |
#test -d /usr/local/bin
0 |
#test -r /etc/shadow
0 |
#test -k /tmp
|
#test -k /tmp; echo $?
0 |
#test -w /etc/passwd
0 |
#x=5
|
#!/bin/sh case `uname -m` 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 processor" ;; esac
#!/bin/sh PS3='Please, choise You Lovely OS: ' select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." if [ "$os" = "Linux" ] then break fi done
#!/bin/sh A=0 while [ $A -lt 10 ] do A=$((A+1)) echo $A sleep 2 done
[root@debian1:tmp]# ./while2 9 8 7 6 5 4 3 2 1 0 #!/bin/sh A=10 while [ $A -gt 0 ] do A=$((A-1)) echo $A sleep 2 done
% Technical Contact: % ================= nic-handle: CHE14-UANIC person: Sergey Cherepenin address: Borovikovskogo bvd, 16 address: 36023 POLTAVA address: UA e-mail: sergey.cherepenin@gmail.com mnt-by: NONE changed: CHE14-UANIC 20070827154353 source: UANIC % % .UA whois
#!/bin/sh case `uname -m` 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 processor" ;; esac #!/bin/sh while [ "$Keypress" != "X" ] do echo "Press any key and then enter" read Keypress case "$Keypress" in [a-z] ) echo "This is the latter" ;; [A-Z] ) echo "This is the latter" ;; [0-9] ) echo "This is the digit" ;; * ) echo "This is the punct " ;; esac done
#!/bin/sh PS3='Please, choise You Lovely OS: ' select os in "Mac OSX" Linux FreeBSD Windows do echo "You lovely OS is $os." done
#!/bin/sh A=0 while [ $A -lt 10 ] do A=$((A+1)) echo $A sleep 2 done
Время первой команды журнала | 12:50:57 2009- 1-22 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 14:55:52 2009- 1-22 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 77 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 10.39 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 2.60 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 0.99 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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