/l3/users/07-09-2009/nt-fbsdadm/fbsd5.net.nt/root :1 :2 :3 :4 |
|
#ls -l /tmp/
total 126 drwxrwxrwt 2 root wheel 512 Sep 8 14:12 .ICE-unix -r--r--r-- 1 root wheel 11 Sep 7 05:31 .X0-lock drwxrwxrwt 2 root wheel 512 Sep 10 12:24 .X11-unix drwxrwxrwt 2 root wheel 512 Sep 7 05:31 .XIM-unix -rw------- 1 root wheel 167 Sep 7 10:15 .Xauth7iu3l8 -rw------- 1 root wheel 49 Jul 24 16:10 .Xauth7nmoqG -rw------- 1 user wheel 49 Jul 24 16:03 .Xauth8A9uGq -rw------- 1 root wheel 49 Jul 24 15:54 .XauthCuihBu -rw------- 1 user wheel 49 Jul 24 16:12 .XauthEWHAR4 ... drwxr-xr-x 2 root wheel 512 Mar 28 2008 lilalo-install-temp-1212 drwxr-xr-x 2 root wheel 512 Mar 28 2008 lilalo-install-temp-1241 drwxr-xr-x 2 root wheel 512 Sep 10 15:00 noexit -rw-r--r-- 1 root wheel 10058 Sep 11 15:08 pstree-2.32.tar.gz -rw-r--r-- 1 user wheel 1308 Sep 10 14:50 pw -rw-r--r-- 1 user wheel 799 Sep 10 12:17 pw-useradd_help -rw-r--r-- 1 user wheel 34 Sep 9 14:23 test -rw-r--r-- 1 user wheel 28 Sep 9 14:43 test2 -rw-r--r-- 1 root wheel 0 Sep 10 15:26 vova11111 -rw-r--r-- 1 user wheel 0 Sep 8 15:14 ~bad~name~ |
#ls -l /tmp/pstree-2.32.tar.gz
-rw-r--r-- 1 root wheel 10058 Sep 11 15:08 /tmp/pstree-2.32.tar.gz |
#lynx http://freshmeat.net
|
#cd
|
#lynx http://freshmeat.net
|
#ls -l
total 1860 -rw------- 1 root wheel 467 Sep 7 10:16 .ICEauthority drwx------ 2 root wheel 512 Jul 24 16:12 .Trash -rw------- 1 root wheel 0 Sep 7 10:15 .Xauthority -rw------- 1 root wheel 11146 Sep 11 14:32 .bash_history -rw-r--r-- 1 root wheel 19 Jul 24 19:40 .bash_profile -rw-r--r-- 1 root wheel 38 Jul 24 19:40 .bashrc drwx------ 3 root wheel 512 Jul 24 16:10 .config -rw-r--r-- 2 root wheel 801 Jan 16 2008 .cshrc drwx------ 4 root wheel 512 Sep 7 10:15 .gconf ... drwxr-xr-x 2 root wheel 512 Jul 24 16:11 Desktop -rw-r--r-- 1 root wheel 15189 Sep 11 15:11 cowsay-3.03.tar.gz -rw-r--r-- 1 root wheel 0 Sep 10 15:02 files drwxr-xr-x 2 root wheel 512 Sep 10 15:30 filesvova -rw-r--r-- 1 root wheel 5160 Mar 28 2008 install -rw-r--r-- 1 root wheel 1714374 Sep 7 11:35 lynx-2.8.7d7.tbz -rw------- 1 root wheel 54239 Jul 24 19:01 mbox -rw-r--r-- 1 root wheel 0 Jul 24 16:12 nautilus-debug-log.txt -rwxr-xr-x 1 root wheel 727 Sep 7 05:30 prepare-freebsd.sh drwxr-xr-x 2 root wheel 512 Sep 10 15:05 tmp |
#ls -l cowsay-3.03.tar.gz
-rw-r--r-- 1 root wheel 15189 Sep 11 15:11 cowsay-3.03.tar.gz |
#date
Fri Sep 11 15:12:12 EEST 2009 |
#tar xvzf cowsay-3.03.tar.gz
x cowsay-3.03/ChangeLog x cowsay-3.03/INSTALL x cowsay-3.03/LICENSE x cowsay-3.03/MANIFEST x cowsay-3.03/README x cowsay-3.03/Wrap.pm.diff x cowsay-3.03/install.sh x cowsay-3.03/pgp_public_key.txt x cowsay-3.03/cowsay x cowsay-3.03/cowsay.1 ... x cowsay-3.03/cows/surgery.cow x cowsay-3.03/cows/telebears.cow x cowsay-3.03/cows/three-eyes.cow x cowsay-3.03/cows/turkey.cow x cowsay-3.03/cows/turtle.cow x cowsay-3.03/cows/tux.cow x cowsay-3.03/cows/udder.cow x cowsay-3.03/cows/vader-koala.cow x cowsay-3.03/cows/www.cow x cowsay-3.03/cows/vader.cow |
#cd cowsay-3.03
|
#ls
ChangeLog MANIFEST cows install.sh INSTALL README cowsay pgp_public_key.txt LICENSE Wrap.pm.diff cowsay.1 |
#vim README
|
# 3 ===========
|
# 3 =================
55 56 echo Now I need an installation prefix. I will use /usr/local unless 57 printf "you give me a better idea here: " 58 if [ -n "$backdoor" ]; then 59 prefix=$backdoor 60 printf "%s (specified on command line)\n" $prefix 61 else 62 read prefix 63 fi 64 65 PREFIX=${prefix:-/usr/local} 66 67 echo Okay, time to install this puppy. 68 69 echo s,%BANGPERL%,!$usethisperl,\; > install.pl 70 echo s,%PREFIX%,$PREFIX,\; >> install.pl 71 set -x 72 mkdir -p $PREFIX/bin || (mkdir $PREFIX; mkdir $PREFIX/bin) 73 $usethisperl -p install.pl cowsay > $PREFIX/bin/cowsay |
#ls
ChangeLog MANIFEST cows install.sh INSTALL README cowsay pgp_public_key.txt LICENSE Wrap.pm.diff cowsay.1 |
#chmod +x ./install.sh
|
#./install.sh
=================== cowsay Installation =================== Searching for useful perl executables... Found perl in /usr/bin/perl Found perl in /usr/bin/perl5 Found perl in /usr/local/bin/perl Found perl in /usr/local/bin/perl5 Found perl in /usr/local/bin/perl5.8.8 Found perl in /usr/X11R6/bin/perl ... x cows/turkey.cow x cows/turtle.cow x cows/tux.cow x cows/udder.cow x cows/vader-koala.cow x cows/www.cow x cows/vader.cow + set +x Okay, let us see if the install actually worked. Installation complete! Enjoy the cows! |
#co
co colldef comcontrol compgen composeglyphs conscontrol cowsay col colrm comm compile_et compress continue cowthink colcrt column command complete config corrupt_mpeg2 |
#cows
cows cowsay |
#cowsay
test ______ < test > ------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || |
#pstree
bash: pstree: command not found |
#lynx http://freshmeat.net
|
#cd
|
#ls -l pstree-2.32.tar.gz
-rw-r--r-- 1 root wheel 10058 Sep 11 15:14 pstree-2.32.tar.gz |
#tar xvzf pstree-2.32.tar.gz
x README x pstree.c |
#vim README
|
# 3 Introduction:
46 # define PSCMD "ps -eko uid,pid,ppid,pgid,thcount,args" 47 # define PSFORMAT "%ld %ld %ld %ld %ld %[^\n]" 48 # define PSVARS &P[i].uid, &P[i].pid, &P[i].ppid, &P[i].pgid, &P[i].thcount, P[i].cmd 49 # define PSVARSN 6 50 /************************************************************************/ 51 #elif defined(__linux) || (defined __alpha && defined(_SYSTYPE_BSD) || defined (Tru64)) 52 /* TRU64 contributed by Frank Parkin <fparki AT acxiom.co.uk> 53 */ 54 # ifdef __linux 55 # define USE_GetProcessesDirect 56 # include <glob.h> 57 # include <sys/stat.h> 58 # endif 59 # define UID2USER 60 # define HAS_PGID 61 # define PSCMD "ps -eo uid,pid,ppid,pgid,args" 62 # define PSFORMAT "%ld %ld %ld %ld %[^\n]" 63 # define PSVARS &P[i].uid, &P[i].pid, &P[i].ppid, &P[i].pgid, P[i].cmd 64 # define PSVARSN 5 |
#vim README
|
# 3 Introduction:
gcc gccmakedep |
#gcc -O o pstree pstree.c
gcc: o: No such file or directory gcc: pstree: No such file or directory |
#gcc -O -o pstree pstree.c
|
#file pstree
pstree: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 6.3, dynamically linked (uses shared libs), not stripped |
#./pstree
-+= 00001 root /sbin/init -- |--= 00151 root adjkerntz -i |--= 00625 root /usr/sbin/moused -p /dev/ums0 -t auto -I /var/run/moused.ums0.pid |--= 00700 root /sbin/devd |--= 00771 root /usr/sbin/syslogd -s |--= 00830 root /usr/sbin/usbd |--= 00837 root /usr/sbin/moused -p /dev/psm0 -t auto |-+= 00926 root /usr/sbin/sshd | \-+= 94444 root sshd: user [priv] (sshd) | \-+- 94447 user sshd: user@ttyp1 (sshd) ... |--= 57820 user l3-agent (perl5.8.8) |--= 62073 root sendmail: accepting connections (sendmail) |--= 00983 root /usr/libexec/getty Pc ttyv0 |--= 00984 root /usr/libexec/getty Pc ttyv1 |--= 00985 root /usr/libexec/getty Pc ttyv2 |--= 00986 root /usr/libexec/getty Pc ttyv3 |--= 00987 root /usr/libexec/getty Pc ttyv4 |--= 00988 root /usr/libexec/getty Pc ttyv5 |--= 00989 root /usr/libexec/getty Pc ttyv6 \--= 00990 root /usr/libexec/getty Pc ttyv7 |
#cp ./pstree /bin
|
#pstree
-+= 00001 root /sbin/init -- |--= 00151 root adjkerntz -i |--= 00625 root /usr/sbin/moused -p /dev/ums0 -t auto -I /var/run/moused.ums0.pid |--= 00700 root /sbin/devd |--= 00771 root /usr/sbin/syslogd -s |--= 00830 root /usr/sbin/usbd |--= 00837 root /usr/sbin/moused -p /dev/psm0 -t auto |-+= 00926 root /usr/sbin/sshd | \-+= 94444 root sshd: user [priv] (sshd) | \-+- 94447 user sshd: user@ttyp1 (sshd) ... |--= 57820 user l3-agent (perl5.8.8) |--= 62073 root sendmail: accepting connections (sendmail) |--= 00983 root /usr/libexec/getty Pc ttyv0 |--= 00984 root /usr/libexec/getty Pc ttyv1 |--= 00985 root /usr/libexec/getty Pc ttyv2 |--= 00986 root /usr/libexec/getty Pc ttyv3 |--= 00987 root /usr/libexec/getty Pc ttyv4 |--= 00988 root /usr/libexec/getty Pc ttyv5 |--= 00989 root /usr/libexec/getty Pc ttyv6 \--= 00990 root /usr/libexec/getty Pc ttyv7 |
#ipfw
usage: ipfw [options] do "ipfw -h" or see ipfw manpage for details |
#ipfw -list
ipfw: illegal option -- l usage: ipfw [options] do "ipfw -h" or see ipfw manpage for details |
#ipfw show
ipfw: getsockopt(IP_FW_GET): Protocol not available |
#find /boot -name ipfw\*
/boot/kernel/ipfw.ko /boot/GENERIC/ipfw.ko /boot/kernel.old/ipfw.ko |
#file /boot/kernel/ipfw.ko
/boot/kernel/ipfw.ko: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), not stripped |
#kldstat
Id Refs Address Size Name 1 5 0xc0400000 7b2d2c kernel 2 1 0xc0bb3000 5c304 acpi.ko 3 1 0xc3bc3000 2000 fire_saver.ko |
#ipfw list
ipfw: getsockopt(IP_FW_GET): Protocol not available |
#kldload ipfw
|
#ipfw add 0001 ally ip from any to any
ipfw: invalid action ally |
#ipfw add 0001 allow from any to any
00001 allow ip from any to any |
#kldstat
Id Refs Address Size Name 1 6 0xc0400000 7b2d2c kernel 2 1 0xc0bb3000 5c304 acpi.ko 3 1 0xc3bc3000 2000 fire_saver.ko 4 1 0xc6020000 d000 ipfw.ko |
#ipfw list
00001 allow ip from any to any 65535 deny ip from any to any |
Время первой команды журнала | 14:08:20 2009- 9-11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 14:21:49 2009- 9-11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 48 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 12.50 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 2.08 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 0.22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 3.56 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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