/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 |
|
#echo $A
1 |
#echo $A
[root@debian1:~]# exit exit 1 |
#echo $A
[root@debian1:~]# unset A |
#readonly A=2
|
#echo $A
2 |
#A=3
![]() bash: A: readonly variable |
#unset A
![]() bash: unset: A: cannot unset: readonly variable |
#unset --help
![]() bash: unset: --: invalid option unset: usage: unset [-f] [-v] [name ...] |
#unset -f A
|
#echo $A
2 |
#unset -v A
![]() bash: unset: A: cannot unset: readonly variable |
#unset -f A
|
#info unset
|
#info unset | less
|
#unset -fv A
![]() bash: unset: cannot simultaneously unset a function and a variable |
#unset -f
|
#echo A
A |
#echo $
2 |
#unset A
![]() bash: unset: A: cannot unset: readonly variable |
#ls
![]() |
#set A=3445
|
#readonly --help
![]() [root@debian1:~]# echo $A 2 bash: readonly: --: invalid option readonly: usage: readonly [-af] [name[=value] ...] or readonly -p |
#f1 () {echo "ne ne ne
![]() bash: syntax error near unexpected token `{echo' |
#f1 () { echo "ne ne ne!!!!
f1 () { echo "ne ne nef1 () {echo "ne ne ne";}f1 () {echo "ne ne ne";}"; } |
#f1 () {echo "ne ne ne";}
![]() |
#f1 () {echo "ne ne ne";
![]() bash: syntax error near unexpected token `{echo' |
#f1 () {
|
#ls /*/*/
![]() /proc/2633/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/2670/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/2674/: attr cpuset exe mem oom_adj smaps status ... cmdline environ maps mountstats root statm wchan ls: невозможно считать символьную ссылку /proc/54/exe: No such file or directory /proc/54/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan ls: невозможно считать символьную ссылку /proc/55/exe: No such file or directory /proc/55/: attr cpuset exe mem oom_adj smaps status auxv |
#ls /*/*/
![]() /lib/tls/: i686 libmemusage.so libnss_nisplus.so.2 libanl-2.3.6.so libm.so.6 libnss_nis.so.2 libanl.so.1 libnsl-2.3.6.so libpcprofile.so libBrokenLocale-2.3.6.so libnsl.so.1 libpthread-2.3.6.so libBrokenLocale.so.1 libnss_compat-2.3.6.so libpthread.so.0 libc-2.3.6.so libnss_compat.so.2 libresolv-2.3.6.so libcidn-2.3.6.so libnss_dns-2.3.6.so libresolv.so.2 libcidn.so.1 libnss_dns.so.2 librt-2.3.6.so libcrypt-2.3.6.so libnss_files-2.3.6.so librt.so.1 ... /proc/2/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/2502/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/2633/: attr |
#ls /*/*/
![]() libip6t_tcp.so libipt_multiport.so libipt_udp.so libip6t_TRACE.so libipt_NETMAP.so libipt_ULOG.so libip6t_udp.so libipt_NFQUEUE.so libipt_unclean.so libipt_addrtype.so libipt_NOTRACK.so libipt_ah.so libipt_owner.so /lib/lsb/: init-functions /lib/modules/: 2.6.18-5-xen-686 2.6.18-6-xen-686 2.6.18.8-xen /lib/security/: ... auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/13390/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/13391/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline |
#ls /*/*/
![]() /proc/2699/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/2701/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan /proc/2740/: attr cpuset exe mem oom_adj smaps status ... ls: невозможно считать символьную ссылку /proc/599/exe: No such file or directory /proc/599/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan ls: невозможно считать символьную ссылку /proc/6/exe: No such file or directory /proc/6/: attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan |
#ls /*/*/*/
![]() 0 1 2 3 /proc/1245/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/1245/task/: 1245 /proc/12690/attr/: current exec fscreate keycreate prev sockcreate /proc/12690/cwd/: 1234 asd.tgz hello sdf dasfjfh touchlist ... /proc/1/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/1/task/: 1 /proc/2502/attr/: current exec fscreate keycreate prev sockcreate /proc/2502/cwd/: console psaux ptypc ram4 tty13 tty26 tty39 tty51 tty7 ttypb disk |
#ls /*/*/*/
![]() |
#ls /*/*/*/
![]() /proc/12690/attr/: current exec fscreate keycreate prev sockcreate /proc/12690/cwd/: 1234 asd.tgz hello sdf dasfjfh touchlist 123.tar file qwe.gz soft zxc.rpm /proc/12690/fd/: 0 1 2 3 4 5 6 /proc/12690/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr ... disk ptmx ptypd ram5 tty14 tty27 tty4 tty52 tty8 ttypc full ptyp0 ptype ram6 tty15 tty28 tty40 tty53 tty9 ttypd hda1 ptyp1 ptypf ram7 tty16 tty29 tty41 tty54 ttyp0 ttype initctl ptyp2 ram0 ram8 tty17 tty3 tty42 tty55 ttyp1 ttypf input ptyp3 ram1 ram9 tty18 tty30 tty43 tty56 ttyp2 urandom kmem ptyp4 ram10 random tty19 tty31 tty44 tty57 ttyp3 xconsole kmsg ptyp5 ram11 shm tty2 tty32 tty45 tty58 ttyp4 xen log ptyp6 ram12 tty tty20 tty33 tty46 tty59 ttyp5 zero MAKEDEV ptyp7 ram13 tty0 tty21 tty34 tty47 tty6 ttyp6 mapper |
#ls /*/*/*/
current exec fscreate keycreate prev sockcreate /proc/13391/cwd/: 1234 asd.tgz hello sdf dasfjfh touchlist 123.tar file qwe.gz soft zxc.rpm /proc/13391/fd/: 0 1 2 255 /proc/13391/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/13391/task/: ... /proc/2674/fd/: 0 1 2 3 4 /proc/2674/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/2674/task/: 2674 /proc/2678/attr/: current exec fscreate keycreate prev sockcreate /proc/2678/cwd/: |
#f1 () { echo "ne ne ne"; }
0 1 2 /proc/1233/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/1233/task/: 1233 /proc/1234/attr/: current exec fscreate keycreate prev sockcreate /proc/1234/cwd/: console psaux ptypc ram4 tty13 tty26 tty39 tty51 tty7 ttypb ... boot etc initrd lost+found mnt proc sbin sys usr /proc/13391/task/: 13391 /proc/14/attr/: current exec fscreate keycreate prev sockcreate /proc/14/cwd/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr tty57 ttyp3 xconsole kmsg |
#trap f1 INT
|
#ls /*/*/*/
![]() /proc/12690/task/: 12690 /proc/13350/attr/: current exec fscreate keycreate prev sockcreate /proc/13350/cwd/: 1234 asd.tgz hello sdf dasfjfh touchlist 123.tar file qwe.gz soft zxc.rpm /proc/13350/fd/: 0 1 2 /proc/13350/root/: ... mem ptyp9 ram15 tty10 tty23 tty36 tty49 tty61 ttyp8 null ptypa ram2 tty11 tty24 tty37 tty5 tty62 ttyp9 port ptypb ram3 tty12 tty25 tty38 tty50 tty63 ttypa /proc/2502/fd/: 0 1 2 /proc/2502/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/2502/task/: 2502 |
#ls /*/*/*/
![]() current exec fscreate keycreate prev sockcreate /proc/13391/cwd/: 1234 asd.tgz hello sdf dasfjfh touchlist 123.tar file qwe.gz soft zxc.rpm /proc/13391/fd/: 0 1 2 255 /proc/13391/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/13391/task/: ... /proc/2674/fd/: 0 1 2 3 4 /proc/2674/root/: bin dev home lib media opt root srv tmp var boot etc initrd lost+found mnt proc sbin sys usr /proc/2674/task/: 2674 /proc/2678/attr/: current exec fscreate keycreate prev sockcreate /proc/2678/cwd/: |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#ne ne ne
![]() |
#echo A
A |
#echo $
1234 123.tar asd.tgz file hello qwe.gz sdf dasfjfh soft touchlist zxc.rpm |
#echo "
* |
#ls tmp ; echo $?
[root@debian1:~]# echo ' $A ls: tmp: No such file or directory 2 |
#ls /
a asdf names ab A:\WINDOWS\SYSTEM32 one space abc cde orbit-user abcd conf o' Reilly abcde dfcdep S.names abcdef df*fd? SORTED_NAMES abcdes file ssh-hbgqFx2633 ac file with spaces at the name ssh-jfWKaZ4928 ad gconfd-user ssh-JZxTWz4947 ae less ssh-zhWKgv4956 af lkjhg?asdf another very long file name ls 0 |
#find ~ *.mmm && rm ~ *.mmm || echo 'file not found'
/root/.lilalo/765511717183542083-1232351490.script /root/.lilalo/26685115363211224709-1232439008_1232446515_etc_init.d_ssh.diff /root/.lilalo/15081903439010668-1232527952.script /root/.lilalo/71353065180441432-1232354566_1232370401_tmp_sym__link_file.diff /root/.lilalo/1498482752572130745-1232483393.info /root/.lilalo/209739211121405394-1232545115.info /root/.lilalo/770515293676724607-1232438192.script /root/.lilalo/2371105201881414746-1232523220_1232524105_tmp_names.diff /root/.lilalo/252104060271518443-1232353870_1232354247_root_.ssh_known__hosts.diff /root/.lilalo/2194515001560815221-1232457408.info ... /root/qwe.gz /root/.gconf /root/.vimrc /root/.bash_profile /root/asd.tgz /root/123.tar /root/.lesshst /root/touchlist find: *.mmm: No such file or directory file not found |
#jobs
|
#ls -l /
lrwxrwxrwx 1 root root 4 2008-07-04 20:06 /bin/sh -> bash |
#screen -x
|
#sdlkj
![]() bash: sdlkj: command not found |
#fh
![]() bash: fh: command not found |
#kj
![]() bash: kj: command not found |
#xaaaxaxaaxaxax
![]() bash: xaaaxaxaaxaxax: command not found |
#sdlkj
![]() bash: sdlkj: command not found |
#reboot
|
#r
![]() bash: r: command not found |
#uv
![]() bash: uv: command not found |
#e
![]() bash: e: command not found |
#t
![]() bash: t: command not found |
#test -r
0 |
#test -w
0 |
#test -w /etc/shadow
0 |
#test -x
1 |
#ls -l /etc/shadow
-rw-r----- 1 root shadow 8825 2008-03-14 11:04 /etc/shadow |
#vim /etc/shadow
|
#test 10 -lt 9 ; echo $?
1 |
#test 10 -g
0 |
#test 10 -eq
1 |
#[ 10 -eq 6 ] ; echo $?
1 |
#cd
|
#p
![]() bash: p: command not found |
#a
![]() bash: a: command not found |
#c
![]() bash: c: command not found |
#a
![]() bash: a: command not found |
#n
![]() bash: n: command not found |
#m
![]() bash: m: command not found |
#o
![]() bash: o: command not found |
#c
![]() bash: c: command not found |
Время первой команды журнала | 10:53:43 2009- 1-22 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 11:44:44 2009- 1-22 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 20.79 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 20.79 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 0.85 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.98 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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