/l3/users/27-3-2017/NT-Ladm/debian3.net.nt/root :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 |
|
#ls
backup bin debian3 debian3.text2 file granata.jpg lpi 1 man_smb_conf names pamyatka.pdf press_any_key_to_continue.jpg screenrc temp.tar touchlist bigfile cod debian3.text debian3.txt freebsd.jpg light_alloy_4.4.784_rc2_by_fafnir.exe lpi 2 matrix.jpg ogo.jpg passwd proj sh text |
#find ~ -regex '.*(\.tar|\.gz|\.tgz|\.rmp)'
|
#man find
|
#find ~ -regex '.*(\.tar|\.gz|\.tgz|\.rmp)' -regextype posix-egrep
|
#ls
backup bin debian3 debian3.text2 file granata.jpg lpi 1 man_smb_conf names pamyatka.pdf press_any_key_to_continue.jpg screenrc temp.tar touchlist bigfile cod debian3.text debian3.txt freebsd.jpg light_alloy_4.4.784_rc2_by_fafnir.exe lpi 2 matrix.jpg ogo.jpg passwd proj sh text |
#pwd
/home/user |
#find ~user -regex '.*(\.tar|\.gz|\.tgz|\.rmp)' -regextype posix-egrep
|
#find ~user -regex '.*(\.tar\.gz|\.tgz|\.rmp)' -regextype posix-egrep
|
#find ~user -regex '.*(\.tar|\.gz|\.tgz|\.rmp)' -regextype posix-egrep
|
#find /home/user/ -regex '.*(\.tar|\.gz|\.tgz|\.rmp)' -regextype posix-egrep
.aptitude/ cod/ .l3rc names/ sh/ backup/ debian3 .lesshst ogo.jpg .ssh/ .bash_history debian3.text light_alloy_4.4.784_rc2_by_fafnir.exe pamyatka.pdf temp.tar .bash_logout debian3.text2 .lilalo/ passwd text/ .bash_profile debian3.txt lpi 1/ press_any_key_to_continue.jpg touchlist .bashrc file lpi 2/ .profile .vifm/ bigfile freebsd.jpg man_smb_conf proj/ .viminfo bin/ granata.jpg matrix.jpg screenrc .w3m/ |
#ls /home/user/
.aptitude/ cod/ .l3rc names/ sh/ backup/ debian3 .lesshst ogo.jpg .ssh/ .bash_history debian3.text light_alloy_4.4.784_rc2_by_fafnir.exe pamyatka.pdf temp.tar .bash_logout debian3.text2 .lilalo/ passwd text/ .bash_profile debian3.txt lpi 1/ press_any_key_to_continue.jpg touchlist .bashrc file lpi 2/ .profile .vifm/ bigfile freebsd.jpg man_smb_conf proj/ .viminfo bin/ granata.jpg matrix.jpg screenrc .w3m/ |
#ls /home/user/
backup bin debian3 debian3.text2 file granata.jpg lpi 1 man_smb_conf names pamyatka.pdf press_any_key_to_continue.jpg screenrc temp.tar touchlist bigfile cod debian3.text debian3.txt freebsd.jpg light_alloy_4.4.784_rc2_by_fafnir.exe lpi 2 matrix.jpg ogo.jpg passwd proj sh text |
#ls /home
ivan petr user |
#find /home/user -regex '\.tar' -regextype posix-egrep
|
#find /home/user/ -regex '\.tar' -regextype posix-egrep
|
#find /home/user/ -regex '\.tar' -regextype posix-egrep
|
#find /home/user/ -regex '\.tar'
|
#find /home/user/ -regex '*\.tar'
|
#find /home/user/ -regex '*\.tar'
|
#find /home/user/ -regex '*\.tar'
|
#ls
backup bin debian3 debian3.text2 file granata.jpg lpi 1 man_smb_conf names pamyatka.pdf press_any_key_to_continue.jpg screenrc temp.tar touchlist bigfile cod debian3.text debian3.txt freebsd.jpg light_alloy_4.4.784_rc2_by_fafnir.exe lpi 2 matrix.jpg ogo.jpg passwd proj sh text |
#find /home/user/ -regex '*\.tar'
|
#pwd
/home/user |
#man find
|
#man find
|
#find /home/user/ -regextype posix-grep -regex '*\.tar'
find: Unknown regular expression type `posix-grep'; valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'. |
#find /home/user/ -regextype posix-egrep -regex '*\.tar'
|
#find /home/user/ -regextype posix-egrep -regex '.*\.tar'
/home/user/temp.tar |
#a=1
|
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.187 49228 22 L3_PARENT_TTY=/dev/pts/0 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=31383263589649259-1490769712 PWD=/home/user LANG=ru_RU.UTF-8 |
#echo $a
1 |
#bash
root@debian3:/home/user# echo $a root@debian3:/home/user# pstree init─┬─acpid ├─cron ├─exim4 ├─6*[getty] ├─2*[l3-agent] ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───bash───script───script───l3script───bash───pstree └─udevd root@debian3:/home/user# pstree -h init─┬─acpid ├─cron ├─exim4 ├─6*[getty] ├─2*[l3-agent] ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───bash───script───script───l3script───bash───pstree └─udevd root@debian3:/home/user# exit |
#echo $a
1 |
#pstree -h
init─┬─acpid ├─cron ├─exim4 ├─6*[getty] ├─2*[l3-agent] ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───bash───script───script───l3script───pstree └─udevd |
#export a
|
#bash
root@debian3:/home/user# echo $a 1 root@debian3:/home/user# exit |
#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' ... MACHTYPE=x86_64-pc-linux-gnu MAIL=/var/mail/root MAILCHECK=60 OLDPWD=/home OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PIPESTATUS=([0]="0") PPID=14495 |
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.187 49228 22 L3_PARENT_TTY=/dev/pts/0 OLDPWD=/home 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=31383263589649259-1490769712 a=1 PWD=/home/user LANG=ru_RU.UTF-8 |
#export
declare -x HISTFILESIZE="2000" declare -x HISTSIZE="2000" declare -x HOME="/root" declare -x L3_HOME="/root/.lilalo/" declare -x L3_PARENT_TTY="/dev/pts/0" declare -x L3_SESSION_ID="31383263589649259-1490769712" declare -x L3_TAMPERED_EDITORS=" vi vim pico nano" declare -x LANG="ru_RU.UTF-8" declare -x LANGUAGE="ru_UA:ru" declare -x LOGNAME="root" declare -x MAIL="/var/mail/root" declare -x OLDPWD="/home" declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
#man set
|
#help set
set: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] Set or unset values of shell options and positional parameters. Change the value of shell attributes and positional parameters, or display the names and values of shell variables. Options: -a Mark variables which are modified or created for export. -b Notify of job termination immediately. -e Exit immediately if a command exits with a non-zero status. -f Disable file name generation (globbing). -h Remember the location of commands as they are looked up. ... are unset. - Assign any remaining arguments to the positional parameters. The -x and -v options are turned off. Using + rather than - causes these flags to be turned off. The flags can also be used upon invocation of the shell. The current set of flags may be found in $-. The remaining n ARGs are positional parameters and are assigned, in order, to $1, $2, .. $n. If no ARGs are given, all shell variables are printed. Exit Status: Returns success unless an invalid option is given. |
#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 -ps arg [arg...] (( expression )) if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi . filename [arguments] jobs [-lnprs] [jobspec ...] or jobs -x command [args] : kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec] ... 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 ; } |
#help emacs
l3script: help: no help topics match `emacs'. Try `help help' or `man -k emacs' or `info emacs'. |
#help set
set: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] Set or unset values of shell options and positional parameters. Change the value of shell attributes and positional parameters, or display the names and values of shell variables. Options: -a Mark variables which are modified or created for export. -b Notify of job termination immediately. -e Exit immediately if a command exits with a non-zero status. -f Disable file name generation (globbing). -h Remember the location of commands as they are looked up. ... are unset. - Assign any remaining arguments to the positional parameters. The -x and -v options are turned off. Using + rather than - causes these flags to be turned off. The flags can also be used upon invocation of the shell. The current set of flags may be found in $-. The remaining n ARGs are positional parameters and are assigned, in order, to $1, $2, .. $n. If no ARGs are given, all shell variables are printed. Exit Status: Returns success unless an invalid option is given. |
#help set | grep emacs
emacs use an emacs-style line editing interface |
#help set | grep vim
|
#help env
l3script: help: no help topics match `env'. Try `help help' or `man -k env' or `info env'. |
#env --help
ÐÑполÑзование: env [ÐÐ-] [ÐÐЯ=ÐÐÐЧÐÐÐÐ]⦠[ÐÐÐÐÐÐÐ [ÐÐ Ð]â¦] ÐÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÐÐÐÐÐ ÑооÑвеÑÑÑвÑÑÑее ÐÐÐЧÐÐÐРи запÑÑÐºÐ°ÐµÑ ÐÐÐÐÐÐУ в ÑÑом окÑÑжении. -i, --ignore-environment наÑаÑÑ Ñ Ð¿ÑÑÑÑм окÑÑжением -0, --null завеÑÑаÑÑ ÐºÐ°Ð¶Ð´ÑÑ Ð²ÑводимÑÑ ÑÑÑÐ¾ÐºÑ 0-м байÑом, a не Ñимволом новой ÑÑÑоки -u, --unset=ÐÐЯ ÑдалиÑÑ Ð¿ÐµÑеменнÑÑ Ñ ÐÐÐÐÐРиз окÑÑÐ¶ÐµÐ½Ð¸Ñ --help показаÑÑ ÑÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¸ вÑйÑи --version показаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ веÑÑии и вÑйÑи ÐÑоÑÑо «-» -- Ñиноним Ð´Ð»Ñ Â«-i». ÐÑли не задана ÐÐÐÐÐÐÐ, пеÑаÑÐ°ÐµÑ Ð¿Ð¾Ð»ÑÑивÑееÑÑ Ð¾ÐºÑÑжение. Ðб оÑÐ¸Ð±ÐºÐ°Ñ Ð² env ÑообÑайÑе по адÑеÑÑ bug-coreutils@gnu.org. ÐомаÑнÑÑ ÑÑÑаниÑа GNU coreutils: <http://www.gnu.org/software/coreutils/> СпÑавка по ÑабоÑе Ñ Ð¿ÑогÑаммами GNU: <http://www.gnu.org/gethelp/> Ðб оÑÐ¸Ð±ÐºÐ°Ñ Ð² пеÑеводе ÑообÑений «env» ÑообÑайÑе по адÑеÑÑ <gnu@mx.ru> ÐÐ¾Ð»Ð½Ð°Ñ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ Ð´Ð¾ÑÑÑпна по команде: info coreutils 'env invocation' |
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.187 49228 22 L3_PARENT_TTY=/dev/pts/0 OLDPWD=/home 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=31383263589649259-1490769712 a=1 PWD=/home/user LANG=ru_RU.UTF-8 |
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.187 49228 22 L3_PARENT_TTY=/dev/pts/0 OLDPWD=/home 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=31383263589649259-1490769712 a=1 PWD=/home/user LANG=ru_RU.UTF-8 |
#export
declare -x HISTFILESIZE="2000" declare -x HISTSIZE="2000" declare -x HOME="/root" declare -x L3_HOME="/root/.lilalo/" declare -x L3_PARENT_TTY="/dev/pts/0" declare -x L3_SESSION_ID="31383263589649259-1490769712" declare -x L3_TAMPERED_EDITORS=" vi vim pico nano" declare -x LANG="ru_RU.UTF-8" declare -x LANGUAGE="ru_UA:ru" declare -x LOGNAME="root" declare -x MAIL="/var/mail/root" declare -x OLDPWD="/home" declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
#export
declare -x HISTFILESIZE="2000" declare -x HISTSIZE="2000" declare -x HOME="/root" declare -x L3_HOME="/root/.lilalo/" declare -x L3_PARENT_TTY="/dev/pts/0" declare -x L3_SESSION_ID="31383263589649259-1490769712" declare -x L3_TAMPERED_EDITORS=" vi vim pico nano" declare -x LANG="ru_RU.UTF-8" declare -x LANGUAGE="ru_UA:ru" declare -x LOGNAME="root" declare -x MAIL="/var/mail/root" declare -x OLDPWD="/home" declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
#env
SHELL=/bin/bash TERM=xterm HISTSIZE=2000 SSH_CLIENT=192.168.16.187 49228 22 L3_PARENT_TTY=/dev/pts/0 OLDPWD=/home 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=31383263589649259-1490769712 a=1 PWD=/home/user LANG=ru_RU.UTF-8 |
#help export
export: export [-fn] [name[=value] ...] or export -p Set export attribute for shell variables. Marks each NAME for automatic export to the environment of subsequently executed commands. If VALUE is supplied, assign VALUE before exporting. Options: -f refer to shell functions -n remove the export property from each NAME -p display a list of all exported variables and functions An argument of `--' disables further option processing. Exit Status: Returns success unless an invalid option is given or NAME is invalid. |
#export -p
declare -x HISTFILESIZE="2000" declare -x HISTSIZE="2000" declare -x HOME="/root" declare -x L3_HOME="/root/.lilalo/" declare -x L3_PARENT_TTY="/dev/pts/0" declare -x L3_SESSION_ID="31383263589649259-1490769712" declare -x L3_TAMPERED_EDITORS=" vi vim pico nano" declare -x LANG="ru_RU.UTF-8" declare -x LANGUAGE="ru_UA:ru" declare -x LOGNAME="root" declare -x MAIL="/var/mail/root" declare -x OLDPWD="/home" declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
#echo $Ps1
|
#echo $Ps1
|
#echo $PS1
|
#mkdir scripts
|
#cd scripts/
|
#vi shell.sh
--- /dev/null 2017-03-27 13:30:21.879999998 +0300 +++ shell.sh 2017-03-29 14:24:05.343932263 +0300 @@ -0,0 +1,4 @@ +#!/bin/bash + +users=`awk -F: '$3>=1000&&$3==65534{print $1}' | tr "\n" " "` +echo $users |
#chmod u+x shell.sh
|
#pwd
/home/user/scripts |
#/home/user/scripts/shell.sh
^C |
#./shell.sh
nobody |
#vi shell.sh
--- /tmp/l3-saved-14496.7784.20248 2017-03-29 14:29:14.703920862 +0300 +++ shell.sh 2017-03-29 14:32:01.007924913 +0300 @@ -1,4 +1,4 @@ #!/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" " "` echo $users |
#vi shell.sh
|
#vim .vimrc
--- /dev/null 2017-03-27 13:30:21.879999998 +0300 +++ .vimrc 2017-03-29 14:32:49.463918874 +0300 @@ -0,0 +1,2 @@ +set syntax=on +set nnoremap <F7> :!%:p<Enter> |
#vim .vimrc
|
#~
#!/bin/bash users=`awk -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` echo $users "shell.sh" 4L, 99C |
#~
shell.sh |
#ls -lah
итого 16K drwxr-xr-x 2 root root 4,0K Мар 29 14:33 . drwxr-xr-x 17 user user 4,0K Мар 29 14:16 .. -rwxr--r-- 1 root root 99 Мар 29 14:32 shell.sh -rw-r--r-- 1 root root 45 Мар 29 14:32 .vimrc |
#useradd -m anna
|
#./shell.sh
user ivan petr anna |
#mv .vimrc .vim/
mv: невозможно переместить «.vimrc» в «.vim/»: Это не каталог |
#mkdir .vim
|
#mv .vimrc .vim/
|
#vi shell.sh
--- /tmp/l3-saved-14496.1453.12166 2017-03-29 14:34:05.587924339 +0300 +++ shell.sh 2017-03-29 14:37:06.167924167 +0300 @@ -1,4 +1,8 @@ #!/bin/bash users=`awk -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` -echo $users +for user in $users + do + echo "Changing shell for user $user" + usermod -s /bin/sh $user + done |
#finger
Login Name Tty Idle Login Time Office Office Phone root root pts/0 Mar 29 09:41 (192.168.16.187) user user *pts/1 Mar 29 10:54 |
#finger ivan
Login: ivan Name: Directory: /home/ivan Shell: /bin/sh Last login Wed Mar 29 12:03 (EEST) on pts/2 from 192.168.16.187 No mail. No Plan. |
#vim shell.sh
--- /tmp/l3-saved-14496.14870.31602 2017-03-29 14:39:09.743919961 +0300 +++ shell.sh 2017-03-29 14:44:54.791925507 +0300 @@ -4,5 +4,5 @@ for user in $users do echo "Changing shell for user $user" - usermod -s /bin/sh $user + usermod -s /bin/${1:-bash} $user done |
#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 ... 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 anna:x:1003:1003::/home/anna:/bin/bash |
#vim shell.sh
|
#~
|
#echo test 5 -eq 5
test 5 -eq 5 |
#echo $?
0 |
#man test
|
#Invalid pattern (press RETURN)
#!/bin/bash users=` do -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` echo "Changing shell for user $user" for user in $us usermod -s /bin/${1:-bash} $user done "shell.sh" 8L, 190C |
# exit 2
./shell.sh: line 4: syntax error near unexpected token `fi' ./shell.sh: line 4: `fi' |
#vim shell.sh
|
#~
Нет справочной страницы для if |
#help if
if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi Execute commands based on conditional. The `if COMMANDS' list is executed. If its exit status is zero, then the `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is executed in turn, and if its exit status is zero, the corresponding `then COMMANDS' list is executed and the if command completes. Otherwise, the `else COMMANDS' list is executed, if present. The exit status of the entire construct is the exit status of the last command executed, or zero if no condition tested true. Exit Status: Returns the status of the last command executed. |
#vim shell.sh
|
#~
#!/bin/bash if [ $# exit 2] fi users=` do -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` echo "Changing shell for user $user" for user in $us usermod -s /bin/${1:-bash} $user done "shell.sh" 10L, 216C |
#~
./shell.sh: line 4: syntax error near unexpected token `fi' ./shell.sh: line 4: `fi' |
#vim shell.sh
|
#~
l3script: typespeed: команда не найдена |
#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 15,3G 0 part / sr0 11:0 1 222M 0 rom xvdb 202:16 0 5G 0 disk |
#htop
|
# Mem[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||118/495MB] Load average: 0.08 0.03 0.05
|
#~
root@192.168.13.6's password: #!/bin/bash if [ $# -gt 1 ] then exit 2 fi users=`awk -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` for user in $users do echo "Changing shell for user $user..." usermod -s /bin/${1:-bash} $user done |
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 anna:x:1003:1003::/home/anna:/bin/bash
Время первой команды журнала | 11:49:06 2017- 3-29 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 13:59:10 2017- 3-29 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 12.87 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 0.99 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.33 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду 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