Журнал лабораторных работ

Содержание

Журнал

Вторник (03/27/18)

/dev/pts/0
15:30:23
#> /tmp/issue

15:30:55
#locate issue
/etc/issue
/etc/issue.net
/lib/x86_64-linux-gnu/security/pam_issue.so
/usr/lib/ssl/misc/c_issuer
/usr/share/man/man5/issue.5.gz
/usr/share/man/man8/pam_issue.8.gz
15:30:57
#ls -d /etc//cron*
/etc//cron.d  /etc//cron.daily  /etc//cron.hourly  /etc//cron.monthly  /etc//crontab  /etc//cron.weekly
15:31:35
#cd /etc/cron.daily#
l3script: cd: /etc/cron.daily#: Нет такого файла или каталога
15:32:05
#cd /etc/cron.daily

15:32:33
#cd /etc/cron.daily#
l3script: cd: /etc/cron.daily#: Нет такого файла или каталога
15:32:40
#/etc/cron.daily# ./locate
l3script: /etc/cron.daily#: Нет такого файла или каталога
15:33:29
#./locate

15:34:03
#less locate
15:34:55
#vi locate
--- /tmp/l3-saved-6687.11014.22260	2018-03-27 16:35:06.533588991 +0300
+++ locate	2018-03-27 16:35:41.325601763 +0300
@@ -21,7 +21,7 @@
 # filesystems which are pruned from updatedb database
 PRUNEFS="NFS nfs nfs4 afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf ocfs2"
 # paths which are pruned from updatedb database
-PRUNEPATHS="/tmp /usr/tmp /var/tmp /afs /amd /alex /var/spool /sfs /media /var/lib/schroot/mount"
+PRUNEPATHS="/var/tmp /afs /amd /alex /var/spool /sfs /media /var/lib/schroot/mount"
 # netpaths which are added
 NETPATHS=""
 # run find as this user
15:35:41
#./locate

15:35:52
#locate issue
/etc/issue
/etc/issue.net
/lib/x86_64-linux-gnu/security/pam_issue.so
/tmp/issue
/usr/lib/ssl/misc/c_issuer
/usr/share/man/man5/issue.5.gz
/usr/share/man/man8/pam_issue.8.gz
15:36:07
#cd

15:36:14
#man find
15:36:50
#find /home -user user -mtime -1 -type f
/home/user/.lilalo/.report.dat
15:39:56
#find /home -user ivan -mtime -1 -type f
/home/ivan/FILE
/home/ivan/ERRLOG
/home/ivan/.bashrc
/home/ivan/.bash_history
/home/ivan/SORTED_PASSWD
/home/ivan/UNSORTED
/home/ivan/JKJKLJ HJJHJ
/home/ivan/SORTED
/home/ivan/.viminfo
/home/ivan/NEWFILE
15:40:45
#ls
a1                           d2  f2  f5                            installh  one space  Queen "Live at Wembley '86"
another very long file name  d3  f3  file with spaces at the name  ip.txt    o'Reilly
A:\WINDOWS\SYSTEM32          f1  f4  install                       MBR       passwd
15:42:47
#find . -type f -empty
./.aptitude/config
./o'Reilly
./.lilalo/28073119261450515247-1522047302_1522072466_root_text_hello-vi.txt.diff
./.lilalo/273171225088496970-1522133177_1522133441_root_.ashrc.diff
./.lilalo/273171225088496970-1522133177_1522133378_bashrc.diff
./.lilalo/28073119261450515247-1522047302_1522070476_root_install.diff
./.lilalo/28073119261450515247-1522047302_1522070543_root_install.diff
./.lilalo/23119324163069212524-1403867377_1403867394_root_.lilalo_l3bashrc.diff
./.lilalo/28073119261450515247-1522047302_1522072330_root_text_hello-vi.txt.diff
./.lilalo/273171225088496970-1522133177_1522133394_.bashrc.diff
...
./A:\WINDOWS\SYSTEM32
./Queen "Live at Wembley '86"
./f2
./f3
./one space
./file with spaces at the name
./f4
./d3/d4/f5
./d3/f1
./another very long file name
15:43:20
#find . -type f -empty -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.
./o'Reilly
./f1
./A:\WINDOWS\SYSTEM32
./Queen "Live at Wembley '86"
./f2
./f3
./one space
./file with spaces at the name
./f4
./another very long file name
15:43:57
#find . -type f -empty -maxdepth 1 -exec rm -v {} \;
find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.
удалён «./o'Reilly»
удалён «./f1»
удалён «./A:\\WINDOWS\\SYSTEM32»
удалён «./Queen "Live at Wembley '86"»
удалён «./f2»
удалён «./f3»
удалён «./one space»
удалён «./file with spaces at the name»
удалён «./f4»
удалён «./another very long file name»
15:44:57
#cd

Среда (03/28/18)

/dev/pts/2
07:47:46
#ls
a1  d2  d3  f5  install  installh  ip.txt  MBR  passwd
07:48:14
#cd /etc

07:48:39
#ьÑman find
FIND(1)                                                                FIND(1)
NAME
       find - search for files in a directory hierarchy
SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
DESCRIPTION
       This  manual page documents the GNU version of find.  GNU find searches
       the directory tree rooted at each given file  name  by  evaluating  the
       given  expression  from left to right, according to the rules of prece‐
       dence (see section OPERATORS), until the outcome  is  known  (the  left
       hand  side  is  false  for and operations, true for or), at which point
       find moves on to the next file name.
       If you are using find in an environment  where  security  is  important
       (for  example  if  you  are  using  it  to  search directories that are
       writable by other users), you should read the "Security Considerations"
       chapter  of  the findutils documentation, which is called Finding Files
       and comes with findutils.   That document  also  includes  a  lot  more
       detail  and discussion than this manual page, so you may find it a more
       useful source of information.
прошло 15 минут
08:04:26
#set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
...
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
08:04:46
#history
    1  ifconfig
    2  vim /etc/network/interfaces
    3  nano /etc/network/interfaces
    4  /etc/init.d/networking restart
    5  ifconfig
    6  route
    7  ping 192.168.13.253
    8  shutdown -r now
    9  exit
   10  ping ya.ru
...
  312  vi /etc/profile
  313  exit
  314  l3script
  315  exit
  316  l3script
  317  ls
  318  cd /etc
  319  man find
  320  set -o
  321  history
08:09:54
#a=1

08:12:29
#$a
l3script: 1: команда не найдена
08:12:48
#echo $a
1
08:13:09
#bash
root@debian4:/etc# cd
root@debian4:~# pstree -h
init─┬─acpid
     ├─cron
     ├─exim4
     ├─6*[getty]
     ├─2*[l3-agent]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─script───l3script
     ├─sshd───sshd───bash───script───script───l3script───bash───pstree
...
     ├─6*[getty]
     ├─2*[l3-agent]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─script───l3script
     ├─sshd───sshd───bash───script───script───l3script───bash───bash───pstree
     └─udevd
root@debian4:~# exit
exit
root@debian4:~# exit
exit
/dev/pts/2
08:18:11
#a=1

08:18:14
#echo $a
1
08:18:23
#export a

08:18:39
#bash
root@debian4:~# echo $a
1
root@debian4:~# pstree -h
init─┬─acpid
     ├─cron
     ├─exim4
     ├─6*[getty]
     ├─2*[l3-agent]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─script───l3script
     ├─sshd───sshd───bash───script───script───l3script───bash───pstree
     └─udevd
root@debian4:~# exit
exit
08:19:50
#b=10

08:20:24
#set
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0")
PPID=10397
08:20:40
#set | head -50
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0")
PPID=10397
08:22:14
#set | head -57
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0" [1]="0")
PPID=10397
08:22:20
#set | head -55
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0" [1]="0")
PPID=10397
08:22:26
#set | head -54
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0" [1]="0")
PPID=10397
08:22:30
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.143 50510 22
L3_PARENT_TTY=/dev/pts/2
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/2
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=1414559551781928175-1522217890
a=1
PWD=/root
LANG=ru_RU.UTF-8
08:22:40
#echo $PS1]

08:26:50
#echo $PS1

/dev/pts/2
08:32:59
#man -k disk
08:33:15
#apropos -k
apropos что?
08:33:37
#apropos disk
arm_sync_file_range (2) - sync a file segment with disk
cfdisk (8)           - display or manipulate disk partition table
df (1)               - report file system disk space usage
fdformat (8)         - low-level format a floppy disk
fdisk (8)            - manipulate disk partition table
hd (4)               - MFM/IDE hard disk devices
initrd (4)           - boot loader initialized RAM disk
partx (8)            - tell the Linux kernel about the presence and numbering of on-disk partitions
quotactl (2)         - manipulate disk quotas
ram (4)              - ram disk device
sd (4)               - driver for SCSI disk drives
sfdisk (8)           - partition table manipulator for Linux
sync (2)             - commit buffer cache to disk
sync (8)             - synchronize data on disk with memory
sync_file_range (2)  - sync a file segment with disk
sync_file_range2 (2) - sync a file segment with disk
syncfs (2)           - commit buffer cache to disk
08:33:45
#man passwd
08:37:07
#man 5 passwd
08:38:30
#test 5 -eq 5

прошло 13 минут
08:51:47
#echo $?
0
08:51:55
#test 5 -eq 6

08:52:00
#echo $?
1
08:52:02
#[ 5 -eq 6 ]

08:52:23
#echo $?
1
08:52:24
#[ 5 -eq 5 ]

08:53:06
#echo $?
0
08:53:07
#echo $?ls
0ls
08:54:02
#ls
a1  d2  d3  f5  install  installh  ip.txt  MBR  passwd
08:54:06
#test -e install

08:54:19
#echo $?ls
0ls
08:54:21
#echo $?
0
08:54:24
#test -e installx

08:54:30
#echo $?
1
08:54:33
#man test
08:55:45
#help
GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
 job_spec [&]                                                             history [-c] [-d offset] [n] or history -anrw [filename] or history ->
 (( expression ))                                                         if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ el>
 . filename [arguments]                                                   jobs [-lnprs] [jobspec ...] or jobs -x command [args]
 :                                                                        kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l>
...
 export [-fn] [name[=value] ...] or export -p                             typeset [-aAfFgilrtux] [-p] name[=value] ...
 false                                                                    ulimit [-SHacdefilmnpqrstuvx] [limit]
 fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]         umask [-p] [-S] [mode]
 fg [job_spec]                                                            unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMANDS; done                             unset [-f] [-v] [name ...]
 for (( exp1; exp2; exp3 )); do COMMANDS; done                            until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name () { COMMANDS ; }                   variables - Names and meanings of some shell variables
 getopts optstring name [arg]                                             wait [id]
 hash [-lr] [-p pathname] [-dt] [name ...]                                while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...]                                                { COMMANDS ; }
09:02:13
#man cd
09:02:20
#info grub
09:03:32
#File: grub.info, Node: Installation, Next: Booting, Prev: Naming convention, Up: Top
coreutils.info.gz  dir.old       gnupg1.info.gz    grub.info.gz  screen.info-1.gz  screen.info-4.gz  screen.info.gz
diffutils.info.gz  find.info.gz  grep.info.gz      gzip.info.gz  screen.info-2.gz  screen.info-5.gz  sed.info.gz
dir                gdbm.info.gz  grub-dev.info.gz  nano.info.gz  screen.info-3.gz  screen.info-6.gz  wget.info.gz
09:04:25
#ls /usr/share/man/
cs  da  de  es  fi  fr  gl  hu  id  it  ja  ko  man1  man2  man3  man4  man5  man6  man7  man8  nl  pl  pt  pt_BR  ru  sl  sv  tr  zh_CN  zh_TW
09:04:31
#ls /usr/share/man
cs  da  de  es  fi  fr  gl  hu  id  it  ja  ko  man1  man2  man3  man4  man5  man6  man7  man8  nl  pl  pt  pt_BR  ru  sl  sv  tr  zh_CN  zh_TW
09:04:38
#sleep 100
jkhjkl
jhjk
jkj
^C
09:09:28
#sleep 100 &
[1] 10861
09:09:41
#jobs
[1]+  Running                 sleep 100 &
09:10:39
#jobs -l
[1]+ 10861 Running                 sleep 100 &
09:11:03
#jobs -l
[1]+ 10861 Done                    sleep 100
09:12:29
#jobs -l

09:12:36
#help for
for: for NAME [in WORDS ... ] ; do COMMANDS; done
    Execute commands for each member in a list.
    The `for' loop executes a sequence of commands for each member in a
    list of items.  If `in WORDS ...;' is not present, then `in "$@"' is
    assumed.  For each element in WORDS, NAME is set to that element, and
    the COMMANDS are executed.
    Exit Status:
    Returns the status of the last command executed.
for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
    Arithmetic for loop.
    Equivalent to
        (( EXP1 ))
        while (( EXP2 )); do
                COMMANDS
                (( EXP3 ))
        done
    EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is
    omitted, it behaves as if it evaluates to 1.
    Exit Status:
    Returns the status of the last command executed.
09:14:21
#mkdir scripts

09:16:51
#cd scripts/

09:17:28
#vi shell.sh
--- /dev/null	2018-03-26 08:42:44.419999904 +0300
+++ shell.sh	2018-03-28 10:19:42.969609852 +0300
@@ -0,0 +1 @@
+#!/bin/bash
09:19:43
#vi shell.sh
--- /tmp/l3-saved-10572.22436.2615	2018-03-28 10:19:45.065605985 +0300
+++ shell.sh	2018-03-28 10:27:44.685604991 +0300
@@ -1 +1,9 @@
 #!/bin/bash
+
+users=$(awk -F: '$3>=1000 && $3!=65534 {print $1}' /etc/passwd)
+
+for $user in $users
+   do
+       echo "Зміненно shell для користувача $user..."
+       usermod -s /bin/zsh $user
+   done	
09:27:44
#ls
shell.sh
09:27:56
#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
09:29:52
#which who
/usr/bin/who
09:30:03
#pwd
/root/scripts
09:30:17
#./shell.sh
l3script: ./shell.sh: Отказано в доступе
09:30:55
#ls -l
итого 4
-rw-r--r-- 1 root root 222 Мар 28 10:27 shell.sh
09:31:19
#chmod u+x shell.sh

09:32:25
#ls -l
итого 4
-rwxr--r-- 1 root root 222 Мар 28 10:27 shell.sh
09:32:30
#./shell.sh
./shell.sh: line 9: `$user': неправильный идентификатор
09:32:49
#vi shell.sh
--- /tmp/l3-saved-10572.18792.1716	2018-03-28 10:32:59.441606012 +0300
+++ shell.sh	2018-03-28 10:33:25.149602702 +0300
@@ -4,6 +4,6 @@
 
 for $user in $users
    do
-       echo "Зміненно shell для користувача $user..."
+       echo "Change shell for user $user..."
        usermod -s /bin/zsh $user
    done	
09:33:25
#./shell.sh
./shell.sh: line 9: `$user': неправильный идентификатор
09:33:26
#vi shell.sh
--- /tmp/l3-saved-10572.10473.2303	2018-03-28 10:33:42.441593542 +0300
+++ shell.sh	2018-03-28 10:34:12.505584639 +0300
@@ -2,7 +2,7 @@
 
 users=$(awk -F: '$3>=1000 && $3!=65534 {print $1}' /etc/passwd)
 
-for $user in $users
+for user in $users
    do
        echo "Change shell for user $user..."
        usermod -s /bin/zsh $user
09:34:12
#./shell.sh
Change shell for user user...
Change shell for user ivan...
Change shell for user petr...
09:34:14
#vi shell.sh
--- /tmp/l3-saved-10572.9156.17031	2018-03-28 10:34:50.621551039 +0300
+++ shell.sh	2018-03-28 10:35:50.177608249 +0300
@@ -4,6 +4,6 @@
 
 for user in $users
    do
-       echo "Change shell for user $user..."
+       echo "Change   shell for user $user..."
        usermod -s /bin/zsh $user
    done	
09:35:50
#vi shell.sh
--- /tmp/l3-saved-10572.20809.12419	2018-03-28 10:35:53.933604086 +0300
+++ shell.sh	2018-03-28 10:36:09.177613720 +0300
@@ -4,6 +4,6 @@
 
 for user in $users
    do
-       echo "Change   shell for user $user..."
+       echo "Change зміненно  shell for user $user..."
        usermod -s /bin/zsh $user
    done	
09:36:09
#./shell.sh
Change зміненно  shell for user user...
usermod: изменения не внесены
Change зміненно  shell for user ivan...
usermod: изменения не внесены
Change зміненно  shell for user petr...
usermod: изменения не внесены
09:36:11
#vi shell.sh
--- /tmp/l3-saved-10572.8180.22219	2018-03-28 10:36:26.093635573 +0300
+++ shell.sh	2018-03-28 10:36:45.237617761 +0300
@@ -4,6 +4,6 @@
 
 for user in $users
    do
-       echo "Change зміненно  shell for user $user..."
+       echo "Change shell for user $user..."
        usermod -s /bin/zsh $user
    done	
09:36:45
#vi shell.sh
--- /tmp/l3-saved-10572.19129.22052	2018-03-28 10:58:07.633515780 +0300
+++ shell.sh	2018-03-28 10:59:31.969606324 +0300
@@ -2,8 +2,10 @@
 
 users=$(awk -F: '$3>=1000 && $3!=65534 {print $1}' /etc/passwd)
 
+shell=$1
+
 for user in $users
    do
-       echo "Change shell for user $user..."
-       usermod -s /bin/zsh $user
+       echo "Change shell $shell for user $user..."
+       usermod -s /bin/$shell $user
    done	
прошло 22 минуты
09:59:32
#./shell.sh bash
Change shell bash for user user...
Change shell bash for user ivan...
Change shell bash for user petr...
09:59:51
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash

Файлы

  • /etc/passwd
  • /etc/passwd
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    Debian-exim:x:101:103::/var/spool/exim4:/bin/false
    user:x:1000:1000:user,,,:/home/user:/bin/bash
    sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
    ivan:x:1001:1001::/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/bash
    

    Статистика

    Время первой команды журнала15:30:23 2018- 3-27
    Время последней команды журнала09:59:51 2018- 3-28
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %10.89
    Процент синтаксически неверно набранных команд, % 1.98
    Суммарное время работы с терминалом *, час 2.44
    Количество командных строк в единицу времени, команда/мин 0.69
    Частота использования команд
    echo13|============| 12.26%
    ls9|========| 8.49%
    vi9|========| 8.49%
    cd7|======| 6.60%
    man6|=====| 5.66%
    set6|=====| 5.66%
    shell.sh6|=====| 5.66%
    find5|====| 4.72%
    head4|===| 3.77%
    locate4|===| 3.77%
    jobs4|===| 3.77%
    test4|===| 3.77%
    sleep2|=| 1.89%
    [2|=| 1.89%
    help2|=| 1.89%
    a=12|=| 1.89%
    apropos2|=| 1.89%
    bash2|=| 1.89%
    mkdir1|| 0.94%
    chmod1|| 0.94%
    env1|| 0.94%
    info1|| 0.94%
    File:1|| 0.94%
    ьÑman1|| 0.94%
    cat1|| 0.94%
    /etc/cron.daily#1|| 0.94%
    pwd1|| 0.94%
    $a1|| 0.94%
    >1|| 0.94%
    history1|| 0.94%
    export1|| 0.94%
    less1|| 0.94%
    issue1|| 0.94%
    b=101|| 0.94%
    which1|| 0.94%
    ____
    *) Интервалы неактивности длительностью 30 минут и более не учитываются

    Справка

    Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
    1. В журнал автоматически попадают все команды, данные в любом терминале системы.

    2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

    3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
      $ l s-l
      bash: l: command not found
      

    4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
      $ test 5 -lt 4
      Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

    5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
      $ 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
      

    6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
      # id
      uid=0(root) gid=0(root) Gruppen=0(root)
      

    7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
      $ vi ~/.bashrc
      2a3,5
      >    if [ -f /usr/local/etc/bash_completion ]; then
      >         . /usr/local/etc/bash_completion
      >        fi
      

    8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
      $ patch ~/.bashrc
      В данном случае изменения применяются к файлу ~/.bashrc

    9. Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.

      Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

    10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

    11. Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора

    12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

    13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

    14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

      $ whoami
      
      user
      
      $ #^ Интересно, кто я?
      
      в журнале это будет выглядеть так:
      $ whoami
      
      user
      
      Интересно, кто я?

    15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

      $ whoami
      
      user
      
      $ cat > /dev/null #^ Интересно, кто я?
      
      Программа whoami выводит имя пользователя, под которым 
      мы зарегистрировались в системе.
      -
      Она не может ответить на вопрос о нашем назначении 
      в этом мире.
      
      В журнале это будет выглядеть так:
      $ whoami
      user
      
      Интересно, кто я?
      Программа whoami выводит имя пользователя, под которым
      мы зарегистрировались в системе.

      Она не может ответить на вопрос о нашем назначении
      в этом мире.
      Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

    16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

    17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
    18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
    19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
      1
          2
      3   
          4
      
      Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

    О программе

    LiLaLo (L3) расшифровывается как Live Lab Log.
    Программа разработана для повышения эффективности обучения Unix/Linux-системам.
    (c) Игорь Чубин, 2004-2008

    $Id$