/l3/users/27-11-2017/NT-Ladm/debian1.net.nt/root :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 |
|
#stat test/
Файл: «test/» Размер: 4096 Блоков: 8 Блок В/В: 4096 каталог Устройство: ca01h/51713d Inode: 653131 Ссылки: 2 Доступ: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Доступ: 2017-11-29 12:17:34.298863676 +0200 Модифицирован: 2017-11-29 12:17:34.298863676 +0200 Изменён: 2017-11-29 12:17:34.298863676 +0200 Создан: - |
#find /home/ \( -type f -or -type d \) -user ivan -mtime -1 -size -10k
/home/ivan /home/ivan/.bash_history /home/ivan/files.txt |
#find /home/ \( -type f -or -type d \) -user ivan -mtime -1 -size -10k | xargs -i cp -R {} /tmp/
|
#ls /tmp/
777 aptitude-user.4749:2erJv7 dirlist etccopy f1 f2 f3 f4 f5 files.txt ivan |
#ls /tmp/ivan/
error.txt files.txt |
#man find
|
#find / -regex ".*\.jpe?g"
|
#ls
f1 f2 f3 f4 f5 files.txt install ip.txt passwd prox.txt sshconn.sh test |
#^C
|
#find / -regex ".*\.JPE?G"
/home/user/PRESS_ANY_KEY_TO_CONTINUE.JPG /home/user/FREEBSD.JPG /home/user/OGO.JPG /home/user/MATRIX.JPG /home/user/GRANATA.JPG |
#find / -regex ".*\.JPE?G"
/home/user/PRESS_ANY_KEY_TO_CONTINUE.JPG /home/user/FREEBSD.JPG /home/user/OGO.JPG /home/user/MATRIX.JPG /home/user/GRANATA.JPG |
#find / -size +10MB -ls
find: неверный тип 'B' для -size |
#find / -size +10M -ls
4000 0 -rw------- 1 root root 33554432 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:02.0/resource0 4001 0 -rw------- 1 root root 33554432 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:02.0/resource0_wc 4007 0 -rw------- 1 root root 16777216 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:03.0/resource1 4008 0 -rw------- 1 root root 16777216 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:03.0/resource1_wc 136920 11524 -rwxr-xr-x 1 root root 11800376 Янв 6 2013 /usr/lib/gcc/x86_64-linux-gnu/4.7/lto1 136887 12152 -rwxr-xr-x 1 root root 12440264 Янв 6 2013 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 783412 18048 -rw-r--r-- 1 root root 18478594 Июл 12 2014 /var/lib/apt/lists/ftp.ua.debian.org_debian_dists_wheezy_main_i18n_Translation-en 783497 27808 -rw-r--r-- 1 root root 28474810 Июл 12 2014 /var/lib/apt/lists/ftp.ua.debian.org_debian_dists_wheezy_main_binary-amd64_Packages 783491 24644 -rw-r--r-- 1 root root 25233027 Июл 12 2014 /var/lib/apt/lists/ftp.ua.debian.org_debian_dists_wheezy_main_source_Sources 783424 21480 -rw-r--r-- 1 root root 21994354 Окт 13 2014 /var/cache/apt/srcpkgcache.bin 783898 21480 -rw-r--r-- 1 root root 21994403 Ноя 28 09:26 /var/cache/apt/pkgcache.bin 785194 22868 -rw-r--r-- 1 root root 23416520 Июл 23 2014 /var/cache/apt/archives/linux-image-3.2.0-4-amd64_3.2.60-1+deb7u3_amd64.deb 784579 22900 -rw-r--r-- 1 root root 23446392 Июн 5 2014 /var/cache/apt/archives/linux-image-3.2.0-4-amd64_3.2.57-3+deb7u2_amd64.deb 783382 13176 -rw------- 1 root root 13488315 Июн 27 2014 /var/log/installer/cdebconf/templates.dat 4026532062 0 -r-------- 1 root root 140737486262272 Ноя 29 12:35 /proc/kcore find: `/proc/13601/task/13601/fd/5': Нет такого файла или каталога find: `/proc/13601/task/13601/fdinfo/5': Нет такого файла или каталога find: `/proc/13601/fd/5': Нет такого файла или каталога find: `/proc/13601/fdinfo/5': Нет такого файла или каталога |
#find / -size +10240 -ls
4000 0 -rw------- 1 root root 33554432 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:02.0/resource0 4001 0 -rw------- 1 root root 33554432 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:02.0/resource0_wc 4007 0 -rw------- 1 root root 16777216 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:03.0/resource1 4008 0 -rw------- 1 root root 16777216 Ноя 27 15:38 /sys/devices/pci0000:00/0000:00:03.0/resource1_wc 136920 11524 -rwxr-xr-x 1 root root 11800376 Янв 6 2013 /usr/lib/gcc/x86_64-linux-gnu/4.7/lto1 136887 12152 -rwxr-xr-x 1 root root 12440264 Янв 6 2013 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 783412 18048 -rw-r--r-- 1 root root 18478594 Июл 12 2014 /var/lib/apt/lists/ftp.ua.debian.org_debian_dists_wheezy_main_i18n_Translation-en 783497 27808 -rw-r--r-- 1 root root 28474810 Июл 12 2014 /var/lib/apt/lists/ftp.ua.debian.org_debian_dists_wheezy_main_binary-amd64_Packages 783491 24644 -rw-r--r-- 1 root root 25233027 Июл 12 2014 /var/lib/apt/lists/ftp.ua.debian.org_debian_dists_wheezy_main_source_Sources 783424 21480 -rw-r--r-- 1 root root 21994354 Окт 13 2014 /var/cache/apt/srcpkgcache.bin ... 784579 22900 -rw-r--r-- 1 root root 23446392 Июн 5 2014 /var/cache/apt/archives/linux-image-3.2.0-4-amd64_3.2.57-3+deb7u2_amd64.deb 785048 5292 -rw-r--r-- 1 root root 5416124 Янв 7 2013 /var/cache/apt/archives/cpp-4.7_4.7.2-5_amd64.deb 785054 8104 -rw-r--r-- 1 root root 8295686 Янв 7 2013 /var/cache/apt/archives/gcc-4.7_4.7.2-5_amd64.deb 783382 13176 -rw------- 1 root root 13488315 Июн 27 2014 /var/log/installer/cdebconf/templates.dat 262072 9992 -rw-r--r-- 1 root root 10229417 Окт 13 2014 /boot/initrd.img-3.2.0-4-amd64 4026532062 0 -r-------- 1 root root 140737486262272 Ноя 29 12:35 /proc/kcore find: `/proc/13609/task/13609/fd/5': Нет такого файла или каталога find: `/proc/13609/task/13609/fdinfo/5': Нет такого файла или каталога find: `/proc/13609/fd/5': Нет такого файла или каталога find: `/proc/13609/fdinfo/5': Нет такого файла или каталога |
#find / -mtime +2
/ /sys /sys/fs /sys/fs/cgroup /sys/devices /sys/devices/virtual /sys/devices/virtual/net /sys/devices/virtual/net/lo /sys/devices/virtual/net/lo/operstate /sys/devices/vbd-768 ... /proc/389/exe /proc/1914 /proc/1914/exe /proc/2263 /proc/2263/oom_score_adj find: `/proc/13617/task/13617/fd/5': Нет такого файла или каталога find: `/proc/13617/task/13617/fdinfo/5': Нет такого файла или каталога find: `/proc/13617/fd/5': Нет такого файла или каталога find: `/proc/13617/fdinfo/5': Нет такого файла или каталога /opt |
#find ~ -mtime +2
/root/.aptitude /root/.aptitude/config /root/.lilalo/2525264871024819419-1403867138.info /root/.lilalo/143184190977814884-1413212456.info /root/.lilalo/l3bashrc /root/.lilalo/23119324163069212524-1403867377_1403867394_root_.lilalo_l3bashrc.diff /root/.lilalo/133518653134476610-1413379473.info /root/.lilalo/1901738991017822016-1413212497.info /root/.lilalo/l3prompt /root/.lilalo/23119324163069212524-1403867377_1403867447_root_.l3rc.diff /root/.lilalo/133518653134476610-1413379473.script /root/.lilalo/2525264871024819419-1403867138.script /root/.lilalo/23119324163069212524-1403867377.info /root/.lilalo/1901738991017822016-1413212497.script /root/.lilalo/143184190977814884-1413212456.script /root/.lilalo/23119324163069212524-1403867377.script /root/.profile /root/.l3rc /root/.bash_profile |
#find ~ -mtime -5
/root /root/.bashrc /root/.lilalo /root/.lilalo/3605135512359110721-1511853459.info /root/.lilalo/31406218492456722173-1511776919_1511777889_etc_resolv.conf.diff /root/.lilalo/31406218492456722173-1511776919_1511791739_root_.vimrc.diff /root/.lilalo/28749221202138130065-1511859579_1511861488_root_.bashrc.diff /root/.lilalo/31406218492456722173-1511776919.info /root/.lilalo/31406218492456722173-1511776919_1511777931_etc_resolv.conf.diff /root/.lilalo/28749221202138130065-1511859579.info ... /root/.l3rc /root/f5 /root/f4 /root/.viminfo /root/test /root/sshconn.sh /root/.vim /root/.vim/.netrwhist /root/install /root/.vimrc |
#find / -type l
/sys/devices/system/cpu/cpu0/subsystem /sys/devices/system/cpu/cpu0/node0 /sys/devices/system/memory/memory0/node0 /sys/devices/system/memory/memory1/node0 /sys/devices/system/memory/memory2/node0 /sys/devices/system/memory/memory3/node0 /sys/devices/system/node/node0/memory0 /sys/devices/system/node/node0/memory1 /sys/devices/system/node/node0/memory2 /sys/devices/system/node/node0/memory3 ... /proc/13641/fd/0 /proc/13641/fd/1 /proc/13641/fd/2 /proc/13641/fd/3 /proc/13641/fd/4 find: `/proc/13641/fd/5': Нет такого файла или каталога find: `/proc/13641/fdinfo/5': Нет такого файла или каталога /proc/13641/cwd /proc/13641/root /proc/13641/exe |
#find / -user user
/tmp/dirlist /tmp/etccopy /tmp/etccopy/console-cyrillic /tmp/etccopy/sysctl.conf /tmp/etccopy/screenrc /tmp/etccopy/logrotate.conf /tmp/etccopy/hosts.deny /tmp/etccopy/bash.bashrc /tmp/etccopy/blkid.tab.old /tmp/etccopy/crontab ... /proc/12103/oom_adj /proc/12103/oom_score_adj /proc/12103/loginuid /proc/12103/sessionid /proc/12103/coredump_filter /proc/12103/io find: `/proc/13649/task/13649/fd/5': Нет такого файла или каталога find: `/proc/13649/task/13649/fdinfo/5': Нет такого файла или каталога find: `/proc/13649/fd/5': Нет такого файла или каталога find: `/proc/13649/fdinfo/5': Нет такого файла или каталога |
#find / -perm +6000
/usr/lib/openssh/ssh-keysign /usr/lib/pt_chown /usr/lib/eject/dmcrypt-get-device /usr/bin/chage /usr/bin/crontab /usr/bin/passwd /usr/bin/dotlockfile /usr/bin/mail-lock /usr/bin/mail-unlock /usr/bin/expiry ... /var/cache/man/sl/cat1 /var/cache/man/sl/cat8 /var/mail /var/local /var/log/exim4 /sbin/unix_chkpwd find: `/proc/13657/task/13657/fd/5': Нет такого файла или каталога find: `/proc/13657/task/13657/fdinfo/5': Нет такого файла или каталога find: `/proc/13657/fd/5': Нет такого файла или каталога find: `/proc/13657/fdinfo/5': Нет такого файла или каталога |
#mkdir ~/soft
|
#ls
f1 f2 f3 f4 f5 files.txt install ip.txt passwd prox.txt soft sshconn.sh test |
#> file.tar
|
#> file2.gz
|
#> file3.tgz
|
#> file4.rpm
|
#find ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
|
#man find
|
#find ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)' -3level
find: unknown predicate `-3level' |
#find -3level ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
find: unknown predicate `-3level' |
#find -O 3 ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
find: The -O option must be immediately followed by a decimal integer |
#find -O3 ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
|
#find -O3 ~ -regex '.*(\.tar\.gz|\.tgz|\.rpm)'
|
#find -O3 ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
|
#find -Olevel3 ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
find: Please specify a decimal number immediately after -O |
#find -O2 ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
|
#find ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
|
#find -D /root/ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
find: Ignoring unrecognised debug flag `/root/' |
#find -O3 ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
|
#find ~ -regex '.*(\.tar|\.gz|\.tgz|\.rpm)' -ok ls
find: отсутствует аргумент у `-ok' |
#find ~ -regextype posix-egrep -regex '.*(\.tar|\.gz|\.tgz|\.rpm)'
/root/file4.rpm /root/file.tar /root/file2.gz /root/file3.tgz |
#find ~ -regextype posix-egrep -regex '.*(\.tar|\.gz|\.tgz|\.rpm)' | xargs -i mv {} ~/soft
|
#ls ~/soft/
file2.gz file3.tgz file4.rpm file.tar |
#find ~ -regextype posix-egrep -regex '.*(\.tar|\.gz|\.tgz|\.rpm)' -ok rm -f {} \;
< rm ... /root/soft/file4.rpm > ? n < rm ... /root/soft/file.tar > ? n < rm ... /root/soft/file2.gz > ? n < rm ... /root/soft/file3.tgz > ? n |
#a=10
|
#echo $a
10 |
#bash
root@debian1:~# pstree pstree pstree.x11 root@debian1:~# pstree pstree pstree.x11 root@debian1:~# pstree -h init─┬─acpid ├─cron ├─exim4 ├─6*[getty] ├─2*[l3-agent] ├─rsyslogd───3*[{rsyslogd}] ├─sshd─┬─sshd───bash───script───script───l3script───bash───pstree │ └─sshd───sshd───bash───script───script───l3script └─udevd───udevd root@debian1:~# echo $a root@debian1:~# exit exit |
#export a
|
#bash
root@debian1:~# echo $a 10 root@debian1:~# exit |
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.211 49165 22 L3_PARENT_TTY=/dev/pts/0 OLDPWD=/etc/cron.daily L3_TAMPERED_EDITORS= vi vim pico nano SSH_TTY=/dev/pts/0 USER=root HISTFILESIZE=2000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin MAIL=/var/mail/root L3_SESSION_ID=1721139312144720097-1511940218 a=10 PWD=/root LANG=ru_RU.UTF-8 |
#b=20
|
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.211 49165 22 L3_PARENT_TTY=/dev/pts/0 OLDPWD=/etc/cron.daily L3_TAMPERED_EDITORS= vi vim pico nano SSH_TTY=/dev/pts/0 USER=root HISTFILESIZE=2000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin MAIL=/var/mail/root L3_SESSION_ID=1721139312144720097-1511940218 a=10 PWD=/root LANG=ru_RU.UTF-8 |
#set
BASH=/usr/local/bin/l3script BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob: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' ... MACHTYPE=x86_64-pc-linux-gnu MAIL=/var/mail/root MAILCHECK=60 OLDPWD=/etc/cron.daily OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PIPESTATUS=([0]="0") PPID=11432 |
#set | less
|
#set | egrep '^[[:alpha:]]+='
BASH=/usr/local/bin/l3script BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath COLUMNS=157 DIFFNAME=1721139312144720097-1511940218_1511948685_etc_cron.daily_locate.diff DIR=/etc/cron.daily/ DIRSTACK=() EUID=0 GROUPS=() HISTFILE=/root/.bash_history HISTFILESIZE=2000 ... RANDOM=23062 SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor SHLVL=3 TERM=xterm TIME=1511948685 UID=0 USER=root a=10 b=20 |
#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 ... 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 |
#> shell.sh
|
#vi !$
--- /tmp/l3-saved-11433.2058.27908 2017-11-29 14:13:31.526871190 +0200 +++ shell.sh 2017-11-29 14:35:41.678855584 +0200 @@ -0,0 +1,10 @@ +#!/bin/bash + +users = $(awk -F: '$3>=1000 && $3!=65534 {print$1}' /etc/passwd | tr '\n' ' ') +for user in $users + do + echo "Changing shell for user $user..." + sleep 1 + usermod -s /bin/zsh $user + done + |
#./shell.sh
l3script: ./shell.sh: Отказано в доступе |
#ls -l
итого 40 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f1 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f2 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f3 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f4 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f5 -rw-r--r-- 1 root root 2 Ноя 29 12:15 files.txt -rw-r--r-- 1 root root 5338 Ноя 28 13:52 install -rw-r--r-- 1 root root 149 Ноя 29 09:40 ip.txt -rw-r--r-- 1 root root 947 Ноя 28 16:30 passwd -rw-r--r-- 1 root root 846 Ноя 28 14:05 prox.txt -rw-r--r-- 1 root root 206 Ноя 29 14:35 shell.sh drwxr-xr-x 2 root root 4096 Ноя 29 12:58 soft -rwxr-xr-x 1 root root 43 Ноя 29 09:51 sshconn.sh drwxr-xr-x 2 root root 4096 Ноя 29 12:17 test |
#chmod u+x ./shell.sh
|
#ls -l --colore
ls: ключ --colore не распознан Попробуйте «ls --help» для получения более подробного описания. |
#ls -l --colores
ls: ключ --colores не распознан Попробуйте «ls --help» для получения более подробного описания. |
#ls -l --color
итого 40 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f1 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f2 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f3 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f4 -rw-r--r-- 1 root root 0 Ноя 28 11:47 f5 -rw-r--r-- 1 root root 2 Ноя 29 12:15 files.txt -rw-r--r-- 1 root root 5338 Ноя 28 13:52 install -rw-r--r-- 1 root root 149 Ноя 29 09:40 ip.txt -rw-r--r-- 1 root root 947 Ноя 28 16:30 passwd -rw-r--r-- 1 root root 846 Ноя 28 14:05 prox.txt -rwxr--r-- 1 root root 206 Ноя 29 14:35 shell.sh drwxr-xr-x 2 root root 4096 Ноя 29 12:58 soft -rwxr-xr-x 1 root root 43 Ноя 29 09:51 sshconn.sh drwxr-xr-x 2 root root 4096 Ноя 29 12:17 test |
#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 ... 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 |
#./shell.sh
users: лишний операнд «user» Попробуйте «users --help» для получения более подробного описания. |
#vi ./shell.sh
--- /tmp/l3-saved-11433.15258.1964 2017-11-29 14:39:13.914857655 +0200 +++ ./shell.sh 2017-11-29 14:39:40.614856640 +0200 @@ -1,6 +1,6 @@ #!/bin/bash -users = $(awk -F: '$3>=1000 && $3!=65534 {print$1}' /etc/passwd | tr '\n' ' ') +users=$(awk -F: '$3>=1000 && $3!=65534 {print$1}' /etc/passwd | tr '\n' ' ') for user in $users do echo "Changing shell for user $user..." |
#./shell.sh
Changing shell for user user... Changing shell for user ivan... |
#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 ... 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/zsh sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin ivan:x:1001:1001::/home/ivan:/bin/zsh |
#cat /etc/passwd | grep zsh
user:x:1000:1000:user,,,:/home/user:/bin/zsh ivan:x:1001:1001::/home/ivan:/bin/zsh |
#cat /etc/shells
# /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /bin/zsh /usr/bin/zsh |
#vi ./shell.sh
--- /tmp/l3-saved-11433.25224.22043 2017-11-29 14:47:10.766902552 +0200 +++ ./shell.sh 2017-11-29 14:53:13.782852469 +0200 @@ -1,10 +1,12 @@ #!/bin/bash +shell="/bin/$1" + users=$(awk -F: '$3>=1000 && $3!=65534 {print$1}' /etc/passwd | tr '\n' ' ') for user in $users do - echo "Changing shell for user $user..." + echo "Changing shell $shell for user $user..." sleep 1 - usermod -s /bin/zsh $user + usermod -s $shell $user done |
#cat /etc/passwd | grep zsh
user:x:1000:1000:user,,,:/home/user:/bin/zsh ivan:x:1001:1001::/home/ivan:/bin/zsh |
#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 ... 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 |
#./shell.sh
Changing shell /bin/bash for user user... usermod: изменения не внесены Changing shell /bin/bash for user ivan... usermod: изменения не внесены |
#./shell.sh zsh
Changing shell /bin/zsh for user user... Changing shell /bin/zsh for user ivan... |
#./shell.sh
Changing shell /bin/bash for user user... Changing shell /bin/bash for user ivan... |
#echo $?
0 |
#test 5 -eq 5
|
#echo $?
0 |
#help test
test: test [expr] Evaluate conditional expression. Exits with a status of 0 (true) or 1 (false) depending on the evaluation of EXPR. Expressions may be unary or binary. Unary expressions are often used to examine the status of a file. There are string operators and numeric comparison operators as well. The behavior of test depends on the number of arguments. Read the bash manual page for the complete specification. File operators: -a FILE True if file exists. ... arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne, -lt, -le, -gt, or -ge. Arithmetic binary operators return true if ARG1 is equal, not-equal, less-than, less-than-or-equal, greater-than, or greater-than-or-equal than ARG2. See the bash manual page bash(1) for the handling of parameters (i.e. missing parameters). Exit Status: Returns success if EXPR evaluates to true; fails if EXPR evaluates to false or an invalid argument is given. |
#test 5 -eq 6
|
#echo $?
1 |
#test -x shell.sh
|
#echo $?
0 |
#test -x prox.txt
|
#echo $?
1 |
#test -x /bin/bash
|
#echo $?
0 |
#[ -x /bin/bash ]
|
#echo $?
0 |
#vi ./shell.sh
--- /tmp/l3-saved-11433.2000.368 2017-11-29 15:11:15.190854753 +0200 +++ ./shell.sh 2017-11-29 15:15:38.690873390 +0200 @@ -3,6 +3,12 @@ shell="/bin/${1:-bash}" +if [ ! -x $shell ] + then + echo "Shell $shell do not exist!" + exit 2 + fi + users=$(awk -F: '$3>=1000 && $3!=65534 {print$1}' /etc/passwd | tr '\n' ' ') for user in $users do |
#./shell.sh asdasd
Shell /bin/asdasd do not exist! |
#echo $?
2 |
#./shell.sh asdasd
Shell /bin/asdasd do not exist! |
#./shell.sh zsh
Changing shell /bin/zsh for user user... Changing shell /bin/zsh for user ivan... |
#./shell.sh
Changing shell /bin/bash for user user... Changing shell /bin/bash for user ivan... |
#man [
|
#man !
|
#man history
|
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
# /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /bin/zsh /usr/bin/zsh
Время первой команды журнала | 11:15:17 2017-11-29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 14:24:29 2017-11-29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 17.82 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 0.00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 2.11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 0.80 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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