Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:






???????
 
 Sysadmin
 ??????????????
 ????? ? ?????
 ??????????
 ???????????? ???????
 ?????????????
 ? ???????
 ? ???????????
 ???????? ? ??????
 ???????????
 ??????????? ???????
 ???????? ????? ?????? ?????? ???????? ??????????
 ??????
 ??????
 ?????? ?????? 1924-1994
 ??????? ?? ??????
 ???? ? ???????
 ????? ??????????
 ?????????


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

????????? ??????



?????? ? shell - ??? ? ????
opennet.ru/docs/RUS/profunix/chap10.html
????????
??????? ?????????????? ? ????? shell
conv
?????? ??????????????
dtoh
dtoo
htod
htoo
???????? bc
otod
otoh
?????? ????? shell ??? ??????????? ???????? ????????
???????? ????? shell
??????? ???? ? ??????????, ???? ?????????? ? ?????,
?????????????? ? ??????????? ??????
?????? ????????? ????? shell
?????? ????? shell ? ????-?????
?????????? ????
? ?????????? ed
? ?????? a.out
C ???????? ????? shell
?????????? ???????? ?????
??????? ? ?????????
??????????/??????????? ???????????????? ?? ????? shell
????????? ??? ??????????????? ??????
???????????? ??? ????????
???????? ????????? Vi
??????????? ? ???? shell
????????? Escape
???????
??????? "One-Liners" - ?????????, ?? ??????
.
- 2 -

????????

??? ????? ???????? ?????? ??????????? ?????? ?? ??????? ?
???????? ???????????????? ??????? ?? UNIX. ?????? ????, ??????? ??
???????? ?? ????????? ??? ????????, ?? ????????? ? ????????
?????????? ????. ??? ? ??????????? ?????????, ???????? ??????????????
?????, ? ?????????, ?? ????? ?????? ????????? ????????. ????? ????,
????????? ????????? ???????? ???? ? ???????????? ?????? ?????????
????? ???????? ?? ????? shell.

??????? ??????????????

????????? ?????????? ? ?? ??????????? ??????? ?????????? ???
?????? ?????? ??????? ?????????, ????? ????????? ?????????????
?????????????? ????????? ?????? ?????????. ??? ??????????????
?????????????? ?????? ????????? ???????????? ????????? UNIX bc
(??????????? ???????????? ????????) ? dc (??????? ????????????????
???????????????? ??? ?????????? ??????????? ("desk calculator")).
??????????? ?? ???????????? ???????????? ???? ????? ?????
???????????? ????????, ???? ?? ?????? ???????????? ? ???? ????????,
??????? ????? ?????????? ?????? ??? ???????????? ????????????
??????????? UNIX, ????? ????? ?????????????? ???? ??? ????? ?????
????? ????????????.


????????: conv


conv ????????? ????? ?? ????? ??????? ????????? ? ??????

??????????: ???????????? ??????????? ?????????????? ????????? ???????
?????????

????? conv

?????? ??????:
$conv ??????? ??????? ???? ????????? ??????????????

2 ??????? ????? 2 ( ?? ????????????????? ? ??????????)

FFF ?????? ????????????????? ????? FFF. ?? ?????? ?????????
??????? ?????????? ??????????


???????? ????? ??? ??????? conv

1 :
2 # @(#) conv v1.0 ?????????????? ????????? ???????
?????????, ????????? shell ?????: Russ Sage
3
4 while :
5 do
6 echo "
7
8 ?????????????? ?????????
9 ------------------------
10 1 - ?????????? ? ?????????????????
11 2 - ????????????????? ? ??????????
12 3 - ?????????? ? ????????????
13 4 - ???????????? ? ??????????
14 5 - ???????????? ? ?????????????????
15 6 - ????????????????? ? ????????????
16
17 enter choice (1-6, <>): c"
18 read CHOICE
19
20 case $CHOICE in
21 "") exit;;
22 1) echo "???????? ?????????? ????? (<> to exit): c"
23 read DEC
24 if [ "$DEC" = ""]
25 then exit
26 fi
27 HEX='. dtoh'
28 echo "n${DEC}d = ${HEX}x";;
29 2) echo"n??????? ????????????????? ?????
? ??????? ???????? (<> to exit): c"
30 read HEX
31 if [ "$HEX" = ""]
32 then exit
33 fi
34 DEC='. htod'
35 echo "n${HEX}x= ${DEC}d;;
36 3) echo "n??????? ?????????? ????? ?
??????? ???????? (<> to exit): c"
37 read DEC
38 if [ "$DEC" = ""]
39 then exit
40 fi
41 OCT='. dtoo'
42 echo "n${DEC}d = ${OCT}o";;
43 4) echo "n??????? ???????????? ?????
(<> to exit): c"
44 read OCT
45 if [ "$OCT" = ""]
46 then exit
47 fi
48 OCT='. otod'
49 echo "n${OCT}o = ${DEC}d";;
50 5) echo "n??????? ???????????? ?????
(<> to exit): c"
51 read OCT
52 if [ "$OCT" = ""]
53 then exit
54 fi
55 HEX='. otoh'
56 echo "n${OCT}o = ${HEX}x";;
57 6) echo "n??????? ????????????????? ?????
? ??????? ???????? (<> to exit): c"
58 read ???
59 if [ "$???" = ""]
60 then exit
61 fi
62 OCT='. htoo'
63 echo "n${HEX}x = ${OCT}o";;
64 *) echo "n$CHOICE-??????????? ???????";;
65 esac
66 done

?????????? ?????????

CHOICE - ????? ?????? ?? ???????? ????
DEC - ?????? ?????????? ???????? ??? ?????????
??????????????
HEX - ?????? ????????????????? ???????? ???

- 4 -
????????? ??????????????
OCT - ?????? ???????????? ???????? ???
????????? ??????????????

????????

????? ??? ????? ??????? conv ?

?????????? ???????? ???????? ???????? ?????? ? ????????? ??????
????? shell - ??? ?????? ?? ????? ??????? ????. ????????? ????? ????-
???? ?????? ?????????? ???? ?? ????, ? ?????????? ?????????????? ???-
????? ??? ?????? ????????? ?? ??????. ??????, ????????? ????? shell
????? ?????????????? ???????????, ? ??, ????????, ???????? ???
???????????????. ???? ??? ????? ????????????? ????????? ????? ? ???-
????? ????????? ?????????, ?? ??? ???? ???? ?????????? ?????? ???????
????????? ????? shell. ????????? conv - ??? ?????????, ???????????
????, ??? ?? ???????? ???????????? ? ??????????? ???????? ??????????,
?????? ?????????? ????????? ????????? ??????? ??????????????.

??? ?????? conv?

??? ???????????????? ???????? ???????????? ??????????? ????????
????? ?? ????? ??????? ????????? ? ??????. ????? ??????????
??????????, ????????????????? ? ???????????? ??????. ?????,
?????????? ? ????? ?? ???? ????, ????? ???? ?????????? ? ????? ??
???? ?????????? ????.
????? ?????? ????????? ?????????? ?? ???????? ????. ? ???? ????
????? ???????. ????? ???? ??? ?? ????????? ????? ????? 1 ? 6,
????????? ?????? ??? ?????? ????? ??????? ?? ?????? ?????????????.
?????????? ?????????????? ? ?? ?????? ????????? ?? ????????? ???
???????? - ?????, ??????? ?? ???????????????? ? ?????, ? ???????? ???
???? ?????????????. ?????????????? ?????????????? ????? ??????
??????? ????????, ? ??????? ????? ???? ???? ?????? ? ???? ?????, ???
??? ????? ???????? conv ?????????? ?????????, ??? ?? ???????? ?? ?
???? ??????? ? ?????????? ? ??? ?? ????????, ??? ? conv.
???? ?? ??????? ???????, ?? ???????? ? ?????????????? ????????,
?? ????? ?????? ????????? ?? ?????? ? ????? ????? ???????? ???????
????.

?????????

?????? 4-66 - ??? ???? ??????? ??????????? ???? while. ??
?????????? ??????????? ????, ????? ? ?????? ?????????? ?????
????????? ????????? ? ??????? ???? ??? ?????????? ?????. ??? ????,
????? ????? ?? ?????????, ????? ???????? ????, ?.?. ????? ?? ?????.
?????? 6-17 ???????? ???? ? ?????? ????????? ??? ??????. ???? ??
?????? ??????? "????", ????????? ???????? ???? ??????.
?????? 18 ?????? ???? ? ??????????, ? ?????? 20-65 ?????????
????? ?? ??????? ??? ???? ????????. ???? ??????? ??????? (??????)
????, ?? ????????? ????????? ???? ??????.
?????? 22-28 ???????????? ??????? ????? ?? ?????????? ?
????????????????? ??????? ?????????. ????????? ??? ?????? ????????
???????? ?????? ? ???? ?? ???????, ?? ???????? ?? ?????????? ??????
?????? ??????.
????????? ??????????? ????? ? ?????? 23. ? ??????? 24-26
???????????, ?? ???? ?? ????????? ???????? ??????. ?????? 27 ????????
????????? ?????????, ??????? ???? ?? ??????? ????????? ?????? dtoh
??? ?????????????? ?????????? ????? ? ??????????????????. ????????
???????? ?? ?? ??? ???? ????????? ????????? ??????.
????????? ???? dtoh ???????????, ????????? ??????? ".". ???
???????? : "????????? ?????????, ????????? ??? ?? shell". ?????????
dtoh ?????????? ?????????? DEC ??? ????? ????? ? ??????

- 5 -
??????????????? ????? ?? ??????????? ?????. ????? ???????? ??? ?????
? ??????????, ?? ?????? ??????????, ????? ????????? ?????????,
????????? ????????? ???????????. ?????? 28 ?????? ?? ?????
?????????????? ?????????? ????? ? ?????????????????, ? ???????? ???
???? ?????????????.
???????? 2, 3, 4, 5 ? 6 ???????? ??????????. ????????????, ???
???????? - ??? ??? ??????????, ??????? ????????????? ????
?????????????? ? ???????? ?????????? ????? (???????), ???????
?????????? ??? ????? ??????????????.


?????? ??????????????

?????? ??????? ?????????? ???????? ?????? ?? ??????? ????????.
??? ?????? ??? ????????? ????? ????? shell ?????????? ??????? UNIX
bc, ????? ???????????? ?????????????? ????????? ?????? ?????????.
?????? ???????, ??? ??????? bc - ??? ???????? ??????? ? ???????
?????? ????????, ?? ??? ?? ????? ??? ????????, ? ????????????, ???
??? ?????, - ??? ??????? ?? ? ????????? ? ????????? ????.


???????? : dtoh


dtoh ?????????? ? ?????????????????.

??????????: ??????????????? ??????? ?????????? ????? ? ????????
????????????????? ?????.

?????????: $DEC="decimal_number"; HEX='.dtoh'

?????? ??????

$DEC="25";HEX='.dtoh'
$echo $HEX

????????? DEC ????????? ???????? 25, ??????? dtoh ??? ???
?????????????? ? ???????? ????????? ? HEX. ??????? ?????????? ??
?????.


???????? ????? ??? dtoh

1 :
2 # @(#) dtoh v1.0 ?????????????? ????? shell--?????????? ?
????????????????? ?????: Russ Sage
3
4 bc < HEX
$ echo "????????????????? ?????: 'cat HEX'"

??????????? () ????????? ?????????? ????????? ? ????????
????? shell. ????????? "." ??? ?? ??????????, ?? ?? ???????? ?????
?????? ? ?????????? DEC. ??????????? ????? ???????????????? ? HEX.
??? ????????????? ???????? ????????, ????????? ????????? ???????????.
????????? cat ?????????? ? ??? ???????????.


????????: dtoo


dtoo ?????????? ? ????????????

?????????? ????????? ??????? ?????????? ????? ? ????????
????????????.

?????????: DEC="decimal_number"; OCT='.dtoo'

?????? ??????

$DEC="16";OCT='.dtoo'

- 7 -
$echo $OCT

????????? DEC ????????? ???????? 16, ??????? dtoo ??? ??
?????????????? ? ???????? ????????? ? OCT. ??????? ?????????? ??
?????.


???????? ????? ??? dtoo

1 :
2 # @(#) dtoo v1.0 ?????????????? ????? shell--?????????? ?
???????????? ?????: Russ Sage
bc <
????????: htod


htod ????????????????? ? ??????????

?????????? ????????? ??????? ????????????????? ????? ? ????????
??????????.

?????????: HEX="hex_number"; DEC='.htod'

?????? ??????

$HEX="1EAC" ; DEC='.htod'
$echo $DEC

????????? HEX ????????????????? ????????, ????????????? ???,
?????????? ??????????.


???????? ????? ??? htod

1 :
2 # @(#) dtoo v1.0 ?????????????? ????? shell--?????????????????
? ?????????? ?????: Russ Sage
bc <
????????: htoo


htoo ????????????????? ? ????????????

?????????? ????????? ??????? ????????????????? ????? ? ????????
???????????.

?????????: HEX="hex_number"; OCT ='.htoo'

- 8 -

?????? ??????

$HEX="F1E" ;
$OCT='.htoo'
$echo $OCT

????????? HEX ????????????????? ????????, ????????????? ???,
?????????? ???????????? ?????.


???????? ????? ??? htoo

1 :
2 # @(#) htoo v1.0 ?????????????? ? ??????? ????? shell --
????????????????? ? ???????????? ?????: Russ Sage
bc <
????????: otod


otod ???????????? ? ??????????

??????????: ????????? ??????? ???????????? ????? ? ????????
??????????.

?????????: OCT="octal_number"; DEC = '.otod'

?????? ??????

$OCT="777" ;
$DEC='.ot
$echo $DECod'

????????? OCT ???????????? ?????, ????????????? ??? ? ??????????,
?????????? ?????????.


???????? ????? ??? otod

1 :
2 # @(#) otod v1.0 ?????????????? ????? shell--???????????? ?
?????????? ?????: Russ Sage

- 9 -
bc <
????????: otoh


otoh ???????????? ? ?????????????????

??????????: ????????? ??????? ???????????? ????? ? ????????
?????????????????.

?????????: OCT="octal_number"; HEX = '.otoh'

?????? ??????

$OCT="777" ;
$DEC='.otoh'
$echo $HEX

????????? OCT ???????????? ?????, ????????????? ???????? OCT ?
?????????????????, ???????? otoh. ????????? ????????? ??????????????
HEX, ?????????? ???????? HEX.


???????? ????? ??? otoh

1 :
2 # @(#) otoh v1.0 ?????????????? ? ??????? ????? shell --
???????????? ? ?????????????????
?????: Russ Sage
bc < idfile

??????? ls ??????????? ??? ???????? shell, ????????? ???????????
(). ???????? shell ?????????? ? ??????? ?????, ????????? ?????? & .
????? ????????? ???????? id ?????????, ?? ???????????? ? ???? ??????
????????? ????? shell, ??????? ??? ?????????. ?? ?????? ????????????-
?? ??????????? ?????? ? ???? ? ???????? ?????! ?????? ?? ????? ???-
???? ???-?????? ????:

$ kill -9 'cat idfile'

??? ??????? id, ?????????? kill, ???????????? ?? ??????? cat, ???????
???????? ??????? id, ??????????? ?????. ??? ????? ???? ??????????
????? "kill self", ??? ??? ????? ??????????? ?? id, ????? ??? ??
???????? ??? ??????. ????????? watch, ??????? ?? ?????? ? ????? 6
?????? ????? ????????.


?????????? ????

???????? vi ?????? ?? ??? ???, ???? ??? ?? ????? ??????
?????????? ?????????????? ?????? ??? ?????????????? ? ?????????
??????. Sed ???? ???????? ????????, ?? ? ??? ?? ?????????????
??????????? ??????????? ?? ?????. Sed ????? ???????????? ??????
?????? ?? ????? ?? ????? ?????. ??? ???? ???????? ????? ??????
???????? ???????? ed.


? ?????????? ed

?d ???????? ????????????? ?????????? ? ? ??? ???? ???
??????????? ??? ????????? ?????????. ????????? ?? ?????? ???????????
???? ??? ????? ??????, ?? ????? ???????? ? stdin ?????????? ????? ???

- 12 -
?????????? ?????????? ??????????. ?d ?????? ???????, ??? ???? ?? ???
???? ???? ? ??????????. ?? ?? ?????, ??? ??????? ? ????????? ??????.
??? ????????? ?????????? ????? ?????? ????????????? ????
?????????????? ?????????????? ? ????????? ??????.
? ???????? ??????? ?????????? ????????? ?????????. ???????, ???
??? ??????????? ??????? ? ????? shell ?????? ???? ????????? ? ?????-
??, ???????? $. ???? ??? ?? ????????? ? ???????, ?? ???? ????? ?????-
???????.

ed file << -!
1, $s/^ *//
w
q
!

? ???? ??????? ????????????? ???? ??? ????????? "file" ? ??? ???
??????????? ????????? ??????. ?????? ??????? ??????? "?? ??????
?????? ?? ?????????, ??? ?????? ??????, ??????? ?????? ??????? ?
?????? ??????, ?? ???????? ??????? ????? ?????????? ????? ??
????????, ???????? ??? ??????? "?????". ???????? ???? ? ???????." ???
????????? ??????? ??????? ?? ?????? ??????.


? ?????? a.out

??????????? ??????????? ?????? ????? ????? ????????????, ?????
???????????????? ?????? ????????. ??? ????? ???????? ??????? ??????,
???????????, ????? ????????? ????????? ???????? ??????, ? ?????????
?? ? ????? ?????????. (??? ????? ????? ?????????? ???????? ??????????
??? ?????????? ???????? ??? PC).
? ????????? ??????? ??????????? ???? a.out ??????????? ???
???????? shell. ??? ???? ??????? ?? ?????? ?????, ? ????? ??????????
??????? more, ??? ??? ?? ????? ??????? ???????????? ?????.

$ (a.out < text
> input
> lines
> !
) | more

??? ????? ?????????? ??????????????? ? ??????????. ?? ??????????
??????? ??????, ?????????, ???? ??????????????? ???????? ???? ???,
shell ????? ???????? ????????? PS2 ?????? ?? ????? !, ????? ????????
???????. ????????????, ??? ?? ????? ???????, ????? ?? ?? ?????
????????????? - ??? ?????????? ??????????? ????, ??????? ??? ??
??????? ????.


C ???????? ????? shell

?????? ????? shell - ??? ???? ?? ????? ??????? ???????? ?????-
???? ????? ? ????????????????????? ?????????. ???? ??????? ? ???, ???
?? ?????????? ????????? ???? ????? shell, ????? ????????? ?????????
?????. ???? ????? ????? ???? ??????????, ????????? ?????? ??? ????
???????? ??????? ?????????.

?? ?????????? ??????????? ??????????? ??????, ????? ????????
????? ? shell, ??????? ????? ?????????? ??? ? ???????????????? ?????.
???? ???????? ?????? ??????, ??????? ????? ???? ? ?????.

$ cat archive


- 13 -
#
# ??? ???????? ???? ????????? ?????? 1, 2 ? 3
#

echo "????????? ????????? ???? 1"
cat > text1.sh << !
#
# ??? ?????? ?????????? ????? 1
#

who | sort
!
echo "????????? ????????? ???? 2"
cat > text2 << !

??? ?????????? ??????? ?????. ??? ?? ?????????, ? ?????? ?????.
????????, ??? ??? ?? ????? ????? ???????????, ?????? ???
?????????? shell ?????, ??? ??? ????. ?? ?? ????????? ?????????
text2, ?.?. ? ??? ??? ????? ?????? ?? ?????????.

!

echo "????????? ????????? ???? 1"
cat > text3.c << !

/* ??? ?????????? ????? 3, ?? ????????? */

main()
{
printf("hello world");
}
!

#
# ????? ????????? ?????
#

??? ?????????? ????? ???????? ????? ??? ??????? cat. ?????? ??-
????? cat ??????? ???? text1.sh (????????? ???? ????? shell), text2
(??????? ?????) ? text3.c (??-?????????). ??? ??? ??????????? ?????
????, ??? ?? ???????? ?? ?????????? "archive". ??? ??????, ???? ?????
????????? ????? ? ?????? ?????. ?????? ???? ????? ?????????? ??? ???-
??, ??? ????? ????????? ????. ?????? ???? ??????, ??????????? ??????,
? ??? ??? ???????? ???????????? ?????, ?????? ?? ??????? ???????????-
???? ???? ??? ??????? ??????. ????? ???????, ??? ?? ???????? ??????,
??????? ??????????? ????? ????? ? ????? ???? ???????.


?????????? ???????? ?????

?????? ???????? ????????? ????? ????? ????????? ???????????
???????, ????? ??? ???????? ????? ????????????. ??? ?????????? ??
?????, ?????? ?????? ????????, ????? ?? ?????? ???????? ????????????
???????????? ?????????. ? ??????? 10-1 ????????? ??? ?????? ???????
??????? ??????? ????? while "????????". ???????, ??? shell ????
???????? ?????? ?????? - ?????? (0) ?? ????????? ?????????
??????????? ???????.

??????? 10-1
??????? ????????? ???? ???? "????????"

+--------------+----------------------------------------+
| ???? | ??????? ?? ????????? "??????" |

- 14 -
+--------------+----------------------------------------+
|while true |True - ??? ??????? ? /bin, ??????? ???-|
| |??????? ?????? 0 |
|while[1 -eq 1]|?? ?????????? ????? ???????? ???????, |
| |????? ?????????? ?????? 0 |
|while : |?? ?????????? ?????????? ??????????? |
| |shell'?, ????? ?????????? ?????? 0 |
+--------------+----------------------------------------+


??????? ? ?????????

????? ? ???? ????? ??? ??? ???? ? ????????. ?? ??? ???????
???????? ????????? ??? ????? ???? ???????????? ? ???????? ????????.
????????? ??????????? ??????? - ??? ???????, ??????? ????? ???? ??
?????????? ????????? ??????, ???? ??? ????. ????? ???? ???????? ??
???????????? ?????.
?????? ??? ??????? ?? ????? ??????????? ??? ???????? ??????, ???
??? ?? ????????????? ??? ?????. ???????, ????????, ls. ??? ?????? ls?
??? ?????? ?????? ?????? ? ??????? ????????. ???? ?? ??????? "ls
file", ?? ?????? ?????????? ?????? ??? ????? ?????. ???? ?? ???????
"echo file | ls", ls ?? ???? ?????????? ? ?????, ?? ?????? ??????
?????? ? ??????? ????????, ?????? ??? ls ?? ??????? ? ???????????
????, ???? ? ????????? ?????? ??? ??????????.

???? ?????? ??????, ????????? ? ????????? - ??? ?????? ?? ??????.
???? ?? ????????? ??? ????? ? ????????? ??????, ?????? ????????? ????
? ?????? ??????. ???????, ??? ??????? ????? ?????? ??????. ???? ??
????????????? ??????????? ???? ? ???????, ?? ??????, ??? ??, ??? ??
?????? ?? ???????????? ??????- ??? ??????. ???? ?? ?????? ???????
????? ??????, ?? ?? ???????? ???? ??????????, ??????? ????????.
??????? ?????????? ????????? ????????. ??????? UNIX wc - ??? ??????.
?? ????? ???????? ?? ??? "wc file1 file2 file3", ????? ??? ??????????
????? ? ???? ??????. ??? ???? ??, ???? ?? ?? ???????: "ls file1 file2
file3 | wc" ? Wc ?????????? ?? ????? ????????, ??????? ?????? ?? ls.
? ?????? ?????? ? ?????? file1, file2, ? file3 - 15 ????????. ??? ???
???????? ???????? ???????? ??????, ? ?? ????? ?????? ? wc? ???????
??????, ??????? ?? ???????? wc:

cat file1 file2 file3 | w?

????? ???????????????? ?????????? ??????, ?????? ?????????? ??
???? wc, ? wc ????????? ???????????? ????? ????????, ???????????
??????. ?? ?? ????? ????????? ????????? ??? ???? ?????? ????????. ???
????? ???????? ???????? ???????? awk. ?? ????? ??????? "awk file", ?
??????? ????????? ?????????? ?????, ??? "cat file | awk", ? ???????
????? ?? ?????????. ?? ?? ????? ???????????? ????????? "ls file | awk",
?.?. awk ????????? ???? ????????? ?????? ??? ????????? ? ?????
"file".


??????????/??????????? ???????????????? ?? ????? shell

? ???? ??????? ?? ?????????? ????????? ???????? ????? shell. ??
????? ???? ?? ????, ?????? ??????????? ??? ??????? ??? ???????????.
??? ?? shell ???????? ? ????? ?? ?? ?? ????? ????.


????????? ??? ??????????????? ??????

1 :
2 # @(#) ??????????????? ?????????? ???????? ?????????? ? ????,
?????????????? ? ???????????? ??????
3
4 N=1
5 echo "????????? ???????? N = $N"
6
7 echo "1n2n3" | while read LINE
8 do
9 N=2
10 echo "???????? ? ????? N = $N"
11 done
12
13 echo "???????? ???????? N = $N"

????????? ??????????, ??? ????????? ??????????, ????????? ? ??-
?????? ?????? shell, ?? ???????????????? ?? ?? ?????????. ?????? 4
??????????? N ????????? ??????? 1. ????? ???????? N ???????????? ?
?????? 5 ??? ????????. ??? ???????? ???? ????????? ????????? ? ??????
5. ?? ?????????? ??????? "1 ????? ?????? 2 ????? ?????? 3" ? ????-
??????? ????? ? ???? ??? ?? ???? ????? while. ????? ???????, ??
?????????? ???? ????????? ??? ????????. ??????????? ????? ? ????????-
???? ??????, ?? ??????? ???????? shell, ????? ????????? ???? while.
?????? ????? while ?? ???????? ???????? N ? ???????? ??? ??? ??????-
??.
? ????? ????? ?? ???????? ????????????? ???????? N. ??? ??????
?? ????? 2 ??? ??? ???? ?????? ?????, ? ????? 1, ??? ??? ???? ?????
??????? ??????????. ???? ??????????? ?????? ??????? ???? ?????????.

$ redir
???????? ???????? N = 1
???????? ? ????? N = 2
???????? ? ????? N = 2
???????? ? ????? N = 2
???????? ??????? N = 1

??? ??????????, ??? ???????? ?????????? ?????????? ???? ?????????
????? shell, ?? ????????? ? ???????? shell ?? ?????????? ???????????-
??.


???????????? ??? ????????

?????? shell ?????, ???????? ?? ??????????? ?? ??? ???? ????
????????? ?? ??? ?????? ????????. ?????? ???????????, ??? ???
????????, ????? ?????? ???????? ???? ?????????.

????????:

1 :
2 # @(#) ?????? ???? ????????
3
4 echo "??????? ??????? : ?"
5 read CMD
6
7 eval $CMD
8 echo "$? = $?"
9
10 if [ $? -eq 0 ]
11 then echo ??????? ????? - $?
12 else echo ?????? ????? - $?
13 fi

????????? ?????????? ? ????, ??? ? ?????? 4 ??? ????????
????????? ??? ???????? ???????. ??????? ????????, ?????? 7 ?????????
?? ????????? ?? ?? ?????????????? ?????????? ? ????????? ??. ???????,
??? ??? ????? ??????? ???????? ? ??? ??????, ???? ???-?????? ??????
???-?? ???? "echo $HOME". ???? ??????? eval ???, ?? ??????????

- 16 -
??????????? ?????? $HOME. ????? ??????? eval ??????????
?????????????? ???????? $HOME. ??? ??? ??? ?????????? ????????????
??????? eval ? ???? ????????. ????? ???? ??? ??????? ????????? ??????
???????? ?????? ??????, ???????? ?? $?. ??? ?????????? ?????????.
?????? 10 ????? ?????????? ???????? ???????, ????? ?????????
???????????? ? ??????????? ?? ???? ????????. ??? ? ???? ?? ?????, ???
??????. ????????, ??????? ????? ???????? ??????? ?? ????????? ? ???,
??????? ???????? ???.

$ status
??????? ???????: ls -z
ls : illegal option --z
usage : -1ACFRabcdfglmnopqrstux [files]
$? = 2
??????? ????? - 0

??? ??????????, ??? ls ????????? ? ????????? ??????. Ls
????????? ???? ????????? ?? ?????? ? ????????? ??? ???????? ?????? 2.
?????? ???????? ??????? ????? $? ??? ???????? 0 ? ???????? ?????
??????. ?????? ?? ?? ????? ?????? ? ?????? 8 ????????? ? ??? ???????
???? ??? ????????? ??????? ?? ???????.


???????? ????????? Vi

???? ?? ????? ????????????? ???????????? UNIX - ??? ???????????
????? ?? ??????? ???, ????? ?? ????? ????????? ?????? ??????? ???
????? shell. ??? ???? ??????????? ?????? UNIX ? ???????? ??????? ?
?????? ?????????. ????????????? ????????? ???????, ????????? ???? ??-
??? ??????? ?????????? ????????? ????? ??????? ? ???????.


??????????? ? shell

??????????? ? shell - ????? ???????? ??????????? ? ????????? vi.
?? ?????? ???????? ???? ????????? ? ?????????, ????? ?? ????,
????????? ?????????, ????????? ????? ? ???????? ? ?.?. ???? ????
?????????????? - ?????????? - ???????? ????? ???? ???????? ??
?????????. ? ????? ????????????? ????? ? ?????? ?? ????????? ??
?????? ????????? ????? ?????? ??? ????????? ??????????? ?????????.
???????? vi ????? ???????? ?????????? ex. Vi - ??? ??????????
????? ex. ?????????????, ?? ?????? ????? ? shell ????? ??????.
?????? - ????????? ?????????? sh, ??????? ??????????? ?
????????? ex. ?? ?????? ???????

: sh

???? ?? ? vi ??? ?????? "sh", ???? ?? ? ex. ???????? ????? ????????
shell, ??????? ?? ?????????? ? ?????????? sh. ?????? ???????? ?????
????? shell ?? ??????????? ??? ????? ?????????? ?? ???????????????
?????????? ????????? ????? shell. ???? ??? shell - /bin/sh, ? ?? ??-
???? ????????? /bin/shV, ?? ?????? ?????????????? ???????? ??????????,
????????? ":set sh=/bin/shV"

?????? ?????? ?????? ?? vi - ??? ? ?????????????? ??????????:

:!sh

??? "sh" ???? ??? shell (/bin/sh). ???????? ????????, ??? ??????????.
?? ?????????? shell (??????????? ?? :!), ???????? ???? ???????
????????? shell (:!sh). ????? ??, ???????, ????????? ???? shell,
??????????, ??? ? ??? ??????? ?????? shell. ??? ????? ????????
???????????? ? ???????? ps, ??????????? ????

- 17 -

UID PID PPID C STIME TTY TIME COMMAND
russ 35 1 0 Jul 5 co 0:50 -shv
russ 1233 35 0 04:30:15 co 0:57 vi file
russ 1237 1233 0 04:43:13 co 0:01 sh -c sh
russ 1238 1237 0 04:43:15 co 0:02 sh

? ??????? ?????? ??? ???????. ?? vi ?? ????????? shell ? ??????
-? ??? ??????? ????? shell . ??? ??????????? ????? ?????? shell! ?
???? ???????????? ????????? ???? ????????? ??? ?????? ":sh", ?? ?????
???????? ?? ?????????.


????????? Escape

????? ????, ??? ???????? vi ????? ???????? ?? Esc, ??
???????????? ????????? ?????? ??????????? ??? ??????. ???????
?????????? ????????????? ??????, ???????????????? ???????? ?????
????????? ??? ??? ??????? ????? ??????. ?????? ??????? ?????????? -
":!cmd", ??????? ???????? ????????? ??? ??????? ????? ??????? ???
?????????. ? ???? ?????? ??????? ????? ???? ????? ???????? ???????
(1).
?????? ??????? ?????????? - ??? ":!!". ??? ???????? ????? (:!) ?
???????????? ????????? ????????? ?????? ??? ???????? ??? ??????? ?
????? ????? shell. ????????, ???? ?? ???????: ":!ls", ????? ":!!",
:ls ????? ???????? ?????. ?????? ! ????????? ?? ???? ?????????? ??-
??????? ??????.
?????? ??????? ?????????? - ??? ":!%". ??? ???????? ????? (:!) ?
????????? ???????, ??? ??????? ???????? ?????? ????? ????? (%). ?????
?? ????????? ??????? ???????, % - ?????????? ?????? ?????, ??? ?????
?????? ??? ?????????????? ????????? ??????. ?? ?????? ???????
???-?????? ????:

$ vi tool
. . . edit . . .
:w

?? ????????? vi ? ?????? ?????, ??? ??? vi ?????????? ???
"tool" ? ????? ??????. ?? ?????? ???????? ???-?? ????? ??? ?
?????????, ???????? ????????? ?? ????, ????? ????????? ????? ?????
?????. ???????? ????????? ???? ? ?????? "tool" ? ????????? ???. ?????
?? ???????? ?? ???????????? ????? "tool", ?? ????????? ????? ?
????????, ??????? ?????? ????????? ? ????? ? ????????? ?????????
?????.
???? ?? ??????? ??????????????????? - ??? ??????????????? ????,
??????? ?????????, ???????? ??, ????????? ????, ????????? %, ??????
????????? ??? ???, ????????????? ?????????, ????????? :!!, ???
????????????? ????????? ??????? escape, :!% . ????? ??????? ????
??????? ? ???????? ????????? ???????? ??? ??????? ??????????, :!!.
?? ???? ????? ???????????? ??? ??????????? ??? ??????????
???????? ?? ?. ???? ? ??? ???? ????????? ????, ??????? ??????????
"cg" (????????? ??????????) ?? ????? ????? ???????????? vi:

F = 'echo $ 1 | sed -e "s/^(.*).c$/1"'
cc $1 -o $F

????? ?? ????? ????????? ?????????????????? ?????? ????:

$ vi test.c
...edit...
:!cg %

??? ?? ?? ????? ??????

- 18 -

: !cg test.c

? ????????????? ????????? ???????????? ?????? "test".


???????

?????? ??????????? vi, ??????? ???????????? ??????? ?????, - ???
???????? ????????. ???? ??????? ??????? ??????? ????? ??? ????, ?????
????? ???? ???????? ??????? ?????????????? ? ??????????? ????????,
??????? ????? ????????????. ????? ??????? ?????? ????, ?????
???????????? ????????? ????? ? ?????, ?? ?????? ??????????? ??????.
???? ???????? ?????? ????????????????:

i
s/^[^ ]*/ [^ ]*/
"add
@a

??????? ????? ??????? ? ????? ???????, ????? ?? ????? ?????????
??????? ? ??? ???? ?????????. ?? ???????? ??????? ??????????? ?
???????? ESC, ????? ????????? ?????? ? ?????? ???????. ???????
??????????? ??????? "? ???????, ??????? ?????????? ? ?????????
???????, ?? ??????? ??????? ???? ??? ????????? ???????? ?????? ??
????, ????????? ?????? ????? ???????? ??????????????????? ????????".
????? ?? ???????? "add", ??? "?" ?????????? ??????????? ??????? a ?
dd ?????????? ??????????? ?????? ? ?????. ?????? ?????? ???????????
????????? ? ?????? ?. ????? ?? ????????? ?? ?????? ?????????? @a ?
????????? ?????? vi.

????? ????? ?? ????? ????????? ?? ?? ??????????????????
????????, ?? ????????? ??????? ????

:!ps -ef

? ???????? ? ?????????? ?? ? ?????. ?????, ????? ?? ??????? @a, ??
?????? ? shell ? ????????? ??????? ps. ??????? ?????? ???? ?????
???????? ? ??????????? ?????? ?? a-z.

????????? ?????? ????????????? ???????? ??? ????????? ?????? - ???
????? ??????? map. ??? ??????? ???? ? ex ? ?????????? ??????????????
?????????? : ?? vi. ????????? ??? ??????? map ???????? ???:

:map lhs rhs

??? ????????????? ??????????? ????? ??????? ?? ?????? ???????.
?????? ?????????? ???????? ???:

:map w :!who^M

?????? ?????? ???, ????? ?? ????????? w, ????? ???????????
???????? ?????? ????? ex, ?????????? ??????? who, ????? ??????????
??????? ???????, ??????? ?????????? ??? ??? ?????????????????? ??
??????????. ??? ??? ?? ?????? ??????? ??????????.
????? ??????? ??????????, ????? ??? ???????? ?????
?????????????? ???????. Vi ?????????? ? ?????????????? ???????? ?? #0
-#9. ?????? ?? ????? ??????????????? ?????????????? ??????? ???
?????? ??????. ??????? ?????????? ?????:

:map #1 :!ps -ef^

?????? ???, ????? ?? ????????? ?????????????? ??????? F1,

- 19 -
??????????? ??????? ps -ef.


??????? "One-Liners" - ?????????, ?? ??????

????????? ?????? - ??? ???????? ??????? ??????, ??????????????
????? ???????, ????? ???????? ?????? ??????. ??? ?????? ????????
?????????, ??????? ??????? ?????? ??????, ?????? UNIX ????? ?????
??????? ?????? ????????? ??????? ?????? ? ??????? ?????????????
???????. ????????? ??????, ??????? ????? ???????????? ????, ?????
????????? ? ?????? ?????? ???? ?????, ?? ??? ?????????? ?????
???????? ??? ?????????? ??????.
?????? ???????????? ? ???????????? ? ????????, ??????? ????????
???????? ? ?????? ??????, ??????, ?????? ?????? ???????? ?????
??????? ???, ????????, ? ?????? ???????????? ??????, ????? ?? ? ????
?????? ?????? ?????? ???????. ????????, ??? ????????? ?? ???? ??????
???????? ???????????? ????????? UNIX, ? ?? ????? ??? ?????? - ???
????????? ????? ? ?????????, ?????????????? ????? ? ???? ?????.


ACCTCOM

* ????????? ??? ???? ??????? ??????????, ??????? ? ????????? ???????.

acctcom -b -u$LOGNAME

* ???????? ??? ??????? ??????, ?????????? ? ?????? ????????? ? ????,
??????? ??????? ??? ?????????????????

acctcom -u# -l'tty'


BANNER

* ?????????? ????????? ?? ???? ???????

banner "line 1" "line2" "line3"

* ?????????? ???? ?????? ? ???? ?? ????? ??????, ????? ?? ??????

banner "'date|cut -d' ' -f1,3'" "'date|cut -d''-f4'"

* ??????? ????????? ?? ????? ??????? ????????????

banner "??????" "???" > /dev/tty01


BASENAME

* ???????? ????

echo "? ?? ??????????? 'basename'tty' ' ''


BC

* ???????? ??????? ?? ???? ??????? bc, ??????? ?????? ?????????
????????? ? ???????? ????????? PROD

PROD = 'echo $NUM1 * $NUM2 | bc'


CAT

- 20 -

* ???????? ??????? ? ?????????? ? ????

cat > file (???????? ???? ?? ?????????? ?????? ^D
??? ??????????? ??????)

* ???????? ???? ?? ??????????? "???????? ?????"
cat << -!
??? ??????? ??????, ??????? ?????????? ?? ?????? !


CC

* ????????????? ?????????? ? ??????? ?????? ?? ????? ?????????
??????

cc file1.c & cc file2 & cc file3.c &


CD

* ??????? ? ???????, ? ??????? ????????? ????

cd '??? ??????????'???? ????''

* ??????? ? ???????, ??????? ??????? ? ??????????

DESTINATION="/usr/bin"
cd $DESTINATION

* ??????? ? ???????, ?????????? ? ?????

cd 'cat dest_file'


CHMOD

* ???????? ??? ?????????? ?????

chmod +x file

* ???????? ??? ????? ?????????????? ???????????? ? ?????????
???? ?????????? ?????

chmod 4755 file

* ?????????? ??? sticky ?? ?????????? ?????????

chmod 1755 file


CHOWN

* ?????????? ???? ?????????? ?????

chown $LOGMAME files

* ?? ?? ????? ?????? ????????

chown 'who am i| cut -d' '-f1' files

* ???????? ????? ????????????? ??? ??????


- 21 -
cd dest
find . -print | sort | while read FILE
do
chown russ $FILE
done


CP

* ??????????? ??? ?????? ?????? ? ???? ???????? /tmp
cp */*/* /tmp

* ?? ?? ????? ?????? ????????
cp 'find . -type f -print' /tmp

* ??????????? ???????????????? ???????????
cp -z


CPIO

* ??????????? ?????? ??????? ?????? ? ????? ??????????????
cd $SRC
find .-print | sort | cpio -pdv $DEST

* ??????????? ?????? ??????? ?????? ?? ?????? ????
cd $HOME
find .-print | sort | cpio -ocBv > /dev/rfd0

* ???????????? ????? ?? ????????
cd $DEST
cpio -icBvt < /dev/rfd0

* ????????? "ls -l" ?? ????? ????????
cpio -icBvt < /dev/rfd0


CRON

* ????????? ??? ????????? ????????? ? ??????? ?????? ???????
? 6:00 a.m.
0 6 * * 4 /usr/russ/bin/status_msg

* chmod ?? ???? ???????

* * * * * /bin/su root -c "chmod 777 /etc/passwd"

CU

* ??????????????? ?????????? ????????????????? ????? ?? ????????
1200 ???

cu -ltty00 dir

* ??????????????? ?????????? ? ????????????????? ????? ?? ????????
9600 ???

cu -ltty00 -s9600 dir

* ????????????? ??????? ?????? ???????, ????????? ??????????
dial/modem

cu -acua0 555-1212

- 22 -


CUT

* ?????? ?????? ???? ?? ????? passwd

cut -d: -f1 /etc/passwd

* ?????? ??? ?? ???????? ??????? who

who | cut -d' ' -f1
who | awk '{print $1}


DD

* ?????? ?????? ????? ??????? ?? ????????

dd if = /dev/fd0 of=/dev/fd1


DOS

* ??????????? ??? ????? ??????? ???????? ?? ??????? DOS

doscp * a:

* ??????????? ??? ????? ? ??????? DOS ? ?????? ???????
dosls a: > /tmp/dosf
for FILE in 'cat /tmp/dosf'
do
doscp a:$FILE
done


DU

* ?????? ????? ?????????? ?????? ??? ???? ????????? ? /

du -s /*

* ?????????? ?????????? ??????????????? ????? ? ????????
??????? ????????????

echo "total bytes: 'expr'du -s $1' * 512'"


ECHO

* ?????????? ???????? ?????????? shell'?
echo $PATH $CDPATH

* ?????????? ????? ?????????? ? ??????? ???????

echo " ??? ??? $LOGNAME ???
'logname' ??? 'who am i|cut -d' ' -f1'"

* ?????????? ??????? ????????? ? ???????? ? ???

echo "nt ??? ???????? ? ????????"
echo \n\t ??? ???????? ??? ???????

* ?????????? ? ???????? ?????? ? ????? ??? ?? ??????

- 23 -

echo -n "prompt: "
echo "prompt: c"


ED

* ????????? ed ???????????? ? ????????????
"???????? ?????"

ed /etc/passwd <<-!
1,$p
g/root/s//noroot
w
q
!


EXPR

* ???????? ??? ?????
expr 512 * 1024

* ????????? ?????????? ?? ???????????????? ????????

x = 0; INC = 5
X='expr $X + $INC'


FILE

* ????? ??? ????????? ?????
file * | fgrep text

* ?????????? ????? ?????? ????????? ??????
file * | fgrep text | cut -d: -f1

* more ??? ????????? ?????
more 'file * | fgrep text | cut -d: -f1'


FIND

* ????? ??? ????? ? ???????
find / -print | sort

* ????? ??? ????? ? ??????????? ?????? ? ??????? long
find / -exec ls -ld {} ;

* ?????????? ????? ???? ?????????? ??????
find / -type f print

* ??????? ??? ???????? ? ???????????? ??????????
find / -type d print | while read DIR
do
echo "listing $DIR"
ls $DIR
done

* ??????? ??? ?????, ??????? ???? ?????????????? ? ?????????
24 ???? ? ???????????? ?? ?????? ? ??????? long
find / -atime -0 -exec ls -ld {} ;


- 24 -
* ??????? ??? ????? setuid ? setgid
find / -perm -4000 -o -perm -2000 -exec ls -ld {} ;


FINGER

* ??????? ???? ?????????????, ???????? ?? ???????
finger 'who | cut -d' ' -f1'

* ??????? ???? ????????????? ? ????? passwd
cut -d: -f1 /etc/passwd | while read NAME
do
finger $NAME
done


GREP

* ????? ?????? ???????????? ????????????????? ????? ? ?????
??????
od -x datafile | grep 'A3F09'

* ????? ???? ??? ? ???????
find / -type f print | while read FILE
do
grep "russ" $FILE /dev/null
done


HEAD

* ?????????? ??? ????????? ????? ? ??????? ????????
file * | fgrep text | cut -d: -f1 | while read FILE
do
echo "--------"
echo "$FILE"
echo "--------"
head "$FILE"

ID

* ??????????, ??? ? ?????? ?????? ???????? ??????????????????
if [ "'id'" = "uid=0(root) gid=0(root)" ]
then echo "you are root"
fi

* ?? ?? ????? ?????? ????????
if id | fgrep root > /dev/null
then echo "you are root"
fi

KILL

* ?????????? ???? (?????????)
kill -9 0
kill -9 $$

* ????????? ?????? ???????
kill -1 1

* ?????????? ????????? ???????, ?????????? ? ??????? ??????
kill -9 $!


- 25 -
* ?????????? ???????, ????????????? ???????? ????????? ? ?????
kill -9 'cat idfile'


LINE

* ????? ?????? ? ?????????
LINE='line < /dev/tty'

* ????? ?????? ?? ???????????? ?????
cat datafile | while LINE = 'line'
do
echo $LINE
done


LOGIN

* ??????? ?? ??????????????? ????????? login ???

login: ^d
login:

* ???????? ????????? ?????????? ??????????
(????????? strings - ??? BSD)

strings /bin/login | more


LOGNAME

* ?????????? ?????????? ? ????? ??????
grep '^'logname ':' /etc/passwd

* ???????? ?????????? ? ????? ????????
ps -fu 'logname'


LS

* ?????? ?????? ??????? ??????
ls -ad .*

* ?????? ?????? ????? ? ??????
ls -l file

* ?????? ?????? ????? ? ??????
ls -s file

* ?????? ?????????? ? ?????? ??????? ?? ?????? ????
???????????????????? ? ???????
ls -li 'who |sed "s/^[^ ]* *([^ ]*) .*$//dev/1/p"'

* ???????? ?????? ?? ???????????? ???????
ls -z

* ?????? ?????? ?????? ?????????
ls -al |grep "^d"


MAIL

* ??????? ????? ???? ?????????????

- 26 -
cut -d: -f1 |while read USER
do
echo "mailing to $USER"
mail $USER
done

* ??????? ????? ?? ?????
mail russ < /etc/passwd

* ??????? ????? ?? ???????????? ??????
echo "??? ????? ?????" | mail russ


MORE

* ?????????? ??? ????? ???????? ????????
more *

* ?????????? 10 ????? ?? ???
more -10 file
cat file | more -10


MKDIR

* ?????????? ?? ???????????? ???????
while :
do
mkdir x
cd x
done

* ?? ?? ????? ?????? ????????
PATH="x"
while :
do
mkdir $PATH
PATH="$PATH/x"
done


NCHECK

* ????? ??? ?????, ?????????????? ? vi
ls -li /bin/vi
40 -rwwx--x--t 1109344 Feb 14 1985 /bin/vi
ncheck -i 40 /dev/root

* ????? ??? ????? ????????? ?????????????? ????????????
ncheck -s


NM

* ?????????? ?????????? ??????? ???? nonstripped
??????????? ??????

nm 'file *| grep "not stripped"|sed "s/^(.*):.*$/1/"


OD

* ?????????? ??????? ? ?????? ?????? ? ??????? ????????

- 27 -
od -c .

* ?????????? ???????? ?????????????? ??????, ??????????
??????, ?.?.?.

od -cb (??????? ?????????? ??????)

^d (???????? ??????)
(??????? ???-?????? ???)
^d (???????? ????????? ??????)
^d (???????? ?? od)

* ??????? ???? ????? ?? ????????
od -c /dev/rfd0

* ??????? ???? ???????? ???????
od -c /dev/root


PASSWD

* ??? ????????????????? ?? ?????? ?????????? ? ???????? ??????
????? ??????

# passwd russ
Changing password for russ
(????????? ?????? ??? russ)
Enter new password (minimum of 5 characters)
(??????? ????? ?????? (??????? 5 ????????))
Please use combination of upper, lowercase letters
and numbers
(??????? ???????????? ?????????? ????? ? ???? ?
??????? ? ?????? ?????????)
New password: junk
(????? ??????: junk)
Re-enter new password: junk
(????? ??????: junk)
#

* ??? ??????? ???????????? ?? ?????? ?????? ??????? ?????? ? ??????
?????????????? ??????????? ? ??????????? ?? ?????

$ passwd russ
Changing password for russ
(????????? ?????? ??? russ)
Enter new password (minimum of 5 characters)
(??????? ????? ?????? (??????? 5 ????????))
Please use combination of upper, lowercase letters
and numbers
(??????? ???????????? ?????????? ????? ? ???? ?
??????? ? ?????? ?????????)
New password: junk
(????? ??????: junk)
Too short. Password unchanged.
(??????? ????????. ?????? ?? ???????)
$


PR

* ??????? ??????????????? ?????? ???? ??????
ls $@ | pr -5t
* ?????????? ????? ?? ??????

- 28 -
pr 'find . -name "*.c" -print | sort'


PS

* ?????????? ?????? ?????????? ??? ???? ???????? ?????????
ps -aef

* ?????????? ?????????? ??? ???? ?????????, ???????????
????? ??????????
ps -f

* ?????????? ?????????? ? ?????????, ????????? ? ?????????? tty00
ps -ft00

* ?????????? ?????????? ? ?????????, ????????? ? ????????????? russ
ps -furuss

* BSD ????????? ??? ?????? ???? ?????????
ps -aux

* BSD ????????? ??? ?????? ???? ?????????, ????????? ?
???????????? ???????????
ps -xut00


PWD

* ????????? ??????? ??????? ???????
PWD='pwd'

* ????????? ? ????? ??????????? ??????? ???????
cd $PWD


RM

* ??????? ??? ?????, ????? ????????? ? ???????
rm *

* ??????? ?????? ????????
rmdir dirs

* ??????? ????????, ??????? ?????
rm -r dirs

* ??????? ??? ????? ? ??????, ????? ??????? ?? ?????
???????? ??????? ????????
rm -rf *

* ??????? ?????? ???? ? ??????? ?? ???????????
rm -rf /





SH

* ????????? ?????? ???????????

for ELEMENT in 'cat /etc/motd'
do

- 29 -
echo $ELEMENT
done


* ????????? ?????? ?????????
cat /etc/motd | while read LINE
do
echo $LINE
done

* ???? ???? - ???????? (while-forever)
while :
do
echo $PS1
read CMD
case $CMD in
"") break;;
esac
done

* ??????????? ???? while
read CMD
while [ "$CMD" != ""]
do
case $CMD in
user-cmd) do_it;;
esac
echo $PS1
read CMD
done

* ????????????? ????????? ????? ??? ?????????
??????????
trap "echo trapping; kill $$" 2 3 15

* ???????? ?? ????? shell ??????????? ?????????

exit
eof character (usually control -d)
kill -9 0
kill -9 $$


STTY
* ?????????? ??? ???? ?????????
stty -a

* ?????????? ???????????? ?????????
??????? ?????????
stty -a < /dev/tty01

* ?????????? ???????? ??? ?? ?????? ???????? ???
??????? ?????????
stty 300 < /dev/tty01

* ??????????? ?????????? control-A ??? ???????
??????????
stty intr ^a

* ???????? ???-????????????? ?????????
stty -echo



- 30 -
SU

* ???????? ???? ??? ??????????? ?????? ???????

awk '{FS =":"; print $1,$5} '/etc/passwd|while read N C
do
echo "n$Nt$C"
su $N
done


TAIL

* ?????????? ? ???????? ??????? ?????? ?????????? ?????
????? ? ??????? (logfile) uucp

tail -f /usr/spool/uucp/LOGFILE

* ?????????? ????????? ?????? ?????
tail -1 file

* ?????????? ????????? 10 ???????? ??????????
echo "$VAR" | tail -10c

TAR

* ??????? ????? ?????? ? ????? home-???????? ?? ???????? ????, ??
???????? ????? ?? ????? ?? 1200 ??????
cd
tar cvefbk /dev/rfd0 10 1200 .

* ????????? ??????? "ls-l" ??? ????? ??????
tar tvf /dev/rfd0

* ???????????? ????? ??????
cd $DEST
tar xvf /dev/rfd0

* ??????????? ????? ? tar , ???????????? ??
tar cvfk /dev/rfd0 1200 'find . -print | sort'


TEE

* ????????? ???? ????? ?? ????? ??????? ?????????
sh | tee /dev/tty01

* ????????? ????? ?????? ??????
fsck /dev/root | tee capture
cu -ltty00 dir | tee capture


TEST

* ????????? ??????????????? ???? ?????
test "$S1" = "$S2"

* ????????? ??????????????? ???? ?????
test "$N1" -eq "$N2"

* ?? ?? ????? ?????? ????????
(???????? ??? /bin/[??????????? ? /bin/test)


- 31 -
[ "$S1" = "$S2" ]
[ "$N1" -eq "$N2" ]


TOUCH

* ???????? ??????? ?????? ? ???????? ????? ???? ?????? ? ?????
home ????????

find $HOME -exec touch {} ;
find $HOME -print | while read FILE
do
touch $FILE
done


TTY

* ???????? ????? ??????? ?? ?????? ?? ????? ?????????
ls -l 'tty'

* ???????? ? ????????? ?????? ????????????? ? ?????? ?????????
chmod 666 'tty'
chmod 600 'tty'


UUCP

* ??????????? ????? ???? ?????? ? ???? ? ????????????? ??????? ??
?????? ???????

for FILE in 'cat datafile'
do
echo "??????????? $FILE"
uucp $FILE sys! ~/user
done

* ????????? ???? ? ???????, ?? ???????????? ?????, ????? ???? ??
?????? ??????????????? ????????, ?? ??????????? ??? ? spool
???????.
uucp -r -c file sys!/tmp


VI

* ????????? ??????? ?????? ??? ??????? ????? shell
:.w !sh -

* ?? ?? ????? ?????? ????????, ????????? ??????
"ayy
@a

* ????? ??????????????? ? shell
:sh

* ?????????????? ??????? ????
:!sh

* ????????? ??? ???????? ????? ??? ?????? ????? shell
:!cc %

* ????????? ??? ??? ????????? ???????
:!%

- 32 -

* ????????? ??????? ? ????????? ?????? ?? ???????
?????? (??????????)
:.!who am i

* ????????? ??????? ? ????????? ?????? ?? ????? ??????
:.r !who am i
:r !who am i

* ??????????????? ????, ??????? ????????? ???-?? ?
???????
:e 'path termcap'

* ????????? long ??????? ?????, ??????? ?????????
???-?? ? ????? ?????????
:.!ls -l 'path init'


WC

* ???????? ?????????? ???????, ?????????????????? ? ???????
echo "????? 'who | wc -l' ??????? ????? ? ???????"

* ???????? ?????????? ????? ?? ???? ???????? ??????
find /usr/src -name "*.c" -exec cat {} ; | wc -l


WHO

* ???????? ?????????? ? ????? ??????????????????
?????????????
who | awk '{ print "user:",$1,"tdevice:",$2
cnt = cnt + 1
} END { print cnt,"????????????, ???????? ?? ???????"}'

* ????????
who | while read NAME TTY TIME
do
echo "????????????: $NAME tty: $TTY time: $TIME
done


* ?????????? 1. ?????????? ????? ?????????? *



????????? ?????????? ????? ???????? ?????????????????? ???????,
??????? ?????????? ????????????? shell. ?? ???????? ???????????????,
????? ?? ??????????????? ? ???????. ?????? ?????????? ????????????
?????????? ??????? ??????? ??????? UNIX. ???? ??? ????? ?????? ???-
???, ?? ?????? ?????????, ??? ??? ??????????? ?????????? ??????????.
????? ?????????? ????? ????????????? ? System V, BSD ? XENIX. ?????
????????? ????? ??? System V.
??? shell-?????????? ???????? ?????? ????? ?????? ????????????-
???? ?????????????? shell. ??? ???????? ? ???? ?????????? ?????, ?
???? ?? ??? ???????????, ?? ??? ?????? ??????????. ?????? ????????-
????? ?? ???????? ?? ?????? ?????? ????? ????????? ?? ???????????.
????? ???????? ???????? ??????????, ????? ???????? ???????? ??? ????-
???? ?????????????? shell ?? ??? ???, ???? ??? ?? ????? ????????????-
??.


CDPATH ?????? ??????, ????????????, ???? ?? ??????
??????? ? ??????? ??????? cd

HOME ????? ???????? ????? ?????? ? ????????? ??????

IFS ?????????? ??????????? ?????, ??????? ??????????
???????, ??????????? ????? ????? ?????

LOGNAME ???? ??????????????? ???, ???????????? ? /etc/passwd

MAIL ?????????? ??????????????? ?????? ????????? ?????,
????? ??? ????? ???? ?????????? ? ??????????? ???
????? ?????

PATH ?????????? ??????? ? ????? ????????? ??? ??????
??????????? ???????

PS1 ??????? ?????? ?????????, ??????? ????????????
? ???????? ?????? ???????? ???????????

PS2 ????????? ?????? ?????????, ??????? ????????????,
????? ?????????????? shell ????? ?????????????? ????

TERM ??????, ???????????? ??? ??? ?????????

TERMCAP ??????????????? ???? ?? ???? ???????? ?????????,
???? ?? ?????? ????? ?????

TZ ???? ???????, ?????????? ???, ??? ??????? ? ctime(3)

SHELL ??? shell-??????????????, ??????? ?? ??????????

EXINIT ?????? ????????????? ??? ????????? ex




?????????? 2



?????????????????? ???????? ?????????????? SHELL


Shell ????????? ???????????? ?????????????????? ???????? ?? ??-
??????????? ?????? ??? ?????? ??????????? ?? ??????. ???? ??? ?????-
?????????????, ?? ?????? ??????????? ?????? ???????? ?? ????????????-
??? ??????. ?????? ?? ???????????? ???? ???? ?????????????????? ?????
????????? ???????? ????????? ????????. ??????? ????? ?????, ????? ??-
???????? ???????? ??????????.
???? ?? ???????? ????????? ? ????????? ????? ????? ? ???????
?????????. Shell ?? ?????????? ??????????? ?? ????? ?????????? ?????-
???. ???????? F=* ???????? ? ????????????????, ??? ?????????? F ????-
????????? ???? ??????. ????? ??????????? ??? 7 ??????????????????
????????, ????????? ???????????? ??? ?????????? ????? ?????, ??????-
????? ?? ??? ????? ?????? ? ??????? ????????. ??? ????? ????????????-
?????? ?? ??????? ??????? "echo $F". ??? ???? ????? ????????? ????-
??????? ???????? ?????????, ??? ????? ???????????? ??, ??? ??????? ??
?? ???? 7. ?????????? ??????? echo "$F". ? ??? ???? ????? ?????? ??-
?????? ???????? ?????????? F, ??? ??????? ????????? ??? 3 - ??????-
????? ??????????. ???????? ??????? echo '$F', ?? ????????? ????? $F,
? ?? ???????? ?????????? F.
???????? ??????????? ? ????? ???????:

1. ?????? ????? ? ?????????????? ??????
2. ????????? ????????????? ???????
3. ??????????? ??????????
4. ??????????? ??????
5. ?????????????? ?????-??????
6. ????????? ?????????? ???????????? ?????
7. ????????? ????? ?????
8. ??????????? ??????????
9. ????????? ?????????? ?????
10. ?????????? ???????

????? ??? ???? ??????????????? ????? ????????. ????? ?? ???????-
??????? ?? ????? shell, ??????????? ??????????? ????, ????? ??? ??
??????????? ??? ?????? ?????? ?????? ?????????. ????????, ?? ???????
???-??? ???? ????? ?????. ???? ??????? ?????, ?? ?????? ????? ??????-
???? ?????? ?? ???????? ????? ?????? ? ????????? ????? ????????? ???-
???.

1. ????????? ?????? ??? ?????????? ??????????? ???????? ? ?????-
???? ??? ?? ????? ??????. ?????? ??????????????? ??? ??????????? ???-
?????? ????????: ????? ? ??????? (;), ??????? ??????? ?????? (&), ??-
????????? ? (&&), ??????????? ??? (||) ???? ??????? ????? ??????
(n). ??????????? ?????? ????????? ?????? ?? ????? ? ?????? ????????
? ?????????.

2. ???? ? ??????? ?????????????? shell ?????????? ???? ??????-
???????? (-v), ?? ??????????? ?????? ???????????? ?? ??????????? ???-
??????? ??????????? ??????.

3. ??????????? ??????????? ??????????. ???? ?????? ???????????
??????????? ??????????, ??????????? ?????????? ? ??????????? ?????-
?????? ?????????. ????????? ?????? ????? ??????? ? ???? ?????????
????? ($).

4. ??????????? ??????????? ??????. ??? ????????? ?? ???? ?????-
???, ?????? ? ??????? ???????? (`). ????? ??????? ??????????? ? ??-
?????????, ? ?????????????? ????? ???????? ???????? ????????? ? ???-
??? ????????? ??????. ??????????? ??????? ????? ?????????
???????????????? ???????, ????????? ??? ???????, ??????????????? ?
???????. ????? ?????? ???????, ????????? ??? ??????? ????? ??????,
??????????? ? ?????????? ?????????? ???????, ???????????? ?????????
??? ????????? ?????????? ???????????? ?????. ???? ????? ????????? ???
?????? ???????, ????????? ??????? ??????? ?????? ????? ?????????.

5. ??????????? ?????????????? ?????-??????. ???? ??????? ?????-
??, ???????? ?????????? ????? (0, 1 ??? 2) ???????????, ? ????? ???-
???????? ???????? ? ????? ?????????. ????? ???????? ?????????? ?????
???????? ? ???????? ?????-?????? ?? ?? ?????, ??? ? ???????? ????????
??????????. ??????? ?????????????? ????????? ?? ????????? ??????.

6. ????????? ????????? ?????? ????? ?????????? ?? ????????? ??
????? ???????? ?????????? ? ?????????? ???????????, ??? ????? ?????-
?????? ?? ????? ? ?????? ?????????? ????? IFS. ??? ?????????? ?????-
??? ??????????? ????? ??????, ??????? ???????? ????? ???? ?? ????? ?
????????? ??????. ?????? ?????? ????????? ??????, ??????? ??????? ?
IFS, ?????????? ?? ??????, ????? ???????????? ?????. ??? ??????????-
?????? ???????, ?????????, ??????? ????? ?????? ? ??????? ?????????
????????? ?? ????????? ??????. ??? ?????????????? ???????? ??????????
???????? ?? ???????, ???????????? ? ???????????? ? IFS. ??? ???? ???-
?? ??????? ???????? IFS, ??????? ????? ???????? ??????:

echo "<$IFS>" | od -bc

7. ????? shell ???? ??? ?????, ??? ??????? ????????? ?????????
????? ????? (???????????). ???????? ??????? ??????????? ??????? ?
??????? ???????? ????????. ???? ?????????? ????? ???????, ??? ??????-
?? ????????? ? ????????? ??????. ???? ???????????? ?? ??????????, ??-
????????? ???????? ? ???? ?????????. ??? ?????????? ?????????? ????-
???? ?? ????????? ????????????. ???????? ???????? ???????? ???????
"ls z*". ???? ????? ?????-???? ?????? ?????????? ? ????? z, ??? ?????
?????????????. ? ????????? ?????? ?????????? ????????? "z* not
found".

8. ???? ?????????? ???? ??????????? ?????????? (-x), ?? ??????-
??? ?????? ???????????? ?? ??????????? ?????????? ??????????? ??????
????? ???, ??? ??? ????? ?????????? ?????????. ???? ??? ?????????
??????, ?? ??? ????????? ? ????????? "+", ???? ?? ??? ?????? ???????-
??? ???????? ??????????, ???????? ???.

9. ?? ???? ???? ???? ?????????? ????????????? ????????, ????? ?
???????????? ? ?????????? ????? PATH ?????? ??????????????? ???????.
?????????? ???????? ?????????? ?????????? ?????? ?????? ????? ??????-
??? ??????. ????? ?? ?????????? PATH, ????????, ?????????? ????? ???-
????. ???? ??? ???????, ?? ?????? ?????????? ??? ???????? ????? ??-
????? ? ????????? ??????. ???? ?????????? PATH ????? ?????? ????????,
??????????????? ??????? ???????. ???? ? ?????-???? ????? ?????????
????? ??????? ??????? ????? ????? (/), ?? ?????????? PATH ?? ???????-
????????, ? ?????????, ??? ??????? ?????? ?????????? ???.

10. ???????, ??????? ???????????. ???? ??? ?????????? ???????,
??????? shell ???????????? ??. ? ????????? ?????? ???????? ???????
????????? ??????? ? ??????, ??? ???? ?? ??? ???? ????????????????
?????????. ???? ??? ??????? ???????, ??????? ??????????? ???????????
?????????? ?????? exec(2). ???? ???????? ??????? ?? ???????, ?? ???-
??????, ??? ??? ????????? ???? ??? ?????? ?????????????? shell, ? ??-
????????? shell ?????? ???? ????????? ???? ? ???????? ????? ??????.




?????????? 3


??????????? ??????? SHELL-??????????

??????????? ????? ??????? ??????????????? shell-??????????? ???
???????????, ??? ??? ??? ???????? ?????????? ?????. ??? ???? ?????
???????????? ?????? ? ??? ??????? ????????, ? ?? ? ???????? ????????-
??? ???????, ????? ???????????? ??? ???????? ????? ?????? () ???
????? ? ????????? ???????.

b ??????: ??? 20 (?????????????????), ???????????? ????

n ?????? ????? ??????: ^j, ??? A (?????????????????),
???????????? ????

t ?????????: ^i, ??? 9, ???????????? ????

; ????? ? ???????: ????????? ??????????? ????????

( ????? ??????: ???????????? ??????????? shell

) ?????? ??????: ???????????? ??????????? shell

| ???????????? ?????, ??? ?????? ???????????? ?????????:
????????? ???????

^ ??????? ?????, ???? ???????: ?????? ??????,
???????????? ? ???????? |

> ?????? ??????? ?????? (???? ??????): ?????????????
??????????? ?????

< ????? ??????? ?????? (???? ??????): ?????????????
??????????? ????

& ?????????: ???????? ??????????? (???????) ??????????

{ ????? ???????? ??????: ?????????? ????? ???
??????????????? ??????? ?????

} ?????? ???????? ??????: ????????? ???? ???????????
?????




?????????? 4


??????????? ??????? SHELL-??????????

??? ??????? ??????????? ? ?????????? ?????????? ????? shell. ??
??????? ????????????? ??? ?????????????????. ????????? ??????? ?????
?????????????? ??-???????. ????????, ?????? # ???????? ???????????? ?
?????????, ? ????? ????? ???? ??????????, ??? ? ?????? $#, ??????????
?????????? ?????????? ? ????????? ??????.

&& ??????? ?????????: ????????? ??????, ???? ???????????
???????? ????????? ???????

|| ??????? ???????????? ?????: ????????? ?????? ? ??????
??????? ???????????? ?????????

` ???? ????????: ??????????? ??????????? ????? ? ???????

* ??? ????????????? ? ???????? ????????? ?????????????
???? ??????????? ??????????; ???????? ????? ????????
????????? ???? ??????, ??????????????? ????? ??????

# ??????????? ?? ????? ??????; ????????????? ?????
?????????? ??????????? ?????????? ? ????????? ??????

? ??? ????????????? ? ???????? ????????? ?????????????
??????? ?????????? ????????? ????????? ???????????
???????; ???????????? ????? ??? ????????? ???? ??????
? ???????? ??? ???? ????? ????????? ??????

- ?????????? ?????, ???????? ?? ????????????????
?????????????? shell

$ ?????? ?????????? ?????????; ????????????? ?????
?????????????? ????????

! ??? ????????????? ? ???????? ????????? ?????????????
?????????????? ???????? ?????????? ???????? ???????;
??????????? ????? ? ??????? ????????, ??? ???????? "??"

" ??????? ???????: ????????? ??????? ? ?????????
??????????? ??????????? ??????????

' ????????? ???????: ????????? ???????, ?? ?????????
??????????? ??????????

???????? ????????? ?????: ?????????? ????????? ??????,
????? ????? ??? ??????????? ????????

[] ?????????????? ????????????? ??? ?????? ???????
????????. ??????????? ????? ??? ????????? ???? ??????,
??????? ??? ???? ???????? ????????

@ ????????????? ??????? ???????????? ?????????
????????? ??????

>> ????????? ??????????? ?????

<< ????????????? ??????????? ???? ?? ???????? ??????
??????

& ???????????? ??? ?????? ???????? ????????;
????????????? ????? "????????? ???????????",
???? ???????????? ? ?????????????




?????????? 5



?????????? ????????? ????? SHELL


????????????? ???? ??????? ????????????? ? ?????????? ?? ?????
shell. ????? ??????? ? ???? System V Bourne shell.
? System V.2 - ????? ????? ?????? System V - ????????????? shell
????? ????????? ?????????????? ???????, ????????????? ? ?????????
??????.
??????? ????? ????????????? ksh (?????????? ??? ??????????
Bourne shell), ?????????? ????????????? ????????? ?????, ????????????
??? csh (??-shell). ????????????? ksh ????? ?? ???????????????.
??????????. ?? ?????????? ??????? exec ????? ??? ? ?????. ??? ??
?? ?? ?????, ??? ??????? exec(2). ?????? ??????? exec ??????????????
?????????????? shell, ? exec(2) ???????? ????????? ???????.


??????? System V Bourne Shell

. ?????: ????????? ?????? ??????? ?? ????????
?????????????? shell, ? ?? ?? ????????????

: ?????????: ?????? ?? ??????, ? ?????? ??????????
???????? ?????? (0)

{} ???????? ??????: ????????? ???????????????? ??????
??????

break ???????? ????????? ???????? ???????? ?????

case ???????????? ????? if-then-else

cd ??????? ???????

continue ??????? ?? ????????? ???????? ????? for, while
??? until

eval ????????? ??? ??? ???? ??????????? ??????????

exec ????????? ??????? ? ???????????, ??????????
??????? shell

exit ?????????? ?????????? ???????? ?????????? ?????

export ????????? ???????? ?????????? ???? ???????????
??????????????? shell

for ??????????? ????? ? ????? for-do-done

if ??????????? ????? ? ?????????????????? if-then-else

newgrp ???????? ??????? ????????????? ??????

read ???? ?????? ???????????? ????? ????????? ??????????
? ???????? ????????

readonly ???????? ?????????? ?????? ??? ??????, ?? ????????
???????? ??????

set ????????? ? ?????????? ?????? ???????????? shell

shift ?????? ??????????? ???????? ?? ????????? ??????

test ????????? ??????????? ????? ???????? ? ?????? ???????

times ???????? ????? ?????? ?????????, ??????????
?? shell

trap ?????????? ??????????? ?????????? ??? ??????????
????????

ulimit ?????????? ?????? ??????? ?????? ? 512-??????? ??????

umask ????? ???? ??????? ? ??????, ???????????? ??? ??
????????

until ??????????? ????? ? ????? until-do-done

wait Shell ???? ?????????? ????????? ???????????
?????????

while ??????????? ????? ? ????? while-do-done


?????????????? ??????? System V.2

hash ??? ?????? ?????? ???????????? ???????????

name ?????????? ??? shell-???????

pwd ???????? ??????? ???????; ?????? ??? ??????????
??????? ??? ?????????

return ????? ?? shell-??????? ? ?????????? ????????

set -f ????????? ???? ????????? ???? ??????

set -h ?????????, ? ?? ????????? ?????????????? ???????,
???? ??? ??????????

type ??????????, ????? ??????? ????? ????????????????
??? ? ???????? ???????

unset ??????? shell-?????????? ? ???????





 ????????? ?? SED
 ????????? ???????? sed
  ???????????????? ?? shell (UNIX)
 ??????? ?????????????? sed
 ?? ????? «??????? ????????» (?? ????????-?????????? ?????), ???. 1863 ?.).


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"