/l3/trainings/nt-ladm/2006-08-07/linux1.unix.nt/user :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 :11 :12 |
|
$ls
][ A:\WINDOWSSYSTEM32 jun nov 1*2 A:\WINDOWS\SYSTEM32 linux oct 1inux dec linux-kernel program.C 2*2=4 feb "Live at Wembley' 86" Queen 2*2=5? footer.h mar Queen "Live at Wembley' 86" 2*3 gnu-linux may sep '86" -hard-to-del- M'cDonalds The_Best_OS ab[cde]fg header.h module2.c The_Worst_OS apr jan module.c aug jul name$with#very~starnge'symbols' |
$ls j?n
jan jun |
$ls -- -*
-hard-to-del- |
$rm -hard-to-del-
![]() rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$echo -hard-to-del- | rm
![]() rm: недостаточно аргументов Попробуйте `rm --help' для получения более подробного описания. |
$rm `echo -hard-to-del-`
![]() rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$rm '-hard-to-del-'
![]() rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$rm /-hard-to-del-/
![]() rm: невозможно удалить `/-hard-to-del-/': No such file or directory |
$rm \-hard-to-del-\
![]() > rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$rm \
![]() > -hard-to-del- rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$rm -i -hard-to-del-
![]() rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$rm -v -hard-to-del-
![]() rm: invalid option -- h Попробуйте `rm --help' для получения более подробного описания. |
$rm -v /home/user/names/\-hard\-to\-del\-
удален `/home/user/names/-hard-to-del-' |
$ls \-*
![]() ls: invalid option -- * Попробуйте `ls --help' для получения более подробного описания. |
$ls \-*
![]() ls: invalid option -- * Попробуйте `ls --help' для получения более подробного описания. |
$ls '-'*
![]() ls: invalid option -- * Попробуйте `ls --help' для получения более подробного описания. |
$ls *\**\?*
2*2=5? |
$ls *'*'*'?'*
2*2=5? |
$ls *[*]*[?]*
2*2=5? |
$ls *\[cde]*
ab[cde]fg |
$ls *'['cde]*
ab[cde]fg |
$ls *[[]cde]*
ab[cde]fg |
$screen
|
$echo *
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[[]^k]
*[[]^k] |
$echo *\[^k]
*[^k] |
$echo *\[^k\]
*[^k] |
$echo *[^.]
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
![]() 34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
![]() 34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
![]() 34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
![]() 34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$echo *[^k]*
34 backup base bin body Desktop docs file filename files hardlink.file names nohup.out proj projectX sh source symlink_file Templates test text touchlist very_long_file_name снимок_экрана.png |
$cd names
|
$ls .[^.]*
.hidden1 .hidden2 .hidden3 |
$ls ..?*
![]() ls: ..?*: No such file or directory |
$echo zz*
zz* |
$ls zz*
![]() ls: zz*: No such file or directory |
$touch [[]kab[[]
|
$touch 'very very hard'
|
$touch "o'Reilly"
|
$touch 'A\windows\system32'
|
$touch o\'Reilly
|
$touch A:\\windows\\system
|
$touch "Queen \"Live at Wembley '86\"
> " |
$echo *
][ 1*2 1inux 2*2=4 2*2=5? 2*3 '86" ab[cde]fg apr aug A:\windows\system A\windows\system32 A:\WINDOWSSYSTEM32 A:\WINDOWS\SYSTEM32 dec feb footer.h gnu-linux header.h jan jul jun [[]kab[[] linux linux-kernel "Live at Wembley' 86" mar may M'cDonalds module2.c module.c name$with#very~starnge'symbols' nov oct o'Reilly program.C Queen Queen "Live at Wembley '86" Queen "Live at Wembley' 86" sep The_Best_OS The_Worst_OS very very hard |
$ls
][ file1 module2.c 1*2 file2 module.c 1inux file3 name$with#very~starnge'symbols' 2*2=4 footer.h nov 2*2=5? gnu-linux oct 2*3 header.h o'Reilly '86" jan program.C ab[cde]fg jul Queen apr jun Queen "Live at Wembley '86"? aug [[]kab[[] Queen "Live at Wembley' 86" A:\windows\system linux sep A\windows\system32 linux-kernel The_Best_OS A:\WINDOWSSYSTEM32 "Live at Wembley' 86" The_Worst_OS A:\WINDOWS\SYSTEM32 mar very very hard dec may feb M'cDonalds |
$vi ~/touchlist
|
$ls ~/
34 bin docs files nohup.out sh Templates touchlist backup body file hardlink.file proj source test very_long_file_name base Desktop filename names projectX symlink_file text снимок_экрана.png |
$ls
][ file1 module2.c 1*2 file2 module.c 1inux file3 name$with#very~starnge'symbols' 2*2=4 footer.h nov 2*2=5? gnu-linux oct 2*3 header.h o'Reilly '86" jan program.C ab[cde]fg jul Queen apr jun Queen "Live at Wembley '86"? aug [[]kab[[] Queen "Live at Wembley' 86" A:\windows\system linux sep A\windows\system32 linux-kernel The_Best_OS A:\WINDOWSSYSTEM32 "Live at Wembley' 86" The_Worst_OS A:\WINDOWS\SYSTEM32 mar very very hard dec may feb M'cDonalds |
$cd ; touch `< ~/touchlist'
![]() > ` bash: command substitution: line 1: unexpected EOF while looking for matching `'' bash: command substitution: line 2: syntax error: unexpected end of file touch: пропущены аргументы, задающие файлы Попробуйте `touch --help' для получения более подробного описания. |
$cd ; touch `< ~/touchlist'
![]() |
$cd ; touch `< ~/touchlist
|
$echo "Today is `datye +%Y` year"
bash: datye: command not found Today is year |
$echo "Today is `date +%Y` year"
Today is 2006 year |
$rm -f `find ~ -name core`
|
$find ~ -name core -exec rm -f {} \;
|
$echo $path
|
$echo $PATH
/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user/bin |
$echo 456345634563456354634563456345${PATH}234982934876
456345634563456354634563456345/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user/bin234982934876 |
$echo $(((1+2+3)*4*5+1))
121 |
$less newfile
|
$sort < /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt ... rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/sbin/nologin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync user:x:500:500::/home/user:/bin/bash uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin |
$mv /etc/passwd /tmp
![]() mv: невозможно удалить `/etc/passwd': Permission denied |
$mv /etc/passwd /tmp 2> errlog
![]() |
$cat errlog
mv: невозможно удалить `/etc/passwd': Permission denied |
$mv /etc/passwd /tmp 2> /dev/null
![]() |
$cat >> unsorted
Windows XP Windows NT Solaris Sun OS Linux FreeBSD :q q ^[ |
$sort < unsorted > sorted
|
$cat sorted
D Linux q :q Solaris Sun OS Windows NT Windows XP |
$cat > file
da net ok yes |
$cat >>file
gg |
$cat bigfile | more
|
$cat bigfile | less
|
$mkdir /tmp/etccopy
|
$cp -v /etc/* /tmp/etccopy | less
|
$cp -v /etc/* /tmp/etccopy 2>&1 | less
|
$cp -v /etc/* /tmp/etccopy 2>&1 | less
|
$cp -v /etc/* /tmp/etccopy | less
|
$cp -v /etc/* /tmp/tccopy 2>&1 > /tmp/dirlist
![]() cp: `/tmp/tccopy': specified destination directory does not exist Попробуйте `cp --help' для получения более подробного описания. |
$cp -v /etc/* /tmp/etccopy 2>&1 > /tmp/dirlist
![]() cp: пропуск каталога `/etc/acpi' cp: пропуск каталога `/etc/alchemist' cp: невозможно открыть `/etc/aliases.db' для чтения: Permission denied cp: пропуск каталога `/etc/alternatives' cp: невозможно открыть `/etc/amd.conf' для чтения: Permission denied cp: невозможно открыть `/etc/amd.net' для чтения: Permission denied cp: невозможно открыть `/etc/anacrontab' для чтения: Permission denied cp: невозможно открыть `/etc/at.deny' для чтения: Permission denied cp: пропуск каталога `/etc/bash_completion.d' cp: пропуск каталога `/etc/bluetooth' ... cp: пропуск каталога `/etc/uucp' cp: пропуск каталога `/etc/vfs' cp: пропуск каталога `/etc/w3m' cp: пропуск каталога `/etc/wine' cp: пропуск каталога `/etc/wordtrans' cp: пропуск каталога `/etc/X11' cp: пропуск каталога `/etc/xdg' cp: пропуск каталога `/etc/xinetd.d' cp: пропуск каталога `/etc/xml' cp: пропуск каталога `/etc/yum.repos.d' |
$cat /etc/passwd | sort | tee sorted_passwd | less
|
$ssh linux15
![]() Password: Linux sergix.tech.inc 2.6.15.2 #1 SMP PREEMPT Fri May 19 14:19:01 EEST 2006 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. eto motd.tail No mail. Last login: Mon Aug 7 12:26:49 2006 from m01 ... returntosender: cannot select queue for user Insufficient disk space; try again later returntosender: cannot select queue for postmaster putbody: write error: No space left on device putbody: write error: No space left on device Error writing control file qfk78DJETC013501: No space left on device user@sergix:~$ user@sergix:~$ exit logout Connection to linux15 closed. |
$ssh ilya@linux15
![]() Password: Linux sergix.tech.inc 2.6.15.2 #1 SMP PREEMPT Fri May 19 14:19:01 EEST 2006 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. eto motd.tail Last login: Tue Aug 8 16:13:09 2006 from localhost.localdomain Could not chdir to home directory /home/ilya: No such file or directory ... Insufficient disk space; try again later returntosender: cannot select queue for ilya Insufficient disk space; try again later returntosender: cannot select queue for postmaster putbody: write error: No space left on device putbody: write error: No space left on device Error writing control file qfk78DLT6S013543: No space left on device ilya@sergix:/$ exit logout Connection to linux15 closed. |
$ssh ilya@linux15
![]() Password: Linux sergix.tech.inc 2.6.15.2 #1 SMP PREEMPT Fri May 19 14:19:01 EEST 2006 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. eto motd.tail Last login: Tue Aug 8 16:21:12 2006 from m01 Could not chdir to home directory /home/ilya: No such file or directory ... -sh: beep: command not found ilya@sergix:/$ beep-media-player Невозможно создат каталог (/home/ilya/.bmp): No such file or directoryНевозможно создат каталог (/home/ilya/.bmp/Skins): No such file or directoryНевозможно создат каталог (/home/ilya/.bmp/Skins/.thumbs): No such file or directoryНевозможно создат каталог (/home/ilya/.bmp/Plugins): No such file or directory X11 connection rejected because of wrong authentication. The application 'beep-media-player' lost its connection to the display localhost:10.0; most likely the X server was shut down or you killed/destroyed the application. ilya@sergix:/$ exit logout Connection to linux15 closed. |
$screen
|
gg
mv: невозможно удалить `/etc/passwd': Permission denied
da net ok yes
D Linux q :q Solaris Sun OS Windows NT Windows XP
Windows XP Windows NT Solaris Sun OS Linux FreeBSD :q q ^[
Время первой команды журнала | 14:28:00 2006- 8- 8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 16:49:28 2006- 8- 8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 28.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 0.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.74 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 0.96 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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