/l3/users/17-05-2010/nt-fbsdadm/fbsd3.net.nt/user :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 :11 |
|
$sudo ntpdate 10.0.1.7
19 May 14:21:51 ntpdate[18246]: step time server 10.0.1.7 offset -0.582547 sec |
$sudo ntpdate 10.0.1.7
19 May 14:21:52 ntpdate[18254]: adjust time server 10.0.1.7 offset 0.006521 sec |
$sudo ntpdate 10.0.1.7
19 May 14:21:53 ntpdate[18262]: adjust time server 10.0.1.7 offset -0.015727 sec |
$sudo ntpdate 10.0.1.7
19 May 14:21:54 ntpdate[18270]: adjust time server 10.0.1.7 offset -0.016696 sec |
$sudo ntpdate 10.0.1.7
19 May 14:21:55 ntpdate[18285]: adjust time server 10.0.1.7 offset -0.037377 sec |
$exit
exit Connection to 192.168.16.22 closed. |
$vim /etc/crontab
|
$man expr
|
$ls -l
total 840 -rw-r--r-- 1 user wheel 0 May 19 10:32 1.deb -rw-r--r-- 1 user wheel 0 May 19 10:32 1.rpm -rw-r--r-- 1 user wheel 0 May 19 10:32 1.tar.gz -rw-r--r-- 1 user wheel 0 May 19 10:32 1.tgz drwxr-xr-x 2 user wheel 512 Mar 15 2008 Desktop -rwxr-xr-x 1 user wheel 175 May 19 12:08 for2 -rw------- 1 user wheel 823296 Jul 24 2009 gdb.core -rwxr-xr-x 1 user wheel 19 May 17 12:53 hello -rw-r--r-- 1 root wheel 1635 Jul 24 2009 passwd |
$ls -l
total 842 -rw-r--r-- 1 user wheel 0 May 19 10:32 1.deb -rw-r--r-- 1 user wheel 0 May 19 10:32 1.rpm -rw-r--r-- 1 user wheel 0 May 19 10:32 1.tar.gz -rw-r--r-- 1 user wheel 0 May 19 10:32 1.tgz drwxr-xr-x 2 user wheel 512 Mar 15 2008 Desktop -rwxr-xr-x 1 user wheel 175 May 19 12:08 for2 -rw------- 1 user wheel 823296 Jul 24 2009 gdb.core -rwxr-xr-x 1 user wheel 19 May 17 12:53 hello -rw-r--r-- 1 root wheel 1635 Jul 24 2009 passwd -rwxr-xr-x 1 user wheel 559 May 19 15:59 rn |
$vim rn
|
$vim rn
|
$ attern"
24 rem='expr $number % 10' 25 if [ $rem -eq 1 ] 26 then ((number+1)) 28 fi done 22 done if [ $rem -qt 1 -a $rem -lt 5 ] 30 if [ $rem -eq ] then 26 echo echo "Ð~_еÑ~@еименовано $number Ñ~Dайла" else 32 if [ $rem -qt -a $rem -lt ] then 33 echo "Ð~_еÑ~@еименовано $number Ñ~Dайлов" else 34 echo fi "rn" 35L, 563C written |
$touch 1.jpeg
|
$./rn jpeg jpg
usage: mv [-f | -i | -n] [-v] source target mv [-f | -i | -n] [-v] source ... directory ./rn: line 25: [: too many arguments ./rn: line 29: [: too many arguments Переименовано 1 файлов |
$vim rn
--- /tmp/l3-saved-2033.23392.24304 2010-05-19 16:01:38.000000000 +0300 +++ rn 2010-05-19 16:02:32.000000000 +0300 @@ -12,16 +12,13 @@ do if [ -f $name ] then - fname='basename $name' - n='echo $fname | sed -e "s/$1/$2/"' + fname=`basename $name` + n=`echo $fname | sed -e "s/$1/$2/"` mv $fname $n - number=$((number+1)) - fi done - -rem='expr $number % 10' +rem=`expr $number % 10` if [ $rem -eq 1 ] then echo "Переименован $number файл." |
$vim rn
--- /tmp/l3-saved-2033.1266.13279 2010-05-19 16:02:34.000000000 +0300 +++ rn 2010-05-19 16:02:49.000000000 +0300 @@ -23,7 +23,7 @@ then echo "Переименован $number файл." else - if [ $rem -qt 1 -a $rem -lt 5 ] + if [ $rem -gt 1 -a $rem -lt 5 ] then echo "Переименовано $number файла" else |
$./rn jpeg jpg
Переименован 1 файл. |
$scp ./rn 192.168.16.1:~/our-rn
The authenticity of host '192.168.16.1 (192.168.16.1)' can't be established. DSA key fingerprint is c3:63:ba:ce:d2:fb:24:74:ae:a6:7a:4c:36:89:32:68. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.16.1' (DSA) to the list of known hosts. user@192.168.16.1's password: rn 100% 560 0.6KB/s 00:00 |
$ssh 192.168.16.254
user@192.168.16.254's password: |
$vim .ssh/
|
$vim .ssh/option
--- /dev/null 2010-05-19 16:05:10.000000000 +0300 +++ .ssh/option 2010-05-19 16:05:14.000000000 +0300 @@ -0,0 +1,2 @@ +Host 192.168.16.254 +user root |
$vim .ssh/option
|
$~
user@192.168.16.254's password: |
$man ssh
|
$mv .ssh/option .ssh/config
|
$ssh 192.168.16.254
root@192.168.16.254's password: |
$ssh -vv 192.168.16.254
OpenSSH_4.5p1 FreeBSD-20061110, OpenSSL 0.9.7e-p1 25 Oct 2004 debug1: Reading configuration data /home/user/.ssh/config debug1: Applying options for 192.168.16.254 debug1: Reading configuration data /etc/ssh/ssh_config debug2: ssh_connect: needpriv 0 debug1: Connecting to 192.168.16.254 [192.168.16.254] port 22. debug1: Connection established. debug1: identity file /home/user/.ssh/identity type -1 debug1: identity file /home/user/.ssh/id_rsa type -1 debug1: identity file /home/user/.ssh/id_dsa type -1 ... debug2: key: /home/user/.ssh/id_rsa (0x0) debug2: key: /home/user/.ssh/id_dsa (0x0) debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Trying private key: /home/user/.ssh/identity debug1: Trying private key: /home/user/.ssh/id_rsa debug1: Trying private key: /home/user/.ssh/id_dsa debug2: we did not send a packet, disable method debug1: Next authentication method: password root@192.168.16.254's password: |
$ssh -vvv 192.168.16.254
OpenSSH_4.5p1 FreeBSD-20061110, OpenSSL 0.9.7e-p1 25 Oct 2004 debug1: Reading configuration data /home/user/.ssh/config debug1: Applying options for 192.168.16.254 debug1: Reading configuration data /etc/ssh/ssh_config debug2: ssh_connect: needpriv 0 debug1: Connecting to 192.168.16.254 [192.168.16.254] port 22. debug1: Connection established. debug1: identity file /home/user/.ssh/identity type -1 debug1: identity file /home/user/.ssh/id_rsa type -1 debug1: identity file /home/user/.ssh/id_dsa type -1 ... debug1: Trying private key: /home/user/.ssh/id_rsa debug3: no such identity: /home/user/.ssh/id_rsa debug1: Trying private key: /home/user/.ssh/id_dsa debug3: no such identity: /home/user/.ssh/id_dsa debug2: we did not send a packet, disable method debug3: authmethod_lookup password debug3: remaining preferred: ,password debug3: authmethod_is_enabled password debug1: Next authentication method: password root@192.168.16.254's password: |
$vim /etc/passwd
|
$man 5 passwd
|
$vim /etc/master.passwd
|
$~
6 operator:*:2:5::0:0:System &:/:/usr/sbin/nologin 7 bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin 8 tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin 9 kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin 10 games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin n/nologin 11 news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin ginlnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/usr/sbin/noloo 12 man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin 16 bind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologin 13 sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologin 17 proxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin 14 smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbii 18 _pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/usr/sbin/nologin :q! _dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologin |
$man master.passwd
|
$sudo vim /etc/master.passwd
|
$ 19 _dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologin
adduser: ERROR: you must be the super-user (uid 0) to use this utility. |
$sudo adduser
Password: Sorry, try again. Password: Username: adduser Full name: Add User Uid (Leave empty for default): Login group [adduser]: Login group is adduser. Invite adduser into other groups? []: Login class [default]: russian Shell (sh csh tcsh bash rbash nologin) [sh]: bash ... Uid : 1102 Class : russian Groups : adduser Home : /home/adduser Shell : /usr/local/bin/bash Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (adduser) to the user database. Add another user? (yes/no): no Goodbye! |
$vim /etc/passwd
|
$129 adduser:*:1102:1102:Add User:/home/adduser:/usr/local/bin/bash
|
$sudo vim /etc/master.passwd
|
$1$SV.abrqf$ZVPESfSpE20rKmfE0i2ON.:1102:1102:russian:0:0:Add User:/hh
|
$sudo pw user add help
usage: pw useradd [name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation Adding users: -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date ... -g group default group -G grp1,grp2 additional groups -L class default user class -k dir default home skeleton -M mode home directory permissions -u min,max set min,max uids -i min,max set min,max gids -w method set default password method -s shell default shell -y path set NIS passwd file path |
$sudo pw user add help | less
|
$sudo pw user add -m pwuseradd -L russian -s /usr/local/bin/bash
pw: user name or id required |
$sudo pw user add colorsche
|
$sudo pw user add pwuseradd
|
$sudo pw user add -m pwuseradd
|
$vim /etc/passwd
|
$130 pwuseradd:*:1103:1103:User &:/home/pwuseradd:/usr/local/bin/bash
|
$sudo vim /etc/master.passwd
|
$130 pwuseradd:*:1103:1103:russian:0:0:User &:/home/pwuseradd:/usr/local/bin/bash
Changing local password for pwuseradd New Password: Retype New Password: |
$sudo vim /etc/master.passwd
|
$:Pq!
|
$sudo pw usermod help
usage: pw usermod [uid|name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation -F force add if no user -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date ... -l name new login name -L class user class -m [ -k dir ] create and set up home -M mode home directory permissions -s shell name of login shell -w method set new password using method -h fd read password on fd -H fd read encrypted password on fd -Y update NIS maps -N no update |
$sudo pw usermod help | less
|
$sudo pw usermod help | grep lock
usage: pw usermod [uid|name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation -F force add if no user -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date ... -l name new login name -L class user class -m [ -k dir ] create and set up home -M mode home directory permissions -s shell name of login shell -w method set new password using method -h fd read password on fd -H fd read encrypted password on fd -Y update NIS maps -N no update |
$sudo pw usermod help | grep lock
usage: pw usermod [uid|name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation -F force add if no user -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date ... -l name new login name -L class user class -m [ -k dir ] create and set up home -M mode home directory permissions -s shell name of login shell -w method set new password using method -h fd read password on fd -H fd read encrypted password on fd -Y update NIS maps -N no update |
$sudo pw user help
usage: pw user [add|del|mod|show|next] [help|switches/values] |
$sudo pw user mod help
usage: pw usermod [uid|name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation -F force add if no user -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date ... -l name new login name -L class user class -m [ -k dir ] create and set up home -M mode home directory permissions -s shell name of login shell -w method set new password using method -h fd read password on fd -H fd read encrypted password on fd -Y update NIS maps -N no update |
$man pw
|
$sudo pw lock pwuseradd
|
$sudo vim /etc/master.passwd
|
$1$svfiOxFn$YaatwJ0hDdCT/sdely.h91:1103:1103:russian:0:0:UU
|
$sudo vim /etc/master.passwd
|
$1$svfiOxFn$YaatwJ0hDdCT/sdely.h91:1103:1103:russian:0:0:User &:/hh
11 news:*:8: 12 man:*:9: [readonly] 136L, 1994C 13 games:*:13: 14 staff:*:20: 15 sshd:*:22: 16 smmsp:*:25: 17 mailnull:*:26: 18 guest:*:31: 19 bind:*:53: 20 proxy:*:62: 21 authpf:*:63: |
$ 22 _pflogd:*:64:
GROUP(5) FreeBSD File Formats Manual GROUP(5) NAME group -- format of the group permissions file DESCRIPTION The group file is the local source of group information. It can be used in conjunction with the Hesiod domain `group', and the NIS maps `group.byname' and `group.bygid', as controlled by nsswitch.conf(5). The file group consists of newline separated ASCII records, one per group, containing four colon `:' separated fields. These fields are as follows: ... In older implementations, a group cannot have more than 200 members. The maximum line length of /etc/group is 1024 characters. Longer lines will be skipped. This limitation disappeared in FreeBSD 3.0. Older binaries that are statically linked, depend on old shared libraries, or non-FreeBSD binaries in compatibility mode may still have this limit. FILES /etc/group SEE ALSO passwd(1), setgroups(2), crypt(3), getgrent(3), initgroups(3), nsswitch.conf(5), passwd(5), chkgrp(8), pw(8), yp(8) |
$mkdir test
|
$cd test
|
$ls
|
$touch 1
|
$ls -l
total 0 -rw-r--r-- 1 user wheel 0 May 19 16:53 1 |
$chmod 7777 -l
chmod: -l: No such file or directory |
$chmod 7777 1
chmod: 1: Inappropriate file type or format |
$chmod 7777 ./1
chmod: ./1: Inappropriate file type or format |
$ls -l
total 0 -rw-r--r-- 1 user wheel 0 May 19 16:53 1 |
$chmod 777 ./1
|
$ls -l
total 0 -rwxrwxrwx 1 user wheel 0 May 19 16:53 1 |
$chmod u+s,g+s,o+t ./1
|
$ls -l
total 0 -rwsrwsrwx 1 user wheel 0 May 19 16:53 1 |
$ls -ld ../test
drwxr-xr-x 2 user wheel 512 May 19 16:53 ../test |
$chmod o+t ../test
|
$ls -ld ../test
drwxr-xr-x 2 user wheel 512 May 19 16:53 ../test |
$ls -ld /tmp
drwxrwxrwt 15 root wheel 2560 May 19 16:54 /tmp |
$sudo chmod o+t ../test
Password: |
$ls -ld ../test
drwxr-xr-x 2 user wheel 512 May 19 16:53 ../test |
$man chmod
|
$man chmod
|
$sudo sticky -h
sudo: sticky: command not found |
$sudo sticky -h
sudo: sticky: command not found |
$man sticky
|
$sudo chmod o+t ../test
|
$ls -ld ../test
drwxr-xr-x 2 user wheel 512 May 19 16:53 ../test |
$apropos sticky
fpgetround(3), fpsetround(3), fpsetprec(3), fpgetprec(3), fpgetmask(3), fpsetmask(3), fpgetsticky(3), fpresetsticky(3) - IEEE floating point interface sticky(8) - sticky text and append-only directories |
$chmod a+w ../test
|
$ls -ld ../test
drwxrwxrwx 2 user wheel 512 May 19 16:53 ../test |
$sudo chmod o+t ../test
|
$ls -ld ../test
drwxrwxrwx 2 user wheel 512 May 19 16:53 ../test |
$sudo chmod 1777 ../test
|
$ls -ld ../test
drwxrwxrwt 2 user wheel 512 May 19 16:53 ../test |
$sudo chmod u+s,g+s,o+t ./1
|
$ls -ld /tmp
|
Время первой команды журнала | 13:21:40 2010- 5-19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 15:58:19 2010- 5-19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 17.82 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 0.00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.73 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 0.97 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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